«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Константы в JS и при чем здесь Платон и Аристотель

Константы в JS и при чем здесь Платон и Аристотель

Опубликовано 15 августа 2024 г.
Просматривать:464

Constants in JS and what do Plato and Aristotle have to do with it

Мне кажется, что младшие рассматривают компоненты кода как материальные вещи, а старшие больше имеют дело с идеальными категориями.
А может, это зависит от мировоззрения человека, а не от его профессионального уровня?

Иногда во время проверки кода я сталкиваюсь с кодом, в котором вместо константы CAR_WIDTH разработчик использовал константу TABLE_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: каждый день эта константа представляет собой идеальную сущность Корабля Тесея. Несмотря на изменение его стоимости, концепция корабля осталась неизменной.

Материал (значение константы):

детали: список частей корабля, который меняется каждый день. Это отражает материальное воплощение корабля, которое меняется со временем.

Платон об идеале и материальном:

Константа SHIP_OF_THESEUS как идеальная форма остается неизменной: каждый день она представляет Корабль Тесея. Однако его стоимость (части) может измениться, отражая материальные изменения.

Аристотель о форме и материи:

Аристотель сказал бы, что идентичность корабля сохраняется благодаря его форме и функции (очень похоже на утиный набор текста в JS, не так ли?). В нашем примере хотя части корабля и меняются, форма объекта (его структура и функция) остается неизменной. Каждый день это всё тот ​​же Корабль Тесея, несмотря на изменения в его частях.

Так каковы же реальные преимущества использования констант?

Основное преимущество — это не читабельность и возможность повторного использования. Основное преимущество — разделение кода на идеальный и материальный (по Платону) или форму и материю (по Аристотелю). .

Сделав такое разделение, мы можем изменить материю, не меняя формы.
И мы можем использовать форму на протяжении всей программы, не беспокоясь о материи.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/simprl/constants-in-js-and-what-do-plato-and-aristotle-have-to-do-with-it-2boi?1Если есть какие-либо нарушение, пожалуйста, свяжитесь с [email protected], чтобы удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3