Size: a a a

2021 May 23

S

Sergey Trofimov in CODE BLOG / C#
разумовский тронулся бошкой )
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Да ладно тебе
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Ну поймал вайб человек
источник

EA

Egene Avdeev in CODE BLOG / C#
Есть философский вопрос... вот существует какой-то код, допустим библиотека dll с бизнес логикой, притом логика самая общая.

Допустим там классы которые обрабатывают ключи, пароли "хранят", управляют, генерируют допустим.

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

Например начало класса DeviceKey а дальше Service, Manager, Repository, Provider, ApiClient, Resolver

И вот вопрос рождается, что Service может быть Manager, и Provider и вообще кучу ролей на себя принимать.  И даже S из SOLID при этом не будет нарушать на первый взгляд.

Как провести черту между такими классами, и вообще правильно ли классы делать настолько маркерными (манагер, провайдер)
источник

ND

Nikolajs Djačenko in CODE BLOG / C#
Сакутин тебе локанично ответил бы на этот вопрос
источник

EA

Egene Avdeev in CODE BLOG / C#
Да, знаю его отношение к Manager и прочему)
источник

EA

Egene Avdeev in CODE BLOG / C#
Но вроде и рекомендации как это исправить он не давал)
источник

ND

Nikolajs Djačenko in CODE BLOG / C#
Да у него на все один ответ - инвариант и декомпозиция
источник

ND

Nikolajs Djačenko in CODE BLOG / C#
Главное чтобы твой сервис-менеджер-провайдер не содержал сам в себе эту логику, а просто вызывал более мелкие (и скорее всего протектед) классы. Я считаю что нету ничего плохого в единой точке доступа к какой-то группе функций, если под капотом все равно соблюдена декомпозиция
источник

EA

Egene Avdeev in CODE BLOG / C#
Ну да, функциональность вроде как должна быть разделена. И декомпозиция есть, и DI при всем этом тоже есть
источник

ND

Nikolajs Djačenko in CODE BLOG / C#
Ну тогда, как по мне, важнее не плодить менеджеры и сервисы у которых будут размыты границы обязанностей - Тоесть не делать так, что у тебя есть например VideoService, VideoProvider и VideoDataManager - это, конечно же, залупология и тут как бы получается вывернутое наизнанку нарушение «S» когда одно изменение повлечёт по цепочке изменение в нескольких точках доступа
источник

rr

razumovsky r in CODE BLOG / C#
а че скажете по статическим анализаторам
источник

rr

razumovsky r in CODE BLOG / C#
например, решарперовский vs SonarQube ?
источник

EA

Egene Avdeev in CODE BLOG / C#
Решарпер лучше ИМХО
источник

EA

Egene Avdeev in CODE BLOG / C#
SonarQube ругается на break в цикле простом. Истерит сразу
источник

rr

razumovsky r in CODE BLOG / C#
Оо
источник

rr

razumovsky r in CODE BLOG / C#
а чо он так
источник

ГЛ

Георгий Левченко... in CODE BLOG / C#
PVS-Studio еще есть
источник

DG

Dima Grechmak in CODE BLOG / C#
Подскажите из-за чего хмл сериализатор может такие ошибки в файл записывать:
</ArrayOfFiguresFork>ork>a>255</a>
?
источник

f

fc0fco in CODE BLOG / C#
Есть ли предположение почему так происходит?
источник