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】
Robert C. Martin列举的专业软件开发人员必须精通的技能相关推荐
- 专业软件开发人员必须具备的专业技能
文章目录 前言 主题:专业软件开发人员必备的专业技能 总结 前言 最近在阅读Bob大叔的著作:<代码整洁之道:程序员的自我修养>,里面的内容对软件开发人员的提升很有帮助,这里记录下阅读笔记 ...
- (转)软件开发人员如何提高自己的软件专业技术方面的具体建议
哲学就是用简单的说话来体现出隐含深层意义的道理,让人们去思考和体会.哲学本身就是用来完善自己的精神修养和帮助他人完善思想的. 哲学的特征在于追问本质,不断反思.内容上,哲学的反思对象无所不包:深度上, ...
- 专访刘伟:软件开发人员的内功修炼之道
摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授--刘伟.他对数学修养.设计模式.软件架构和重构方面的独特见 ...
- 软件开发人员的内功修炼之道
摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授--刘伟.他对数学修养.设计模式.软件架构和重构方面的独特见 ...
- 编码整洁之道:专业程序员的行为准则(英文版)
<编码整洁之道:专业程序员的行为准则(英文版)> 基本信息 作者: [美]Robert C. Martin(罗伯特 C. 马丁) [作译者介绍] 出版社:电子工业出版社 ISBN:9787 ...
- Robert C. Martin The Principles of OOD 面向对象设计原则
本文由来自美国业界大牛--Robert C. Martin(俗称"Bob大叔) 发布在 butunclebob.com 上,已获得翻译授权. 英文原文链接:http://butunclebo ...
- 定制开发软件所有权_职业所有权软件开发人员指南
定制开发软件所有权 介绍 (Introduction) 您的职业正在流向大海吗? (Is Your Career Drifting Out To Sea?) Like a frog who's slo ...
- 软件访问转向本地_我是如何从完整的初学者转向软件开发人员的,以及如何做到的...
软件访问转向本地 by Madison Kanna 麦迪逊·卡纳(Madison Kanna) 我是如何从完整的初学者转向软件开发人员的,以及如何做到的 (How I went from comple ...
- 银行软件开发实习生_如何找到学生的软件开发人员实习生
银行软件开发实习生 by Grazietta Hof 由Grazietta Hof 如何找到学生的软件开发人员实习生 (How to find a Software Developer Interns ...
最新文章
- 谷歌全方位自曝Waymo无人车技术方案 | 42页报告要点解读+下载
- 如何继承和重写一个Bundle的某部分
- HTML5 Audio标签方法和函数API介绍
- XML 序列化与反序列化
- MapReduce分区-代码实现
- 小程序 || 语句_C ++开关语句| 查找输出程序| 套装1
- 数据库直接存图片mysql_教你如何在MySQL数据库中直接储存图片
- java基本框架代码_Rxjava 源码系列 - 基础框架分析
- 项目开发文档是必须的
- 选股公式 成功率测试 软件,通达信股票软件选股公式,99%的成功率,你还等什么?...
- Weblogic部署
- c r 语言教程,R语言初级教程
- Python爬虫入门-fiddler抓取手机新闻评论
- 6m缓存和8m缓存差距_全能工具箱一款专门为安卓设备研发的综合型系统管理工具。实时内存、进程清理、缓存清理、SD卡文件管理、历史记录清除、开机项管理!...
- 测试设计点-pc端和移动端微信加入群聊
- 计算机课题推荐人意见,课题申报书推荐人意见
- 安卓混淆-微信混淆同款
- Hibernate查询性能优化技巧
- php imap 存草稿,学习猿地-PHP-imap 使用参考
- 一款好用的时间控件(时间选择器)-jeDate