iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

在 Neovim 中探索 Fennel 與函數式編程 系列

在 AI 時代,開發者需要思考新的開發範式:『AI 幫助我們快速生成 code ,但除錯與驗證仍需要開發者積極介入。』本系列文將從 Neovim + Fennel 切入,帶著讀者來進入「互動式開發」與「函數式編程」的新世界。

內容包含:
* Fennel 語言:語法、常用函式庫。
* Lisp 思維:S-expression 編輯、互動式開發 。
* 函數式編程:純函數、map/filter/reduce 等實務技巧。
* Neovim Plugin 開發:從簡單腳本到完整的 plugin。

讓我們在 AI 時代,一起探索更聰明、更優雅的程式開發之道。

鐵人鍊成 | 共 30 篇文章 | 6 人訂閱 訂閱系列文 RSS系列文
DAY 21

專案研討—Conjure Piglet Client

Conjure Piglet Client 是我第二次開發 Neovim 插件的作品,略有一些難度。 問題概述 "Laurence, 你對 Pigl...

2025-09-21 ‧ 由 Laurence Chen 分享
DAY 22

專案研討—WebSocket

前一篇在開發 Conjure Piglet Client 時,提到了第三方函式庫 WebSocket 。我一開始還一度天真地以為,我只要找一些 Neovim p...

2025-09-22 ‧ 由 Laurence Chen 分享
DAY 23

專案研討—CBOR

讀者剛聽到 CBOR時,也許覺得很陌生,難以理解。這邊快速解釋一下,讀者可以想象成,它就是一個類似 json encode 的函式庫,只是它編碼的方式是用二進位...

2025-09-23 ‧ 由 Laurence Chen 分享
DAY 24

專案研討—Fennel 的跳轉定義

在我完成 auto-conjure 和 Conjure Piglet Client 這兩個專案的期間,開發過程中,最讓我痛苦的事,莫過於缺少了跳轉定義這個功能。...

2025-09-24 ‧ 由 Laurence Chen 分享
DAY 25

專案研討—跳轉定義背後的 Tree-sitter

考慮以下的需求:你有一個中文寫的純文字檔,裡頭是一篇中文的文章。基於某種理由,需要將文章裡的『如果』取代英文的 if 。很多人可能覺得,這還不簡單,字串取代就可...

2025-09-25 ‧ 由 Laurence Chen 分享
DAY 26

模式與原理—瓶頸與改進

在 day01 中,我們討論了 AI 時代的軟體開發,並提到了 Lisp 和 FP 如何透過減少測試與除錯時間,來提升軟體開發效率。它們之所以重要,是因為 AI...

2025-09-26 ‧ 由 Laurence Chen 分享
DAY 27

模式與原理—不確定性

軟體開發是充滿不確定性的工作,而不確定性通常來自於兩大方面: 使用者需求的釐清 零組件的應用挑戰 上述的不確定性在新開發專案時,往往特別明顯。 新開發專案有...

2025-09-27 ‧ 由 Laurence Chen 分享
DAY 28

模式與原理—複雜性

軟體開發的複雜性應該是軟體開發的眾多特性裡,最不需要特別証明的特性。隨便一個 5~10 行的函數,如果沒有寫好的話,都有可能讓工程師覺得難以理解。 而工程師有哪...

2025-09-28 ‧ 由 Laurence Chen 分享
DAY 29

模式與原理—修改傳播

時間可以說是軟體的大敵。 只要過了一小段時間,就會有無數的外力壓迫軟體系統進行修改。使用者的需求可能會改變、某個應用的套件可能會發現安全性風險,必須替換、某個依...

2025-09-29 ‧ 由 Laurence Chen 分享
DAY 30

模式與原理—內隱知識

在許多的組織,溝通與協作都是生產力瓶頸之一,而在軟體開發的領域,溝通與協作的特殊挑戰在於「內隱知識」。 曾經有一回,我與一位工程師 A 一同 pair prog...

2025-09-30 ‧ 由 Laurence Chen 分享