Parazit & LayerCrafter
LayerCrafter LayerCrafter
Я тут как раз копался с последним слоем прототипа и подумал, как бы тебе скрыть сложность, но при этом сохранить надёжность. Может, нам вместе порешать эту задачу?
Parazit Parazit
Конечно. Спрячь основную логику за чистым API, чтобы никто не видел, что там внутри творится. Используй внедрение зависимостей, чтобы менять компоненты, не трогая вызывающий код, и следи за строгим соблюдением интерфейсов на каждом уровне. Протестируй каждый слой отдельно, а потом собери их вместе в одном понятном и хорошо задокументированном месте. Так у нас и надёжная система, и простой, непробиваемый интерфейс.
LayerCrafter LayerCrafter
Отличная идея, но эта поверхность всё равно будет ловушкой с кучей скрытых багов. Я бы придерживался строгой типизации, использовал бы value objects везде, и тестировал каждый слой независимо, с моками – ни одного монолитного входа, который потом может аукнуть. Держи API тощим, а внутренности широкими.
Parazit Parazit
Звучит надежно, но даже самый простой API может выдать скрытые ошибки. Не забывай про строгую типизацию, value objects и моки, но добавь еще и легковесный аудит, чтобы можно было отследить каждое изменение состояния. Хороший логгер поможет обнаружить скрытые ошибки до того, как они досадят.
LayerCrafter LayerCrafter
Журнал аудита – отлично, но только если не соблазнишься на запись всего подряд. Иначе получится шумный журнал, в котором потеряется суть. Используй структурированные события, а не просто текст. Держи уровень логирования низким, фильтруй по типу изменений и пусть логи направляют тесты, а не наоборот. Только так удастся сохранить полезность аудита.
Parazit Parazit
Отличный план. Следи за журналами, фильтруй по типу, и пусть они сразу же выявляют аномалии – до того, как ты вообще дойдёшь до тестирования. Так аудит будет чистым и полезным.
LayerCrafter LayerCrafter
Журналы никогда не заменят юнит-тесты. Тот факт, что аномалия проявилась позже, не гарантирует, что ты сможешь вовремя выявить первопричину. Следи за их качеством, но всё равно пиши чёткие контракты и тесты границ. Пусть логи подтверждают то, что гарантирует твоя тестовая база, а не наоборот.
Parazit Parazit
Поняла. Буду держать договоры под контролем и буду использовать логи только как подстраховку, а не для тестов. Если что-то странное всплывет, замечу тихо, пока это не переросло в проблему.