Docstring 的重要性——《Python 功力提升的樂趣》
這是《Python 功力提升的樂趣:寫出乾淨程式碼的最佳實務》閱讀筆記的第 3 篇,你可以把它當作是一則重點整理,加上我個人的開發經驗與心得。
本文整理書中的第 10、11 章,且篇幅幾乎集中在前者。無論什麼語言,「寫好函式」這件事總是如此重要,Python 自然也不例外。
系列:Python 功力提升的樂趣
- 使用 Black 格式化程式碼——《Python 功力提升的樂趣》
- 如何寫出 Pythonic 程式碼——《Python 功力提升的樂趣》
- Docstring 的重要性——《Python 功力提升的樂趣》
- 《Python 功力提升的樂趣》心得總結:掌握 Clean Code 基本功
第 10 章:寫出有效率的函式
有效率的函式(或說「好的」函式)需要你在「命名、規模大小(行數)、參數數量和複雜性」之間,做出許多決定和取捨。
本章探討的正是這些取捨之間的利弊得失,以及編寫函式的重要原則。
不用說,這是關鍵的一章。
2023 那些我已不可或缺的「付費訂閱」推薦
這篇要來講述,2023 年的當下,對我而言「具有一定重要性」的付費訂閱。
這屬於完全個人化的心得,我會列出那些不可或缺的訂閱項目,並解釋它們對我的重要性所在。
所謂的「不可或缺」,意思是一旦我停止訂閱,我的工作和生活都會出現挑戰。而挑戰的大小,就是這些訂閱項目對我的影響力與價值。
以下排名同時也是重要性排名,就讓我們從最重要的開始吧!
別依賴「試誤法」寫程式
相關文章:論軟體工程師常見的「路徑依賴」問題(上)
你身邊的人都是怎麼開發的呢?
有個情況很普遍,我不得不為此發聲:「請停止用『試誤法』寫程式!」
這尤其適用於準備知識不夠紮實(指為開發所做的功課太少)的開發者。但如下所述,其實它本質上是一個「開發習慣」議題。
我們先看看維基百科對於「試誤法」的闡述:
嘗試錯誤法,又稱試誤法(英語:trial and error),簡稱試錯,是用來解決問題、獲取知識。此種方法可以視為簡易解決問題的方法中的一種,與使用洞察力/直覺或理論推理的方法正好相反。
就像這句「此種方法可以視為簡易解決問題的方法中的一種」說的,在我看來,試誤法常常會得到 workaround 等級(指雖不能根本解決,但能暫時繞過問題的方案)的答案——這肯定不是好事。
不過,我承認,「試誤」在軟體開發中,是一個常見且實用的手段。
我自己寫一些邏輯時,也常常在 jupyter notebook 先執行嘗試執行一下程式碼片段,看看結果,以確保我的想法沒錯。但,這只是一種輔助。
本文想強調的是:不要以「試誤」作為開發的基調,或解決問題的主要方式。換言之,不要濫用試誤。
否則那將是一場災難。
無數次 trial and error,看起來勤勤懇懇,實際上是最低效的開發手段。我覺得,試個兩、三次行不通,就應該重新思考問題的本質——而非繼續嘗試。
Django Tutorial:系列介紹與導讀
2024/03/22
:更新文章規劃,增加「Django Ninja」相關文章。同時重新編輯全文,刪除部分內容,使文章更緊湊、好讀。
這是 Django Tutorial 的第 2 篇——序言。主要說明整個系列的寫作動機、文章規劃,並介紹 GitHub 範例程式碼 repo 的使用方式。
系列寫作動機
雖然在工作上寫了 2 年 Django,對 Django 的文章介紹卻非常少。
作為一個 Django 開發者兼作者,讓我不免覺得,自己有「義務」做些什麼。經過一番思考,我決定把工作中常見的 Django 實作寫成文章。
尤其繁體中文世界對於 Django 的介紹,大多停留在製作整個網站(主要介紹模板、Form、View),而不是開發 API——用 Django 開發 API 的相關教材太少了。
這個現象不難理解,因為在台灣使用 Django 作為產品主要後端的公司相對有限,所以文章分享自然就不是那麼多。
而工作中你幾乎不太可能用 Django 來開發整個網站,畢竟這是個前後端分離的時代。
想到這裡,寫作 Django 系列教學的動力又提升了!這或許就是我的使命。
重啟了 Twitter 與我的理由
上個月重新登入了塵封一段時間的 Twitter(下稱推特)帳戶。也開始在上面發一些零星的推文——幾乎都是程式相關。
一直以來我都稱不上推特的重度用戶,如果有一個社群平台是我獲取資訊的來源,那主要還是臉書。
但我們知道,臉書在幾波隱私相關的大事件後,演算法有了較為明顯的改動。很多人——包括我在內——都覺得臉書的推薦內容不再像過去那般有趣、實用。
於是在轉職後的這幾年,我也開始看推特。
Cal Newport 對推特的看法
如果你看比較多 Cal Newport 的內容(主要是 Podcast),你會發現,他雖然沒有任何社群平台帳戶,但他對推特的討論與關注,遠遠超過對其它平台的討論,比如臉書、Substack。
〈EP. 241: The Virality Trap〉這集有一定的代表性。
23,Blog 新增「發文計畫」與我的思路
2023/11/04
更新:24,收回「發文計畫」
前幾天躺在床上,突發奇想,想到一個可以改善我「發文紀律」的有效手段!
從以前到現在,雖然習慣把想寫的主題事先收集起來,但實際上它們究竟會以什麼樣的順序被創作,則非常依賴我當下的心情與喜好。
我並不喜歡這種「今天想到寫什麼才寫什麼」的模式,儘管多數主題都不是臨時起意,但創作本身卻存在很大的不確定性。
這是一種不穩定的狀態。
怎麼改善?沒錯,我想到用 Notion 建立我的發文行事曆,我稱之為「發文計畫」。
現在,你可以在 blog 左上角的選單找到它。
這篇來就介紹我的思路、為什麼選擇 Notion,以及如何規劃版面呈現等議題。