Я роблю бізнес-програми, де всі інші розробники звикли робити основні програми CRUD або зосереджені виключно на створенні гарних / функціональних інтерфейсів, і я отримую наступне багато.
"Завдяки тому, як ми це робимо, Співробітник мав би всі речі, які ви могли б зробити з працівником". І це було правдою. У того "Класу" було тисячі рядків коду, і все, що ви могли зробити з працівником, було там. Або, що ще гірше, була таблиця даних про співробітників, і кожен розробник придумав, як робити те, що хотів зробити, в обробці подій.
Усі погані речі щодо цього підходу були правдивими, але принаймні розробник, який використовує працівника, міг, не звертаючись до інших документів, зрозуміти, як зарахувати працівника до плану охорони здоров’я, дати підвищення зарплати, звільнення, найм, переведення тощо. для менеджера та всіх інших основних ідей. Або, якби вони використовували працівникові інші потрібні таблиці даних, вони могли просто робити те, що вони хотіли.
Так, було багато дублюваного коду. Так, це був дуже крихкий код. Так, тестування було набагато складніше, ніж потрібно. Так, зміна функціональності викликала страх, і Копіювати вставити було природно завдяки підходу.
Але вони могли хоча б виявити, що було доступно, створивши один клас, або вони могли зробити те, що їм потрібно зробити, не розуміючи різниці між інтерфейсами, абстрактними класами, конкретними класами тощо. І їм не довелося шукати нічого іншого, крім методи, що повертаються інтелігенсом або знають таблиці, в яких перебувають дані.
Я переглянув google / binged і навіть yahoo! D, але я не знайшов підтвердження цієї проблеми.
Тож, можливо, немає проблем, і я просто щось пропускаю. Я зламав свій мозок, намагаючись знайти рішення, де розробники, які не працюють над реальною поведінкою / дизайном, можуть легко виявити, як щось робити, не маючи посилання на будь-які зовнішні документи або скануючи назви класів у різних компонентах / проекти, щоб знайти той, який здається, що він буде працювати.
Єдине, що мені вдалося придумати, - це це через відсутність кращої назви "Таблиця класів вмісту", яка не робить нічого більше, що повертає фактичні класи (і насправді більшість з них є інтерфейсами, але вони не знати різницю чи навіть турботу), які інші розробники можуть використовувати для виконання фактичних бажаних завдань. Досі закінчуються дійсно великими класами, але поведінки в них майже немає.
Чи є кращий спосіб, який не потребує інтимних знань про середній рівень, де відбувається реальна реалізація SOLID?
В основному те, що я запитую, чи є спосіб дозволити розробникам типу CRUD продовжувати бути розробниками CRUD у дуже складній системі