一般分類: 暢銷精選 > 科學科普 > 數學 
     
    這樣寫code好不好?辨識、分析、改善,寫出易讀易維護的程...
    編/著者: Aditya Y Bhargava
    出版社:旗標
    出版日期:2024-10-09
    ISBN:9789863128083
    參考分類(CAT):
    參考分類(CIP): 數值分析

    優惠價:9折,567

    定價:  $630 

    無法訂購
    分享
      買了此商品的人,也買了....
    定價:650 元
    特價:90折!585
     
    定價:500 元
    特價:90折!450
     
      | 內容簡介 |
    內容簡介
    程式要寫得好,不只是執行結果正確就好。
    這些情況是否似曾相識?


    .過個週末就看不懂自己寫了什麼 code
    .修好一邊的 bug,另一邊就出新 bug
    .稍微調整功能,就必須地毯式檢查整個專案


    【寫程式別再靠直覺和乖乖!】


    只要建立優良的程式結構,就算交給其他人接手,
    也可以快速地理解、維護、修改原始碼。
    本書所傳授的,就是寫出「好程式」的「設計技巧」。


    ◆辨識
    - 資深軟體架構師的職場實際負面案例,親眼見證業界 bad code
    - 低內聚、密耦合、半熟物件、退化註解……認識壞結構就能一眼看破


    ◆分析
    - 防衛不足、功能分散、職責不清……分析主要弊病,對症下藥
    - YAGNI、Tell, Don''t Ask、單一責任、最小驚訝……認識設計原則,檢討程式碼


    ◆改善
    - 防衛子句、值物件、工廠類別、策略模式……各種技巧範例實際解決問題
    - 學習地圖、職場心法無私分享,軟體設計不再是紙上談兵


    程式人人都能寫,好程式卻是寥若晨星;
    掌握軟體設計力,才能創造工程師的專業價值 & 不可取代性!
    本書特色:
    ◆293 個精心準備的程式範例
    以電商系統與電玩遊戲為例,挑選主流語言共通語法,逐步示範將粗劣程式碼縫補、修整的過程。


    ◆詳細列舉優質、劣質程式碼的特徵與影響
    基於資深職業經驗,具體說明,在現實程式碼也能活用書中技巧。


    ◆觀念基礎扎實,說明清晰易懂
    以多種比喻、聯想來說明,而非通篇艱澀道理,可與生活經驗融會貫通。


    ◆旁徵博引,融合歷來軟體經典概念
    引述軟體設計各大經典書籍,一本集結知識精華,也是銜接經典的橋樑。
    作者介紹
    仙塲大也
    出身於青森縣。曾任職知名電機製造商,目前在 READYFOR 擔任軟體架構師,致力於推廣重構與軟體設計。
    在與劣質程式碼戰鬥的過程中發現了軟體設計的魅力。有空的時候就會在腦中重構程式碼。
    曾獲 IT 工程書大賞 2023 技術書部門大賞、Developers Summit 2023 話題賞第 1 名、最佳講者賞第 3 名,多次受邀演講。
    Twitter(現 X):ミノ駆動(@MinoDriven)
    目次
    第 1 章 瞭解不良構造的後果
    1.1 意義不明的命名
    1.2 難以理解的巢狀條件判斷結構
    1.3 容易召喚各式各樣惡魔的資料類別
    1.4 驅魔的基本


    第 2 章 設計的第一步
    2.1 選擇清楚表達功能的名稱
    2.2 不重複使用變數,要為不同功能準備不同變數
    2.3 不寫流水帳,把功能區分為函式
    2.4 將相關的資料和邏輯統整到類別中


    第 3 章 類別設計 ―串接一切的設計基礎―
    3.1 設計時應確保類別能獨立運作
    3.2 讓類別獨當一面的設計技巧
    3.3 檢驗驅魔的效果
    3.4 解決程式結構問題的設計模式


    第 4 章 活用不可變性質 ―建立穩定的結果―
    4.1 重複賦值
    4.2 可變狀態帶來的意外後果
    4.3 不可變和可變的處理方針


    第 5 章 低內聚 ―七零八落的物件―
    5.1 靜態函式的誤用
    5.2 初始化函式的分散
    5.3 通用工具類別(Common、Util)
    5.4 使用引數回傳結果
    5.5 過多的引數
    5.6 成員變數串


    第 6 章 條件判斷 ―解開迷宮般的流程控制―
    6.1 巢狀條件判斷造成可讀性降低
    6.2 大量重覆的 switch
    6.3 重複、巢狀條件判斷
    6.4 不要以型別判斷作為條件判斷
    6.5 熟練運用介面是邁向中級者的第一步
    6.6 旗標引數


    第 7 章 集合 ―化解巢狀結構的結構化技術―
    7.1 重覆製作集合原有的函式
    7.2 迴圈內的巢狀條件判斷
    7.3 低內聚的集合操作


    第 8 章 密耦合 ―緊密糾纏、難分難解的結構―
    8.1 密耦合與職責
    8.2 密耦合的案例和解決方案


    第 9 章 危害設計健全性的各種惡魔
    9.1 死碼(Dead Code)
    9.2 YAGNI 原則
    9.3 魔法數字(magic number)
    9.4 字串型別執著
    9.5 全域變數
    9.6 null 問題
    9.7 例外的擱置
    9.8 破壞設計秩序的元程式設計
    9.9 套件的技術包裝法(技術驅動包裝)
    9.10 複製貼上的範例程式碼
    9.11 銀彈


    第 10 章 名稱設計 ―讓人可以看透程式結構的名稱―
    10.1 召來惡魔的名稱
    10.2 設計名稱―目標式名稱設計
    10.3 需要保持警覺的名稱事項
    10.4 用途不明的名稱
    10.5 導致構造大幅歪曲的名稱
    10.6 和函式的位置格格不入的名稱
    10.7 過度縮寫的名稱


    第 11 章 註解 ―讓程式更穩定、更易修改的文字―
    11.1 退化註解
    11.2 用註解掩飾不良的命名
    11.3 註解應標示用途及更改規格的注意事項
    11.4 註解原則總結
    11.5 註解文件


    第 12 章 函式 ―優秀的類別必有優秀的函式―
    12.1 使用同一類別的成員變數
    12.2 以不可變為基礎以防止意外行為
    12.3 只下令、不詢問
    12.4 CQS(命令查詢分離)
    12.5 引數
    12.6 回傳值


    第 13 章 建模 ―類別設計的基石―
    13.1 容易陷入邪惡結構的 User 類別
    13.2 模型的思考方式和理想的結構
    13.3 不良模型的問題和解決方法
    13.4 影響功能性的建模


    第 14 章 重構 ―讓舊有程式碼脫胎換骨的技術―
    14.1 重構的流程
    14.2 以單元測試防止重構失誤
    14.3 規格不明確時的分析方法
    14.4 IDE 的重構功能
    14.5 重構的注意事項


    第 15 章 設計的意義與設計師的態度
    15.1 本書所談論的設計問題
    15.2 缺乏設計將導致開發效率下降
    15.3 軟體與工程師的成長性
    15.4 解決設計不良的問題
    15.5 判斷程式碼好壞的軟體度量
    15.6 程式碼的分析工具
    15.7 設計目標與性價比
    15.8 成為掌握時間的超能力者


    第 16 章 克服職場的阻礙、實踐設計觀念與技術
    16.1 溝通
    16.2 設計
    16.3 實作
    16.4 審查
    16.5 提升團隊的設計能力


    第 17 章 軟體設計之旅的下一站
    17.1 更進階的軟體設計書籍
    17.2 提升設計技能的學習之路