在我看來,初級者將代碼組件視為物質性的東西,而高級者則更多地處理理想的類別。
或者也許這取決於一個人的世界觀而不是他們的專業水平?
有時在程式碼審查期間,我會遇到程式碼,其中開發人員使用常數TABLE_WIDTH,而不是常數CAR_WIDTH,因為這是他找到的第一個具有合適值的常數。
當開發人員根據常數的值而不是名稱來選擇常數時,這是一個常見問題。事實證明,開發人員不理解常量的主要用途。在他看來,常量只是為了重複使用和可讀性。
他們有自己的常數,稱為SHIP_OF_THESEUS。
https://en.wikipedia.org/wiki/Ship_of_Theseus
它在希臘語中的命名可能不同,但我們將用拉丁語編寫它,因此將其翻譯成英語。
const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["mast", "hull", "sail"] };
本例中的常數SHIP_OF_THESEUS象徵忒修斯之船的不變身分。它的值隨著時間的推移而變化,代表了物質的變化。
// Day 1: Initial state of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["mast", "hull", "sail"] }; // Day 2: Developer changes one part of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["new mast", "hull", "sail"] }; // Day 3: Developer changes another part of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["new mast", "new hull", "sail"] }; // Day 4: Developer changes structure of the part of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: { mast: "new mast", hull: "new hull", sail: "sail" } };
SHIP_OF_THESEUS:每天,這個常數代表著忒修斯之船的理想本質。儘管其價值發生了變化,但船舶的概念保持不變。
parts:船舶每天變化的零件清單。這反映了船舶的物質體現,隨著時間的推移而變化。
常數SHIP_OF_THESEUS作為理想形式保持不變:每天它代表忒修斯之船。然而,它的價值(零件)可能會改變,反映材料變化。
亞里斯多德會說,船的身份是透過其形式和函數保存的(與JS中的鴨子類型非常相似,不是嗎?)。在我們的範例中,雖然船舶的各個部分發生了變化,但物件的形式(其結構和功能)保持不變。儘管零件發生了變化,但每天它仍然是同一艘忒修斯之船。
主要好處不是可讀性和可重複使用性。主要好處是將程式碼分開為ideal 和material(根據柏拉圖)或form 和matter(根據亞里斯多德) .
透過這種分離,我們可以在不改變形式的情況下改變內容。
而且我們可以在整個程式中使用該表單,而不必擔心問題。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3