初次软件开发(总结篇 之二)
------献给Java新手,高手绕行
(上接 总结篇 之一)
我觉得对Java类库中类的运用最难得莫过于对方法的重写,因为这个方法的具体实现就需要靠自己实现。有些时候为了满足特殊的功能,不得不通过重写方法来实现。在这个项目中,重写了TableColorfirst类中的getTableCellRendererComponent()方法,重写这个方法的目的就是为了实现“将余额为0学生信息重点显示”。
还是那句话,你遇到的一切问题都需要你自己解决,没有人会耐心的告诉你具体代码怎么编写,怎么处理各种存在和潜在的异常,怎么实现想要的效果显示以及功能实现。这一切的一切都需要自己构思,自己在原有代码上修改。做这个医疗信息管理系统感觉挑战了自己自学能力的极限,就是总是要实现一个个从来没用过甚至没听说过的功能。由于自己知识储备很有限,感觉每实现一个功能都要经过比较艰难的思考,而且编出的代码会出现很多莫名其妙的问题。这些问题之前从来没遇到过,所以找到错误原因的时候很困难,在一些地方会调试好几十遍才能发现错误之处。
其实,我才发现,最开心的的时刻并不是你解决了一个错误,而是你找到了代码错在哪一行。有人会说,eclipse找错还不简单么,直接单击控制台的超链接不就找到了。关键问题是,不管你怎样改,控制台的异常信息都是一样的。这个问题突出体现在SQL语句的书写上。Java对SQL语句的异常总是输出相同的异常信息,你根本不清楚到底是错在哪了。特别是你在使用连续多个PreparedStatement 接口(表示预编译的 SQL 语句的对象)、ResultSet接口(表示数据库结果集的数据表)时,找到错误所在更是难上加难。有可能一个下午的时间都用来解决这个错误。有时令你更加郁闷的是,一个下午你真的可能只是找到了这个错误究竟出在哪。
说到这些ERROR,其实有些时候,你的代码是对的,SQL语句也是对的,虽然代码不报错但是运行的时候总会有异常抛出。这个问题我纠结了一天终于发现了错误的原因。原因就在数据库中的数据表的内容设置上。第一,一个不经意的NULL值,就会导致数据库的查询失败;第二,一些设置不合理的数据(为了填满数据表测试程序而臆造的数据)都会导致程序的异常。这两点我深有体会,分享给大家,这些结论的确是我用时间换来的。
可能大家会疑惑这一个月中这些问题是通过什么方式解决的?网络,因为毕竟时间紧,如果看书的话来不及,现在网上搜索实现的源代码,然后具体研究为什么那样写,自己再根据自己的实际问题进行修改。我由于是比较初级的水平,所以用的百度搜,用百度大家尽量避免一些水贴。就是解决不了问题的无聊的帖子,最有成效的还是在一些博客中和CSDN的论坛,什么百度知道什么一类的就直接绕开,大问题是解决不了的。你的编程水平和英语水平还不是很高的时候,百度也是一个比较好的选择(估计已经被高手拍砖了)。当然,高手一般用google什么的…(我都不知道还有什么…)。
总之,有压力就有动力,但是前提是你要有信心把压力转化为动力,并且要有耐心,能静下来做这件事,而不是整天忧心如焚不知所措,然后效率低下。
其实还有一个比较重要的环境就是测试。在测试软件的过程中,你会发现很多你没有考虑到的地方。例如,当输入值为空时,应当有什么提示,输入指定的值之外的值应该以怎样的方式保证程序的健壮性呢?再如,当我现在不是以管理员的权限登陆,怎么避免其修改和删除用户数据、修改管理员密码等等这些需要权限的操作?
在软件开发结束的时候,还要将你的源代码进行如下处理:1、先封装成jar(在eclipse下用fat jar插件很容易);2、用exe4j将封装好的jar生成exe文件;3、用Inno Setup 将指定目录生成一个安装包;4、完成。
一个医疗信息管理系统(其实功能很少,实现的主要是对数据的基本操作),能做出来也是不容易,写这些的目的首先分享一下自己自学的学习情况和一些小小的经验,然后就是就给大家加油,相信自己,一定可以!
还是送给大家那句经典的话:学习Java就像挂QQ,坚持下去会看到太阳的~
之后有时间的话我会推出“初次软件开发(知识篇)”,其中会具体说一下做这个项目遇到的问题以及解决方案。
-----增
2012/11/16