«Покой — это ложь. Есть только страсть.
Через страсть я познаю силу.
Через силу я познаю могущество.
Через могущество я познаю победу.
Через победу мои оковы рвутся.
И Великая Сила освободит меня.»
— Кодекс ситов
Я хочу поговорить о темной стороне кода и о том, к чему это приводит. Что я понимаю под темной стороной кода? С моей точки зрения — это такой код, который был написан программистами, которые поддались желанию написать кое-как, исходя из своих собственных целей, а не целей продукта. Они оставили покой (размеренное написание кода согласно практикам) в угоду страсти (код ради кода). А если есть темная сторона, то есть и ее представители — Темные властелины, Дарты. Вот о них мы сегодня и поговорим.
Дарт Андедкодду. Существуют старые проекты, действительно очень старые — 10 и 15-летней давности. Но что самое интересное, их продолжают развивать. Так вот тот, кто поддерживает старый код и этим влияет на новый, меняя его сущность и есть — Дарт Андедкодду. По слухам он изобрел рецепт бессмертия и убить его невозможно. Он обитает в больших корпорациях, сосредоточил своих руках большую власть и ужасно несговорчив.
Дарт Мануалак. Этот темный лорд не признает никаких инструментов. Пока джедаи используют скрипты, инструменты сборки и прочие элементы светлой стороны, Дарт Мануалак все делает только руками. После его действий в коде появляются гигабайты сорцов внешних библиотек, никто не знает как собрать проект, чтобы поставить на сервера и уж тем более никто не знает, что произошло с базой данных и откуда там такие сущности. Он только и ждет, когда вы отвлечетесь, чтобы все сделать по-своему и помешать вам быстро выпустить релиз.
Дарт Мэйн. Этот темный лорд очень коварен. Прикрываясь тем, что вроде как пишет тесты, выходит из поле зрения джедаев. И как только они перестают за ним следить заполняет тестовый проект классами с main методами. Как итог, эти тесты никто не запускает, в том числе и CI, и многие последователи светлой стороны сами того не желая ломают код. Тем не менее, его вред легко изгоняется медитацией под названием рефакторинг.
Дарт Занна-Во Напишу. Являясь женщиной, этот темный лорд, очень коварна. Обольщая команду разработки обещаниями, что написанный ею фреймворк будет гораздо лучше, чем все что теперь есть, она затягивает сроки до полной неизвестности. К ней очень трудно подобраться, так как она очень исполнительна и всегда умеет рассказывать, что же она делает и какую пользу приносит. Являясь ученицей Дарта Мэйна, написала свой тестовый фреймворк.
Дарт Джинн-Из-Бутылки. Темный лорд, о котором мало что известно и никто не знает как он выглядит. Действует случайно и непоследовательно, удивляя своим кодом других разработчиков, тестировщиков и особенно заказчика.
Дарт Ремерж привык действовать исподтишка, ожидая пока джедаи доделают свою работу, врывает в транк проекта и полностью уничтожает его своими мерджами, говоря что он не виноват. Первые его действия серьезно повредили светлой стороне, но правильное использование репозиториев свело его усилия в никуда и о нем постепенно забыли.
Дарт Автотестиус является, наверное, самое коварным и ужасным темным лордом. Прикрываясь методами джедаев добавляет в проект Continuous Integration и автотестами, но делает это таким образом, что скоро проект делится на две части — те, кто пишут код и те, кто поддерживает тесты. Это приводит к тому, что команда проходит мимо всех сроков, командный дух падает и все забывают о всем хорошем, что у них было.
Дарт Тиранус известен своими хитроумными схемами подрыва работы тестировщиков, за что собственно так и назван. Пишет код не проверяя его, дает неверные тестовые данные, троллит тестировщиков, что их работа — это работа обезьяны и так далее. Активно работает вместе с Дартом Автотестиусом, подрывая еще и идею автотестирования.
Дарт Внедрейдр. За время своей работы сумел внедрить фреймворк Звезда Смерти, чем уничтожил не одну уже подключенную библиотеку. Работая мускулами всегда побеждает своих оппонентов и навязывает им свою волю. Когда был хорошим джедаем, его считали Избранным Джедаем, но затем он прошел сертификации и ассесменты и перешел на темную сторону. Однако есть надежда, что однажды он вернется на светлую сторону и выполнит свое предназначение.
Дарт Тролл. Этот темный лорд всегда на острие любого спора, выдавая фразы направо и налево. Внешне агрессивен, но внутренне спокоен и всегда выходит из любого спора сухим. Ведя себя таким образом он сводит на нет любые усилия по улучшения. Появляется на проекте внезапно, но может быть уничтожен вдохновленным падаваном. Будучи учеником Дарта Автотестиуса умеет писать такие тесты, которые тоже только путают код и мешают разобраться что к чему.
А с какими примерами темной стороны кода сталкивались вы?
UPD.1: По просьбе читателей, следующий пост будет о светлой стороне кода.