我在今年 3 月初的時候,透過 Mind Map 整理自己作爲 Full Stack Developer 的日常,並且花了很多時間去改善日常工作流程。最近我有點時間,於是就把那份 Mind Map 寫成文章,希望可以繼續拋磚引玉。謝謝大家支持
Time Management
每天我都有 24 個行動點數,需要做每日任務。而一天我都會分配 8 個工作行動點數,會議大概會用了 1 小時,那麼剩下 7 個可動用點數用於推動主線任務。
首先,我會看有哪些任務是已經委派給我,而這些任務的優先次序又是怎麼樣的。
在開始寫代碼之前,我會進入拆解問題的過程。找到與問題相關的持份者,列出需要哪些工具去解決這個問題,預估需要多少時間來完成這個任務。
如果可以只是修改團隊內部的代碼的話,那麼就可以開始動工。但如果需要找其他團隊的話,那麼就需要跨團隊溝通。如果是可以直接找到持份者的話,那麼就可以直接 Slack 他們,但是如果他們沒有反應的話,那麼就要再想辦法去接觸問題的根源。
Coding Time
進入開發模式的時候,我會開始計時,確保自己沒有浪費很多時間雕花。
我會根據之前定下來的開發步驟來開發,確保自己在正確的道路上堅定不移行走。我同時也會寫下註釋,以便未來的自己或其他人可以看懂這些代碼,尤其是 Magic Number
。
如果要開發一個新的網頁功能,我會先找原型圖。我會利用現代前端框架,例如 React.js
,Vue.js
開發,也會使用一些常見的 JavaScript 工具,例如 lodash。我也會使用 UI Farmework 來幫忙做網站排版,例如利用 Material UI 的 Grid 來達到 Responsive Design。
如果要解決舊有的問題的話,我需要細分到底是 UI 問題 還是 邏輯問題,我會利用 console.log 和 debugger 找出相對應的代碼。
如果網站流量大的話,我們就需要考慮如何提升網站性能,例如網站的載入速度,首屏時間,例如使用 Virtual DOM 來避免瀏覽器渲染頁面的 Heavy 工序,又或者是從伺服器性能入手,又或者利用 CDN 加速用戶載入資源的速度。
做好伺服器的性能監控,優化,確保服務長期在線。
寫好代碼之後,我就會把它推上去 GitHub
,提交 Pull Request
,然後觸發線上的測試流程。
如果一切都好了,那麼就可以進入部署的階段。我會利用 GitHub Actions
部署新的 Docker Image
到 Server 。又或者我會透過 Jenkins,觸發遠端的伺服器去把 GitHub 上的代碼拉下來,然後安裝再執行。
對於同伴給予的 Pull Request
,我會 Code Review
,並且在本地測試效果,確保可以達到預期的效果。
除了日常開發之外,我還會協助導入新技術,分享我在日常學會的技術,技能,無論是日常上的技巧,還是前端後端的知識。
如果手上的工作都做得差不多的話,那麼我就會想如何改進系統的架構。
Refactor
重構代碼也是很重要的。不過重構之前,我們需要有系統的架構圖,知道系統是如何運作的,爲什麼系統會這樣運作?這個系統的歷史又是怎麼樣的?當我們對於系統有相當的認識之後,我們就可以針對系統進行更新或重構。不過記得做之前,用 Git 做版本管理,寫好單元測試,這樣就可以大膽地把代碼砍掉重煉。
結束一個回合之前,我會整理當天做過的事情,以及明天的 TODO。