Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

07.11.2024

Майже синоніми

Тільки писав про переклади айтівської лексики, а тепер пишу коментар в коді англійською та виходить щось на кшталт “ці атрибути доступні тільки для читання… а оце поле можна писати”. Дивлюся та думаю: навіщо стільки слів, які достатньо схожі, щоб їх плутати, але все ж різні, щоб доводилося стежити за використанням. Це ж гірше ніж табуляція проти пробілів!

В мене в голові слова “атрибут” та “поле” це майже синоніми. А їхнє використання більше залежить від оточення: в Go “поля”, в Ruby “атрибути”. (Причому в Ruby атрибут — це суто домовленість, що пара методів читає/пише змінну екземпляру.) Хоча, думаю, читач здогадається, про що йдеться, але все одно варто дотримуватися заведеного набору слів. Що стає проблемою, коли працюєш в декількох оточеннях.

Атрибут, поле, властивість — тут майже повна взаємозамінність, хоча в кожній мові своя назва. Головне не плутати в одному реченні дві назви. Є ще стовпчик в базі.

Метод, функція, процедура — тут все розбігається… в Go функція сама собою — це “функція”, але в межах типу чи інтерфейсу це “метод”. А в Ruby всі функції то “методи”, от тільки чомусь є метод module_function, який перетворює всі методи модуля в методи на модулі. На щастя, “процедура” майже не зустрічається… хіба що в SQL є й “функції” й “процедури”. А ще є параметр, аргумент, опція.

Обʼєкт, структура, запис, сутність, екземпляр, а також клас, тип, структура — тут потрібно бути обережним. В JS/TS є тип “обʼєкт”, а є “клас”, і різниця важлива. У Swift є “класи” та “структури” та це фундаментально різні речі (класи передаються за посиланням, а структури — за значенням.) В Ruby все є класом, навіть модулі.

А ще в кожного слова є його математичне значення. Та побутове значення. А ще різні бібліотеки можуть залучати “вільні” слова для внутрішнього використання (так, в Ruby обʼєкти типу ActiveRecord зазвичай називаються “запис”.) Все складно!