# Избыток абстракций
Andrew Lobanov(tavern,1) — All
2024-09-27 13:26:55


Как бороться с сабжем в легаси-коде? Попадаются прямо такие вещи, что я проямо колдобюсь, когда сталкиваюсь.

Последнее из прекрасного, мьютекс со счётчиком локов, который нигде не используется.

Я ещё могу нафантазировать зачем нужен счётчик ReadLock'ов в RWMutex, но вот в самом обычном мьютексе это нафига? Причём реально по всему проекту этот счётчик не используется нигде.

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

И вот с одной стороны проделана работа (пусть и без результата, но кто его знает, что там в головах было в древности, может была какая-то красивая идея), а с другой стороны это всё бежит по пустым интерфейсом, ломая весь вкус статической типизации.

Извините, накипело. Я эту лабуду разматывал несколько часов только что, чтобы понять, что вообще такое мне в интерфейс падает, где оно описано и нафиг оно нужно.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Re: Избыток абстракций
shaos(shaos, 2) — Andrew Lobanov
2024-09-27 19:25:21


> Как бороться с сабжем в легаси-коде?

Бороться надо на этапе разработки - надо становиться техлидом и пинать разрабов чтобы они не вылезали за рамки техзадания - многие молодые разработчики (особенно российские) норовят на любую тривиальную задачу нагородить «сферического коня в вакууме» - суперуниверсальное решение, которое не только поставленную задачу решает, но и любые другие сходные с ней или которые могут возникнуть на базе текущей задачи в ближайшую сотню лет - в итоге получается овердохера кода который может поддерживать только первоначальный автор, тем самым обеспечивая себе «job security»…

# Re: Избыток абстракций
Andrew Lobanov(tavern,1) — shaos
2024-09-28 08:41:04


>> Как бороться с сабжем в легаси-коде?
shaos> Бороться надо на этапе разработки

У меня нет машины времени, чтобы вернуться на шесть лет назад.

shaos> надо становиться техлидом и пинать разрабов чтобы они не вылезали за рамки техзадания

Обычно так и пишем. Но в старом коде море говнокода.

shaos> многие молодые разработчики (особенно российские) норовят на любую тривиальную задачу нагородить «сферического коня в вакууме» - суперуниверсальное решение, которое не только поставленную задачу решает, но и любые другие сходные с ней или которые могут возникнуть на базе текущей задачи в ближайшую сотню лет - в итоге получается овердохера кода который может поддерживать только первоначальный автор, тем самым обеспечивая себе «job security»…

Универсальность это хорошо. Только не ценой сложного и запутанного кода. Есть же, в конце концов, паттерны под это.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Re: Избыток абстракций
shaos(shaos, 2) — Andrew Lobanov
2024-09-29 01:23:28


> У меня нет машины времени, чтобы вернуться на шесть лет назад.

Ну ой тогда :)

Если старый код работает, то не трогайте, а если глючит или тормозит, то аллоцируйте бюджет на "technical debt"...