幫助中心 | 我的帳號 | 關於我們

思維整潔之道(編寫與頭腦合拍的卓越代碼英文版)

  • 作者:(丹麥)馬克·西曼|責編:符隆美
  • 出版社:電子工業
  • ISBN:9787121478536
  • 出版日期:2024/06/01
  • 裝幀:平裝
  • 頁數:364
人民幣:RMB 139 元      售價:
放入購物車
加入收藏夾

內容大鋼
    軟體開發既需要理論和科學,也需要經驗和技藝。可惜,一直以來許多圖書只關注前一部分,而忽略了后一部分。馬克的這本書主要關注經驗和技藝。本書既詳細講解了API設計、紅綠重構等常用技術,也演示了如何撰寫提交說明、如何修改單元測試,同時對故障定位、代碼閱讀、團隊合作等傳統上被認為「難以說清」的問題,也給出了實用且精準的建議。難能可貴的是,與其他圖書提供的示例代碼庫不同,本書的示例代碼庫包含了完整的Git提交記錄。也就是說,讀者可以按照作者的步驟,一步一個腳印地重溫整個開發過程。
    如果你的經驗還不夠豐富,建議嚴格按照作者的講解,認真讀完全書,掌握軟體工程的技巧。如果你已經有足夠的開發經驗,那麼不妨在速覽全書後,精讀自己不熟悉但感興趣的部分。對自己不認同的部分,也不妨花時間了解作者主張的前因後果,讓自己對許多問題有更全面的認知。
    全書以C#為示範語言,但並沒有用到太多C#的專屬特性。面對示例代碼,任何熟悉現代主流面向對象語言的讀者,都可以很容易地理解作者背後的思考。

作者介紹
(丹麥)馬克·西曼|責編:符隆美
    馬克·西曼是一位平庸的經濟學家,於是他改行當了程序員。從20世紀90年代末起,他一直在開發Web和企業應用。馬克年輕的時候想成為搖滾明星,然而不幸的是他既沒有音樂天賦,也沒有搖滾明星的長相——不過陰差陽錯,他現在成了搖滾明星級別的王牌開發者。他寫的一本關於依賴注入的書獲得了Jolt大獎,他還做過100余場國際會議演講,並給在線教育網站Pluralsight和Clean Coders錄製過視頻課程。從2006年開始,他一直定期更新博客。現在,他和妻子以及兩個孩子一起住在丹麥首都哥本哈根。

目錄
推薦序
前言
關於作者
第1部分  由慢到快
  第1章  是藝術,還是科學
    1.1  蓋房子
      1.1.1  項目論之誤
      1.1.2  階段論之誤
      1.1.3  依賴
    1.2  培育花園
      1.2.1  花園中的植物為何會生長
    1.3  工程
      1.3.1  作為手工製品的軟體
      1.3.2  實用性
      1.3.3  軟體工程的早期表述
      1.3.4  與軟體工程共同進步
    1.4  結論
  第2章  檢查清單
    2.1  助記工具
    2.2  針對新代碼庫的檢查清單
      2.2.1  使用Git
      2.2.2  自動化構建
      2.2.3  顯示所有錯誤消息
    2.3  為已有的代碼庫新增檢查規則
      2.3.1  漸進式開發
      2.3.2  在組織中「便宜行事」
    2.4  結論
  第3章  控制複雜性
    3.1  目標
      3.1.1  可持續性
      3.1.2  價值
    3.2  為何編程是困難的
      3.2.1  人腦類比
      3.2.2  讀得多、寫得少的代碼
      3.2.3  可讀性
      3.2.4  腦力勞動
    3.3  關於軟體工程
      3.3.1  與電腦科學的關係
      3.3.2  人性化代碼
    3.4  結論
  第4章  垂直切片
    4.1  從能使用的軟體開始
      4.1.1  從數據入口到數據持久化
      4.1.2  最小的垂直切片
    4.2  活動骨架
      4.2.1  特徵測試
      4.2.2  預備-執行-斷言
      4.2.3  靜態代碼分析的合理尺度
    4.3  由外到內
      4.3.1  接收JSON

      4.3.2  提交預訂請求
      4.3.3  單元測試
      4.3.4  DTO和領域模型
      4.3.5  偽對象
      4.3.6  Repository介面
      4.3.7  Repository中的Create方法
      4.3.8  配置依賴關係
    4.4  完成切片
      4.4.1  schema
      4.4.2  SQL Repository
      4.4.3  連接資料庫的配置
      4.4.4  冒煙測試
      4.4.5  使用偽(Fake)資料庫的邊界測試
    4.5  結論
  第5章  封裝
    5.1  保存數據
      5.1.1  代碼改動優先順序的原則
      5.1.2  參數化測試
      5.1.3  把DTO複製到領域模型中
    5.2  驗證
      5.2.1  錯誤的日期
      5.2.2  紅綠重構
      5.2.3  自然數
      5.2.4  Postel定律
    5.3  保護不變數
      5.3.1  恆常有效
    5.4  結論
  第6章  三角測量
    6.1  短期記憶與長期記憶
      6.1.1  遺留代碼和記憶
    6.2  能力
      6.2.1  超訂
      6.2.2  惡魔的辯詞
      6.2.3  已有的預訂記錄
      6.2.4  惡魔的辯詞與紅綠重構
      6.2.5  多少測試才算夠
    6.3  結論
  第7章  分解
    7.1  代碼惡化
      7.1.1  閾值
      7.1.2  圈複雜度
      7.1.3  80/24規則
    7.2  與思維合拍的代碼
      7.2.1  六角花
      7.2.2  內聚
      7.2.3  依戀情結
      7.2.4  類型轉換的代價
      7.2.5  解析,而不是驗證
      7.2.6  分形架構
      7.2.7  清點變數

    7.3  結論
  第8章  API設計
    8.1  API設計原則
      8.1.1  預設用法
      8.1.2  防錯設計
      8.1.3  寫給讀者看的代碼
      8.1.4  比起註釋,花更多精力在代碼的命名上
      8.1.5  蒙住名字
      8.1.6  分離命令與查詢
      8.1.7  交流的層次
    8.2  API設計實例
      8.2.1  領班
      8.2.2  與封裝對象交互
      8.2.3  實現細節
    8.3  結論
  第9章  團隊合作
    9.1  Git
      9.1.1  提交說明
      9.1.2  持續集成
      9.1.3  小步提交
    9.2  代碼的集體所有權
      9.2.1  結對編程
      9.2.2  團伙編程
      9.2.3  代碼審校的延遲
      9.2.4  拒絕某個變更集
      9.2.5  代碼審校
      9.2.6  拉取請求
    9.3  結論
