Software Mistakes and Tradeoffs: How to make good programming decisions
| 作者 | Tomasz Lelek/ Jon Skeet |
|---|---|
| 出版社 | 聯合發行股份有限公司 |
| 商品描述 | Software Mistakes and Tradeoffs: 掌握軟體開發中的錯誤、取捨與關鍵決策 (中文版):[名家名著]37SoftwareMistakesandTradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵 |
| 作者 | Tomasz Lelek/ Jon Skeet |
|---|---|
| 出版社 | 聯合發行股份有限公司 |
| 商品描述 | Software Mistakes and Tradeoffs: 掌握軟體開發中的錯誤、取捨與關鍵決策 (中文版):[名家名著]37SoftwareMistakesandTradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵 |
內容簡介 [名家名著] 37 Software Mistakes and Tradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵決策 Software Mistakes and Tradeoffs: How to make good programming decisions ❝Teddy長期研究Pattern Language,有一個很深的體會:每一個設計決策,都只是「局部的回應」。真正困難的,是把這些局部組織成一個和諧的整體。 AI可以提供大量「局部解法」,但整合這些解法需要的,是對「這個團隊、這個市場、這個時間點」的情境理解。這種情境沒辦法完全寫成規格書,因為它牽涉到人的能力邊界、組織的演進節奏、技術債的承受極限。這些東西每個專案都不一樣,而且會隨時間改變。這不是AI的context window再怎麼變大就能解決的問題。 要看見整體,不能只盯著零件。AI幫你把門檻拉低之後,真正稀缺的能力,是在眾多可能性之中,做出有脈絡、能長期承擔的選擇。不是盲目的節制,而是清楚知道代價之後,有意識地決定扛下哪些、放掉哪些。 如果鄉民們希望自己在AI時代,不只是會下提示詞的PM,而是能為系統負責的架構師,那麼這本書值得細細品味。❞ ────「搞笑談軟工」板主Teddy Chen 專文推薦 ❝在軟體工程的實務現場,幾乎沒有哪一個決策是「免費」的。每一次選擇某種架構、某種設計模式、某種API風格,或某種錯誤處理策略,實際上都意味著放棄其他可能性。這些放棄,往往不會在當下立即顯現代價,而是潛伏在未來的維護成本、效能瓶頸、擴充困難、組織協作摩擦與技術債之中。 《Software Mistakes and Tradeoffs中文版》所關注的,正是這些在實際上線系統(production systems)中反覆出現的取捨問題。本書並不試圖建立一套抽象理論,而是從具體情境出發:在特定背景、限制與壓力之下,團隊如何做出選擇?有哪些替代方案?當時忽略了什麼?哪些後果在事後才浮現?哪些判斷其實是合理的,只是代價延後到未來? 這樣的視角,使本書成為一本極具實務厚度的工程決策紀錄。❞ ────博碩文化資深編輯與翻譯 盧國鳳 ❝真希望我能在職涯更早期就讀到這本書。書中濃縮了許多從實務中得來的寶貴經驗。❞ ────Dave Corun,Avanade ❝清楚而精準地總結了多年軟體工程實務的精華,新手與老手都值得一讀。❞ ────Rafael Avila Martinez,萬事達卡(Mastercard) ❝本書深入剖析程式設計過程中內在的衝突,以及這些衝突如何實際影響你所寫的程式碼。❞ ────Roberto Casadei,波隆那大學(Università di Bologna) ❝精準點出每位軟體開發者都會遇到的核心痛點,並以清楚、具教學性的方式提出解法。❞ ────Nelson González,通用電氣(General Electric) 在軟體專案的每一個階段,都充滿了取捨的抉擇。當你在效能、安全性、成本、交付時程、功能與更多因素之間取得平衡時,看似合理的設計選擇,往往會在正式上線後成為問題的根源。 本書透過一個又一個真實且貼近實務的案例,說明那些在當下「看起來沒錯」的決策,為何會在實際環境中演變成錯誤,同時也帶領讀者思考,當初是否存在更好的選擇。 兩位作者以數十年的軟體工程經驗為基礎,分享那些令人印象深刻甚至帶點「教訓意味」的錯誤經驗。書中不僅指出問題本身,更搭配具體可行的建議與實務技巧,協助讀者在未來的專案中,做出更成熟、更有前瞻性的設計決策。 【內容亮點】 ・以系統化的方式思考軟體設計 ・挑選合適的工具、函式庫與框架 ・緊耦合與鬆耦合,兩者如何影響團隊協作與系統演進 ・寫出精確、容易實作也容易測試的需求規格 ・適合中階至資深的軟體工程師與系統架構師,特別是經常需要對軟體設計與實作方向做出關鍵決策的讀者 【下載範例程式檔案】 https: github.com tomekl007 manning_software_mistakes_and_tradeoffs
作者介紹 ✍作者簡介✍ Tomasz Lelek 長期投入於實際上線系統的開發,橫跨多種服務與系統架構,並精通JVM生態系。 Jon Skeet Google資深工程師,以在Stack Overflow上的實務貢獻廣受工程師社群推崇,同時也是《C# in Depth》的作者。
產品目錄 齊聲讚譽 推薦序 譯者序╱編輯導讀 前言 致謝 關於本書 關於作者 關於封面插圖 Chapter 01:概述 1.1 所有決策與模式的採用都有其代價 1.2 為何程式設計模式不是萬靈丹 1.3 為何架構設計模式不是萬靈丹 重點回顧 Chapter 02:程式碼重複不一定是壞事:重複與彈性的取捨 2.1 程式庫間的共用程式碼與重複 2.2 函式庫與程式碼共用 2.3 以微服務的形式共用 2.4 利用重複來增進鬆耦合 2.5 運用繼承機制透過API設計來減少重複 重點回顧 Chapter 03:例外與錯誤處理的設計模式 3.1 例外的繼承關係 3.2 在自造程式碼中的最佳錯誤處理模式 3.3 例外處理的反模式 3.4 來自第三方函式庫的例外 3.5 多執行緒環境中的例外 3.6 使用Try的函式型錯誤處理方式 3.7 例外處理程式碼的效能比較 重點回顧 Chapter 04:彈性與複雜度的取捨 4.1 穩健但無法擴充的API 4.2 允許客戶端自行設定度量指標的框架 4.3 透過hook提供API的擴充 4.4 透過監聽器提供API的擴充 4.5 分析API的彈性與維護的成本 重點回顧 Chapter 05:過早最佳化與要徑最佳化的取捨:影響程式碼效能的決策 5.1 在什麼情況下過早最佳化並不好 5.2 程式碼中的要徑 5.3 具有潛在要徑的WordsService 5.4 偵測程式碼中的要徑 5.5 改善要徑的效能 重點回顧 Chapter 06:API在簡潔與維護成本上的取捨 6.1 作為被其他工具引用的基礎函式庫 6.2 直接暴露依賴函式庫的設定 6.3 抽象化依賴函式庫設定的工具 6.4 新增雲端客戶端函式庫的設定 6.5 停用與移除雲端客戶端函式庫的設定 重點回顧 Chapter 07:有效率地處理日期與時間資料 7.1 日期與時間資訊的概念 7.2 準備處理日期與時間資訊 7.3 實作日期與時間程式碼 7.4 應該規格化並測試的邊界情況 重點回顧 Chapter 08:妥善運用資料落地與記憶體 8.1 什麼是資料落地? 8.2 資料的分割與切分 8.3 跨多個分割合併大型資料集 8.4 資料處理:記憶體vs.磁碟 8.5 使用Apache Spark合併 重點回顧 Chapter 09:對第三方函式庫引用的取捨:外部也會成為自身的一部分 9.1 對函式庫的設定負全責:當心那些預設值 9.2 平行執行模型與可擴展性 9.3 可測試性 9.4 第三方函式庫的依賴關係 9.5 第三方依賴關係的選擇與維護 重點回顧 Chapter 10:分散式系統中的一致性與不可分割性 10.1 至少一次(at-least-once)的傳輸機制 10.2 去重複函式庫的簡易實作 10.3 在分散式系統中實作去重複時的常見錯誤 10.4 讓邏輯具備不可分割性以防止爭用 重點回顧 Chapter 11:分散式系統在資訊傳輸上的語意 11.1 事件驅動架構 11.2 以Apache Kafka為基礎的生產者與消費者應用程式 11.3 生產者端的邏輯 11.4 消費者在傳送上的不同語意 11.5 運用傳遞保證以提供容錯能力 重點回顧 Chapter 12:版本控管與版本相容性 12.1 關於版本控管 12.2 套件╱函式庫的版本控管 12.3 網路API的版本控管 12.4 資料儲存的版本控管 重點回顧 Chapter 13:追趕技術趨勢與維護成本的取捨 13.1 何時該使用依賴性注入框架 13.2 何時該使用反應式程式設計 13.3 何時該使用函式型程式設計 13.4 惰性vs.積極評估與初始化 重點回顧
| 書名 / | Software Mistakes and Tradeoffs: 掌握軟體開發中的錯誤、取捨與關鍵決策 (中文版) |
|---|---|
| 作者 / | Tomasz Lelek Jon Skeet |
| 簡介 / | Software Mistakes and Tradeoffs: 掌握軟體開發中的錯誤、取捨與關鍵決策 (中文版):[名家名著]37SoftwareMistakesandTradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵 |
| 出版社 / | 聯合發行股份有限公司 |
| ISBN13 / | 9786264144735 |
| ISBN10 / | |
| EAN / | 9786264144735 |
| 誠品26碼 / | 2683108664008 |
| 頁數 / | 464 |
| 裝訂 / | P:平裝 |
| 語言 / | 1:中文 繁體 |
| 尺寸 / | 18.5X23X2.39CM |
| 級別 / | N:無 |
最佳賣點 : 兩位作者以數十年的軟體工程經驗為基礎,分享那些令人印象深刻甚至帶點「教訓意味」的錯誤經驗。書中不僅指出問題本身,更搭配具體可行的建議與實務技巧,協助讀者在未來的專案中,做出更成熟、更有前瞻性的設計決策。適合中階至資深的軟體工程師與系統架構師,特別是經常需要對軟體設計與實作方向做出關鍵決策的讀者。