- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何编写优秀的软件
——赵新学老师谈软件开发
作为每一名程序员,都希望自己能编写出非常优秀的软件,而要写出好的软件,并非易事,需要有良好的编程习惯,一流的技术水平和丰富的实践经验。作为北大青鸟的一名老师,我一直从事着ACCP课程的教学工作。通过多年的开发经验和教学经验以及在学生中发现的问题,我现在来谈谈软件开发,希望能帮助各位学员编写出优秀的软件,成为出色的软件工程师。
需要的便是最好的。对于公鸡来说,麦粒胜过钻石。
需要的东西才是最好的。对于公鸡来说,钻石对它没有任何价值,它不能吃,也不能用。而对于人来说,钻石可能非常有用,因为我们需要。
那么什么样的软件才是最好的软件呢?需要的便是最好的,满足用户需求的软件才是最好的软件。我们开发软件的时候一定要以用户为中心,为用户设计软件。而不要站在自己的角度来设计软件,更不能更改用户的需求。
有些学生在考试的时候,更改试题的题目,不按题目要求来做,这是非常错误的。我跟他们说,试题就是用户的需求,如果试题要求的你没有做,就不能得分,做多了不能加分。同样,用户要求你开发一个软件,你没有按照他的要求来开发,他不会给你钱,你开发了多余的功能,他也不会多给你钱。我们开发软件,一定要按照用户的要求来开发,需要的便是最好的。
开发软件一定要以用户为中心,不要以自己为中心。你是为用户开发软件,软件是卖给用户的,不是卖给你自己的。所以你觉得好不一定好,只有用户觉得好才是好软件。一次答辩会上,一个学生的界面用鲜艳的颜色做背景,我觉得不太合适,我就问:“你项目中的背景颜色合理吗?”,他说:“我觉得很好看”。很明显,这样的软件一定是失败的,他不是站在使用者角度看问题。同样在答辩会上,有些学生讲解项目的时候,如果是可视化的项目,一个菜单一个菜单的讲,如果是Web程序,一个网页一个网页的讲。如果你是以设计者的角度来讲解的话,只有你自己能听懂,也只有你自己可能愿意听。我们应该站在使用者角度来讲解项目。比如我要讲解一个网上书店,先打开主页,然后分类浏览,浏览后可能要搜索书籍,加入购物车,登录,注册,下定单等等。用户怎么用,我们怎么讲,这样用户更容易理解。
提高软件的可读性。
很多程序员都知道,如果软件没有可读性。那么就无法协同开发,因为别人无法阅读你的代码。同样软件没有可读性,可能过一段时间自己都看不懂自己写的代码了,这样的代码可能就成了一次性代码,再也不能修改和使用了。
怎样提高软件的可读性。有经验的编程人员会告诉你:使用规范的命名,合理的分层结构,完整的文档及注释。我不会这样跟你说,因为检验软件可读性的标准不仅仅是这些。那么我告诉你,要想让你的软件具有很好的可读性,你应该这样做:把你的代码给你班上的所有同学和老师阅读。如果他们能够看懂,那么你的代码具有很好的可读性。如果连老师都看不懂,那么你的代码可读性就非常差。同样,作为程序员要有很好的沟通能力和语言表达能力。那么怎样训练自己的表达能力以及知道自己的表达能力是否过关呢?当同学遇到问题,给同学讲解,如果他能听懂,说明你的表达能力不错,如果所有人都听不懂,你的沟通和表达一定存在问题。我们把自己的代码给其他人看,一方面可能检验自己的代码是否具有可读性,另一方面也可以帮助其他同学。同样,同学有问题我们帮助讲解,一方面可以提高和检验自己的表达能力,也能帮助其他同学学习知识。记住:帮助别人就是帮助自己。一个晚上一个瞎子提着灯笼,路上一个行人看到这个瞎子对他说,你一个瞎子,提着灯笼干什么,又看不见。瞎子说:我提着灯笼,是为了照亮别人,让别人看清楚,以至于不撞到我。帮助别人就是帮助自己呀!世界级软件大师Eric Gamma(设计模式之父、JUnit设计者、Eclipse架构师)说的好:“我们每个人都需要别人的关怀和帮助,每个人也需要关怀和帮助别人。”
具有良好的复用性和灵活性。
使用面向对象的开发技术,能很好的支持复用性和灵活性。封装和继承是用来复用的,多态是用来实现灵活性的。
复用非常重要,可以开发大型应用程序。我们到处可以看到复用技术,封装是让变动的事物和不变的事物彼此隔离,不变的事物就可以复用了。而继承很明显在复用基类代码。框架技术也是在复用,用户控件是在复用,母版页是在复用,三层结构也是在复用代码。复用不是复制。复用是重复调用,复制是到处拷贝代码。复用是很好的,复制是很差的。
用户的需求经常变化,那么怎么提高软件的应对变化的特性(也就是灵活性)。多态性是用来实现灵活性的。我举一个接口的例子,在Java和C#中都有接口,为什么要使用接口,为什么要用接口作为方法的参数。在计算机中我们可以看到USB接口,那么为什么用USB接口呢?因为使用USB接口后,就可以连接所有使用USB接口的设备了,今天你可以接打印机,明天可以接鼠标,后天可以接移动硬盘,再后天你可以接数码相机,只要它
文档评论(0)