Дружба с кодом

Дружба с кодом

SiteBot·

От нечего делать сижу и смотрю код одного коммерческого продукта:

$db->querySingle("SELECT ... FROM ... WHERE " . $query . ";");

SQL-инъекции и экранирование данных? - Не, не слышал.

$search = isset($_GET['search']) ? trim(strip_tags($_GET['search'])) : '';

strip_tags тут как ёжику футболка.

<select class="form-control mx-sm-3 form-control-sm" name="status">
<option value="">'.abTranslate('Any status').'</option>
<option value="0" '.(($status == '0') ? 'selected' : '').'>stop</option>
<option value="1" '.(($status == '1') ? 'selected' : '').'>auto</option>
<option value="2" '.(($status == '2') ? 'selected' : '').'>click</option>
<option value="3" '.(($status == '3') ? 'selected' : '').'>local</option>
<option value="4" '.(($status == '4') ? 'selected' : '').'>allow</option>
<option value="5" '.(($status == '5') ? 'selected' : '').'>goodip</option>
<option value="6" '.(($status == '6') ? 'selected' : '').'>block</option>
<option value="7" '.(($status == '7') ? 'selected' : '').'>fake</option>
<option value="8" '.(($status == '8') ? 'selected' : '').'>miss</option>
</select> 

Сформировать массив ключ-значение и циклом создать массив с option's? - Нее, и так сойдет.

Вроде бы всё правильно и логично - код надо писать так, что бы его можно было легко поддерживать. Рефакторинг нужен - он сохраняет жизнеспособность продукта.

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

"Дружба с кодом" - это раковая опухоль современной индустрии, которая из вроде бы из благих и обоснованных причин перетекла в вялотекущее состояние перманентного перфекционизма её участников, ведущее к излишней токсичности и проявлению интеллектуальной дедовщины в рабочих коллективах. Автор автор статьи Дедовщина на code review так описывает это явление:

А 80% замечаний — это нечто в стиле: вот тут можно более красивые абстракции переписать, как учили в книгах по паттернам проектирования, вот тут можно более модную библиотеку, а вот тут давай все на свете переименуем (а потом ещё раз переименуем), а вот тут давай заложим побольше гибкости на случаи, про которые мы пока ничего не знаем (а потом всё равно всё переписывать, потому что будущее непредсказуемо), а вот тут можно более красивую конструкцию языка применить, а вот тут давай структуру классов полностью поменяем, потому что мне так больше нравится и прочее прочее.

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

Чем больше вы мастурбируете на красоту кода, на стандарты кодирования, тем меньше у вас остаётся времени на самое важное - на осознание полезности этих действий.

Идеальный код - это иллюзия, особенно если вы пишите его в промышленных масштабах. Функции инспекции, которые зашиты в любых современных профессиональных IDE, без труда могут найти в большом работающем проекте сотни ошибок, напоминаний и предупреждений. Становится ли от этого продукт, выполняющий свои функции, сильно хуже? Вряд ли.

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

Код должен работать и приносить пользу, на него не нужно молиться, его не нужно бесконечно вылизывать и любить. Я в очередной раз хочу дать ссылку на статью "Автор библиотеки, от которой зависит половина сайтов, сидит без денег" - она лишний раз демонстрирует, что код сам по себе - не больше чем текст на экране. Важен не код, важен продукт и результат работы продукта. Даже самый чистый и вылизанный код не стоит ровным счётом ничего (его на гитхабе как дерьма за баней). А вот излишний перфекционизм служит предиктором симптомов психического расстройства.

Поэтому, завязывайте дружить с кодом, дружите лучше с девочками.

Комментарии (144)

Правила комментирования
  • Любые темы про политику, войны, или всё то, что НЕ относится к теме сайта, будут УДАЛЯТЬСЯ.
  • Всё, что попадает под возможные нарушения законодательства РФ (экстремизм, призывы, дискредитация, оправдание, возбуждение и т.п.) - тоже.
  • Любые бессмысленные оскорбления участников сайта или тематики сайта. Если с чем-то не согласны - приводите аргументацию, а не оскорбления.
  • Запрещается упоминание в негативном контексте (клевета) каких-либо персоналий - физических или юридических лиц.

Мы стараемся сделать комментарии ценным информационным материалом, засорять сайт мусорными обсуждениями, никак не относящимися к теме сайта, не нужно! Спасибо за понимание.

0 / 10000

Форматы: JPG, PNG, WebP. Не более 5 файлов (по 10 МБ). Можно вставить из буфера (Ctrl+V).

Загрузка комментариев…