第2部分  由快到穩
  第10章  充實代碼
    10.1  功能標識
      10.1.1  日曆標識
    10.2  絞殺榕模式
      10.2.1  方法層面的絞殺榕
      10.2.2  類層面的絞殺榕
    10.3  版本管理
      10.3.1  事先警告
    10.4  結論
  第11章  修改單元測試
    11.1  重構單元測試
      11.1.1  修改安全網
      11.1.2  添加新測試代碼
      11.1.3  分離對測試代碼和對生產代碼的重構
    11.2  見證測試失敗
    11.3  結論
  第12章  故障排除
    12.1  理解
      12.1.1  科學方法
      12.1.2  簡化
      12.1.3  橡皮鴨法

    12.2  缺陷
      12.2.1  像做測試那樣重現問題
      12.2.2  慢速測試
      12.2.3  非確定性缺陷
    12.3  二分法
      12.3.1  用Git完成二分法
    12.4  結論
  第13章  關注點分離
    13.1  組合
      13.1.1  嵌套組合
      13.1.2  順序組合
      13.1.3  引用透明性
    13.2  橫切面關注點
      13.2.1  日誌
      13.2.2  裝飾器
      13.2.3  日誌寫什麼
    13.3  結論
  第14章  節奏
    14.1  個人節奏
      14.1.1  時間段
      14.1.2  休息
      14.1.3  有意識地利用時間
      14.1.4  盲打
    14.2  團隊節奏
      14.2.1  定期更新依賴項
      14.2.2  安排其他事務
      14.2.3  康威定律
    14.3  結論
  第15章  常見困惑
    15.1  性能
      15.1.1  歷史負擔
      15.1.2  可識別性
    15.2  安全
      15.2.1  STRIDE
      15.2.2  欺騙
      15.2.3  篡改
      15.2.4  否認
      15.2.5  信息泄露
      15.2.6  拒絕服務
      15.2.7  提權
    15.3  其他技術
      15.3.1  基於屬性的測試
      15.3.2  行為代碼分析
    15.4  結論
  第16章  代碼庫導覽
    16.1  導航
      16.1.1  看到全局圖景
      16.1.2  文件組織
      16.1.3  尋找細節
    16.2  架構

      16.2.1  單體系統
      16.2.2  循環依賴
    16.3  使用方法
      16.3.1  從測試中學習
      16.3.2  用心聆聽測試
    16.4  結論
附錄A  實踐技巧列表

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032