為您推薦
類似書籍推薦給您
【簡介】 [名家名著] 34 軟體設計耦合的平衡之道:建構模組化軟體系統的通用設計原則 Balancing Coupling in Software Design: Universal Design Principles for Architecting Modular Software Systems ♛ Vaughn Vernon Signature Series系列叢書 ♛ 理解耦合對軟體設計決策的影響──然後駕馭它! 如果你想打造模組化、可演進和具備高韌性的軟體系統,就必須設計出正確的耦合關係。你做的每一個設計決策都會影響耦合,而它們會回過頭來影響你將來可用的設計選項。然而,直到這本書出現之前,耦合很少得到應有的重視。 打從軟體工程的開天闢地之初,人們就發現,若要建構模組化軟體系統,正確的耦合管理就是非常重要的一件事。這個主題多年來被廣泛研究過,但有些知識已遭遺忘,有些則難以套用在當今的開發環境。作者根據他自身累積的知識,打造一個通用模型,甚至針對現代軟體工程的慣例來量身調整,替模組化軟體設計帶來令人耳目一新的觀點。 透過清楚說明這些原則與實踐,作者將引導你釐清耦合的多維度特性,並示範如何讓耦合成為強大的設計工具,以有效管理軟體複雜性、提高模組化程度。本書說不定會顛覆你對軟體設計的全面認知! ❑ 內容亮點 ☑︎定義耦合的概念,以及它在系統設計與系統架構中扮演的角色 ☑︎解釋耦合為何會增加系統複雜性,但亦能促進模組化程度 ☑︎介紹一個整體模型,將耦合變成設計模組化軟體的工具 ☑︎展示如何演進設計決策,來支援軟體系統的持續成長 ☑︎以基於真實使用案例的詳細範例示範書內討論的原則 名人推薦 ❝良好的軟體設計並非將耦合完全消除,而是找出適當的耦合強度。在本書中,作者提出一個名為整合強度模型的分析框架,透過四種層級:契約耦合、模型耦合、功能耦合與侵入耦合,重新詮釋傳統結構化設計中的「模組耦合模型」,以及物件導向設計中的「共生性模型」。……本書作者同時也是領域驅動設計(domain-driven design,DDD)的專家,書中融合了來自領域驅動設計與微服務架構的耦合設計案例。……從這些實例中學習實作層面的耦合設計,也已相當值得。❞────「搞笑談軟工」板主Teddy Chen 專文推薦 ❝良好的系統設計需要商業、產品和開發部門的密切合作,而平衡系統耦合是當中不可忽視的一環。這件事越早做好,未來的痛苦就會越少。現今不少人深信生成式AI已經足以取代資淺程式設計師,我們也能觀察到就業市場反映出這種現象。但事實是系統設計發生在寫程式「之前」,而且很容易被輕視。……所以有些人認為,程式設計師或程式工程師並不會被AI取代,只不過在實際寫程式的動作會有所轉變,或者會轉型為「程式架構師」。在將複雜商業需求轉譯到良好軟體設計的過程上,人類依然不可或缺。❞────本書譯者 王寶翔(Alan Wang) ❝大多數作者只會用一段話或一頁解釋耦合──而Vlad給了我們一整本書。❞────Rebecca J. Wirfs-Brock ❝你的軟體能隨著時間變得越來越容易改變,但要做到這點是得下一番苦工的。然而,靠著你從本書獲得的概念與技巧,你就能一帆風順。❞────Kent Beck ❝我審閱了Vlad的書幾次,看著它從粗稿轉變為成品。不得不說,能夠目睹Vlad以嶄新又強大的框架包裝、融合舊有軟體慣例,真的令人著迷不已。❞────Vaughn Vernon ❝耦合是人們常掛在嘴邊但甚少理解的一個詞。Vlad把我們從單純的『永遠把元件去耦合』拉出來,透過複雜性和軟體演進的脈絡帶來深入的討論。如果你正在打造現代軟體,本書是非讀不可之作!❞────《軟體架構師全方位提升指南》作者 Gregor Hohpe【目錄】 齊聲讚譽 推薦序一|Teddy Chen 推薦序二|Rebecca J. Wirfs-Brock 推薦序三|Kent Beck 譯者序 |王寶翔(Alan Wang) 作者序 致謝 關於作者 關於譯者 前言 第一部:耦合 CH01:耦合與系統設計 什麼是耦合? 耦合程度 知識流動方向 系統 重點提要 測驗 CH02:耦合與複雜性:Cynefin框架介紹 什麼是複雜性? Cynefin框架 比較Cynefin框架的領域 將Cynefin框架用於軟體 Cynefin框架的應用 Cynefin框架與複雜性 重點提要 測驗 CH03:耦合與複雜性:互動 複雜性的本質 複雜性與系統設計 階層複雜性 自由度(degrees of freedom) 複雜性與限制條件 耦合與複雜互動 範例:連結耦合與複雜性 重點提要 測驗 CH04:耦合與模組化 模組化(modularity) 模組 軟體系統的模組化 模組化、複雜性與耦合 模組化內的耦合 重點提要 測驗 第二部:維度 CH05:結構化設計的模組耦合 結構化設計 模組耦合(module coupling) 比較各個模組耦合層級 重點提要 測驗 CH06:共生性 什麼是共生性? 靜態共生性(static connascence) 動態共生性(dynamic connascence) 評估共生性 重點提要 測驗 CH07:整合強度 耦合強度 整合強度(integration strength) 侵入耦合(intrusive coupling) 功能耦合(functional coupling) 模型耦合(model coupling) 契約耦合(contract coupling) 整合強度討論 整合強度與非同步執行 重點提要 測驗 CH08:距離 距離與封裝邊界 影響距離的額外因素 距離vs.鄰近度 距離vs.整合強度 重點提要 測驗 CH09:變動性 改變與耦合 為何軟體會有變動 評估變動率 變動性和整合強度 推論的變動性 重點提要 測驗 第三部:平衡 CH10:平衡耦合 合併耦合維度 合併整合強度、距離與變動性 以數值量表平衡耦合 重點提要 測驗 CH11:重新平衡耦合 韌性設計 軟體變動向量 重新平衡耦合 重點提要 測驗 CH12:軟體設計的碎形幾何 成長 創新 碎形幾何 碎形模組化 重點提要 測驗 CH13:平衡耦合實務 微服務 架構模式 商業物件 方法 重點提要 測驗 CH14:結論 尾聲 附錄A:耦合之歌 附錄B:耦合詞彙表 附錄C:測驗解答 參考書目
類似書籍推薦給您
【簡介】 讓程式碼重獲新生 一大堆凌亂的程式碼,我應該要直接修改,還是《先整理一下?》...... 凌亂的程式碼是每位開發者的挑戰與痛苦根源,新手與資深工程師都曾在複雜結構面前無從下手。而程式碼的清晰與結構優雅,卻是軟體可維護性與可擴展性的關鍵。 有了這本書,你將不再懼怕那些讓人抓狂的程式碼,學會如何以安全又有效的方式處理它們,同時改變你看待軟體設計的方式。 程式設計大師 Kent Beck 將其深厚的開發經驗,梳理成簡單明瞭的範例,讓我們在不改變系統功能的前提下,逐步學會清理程式碼、優化結構,進而提升整體設計水準。 這本書,不只是為了「整理」,更是為了讓每位開發者重新找回創作的信心與樂趣。 -------------------------------------- 「設計就是我們用程式碼所繪製出來的形狀,Kent則幫助我們繪製出更好的形狀。 這是一本談論重要主題的重要書籍。」 ——Dave Farley / Continuous Delivery有限公司創辦人兼董事 「本書針對各種不同程度的開發人員,提供了許多實用的技巧,可協助大家改進手邊正在處理的各種程式碼。」 ——Sam Newman / 獨立顧問、技術專家,同時也是《建構微服務》和《單體式系統到微服務》這兩本書的作者 「《先整理一下?》這本書裡的想法其實都很簡單,但當你讀到這些想法時,心裡一定很想知道,為什麼這麼多想法自己從來都沒想過。 我要推薦這本書,給所有在意程式碼乾不乾淨、可讀性好不好的人。」 ——Gergely Orosz / The Pragmatic公司的工程師 亂七八糟的程式碼,處理起來最麻煩了。為了讓程式碼更容易讀懂,「整理」程式碼時經常要把程式碼切成好幾塊。在這本實務指南中,身為極限程式設計創造者與軟體模式先驅者的作者Kent Beck 建議我們,可以在何時何地去整理程式碼,以提高程式碼的品質,同時兼顧系統的整體結構。 本書並不會一下子就要你掌握所有的整理技巧,而是讓你先去嘗試一些對你的問題很有意義的範例。 如果你有一個很大的函式,其中包含許多行的程式碼,你要先學會如何把它合理切分成許多比較小的程式碼片段。在閱讀本書的過程中,你就能學會軟體設計背後的理論:耦合、內聚、現金流的折現效應以及選擇性等概念。 本書將會協助你: .瞭解軟體設計的基本原理,以及各種會影響軟體設計的力量。 .針對系統在行為上與架構上的改變,探索這兩者之間的差異。 .改善你的程式設計體驗:有時可以先做整理,有時可以後做整理。 .學會如何把一些比較大的改變,拆解成比較小、比較安全的好幾個步驟。 .把軟體設計當成人類關係的一種課題。 【目錄】 引言 前言 簡介 第一部分 整理 第1章 守衛語句(Guard Clause) 第2章 沒用到的死程式碼 (Dead Code) 第3章 用同樣的寫法做同樣的事 (Normalize Symmetries) 第4章 舊的實作方式,搭配新介面 (New Interface, Old Implementation) 第5章 閱讀順序 第6章 內聚順序 第7章 把宣告與初始化放在一起 第8章 具有解釋效果的變數 第9章 具有解釋效果的常數 第10章 明確的參數 第11章 把程式碼切成一塊一塊的 第12章 提取輔助函式 第13章 堆成一堆 第14章 具有解釋效果的註解說明 第15章 刪除掉多餘的註解 第二部分 管理 第16章 把整理工作切分出來 第17章 連鎖效應 第18章 每批所包含的整理數量 第19章 節奏 第20章 解開糾纏 第21章 先做、後做、晚點再去做、完全不做 第三部分 理論 第22章 讓元素以有益的方式關聯起來 第23章 結構與行為 第24章 經濟學 - 時間價值與選擇性 第25章 今天的一美元大於明天的一美元 第26章 選擇權 第27章 選擇權 vs. 現金流 第28章 結構上可逆的改變 第29章 耦合 第30章 Constantine 等式 第31章 耦合與解耦 第32章 內聚 第33章 結論 附錄:相關的閱讀清單和參考文獻 索引
類似書籍推薦給您
【簡介】 依據勞動部勞動力發展署技能檢定中心114年啟用之最新學術科試題,使用Python解題。 術科篇 ■114年啟用最新術科題目: 術科第一站:語言基本指令操作1060301~1060305五題 術科第二站:語言應用程式設計1060306~1060308三題 學科篇 ■最新公告學科試題單選題509題。 ■114年修訂之共同科目:90006職業安全衛生/90007工作倫理與職業道德/90008環境保護/90009節能減碳400題;90011資訊相關職類共用工作項目119題。 本書特色 ■術科題目詳盡解說、結構化與精簡的程式,讓讀者輕鬆撰寫Python程式。 ■術科內容撰寫循序漸進,帶領讀者從認識Python、表單設計到程式撰寫,初學者也能輕鬆解題,學會Python的操作和程式語法。 ■學科試題電腦概論、程式設計、資訊職類共用工作項目,附有難題解析。 ■詳讀章節內容,熟悉指令、語法、資料結構及邏輯,反覆練習即能通過考試取得證照。 【目錄】 丙級術科測試應檢參考資料重點整理 Python快速入門 ◆安裝python ◆設置環境變數 ◆常用Python IDE Windows介面程式設計 ◆視窗 ◆標籤 ◆按鈕 ◆輸入框 ◆串列框 ◆框架 ◆表格式畫面安排 術科 ◆術科第一套:程式語言基本指令操作 1060301 迴文判斷 1060302 直角三角形列印 1060303 質數計算 1060304 體質指數BMI 1060305 矩陣相加 檢定實例演習一 檢定實例演習二 while迴圈版 Python的後測試while迴圈 while後測試迴圈版 ◆術科第二套:程式語言應用程式設計 1060306 身分證號碼檢查 1060307 撲克牌比大小 1060308 分數加、減、乘、除運算 學科 工作項目01 電腦概論 工作項目02 程式設計 工作項目03 系統發展 工作項目04 資訊安全 90006 職業安全衛生共同科目 90007 工作倫理與職業道德共同科目 90008 環境保護共同科目 90009 節能減碳共同科目 90011 資訊相關職類共用工作項目
資訊
工程
數學與統計學
機率與統計
自然科學
健康科學
地球與環境
建築、設計與藝術
人文與社會科學
教育
語言學習與考試
法律
會計與財務
大眾傳播
觀光與休閒餐旅
考試用書
研究方法
商業與管理
經濟學
心理學
生活
生活風格商品
參考書/測驗卷/輔材