还好自己是得志小人,所以在OO的思想都没搞怎么明白的时候就厚着脸皮当了软工的斑竹。考完研,因为本科的教学计划中没有软工导论,原来计划买本软工的书回来自学。结果,还是抱着些OOP的书回家了。(可以丢掉考研的C语言回来慢慢学习C++了,原来学得七窍通了六窍)
家中的电视已经非常陌生,所以回来后只跟老朋友电脑和书籍聊天。其实目前看来,抛开程序去谈什么UML,CMM对我来说没有任何意义。然而一封Email来了……
公布在个人主页上的地址早成了垃圾邮件的集中营。其中竟然出现了“对你的写作风格及学识很有兴趣~”留下QQ交友的email。很诧异,怎么看都不像川大学生,可是除了中学同学和BBS网友没有谁上当会去我的主页呀。不久便同这个高二的学生聊上了。原来他是通过使用我已经放弃开发的一个游戏修改器而被骗去看我的主页的。(还是没明白北京的他怎么找到这个只放在wjl上的东东的)
在大规模表扬我以后开始谈到那个修改器。从来没有从用户的角度发现自己的东西那么多的BUG(不全是程序的,主要是设计方面),然后给我提供了一个同类修改器,提出意见一大堆。见到那么多BUG,自然立刻去维护自己的程序。于是我花了点时间去研究那个只有界面比我差的而且要求注册的修改器。没有兴趣也没有本事进行反编译,只是通过它很快了解一些以前不知道的游戏存档的数据存储结构。接着重新装回VB,开始编程……
打开原来的程序,看着自己一开始的代码,没有任何注释,还好变量命名规则没变。其实写这个东西完全为了实现中学刚学电脑时的一个梦想,从软件需求角度就已经注定该程序的失败,更别说代码的混乱了。想起以前在program转载了一篇“真正的程序员”,文章所描述的“真正的程序员”从软工的角度来看,只是个偏执狂而已。仿佛在球场上只会自己带球而完全不知道配合的球员,无论技术多好,迟早只有做冷板凳;更何况我还只是只菜鸟。于是重新在开始部分重新用注释把数据结构全部写出来,然后写了点规划。没有想到这样下来后程序开发起来相当容易。除了偶尔回忆下BASIC的语法,其余的时间感觉更像在用一个字处理软件而非VB,不到两个小时就写了近10k的代码。然后发布,他帮我测试……My God!More and more bugs!
回过头去看下人家写的小东西的文档比源程序还大,自己真的很羞愧,以前写程序前最多在草稿纸上画个框架,尽量少写注释,更不要说什么文档。从来都是想到什么就写点,即使每部分的代码都很精简,但最后从整体上来看到处都是重复或者类似的函数,每部分都有相似的东西却都独立开来了。简单的例子,比如开始我定义了一个变量,而后来又根据去定义一个又一个相似功能的变量,如果事先就进行规划,我一开始就可以定义为数组。而实际结果每加一个变量不得不再拷贝、粘贴、修改。工作效率低,冗余代码多,程序效率低……只应验了一句老话:“磨刀不费砍柴功”。维护起来更是麻烦,在一大堆相似而毫无联系的函数中,很快就迷失了……看看自己的程序,简直失败++
写这么多费话其实只想说明一样东西。以前学oop的时候,被经常提醒如果在编程时没有体现oo的思想,那么即使使用oo的语言,也不算是个面向对象的程序。软件工程博大精深,但软件工程中的很多思想,对我这种菜鸟来说,可以在实际运用中发挥很大的作用。程序设计不只是种艺术,也是门科学,以前的计算机学习,很大部分只是在学习语法+数据结构+算法。很少去强调什么软件代码的可读性,可维护性等等。其实,把软工看成程序员的守则,作为准则去在编程中规范自己,受益匪浅。
1 29
保留所有权利
最新评论