EngineerSpock

Дядя Боб, Мартин Фаулер, Кент Бек: вся правда о персонажах

Бинарный салют, друзья! На связи EngineerSpock. Сегодня у нас особенная тема, касающаяся кумиров в программировании.
 

Бинарный салют, друзья! На связи EngineerSpock.

Сегодня у нас особенная тема, касающаяся кумиров в программировании. Мы поговорим лишь о нескольких героях, но этого будет вполне достаточно, чтобы сделать выводы о том стоит ли слушать советы великих гуру. Поехали!

Лайкосы / Подписки / Курсы

 
 
Бинарный салют, друзья! На связи EngineerSpock. Сегодня у нас особенная тема, касающаяся кумиров в программировании.-2
 

В истории современного программирования есть несколько очень известных личностей, оказавших сильнейшее влияние на всю индустрию разработки программного обеспечения. Я выделил дядю Боба, он же Боб Мартин, Мартина Фаулера и Кента Бека.

Все выделенные мной герои – авторы множества отличных книг. Приведу несколько примеров.

Роберт Мартин написал «Чистый код», «Чистая архитектура», «Идеальный программист».

Мартин Фаулер написал «Рефакторинг», «Шаблоны корпоративных приложений».

Кент Бек автор книг «Экстремальное программирование», «Шаблоны реализации корпоративных приложений».

И так далее.

Все эти персонажи – видные деятели, особенно в области объектно-ориентированного программирования, много где выступали, много чего написали, а также участвовали в создании знаменитого манифеста по методологии Agile. Конечно, посмотрит вот так рядовой программист на такую величину как Боб Мартин и прям рот раскрывает, жадно глотая всё, что скажет великий гуру. Я уже не говорю об эффекте, который оказывают вышеозначенные личности на новичков в программировании. Короче говоря, всё сказанное гуру – зачастую воспринимается за истину в последней инстанции.

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

Наставник

– Почему ты реализовал вот этот кусок кода — вот именно так?
Новичок
– Потому что Боб Мартин (Фаулер, Кент Бек, подставьте фамилию любимого гуру) сказал, что делать именно так является лучшей практикой.
 
В большинстве случаев советы гуру – реально работающие хорошие советы, которые стоит применять на практике. Однако, применять любые советы слепо – путь довольно скользкий. Особенно учитывая специфику разработки программного обеспечения, которая является инженерным ремеслом по своей сути, из-за чего практически все советы не могут рассматриваться как универсальные. Практически любой совет в инженерии ПО – не является серебряной пулей, с гарантией и лучшим образом, решающей какую-то проблему. Контекст решаемой проблемы порой настолько важен, что им нельзя пренебречь. И это, ещё не говоря о том, что гуру иногда могут давать попросту не очень хорошие советы. Как минимум за Бобом Мартином такое уже наблюдалось и не раз. Возможно, я тут сейчас подорву пуканы тех, кто свято верит в непогрешимость дяди Боба, но я просто обязан это сделать, чтобы доказать, что не стоит принимать на веру всё, что говорит великий Uncle Bob.

Одной из самых странных книг, написанных Бобом Мартиным, является книга, которую я уже упоминал в своих статьях, под очень длинным названием «Принципы, паттерны и методики гибкой разработки на языке C#.» Забегая вперёд, я хочу сказать, что эта книга – не полный шлак и не дам совета её никогда не читать, однако я бы посоветовал отнестись к ней с настороженностью. Если честно, мне даже не придётся самому критиковать эту книгу, потому что за меня это сделал ещё в 2014 году широко известный в узких кругах мира .NET разработки Сергей Тепляков, ныне работающий в компании Майрософт. Ну, если честно, там и без критический статьи Сергея было ясно, что авторы слегка поехали крышей, но тем не менее, статью написал именно Сергей. Давайте посмотрим хотя бы на парочку претензий, чтобы не быть голословными, утверждая, что не стоит слепо доверять дяде Бобу.

Первый и главный вывод в этой статье: не надо слепо доверять гуру программирования.

Мартин Фаулер однажды в твиттере сказал, что множество разработчиков критикуют его идеи, но по прошествии времени, все они с ним таки соглашаются и признают, что они были не правы. Я думаю – так и есть. Фаулер и Дядя Боб не рядовые программисты, конечно же, никто всерьёз не станет оспаривать их репутацию. Однако, несмотря на это, они не могут быть в курсе всех особенностей всевозможных программных проектов в мире и их советы не могут быть серебряными пулями, применяемыми везде без оглядки.

Второй вывод является следствием первого и заключается в том, что прежде, чем при применять какие-то советы на практике, надо понять смысл этого совета и чётко понимать почему и как именно совет может быть применён на конкретно вашем проекте.

Третий вывод касается того как лучше вести дискуссии касательно технических моментов на проекте. Пожалуйста, когда в следующий раз будете что-то обсуждать со старшим разработчиком по проекту, не апеллируйте к громким именам. Апеллируйте к логическим аргументам, которые убедительно объясняют, в чём смысл того или иного подхода и почему он хорош для решения конкретной проблемы.

И финальное замечание. Да, я тут, казалось бы, слегка полил Боба Мартина какашульками, НО! Если вы новичок, а вас окружают в компании хейтеры Боба Мартина, Фаулера и прочих гуру, которые отрицают все известные лучшие практики, и вам может показаться даже, что приводят веские аргументы. Не слушайте этих идиотов! Лучшие практики существуют, паттерны реально помогают, а код реально не должен быть засран. Если вы оказались в подобной ситуации, окружённые ярыми отрицателями лучших практик, мой вам совет – слушайте лучше пока советы Боба Мартина, и лучше криво их применяйте, пока сами всё не поймёте, чем слушать совсем отбитых говноделов, которым лишь бы бах-бах и в продакшн. Однажды вы по достоинству оцените абсолютно подавляющую часть советов от Мартина Фаулера, дяди Боба и Кента Бека.

Если программисты вокруг вас не пытаются логически объяснить известные лучшие практики, а только занимаются бессмысленным хейтом – задумайтесь об их квалификации. Некоторые индивидуумы, и таких дофига и больше, в профессии могут существовать 20, а то и 30 лет, но при этом в профессиональном плане оставаться на уровне плинтуса.

Ну и да, из таких компаний, где вас ничему хорошему не научат – лучше бежать, сломя голову. Не тратьте понапрасну своё время.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *