易讀程式之美學-提升程式碼可讀性的簡單法則 (The Art of Readable Code)
Dustin Boswell, Trevor Foucher 著、莊弘祥 譯
- 出版商: 歐萊禮
- 出版日期: 2013-04-29
- 定價: $480
- 售價: 7.9 折 $379
- 語言: 繁體中文
- ISBN: 9862767197
- ISBN-13: 9789862767191
-
相關分類:
Engineer self-growth
- 此書翻譯自: The Art of Readable Code (Paperback)
已絕版
買這商品的人也買了...
-
人月神話:軟體專案管理之道 (20 週年紀念版)(The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/e)$480$379 -
深入淺出設計模式 (Head First Design Patterns)$880$695 -
大話設計模式$620$490 -
重構─改善既有程式的設計, 2/e (Refactoring: Improving The Design of Existing Code)$800$632 -
學徒模式-優秀軟體開發者的養成之路 (Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman)$420$332 -
深入淺出 Python (Head First Python)$780$616 -
Debug Hacks 除錯駭客 -- 極致除錯的技巧與工具$580$458 -
版本控制使用 Git, 2/e (Version Control with Git: Powerful tools and techniques for collaborative software development, 2/e)$580$458 -
無瑕的程式碼 - 敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)$580$452 -
超圖解 Arduino 互動設計入門 (附 Arduino UNO R3 開發板)$1,130$961 -
Arduino UNO R3 開發板(副廠相容版)附傳輸線$400$380 -
搞懂 NoSQL 的 15 堂課 (NoSQL Distilled 中文版) (NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence)$360$284 -
Binary Hacks -- 駭客秘傳技巧一百招$580$458 -
Effective JavaScript 中文版 | 駕馭 JavaScript 的 68 個具體作法 (Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript)$450$356 -
無瑕的程式碼 番外篇-專業程式設計師的生存之道 (The Clean Coder: A Code of Conduct for Professional Programmers)
$360$281 -
無瑕的程式碼-敏捷軟體開發技巧守則 + 番外篇-專業程式設計師的生存之道 (雙書合購)$940$700 -
Kent Beck 的實作模式 (Implementation Patterns)$320$272 -
透視 C語言指標-深度探索記憶體管理核心技術 (Understanding and Using C Pointers)$480$379 -
設計模式的解析與活用 (Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/e)$480$374 -
超圖解 Arduino 互動設計入門, 2/e$680$578 -
改變世界的九大演算法 : 讓今日電腦無所不能的最強概念 (Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers)$360$284 -
ASP.NET MVC 5 網站開發美學$780$616 -
成為卓越程式設計師的 38 項必修法則 (Becoming a Better Programmer: A Handbook for People Who Care About Code)$680$537 -
無瑕的程式碼-整潔的軟體設計與架構篇 (Clean Architecture: A Craftsman's Guide to Software Structure and Design)$580$452 -
重構|改善既有程式的設計, 2/e (繁中平裝版)(Refactoring: Improving The Design of Existing Code, 2/e)$800$632
商品描述
身為程式設計師,我們曾經看過許多令人頭痛,醜陋又滿是臭蟲的程式碼,在過去五年間,Dustin Boswell 與 Trevor Foucher 兩位作者分析數百個「不良程式」範例(大多數是自己所撰寫),辨識出不良的原因以及改進方式。結論是?撰寫程式時應該儘量縮短其他人理解程式內容所需的時間 -- 即使他人代表的是程式設計師本人。
本書聚焦於基本原則以及能在日常撰寫程式時應用的實務技巧,透過不同程式語言呈現易於理解的程式範例,每章深入程式撰寫中不同的方面,示範如何能讓程式碼更易於理解。
.簡化命名方式、註解以及程式格式化(formatting)技巧,適用於每一行程式碼
.改善程式的迴圈、邏輯以及變數,降低複雜度並減少誤解
.從函數層級解決問題,例如重新組織程式碼的區塊,一次只處理一項工作
.撰寫有效的測試程式,完整、精簡同時又具有可讀性
目錄大綱
前言
1 程式碼應該易於理解
「更好」的意義?
可讀性基本定理
比較短的程式都比較好嗎?
最短理解所需時間與其他目標是否衝突
困難所在
第一部份 表層改善
2 富含資訊的名稱
選擇詞彙
避免 tmp 與 retval 之類的通用名稱
優先使用具體名稱而非抽象名稱
在名稱中加入額外資訊
名稱該有多長?
利用名稱格式加入更多意義
結語
3 不被誤解的名稱
範例:Filter()
範例:Clip(text, length)
包含邊界的極值優先使用 min 與 max
閉區間優先使用 first 與 last
半開放開區間優先使用 begin 與 end
布林值名稱
符合使用者的預期
範例:評估多個可用名稱
結語
4 美學
美學為何重要?
調整斷行讓程式更加一致與簡潔
使用方法(method)消除混亂
適當使用列對齊
選擇有意義的順序並堅守到底
將宣告組織成區塊
區分程式碼「段落」
個人風格與一致性
結語
5 認識註解
不該註解的部份
記錄自己的想法
為讀者設想
最後 - 避免作者區塊
結語
6 讓註解精確與簡潔
維持註解簡潔
避免模稜兩可的代名詞
修整草率的語句
精確描述函數行為
使用具代表性的輸入∕輸出範例
表達程式意圖
「函數參數名稱」的註解
使用訊息密集的詞彙
結語
第二部份 簡化迴圈與邏輯
7 提高控制流程可讀性
條件式中的條件順序
if/else 區塊順序
□: 條件式(也稱為「三元運算子」)
避免 do/while 迴圈
儘早由函數中返回
惡名昭彰的 goto
減少巢狀結構
能否理解執行流程?
結語
8 分解巨大表示式
解釋性變數
摘要變數
利用笛摩根定律
誤用捷徑邏輯
範例:與複雜邏輯搏鬥
分解巨大的敘述
另一個有創意的簡化手法
結語
9 變數與可讀性
消除變數
縮限變數的範圍(scope)
偏好單次寫入的變數
最後的範例
結語
第三部份 重新組織程式碼
10 抽離不相關子問題
說明範例:findClosestLocation()
純工具程式碼
其他通用程式碼
建立大量通用程式碼
專案專屬功能
簡化既有介面
依需求重塑介面
過猶不及
結語
11 一次一項工作
工作可以很小
從物件抽取數值
較大的範例
結語
12 將想法轉化為程式碼
清述描述邏輯
認識函式庫能提供的協助
在較大問題應用本方法
結語
13 撰寫較少程式碼
不開發那些功能 - 不會需要
詢問與分解需求
維持程式碼小而美
熟悉使用的函式庫
範例:用 Unix 工具代替撰寫程式
結語
第四部份 精選主題
14 測試與可讀性
讓測試易讀與維護
這些測試有何問題?
讓測試更易讀
讓錯誤訊息易讀
選擇良好的測試輸入
測試函數的命名
那些測試有何問題?
測試友善的開發
過度應用本原則
結語
15 「分∕時計數器」的設計與實作
問題說明
定義類別介面
第一次嚐試:粗略的解決方案
第二次嚐試:輸送帶式設計
第三次嚐試:時間區段(Time-Bucketed)設計
比較三種解決方案
結語
A 延伸閱讀
索引