Ниже представлена полушутливая типология программистов, работающих в крупных корпорациях, банках и т.п.
с самописными и вендорными системами, что вообще иронично называется кровавым энтерпрайзом.
Кстати, переводить эту идиому следует не «кровавым» энтерпрайзом, в котором нет смысла, а «проклятым» энтерпрайзом — горы кода, написанного на разных языках, для разного системного ПО, на разных базах данных, куча разного оборудования.
В крупных корпорациях сложно внедрять, поддерживать и развивать системы именно из-за огромного количества взаимосвязей и разнородности систем.
Единственное, что спасает этих разработчиков, это то, что в корпоративном мире в большинстве случаев толерантность к ошибкам высока и большинство ошибок можно избежать (при условии их быстрого исправления).
Первый тип — быстрые программисты .
Редко встретишь что-то подобное.
Это эрудированные и увлеченные люди, обычно занимающие высокую должность в иерархии разработчиков (тимлиды или что-то в этом роде).
Основная особенность — высокая скорость написания кода и возможность быстрого освоения новых технологий.
Считаю, что для корпоративной среды это ценные сотрудники (высокая производительность, без оглядки на качество, приветствуется).
Качество кода таких программистов не всегда высокое, зачастую наоборот. Иногда код сложен.
Однажды я просматривал код одного из таких специалистов, и он меня поразил одной особенностью.
Это был кодекс высококвалифицированного специалиста, но он выглядел как набросок – структура формировалась широкими мазками, но порой детали просто не были реализованы.
Обычно код таких программистов приходится дорабатывать и доводить до приемлемого качества, но главное преимущество остаётся: код появляется очень быстро и сразу в больших объёмах.
Работая с таким кодом, чаще всего теряешься из-за широты мысли и количества творческих идей автора.
Второй тип – педанты .
Код этих программистов пишется со средней скоростью, обычно он качественный с точки зрения надежности и отсутствия ошибок, но часто перегружен количеством рассмотренных случаев, проверок и т.п.
Код также сложен – со структурами и алгоритмы, которые трудно понять, он не кажется легким, он тяжелый и его очень трудно читать.
Однажды мне попался код квалифицированного педанта, который практиковал очень длинные строки — по несколько сотен символов: вызовы методов с большим количеством параметров, каждый из которых сам по себе был вызовом других методов или конструкторов.
Редактировать такой код крайне сложно (трудно понять, зачем сделаны те или иные вещи), а главное страшно — всегда есть опасность что-то зацепить и все сломать.
Третий тип – расслабленный .
Зачастую это начинающие программисты, либо программисты, которые еще не погрузились в тему или не хотят (не могут) погружаться.
Эти программисты создают код, который часто удивительно читать (WTF).
В нем много странных решений, много ошибок использования API, структурных проблем.
Преимущество в том, что кода обычно мало и его не очень сложно понять.
Самый простой способ — переписать все сразу или по частям.
Такой код может содержать ненужные проверки, которые были вставлены по недоразумению или на всякий случай.
Редактировать код таких программистов иногда даже приятно — повышаешь самооценку и чувствуешь себя умнее автора.
Четвертый тип – догматики .
Код таких программистов четко следует определенному стилю (догме, правилам), а сами правила зачастую совершенно неожиданны — например, в Java это может быть чрезмерное обязательное использование Final, где это необходимо, а где не нужно.
.
Их код при чтении вызывает раздражение именно из-за своего стиля оформления, который по каким-то причинам зачастую не соответствует общепринятым стандартам.
Подобный догматизм приносит мало пользы заказчику, но часто приводит в ярость товарищей по команде.
Пятый тип – скупые программисты .
Чаще всего они пишут медленнее всех, но код получается качественный, чаще всего не вызывает проблем при сопровождении и содержит небольшое количество ошибок.
Кода не хватает (как раз для выполнения задачи), он не блещет никакими идеями и абстракциями, часто очень упрощен, можно сказать, написан «в лоб».
Это хороший вариант для задач, где нужно точечно подправить небольшой кусочек и максимально обезопасить себя от регресса.
В корпоративном мире таких программистов часто недооценивают, поскольку они работают медленно.
Шестой тип – технологи .
Кодекс изобилует примерами технологий, применяемых локально и не только.
Особенно плохие случаи наблюдались в мире J2EE, где они создают кучу слоев и абстракций, чаще всего в тех случаях, когда от них вообще не ожидается никакой бизнес-выгоды.
Если такие программисты займут лидирующие позиции в команде, то их подход может привести к краху всего проекта.
Я участвовал в таком начинании, где сразу писался код для всех доступных на тот момент реализаций EJB, с дико сложными решениями, учитывающими все различия.
Также в этом проекте я почему-то сразу написал свой Look-N-Feel для Java, который очень дорог и не имеет особого смысла.
В Java8 код таких программистов перегружен использованием Stream API и другими нововведениями.
Седьмой тип — программисты-боссы или программисты-заказчики.
.
Они совершенно безвредны, если пишут и поддерживают собственный код. Я слышал о трейдерах в каком-то банке, которые писали себе код на Haskell (в других местах на R) и самостоятельно решали все возникающие проблемы.
Головная боль начинается, если такой код вдруг отдают на сопровождение профессиональным программистам.
Чаще всего такой код проще переписать заново, что обычно не очень приветствуется авторами (там уже все написано, надо только немного подправить и все).
Такой тип кода случается и с начинающими программистами, которые вдруг написали много кода, пошедшего в производство, а сами вообще перешли в другой отдел или бизнес.
Переписать сразу много кода сложно, а поддерживать его, а главное, следовать исходной архитектуре — очень сложно, а иногда и просто неприятно.
Тэги: #Карьера в IT-индустрии #программирование #Управление разработкой #программисты #код #корпорации
-
Re: Скидка В Магазине
19 Oct, 24 -
Лучшие Вещи 2.0
19 Oct, 24 -
Крайний Срок Тезисов
19 Oct, 24