«Преждевременная оптимизация — корень всех зол». Это цитата Дональда Кнута, автора книги «Искусство программирования». На своем YouTube-канале основатель школы программирования FoxmindEd Сергей Немчинский рассказал, почему он полностью согласен с Дональдом Кнутом и когда не стоит оптимизировать приложения.
Highload публикует этот материал текстом.
Чтобы ответить на вопрос «А когда нужно?», стоит рассмотреть, что такое разработка в целом.
Разработка — это про деньги. Она может быть хобби или любимым делом, но если вы работаете программистом — значит то, что вы делаете, вы делаете для кого-то и за эту работу вам платят.
Соответственно, самая важное в вашем коде — это то, решает ли он проблему бизнеса: завоевывать новые ниши или быть лучше конкурентов.
Исходя из этого мы можем вывести, что оптимизация преждевременная, когда она еще не нужна бизнесу. И наоборот: оптимизация нужна только в тот момент, когда бизнес ее затребовал.
Другими словами, оптимизация — это такая же фича, как какая-нибудь кнопка: ее делают, только если она непосредственно запрошена бизнесом.
Потому что пока он будет делать оптимизированный продукт, конкуренты выпустят неоптимизированный и соберут весь рынок. Для пользователей в большинстве случаев достаточно начать докручивать оптимизацию, уже когда продукт вышел, или даже просто пообещать, что она будет сделана.
Таким способом мы получили, например, далеко неидеальный Facebook. Он был достаточно удобным: со своими багами и глюками, но пользоваться им было можно. А теперь уже никто не будет переходить на новую соцсеть просто потому, что все привыкли к этой. Вот это «достаточно» и означает, что дальше оптимизировать будет уже не оптимально.
Цена преждевременной оптимизации запредельна и определяет, вы на рынке или вне рынка.
Это же кстати, причина, почему легаси-код — признак успешного проекта. Потому что вот как такие проекты делаются:
Если сейчас вы думаете, что «злой капитализм заставляет меня писать говнокод», то посмотрите на это с другой стороны: что для вас, как для пользователя, важнее — уже сегодня поиграть в новую игру или ждать еще пару лет, пока ее сделают идеальной?
Иногда для оптимизации нужно менять оборудование и это требует дополнительных вложений. С вопросом, ок это или не ок, тоже нужно идти к заказчику.
Еще раз, напоследок: только бизнес решает, нужна ли оптимизация и когда она достаточная.
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…