在世界頂級軟件開發(fā)大師 Robert C. Martin(Bob大叔) 最新力作 The Clean Coder: A Code of Conduct for Professional Programmers( 《程序員的職業(yè)素養(yǎng)》 ,章顯洲、余晟譯,人民郵電出版社,2012年) 一書中,他結(jié)合自己40多年的軟件開發(fā)經(jīng)驗(1969年至今),列出了他所認(rèn)為的一個專業(yè)軟件開發(fā)人員必須精通的事項(與原書中次序保持一致),原文是: Here is a minimal list of the things that every software professional should be conversant with:
■ Design Patterns(設(shè)計模式) :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種模式(應(yīng)該是把簡單工廠模式也算進(jìn)去了,包括6種創(chuàng)建型模式、7種結(jié)構(gòu)型模式和11種行為型模式),同時還要有 POSA (即Pattern-Oriented Software Architecture<面向模式的軟件架構(gòu)>系列叢書,一共5卷。 第1卷 綜合介紹模式系統(tǒng)和軟件架構(gòu),廣泛地引入了軟件設(shè)計和架構(gòu)中的通用模式; 第2卷 介紹用于并發(fā)和網(wǎng)絡(luò)化對象的模式,專注于建立復(fù)雜的并發(fā)和網(wǎng)絡(luò)軟件系統(tǒng)與應(yīng)用程序的基本模式; 第3卷 介紹資源管理模式,即那些在系統(tǒng)中實(shí)現(xiàn)有效的資源管理所需的技術(shù); 第4卷 介紹分布式計算的模式語言,介紹了一種模式設(shè)計語言,將分布式系統(tǒng)開發(fā)中的114個模式聯(lián)系起來; 第5卷 介紹模式與模式語言,從分析單個模式入手,深入探究了模式之間的關(guān)系,介紹了如何將模式和模式語言相結(jié)合)書中的多數(shù)模式的實(shí)戰(zhàn)經(jīng)驗。
■Design principles(設(shè)計原則)
:You should know the SOLID principles and have a good
understanding of the component principles.
必須知曉 SOLID (分別是 單一職責(zé)原則 Single Responsibility Principle,開閉原則 Open-Closed Principle,里氏代換原則Liskov Substitution Principle,接口隔離原則Interface Segregation Principle,依賴倒轉(zhuǎn)原則Dependency Inversion Principle,其中依賴倒轉(zhuǎn)原則就是Bob大叔1996年提出來的 )原則(個人覺得從完整性出發(fā),還應(yīng)該加上 合成復(fù)用原則Composite Reuse Principle 和 迪米特法則Law of Demeter ),而且要深刻理解 組件設(shè)計 原則 (面向組件設(shè)計的一些原則,在設(shè)計組件時我們也需要遵循一些原則,例如 重用-發(fā)布等價原則REP 、 共同重用原則CRP 、 共同封閉原則CCP 、 無環(huán)依賴原則ADP 、 穩(wěn)定依賴原則SDP 、 穩(wěn)定抽象原則SAP 等) 。
■ Method(方法) :You should understand XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, and Structured Design.
必須理解極限編程、Scrum、精益、看板、瀑布、結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計。
■ Disciplines(實(shí)踐) :You should practice TDD, Object-Oriented design, Structured Programming, Continuous Integration, and Pair Programming.
必須掌握測試驅(qū)動開發(fā)、面向?qū)ο笤O(shè)計、結(jié)構(gòu)化編程、持續(xù)集成和結(jié)對編程。
■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數(shù)據(jù)流圖、結(jié)構(gòu)圖、Petri網(wǎng)絡(luò)圖、狀態(tài)轉(zhuǎn)換圖表、流程圖和決策樹。
上述技能,你又精通多少呢?
The Clean Coder: A Code of Conduct for Professional Programmers
Uncle Bob
【作者:劉偉 http://blog.csdn.net/lovelion 】
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
