Я навчаюсь на чистому, і в результаті досить різко переосмислюю те, як я розробляю і пишу програмне забезпечення.
У мене все, що я все ще веду боротьбу, - це такі правила бізнесу, як "збереження оновлень для певного предмета, спочатку завантажуйте весь список елементів, на які я маю дозвіл на перегляд / редагування тощо." і що категорія предмета наразі не заблокована від використання, (та інших правил тощо тощо) ".. тому, що це (складне, але не атипове) правило бізнесу, і тому його слід обробляти в області додатків, а не нагнітати ділову логіку в шар db / стійкість.
Однак мені здається, що для ефективної перевірки цих умов найчастіше найкраще впоратися з добре складеним запитом db, а не завантаженням усіх даних у домен програми ...
Без передчасної оптимізації, який рекомендований підхід чи деякі статті дядька Боба, які займаються цим питанням? Або він би сказав "підтвердити домен, поки це не стане проблемою" ??
Мені дуже важко знайти будь-які хороші приклади / зразки для будь-якого іншого, крім найбільш основних випадків використання.
Оновлення:
Привіт усім, дякую за відповіді. Мені повинно було бути зрозуміліше, я давно пишу програмне забезпечення (здебільшого веб-додатків), і, безумовно, вже досвідчене та погоджуюсь з усіма темами, які ви колективно описуєте (перевіряйте за допомогою бекенда, не довіряйте клієнтським даним, загалом кажучи переслідувати сировинну ефективність лише за необхідності, проте визнайте сильні сторони інструментів db, коли вони доступні тощо тощо) та пройшли навчальний життєвий цикл розробника "киньте все разом", щоб "створити гігантський контролер жиру з N-ярусами додатків" тенденції коду , і тепер справді подобається та досліджувати стиль чистої / єдиної відповідальності тощо, в основному в результаті декількох проектів останніх років, які перетворилися на досить незграбні та широко розповсюджені бізнес-правила, коли проекти розвивалися та з'являлися подальші вимоги клієнтів.
Зокрема, я розглядаю архітектуру чистого стилю в контексті створення REST apis для клієнтів, а також функціонал внутрішнього використання, де багато правил бізнесу можуть бути набагато складнішими, ніж в основному кожен приклад, який ви бачите в мережі (навіть самі хлопці з архітектури Clean / Hex).
Тож я думаю, я насправді запитував (і не зміг чітко заявити) про те, як Clean і REST api будуть сидіти разом, де більшість MVC-матеріалів, які ви бачите в ці дні, мають валідатори вхідних запитів (наприклад, бібліотека FluentValidation в .NET), але де багато хто з мої правила "валідації" не так сильно "це рядка менше 50 символів", але більше ", чи може цей користувач, що викликає цей користувальницький шафа / інтерактор, виконувати цю операцію над цим зібранням даних, враховуючи, що якийсь пов'язаний об'єкт зараз заблокований Team X до пізніше місяця і т. д. "... такі типи глибоко задіяних перевірок, де застосовуються ЛОТИ об'єктів бізнес-домену та правил домену.
Якщо я повинен перетворити ці правила на певний тип об'єкта Validator-об’єкта для супроводу кожного використання-інтерактора (натхненний проектом FluentValidator, але із залученням більше ділової логіки та доступу до даних), чи повинен я ставитися до перевірки дещо як до шлюзу, чи повинен я поставити ці валідації в шлюз (що, на мою думку, неправильне) тощо, тощо.
Для довідки, я переглядаю кілька статей на кшталт цієї , але Маттіа не дуже обговорює валідацію.
Але я здогадуюсь, що коротка відповідь на моє запитання схожа на відповідь, яку я прийняв: "Це ніколи нелегко, і це залежить".