solovyov.net

Коли ти робиш публічне апі — ти підписуєшся на зворотню сумісність. Публічне — це не тільки апі для широкого загалу, це й:

А що значит підписуєшся? Це значить, що якщо ти притомна людина, зворотню сумісніть ти ламати не будеш. Не будеш видаляти поля. Не будеш перейменовувати стовпчики у базі даних. Не будеш змінювати у меншу сторону сігнатуру функції.

Чому? Тому що це зменшує кількість страждань у світі. Апка не перестане працювати. Сервіси не зламаються і їх не треба буде лагодити. Клієнти БД не помітять ваших змін. Краса!

Насправді, коли це внутрішня штука, то змінювати можна все, просто у кілька релізів. Хочеш перейменувати поле з uuid на id у повідомленнях сервісу А так, що сил немає? Випускаєш сервіс Б, який читає обидва поля, а потім вже сервіс А з перейменуванням. А потім ще можна закріпити релізом сервісу Б, який тільки другу назву читає.

Коли таких споживачів штук 3-5, перейменовувати поле не хочеться. І не треба. :)

Можна вчитися у Clojure: береш якийсь код на гітхабі, який 8 років не торкалися, а він працює. Фантастика!

(@ tg)