Re: Об инвестициях в качество кода.
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 06.03.12 03:00
Оценка: 20 (3)
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Прежде всего, хотелось бы заметить, что инвертировать в качество кода можно по-разному.


Вообще-то, Вы понаписали банальнейшие истины. Зачем?

ПМ>Кто и зачем пропагандирует говнокод и решения от MS? Вот это мне не понятно. Я заметил, что во всяких говноконторах (преимущественно интеграторы и IT аутстафферы) довольно низкий уровень программистов и очень низкое качество кода. Менеджмент там весьма далёк от IT, зачем писать качественный код и как нанимать сильных программистов они слабо себе представляют (кстати, зачем платить программисту много денег — они тоже слабо себе представляют). Пройти собеседование в такую контору очень легко, но нормальному программисту там делать совершенно нечего, я считаю.


Пусть это будет банальной истиной, но ganjustas по своему тоже прав. Говнокод бывает оправдан и бывает нужен. И не всегда говнокод пишут говнокодеры, бывает нормальные программисты пишут говнокод, когда надо. Тот же ganjustas ну явно никак не говнокодер. И списки перевернет и максимальную подпоследовательность найдет. Одно мне не нравится, молодые почитав авторитетного ganjustas посчитают, что смысла им учиться переворачивать списки, учить разные структуры данных и алгоритмы не нужно. Потому что, они молодые и глупые. Знаю, потому, что сам таким был. Теперь я старый и все равно глупый Но понимаю, что все это реально на самом деле надо, даже если они всю жизнь будут говнокодерами в говноинтеграторах.

Расскажу свою историю работы в одной очень крупной компании. Было это года три назад. Пошел туда с нормальной программисткой конторы, где раньше писал медицинский софт. Большая компания к IT отношения не имеет, совсем не имеет, т.к. это энергетическая компания. Пошел туда по причине того, что ЗП было почти в 2 раза выше и гораздо больше перспектив, вплоть до беспроцентных кредитов на покупку жилья.

Для начала об аспектах, не касающихся говнокода. Режим, этот чертов режим! Начало рабочего дня в 8:00. Пару минут опозданий, выговор. Три опаздания, увольнение. Я два раза опаздывал и один раз не заметно опаздал, что не считается Дресс-код, а я ненавижу костюмы, галстуки, брюки. В них банально не удобно, если особенно сидишь целыми днями в офисе. И еще, я не люблю сидеть долго, люблю поразмяться и т.д. Пришел как-то с мячиком маленьким Начал в коридоре его кидать, пинать Конечно же, выговор. А еще, мы как-то с друзьями с разных отделов засиделись в столовой компании. Ну как сказать засиделись, обед с 13:00 начинается, мы начали обедать в 13:00, за 15 минут пообедали и 10 минут просто общались, шутили, смеялись. Там все это время сидела на нас смотрела странная тетя. И вот, на 25-й минуте нашего обеда она подходит и дает нам замечание, что мы не работаем, а сидим тут бездельничаем и еще раз такое повторится, то нас уволят Потом я узнал, это была начальница какого-то финансового отдела.

Ладно, давайте про говнокод. Его там было много и на разных языках. Начиная от Дельфи с его постоянными Access Violation, ASP.NET/C#, 1C, VB. Кстати, лучший код с которым мне пришлось поработать, это как ни странно, было в VB Понятное дело, никто юнит-тестов не писал, вообще, такого понятия как тестирование не было вообще. Вася Пупкин писал код за 2 часа в режиме когда начальница отдела стоит над душой и каждые 15 минут приходит посмотреть, не готово ли все и потом, сразу же этот код пускается в продакшен. Это и биллинг и внутренняя автоматизация. Особо доставляла эта начальница, которая все время стояла над душой, каждые 15 минут. Сама она работала до 2 часов ночи, писала на 1С. Кстати, тот, кто работал до меня, оказывается спрыгнул с окна своего дома, купленного под беспроцентный кредит этой компании. Причины, мне никто не сказал. Но я кажется знаю, причину. Все же, давайте ближе к коду. Такая ужасная лапша была, что врагу не пожелаешь. Goto, глобальные переменные, да и просто каша. Все это напоминало карточный домик. Мои попытки выстроить нормальный процесс разработки, который включает хотя бы минимум тестирования, использование version control & bug tracker'а шли понятно куда. Что самое худшее, от меня требовалось тоже говнокода. Нет, я мог. Но, мое чувство прекрасного не давало покоя. И я решил, ну фиг с ними, буду пока писать говнокод, а параллельно напишу такую штуку, которая автоматизирует все это дело и будет написано нормально. По хорошему, мне требовалось около недели, чтобы автоматизировать этот процесс и уже не надо было писать-то, что они писали каждый раз по новому. И этот день настал, я был горд собой и презентовал свое решение. К своему разочарованию, получил отказ, знаете почему? Никогда не догадаетесь. Мое решение было настолько эффективным, что половины бухгалтеров этой компании можно было увольнять прямо сейчас. Сами понимаете, половину бухгалтеров, никто увольнять не хотел и мое решение было отбраковано. Все это мне напоминало одну большую фабрику, где каждый занят тем, чтобы быть хотя бы чем-то занятым и получать за это деньги. Благо у компании неисчерпаемые денежные ресурсы, получаемые от простого населения, расходы которой можно было оптимизировать на порядки. Общался с ребятами из других отделов, не IT, они тоже говорили, мол, могут запросто треть расходов сократить, что они идут впустую, но никому этого не надо.

Те кто работали со мной в этом отделе, сложно их назвать говнокодерами. Один из них для души писал на Haskell. Писали свои сторонние проекты, небольшие утилитки для работы, которые были написаны очень хорошо, т.к. не было такого прессинга и писали они их от души, для себя. Вообще, у хороших программистов наблюдаю такую картину, тягу к перфекционизму, к идеальному коду.

Ах да, выдержал я в этой компании всего 3 месяца. Это наихудшее место, где я работал. Так вот, резюмируя хочу сказать. Если программист не будет совершенстоваться постоянно, в технологиях, в алгоритмах и не только в этих областях. То в конечном итоге, выбора у него не будет, кроме таких вот говноконтор. Если человек, банально не может перевернуть список, о каком Google, Yandex или даже MS может идти речь?
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.