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

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