終於到最後一天了。
寫 Day 1 的時候,我在前言裡說希望可以把原本比較零散的東西慢慢串起來,而不是只知道程式碼要怎麼寫,卻不知道為什麼要這樣寫。那時候其實很緊張,因為自己也不太確定做不做得到,就先寫上去了。現在回頭看,大概有做到一部分吧。
這 30 天裡面印象最深的,其實是 Day 21 那天。
前面十幾天的資料都放在 tasks = [] 裡面,程式關掉就全部不見,反正畫面上看起來是有東西的就好。直到接上資料庫,新增完、關掉 Server 再重開,資料真的還在那裡,才覺得前面做的其實只是「看起來像」而已。
那個感覺很酷,有點像是東西第一次變成真的。
最慘的一天則是 Day 23。
Model 明明加了欄位,查詢的時候資料庫卻說 no such column;好不容易把 migration 檔生出來,flask db upgrade 又噴 Cannot add a NOT NULL column with default value NULL。那時候一直以為是自己哪個指令打錯,刪掉重來好幾次還是一樣。後來才搞懂問題根本不在指令,是我沒分清楚 Model 裡寫的 default 和資料庫的 server_default 是兩件不同的事。
卡最久的一天,不過也是學最多的一天。
另外對這 30 天的感想,大概是「要寫出來」這件事本身。
看教學的時候很容易覺得自己懂了,但真的要寫成文章解釋給別人聽,就會卡在一些很基本的地方:這一行為什麼要這樣寫?不這樣寫會怎樣?我自己有實際跑過嗎?像 api.payload、app_context、@wraps 這幾個,其實都是因為要寫進文章,才回頭去查清楚、自己跑一次試出來的。
而且有好幾次是寫完「應該會看到 X」,實際跑一次才發現根本不是 X,只好整段回去改。現在回頭看,這 30 天大概有一半的時間都花在確認自己是不是真的懂,另一半才是真正學到東西的部分。
發完這最後一篇文,想到開始學的時候,我們有幾門課是學長在上的,講義跟筆記也都是他們自己整理在 Notion 上面。那時候上課只覺得「有現成的筆記可以看好方便!」,就沒有再多想什麼。
自己真的開始每天寫之後才知道,要把一個東西整理到別人看得懂,背後要先確認好多事情。自己看懂,跟寫成別人看得懂,兩者真的差很多。現在回頭想那些講義,覺得他們真的好厲害。
30 天結束了,但後端的東西顯然還有很多。接下來想把測試跟部署補起來,也想試著把這個 API 真的接上一個前端看看。
謝謝這 30 天看到這裡的大家。