初次软件开发(总结篇 之二)

------献给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

初次软件开发(总结篇 之二)_-Chaz-_新浪博客相关推荐

  1. 软件项目开发模式_小晓_同学__新浪博客

    螺旋开发模式:部分模块开发还可以再继续开发别的模块,适合于项目前期需求不确定的情况 对于每一个模块一个个开发:分析.设计.编码.测试.上线: 好处:有效的降低软件项目风险,(做出的产品要尽量满足客户需 ...

  2. 模电学习心得(转载)_史蒂文森sun_新浪博客

    个人建议:认真分析几个典型电路,主要掌握晶体管的等效模型,以及在电路中怎么等效.其他的都很容易解决了.只要会等效了,模电就是完全是电路的内容.其实一点都不可怕,开始不要太关注乱七八糟的内容,抓住主要的 ...

  3. Bug管理的流程和几个重点_悟sphenic_新浪博客

    Bug管理的流程和几个重点 前两天谈论的bug管理的问题,大家列举了很多bug跟踪软件,我觉得工具是一部分,但是主要还在bug管理的流程上. 在这些bug管理工具里,bug的一个最重要的属性就是&qu ...

  4. 当前电气自动化专业就业形势调查报告 (转载)_史蒂文森sun_新浪博客

    当前电气自动化专业就业形势调查报告  尽早了解本专业的设置及就业情况有助于我们确定自己的发展方向,当竞争工作时,能有更多的优势.为此,本人于2012年2月18日至3月10日进行了调查,通过文献查阅.实 ...

  5. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?_小晓_同学__新浪博客...

    abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系! native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类 ...

  6. 解读术_悟sphenic_新浪博客

    一.谈话技巧 西方侦探工作当中,最重要的据说就是解读术.在和对方交谈时,必须听出事情的端倪,否则就将失去当侦探的资格. 掌握解读术,必须要做以下几点: 1 首先,为了取得对方的信任,礼貌的和对方说话. ...

  7. [转载]FAE及其发展前景_史蒂文森sun_新浪博客

    原文地址:FAE及其发展前景作者:Robby FAE Field Application Engineer(现场应用工程师) ,其他的说法就叫技术支持   主要工作内容: 1.提供产品技术支持,包括咨 ...

  8. [转载]R软件包vegan教程 5.1 函数adonis的使用_圈圈Bio_新浪博客

    原文地址:R软件包vegan教程 5.1 函数adonis的使用作者:mateco 5 差异和环境(Dissimilarities and environment) 已经讨论了排序的环境因子解释,和环 ...

  9. 串管理——鸟友们快来看啊——看清楚点_悟sphenic_新浪博客

    串管理--鸟友们快来看啊--看清楚点 在内存有限的情况下,应当特别注意串的"繁殖".一种常见的做法是使用+操作符,而这往往会带来问题,如果把多个串通过+操作符连接在一起构成一个串, ...

  10. 在线画图工具-CCA与RDA分析_圈圈Bio_新浪博客

    网站:http://www.qplot.cn:3838/sample-apps/006-CCA_RDA/ RDA分析(Redundancy analysis),即冗余分析,对比主成分分析可以发现,其实 ...

最新文章

  1. APUE(第八章)进程控制
  2. 数据库异地多活解决方案
  3. 对 2018 年 AI 发展预言全中,他们又立了 2019 的 Flag
  4. SQL基础笔试题(二)
  5. sql主键_SQL主键
  6. 高中信息技术——VB数据类型和基础语句结构
  7. Mybatis批量insert报错的解决办法【the right syntax to use near '' at line...】
  8. 计算机硬件及软件组成,计算机的组成及功能(硬件及操作系统)
  9. iOS开发-dSYM文件
  10. 使用Python脚本进行批量造数据
  11. 扫雷小游戏制作全过程
  12. 2021迅雷web实习生面试经验
  13. IDEA之Translation翻译插件-TKK: 更新 TKK 失败
  14. Android百度AI植物识别教程,微信开发+百度AI学习:植物识别(示例代码)
  15. 一年当中几月份买车最合适?什么时候最便宜?
  16. 金沙艺廊于澳门四季名荟正式开幕;招商维京游轮深耕“文游”助力中国旅游业高质量发展 | 全球旅报...
  17. 论文投稿指南——中文核心期刊推荐(化学)
  18. 全网最全关闭小米手机MIUI系统广告教程
  19. 使用tarjan算法和fleury算法求解中国邮递员问题
  20. 各linux操作系统查看内核版本命令

热门文章

  1. linux 查看ps命令大全,linux中ps命令使用大全
  2. 短视频源码,自定义弹框的简单写法Demo
  3. Java文件操作——简单文件搜索优化版本Lambda优化
  4. 人工智能剥夺就业岗位?不妨听听马斯克是如何建议的
  5. cmd命令查看计算机信息,cmd命令查看局域网内计算机信息
  6. 【时空序列】使用3D卷积网络学习时空特征
  7. DirectX显示流程学习小结
  8. 深度学习-梯度爆炸原因分析、调试记录与解决方案(loss突然变为nan)
  9. Unity视频播放器插件AVProVideo的使用
  10. 分布式系统的经典基础理论