消除你程式碼的臭味 Day 19- 參數:少即是多,避免傳布林參數 參數越多,理解成本越高。問個簡單的問題:當你看到一行程式碼 createUser('Bob...
消除你程式碼的臭味 Day 18- 狀態管理:用資料定義流程 狀態機不該是 if/else 的迷宮,它的本質是一張規則流程表。 把轉移規則寫成表,讀表執行就...
消除你程式碼的臭味 Day 17- 分離關注點:設定與主要邏輯分開 把變動頻繁的設定從穩定的主要邏輯裡拿出去。 你的核心商業邏輯,應該像一個在無菌室裡工作的科...
消除你程式碼的臭味 Day 15- 組合優於繼承:用小能力組出行為 物件導向的繼承理論,源自於生物學家林奈的分類法。界、門、綱、目、科、屬、種。Dog is-...
消除你程式碼的臭味 Day 14- 複雜判斷:抽到具名函式裡 布林表達式越長,越應該被命名。程式碼是寫給人看的,只是順便能讓電腦執行而已。 當你寫下一長串充滿...
消除你程式碼的臭味 Day 13- 魔術數字:用具備語義的常數取代 數字本身不會說話,名稱會。 在程式碼裡看到一個像 86400 或 0.05 這樣的數字,看...
消除你程式碼的臭味 Day 12- 拒絕複製貼上:抽出共用邏輯 重複不是省事,是技術債。 在第二個地方貼上相似度 90% 以上程式碼時,就創造了一個混亂區。...
消除你程式碼的臭味 Day 11- 函式的副作用:把計算與 I/O 分離 一個函式應該只做一件事,並且做好它。 如果你的函式既要處理計算,又要跟外部世界(螢幕...
消除你程式碼的臭味 Day 10- 介面最小化:只暴露必要的東西 介面越小,被誤用的空間越小,維護成本越低。公開的每個函式,都是欠下的一筆債 介面是你經過深...
消除你程式碼的臭味 Day 9- 迴圈最佳化:把邊界判斷和特殊處理移到外面 一個迴圈的本質工作,就是對一系列相似的東西做同樣一件事情。 當你在迴圈裡面塞滿了邊...
消除你程式碼的臭味 Day 7- 資料結構至上:好程式碼的關鍵思考 搞錯了資料結構,寫的就不是程式碼,是日後要爆炸的地雷。 Bad programmers...
消除你程式碼的臭味 Day 1- 好命名:必須精準傳達意圖 你的命名必須準確傳達意圖,不能讓人猜程式碼是寫給人看的,不是給機器看的。如果需要花時間去猜一個變...
以下是讀完 Clean code 第三章節(part 2)的筆記: Have No Side Effects 有些函數是有破壞性 有時將某類別的狀態作非預期...
以下是讀完 Clean code 第三章節(part 1)的筆記: 先以FitNesse的一段3-1程式碼講解, 問我們能看懂多少? public stat...
以下是讀完 Clean code 第二章節(part 2)的筆記: Avoid Mental Mapping 一般做單字母會用在for迴圈, 比如i j k...
以下是讀完 Clean code 第二章節(part 1)的筆記: Introduction 從函數、變數、到部署檔案都是命名 Use Intention-...
以下是讀完Clean code第12章節 Emergence的筆記: Getting Clean via Emergent Design 根據Kent Bec...
本篇是閱讀Robert C. Martin的偉大書籍 - Clean Code的第一章筆記 There Will Be Code 不管現在由AI產出的程式碼,...
來到 30 天系列文章的中半段,接下來將以 code review 為主軸,透過範例說明實作 code review 的方法。在介紹 code review 之...
文章同步於blog 前言 第三天就要來個硬的 這次將要介紹Clean Code 之後會依序介紹Clean Coder以及Clean Architecture C...
文章同步於Blog 前言 今天我們會來介紹什麼是Coding Style,以及團隊的Coding Style為什麼應該統一 The Zen of Python...
身為一位軟體工程師應該蠻常會遇到一件事,就是需要靠通靈才能知道這支程式到底在說什麼,如果今天有個靈媒證照,那或許我們都可以去試試看,當作副業創造金流好像也不錯(...
眾所皆知,寫單元測試有非常多好處,但有些主管會問,為什麼寫測試會讓工程師額外花這麼多時間?除了因為缺乏單元測試技術知識外,根本原因是產品程式碼的可測試性太低,導...
Jackson ObjectMapper 是 Java 中應用非常廣泛的序列化、反序列化的工具,它可以幫助我們簡單、快速將 Java 物件與 json 之間作轉...
開發 Java 專案時經常操作時間、日期與字串的互相轉換,最常見簡單的方式是使用 SimpleDateFormat,想必大家對它不陌生。雖然它簡單易用,如果沒有...
Java 8 新加入了 Optional 類別,能省去繁瑣的 null check 流程,豐富的 API 也讓程式邏輯看起來更簡潔、易讀。但我卻看到了不少錯誤的...
DRY (Don't repeat yourself),是敏捷開發的核心設計原則之一。DRY 原則規定,對於每個知識點,系統中都只有一個明確而權威的表示。這個原...
YAGNI (You aren't gonna need it!),是敏捷開發的核心設計原則之一。此原則指出,程式開發者應該在面臨確鑿的需求時,才實作相應的功能...
依賴注入 (Dependency Injection, DI) 是 Spring 實現控制反轉概念的重要手段。Spring 提供了數種 DI patterns,...
在 Java 專案中,應該不少人看過或寫過只有一個實作(implementation)的介面 (interface),並且以 interface-impl 的風...