Константи в JavaScript і до чого тут Платон і Арістотель

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Мені здається, що джуни більше бачать компоненти коду як щось матеріальне. 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, чи не так?). У нашому прикладі, хоча частини корабля змінюються, форма об’єкта (структура і функція) залишається незмінною. Кожного дня це все той самий корабель Тесея, незважаючи на зміни його частин.

Так які ж все-таки переваги дає використання констант?

Основне це не читабельність і повторне використання. Основне — це розділення коду на ідеальне і матеріальне (за Платоном) або на форму і матерію (за Арістотелем). Зробивши таке розділення, ми можемо змінювати матерію, не змінюючи форму. А також використовувати форму не переймаючись із чого вона складається.
👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі