Skip to main content

Command Palette

Search for a command to run...

碼農筆記 - 設計思維

Published
1 min read

Mark it Work, Mark it Right, Mark it Fast

  1. 可測試性

  2. 可閱讀性

  3. 可觀察性

  4. 可維護性

  5. 可擴展性

  6. 健壯性

  7. 安全性

  8. 效能與資源效率

  9. 可部署性

  10. 可配置性

🧠 最佳實踐心法

  • 別一開始就追求 Make it Fast,先求穩定,再求優雅,最後才是效能。

  • 重構是常態不是例外,Make it Right 應視為開發常規而非技術債還債。

  • 性能瓶頸來自實測,而不是預測。

Make it Right 意指

  • 程式碼結構清晰

  • 命名具語意

  • 關注可維護性、可擴展性、可讀性

  • 按照設計原則(如 SOLID)撰寫

  • 減少重複與耦合

傳統誤區:把「寫好」視為額外成本

在很多團隊或專案中,開發者會有這樣的心態:

  • 「先讓它跑起來,之後再重構

  • 「這只是暫時寫的、先應付一下」

  • 「下次再整理…(但從沒真的再整理)」

這種心態會導致:

問題結果
初期堆積快速解法技術債快速膨脹
重構總是被推遲新功能越來越難加
團隊對代碼品質漠視新人無從下手,學習成本上升

正確認知:「Make it Right 是日常開發流程的一部分」

當你把「寫得漂亮、結構良好、可維護」視為一種**常規要求(default standard)**時:

  • 你每天就自然在還債,而不是堆債

  • 重構變成持續性維護而不是「專案重構月」

  • 團隊默契變好、交接簡單、回溯容易

這種開發節奏會讓專案在可控範圍內演進,而不是崩潰後大修

Make it Work 是起點,Make it Right 是常態,Make it Fast 是加值。

實踐方法

  1. Code Review 時列為必要項目

    • 命名是否合理?

    • 是否拆分職責清楚?

    • 有沒有提前預留擴展性?

  2. 將小型重構融入日常工作

    • 每次改功能時整理一下相關程式

    • 不為重構而重構,但也不怕順手改善

  3. 以開發者體驗為導向思考程式

    • 不只是「能跑」,而是「好讀、好改、好用」

More from this blog

關於 Hash index

什麼是 Hash Index? Hash Index 是資料庫系統中的一種索引結構,它使用雜湊函數(Hash Function)將索引鍵(Key)映射到資料表中的記錄位置。相較於傳統的 B-Tree 索引,Hash Index 在某些特定查詢場景下能提供更高效的性能。 基本原理 Hash Index 的核心原理是: 使用雜湊函數將索引鍵轉換為雜湊值(Hash Value) 雜湊值決定資料記錄在雜湊表(Hash Table)中的儲存位置 查詢時,系統對索引鍵應用相同的雜湊函數,直接定位到對應...

Jul 26, 20251 min read
關於 Hash index

Event Storming 演練 - 停車場系統 - 下

邊界情境 實際做法: 當大家走到「車輛靠近入口 → 辨識 → 進場」的事件時,突然有人問: 「那如果有人卡在入口不走呢?」 此時 facilitator(主持人)會立刻拿一張粉紅貼紙寫: 複製編輯🚧 車輛卡在入口太久 然後貼在「車輛靠近入口」的旁邊,不急著解決,先繼續主流程。 快速記錄格式(現場慣用) 元素怎麼寫 事件粉紅貼紙,寫「異常行為:XXX」 策略建議藍貼紙,可直接寫「應提示駕駛讓道」 命令建議黃貼紙,可寫「發送通知、記錄異常」 👉 不強求完...

Jul 10, 20252 min read

Event Storming 演練 - 停車場系統 - 上

領域專家口述業務流程 停車場入口會顯示目前停車場剩餘車位,當車輛駛入停車場入口,會先判斷是否有停車位,若是有停車位,車號辨視系統成功取得車號將會放入車輛進入,當感應車輛真的進入後,記錄車輛的車牌與其進入的時間,會將剩餘車位減一。 車輛進入之後,會給於一段緩衝時間,若是車輛在緩衝時間內出場,系統判斷可以正常出場不必繳納停車費用,若超過緩衝時間,即必須這行繳費程序之後再放行。 繳費流程要求在出場之前完成,不會與出場流程一起,繳費時會判斷是否在緩衝時間內,若是,將不必繳費請駕駛人儘快離場,並提醒剩於緩...

Jul 10, 20253 min read

TypeScript - Type 那點事

隨便記 將類型定義放在 .types.ts 或 .d.ts 檔案中,此兩者副檔名有何差異? 在 TypeScript 開發中,.types.ts 和 .d.ts 檔案都用於定義類型,但它們的用途和特性有所不同: .types.ts 用途: 通常用於在 TypeScript 專案內部,定義專案中使用的類型。 這些檔案包含 TypeScript 程式碼,可以包含類型別名、介面、列舉等。 .types.ts 檔案會被 TypeScript 編譯器編譯成 JavaScript 檔案(.js...

Jun 28, 20251 min read

我的工作筆記

8 posts

雖是全端碼農,主力還是後端功能,php + mysql + redis 使用 Laravel 框架,node + mysql + redis 使用 Adonisjs v5。