Сложность высасывает жизнь из разработчиков, затрудняет планирование продуктов, их создание и тестирование, бросает вызовы в сфере безопасности и приводит конечных пользователей и администраторов к разочарованию.
Чем больше количество уровней абстракции используется, тем менее эффективным становится интерфейс.
p.s. Ли Кэмпбел: «Вы должны понимать как минимум на один уровень абстракции ниже того уровня, на котором программируете»
Первоначально берем конвенции сторонних команд, а в процессе работы будем их переписывать под себя.
Если возникают вопросы, сначала смотрим в код, потому что в коде может быть использовано решение, которое обсуждалось, но не было задокументировано в наших конвенциях. В то же время, иногда код может не отвечать требованиям конвенций (соглашения меняются, поэтому не удивляйтесь вопросам в код-ревью).
Мы пишет ниже указанные виды тестов.
Unit tests:
Functional tests: