2023 那些我已不可或缺的「付費訂閱」推薦

DALL·E 3

這篇要來講述,2023 年的當下,對我而言「具有一定重要性」的付費訂閱。

這屬於完全個人化的心得,我會列出那些不可或缺的訂閱項目,並解釋它們對我的重要性所在。

所謂的「不可或缺」,意思是一旦我停止訂閱,我的工作和生活都會出現挑戰。而挑戰的大小,就是這些訂閱項目對我的影響力與價值。

以下排名同時也是重要性排名,就讓我們從最重要的開始吧!

別依賴「試誤法」寫程式

from Pixabay

這個情況真的太普遍,尤其是知識不夠紮實(指為開發所做的功課太少)的開發者。但如下所述,這其實是一個「開發習慣」議題。

無論如何,我不得不為此發聲:「請停止用『試誤法』來寫程式!」

我們先看看維基百科對於「試誤法」的闡述:

嘗試錯誤法,又稱試誤法(英語:trial and error),簡稱試錯,是用來解決問題、獲取知識。此種方法可以視為簡易解決問題的方法中的一種,與使用洞察力/直覺或理論推理的方法正好相反。

就像這句「此種方法可以視為簡易解決問題的方法中的一種」說的,在我看來,試誤法常常會得到 workaround(雖不能根本解決,但能暫時繞過問題的替代方法)等級的答案——這肯定不是好事。

首先我得說,「試誤」在軟體開發中,是一個常見且實用的手段。

我自己寫一些邏輯時,也常常在 jupyter notebook 先執行嘗試執行一下程式碼片段,看看結果,以確保我的想法沒錯。但,這只是一種輔助。

本文想強調的是:不要以「試誤」作為開發的基調,或解決問題的主要方式。換言之,不要濫用試誤

否則那將是一場災難。

無數次 trial and error,看起來勤勤懇懇,實際上是最低效的開發手段。我覺得,試個兩、三次行不通,就應該重新思考問題的本質——而非繼續嘗試。

Django Tutorial:系列介紹與導讀

Let's Django!Let's Django!

2024-03-22 :更新文章規劃,增加「Django Ninja」相關文章。同時重新編輯全文,刪除部分內容,使文章更緊湊、好讀。

這是 Django Tutorial 系列的第 0 篇——序言。主要說明整個系列的寫作動機、文章規劃,並介紹 GitHub 倉庫的使用方式。

本站所有 Django 教學文章,已整理於 Django 文章總覽


系列寫作動機

雖然在工作上寫了 2 年 Django,對 Django 的文章介紹卻非常少。

作為一個 Django 開發者兼作者,讓我不免覺得,自己有「義務」做些什麼。經過一番思考,我決定把工作中常見的 Django 實作寫成文章。

尤其繁體中文世界對於 Django 的介紹,大多停留在製作整個網站(主要介紹模板、Form、View),而不是開發 API——用 Django 開發 API 的相關教材太少了。

這個現象不難理解,因為在台灣使用 Django 作為產品主要後端的公司相對有限,所以文章分享自然就不是那麼多。

而工作中你幾乎不太可能用 Django 來開發整個網站,畢竟這是個前後端分離的時代。

想到這裡,寫作 Django 系列教學的動力又提升了!這或許就是我的使命

目標讀者

因此,這系列文章主要針對那些已有 Python 基礎,但想要進一步了解 Django 網頁開發,尤其是「用 Django 開發 Web API」的讀者。

畢竟開發 API 才是我的 Django 日常。

所以我不得不遺憾地表示,這個系列將不會有任何關於「Django 模板、表單」元件等介紹,也不會討論上述元件與 Django View 的整合議題。

而是完全以「API」為核心。


文章規劃

目前計畫分成多個部分,每個部分有多篇文章。

一、Django ORM 三部曲

無論全端還是前後端分離,Django ORM 的重要性與地位都不會有任何影響,所以 ORM 三部曲自然還是要一一介紹。

目前規劃的文章為:

  1. Django ORM:一對一、一對多外鍵教學(上)前言與關聯設定
  2. Django ORM:一對一、一對多外鍵教學(中)反向關聯
  3. Django ORM:一對一、一對多外鍵教學(下)查詢篇

而且,整個 Django 框架中,我最愛的部分就是 Django ORM——它強大而優雅

二、pytest 單元測試

我相信,沒有單元測試的開發,是「不健全」的開發。

自己的程式自己測,優秀的開發者不會把「低級錯誤」留給 QA,讓 QA 當保姆。

哪怕只是最基本的,為每一個 API 加上 200 回傳值的單元測試,都遠比沒有來得強。有了測試以後,再來就是覆蓋率報告。

文章預計如下:

  1. Django 測試指南:用 pytest 撰寫 API 單元測試——環境設定篇
  2. Django 測試指南:用 pytest 撰寫 API 單元測試——Fixtures 篇
  3. Django 測試指南:使用 pytest + pytest-cov 計算 Test Coverage

三、Django API

2024-03-22更新:因為工作上的新專案皆已轉向 Django Ninja,所以我會以 Django Ninja 為主,但也會有一些 DRF 的文章。

