Получи случайную криптовалюту за регистрацию!

Сегодня мы поговорим про Щорса. Но не про того, который хостер | L'homme qui pleure

Сегодня мы поговорим про Щорса. Но не про того, который хостер и луддит (на самом деле - нет), а про того, про которого есть песня со словами “след кровавый стелется по сырой траве”. Для тех, кто не в курсе - песня не про shared hosting и не про зомби-апокалипсис, а про события Гражданской войны (это когда красные с белыми дрались).

Эстетика Гражданской войны предполагает не только наличие врагов, но и их последовательное, полное и, по возможности, немедленное уничтожение. Уничтожение в физическом смысле - был враг, и нету, потому что враг - это Зло, а Зла быть не должно. В современной западной гуманистической традиции все немного по-другому: Зло, если оно и есть, должно сидеть в тюрьме с кондиционером, а по выходным ходить гулять в город. Что же касается концепции Зла в популярных музыкальных произведениях, то самый ходовой вариант - “мы подходили друг другу по антропометрическим показателям, но ты предпочла другого :(”.

Мы не сталкиваемся со Злом в повседневной жизни. Мы пьем кофе с утра, едем в офис, читаем в интернет-издании про далеких взяточников, пишем говнокод, пишем говнокод, пишем говнокод, едим бизнес-ланч, пишем говнокод, шпилим в бэттлфилд вьетнам, пишем говнокод, идем с друзьями есть бургеры и пить IPA. Все было бы хорошо, убери мы из жизни далеких взяточников (для этого мы настраиваем ежемесячный автоперевод небольшой суммы на счет Алексея Навального, а ведь могли бы просто заблокировать интернет-издание на офисном роутере). А говнокод? Ну, разве это Зло? Все пишут говнокод, и никто еще от этого не умер. Пока что.

Недавно мне принесли на аудит немного кода на PHP. И, вы знаете, ничего удивительного. Вполне в духе решений для малого бизнеса. Ужас, конечно, но не ужас-ужас-ужас, вордпресс так же начинался. Потом, конечно, опомнились, прикрутили всякие линтеры и написали coding conventions (если прикрутили и написали, я не смотрел в код ядра вордпресса с версии 1.6). И здесь тоже - можно начать с отстройки процесса, прикрутить статические анализаторы кода, юнит-тесты написать, да просто, хотя бы, исходники отформатировать так, чтобы в них табуляции не были перемешаны с пробелами. Тут подшпаклевать, там подкрасить с баллончика, поставить стеклоподъемники, и поедет ваш ВАЗ 2101, как новый. А можно было бы написать в результатах аудита: “Выкиньте, пожалуйста, свой говнокод вместе с программистом, и себя тоже выкиньте. Вы, именно вы - и есть Зло, точнее, не вы, а то, что вы делаете. Выкиньте PHP, возьмите язык с гигиеническими макросами или, не знаю там, дженериками, генерируйте большую часть своих basic CRUDs, да и вообще, генерируйте весь код”. Зло - это не отсутствие добра, Зло - это когда читаешь исходники, и прямо по ним вычисляешь даты, по которым разработчик ипотеку выплачивает. Зло - это когда мы говорим: “Ну его нахер делать нормально, и так сойдет”. Для малого бизнеса - сойдет, безусловно.

Проблема только в том, что, если проект на PHP это своего рода ВАЗ 2101, то малый бизнес - это, своего рода, “хрустики” (“А чего с вами знакомиться, вы каждый сезон новые!”). В войне labour versus capital нет никаких белых и черных фигур, каждый день кто-нибудь разоряется, и кто-нибудь другой начинает мега-стартап, продав бабушкину квартиру. Прежде чем водрузить на флагшток хоть какой-нибудь флаг, хорошо бы добежать до флагштока. Так вот, если вы рассчитываете добежать до флагштока, используя только лишь решения для “малого бизнеса”, у меня есть для вас ряд плохих новостей, и первая из них - мы вас заменим bash-скриптом (а генерировать его будет самообучающаяся программа на Clojure). Что касается кодогенерации - лозунг “нам нужна автоматическая кодогенерация и массовые расстрелы” я применял еще десять лет назад в ЖЖ, кто ж знал тогда, что до кодогенерации дело дойдет существенно быстрее, чем до расстрелов…

Да, Щорса, кстати, свои же и убили. В следующий раз поговорим про дурачка (про дженту в продакшне я все еще не готов, извините).