这十条经验你认为是对的,你就拿去试试,如果你认为是错的可以无需理会,不要在标题上浪费时间,这里的“极致”是个中性词,不要产生逆反心理。
一、一行代码,一个BUG;一条语句,一个BUG:
BUG是软件开发人员都会觉得恶心的事情,也是一件丢人、让人觉得“烧盘”的事情,微软的一位软件大师曾经提出“BUGFEEE”的思想,还写了一本书来讲述如何开发出“0”BUG的软件产品,这个做起来就不太容易了,我们人力、财力、物力有限呀,离微软的档次差的太远,我们可以用点简单的方法。
BUG是哪里来的,从编程的角度讲,BUG也是一条程序代码,删掉这条代码,BUG也就同时被删除了,我们的思路是:尽最大可能的减少软件代码,你可以使用从“设计模式”、“面向对象”甚至函数复用、模块复用、代码复用、编码风格等等一切可用的手段减少代码。实际观察发现许多代码写的臃肿、重复。
记住:没有代码就没有BUG。
二、没有注释不编码:
很多人讨厌写注释,但是即使是最讨厌写注释的人,也都知道注释是软件代码必不可少的一部分。
要知道软件代码毕竟是用程序语言写的语句,她的直接可读性是比较差的,如果没有注释,假使你当时写的代码的时候能够看懂,在两天以后还能看懂吗(开始要稍微想一下才能看懂了)?一周以后还能看懂吗(需要使劲想一下才能看懂了)?一个月以后呢(费力想可能也不太能看懂了)?想想别人能看懂吗?即使别人能看懂,他要花费多少时间,你有权利这样不尊重和浪费别人的吗?不写注释节省下来的时间以后一定是要用写注释5倍到10倍的时间补回来,你省力气了吗?
注释要写的越详细越好,在复杂算法地方甚至要一条代码一句注释,这样都不一定能保证将来能读的很顺畅的。别把没有注释的代码交给我,咱不懂编码,只能看懂注释。
三、软件为别人开发:
软件开发人员都很自信,甚至有些自恋,喜欢看着自己编写的优秀代码会心的微笑,喜爱有加。这里打击一下,现在的软件都会比较复杂、庞大,软件开发都是团队性质的,不是个人性质的,你写的软件、系统、模块、类、方法、对象等等,都是给别人调用与组合使用的,所以要模块整洁、编码规范、逻辑清晰,这样别人才能易于使用。你的代码只是自己越看越喜爱,别人很难读懂、使用,这样的代码一点意义都没有,团队精神不是虚无的,是一条条实际的东东,这就是没有团队精神的一种表现。
四、重要的是文档,不是代码:
软件开发中几份比较重要文档是:需求规格说明书、概要设计说明书(数据库设计说明书)、详细设计说明书。
有了文档,即使代码丢失了,找人也可以按文档把代码重新编写出来,当然前提是要保证文档与代码的一致性,这涉及到代码、文档版本的控制问题,以后有机会可以专题论述。文档是软件开发与维护的基础,文档不是万能的,没有文档是万万不能的。
五、不设计就不编码:
软件开发重要的是设计,不是编码。想想盖楼,一栋漂亮的大厦,盖楼与软件开发很像,咱经常会举到这个例子。盖这栋大厦的时候,你没有任何设计,上来就盖,你盖得是什么东东呀?软件也是如此,要先设计后编码,你不做任何设计,你编的是什么东东软件呀?这里还要反对的是多人设计,人多嘴杂的设计方式,不要各级主管、领导,什么公检法司都参与到设计中来,想想盖大厦,你要盖个飘窗,她要盖个罗马柱,另外的人还想要个露台,这大厦能盖起来吗?即使盖起来是个什么样的垃圾东东,不塌了才怪。设计应该是一个人或一个团队,或一个主创,她必须保持自己的设计风格,即使不是最好的设计,但一定是一个实用的、可用的设计,如果她设计的不行,是设计师选错了,最好是换设计师,用人不疑、疑人不用。
六、多使用开发工具:
我们可以使用各种各样的软件开发工具来完成软件的分析、设计、开发、测试、维护、管理工作。有好的工具软件可以使用的尽量使用工具软件开发,而少使用纯人工、手工的方式开发,机器比人可靠的多些,人是最不可靠的,人是软件出BUG的根源。用工具生成代码,也可以自行开发一些程序自动生成代码,在程序结大都构相同的地方。这样省去了调试代码的时间,代码也不会出错,对新手来讲,有时为了保证代码的质量,根本就不允许你去编写代码,必须要自动生成的代码。
七、家庭作业版软件
这一点主要是对新手来讲的,软件行业也像其它行业一样,行有行规,她有一些自身约定成熟的东西,比如WINDOWS编程规范、WINGDOWS界面规范等等。这些方面新手经验不足,尤其是有些软件开发人员甚至不是学软件专业的,可以讲就是个外行,他们在开始的时候往往会做出许多可爱的、可笑的东西出来,我们把这种软件戏称作:家庭作业。因为它跟本就不像个商业软件或一件商品。这时候要求新人们放下心态,多学习、多改变,不管你是什么研究生也好,本科生也好。实际观察许多研究生,只要是新手,做的东东一定很怪异(基本界面控件使用错误等等),有些东西甚至根本就不能称为一个软件。
不要尝试把家庭作业软件版本卖给用户,这样有损公司的品牌形象。
八、测试不是保证软件质量的唯一手段
现在软件测试越来越受到各种软件公司的重视,有些软件公司甚至把测试作为软件产品质量的主要保证手段,有BUG如果测试人员没有测试出来而交付给用户,要多测试人员进行处罚。重视测试是好的,没有什么错误,但是软件的BUG首先是“软件设计”设计出来的,是“软件编码”编出来的,而不是测试测出来的,所以我们提高软件质量要往源头去追,在软件设计、编码阶段就要想办法控制BUG产生了,到测试阶段在找出BUG代价就比较高了。
九、行业软件特点:
做国人的软件必须要研究中国的国情、民俗、民生、制度,老讲国外的软件如何的好没有意义,除非你的软件是要卖给老外的,国人的软件内涵远远超过软件开发本身的技术、知识,在国内的行业软件中可能会包括:位置、利益、朋友关系、内部人员竞争等等纯软件之外的东东,这个功课是要做的,否则不好混饭吃。
十、软件苦旅:
软件开发行业辛苦,最辛苦就是它不同于其它的任何传统行业,做软件需要:活到老,学到老。每一个新的开发项目都要全新的设计,更不用说知识、技术不断的更新换代,所以要永不停歇的动脑筋,思考问题,学习新知识。其它行业很少这样,医生看病,感冒就是感冒,十年后可能还是感冒,治疗方法还是多喝水,医生开个处方那几个字与你编码的工作量能比吗?软件行业不是这样的,一辈子要动脑筋,所以是个辛苦的旅程,咱要是年轻时知道是这样,百分之百不会选择这个专业的。维系你的这种苦旅的唯一的精神支柱可能就是高收入,如果多年后都不能实现这个目标,早转行可能出路比较好。钱钟书老先生讲过:里面的想出去、外面的想进来。苦海无边、回头是岸,哈哈。
原文地址:http://club.xasoft.org/?uid-1154-action-viewspace-itemid-8687
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/183473/viewspace-681966/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/183473/viewspace-681966/