嗨大家好!我是 Monica,第一天一樣來講講系列文動機與大綱,談談未來的內容規劃。
再次嘗試鐵人賽,這次的主題其實之前就想寫了,覺得 Functional Programming (簡稱 FP)很常聽到,但是深入探索下去又發現很艱深,剛好前陣子參加讀書會讀了《簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 Javascript 為例》這本書,又搭配看了《mostly-adequate-guide》,就想把這些讀到的內容整理下來,整理過程中如果有不懂的地方會搭配 AI 工具來輔助我理解及撰寫文章,畢竟有些 FP 概念真的很學術...,細讀下去會發現,嗯...我真的不懂 FP:)
《mostly-adequate-guide》這本書算是很經典的 FP 書籍,講了很多經典的 FP 技巧和概念,以及 FP 相關的理論,但乍看之下會覺得離實務開發很遙遠,而《簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 Javascript 為例》這本書剛好以比較淺顯易懂的方式,從實務上的應用帶著讀者重構程式,順便帶入 FP 核心概念,所以我想試著結合這兩本書的內容,讓 functional programming 可以變得平易近人一點,我覺得 functional programming 其實和之前寫過的設計模式概念有點類似,它不是一個像 React.js、Vue.js 這種很具體的技術,而是一種思考程式設計的方式、一種撰寫程式的風格,雖然在 AI 盛行的時代探索這種古老的主題(?有點奇怪,但我還是蠻想了解的,希望可以深入了解 FP 思考程式的方式,讓我以後在程式開發時有不同的看待觀點~總之希望我可以順利度過><
另補充,剛好看到這次鐵人賽也有大大撰寫 Functional Programming 的主題!主要以 fp-ts 來介紹,覺得搭配 TypeScript 來學習好像更讚,透過型別會更好理解 FP 的世界,又能順便學 TypeScript,很期待從作者的文章學習!
主題會圍繞《簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 Javascript 為例》和《mostly-adequate-guide》內所提的 FP 概念與常見模式,因為兩本書都是以 JavaScript 來舉例,因此這系列文章都會以 JavaScript 來說明概念並撰寫範例程式(部分範例程式會用到 TypeScript,但比重不高),這裡列出預計會涵蓋的主題:
(會再視情況調整主題並更新本篇大綱)
FP 涉及的理論和名詞真的太多太複雜了,自己也不能說全然理解,但希望自己可以盡量以淺顯的方式說明,去理解這些概念與實作是為了解決什麼問題,為了達到什麼效果,避免卡在學術性的定義上,希望自己可以完成🙏
如果之後有任何敘述不清楚的地方,歡迎提出討論~