Clean Code學派的風格實踐:開發可靠、可維護又強健的JavaScript
Clean Code in JavaScript
強健應用程式的建置始於Clean Code的建立。在本書中,你將探索實現這個目標的技術,並學習從JavaScript基礎到Clean Code實踐的各種知識。你將編寫符合開發功能、直覺且可維護的程式碼,同時了解程式碼如何影響終端使用者和整個社群。
本書以流行的Clean Code編寫原則開始(如SOLID和LoD),並強調Clean Code的敵人(如貨物崇拜和過度管理)。你將深入研究JavaScript,了解該語言中更複雜的方面。接下來,你將使用設計模式(如Class模式和Revealing Module模式)來建立有意義的抽象。你將在瀏覽器和伺服器環境中探索現實世界的挑戰,例如:DOM協調、狀態管理、依賴性管理和安全性。之後,你將學習工具與測試方法,以及程式碼文件化的重要性。最後,本書將關注良好的溝通與倡導的重要性,說明如何改善團隊或工作場所的程式碼整潔度,並以一個Clean Code的案例研究作為總結。
讀完這本書,你將精通JavaScript,並學會建立清晰的抽象、對其進行測試,以及透過文件進行交流。
在這本書中,你將學到:
・了解程式碼的真正目的,以及了解它能為終端使用者和同事解決的問題
・透過思考文化和語法慣例的影響,來探索Clean Code的宗旨和敵人
・使用現代JavaScript語法和設計模式,來製作符合直覺的抽象
・透過明智地採用工具,以及倡導最佳實作方法,來保持團隊的程式碼品質
・了解JavaScript的現代生態系統及面臨的挑戰,例如:DOM協調和狀態管理
・在測試中以及透過文件的各種形式,來表達程式碼的行為
Clean Code學派的風格實踐:開發可靠、可維護又強健的JavaScript
內容描述
目錄大綱
前言
Section 1:Clean Code是什麼?
第1章:背景說明
我們為何撰寫程式碼?
為人們編寫程式碼
小結
第2章:Clean Code的宗旨
可靠性
效率
可維護性
可用性
小結
第3章:Clean Code的敵人
敵人#1—JavaScript
敵人#2—管理
敵人#3—自我
敵人#4—貨物崇拜
小結
第4章:SOLID及其他原則
Demeter定律
SOLID
抽象原則
函數式程式設計原則
小結
第5章:命名很困難
名稱中有什麼?
命名反模式
一致性和層次結構
技術和考量
小結
Section 2:JavaScript和它的位元
第6章:原始類型和內建類型
原始類型
物件
函數
陣列和可迭代
RegExp
小結
第7章:動態類型化
檢測
轉換、隱式強制轉換、顯式強制轉換
小結
第8章:運算子
運算子是什麼?
算術和數字運算子
邏輯運算子
比較運算子
賦值運算子
屬性存取運算子
其他運算子和語法
位元運算子
小結
第9章:語法和作用域
表達式、敘述句和區塊
作用域和宣告
小結
第10章:控制流程
控制流程是什麼?
命令式與宣告式程式設計
控制權的移動
控制流程的敘述句
處理循環複雜度
異步控制流程
小結
Section 3:製作抽象
第11章:設計模式
設計師的觀點
架構模式
JavaScript模組
模組化設計模式
規劃與和諧
小結
第12章:真實世界的挑戰
DOM和單頁應用程式
依賴性管理
安全性
小結
Section 4:測試和工具
第13章:測試環境
測試是什麼?
測試的類型
測試驅動開發(TDD)
小結
第14章:編寫乾淨的測試
測試正確的事情
編寫直觀的斷言
建立清晰的層次結構
提供最終的明確性
建立乾淨的目錄結構
小結
第15章:讓程式碼更無瑕的工具
linter和格式化程序
靜態類型化
E2E測試工具
自動化建構和CI
小結
Section 5:合作與做出改變
第16章:將你的程式碼文件化
乾淨文件的內涵
文件無所不在
為非技術讀者寫作
小結
第17章:其他人的程式碼
繼承程式碼
處理第三方程式碼
小結
第18章:溝通與倡導
規劃和設定需求
溝通策略
找出問題並推動變革
小結
第19章:案例研究
問題
設計
實作
小結
作者介紹
作者簡介
James Padolsey
James Padolsey是一位充滿熱情的JavaScript和UI工程師,擁有超過12年的經驗。James在十幾歲時就開始了他的JavaScript之旅,並經由自學為學校和小型專案建立網站。早年,他是一位極具創造力的部落格作者,分享了他對jQuery、JavaScript和DOM領域中常見問題的獨特解決方案。後來他為jQuery函式庫做出了貢獻,並在O'Reilly Media出版的《jQuery Cookbook》中撰寫了一個章節。在隨後的幾年中,James在Stripe、Twitter和Facebook任職期間接觸過許多獨特的軟體專案,並藉此告訴我們,在不斷變化的JavaScript生態系統中,編寫Clean Code的真正意義。