無瑕的程式碼 函數式設計篇: 原則、模式與實踐

無瑕的程式碼 函數式設計篇: 原則、模式與實踐

Functional Design: Principles, Patterns, and Practices

出版日期:
2025/05/04
9
780702
查詢門市庫存
[名家名著] 33

無瑕的程式碼 函數式設計篇: 原則、模式與實踐

Functional Design: Principles, Patterns, and Practices

內容簡介

[名家名著] 33

無瑕的程式碼 函數式設計篇:原則、模式與實踐

Functional Design: Principles, Patterns, and Practices

❝乍看之下,物件導向和函數式這兩種範式似乎互不相容,一個強調資料抽象與封裝狀態,另一個則倡導不可變與純函數。事實上,即便兩者出發點不同,卻能在合適的脈絡下融為一體,互相補足,最終協助我們打造更強韌、更具表達力的軟體系統。對一位想要同時掌握物件導向與函數式思維的工程師來說,如何在日常工作中權衡並結合這兩種做法,正是本書所提出的關鍵挑戰與寶貴建議。❞
────微軟最有價值專家(Microsoft MVP)|本書譯者 張立顗(Poy Chang)

❝Uncle Bob精心展示了函數式設計,這是當今軟體開發中極為流行且高效的設計方式。透過深入的原則和實踐案例,本書不僅適合軟體開發者,也對任何追求卓越程式品質的專業人士都具有極高的實用價值。Uncle Bob的洞見和清晰的寫作風格使這本書成為了一本不可多得的學習資源。❞
────博碩文化總編輯 & CEO CSM 陳錦輝(Simon)


一本精通函數式程式設計的實用指南,寫出更優雅、更整潔的程式碼!


在本書中,世界級軟體開發傳奇大師、暢銷書《Clean Code》的作者Robert C. Martin(Uncle Bob)將深入解說,為何要使用函數式程式設計(functional programming),以及如何運用函數式設計來建置更符合實際需求的系統。Uncle Bob將比較傳統的物件導向程式設計(如Java)與函數式語言(如Clojure)所採用的結構,並指出各自的最佳應用場景。他將展示如何在不同的情境下,明智地選擇合適且合理的做法,來建置更優秀、更優雅的系統。

Uncle Bob不僅手法務實,他還將理論簡化,把重點放在「實戰」與「解決問題」的具體做法。透過簡單易懂的範例,開發者將發現,容易學習且語意豐富的Clojure語言,如何幫助他們提升程式碼的整潔度、品質、開發紀律與效率。Uncle Bob還將從函數式程式設計的角度,深入探討廣為人知的SOLID原則與「四人幫」設計模式,解釋這些模式對於函數式程式設計師的價值,並指導讀者如何利用它們來實現更卓越的成果。

【內容亮點】
・理解函數式程式設計的基本概念:不可變性、持久性資料、遞迴、迭代、延遲、狀態性
・透過精心設計的案例研究,比較函數式方法與物件導向方法
・探索資料流的函數式設計技巧
・使用經典的SOLID原則來編寫更好的Clojure程式碼
・精通函數式測試、GUI與並行的實用方法
・在函數式環境中充分發揮設計模式的作用
・逐步建置企業級的Clojure應用程式

【下載範例程式檔案】
https://github.com/unclebob/FunctionalDesign

展開看更多

產品目錄

獻辭
推薦序一|Janet A. Carr
推薦序二|陳傳興(Bruce Chen)
譯者序 |張立顗(Poy Chang)
前言
謝辭
關於作者
關於譯者

Part I:函數式基礎

第1章:不可變性
什麼是函數式程式設計?
指派的問題
為什麼稱它為函數式呢?
沒有狀態改變嗎?
不可變性

第2章:持久性資料
關於暗渡陳倉
製作副本
結構共享

第3章:遞迴與迭代
迭代
遞迴

第4章:延遲
延遲累積
為何需要延遲?
尾聲

第5章:狀態性
何時必須變更
軟體交易記憶體(STM)
人生艱難,軟體更難

PART II:比較分析

第6章:質因數
Java版本
Clojure版本
小結

第7章:保齡球比賽
Java版本
Clojure版本
小結

第8章:聊八卦的公車司機
Java版本
Clojure版本
小結

第9章:物件導向程式設計
函數式薪水支付案例
命名空間與原始檔
小結

第10章:型別
小結

PART III:函數式設計

第11章:資料流

第12章:SOLID
單一職責原則(SRP)
開放封閉原則(OCP)
里氏替換原則(LSP)
介面隔離原則(ISP)
依賴反轉原則(DIP)

PART IV:函數式實用主義

第13章:測試
REPL
Mock
性質導向測試
診斷技術
函數式

第14章:GUI
用Quil畫烏龜

第15章:並行
小結

PART V:設計模式

第16章:回顧設計模式
函數式的設計模式
抽象伺服器模式
轉接器模式
命令模式
組合模式
裝飾模式
訪問者模式
抽象工廠模式
小結
後記:OO是毒藥嗎?

PART VI:案例研究

第17章:Wa-Tor
心癢難耐
解決難題
瘋狂繁殖
鯊魚呢?
小結

後記

作者介紹

✍作者簡介✍
Robert C. Martin人稱Uncle Bob。他是cleancoders.com的共同創辦人。他也是Uncle Bob Consulting LLC的創辦人,為世界各地的大型企業提供軟體顧問、訓練以及技術開發等服務。在C++、Java物件導向、模式、UML、敏捷方法學和極限程式設計等領域,他撰寫相當多的暢銷名著,《Clean Code》、《Clean Architecture》、《Clean Agile》等,繁體中文版皆由博碩文化出版。

✍譯者簡介✍
張立顗(Poy Chang)熱愛分享技術的他,現為微軟最有價值專家(Microsoft MVP)、微軟認證DevOps工程師專家,以及STUDY4技術社群的核心成員。他經常在部落格撰寫技術文章、舉辦活動並公開演講,樂於與人分享浩瀚技術海中的一片浪花。

規格

誠品貨碼 / 2682885164008
ISBN13 / 9786264141772
ISBN10 /
EAN貨碼 / 9786264141772
頁數 / 400
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 18.5X23X2.09CM
級別 / N:無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送

作者相關書籍