在世界顶级软件开发大师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】

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

  1. 专业软件开发人员必须具备的专业技能

    文章目录 前言 主题:专业软件开发人员必备的专业技能 总结 前言 最近在阅读Bob大叔的著作:<代码整洁之道:程序员的自我修养>,里面的内容对软件开发人员的提升很有帮助,这里记录下阅读笔记 ...

  2. (转)软件开发人员如何提高自己的软件专业技术方面的具体建议

    哲学就是用简单的说话来体现出隐含深层意义的道理,让人们去思考和体会.哲学本身就是用来完善自己的精神修养和帮助他人完善思想的. 哲学的特征在于追问本质,不断反思.内容上,哲学的反思对象无所不包:深度上, ...

  3. 专访刘伟:软件开发人员的内功修炼之道

    摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授--刘伟.他对数学修养.设计模式.软件架构和重构方面的独特见 ...

  4. 软件开发人员的内功修炼之道

    摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授--刘伟.他对数学修养.设计模式.软件架构和重构方面的独特见 ...

  5. 编码整洁之道:专业程序员的行为准则(英文版)

    <编码整洁之道:专业程序员的行为准则(英文版)> 基本信息 作者: [美]Robert C. Martin(罗伯特 C. 马丁) [作译者介绍] 出版社:电子工业出版社 ISBN:9787 ...

  6. Robert C. Martin The Principles of OOD 面向对象设计原则

    本文由来自美国业界大牛--Robert C. Martin(俗称"Bob大叔) 发布在 butunclebob.com 上,已获得翻译授权. 英文原文链接:http://butunclebo ...

  7. 定制开发软件所有权_职业所有权软件开发人员指南

    定制开发软件所有权 介绍 (Introduction) 您的职业正在流向大海吗? (Is Your Career Drifting Out To Sea?) Like a frog who's slo ...

  8. 软件访问转向本地_我是如何从完整的初学者转向软件开发人员的,以及如何做到的...

    软件访问转向本地 by Madison Kanna 麦迪逊·卡纳(Madison Kanna) 我是如何从完整的初学者转向软件开发人员的,以及如何做到的 (How I went from comple ...

  9. 银行软件开发实习生_如何找到学生的软件开发人员实习生

    银行软件开发实习生 by Grazietta Hof 由Grazietta Hof 如何找到学生的软件开发人员实习生 (How to find a Software Developer Interns ...

最新文章

  1. 谷歌全方位自曝Waymo无人车技术方案 | 42页报告要点解读+下载
  2. 如何继承和重写一个Bundle的某部分
  3. HTML5 Audio标签方法和函数API介绍
  4. XML 序列化与反序列化
  5. MapReduce分区-代码实现
  6. 小程序 || 语句_C ++开关语句| 查找输出程序| 套装1
  7. 数据库直接存图片mysql_教你如何在MySQL数据库中直接储存图片
  8. java基本框架代码_Rxjava 源码系列 - 基础框架分析
  9. 项目开发文档是必须的
  10. 选股公式 成功率测试 软件,通达信股票软件选股公式,99%的成功率,你还等什么?...
  11. Weblogic部署
  12. c r 语言教程,R语言初级教程
  13. Python爬虫入门-fiddler抓取手机新闻评论
  14. 6m缓存和8m缓存差距_全能工具箱一款专门为安卓设备研发的综合型系统管理工具。实时内存、进程清理、缓存清理、SD卡文件管理、历史记录清除、开机项管理!...
  15. 测试设计点-pc端和移动端微信加入群聊
  16. 计算机课题推荐人意见,课题申报书推荐人意见
  17. 安卓混淆-微信混淆同款
  18. Hibernate查询性能优化技巧
  19. php imap 存草稿,学习猿地-PHP-imap 使用参考
  20. 一款好用的时间控件(时间选择器)-jeDate

热门文章

  1. K-means算法的原理、优缺点
  2. 手机游戏串号被封之后靠谱的解封方法
  3. 让每一天有意义,一生的学习软件推荐
  4. STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗
  5. “杀人”套路贷:借1万,3个月后要还60万
  6. cas-ESM 安装教程
  7. STC8G单片机功能和应用电路
  8. Matlab微分方程的求解
  9. python椭圆识别_opencv python中的椭圆检测
  10. 【能效管理】AcrelEMS-UT综合管廊能效管理平台解决方案应用分析