6

Robert C. Martin列举的专业软件开发人员必须精通的技能

 3 years ago
source link: https://blog.csdn.net/LoveLion/article/details/8517215
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Robert C. Martin列举的专业软件开发人员必须精通的技能

      在世界顶级软件开发大师Robert C. Martin(Bob大叔)最新力作The Clean Coder: A Code of Conduct for Professional Programmers(《程序员的职业素养》,章显洲、余晟译,人民邮电出版社,2012年)一书中,他结合自己40多年的软件开发经验(1969年至今),列出了他所认为的一个专业软件开发人员必须精通的事项(与原书中次序保持一致),原文是:Here is a minimal list of the things that every software professional should be conversant with:

      ■ Design Patterns(设计模式):You ought to be able to describe all 24 patterns in the GOF book and have a working knowledge of many of the patterns in the POSA books.

      必须能描述GoF书中的全部24种模式(应该是把简单工厂模式也算进去了,包括6种创建型模式、7种结构型模式和11种行为型模式),同时还要有POSA(即Pattern-Oriented Software Architecture<面向模式的软件架构>系列丛书,一共5卷。第1卷综合介绍模式系统和软件架构,广泛地引入了软件设计和架构中的通用模式;第2卷介绍用于并发和网络化对象的模式,专注于建立复杂的并发和网络软件系统与应用程序的基本模式;第3卷介绍资源管理模式,即那些在系统中实现有效的资源管理所需的技术;第4卷介绍分布式计算的模式语言,介绍了一种模式设计语言,将分布式系统开发中的114个模式联系起来;第5卷介绍模式与模式语言,从分析单个模式入手,深入探究了模式之间的关系,介绍了如何将模式和模式语言相结合)书中的多数模式的实战经验。

      ■ Design principles(设计原则):You should know the SOLID principles and have a good
understanding of the component principles.

      必须知晓SOLID(分别是单一职责原则Single Responsibility Principle,开闭原则Open-Closed Principle,里氏代换原则Liskov Substitution Principle,接口隔离原则Interface  Segregation Principle,依赖倒转原则Dependency Inversion Principle,其中依赖倒转原则就是Bob大叔1996年提出来的)原则(个人觉得从完整性出发,还应该加上合成复用原则Composite Reuse Principle迪米特法则Law of  Demeter),而且要深刻理解组件设计原则(面向组件设计的一些原则,在设计组件时我们也需要遵循一些原则,例如重用-发布等价原则REP共同重用原则CRP共同封闭原则CCP无环依赖原则ADP稳定依赖原则SDP稳定抽象原则SAP等)。

      ■ Method(方法):You should understand XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, and Structured Design.

      必须理解极限编程、Scrum、精益、看板、瀑布、结构化分析和结构化设计。

      ■ Disciplines(实践):You should practice TDD, Object-Oriented design, Structured Programming, Continuous Integration, and Pair Programming.

      必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。

      ■ Artifacts(工件):You should know how to use: UML, DFDs, Structure Charts, Petri Nets, State Transition Diagrams and Tables, flow charts, and decision tables.

      必须知道如何使用UML、DFD数据流图、结构图、Petri网络图、状态转换图表、流程图和决策树。

     上述技能,你又精通多少呢?吐舌头

The Clean Coder: A Code of Conduct for Professional Programmers

Uncle Bob

【作者:刘伟 http://blog.csdn.net/lovelion


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK