Золотой молот – это методологический программный антишаблон, в котором команда, хорошо знакомая с конкретным инструментом или методологией, использует этот инструмент или методологию в качестве решения каждой проблемы, с которой они сталкиваются. Оно происходит от популярной фразы: «Если все, что у вас есть, это молоток, все выглядит как гвоздь».

Итак, каково решение? Получите другой инструмент. Зачем использовать молоток, если все, что вам нужно, это таймер?

Изложение

  • Имя: Золотой молот
  • AKA: закон инструмента, молот Маслоу
  • Резюме. Происходит, когда команда или отдельный человек решает, что определенный инструмент, с которым они знакомы, является решением каждой проблемы, с которой они сталкиваются.
  • Тип: Методологический
  • Общее?: ДЕЛО ЗАКРЫТО! ударяет молотком

Расскажи мне историю!

Что, правда? Я уже делал, три года назад.

Скажи это снова!

…Отлично.

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

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

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

Это надуманный пример, конечно. Я знаю, потому что я придумал это. Но проблема остается.

Стратегии решения

Учитывая, что «Золотой молот» — это методологический антипаттерн, он требует решения от людей, а не от процессов или технологий. Мне нравится называть это решение «дополнительными пятью минутами».

Всякий раз, когда вы сталкиваетесь с проблемой и думаете: «Я знаю, я буду использовать X для решения проблемы», потратьте дополнительные пять минут на поиски в Интернете, чтобы выяснить, действительно ли это жизнеспособное решение. На свете нет новых проблем, и кто-то уже сделал то, что вы пытаетесь сделать, если это возможно. В 90% случаев, если решение, которое вы хотите, является жизнеспособным, первые несколько результатов поиска скажут вам об этом. В противном случае, если вам нужно потратить более пяти минут, чтобы найти сообщение в блоге, вопрос StackOverflow или другой элемент, относящийся к предлагаемому вами решению, возможно, пришло время изучить другие идеи.

Это требует определенного самосознания, которого не хватает многим профессиональным разработчикам. Есть причина, по которой мы пришли к стереотипу о закрытой бороде в фетровой шляпе. Но у тебя, дорогой читатель, вряд ли есть это отсутствие самосознания, просто потому, что ты читаешь этот блог (да и вообще любой блог). Это показывает, что вы осознаете, что можете стать лучше, и, если честно, это первый шаг к исправлению всех этих антишаблонов, а не только Золотого Молота. Самосознание — враг невежества.

Антипаттерн «Золотой молот» возникает, когда вы используете знакомое решение для решения незнакомой проблемы. Иногда это действительно может сработать, но в большинстве случаев это неэффективный способ решения проблем. Мы, разработчики, должны знать о сильных сторонах и ограничениях всех наших инструментов и знать, как найти правильные, когда возникает ситуация.

Вы стали жертвой Золотого Молота? Или вы были свидетелем того, как кто-то другой делал то же самое? Я хочу знать об этом. Поделитесь в комментариях! Или же вернитесь на страницу индекса серии, чтобы увидеть еще несколько анти-шаблонов.

Удачного кодирования!

Первоначально опубликовано на exceptionnotfound.net 14 сентября 2018 г.