複用- build for last (轉)
by Zhang Hui
去年有一本書,英文名叫build for last,中文名應該是"基業長青"
這句話反映到上就是"複用"
雖然最初人們的理想"軟體IC"看來是很難實現了,但是,"複用"的思想還是在我們的生活中時時處處體現著.
普遍的形式是copy+paste,然後修修改改.高檔一點的形式等基於二進位制的複用.具體到我們個人,如果我們寫程式碼的目標不是"能轉就行",那麼我們應該瞄準"複用",基於這個目標,我們思考軟體的寫法會有差異.
如果我們希望,自己的code能被別人以copy+paste的形式複用,那麼至少因該清晰,簡潔,有適當的註解.
如果我們希望自己的code能別人以類庫的形式複用,那麼應該保持介面的清晰,功能完整,並且各個介面測試充分.最好有相應的sample code.
至於各種各樣的基於二進位制上的複用,如下的small & sh的工具理念和Net的想法,都需要具體的平臺支援,已經超出個人所能干預的範圍,這裡就不說了
練武的人常說境界,也一樣.
層次一:會用C++等OO語言編出面相的軟體
層次二:能寫出封裝嚴謹,介面完善的類庫,這是一個人說"我掌握了面相物件思想"的基本條件
層次三:理解Frame Work,能解析流行的Frame Work, 最好能寫出MFC Lite和VCL Lite.候捷,3721的CEO據說都能做到這個層次.普通的人,能努力做到層次三就很不錯了.
層次四:當然是設計Frame Work了. MFC, VCL, 以及Emacs的作者無疑都是具有這方面功力的人
更高的層次我目前還看不到,就不造次了.
只為了寫出"能轉"的,那麼你只是以寫程式謀生
能主動去寫可以複用的軟體,那麼你有更高的精神追求.
如果說一個物的生命價值在於它所能惠及的範圍和時間,那麼,程式設計師,如果你珍惜自己的職業生涯的話,就請不斷追求更高的"複用"層次吧.
=======================================
版權所有 copyright 張輝
本文可原封不動的複製和自由地再發行,但在複製和再發行的複製中必須
原封不動地含有這段版權宣告。
http://forestsong.blogone.net
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998130/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql last_insert_id() (轉載)MySqlAST
- ABS - the Arch Build System(轉)UI
- :last-child與:last-of-type你只是會用,有研究過區別嗎?AST
- [轉]分析函式 last_value的使用函式AST
- 埠複用動態地址轉換
- 基本複製應用例項(轉)
- jQuery last()jQueryAST
- Last WinnerAST
- Last danceAST
- 關於軟體複用的思考 (轉)
- perl next, last, regular expression 實用場景ASTExpress
- Flutter 專案自增 build 號,不做重複勞動FlutterUI
- 7.121 LASTAST
- Who is the Last Change?AST
- 【轉】Ant之build.xml詳解UIXML
- E:last-child與E:last-of-type區別AST
- GTID複製報錯處理:Last_Error: Error 'Can't drop database 'test';ASTErrorDatabase
- MySQL主從複製Last_SQL_Errno錯誤程式碼彙總說明MySqlAST
- jQuery :last-of-typejQueryAST
- jQuery :last-childjQueryAST
- linux命令:lastLinuxAST
- java基礎-複用類-複用方式(2)Java
- 【MySQL】Last_IO_Errno: 1593 server-uuid重複導致slave報錯MySqlASTServerUI
- 用Word突破網頁無法複製的限制(轉)網頁
- 多路複用
- Last digit of a huge numberASTGit
- CSS E:last-childCSSAST
- CSS E:last-of-typeCSSAST
- jQuery :nth-last-of-type()jQueryAST
- jQuery :nth-last-child()jQueryAST
- jQuery :last選擇器jQueryAST
- Length of Last Word leetocde javaASTJava
- 使用shell指令碼build並建立ipa檔案(轉)指令碼UI
- 編寫build.xml的12個原則 (轉)UIXML
- Oracle 多路複用Oracle
- 一文打盡埠複用 VS Haproxy埠複用
- 7.122 LAST_DAYAST
- 天國的《The Last Night》AST