您的位置:首页 > 理论基础 > 计算机网络

培训笔记2--望高手指点错误之处

2008-05-02 08:00 309 查看
                                                 学习日志

     这周过得算是充实,除了英语就是java,-- 当然少不了吃饭睡觉了

     由于纪老师要我做一个数据库版本的学生管理系统,要一周做完,所以自然这周时比较累得。

     还好,做的勉强还算顺利,一周时间做完了,但当我做完后debug并回顾自己写的代码时,我无数的缺点应运而生了….

     首先我写的代码不少最少也得3500行吧在写之前,我对自己的代码做了一个自以为还不错的数据库表的设计和类的面向对象设计于是由于时间紧,没时间写文档就开始代码的编写了写代码的过程算是顺利,在基本功能完成时也就是昨天,我开始了debug ,从这时候自以为不错地完成任务的我,傻了。

     debug一个小bug 就让我很难找很难修改,而且出现了这样一种情况:在修改bug时我只是针对当时产生的exception 或者 bug 做“勉强的修改”也就是说在不断对代码的修改调试中把错误改过了,但具体的真正原因我却比较模糊,只是运行中不会再出现那个错误了,就算是通过但我在修改完后总会很心惊胆战地再进行其它的debug ,心惊胆战的原因是我很害怕在对上一个bug的调试中由于只是单纯地针对那个bug 修改,而不顾虑可能会产生的其它的错误,我认为这种错误一旦产生,最难缠的错误也就
4000
降临了,因为可能我在修改这个
bug时一个小小的变量的修改或者删除就对整个程序产生影响,而当我发现这个错误时再想找到是哪出的错…. 恐怕我得把这3500行代码再重新温习一遍了,这对于一个即将完成代码的程序原来是应该是及其郁闷的

     最后虽然勉强完成但以上的经历让我很郁闷,于是下一步当然是找原因了毕竟做这个小项目是为了训练自己,当然即使不是为了训练自己原因还是要找的,因为找错误的原因我认为是最大的提高,否则这个项目基本白做了。 

     当我再重新看我写的代码时,我想我就基本找出原因了我在写代码时基本是忽略了我以前对类的设计,刚代码时写的大框架还是基本符合我设计的,但当代码越来越长时我就会因为只图一时的方便而导致代码的混乱比如本来对一个学生的社会实践信息的操作应该是都封装在社会实践对应的那个类并由那个类的对象进行操作的,但当我写到图形设计时却由于获取方便而把对社会实践的操作写在产生界面的那个类中了当然其它类如基本信息类,学校任职类等等也是这么做的虽然在初期时我都让这些类实现了自己写的Operateable接口病都实现了接口的 select() ,delete(),  add(), alter() 等方法(这阶段我的脑子还是比较清楚的)但到了后来竟然忘记了!就为了图一时功能的实现和代码的编写方便而忽略了那些面向对象的设计了。从而直接导致了我代码的紊乱而又直接导致了修改和维护的困难。

     找到原因后当然就是总结教训了。        首先第一个教训,也是最大的教训就是我以上主要说的面向对象的设计。我认为这最重要了,自己应该始终根据刚开始设计好的代码框架做,即使由于需求而需要进行修改也应该在不背离设计原则的条件下作修改。第二个教训基本紧贴上一个教训,就是当自己已经写了很长的代码时一定要注意多回顾是否已经背离了自己设计的原则,看看是否你写的代码已然达到混乱的地步,应该在达到这种地步之前提前修改并预防了,避免想我这么郁闷哦…   现在体会到了只要把代码的设计做好了,其它的如添加代码啊,debug 啊等等就是 a piece of cake 了。

     当然在知识上也收获了些就是数据库的连接和通过jdbc进行数据库的操作和数据库表的设计等等

首先在数据库表的设计上我认为也是遵循面向对象的原则的,我们可以把每张表看作一个对象嘛,在面向对象的思想指导下设计数据库表是很好的,首先把一个学生的复杂的信息拆分一个一个的小的对象,每一个表对象封装一系列相关的信息比如社会实践表里面是社会实践的日期,内容,时间单位,证明人,证明人联系方式。这些都是属于社会实践的内容都封装在了这个表中。其它表当然也就是这样设计了。

然后就是Jdbc 的一些小心得了结果集的灵活运用阿等等由于太繁琐也很难说出就不说了。然后还有一点点对异常的新体会,在写代码时我产生了一个疑问就是:如果用if() 语句能完全避免异常的产生那么是用if() 限制异常的产生并用else对异常处理好呢还是用try – cathch 把异常捕获并再捕获后惊醒相关的处理好呢。对于这个问题目前我没有很好的答案目前我认为就是根据当时情况和需求而定了。貌似而这基本是没什么区别了,只不过一个是你自己知道要产生什么异常,并处理了它,一个是系统捕获到异常并处理。当然除此之外还有swing的一点小收获这里也就不一一列举了。

     写完一个小项目收获显然是很多的,这么几行字是完全说不完的。而最大的收获就是懂得了怎么通过写代码而获得收获。纪老师的下一个要求接踵而来了,就是把这个写成网络版,如果这个项目我的代码写得很成功,那网络版的改版就会很轻松了,但现在鉴于我设计地这么糟糕,我就只能说通过网络版这个机会再把我的代码重新整合吧!

                                                                               08.4.11

                                                                           侯兆炜

                                                                                 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息