代碼的藝術:用工程思維驅動軟件開發

章淼

買這商品的人也買了...

商品描述

本書是作者圍繞軟件工程能力所做的系列培訓的內容匯編。這些內容來源於作者20 多年以來對軟件工程的學習體會和項目實踐,以及對中國工業界軟件工程師的觀察和教育實踐。全書共8 章,第1 章說明瞭什麽是軟件工程能力,闡述了軟件工程能力中的素質要求。第2~8 章分別從代碼、文檔、項目管理這三個方面講解了提升軟件工程能力素質的實踐方法。

目錄大綱

第1章軟件工程能力
1.1 為什麼要重視工程能力
1.2 什麼是工程能力
1.2.1 工程能力的誤區
1.2.2 工程能力的定義
1.3 怎樣提升工程能力
第2章代碼的藝術
2.1 背景和初衷
2.2 代碼和藝術
2.2.1 代碼也能成為藝術作品
2.2.2 軟件工程師和“碼農”
2.2.3 來自藝術的啟發
2.2.4 寫代碼並非易事
2.3 好代碼和壞代碼
2.3.1 好代碼的特性
2.3.2 壞代碼的例子
2.4 好代碼從哪裡來
2.4.1 好代碼不止於編碼
2.4.2 需求分析和系統設計
2.5 如何做好需求分析
2.5.1 如何描述需求
2.5.2 對需求分析的誤解
2.5.3 需求分析的重要性
2.6 如何做好系統設計
2.6.1 什麼是系統設計
2.6.2 設計文檔的分類
2.6.3 什麼是系統架構
2.6.4 系統設計的原則和方法
2.6.5 重視對外接口
2.7 如何寫出好代碼
2.7.1 代碼的溝通價值
2.7.2 模塊的設計方法
2.7.3 劃分模塊的方法
2.7.4 函數的設計方法
2.7.5 代碼塊的編寫注意事項
2.7.6 軟件開發中的命名
2.8 如何支持系統運營
2.8.1 可監測性的重要性
2.8.2 以BFE開源項目為例
2.9 成為優秀軟件工程師的三條路徑
2.9.1 路徑一:學習—思考—實踐
2.9.2 路徑二:知識—方法—精神
2.9.3 路徑三:基礎乃治學之根本
第3章代碼評審
3.1 代碼評審的常見誤區
3.2 為什麼要做好代碼評審
3.2.1 代碼評審的重要意義
3.2.2 沒有做好代碼評審的後果
3.2.3 為什麼要提升代碼質量
3.2.4 為什麼要提升編碼能力
3.3 如何做好代碼評審
3.3.1 代碼評審的常見問題
3.3.2 代碼評審的正確態度
3.3.3 代碼評審的推薦步驟
3.3.4 對壞代碼的簡單判斷
3.3.5 代碼評審的注意事項
3.4 如何成為好的代碼評審人
第4章“代碼的藝術”應用
4.1 需求的分析
4.1.1 題目說明
4.1.2 功能分析
4.2 軟件的架構
4.2.1 模塊切分
4.2.2 系統架構
4.2.3 軟件組裝
4.2.4 crawler間的數據共用
4.2.5 數據封裝
4.2.6 crawler的執行邏輯
4.3 多線程機制
4.3.1 數據互斥訪問
4.3.2 臨界區注意事項
4.3.3 任務的分發
4.3.4 程序的優雅退出
4.4 其他實現細節
4.4.1 配置的讀取
4.4.2 種子信息的讀取
4.4.3 import的使用
4.4.4 異常處理
4.4.5 構造函數的使用
4.4.6 正則表達式的使用
4.5 延伸思考
4.5.1 實現對各網站的限速
4.5.2 從單機擴展到分佈式
第5章項目文檔
5.1 正確認識項目文檔
5.1.1 項目文檔的重要作用
5.1.2 項目文檔的常見誤區
5.1.3 項目文檔的常見問題
5.1.4 什麼時候需要寫項目文檔
5.1.5 項目文檔是寫給誰的
5.1.6 項目文檔的基本規範
5.2 項目文檔的編寫
5.2.1 編寫順序
5.2.2 標題擬定
5.2.3 段落編寫
5.2.4 問題劃分
5.2.5 表述模式
5.3 項目文檔中的圖片
5.4 項目文檔評審
5.4.1 評審常見問題
5.4.2 評審方法
5.5 項目文檔存放
5.5.1 常見錯誤
5.5.2 存放建議
5.5.3 項目文檔索引舉例
5.5.4 存放工具的選擇
5.6 項目文檔編寫工具
5.7 如何提高項目文檔編寫能力
第6章做研究
6.1 什麼是研究
6.2 如何做好研究
6.2.1 發現問題
6.2.2 分析問題
6.2.3 解決問題
6.3 做好研究的必備素質
6.3.1 關於做人
6.3.2 關於做事
6.3.3 關於做學問
第7章項目管理
7.1 重視項目管理
7.2 相關基本概念
7.3 項目管理的過程和步驟
7.3.1 項目規劃和啟動
7.3.2 項目執行和監控
7.3.3 項目總結與回顧
第8章項目溝通
8.1 項目溝通的重要性
8.2 項目溝通方式及對比
8.3 面對面溝通
8.4 電話溝通
8.5 會議溝通
8.6 IM工具溝通
8.7 Email溝通
附錄A 延伸閱讀圖書推薦
軟件工程和編程思想類
項目管理類
項目文檔編寫和閱讀類
產品設計類
致謝