SOLID и контекст
Когда говорят про SOLID, забывают вот о чем. Принцип SOLID — типичный пример, когда контекст, в котором возникло явление, важнее самого явления.
SOLID возник в момент, когда в ООП-тусовке царил упадок. До повсеместного перехода на ООП говорили, что объекты решат все проблемы. Достаточно выразить сущности классами и нарисовать UML-схему — и все станет понятно. Звучит примерно как “Земля плоская”, но тогда в это верили. И когда ООП-модель стала буксовать, придумали SOLID, чтобы вдохнуть в нее новую жизнь.
У SOLID есть даже не аналогия, а буквальный пример из жизни. Каждый тренер знает, что главное у спортсмена — настрой (разумеется, не исключая питание и тренировки). Если настрой в упадке, есть не совсем честные способы его поднять. Скажем, когда команда проигрывает всухую, тренер берет таймаут и выдает “заряженные” клюшки, которыми играли великие спортсмены. Или переставляет участников местами, говоря, что сейчас будем играть по “секретной” тактике. Поскольку спортсмены суеверны, это работает.
Та же самая история у военных, полицейских, пожарных. У них есть церемонии раздачи “заряженных” девайсов, например, касок погибших героев. Надевая такую каску, боец буквально получает +100 к отваге. Вопрос о том, действительно ли герой носил эту каску, тактично обойдем стороной.
С принципом SOLID то же самое. Когда стало ясно, что нагромождение классов не решает прошлых проблем, а только добавляет новых, кто-то придумал SOLID. Посыл в том, что отныне мы не блуждаем в потемках, а идем к некой цели. Пишем не просто быдлокод, а по некой методичке. И пусть она спорна и расплывчата, это неважно — есть ориентир. Спортсмен снова мотивирован и готов брать рубежи.
Поэтому отношение к SOLID у меня спорное. Смысловая составляющая высосана из пальца, но запал колоссальный. Уже десятки лет люди спорят о том, как писать код по SOLID правильно. В этом смысле я снимаю перед создателем шляпу, потому что ведь надо так уметь! — вдохновить толпы народа без какой-либо конкретики.
Но у любой легенды есть запас прочности, и актуальность SOLID подходит к концу. Я понимаю, когда о нем пишут в рекламных блогах или курсах для новичков. SOLID — это все и ни о чем, универсальный рецепт, из которого можно выжать тысячи текстов. Но удивляет, когда кто-то всерьез рассуждает о том, как в 2025 году писать код по SOLID. Здесь можно сказать одно: как бы ни держалась стюардесса, ее пора закопать.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Роман, 27th Jan 2025, link
Просто читаю и плачу. Жаль тут плюсиков нет или пальцев - приходится выражать свои чувства банальным текстом. Практически снято у меня из головы.
К сожалению закопать стюардессу не получится. SOLID это идеальная «чесалка ЧСВ» особенно у продвинутых HR-ов и всевозможных собеседующих при приёме на работу. Такую погремушку отобрать будет сложно.
Вообще по моему опыту любая критика SOLID вызывает жуткое подгорание и чревата различными неприятными последствиями.
Кстати до SOLID-а был аналогичный жупел - «3 принципа ООП». Особенно смешно было когда на эту тему размышлял человек, утверждавший, что ООП это «когда написано на C++».
Так, что моё предсказание - SOLID уйдет из оборота, когда появится новая, еще более хитровыгнутая загогулина. А учитывая, что эти феномены лежат в плоскости человеческой психологии, процесс этот бесконечен.
Ivan Grishaev, 27th Jan 2025, link
От “трех принципов ООП” на зубах скрипит песок. Какую древность вспомнили! И ведь точно, раньше по ней так упарывались.