Згадав одну цікаву бібліотеку для Nest.js🚬🚬🚬
Це бібліотека для створення абстракцій над CRUD операціями. І водночас - яскравий приклад того, що абстракції потрібно створювати тільки тоді, коли в них виникає реальна необхідність.
Програмісти люблять усі ці DRY принципи, максимальне перевикористання коду і так далі. Але зазвичай надмірне перевикористання закінчується «жирними» сервісами чи компонентами, в яких постійно виникають баги.
Суть цієї бібліотеки в тому, що ви можете успадкувати спеціальний клас, у якому вже реалізований CRUD для певної сутності, яку ви туди передаєте.
Звучить круто, але прості CRUD бувають тільки на старті проєкту (і то не завжди), а потім вони починають розростатися.
Звичайно, бібліотека не могла покрити складні сценарії. Тому замість спроб запхати всю бізнес логіку в універсальну абстракцію команда Nest.js пішла іншим шляхом і зробила boilerplate generator, який просто генерує базову структуру коду, а конкретну реалізацію вже потрібно писати самому.
При такому підході коду значно більше, але з ним набагато простіше працювати, розвивати його та масштабувати.
Як на мене, це ще один доказ того, що сучасна розробка - це постійний пошук компромісів де не потрібно бездумно слідувати best practices.
Зрештою, проєкт загнувся, але кому цікаво - можете почитати про нього
Post #180
934
- 👍 9
- ❤ 3