Сообщения в Избыток абстракций

Избыток абстракций

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

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

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

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

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

Извините, накипело. Я эту лабуду разматывал несколько часов только что, чтобы понять, что вообще такое мне в интерфейс падает, где оно описано и нафиг оно нужно.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to All (2024-09-27 12:26:55) [ссылка]

Re: Избыток абстракций

Ответ на сообщение
> Как бороться с сабжем в легаси-коде?
Бороться надо на этапе разработки - надо становиться техлидом и пинать разрабов чтобы они не вылезали за рамки техзадания - многие молодые разработчики (особенно российские) норовят на любую тривиальную задачу нагородить «сферического коня в вакууме» - суперуниверсальное решение, которое не только поставленную задачу решает, но и любые другие сходные с ней или которые могут возникнуть на базе текущей задачи в ближайшую сотню лет - в итоге получается овердохера кода который может поддерживать только первоначальный автор, тем самым обеспечивая себе «job security»…
shaos to Andrew Lobanov (2024-09-27 18:25:21) [ссылка]

Re: Избыток абстракций

Ответ на сообщение
>> Как бороться с сабжем в легаси-коде?
shaos> Бороться надо на этапе разработки
У меня нет машины времени, чтобы вернуться на шесть лет назад.
shaos> надо становиться техлидом и пинать разрабов чтобы они не вылезали за рамки техзадания
Обычно так и пишем. Но в старом коде море говнокода.
shaos> многие молодые разработчики (особенно российские) норовят на любую тривиальную задачу нагородить «сферического коня в вакууме» - суперуниверсальное решение, которое не только поставленную задачу решает, но и любые другие сходные с ней или которые могут возникнуть на базе текущей задачи в ближайшую сотню лет - в итоге получается овердохера кода который может поддерживать только первоначальный автор, тем самым обеспечивая себе «job security»…
Универсальность это хорошо. Только не ценой сложного и запутанного кода. Есть же, в конце концов, паттерны под это.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to shaos (2024-09-28 07:41:04) [ссылка]

Re: Избыток абстракций

Ответ на сообщение
> У меня нет машины времени, чтобы вернуться на шесть лет назад.
Ну ой тогда :)

Если старый код работает, то не трогайте, а если глючит или тормозит, то аллоцируйте бюджет на "technical debt"...
shaos to Andrew Lobanov (2024-09-29 00:23:28) [ссылка]