论文部分内容阅读
成为一名好的软件开发员不仅要终身学习,而且要避免软件开发中常见的七宗罪。
——尼尔·麦卡利斯特
成为一名好的软件开发人员不仅需要终身学习,还要避免软件开发中常见的七宗罪——欲望强烈、胃口大、贪婪、懒惰、愤怒、嫉妒和骄傲。
第一宗罪——欲望强烈 。当前,编程语言逐渐成熟,新的关键字、旨在提高代码可读和可重用性的结构被广泛使用,编程的规则也随之改变,程序员需要研读大量设计模式资料。但纸上知识在实践中并不一定有效。编程大师乔尔·斯波斯基说:“能售出是产品开发的一个很重要的目标。”迷恋工具的程序员会忽略这一点,请采取有效的措施抑制沖动,。
第二宗罪——胃口大。一旦产品问世,你会忍不住开始筹划更新。它可以有什么新特性?哪些方面在第一轮开发中没考虑到?程序员容易重复犯同样的错误,导致代码库臃肿且难于管理。评估你现有代码的质量和可维护性,使代码重构成为每一轮开发的注意事项之一。
第三宗罪——贪婪。自己团队闭门写的代码库,实现的却是其他团队已写代码的一大半功能。开发团队如果缺乏明确的目标,就会重复劳动,产生多余而失控的代码库。经营性开发项目的首要任务之一是确保每个参与者知道别人在做什么。分享应该是座右铭。
第四宗罪——懒惰。缺少输入验证,这个看似业余的错误却经常出现在经验丰富的程序员编写的代码中。许多安全漏洞可以追溯到未验证用户的输入格式是否正确。许多工具可以帮助程序员避免这种情况发生。输入验证应当在程序的核心部分,而不是在用户界面上,不这样做,就是偷懒。
第五宗罪——愤怒。程序员很容易忘记,他们写的代码会比他们在某个公司呆的时间还长,接任者很难搞清楚每个代码片断的意思。因此,手下留情吧,多给他们一些提示。但请记住,注释难以理解或注释太多,和没有注释一样糟糕。代码本身就已说明做什么了,注释只需说明原因即可。
第六宗罪——嫉妒。也许你有理由不实施项目版本控制,但功能强大、有效的版本控制系统已经免费,服务供应商甚至提供分布式项目主机代码,实施项目版本控制变得非常容易。因此,你应该在开始一个项目时先建一个代码库,除非你能忍受除了你之外的所有人都可以修改代码。
第七宗罪——骄傲。除非已经用特殊测试验证过代码,不然,你不能确定软件没有缺陷。但有太多开发人员不做代码单元测试,他们声称测试不能完善功能。一些开发者甚至不把质量测试列入项目预算。有缺陷的代码到达客户手中后再进行修正已经太迟。卖出软件前的测试越多,越能控制损失。
——尼尔·麦卡利斯特
成为一名好的软件开发人员不仅需要终身学习,还要避免软件开发中常见的七宗罪——欲望强烈、胃口大、贪婪、懒惰、愤怒、嫉妒和骄傲。
第一宗罪——欲望强烈 。当前,编程语言逐渐成熟,新的关键字、旨在提高代码可读和可重用性的结构被广泛使用,编程的规则也随之改变,程序员需要研读大量设计模式资料。但纸上知识在实践中并不一定有效。编程大师乔尔·斯波斯基说:“能售出是产品开发的一个很重要的目标。”迷恋工具的程序员会忽略这一点,请采取有效的措施抑制沖动,。
第二宗罪——胃口大。一旦产品问世,你会忍不住开始筹划更新。它可以有什么新特性?哪些方面在第一轮开发中没考虑到?程序员容易重复犯同样的错误,导致代码库臃肿且难于管理。评估你现有代码的质量和可维护性,使代码重构成为每一轮开发的注意事项之一。
第三宗罪——贪婪。自己团队闭门写的代码库,实现的却是其他团队已写代码的一大半功能。开发团队如果缺乏明确的目标,就会重复劳动,产生多余而失控的代码库。经营性开发项目的首要任务之一是确保每个参与者知道别人在做什么。分享应该是座右铭。
第四宗罪——懒惰。缺少输入验证,这个看似业余的错误却经常出现在经验丰富的程序员编写的代码中。许多安全漏洞可以追溯到未验证用户的输入格式是否正确。许多工具可以帮助程序员避免这种情况发生。输入验证应当在程序的核心部分,而不是在用户界面上,不这样做,就是偷懒。
第五宗罪——愤怒。程序员很容易忘记,他们写的代码会比他们在某个公司呆的时间还长,接任者很难搞清楚每个代码片断的意思。因此,手下留情吧,多给他们一些提示。但请记住,注释难以理解或注释太多,和没有注释一样糟糕。代码本身就已说明做什么了,注释只需说明原因即可。
第六宗罪——嫉妒。也许你有理由不实施项目版本控制,但功能强大、有效的版本控制系统已经免费,服务供应商甚至提供分布式项目主机代码,实施项目版本控制变得非常容易。因此,你应该在开始一个项目时先建一个代码库,除非你能忍受除了你之外的所有人都可以修改代码。
第七宗罪——骄傲。除非已经用特殊测试验证过代码,不然,你不能确定软件没有缺陷。但有太多开发人员不做代码单元测试,他们声称测试不能完善功能。一些开发者甚至不把质量测试列入项目预算。有缺陷的代码到达客户手中后再进行修正已经太迟。卖出软件前的测试越多,越能控制损失。