

Яндекс.Дзен — это мощный инструмент для продвижения, который предлагает компаниям уникальную возможность взаимодействовать с...
– Алло, это хардкор?
– Алло, это харткот?
– Техническая поддержка, здравствуйте! Время пришло.
Пожалуй, да, настало время, и этот одноименный анти-паттерн программирования, послуживший основой для названия нашей компании, стал достоин отдельной статьи.


Проведя небольшой опрос среди наиболее осведомленных клиентов, коллег и соискателей, что же они понимают под термином “Хардкод” (Hard coding), я получил множество самых неожиданных ответов. Удивительно, но оказалось и сами разработчики не всегда понимают глубинный смысл хардкода – даже считают его некачественным кодом и путают с “говнокодом”.
Не будем отбирать хлеб у википедии, копируя определение хардкода, а поговорим о его практическом смысле и применении. Статья предназначена для людей, далеких от программирования, поэтому, на мой взгляд, проще всего понять смысл термина на простом примере (на котиках), насколько это возможно, не погружаясь в технические детали.
Речь, конечно же, пойдет о сайтах и решении повседневных задач. Но для начала давайте определимся с критериями качества задач, чтобы разница в подходах была максимальна заметна. Ниже минимальный список требований, актуальный для любого проекта и задачи.
Стоимость разработки.
Нет, здесь я не буду говорить о ценообразовании – это отдельная история. Сегодня я ваш капитан-очевидность и со всей ответственностью заявляю: “Цена – это критерий номер раз!”
Сроки выполнения работ.
Достойным продолжением в списке требований является дедлайн. Задача должна быть выполнена в срок, пока ее не реализовали конкуренты или того хуже — пока идея морально не устарела и стала ненужной. Итог один – можно расходиться.
Работоспособность.
Результат должен в точности выполнять поставленную задачу в заранее оговоренных условиях. Иными словами, корректно работать.
Дальнейшая поддержка кода.
Как говорится “last but not least – последний, но от этого не менее важный”, и, к несчастью, это самый недооцененный фактор.
Говорит он о возможности через полгода-год без особого труда продолжить работу с проектом и, что не менее важно, с новыми сотрудниками/техподдержкой/командой.
С людьми, не принимавшими участие в разработке первых версий. Этот фактор актуален для более или менее объемных задачах, разработка которых, ввиду затраченных усилий, сроков и стоимости не позволяет выбросить результат в помойку.
Представьте, у вас есть интернет-магазин, где все расчеты (купоны, акции, налоги, прайсы поставщиков, услуги доставки, т.д.) ведутся в рублях.
И вот появляется задача – проверить спрос на ваш ассортимент в ближайших странах-соседях, куда проще всего осуществить доставку.
Для этого цены в магазине должны быть как минимум в долларах и евро.
Вы встречаетесь с рабочей группой для обсуждения деталей технического задания.
Оказывается, система управления вашего магазина не имеет готовых решений для использования нескольких валют, и банк не предоставляет данные курсов валют в удобном формате, что обеспечивает многократное увеличение сроков и стоимости разработки конвертации.
Что делать? Надо спешить, пока никто еще не поставляет эти уникальные товары на зарубежные рынки, ведь так важно оказаться первым.
И вот через два месяца с новым магазином или доработанным старым вы получаете:
Но, к сожалению, слухи о высоком спросе на данный ассортимент разлетелись очень быстро, и ваш магазин встал в очередь из ему подобных, да еще с ценой выше средней по рынку, ведь появились дополнительные расходы на разработку.
Искренне сочувствую, если эта история вам знакома и напомнила о былых неудачах. Это как раз тот самый случай, где оптимальным решением может стать хардкод. А именно – конкретно в данном примере достаточно жестко прописать курс валюты непосредственно в коде или максимум с одним единственным полем для его ручного редактирования по мере необходимости, без автоматической интеграции.
Стоимость, сроки.
Технически такое решение занимает на порядок меньше строк кода, задача выполняется в разы быстрее, стоит дешевле.
Работоспособность.
Очевидно, для посетителей нет разницы, как это работает внутри, если они так же могут совершать покупки.
Дальнейшее сопровождение, доработки.
Ввиду того, что мы говорим не о халатности, а об одном из вариантов подхода к решению задачи, я не рассматриваю случай, когда разработчик поленился оставить комментарии к внесенным изменениям, после чего не понятно, с какой стороны подойти к еще недавно полноценному интернет-магазину.
Значит, ничто не мешает в случае успеха проверки вашей бизнес-гипотезы заменить несколько строк кода, обозначенных комментариями, для пересчета стоимости товара на более гибкое, функциональное решение.
В этом весь смысл правильного хардкода, когда его используют во благо. И, как бы странно это не прозвучало, но хардкод может быть действительно качественным и эффективным решением. Если вы ограничены по времени или существует риск, что функция не будет востребована, то такой подход сэкономит вам значительное количество сил и средств. Ведь главное – это своевременно ответить на вопрос конечного потребителя, выполнить поставленную задачу и оправдать его ожидания.


Яндекс.Дзен — это мощный инструмент для продвижения, который предлагает компаниям уникальную возможность взаимодействовать с...


Позиции сайта на страницах результатов поисковых систем (SERP), не являются статичными. Они демонстрируют динамику, которая может...


Без планирования бизнес рискует потерпеть крах еще на ранних этапах. И чем более точно и полно составлен бизнес-план, тем лучше, как...
Мы используем файлы cookie для улучшения работы нашего сайта и предоставлении вам наиболее полезного контента.
Связаться с нами
Как вам удобнее связаться с нами?
Получим ваш запрос и быстро подключимся к решению проблемы
Спасибо за заявку!
Наш менеджер свяжется с вами в ближайшее время.
Успешно!
Чек-лист отправлен на указанный Email-адрес