写了一个1600行的软件后的感触
??因为大专只有上两年,就可以出来找工作,而我今年暑假也要出来找工作,很烦。。没什么把握,再加上这学期上三天放四天。。。所以每到周末就开始写代码。。上大学要遇到了最大的问题就是钱的问题,所以我就想写一个记账的软件。可以输入当天的收入和支出,和进行查询和分析。。。。之所以想到要自己写,是因为我在网上找了一个软件,结果是要钱的。。。我就说干脆自己写一个了。。
?
??然后开始写自己需求列表(就是功能表)。。画整个软件的结构图。。。。流程图。。。。接着对结构图进行分析。。画UML的类图(这学期开始学的)。。
?
??说实在在弄上面这些东西的时候,各种痛苦。。。我想应该有人理解我的这种痛苦。。但是因为看过几本工程的书,所以还是坚持了下来。。但是还是深深感觉到了自己的不足,就像--书到用时方恨少----我也深深的感觉到了自己对于JAVA的理解还不够,面对对象的思想还没有到够用的程度。。。。
在将要进行代码的编写的时候,我姑姑去世了,所以我就回家了。。
?
回来的那天,我把前面的弄的东西又删了又改了。。。
开始写代码。。。
这是我发现当前面的那些做得很详细的时候,写代码变成了只是解决问题的事了,只要去思考如何实现某个方法,某种效果。
感觉像是在做数学应用题。而且当把一些东西抽象出来,变成父类的时候,就会发现不用再去重复写那些代码了。效果都用父类去实现,子类便可以享受他爸爸给他的好处了。代码省了太多了
例如我写了一个数据管理类。。
那么收入数据管理类和支出数据管理类继承他,结果可想而知。。
?
因为我在学android应用的开发,对于MVC模式有点感觉了。
所以在这个软件中我就应用了,当我把软件耦合度降低时,发现错误的改正和效果的修改变得很简单,因为我不用去思考修改了这个,会不会影响其他的东西。数据的输出和输入也变得很容易了。。
?
?
当然除了对编写软件的理解,对于java语法的理解也有所增长。。
?
当时我正在编写对文件的读写。。出现了一个Bug,我读入数据时,没有数据,但发现文本上是有文字的。
?
那个bug我调了一晚上,睡了一觉,隔天上课,在学校实验室(当然只是几台破电脑,上的j2me)测试出来。
代码1:
?
public static void main(String[] args){try {FileReader fr = new FileReader("out_datas.txt");BufferedReader br = new BufferedReader(fr);String str = br.readLine();System.out.println(str);FileWriter fw = new FileWriter("out_datas.txt");fw.write(str);if(br != null){br.close();}if(fr != null){fr.close();}if(fw != null){fw.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
?假如文件out_datas.txt中是存在而且有数据的,那么上面两种的代码出现的结果是不一样的。
代码1:输出的null,并抛出空指针异常
代码2:输出原来文件中的数据,并写入文件中。
?
两个代码的唯一差别在于FileWrite的位置,为什么???或许很多人都已经知道了,但是这是我自己想出来的。。。
当FileWriter的构造函数后面是false时,在创建对象时,就会把文件清空了。。所以才会造成FileReader没有获得数据,我当时也是因为这个原因。。
?
?
我喜欢编程的原因或许是因为可以看到自己的进步(当我写出一个以前写不出来的程序时),可以享受解决问题的成就感,
成就感---一种可以让人不断进步的动力。
1 楼 sdh5724 2011-03-21 持续动手, 持续进步。 2 楼 eryk 2011-03-21 最后两句挺有同感,细想一下我也是因为这样才喜欢编程的祝你成功。