Deutsch

Как сейчас с работой '25?

32090   11 12 13 14 15 16 17 18 19 20 21 все
alex445 патриот4 дня назад, 20:29
NEW 4 дня назад, 20:29 
в ответ romanovi4 4 дня назад, 20:09, Последний раз изменено 4 дня назад, 20:30 (alex445)

паттернализм головного мозга у них )))

индусская рахитектура

Программист коренной житель3 дня назад, 09:54
NEW 3 дня назад, 09:54 
в ответ alex445 4 дня назад, 11:07
Смотрит ашарка - молодой, красявый. А приходит почти дед согнутый. )))

Я несильно изменился :)


А если у меня там АЛГОРИТМ!?

Если ты алгоритм засунул в статические функции, то сразу отрывать руки и расстрел через повешенье.


Вообще говоря, для использования статических функций должно быть очень сильное обоснование.

romanovi4 знакомое лицо3 дня назад, 17:45
romanovi4
NEW 3 дня назад, 17:45 
в ответ Программист 3 дня назад, 09:54
Вообще говоря, для использования статических функций должно быть очень сильное обоснование.

если функция не зависит от класса то предпочтительнее её сделать static. В Rider и VS очень часто это и предлагается. Так как в функции нет зависимости от класса, JIT может её проще сделать inline. Да и тестировать легче, потому что не ожидается никаких побочных эффектов.

alex445 патриот3 дня назад, 21:38
NEW 3 дня назад, 21:38 
в ответ romanovi4 3 дня назад, 17:45, Последний раз изменено 3 дня назад, 21:38 (alex445)

Щас на вас набросятся адепты проброса инъекций через десять слоёв индусской рахитектуры. ))

Никаких глобальных доступов!!

Отпускник Забанен до 15/1/26 13:49 местный житель3 дня назад, 23:37
NEW 3 дня назад, 23:37 
в ответ romanovi4 4 дня назад, 20:09
зачем всё это?

чтобы сообщения перед отправкой шифровалась и записывалось в лог.

alex445 патриот3 дня назад, 23:43
NEW 3 дня назад, 23:43 
в ответ Отпускник 3 дня назад, 23:37

Булевого параметра для этого недостаточно? Что, даже энума?

Murr патриот2 дня назад, 04:38
Murr
NEW 2 дня назад, 04:38 
в ответ Отпускник 3 дня назад, 23:37

Это таки ДВА отдельных действия и логичнее сделать евент с подпиской на два делегата...

romanovi4 знакомое лицо2 дня назад, 06:48
romanovi4
NEW 2 дня назад, 06:48 
в ответ Отпускник 3 дня назад, 23:37

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

Или можно было бы например BeforeSend-Event сделать. Подписчики тогда могут как то с Message работать, например анализировать, добавлять какие то footer/header или заменять какие то placeholder. Ну и в будущем можно много всего прицепить.


Отпускник Забанен до 15/1/26 13:49 местный житель2 дня назад, 07:06
NEW 2 дня назад, 07:06 
в ответ alex445 3 дня назад, 23:43

То есть сначала ты пернул в лужу, что пэттерн не нужен, а теперь пытаешься доказать, что реализация вообще говно?

Отпускник Забанен до 15/1/26 13:49 местный житель2 дня назад, 07:46
NEW 2 дня назад, 07:46 
в ответ romanovi4 2 дня назад, 06:48, Последний раз изменено 2 дня назад, 10:23 (Отпускник)
Но конечно со стороны не знаю, может быть у вас такие процессы и поэтому нужна такая реализация

Это не у нас процеccы, это пример использования пэттерна от чатгпт.

Программист коренной житель2 дня назад, 09:10
NEW 2 дня назад, 09:10 
в ответ romanovi4 3 дня назад, 17:45, Последний раз изменено 2 дня назад, 09:18 (Программист)
если функция не зависит от класса то предпочтительнее её сделать static.

В чем же плюсы статической функции?


В Rider и VS очень часто это и предлагается.

Это не значит, что это хорошее решение ;)


Так как в функции нет зависимости от класса, JIT может её проще сделать inline.

Как там JIT работает мало интересно. Это все "под капотом" и никак не влияет ни на читаемость кода, ни на его тестируемость.


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

Ну да, проблема только в том, что нужно знать как работает такая функция, т.е. по-сути это white box.

Возьмем простой пример:

List<string> someCollection = new List<string>();

Далее есть 2 способа работы с этим списком: 1) передавать все как IList или 2) IEnumerable

Если работать с IList, то все можно отлично "мокать" и тестировать без создания списка.

Если же работать с IEnumerable, то через LINQ можно сделать все тоже самое, но есть нюанс - придется создавать список. Т.е. по факту для тестирования какого-то кода придется создавать инфраструктуру. Более того, тест, скажем удаления элемента из списка становится значительно сложнее... а если нужно проверить только факт вызова функции удаления элемента, то это вообще невозможно сделать.


alex445 патриотВчера, 04:12
NEW Вчера, 04:12 
в ответ Отпускник 2 дня назад, 07:06

И паттерн твой не нужен, и реализация у тебя говно. Оно и понятно, когда одними нейросблёвами питаешься.