講到 Django API,就不得不提 Django REST framework(下稱 DRF),尤其是它提供的 API view(無論 CBV 或 FBV)與序列化器

當然,時代在變,如今開發 Django API 並非只能選擇 DRF,受到 FastAPI 啟發而誕生的後起之秀——Django Ninja,也值得你一試。

尤其它支援 Pydantic,可以依程式碼自動生成 API 文件。你可以簡單想成,它就像是「Django 版的 FastAPI」。

預計主題有下,目前文章標題皆未定:

  • Django Ninja 教學:路由設定
  • Django Ninja 教學:自動生成 API 文件
  • Django Ninja 教學:API 與序列化
  • 用 DRF 開發 Django API
  • DRF 序列化器
  • 檔案上傳
  • DRF 分頁(Pagination)

如你所見,這並不是一個「大而全」的 Django 教學,而是以我自己的實務經驗為主,介紹我認為最重要且相對熟悉的部分。

主要的目標是讓讀者可以快速上手,並了解 Django API 開發的基本概念。

四、Django 通用功能

無論是後端 API 開發還是全端開發,都會有的通用主題,比如:


範例程式碼 GitHub 專案介紹

最後,介紹與整個系列教學直接相關的 GitHub repository——Django-Tutorial

這個專案的定位是「讓有讀者實際程式碼可以參考」,所以基本上是拿來「看」的。但我會讓它也能夠真正運行,以方便想要自己動手嘗試的讀者。

我相信這對學習大有幫助。

分支功能

專案中會有許多分支,採<流水號-文章slug>的模式命名,比如:

1
01-django-models

分支主要是作為歷史記錄之用,以及快速查看該分支所對應的程式碼修改

包括本站其它教學範例

附帶一提,分支記錄「並非只限」Django Tutorial 系列文章,本站別的文章也會有!

比如我某篇文章要講解「專案容器化」,用現有的專案來進行示範無疑再好不過,所以也會變動專案程式碼並留下分支記錄:

1
02-dockerize

重啟了 Twitter 與我的理由

上個月重新登入了塵封一段時間的 Twitter(下稱推特)帳戶。也開始在上面發一些零星的推文——幾乎都是程式相關。

一直以來我都稱不上推特的重度用戶,如果有一個社群平台是我獲取資訊的來源,那主要還是臉書。

但我們知道,臉書在幾波隱私相關的大事件後,演算法有了較為明顯的改動。很多人——包括我在內——都覺得臉書的推薦內容不再像過去那般有趣、實用。

於是在轉職後的這幾年,我也開始看推特。


Cal Newport 對推特的看法

如果你看比較多 Cal Newport 的內容(主要是 Podcast),你會發現,他雖然沒有任何社群平台帳戶,但他對推特的討論與關注,遠遠超過對其它平台的討論,比如臉書、Substack。

EP. 241: The Virality Trap〉這集有一定的代表性。

23,Blog 新增「發文計畫」與我的思路

2023/11/04更新:24,收回「發文計畫」


前幾天躺在床上,突發奇想,想到一個可以改善我「發文紀律」的有效手段!

從以前到現在,雖然習慣把想寫的主題事先收集起來,但實際上它們究竟會以什麼樣的順序被創作,則非常依賴我當下的心情與喜好。

我並不喜歡這種「今天想到寫什麼才寫什麼」的模式,儘管多數主題都不是臨時起意,但創作本身卻存在很大的不確定性

這是一種不穩定的狀態

怎麼改善?沒錯,我想到用 Notion 建立我的發文行事曆,我稱之為「發文計畫」。

現在,你可以在 blog 左上角的選單找到它。

這篇來就介紹我的思路、為什麼選擇 Notion,以及如何規劃版面呈現等議題。

22,我還是預購了瓦基的《卡片盒筆記實戰課》

from Pixabay

這標題乍看有點像廣告XD,不過你看下去就知道。😎

「還是」二字代表了我對「購買課程」這個決定的猶豫與觀望

事情是這樣的,如果你也是瓦基(應該不用再特別介紹)的電子報訂戶,他在前兩天的新信中,公布了他的全新募資線上課程《卡片盒筆記實戰課》。

這讓我不禁陷入一陣掙扎,究竟是買還是不買呢?

Cal Newport 與我的河濱思考

從〈19,AI 時代的生存指南(二)數位斷捨離〉發表後,又過了兩個月的時間,就像文中說的,要持續數位斷捨離,可一點也不簡單。

不過沒關係,我還是會繼續嘗試與實踐下去。只不過,數位斷捨離跟許多好習慣的養成一樣,多多少少都會消耗你的意志力,以達成一定的慣性。(當然如果你並不真的喜歡這件事,那最終依舊不會形成慣性)

如果同時還有其它目標追求,確實不宜對自己太過嚴苛,以免「全軍覆沒」。

不過其中一種數位斷捨離實踐,我倒是持續了好幾個月,效果不錯,而且我也推薦你這麼做——那就是「散步時,不要用手機」。

Cal Newport 為什麼沒有社交媒體帳號

Cal Newport 在這則〈The Perks of Living Without Social Media | Cal Newport〉影片中,講述了他不用任何社交媒體的理由。

一言以蔽之就是:為了保持無聊