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 會有更進一步的理解。

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

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

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

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

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

改用 Buttondown 作為文章訂閱服務

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

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

相關文章: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 的起點。

系列:Mypy 三部曲

  1. 《強健的 Python》筆記:如何有效導入 Type Hints
  2. Python type checker:Mypy 介紹
  3. Django 專案加入 Mypy 指南

25,回歸原點的 Weekly Review

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

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

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

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

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

為什麼你應該寫單元測試——《Python 工匠》

Python 工匠

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

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

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

話不多說,直接開始。