Я певний час думав над цією темою.
Мій висновок такий - справа не в кількості, а в якості та контексті.
Наприклад, належна структура проекту обіграє коментарі, пояснюючи, де розташовані файли (реалізація проти інтенції)
Аналогічно класифікація для уточнення контексту назви імен (Id on a Patient -> Patient.Id).
Я вважаю, що DDD має належне слово в хорошій документації - класифікація забезпечує контекст, контекст створює межі та межі призводять до навмисних реалізацій (саме тут належить, а не потрібно).
Код сам по собі недостатньо хороший, щоб вважатись документацією. Проблема в більшості випадків не полягає в тому, що робота кодів коментується чи не коментується, але, скоріше, рушійна сила (доменна логіка) не є.
Ми іноді забуваємо, хто босс - якщо код змінюється, логіка домену або міркування не повинні, але якщо логіка домену або міркування змінюються, код, безумовно, буде.
Послідовність також дуже важлива - сама по собі конвенція марна, якщо вона не є послідовною.
Шаблони дизайну - це не просто «хороша практика» - це нам слід зрозуміти розробникам. Повідомлення розробника про додавання нового типу до Фабрики краще зрозуміти, ніж додати новий тип до методу (де контекст і послідовність слабкі або відсутні).
Половина боротьби - це знайомство .
З іншого боку, API, які, здається, підтримують велику кількість документації, також дуже залежать від домену та контексту. Іноді дублювання функціональності не є злим (одне і те ж, різний контекст), і його слід розглядати як окремий.
Щодо коментування, завжди добре вказати на доменну логіку, яка стоїть за міркуванням.
Наприклад, ви працюєте в медичній галузі. У своєму методі ви пишете "IsPatientSecure = true;"
Тепер будь-який порядний програміст може зрозуміти, що пацієнта позначають як захищеного. Але чому? Які наслідки?
У цьому випадку пацієнт - це ув'язнений, якого надійно перевели до лікарні поза приміщеннями. Знаючи це, простіше уявити події, які призводять до цього моменту (і, можливо, що ще має відбутися).
Можливо, ця публікація в кращому випадку здається філософською, але пам’ятайте, що ви пишете про «міркування» або «логіку», а не про коди.