精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
做一個專業軟件開發必須精通的事項,你還差多少

做一個專業軟件開發必須精通的事項,你還差多少

2013-6-20 12:26:49    出處:ITeye-博客    作者:ITeye-博客    人氣:3426次    評論(14 | 【

這兩天讀bob大叔的《程序員的職業素養》,感覺作為一個專業的軟件開發人員不容易,身上頓時感覺壓力山大。

bob大叔認為作為一個專業軟件開發必須精通以下幾點

1、設計模式。必須能描述GOF書中全部24種模式,同時還要有POSA書中的多數模式的實戰經驗。

2、設計原則。必須了解SOLID原則,而且要深刻理解組件設計原則。

3、方法。必須理解XP、Scrum、精益、看板、瀑布、結構化分析及結構化設計等。

4、實踐。必須掌握測試驅動開發、面向對象設計、結構化編程、持續集成和結對編程。

5、工件。必須了解如何使用UML圖、DFD圖、結構圖、Petri網絡圖、狀態遷移圖表、流程圖和決策圖。

自我總結:

在bob大叔說的這幾點中,我能做到幾點呢?認識思想一下,發現大概有這么幾點能做到:

1、設計模式,這些年來國內很多關于設計模式的書,讀大學時代看《大話設計模式》,只是把大鳥和小菜的對話當做故事書來看,很多設計模式的知識只是看了就忘記,后面工作后買了本《Java與模式》來看,發現其中設計模式的思想挺好的,作者通過講些中國傳統故事來形容和講述設計模式,通過這本書學習到了不少設計模式的思想,但是老是就忘,后面隨著編程經驗的增長,了解到設計模式其實就是OO思想和設計原則的產物,設計模式不是去學的,應該是感悟的,是我們程序員通過工作經驗去感悟的,感悟設計模式才能掌握設計模式的精髓,才能學會怎么去開發高可擴展性程序,設計模式不是多少種去說的,而且一種怎么開發高擴展高可維護性程序的思想和實踐。說來慚愧設計模式現在24種大多數了解其思想,但是現實編程使用的不多。如果要學習重構編程法,設計模式比不可少,福勒的《重構》很多手法就是往設計模式方面靠攏。

2、設計原則SOLID,以下這些是我這幾年個人的感悟:

SRP The Single Responsibility Principle單一責任原則:當需要修改某個類的時候原因有且只有一個,讓一個類只有一個職責,當這個類需要承當其他類型的責任的時候,就需要分解這個類。這也是bob大叔在《代碼整潔之道》關于類這一章說的,讓類小盡可能的小,承擔的職責單一,這樣才能保持代碼的整潔性,不會讓這個類經常由于其他職責的原因而需要修改,這也是達到關閉修改的方式和手段。

OCP The Open Closed Principle開放封閉原則:對擴展是開放的,而對修改是封閉的。這個原則是諸多面向對象編程原則中最抽象、最難理解的一個。其實這個原則我感覺是OO思想最核心的思想,怎么樣提高程序的擴展性而又不用去修改以前的代碼,這是我們變成中需要注意的問題,當然很多設計模式就可以達到這種效果,工廠、策略模式等都是為了這些而工作的。

LSP The Liskov Substitution Principle里氏替換原則:所有的子類都可以替換其基類,這個原則其實是對編程語言的要求,只有實現這個原則,我們才能使用多態去創造靈活的程序。

DIP The Dependency Inversion Principle依賴倒置原則:高層模塊不應該依賴于低層模塊,二者都應該依賴于抽象。抽象不應該依賴于細節,細節應該依賴于抽象。其實這些都是為了對擴展開放這個原則服務的,Spring的IOC,策略模式這類東西都通過接口去聲明其實現類,達到修改和替換子類不影響現有代碼的實現。一切都依賴于接口,程序直接的耦合在于其抽象而不在于其具體實現,bridge模式和抽象工廠就是其經典實現。

ISP The Interface Segregation Principle接口分離原則:不能強迫用戶去依賴那些他們不使用的接口。換句話說,使用多個專門的接口比使用單一的總接口總要好。這個原則想表達的思想和單一責任原則有點像,一個接口的方法多了,所有的子類都需要去實現它們,當有一天某幾個子類需要增加一個方法時候,考慮把它放到接口里面,但是又影響了其他子類,使得其他子類需要實現這個方法,所以接口要盡可能的小。

3、方法:XP、Scrum、精益、看板、瀑布、結構化分析及結構化設計,這些只是對瀑布、Scrum、迭代開發實踐過,極限編程(XP)、精益、結構化分析及結構化設計都是了解一些皮毛,這些方面都得努力去學習和實踐。

4、實踐:測試驅動開發、面向對象設計、結構化編程、持續集成和結對編程,對面向對象設計有所涉及但不深入只能說剛入門,測試驅動開發了解這種思想,只會寫簡單的單元測試,沒有在項目中經歷過測試覆蓋開發的工作,其他結構化編程、持續集成和結對編程都是了解一點沒用深入理解和實踐過。

5、使用過UML和流程圖,其他幾個圖都沒有用過和了解過。UML圖在工作中只有半年多的設計工作中使用過,需要深入理解。

路漫漫其修遠兮,吾將上下而求索,學習技術之路很漫長。做一個專業的程序員不容易,需要多加努力,使自己成為一個專業的程序員,成為一個具備職業素養的程序員。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
快速理解
dart設計模式的六大原則
編程核心思想:模塊的抽象、分解與組合,及實現其高內聚、低耦合
??C#零基礎到入門 ??| 帶你認識編程中的—23種設計模式 & 六大設計原則
Java程序員應當知道的10個面向對象設計原則
設計模式-六大原則
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 彝良县| 红原县| 中牟县| 贵港市| 佛冈县| 革吉县| 溆浦县| 同仁县| 中山市| 芷江| 安乡县| 滦平县| 常熟市| 思茅市| 嘉峪关市| 黄冈市| 通江县| 成安县| 漠河县| 合山市| 琼结县| 正宁县| 凤庆县| 雅江县| 文安县| 博野县| 深泽县| 东乌珠穆沁旗| 乌鲁木齐县| 舞钢市| 新邵县| 玉溪市| 余庆县| 文昌市| 宾阳县| 陆河县| 蚌埠市| 平阳县| 都安| 宜川县| 舟曲县|