schegloff (schegloff) wrote,
schegloff
schegloff

Category:

Тема для холивара, или Критерий профессионализма у программистов

Наткнулся случайно на страдания молодого программиста, из которых бросилась в глаза такая претензия:

Мой тимлид не понимает и почти не использует generics.

Я тут же вспомнил еще одного человека, который недолюбливает дженерики:

Прочитал Java Generics FAQ. 500 страниц, между прочим, в PDF-версии. 500 страниц. Когда вы в последний раз читали FAQ на 500 страниц? Ну вот и я тогда же...

Многие объяснения в этом фэке читаются, как один сплошной WTF. Ты понимаешь, в процессе чтения, почему это сделано так, а не иначе. Почему и тут исключение, и тут, и это надо делать через задницу, а то даже через задницу не сделать.
(хинт: WTF - это такое политкорректное What The Fuck?!).

Как следствие, Java Teamlead From Hell сразу стал мне весьма симпатичен. А на ум пришло вот какое соображение. Молодой начинающий талантливый программист знает огромное количество новомодных способов написания кода. Но от настоящего профессионала требуется совсем другое. От него требуется знать (обычно на собственном горьком опыте, но в идеале - благодаря системному уровню мышления), каким боком впоследствии (на этапе сопровождения кода) выйдет каждый из этих способов. И строить проект, осознавая риски, связанные с каждым таким решением.

Риск же получить принципиально неразвиваемый код существует в каждом проекте, и перспектива в этом случае ровно одна:

Все, что в таком случае происходит — "кодеры" своими правками постоянно увеличивают "хрупкость кода" — то есть, стоимость последующих правок.

...катастрофы в результате не происходит — происходит примерно следующее:
1) Эффективность работы группы разработки падает — из года в год фичи добавляются все медленнее и медленнее. Часть фич вообще откладывается из-за большой трудоемкости, часть — реализуется кое-как (то есть, наиболее дешевым в разработке образом).
2) Растет количество дефектов, вносимых разработчиками. При добавлении фич или исправлении дефектов, разработчики вносят новые дефекты в других функциях. Так происходит из-за сильной связности кода. Причем, эти дефекты со временем становятся довольно сложны в воспроизведении, не всегда находят на интеграции. Эти дефекты обнаруживаются пользователями, проходят через поддержку, попадают не тому человеку, который их внес, и далеко не всегда удается их связать с изначальной правкой. Их лечат симптоматически, и цикл повторяется по новой... Все это еще больше увеличивает цену внесения изменений, и понижает скорость разработки.


Не смерть, нет. Медленное и мучительное умирание.

Так что шире используйте дженерики, конкуренты! :)
Subscribe

  • Цитата дня: что есть истина

    Восприятие мира таким, как он есть, НЕ является эволюционным преимуществом, а, наоборот, вредит выживанию. Эволюция поддерживает не "правильное"…

  • Цитата дня: позор какой-то, а не коррупция

    Расследование ВБ показало сознательное и некорректное улучшение в 2018 году рейтинга DB Китая, в 2020 году — Саудовской Аравии и ухудшение в 2020…

  • Цитата дня: мы не туда попали

    Годы назад меня удручал пессимизм поздних произведений Станислава Лема, который на протяжении всей жизни был для меня примером относительно светлого…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 43 comments

  • Цитата дня: что есть истина

    Восприятие мира таким, как он есть, НЕ является эволюционным преимуществом, а, наоборот, вредит выживанию. Эволюция поддерживает не "правильное"…

  • Цитата дня: позор какой-то, а не коррупция

    Расследование ВБ показало сознательное и некорректное улучшение в 2018 году рейтинга DB Китая, в 2020 году — Саудовской Аравии и ухудшение в 2020…

  • Цитата дня: мы не туда попали

    Годы назад меня удручал пессимизм поздних произведений Станислава Лема, который на протяжении всей жизни был для меня примером относительно светлого…