每个专业软件开发人员必须精通的5个事项
何谓专业?
专业人员会掌握所在行业应当掌握的一些专有技能。
而在很多实施GJB5000的组织中,专业的软件开发人员却是凤毛麟角。这些组织中大多数软件开发人员并非软件专业出身,有学自动化控制的,有学通信的……那是因为软件作为设备中的一个小小的组件,通常都由子系统或组件设计师来完成。
可是,软件在设备中的重要性日益增加,“软件定义世界”的说法已经被大家接受,软件开发人员不够专业怎么能行呢?
什么样的软件开发人员才能称为专业?
敏捷宣言发起人之一的Bob大叔认为,每个专业的软件开发人员必须精通以下5个事项:
设计模式
专业的软件开发人员必须掌握GoF所提炼的24个设计模式。因为设计模式是软件开发的最佳实践,是特定问题的解决方案。应用设计模式可以提高代码可复用性、可维护性、可读性、稳健性以及安全性。
PS:设计模式这个术语是上个世纪90年代由Erich Gamma、Richard Helm、Raplh Johnson和Jonhn Vlissides四个人总结提炼出来的,并且写了一本Design Patterns的书。这四人也被称为四人帮(GoF)。
设计原则
专业的软件开发人员必须精通6大设计原则:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。遵循这些原则可以设计出简单、可靠、优秀的软件。
方法
专业的软件开发人员必须精通各种开发方法:极限编程、精益开发、瀑布开发、结构化分析与设计等。不同的软件项目适用于不同的开发方法,软件开发人员应能根据项目的实际情况选择合适的开发方法。
实践
专业的软件开发人员应当精通各种软件工程实践:测试驱动开发、持续集成、面向对象分析和设计、结对编程等。这些实践已经被证明在特定的情况下的优秀,它们可以让软件开发人员如虎添翼。
工件/工具
专业的软件开发人员应当掌握各种分析和设计的工具:UML图,DFD图,结构图,流程图,状态图,决策表。这些工具能够帮助软件开发人员更好地完成需求获取、分析、定义以及软件设计和测试。
那么,你的组织中有专业的软件开发人员吗?
这正是:
软件日益显重要,开发人员须专业
专业技能有五项,尚未掌握心慌慌
参考书目:代码整洁之道:程序员的职业素养,作者:(美)罗伯特 C. 马丁(Robert C. Martin),出版社:人民邮电出版社