Константи в JavaScript і до чого тут Платон і Арістотель
Мені здається, що джуни більше бачать компоненти коду як щось матеріальне. Cеньйори ж більше оперують ідеальними категоріями. А може, це залежить від світогляду людини, а не від її професійного рівня?
Буває на код-рев’ю бачу, що замість константи CAR_WIDTH розробник підставив константу TABLE_WIDTH, тому що це перша константа, яку він знайшов, і у якої виявилось підходяще значення. Це часта проблема, коли розробники підбирають константу не за ім’ям, а за значенням. Виявиляється, що джуни зазвичай не розуміють основної суті, навіщо потрібні константи. На їх думку, константи потрібні лише для повторного використання і для читабельності.
Давайте згадаємо, що Платон і Арістотель говорили з цього приводу.
У них була своя константа. Називалася SHIP_OF_THESES
Швидше за все, вона якось по-грецьки називалася, але ми напишемо її латиницею і тому переведемо на англійську.
const SHIP_OF_THESES = { name: "Ship of Theseus", parts: ["mast", "hull", "sail"] };
Константа SHIP_OF_THESES в цьому прикладі символізує незмінну ідентичність корабля Тесея. А її значення, змінюване розробником з часом, представляє матеріальні зміни.
// Day 1: Initial state of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["mast", "hull", "sail"] }; <br /> Day 2: Developer changes one part of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["new mast", "hull", "sail"] }; <br /> // Day 3: Developer changes another part of the ship const SHIP_OF_THESEUS = { name: "Ship of Theseus", parts: ["new mast", "new hull", "sail"] }; <br /> // 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_THESES: Кожного дня ця константа представляє ідеальну сутність корабля Тесея. Незважаючи на зміни значень, концепція корабля залишається незмінною.
Матеріальне (Значення константи):
parts: Список частин корабля, який змінюється кожного дня. Це відображає матеріальне втілення корабля, яке змінюється з плином часу.
Платон розмірковував про Ідеальне і Матеріальне так:
Константа SHIP_OF_THESES як ідеальна форма залишається незмінною: кожного дня вона представляє корабель Тесея. Однак її значення (частини) можуть змінюватися, що відображає матеріальні зміни.
Арістотель оперував поняттями «Форма» і «Матерія»:
Арістотель би сказав, що ідентичність корабля зберігається через його форму і функцію (дуже схоже на качину типізацію в JS, чи не так?). У нашому прикладі, хоча частини корабля змінюються, форма об’єкта (структура і функція) залишається незмінною. Кожного дня це все той самий корабель Тесея, незважаючи на зміни його частин.
Так які ж все-таки переваги дає використання констант?
Основне це не читабельність і повторне використання. Основне — це розділення коду на ідеальне і матеріальне (за Платоном) або на форму і матерію (за Арістотелем). Зробивши таке розділення, ми можемо змінювати матерію, не змінюючи форму. А також використовувати форму не переймаючись із чого вона складається.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів