學習紀錄:優美地使用 Typescript 撰寫 React(一)
建立良好的開發與執行環境
有時候不知道為什麼會做某些事情,跟著心走就對了。或是,跟著kk走,也相去不遠。
如果你因為標題進來,系列原文在此:
這是一個嘗試在沒有足夠背景知識下,紀錄自己缺乏什麼的過程。
徐愷一直很照顧我,看著他一路變魔術、PyCon演講、賣紅茶、創業、IG煮飯、開教學課程…一直很認真的在前進。常常有什麼東西他說不會,過個週末回來,他就學會了。大概是那個時候我才理解,工具間(我們當時笑稱RD間裡面很多工具人)學習能力有多可怕。
去年為了獎品黑T-shirt,也好奇那時的雲端服務做得如何,跑去玩 Google ML Study Jam 初級。這麼多年來上了各種不同實體、虛擬課程、學習不同領域,感受最深的是,若是跟到好的老師、教材、學習流程,學起來會覺得自己好像天才,怎麼一學就懂。(當然也可能我都只挑簡單的…)
所以,我決定嘗試跟看看,第一天內容如下:
(一)安裝 VSCode 與推薦插件
(二)安裝 NVM 版本管理工具與 Node.js 執行環境
(三)安裝 Yarn 套件管理工具
(四)使用 Prettier 與 Organize Imports 優化程式碼
(五)使用 Husky 與 Lint Staged 做持續整合
(一)安裝 VSCode 與推薦插件
徐愷推薦的各種插件能夠降低認知負荷,對新手來說幫助很大,例如:
Code Spell Checker

vscode-icons

把該載的載完,繼續載。
(二)安裝 NVM 版本管理工具與 Node.js 執行環境
Kk貼心的提醒Node.js跟JavaScript之間的關係,並且分享了Kuro 大大的書「 0陷阱!0誤解!8天重新認識JavaScript 」,連結導向博客來。不過我現在沒預算買書,所以在博客來連結裡發現一段話:
本書內容是由作者在2018 iT邦幫忙鐵人賽 -「重新認識JavaScript」的系列文章改寫而成,主要針對剛接觸JavaScript或者對JavaScript不是那麼熟悉的讀者,說明JavaScript的基礎與常見的誤區。
於是找到系列文章:
太棒了,以後有機會再捧場。
各種名詞說明和逐一Google之後,來安裝NVM(Node Version Manager)。
在Terminal下指令前,kk放了LMGTFY的連結,我瞬間噴笑。簡單說,就是Let Me Google That For You的縮寫,幫助沒用過Terminal的朋友們知道要Google什麼。

我沒有 ~/.bash_profile 於是只好用 touch 創一個。不過後來又裝了zsh,所以改放到 ~/.zshrc 。不熟悉或忘掉怎麼用 Terminal 的人,直接 Google Terminal Command Cheatsheet 瞬間上手。
後面的步驟可能需要會用nano或vim,一樣找Cheatsheet也瞬間把需要放進去的搞定。突然想念起Tony,當初vim也是他教我的,他邊看梅竹賽,我們邊在公司熬夜上傳客戶資料到SQL Server。
(三)安裝 Yarn 套件管理工具
突然看到沒看過的中文,想說我中文真的退步了,什麼是「腳手架」?
原來是 Scaffold ,wikipedia 真的是大家的好朋友,還沒捐款的快去。
使用npx的時候,不要忘了創建名稱,加上 demo-app 或 my-app 之類的。
(四)使用 Prettier 與 Organize Imports 優化程式碼
目前沒有在開發,手邊也沒有現成程式碼來玩,跑去看 Prettier 的網站,裡面這段寫得很好 Why Prettier ?
Kk這篇重點在優美的開發,因此團隊的格式統一很重要。突然想起 Silicon Valley (矽谷群瞎傳)裡的主角 Richard 跟 Winnie 分手的主因就是因為 Richard 用 Tabs , Winnie 用 Spaces 。
翻出來那時候討論這件事的媒體文章,很有趣:
(五)使用 Husky 與 Lint Staged 做持續整合
覺得這是很棒的知識管理方式,新加入kk團隊的開發成員,拜讀kk的文章就行,還能以文會友。
解決兩個問題:
- Commit前常忘掉Prettier或其他要跑的task
- 腳本只動staged files
很像「原子習慣」裡提到的,把新習慣綁在舊習慣後面。
自動化這麼美好,難怪寫程式這麼令人著迷,因為生命裡真的滿多東西是不能控制的。
很感恩今年回來用臉書,才能看到徐愷的這一系列文。活著的每一天不斷的優化,讓生活更符合自己想要的樣子。
如果你因為標題看到這裏,快去看看徐愷寫的系列文: