出版社:博碩
出版日期:2016年2月29日
ISBN:9789864340873
書號:MP11615
定價:260元 75折價:195元
有看部落格的才有此優惠喔
也可到露天購買http://goods.ruten.com.tw/item/show?21609922109450
內容簡介
本書名列中文原創經典第05號
本書為經典名著的最佳實踐
.Clean Code : A Handbook of Agile Software Craftsmanship
.Beautiful Code : Leading Programming Explain How They Think
.The Art of Readable Code
.Design Patterns : Elements of Reusable Object-Oriented Software
.Agile Software Development : Principles, Patterns, and Practices
.Refactoring : Improving The Design of Existing Code
程式碼的可讀性、可擴展性、可測試性是攸關程式碼品質的重要參考指標。本書教您如何寫好程式,分析劣質程式碼所帶來的不愉快經驗,主張採用接近自然語言的方式來書寫程式碼,並針對提升設計能力、英語能力,熟悉開發環境、瞭解程式語言等諸多方面提出相應的具體改善策略。
為什麼寫不出好的程式碼?
.對理論知識瞭解不夠會造成不佳的程式設計習慣,進而帶來潛在的Bug風險。
.受限於舊版本與程式語言的不熟悉,而無法掌握最新的產品特性來書寫更為精煉的程式碼。
.不瞭解設計方法而耗費大量時間,把簡單問題複雜化,重複實作已有完整解決方案的程式碼。
.設計方法不佳造成程式碼的問題,如重複與類似、長方法、複雜分支、類別膨脹。
.對於開發環境不夠熟悉,導致很多方便、快捷的功能沒有獲得良好的利用,如重構技術、外掛程式。
.能掌握的英語單詞量不足、語法不明確、詞性不熟悉等原因,造成程式碼在書寫上與閱讀上的苦惱。
.套用相似案例的快速學習法,使得程式碼未能保持最佳風格,甚至會因思慮不周而讓可讀性變差。
.為了快速完成功能而採用臨時的解決方案,往往留下了技術債務,無法因應系統的變動與修改Bug。
.在任務分配的管理模式下,程式師只是機械式地堆砌程式碼,無法在設計的環節上作全面性的思考。
優質程式碼的参考指標
本書就劣質程式碼產生的技術層面及原因提出了相關分析和探討。但書寫程式碼不僅是技術工作,更是一門藝術學問。好的程式碼應該是讓使用者能夠快速閱讀、容易測試、進行擴展。
程式碼就像是能夠自我表達的語言,如何採用接近自然語言的方式書寫程式碼,就像文章一樣讀起來朗朗上口,一看到程式碼就知道軟體執行什麼工作,那麼對程式碼的理解將不必再依靠繁雜的註解和厚厚的文件,而維護人員也不必擔心程式碼和文件或者註解不一致的問題了,程式碼本身就可以表明其作用。這就是自我表達程式碼(Self-Expressive Code)的概念。
<章節目錄>
Chapter 1 劣質程式碼帶來的劣質體驗
1.1 程式碼的可讀性問題
1.2 程式碼的可測試性問題
1.3 程式碼的可維護性問題
Chapter 2 劣質程式碼是怎麼產生的
2.1 理論知識匱乏
2.2 對程式語言不熟悉
2.3 對開發環境不熟悉
2.4 對設計方法不瞭解
2.5 程式設計的習慣不佳
2.6 英語能力不足
2.7 管理人員的誤導
Chapter 3 自我表達的程式碼
Chapter 4 理論知識的補充
4.1 物件導向的基礎知識
4.2 設計的基本原則
4.3 圈複雜度
Chapter 5 熟悉程式設計的環境
5.1 儲存動作與自動格式化
5.2 快速修復
5.3 重構
5.4 自動完成
5.5 瀏覽大綱
5.6 Eclipse快速鍵
Chapter 6 程式語言的學習
6.1 註記
6.2 例外
6.3 反射
6.4 泛型
Chapter 7 設計方法的學習
7.1 設計模式
7.2 相依性注入
7.3 Map的妙用
7.4 採用位元遮罩來減少類別的個數
7.5 List處理Z-Order
Chapter 8 英文能力的提升
8.1 詞性
8.2 時態
8.3 語法
8.4 否定詞
8.5 成對詞
8.6 近義詞
8.7 首碼、副檔名
8.8 縮寫
8.9 正確地用詞
Chapter 9 程式設計習慣的改進
9.1 命名方面的改進
9.2 註解方面的改進
9.3 風格方面的改進
9.4 結構方面的改進
9.5 架構方面的改進
Chapter 10 測試程式碼的自我表達改進
10.1 測試程式碼的可讀性
10.2 測試程式碼的可維護性
10.3 測試程式碼的可擴展性
10.4 測試語法
Appendix 參考資料
<作者介紹>
王洪亮
從事軟體發展工作12年,有豐富的架構設計和專案管理經驗,熟知英語和日語,熟悉多種平台的開發。曾在多家國際化企業工作,致力於程式碼可讀性、可擴展性、可變性、可測試性方面的研究。是敏捷開發的支持者與實踐者,曾擔任敏捷開發獨立諮詢師為多家企業提供服務,幫助企業建立相關的開發團隊,並為其改進工作方式。同時也對測試驅動開發、演進式設計有一定的實踐經驗。
留言列表