28,去了 2 個月圖書館之後

今年 2 月下旬,我決定晚上(下班後)去圖書館讀書!

原因很簡單,我在家不好讀書,主要有兩點:

  1. 如你所知,房間誘惑較多。不過這點其實還好,畢竟我工作、學習都是在家,所以不是主因。
  2. 這才是主因,因為目前升降桌的燈光、螢幕都是為了「使用電腦」而設計,並不適合用來讀書。

以前我有兩張桌子,直接切換,一張專門用來讀書,那樣比較合乎實際。但換了升降桌後,小小的租屋空間就不夠了,不得不把「書桌」丟棄。

一直都有勉強試著讀書,但效果真的好差!

因為過程很麻煩,要先移開鍵盤,如果滑鼠沒放好,螢幕不時會被喚醒。檯燈我用的是 BenQ 的 ScreenBar,看螢幕很棒,但讀書的話,光源距離桌面又有點太遠了!而且角度也需要再調整。

讀個書猶如愚公移山,最後,我決定放棄苦苦掙扎,乖乖去圖書館!

Python API 開發:善用 Enum 的三大關鍵特性

from Pixabay

想必你知道 Python 中有一個內建的特殊類別叫 Enum(來自 enum 模組),專門用來處理「列舉」態型的資料集合。

如同 collection 模組中的各種容器(比如:dequeCounter),Enum 已經定義好很多「內建特性(屬性、方法、行為)」供你使用。這些特性會讓你在處理特定情境時非常順手。

但是,這些特性也使得 Enum 類別與一般類別有著很大的差異,增加了學習門檻

如你所見,Enum 的特性頗多,這讓人在學習、使用之前,難免有點望之卻步——至少我是這樣!

本文主旨與架構

本文分享我最近才開始把 Enum 應用在 API 開發中的經驗——從它的三大特性入手,並輔以一個實際問題情境。

Enum 的特性不少,但只要知曉這三件事,就可以在遇到「列舉」欄位時,善用 Enum 來提升開發效率,同時增進程式碼的簡潔與穩健。

不過話說回來,即使不是開發 API,也不影響你對本文的理解。只是我的經驗是從後端開發而來。

本文架構

為了讓你感受 Enum 的強大與美妙,本文的架構經過精心設計。共分為三個部分

  1. 問題情境:我會先提出一個問題情境,突顯舊方法的不足。
  2. 然後再介紹 Enum 的三大特性,帶你進入 Enum 的世界。
  3. 最後看 Enum 特性在問題情境中如何有效發揮,讓程式碼變得更加優雅——也就是它解決的痛點

藉由這個流程,相信你對 Enum 會有更進一步的理解。

27,正式入手《流暢的 Python》第二版

Weekly Review 原則上著眼於「非程式類」內容,而這是一本程式相關的書,所以這期不會討論書中的技術細節,只聊聊我的主觀感受

講它,是因為我對這本書的期待很高,它絕對有這個地位與份量,更別說它真的很厚!(量了一下有 5 公分厚,打算這星期拿去影印店拆成 3 本

趁著清明連假的天瓏日(滿千折百活動),我總算入手了 Python 進階書籍中的口碑之作——《流暢的 Python》,第二版。

還沒有開始讀,但先簡單分享一下我的看法與期待。

26,改用 Buttondown 作為文章訂閱服務

去年 2 月,部落格新增了「email 文章訂閱」功能,採用的方案是免費的 follow.it

它會把我的 RSS 新文章轉成 email,然後寄送給訂閱的讀者。

相關文章:12,blog 新增文章訂閱功能——使用 follow.it

如該篇中所言,「文章訂閱功能」確實是現代部落格的一大需求。

網路上的資訊眾多,我自己作為讀者,也常常感覺被淹沒。遇到一個喜歡的作者,想要追蹤,此時作者是否提供了訂閱功能,就至關重要。

文章訂閱功能,可以由寫作平台提供,比如 Medium、Substack。不然就得自己來,因此我一開始就為 blog 提供了 RSS 訂閱。

但 RSS 畢竟不是一般人常用的資訊接收方式(我自己也不用),它只能滿足小眾人口的需求。所以最終我還是選擇了像 follow.it 這樣的「RSS to email」服務。

《強健的 Python》筆記(一)Type Hints 的成本與挑戰

強健的 Python

這是《強健的 Python|撰寫潔淨且可維護的程式碼》筆記的第 1 篇,你可以把它當作是一則重點整理,加上我個人的開發經驗與心得。

本書翻譯自《Robust Python: Write Clean and Maintainable Code》,原文的副標題容易讓人以為這又是另一本關於「Clean Code in Python」的書。

實際上,本書所聚焦的,是 Python 的一大特性——type hints。全書大半篇幅都圍繞著這個核心主軸。

所以它並非教你「如何寫出 Pythonic 程式碼」的書,而是介紹 type hints 寫法與使用相關工具(比如 Mypy)以確保 type hints 有效落實的作品。

如果你還不熟悉 Python type hints,本文也可以作為認識 type hints 的起點。

25,回歸原點的 Weekly Review

這是第 25 篇的 Weekly Review,距離上一期已經非常久了!

我覺得,顯然的,我把整個 Weekly Review 寫「」了,失去了它原本的味道。

雖然我曾在第十期〈10,Weekly Review 寫滿 10 回:我的心得與改進〉確立了一些想法。但也就是這些想法,讓整個系列走向愈來愈「笨重」的窘境。

比如其中提到「二、篇幅上限?忘了吧!」,就相當於在心中暗示了自己,可以愈寫愈長、愈寫愈正經。

繼續往這個方向演化,Weekly Review 的調性就會逐漸向「心得」靠攏——而結果也是如此,同時讓我愈來愈難下筆。

《Python 工匠》筆記(二)對「單元測試」的看法與建議

Python 工匠

這是《Python 工匠|案例、技巧與開發實戰》筆記的第 2 篇,你可以把它當作是一則重點整理,加上我個人的開發經驗與心得。

如第一篇所言,這是一本關於「Clean Code in Python」的書。

這二篇,我將整理書中第 13 章「有關單元測試的建議」的內容(以及我的看法)。我覺得真的寫得太好了,值得你了解。

話不多說,直接開始。