Найти в Дзене
Self Study

Готовимся к собеседованию: Big Design Up Front, Avoid Premature Optimization, Бритва Оккама

Введение Наверняка каждый из вас слышал про такие принципы разработки и проектирования как YAGNI, DRY или KISS. Однако, на собеседовании, на позицию Software Engineer, вас могут попросить рассказать о каких еще принципах разработки / проектирования вы слышали. В данной статье приводятся краткие определения еще трех принципов: Big Design Up Front, Avoid Premature Optimization и Бритва Оккама, которых должно быть достаточно для ответа человеку, который вас будет собеседовать. Big Design Up Front Глобальное проектирование прежде всего Прежде чем переходить к реализации, убедитесь, что все хорошо продумано. Зачастую продумывание решений избавляло нас от проблем при разработке… Внесение изменений в спецификации занимало час или два. Если бы мы вносили эти изменения в код, на это уходили бы недели. Я даже не могу выразить, насколько сильно я верю в важность проектирования перед реализацией, хотя адепты экстремального программирования предали эту практику анафеме. Я экономил время и дел
Оглавление

Введение

Наверняка каждый из вас слышал про такие принципы разработки и проектирования как YAGNI, DRY или KISS. Однако, на собеседовании, на позицию Software Engineer, вас могут попросить рассказать о каких еще принципах разработки / проектирования вы слышали. В данной статье приводятся краткие определения еще трех принципов: Big Design Up Front, Avoid Premature Optimization и Бритва Оккама, которых должно быть достаточно для ответа человеку, который вас будет собеседовать.

Big Design Up Front

Глобальное проектирование прежде всего

Прежде чем переходить к реализации, убедитесь, что все хорошо продумано.

Зачастую продумывание решений избавляло нас от проблем при разработке… Внесение изменений в спецификации занимало час или два. Если бы мы вносили эти изменения в код, на это уходили бы недели. Я даже не могу выразить, насколько сильно я верю в важность проектирования перед реализацией, хотя адепты экстремального программирования предали эту практику анафеме. Я экономил время и делал свои продукты лучше, используя BDUF, и я горжусь этим фактом, чтобы там ни говорили фанатики экстремального программирования. Они просто ошибаются, иначе сказать не могу.
— Джоел Спольски

Avoid Premature Optimization

Избегайте преждевременной оптимизации

Прежде чем вы погрузитесь в детали реализации, убедитесь, что эти оптимизации действительно полезны.

Очень простой пример – масштабирование. Вы не станете покупать 40 серверов из предположения, что ваше новое приложение станет очень популярным. Вы будете добавлять серверы по мере необходимости.

Преждевременная оптимизация может привести к задержкам в коде и, следовательно, увеличит затраты времени на вывод функций на рынок.

Многие считают преждевременную оптимизацию корнем всех зол.

Бритва Оккама

Бри́тва О́ккама (иногда ле́звие О́ккама) — методологический принцип, в кратком виде гласящий: «Не следует множить сущее без необходимости» (либо «Не следует привлекать новые сущности без крайней на то необходимости»).— Википедия

Что это значит в мире программирования? Не создавайте ненужных сущностей без необходимости. Будьте прагматичны — подумайте, нужны ли они, поскольку они могут в конечном итоге усложнить вашу кодовую базу.