34,宜蘭二日遊與近況回顧

七月上旬不慎感冒,不知為何,這回特別嚴重。足足過了近兩星期,才逐漸恢復正常。
而且,整個七月至今,狀態都不太好。不僅是身體,心情也低落,有一種找不到出口的感覺。
這樣的心情間接影響了我的寫作士氣,讓我感到心有餘而力不足。
這星期四、五,和女友去了宜蘭,雖然是一次的短暫旅行,但至少能夠打破既有的生活節奏,讓自己放鬆一下。
宜蘭我還算熟悉,畢竟曾在宜蘭工作了 5 年多,想起這段過往,覺得人生真的有很多變化。
本期結合旅記和近況回顧,篇幅會比以往略長。

七月上旬不慎感冒,不知為何,這回特別嚴重。足足過了近兩星期,才逐漸恢復正常。
而且,整個七月至今,狀態都不太好。不僅是身體,心情也低落,有一種找不到出口的感覺。
這樣的心情間接影響了我的寫作士氣,讓我感到心有餘而力不足。
這星期四、五,和女友去了宜蘭,雖然是一次的短暫旅行,但至少能夠打破既有的生活節奏,讓自己放鬆一下。
宜蘭我還算熟悉,畢竟曾在宜蘭工作了 5 年多,想起這段過往,覺得人生真的有很多變化。
本期結合旅記和近況回顧,篇幅會比以往略長。

這是《Python 工匠|案例、技巧與開發實戰》筆記的第 3 篇,你可以把它當作是一則重點整理,加上我個人的開發經驗與心得。
如第一篇所言,這是一本關於「Clean Code in Python」的書。
上一篇我整理書中了第 13 章「有關單元測試的建議」的內容(以及我的看法)。這次我們要再回到一開始,繼續學習如何寫好程式碼。
本文整理自書中的第 1 章第 3 節,為了不過度重複書中內容,下筆點到為止,並加上我自己的理解。
- 如何寫好 Python 註解——《Python 工匠》
- 為什麼你應該寫單元測試——《Python 工匠》
- 精通「變數」的宣告與使用——《Python 工匠》

這是「Python 入門三部曲」的最後一篇!歷時 2 年,終於要為這個系列劃下句點。
在此之前,我已寫下 3 篇關於《Python 功力提升的樂趣》的筆記與心得。本文建立在它們之上,但會從更高的俯視角度來介紹與推薦這本書。
從全書的輪廓與定位切入,讓初學者更容易掌握觀念,不至於迷失在細節中。對於已有經驗的 Python 開發者,則可以藉由一篇篇的筆記,直接找到自己感興趣的章節。
所以,本文不會在內容上重複前文,或在細節上多加著墨,而是更多的回顧與比較。
這是為什麼我要先寫筆記,最後再完成這篇閱讀心得的原因。
當然,不是每一本書都值得你如此對待。畢竟其中要投入時間精力甚多,這是我第一次——可能也是最後一次,這麼詳細地介紹一本書。
但這本書,我認為值得。
- 《精通 Python 第二版》心得:給入門者的 Python 學習藍圖
- 最佳 Python 入門書——《Python 技術者們 - 練功!》心得與導讀
- 《Python 功力提升的樂趣》心得總結:掌握 Clean Code 基本功
- 使用 Black 格式化程式碼——《Python 功力提升的樂趣》
- 如何寫出 Pythonic 程式碼——《Python 功力提升的樂趣》
- Docstring 的重要性——《Python 功力提升的樂趣》
- 《Python 功力提升的樂趣》心得總結:掌握 Clean Code 基本功

你聽過 Tony Huang 嗎?
20 年前他就已經開始寫登山健行 blog,最近 5 年改為拍攝 YouTube 影片,成為旅遊 YouTuber。
他的作品特色是,在旅行中融入人文、歷史、文學等元素,讓觀眾不只是看風景,更能了解台灣這塊土地的過去。
我無須介紹太多,而是要聊聊,最近看了許多他的影片的一些感想。

這是 Django Tutorial 的第 9 篇、DRF 系列的第 3 篇。
範例程式碼可參考我的 GitHub 專案。
本文相關的程式碼改動,都集中在這個 PR。
- Django REST framework 教學(一)前言篇
- 設定 Django REST framework 路由
- 學習 Django REST framework 的 View 函式
Views 是 Django 中處理 HTTP 請求的核心邏輯。它的作用是接收請求、處理請求,最後返回 response:
A view function, or view for short, is a Python function that takes a web request and returns a web response.
在 Django 中,我們可以使用兩種方式來撰寫 views:
「CBV vs. FBV」是初學 Django 一個常見的議題。如系列的第一篇所言:
CBV 有著重用程式碼優勢,適合大型專案。而 FBV 則以簡單、直接為賣點,方便快速開發中小型專案。
究竟要選哪個,取決於個人喜好與專案需求。
Django REST framework(以下簡稱 DRF)同時支援這兩種 views。
事實上,DRF 顯然更加鼓勵使用 CBV,不僅提供了許多現成的 generic views,它的很多元件也是基於 CBV 設計的。
不過,本文只打算介紹 DRF 中的 FBV,並實作一個 DRF view function。

在〈《強健的 Python》筆記:如何有效導入 Type Hints〉一文中,我們闡述了為 Python 專案程式碼加上 type hints 的長期價值與需要付出的成本。
文中多次提到了 Mypy 這個靜態類型檢查器。
本文從歷史發展、工作原理與工具的整體輪廓上介紹 Mypy 的特色,
雖然沒有詳細的 Mypy 使用教學,但更了解 Mypy,可能讓你對 Python 的型別檢查產生不同的看法。
老實說,我覺得 Mypy 不太需要學習,只要引入一些設定就好。這部分我們會在下一篇文章中介紹。
最後,我會分享一些使用 Mypy 時的心得與經驗。
如果看過開頭那篇文章,你可能會認同:我們終將要成為 Python type hints 的信徒。而 Mypy 就是最佳的布道者。
- 《強健的 Python》筆記:如何有效導入 Type Hints
- Python type checker:Mypy 介紹
- Django 專案加入 Mypy 指南
Python 是一門廣受歡迎的「動態定型」程式語言,以其簡潔的語法和靈活性著稱。
然而,這種靈活性有時也會成為問題,特別是在大型專案中,型別錯誤可能會導致難以追蹤的 bug,從而降低程式碼的可靠性和可維護性。
在這樣的背景下,Mypy 應運而生。

在〈現代軟體的「鍵盤快捷鍵」記憶爭奪戰〉一文的留言中,有讀者提到我最近似乎變多產了。
確實如此。
有人注意到這件事,讓我非常高興XD,甚至可以說感動。
而本文斗膽預告:下半年將會比上半年,更加多產🔥
我通常不太想為自己立 flag,預告也屬於此類。尤其有〈24,收回「發文計畫」〉的前車之鑑,心裡難免會暗暗擔憂:「是不是說出來就會更容易失敗?」
當然,我知道實際並非如此——很多事做不做,成不成,終究還是操之在己。
至少寫作是這樣的。
這篇來聊聊我今年下半年的寫作目標,主要有三大方向。
看完這三個方向,想必你就能理解,為何說一定會比上半年更多產。
換言之,如果真的都能達成,多產只是必然的結果。