December 27, 2020

Хеликоптер вью

Периодически возникают холивары — существует ли на самом деле такое явление, как "самодокументирующийся код". Так вот нет, не существует. Ни один код не заменит документации о том, что на самом деле происходит, зачем это происходит, почему это начало происходить в прошлом и прочую разнообразную проектную документацию.

Но это совершенно не значит, что код не должен быть максимально информативным. Решение, структура проектов в решении, отдельные модули в проектах, функции и классы в модулях, переменные внутри функций, все должны максимально придерживаться принципа "хеликоптер вью": при взгляде на каждый кусок должно быть примерно ясно, что именно он делает и, возможно, каким способом он это делает.

Это не просто делает проект понятным другим людям, которые с ним столкнуться, но очень сильно помогает самим разработчикам, во-первых, держать карту проекта в голове, во-вторых, вернувшись через полгода вспомнить, что здесь вообще происходит. В третьих, этот принцип нужно использовать как мнемоническое правило для довольно простого и быстрого проектирования.

Крайне рекомендуется применять вышесказанное с другими матёрыми и известными принципами, например SRP, для достижения максимального эффекта.