🥶
Отже про semver🥶
Насправді нічого складного в ньому немає, а життя він спрощує людям дуже і дуже сильно.
✍️ Зазвичай версія програмного продукту складається з 3 (четверта то не по канону) частин:
<Major>.<Minor>.<Patch>-<postfix>, наприклад: 0.23.11 або 3.9.2-alpha. Версії, зазвичай числові, постфікси буквенно-числові. Теоретично можна emoji втулити, але я такого ще не бачив.
👉 Секція
patch призначена для виправлень багів. Секція
minor для нової функціональності, яка не ламає стару, а секція
major призначена або для значних змін або для змін які ламають попередній функціонал, так звані breaking changes.
🧨 Breaking changes - це такі зміни, які змушують користувачів змінювати код для того, щоб він продовжував працювати. Тобто, в буквальному перекладі, ламаючі зміни.
🗒 Наприклад у нас є функція
trim(line, maxSize) яка першим аргументом приймає рядок, а другим максимально допустимий розмір рядка. Якщо змінити порядок аргументів, це breaking change і ви зобов'язані змінити major версію. А якщо до другого аргументу додати значення за замовчуванням - це minor оновлення, оскільки це додаткова функціональність яка нічого не ламає.
❗️Є з цього правила одне виключення -
мажорна версія 0. Вона вважається не стабільною за замовчуванням і minor оновлення має право на breaking change. Майте це на увазі.
❤️ Такий підхід, теоретично, дуже спрощує життя розробникам. Уявіть собі, що ви встановили собі React версії 18.1.3 а, через декілька тижнів ви побачили, що вже вийшов React 18.2.1. Якщо (
if? if is good!(C)) розробники React притримуються політики semver, то ви одразу розумієте, що можете безпечно оновити залежність, все буде працювати як і до того плюс ви отримаєте нову функціональність та багфікси. Дуже зручно.
Але є одне але - не всі притримаються такої політики. Тому найкращий спосіб працювати з semver наступним чином:
1️⃣
Коли ми пишемо власний код - ми завжди притримуємось семверу. Це не важко і робить користування нашим кодом зручнішим і безпечнішим для інших. Такий от вклад в ком'юніті.
2️⃣ Коли ми використовуємо чужий код -
ми перевіряємо чи дотримуються розробник semver (React -
так)
Сподіваюся було корисно і будете підтримувати semver, так само як і я.
@reactbeginnersП.М. Підготовка до відео з Next нарешті завершена, так що відео вже не за горами!