Як програмісти, я вважаю, що наша мета полягає в наданні хороших абстракцій щодо даної доменної моделі та логіки бізнесу. Але де повинна зупинятися ця абстракція? Як зробити компроміс між абстракцією та всіма перевагами (гнучкість, простота зміни тощо) та легкість розуміння коду та всіх його переваг.
Я вважаю, що я схильний писати код занадто абстраговано і не знаю, наскільки це добре; Я часто схильний писати це так, як це якась мікрорамка, яка складається з двох частин:
- Мікромодулі, які з'єднані в мікрорамку: ці модулі легко зрозуміти, розробити та підтримувати як єдині одиниці. Цей код в основному представляє код, який фактично виконує функціональні речі, описані в вимогах.
- Код підключення; Тепер я вважаю, що це проблема. Цей код, як правило, є складним, оскільки він часом дуже абстрагований і важко зрозуміти на початку; це виникає через те, що це лише чиста абстракція, основа в реальності та ділова логіка виконуються в представленому коді 1; з цієї причини не очікується, що цей код буде змінений після тестування.
Це хороший підхід у програмуванні? Це він, маючи зміну коду, дуже фрагментований у багатьох модулях і дуже легкий для розуміння і не змінюється код дуже складний від абстракції POV? Якщо весь код повинен бути рівномірно складним (тобто код 1 складніший і взаємопов'язаний, а код 2 простіший), щоб кожен, хто переглядає його, міг зрозуміти його за розумну кількість часу, але зміни дорогі або рішення, представлене вище, добре, де "зміну коду" дуже легко зрозуміти, налагодити, змінити, а "зв’язування коду" - це складно.
Примітка: мова не йде про читабельність коду! Обидва коди в 1 і 2 читаються, але код у 2 є більш складними абстракціями, а код 1 - простими абстракціями.