Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 522 38 118
C# / дотнет тред #61 /csharp/ Аноним 12/06/25 Чтв 09:37:40 3474778 1
nuzhen-li-kuram[...].jpg 119Кб, 960x540
960x540
C# / дотнет тред #61

Летний тред лучшего языка на планете.

1. Ресурсы:
https://learn.microsoft.com/en-us/dotnet/
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru
https://github.com/uhub/awesome-c-sharp
https://sharplab.io/
https://www.jimmybogard.com/you-probably-dont-need-to-worry-about-mediatr/
https://cezarypiatek.github.io/post/why-i-dont-use-automapper/?utm_source=chatgpt.com

2. С# для веб
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
https://docs.microsoft.com/ru-ru/dotnet/desktop

4. С# для игр
https://ru.stackoverflow.com/a/609901/422180

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui

6. Годные ютуб-каналы
https://www.youtube.com/c/CODEBLOG
https://www.youtube.com/c/AndreyShyrokoriadov
https://www.youtube.com/c/DevJungles
https://www.youtube.com/user/Shmachilin
https://www.youtube.com/c/Elfocrash
https://www.youtube.com/user/IAmTimCorey

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: https://2ch.hk/pr/res/3395748.html
Аноним 12/06/25 Чтв 10:30:40 3474812 2
Напоминаю, что MediatR - говно
Аноним 12/06/25 Чтв 10:31:01 3474813 3
Напоминаю, что Automapper - говно
Аноним 12/06/25 Чтв 10:45:01 3474820 4
>>3474812
>>3474813
Напоминаю что ничего не истинно, ничего не вечно
Аноним 12/06/25 Чтв 13:53:12 3474933 5
>>3474813
Предлагаешь ручками писать конвертеры дтошек?
Аноним 12/06/25 Чтв 13:59:48 3474939 6
>>3474933
> Предлагаешь ручками писать конвертеры дтошек?

предлагаешь ручками писать конфигурации маппингов конвертеров дтошек?
Аноним 12/06/25 Чтв 14:26:43 3474955 7
>>3474778 (OP)
А почему на ОП пикче голанг разработчик?
Аноним 12/06/25 Чтв 14:50:06 3474978 8
>писать на подмелкомягком платформозависимом вбенчмаркахсосущем гетсетожужжащем языке в 2025
Аноним 12/06/25 Чтв 16:29:42 3475041 9
.
Аноним 12/06/25 Чтв 16:35:20 3475044 10
>>3474933
В конфиге автомаппера приходится РУКАМИ писать методы-конвертеры.
То есть кода с говёным автомаппером получается БОЛЬШЕ, чем без него.
Впрочем, за это его и любят нубы: нахуярил конфигов и можно коммитить - вроде как не бездельничал.
Аноним 12/06/25 Чтв 16:37:12 3475047 11
>>3474978
Сигара уже давно не зависит от платформы и спокойно крутится на линуксе.
Аноним 12/06/25 Чтв 16:37:35 3475048 12
Аноним 12/06/25 Чтв 16:40:38 3475049 13
По поводу new.
Например, нужно читать большие файлы в десятки гигабайт и обрабатываться чанками.
Вот так написал хейтер new:

while ...
byte[] bytes = reader.ReadBytes(count);

После чего был обоссан, выебан ножкой от стула и выгнан на мороз с волчьим билетом.
Если размер файла 16 Гб, а count = 16K, то получаем всего лишь миллион аллокаций массива. Зато new нет...
Аноним 12/06/25 Чтв 16:42:38 3475050 14
>>3475049
с new было бы в два раза больше аллокаций
Аноним 12/06/25 Чтв 16:43:25 3475051 15
А вот так можно переписать с new:

byte[] buffer = new byte[count];

while ...
int n = stream.Read(buffer, 0, count);

Единственная аллокация с new.
Да, можно пойти ещё дальше, сделав буфер полем класса, статическим полем класса или, более того, заюзав пул, но это уже мелочи.
Факт в том, что хейтеры new - имбецилы. И пока вы существуете, я ценюсь выше как специалист.
Аноним 12/06/25 Чтв 16:44:26 3475053 16
>>3475049
если это на разок считать данные скриптом - то и похуй. Главное, что ЗАПАХОВ кода нет. По хорошему, надо спрятать метод ReadBytes за автомаппером чтобы был достаточный уровень абстракции
Аноним 12/06/25 Чтв 16:49:46 3475056 17
Читал тред и поражался. Млять, неужели кто-то до сих пишет мапперы (конфиги мапперов) вручную? Установите в IDE расширение для маппинга и генерируйте код одним кликом мышки или нажатием шортката.
Аноним 12/06/25 Чтв 16:53:44 3475058 18
>>3475053
Абстракции всегда текут. ИЧСХ, текут говном. Там не просто ЗАПАХ, там ВОНИЩА!
Аноним 12/06/25 Чтв 16:57:24 3475062 19
17496568598930.png 456Кб, 2683x1570
2683x1570
>>3475056
Я же вчера скидывал, как правильно делать. Просто рефлексией пробегаешься по всем классам в сборке и конфигурация готова
Аноним 12/06/25 Чтв 17:01:57 3475064 20
>>3475056
> пишет мапперы

Я, если без шуток, в ахуе, откуда берётся столько маппинга у людей.

Видел на проектах вплоть до 6-7 слоёв. А всё потому что ебутся с медиатром, в котором нельзя методы вызывать по нормальному и все аргументы надо объектом передавать.

ПРосто выкидываешь медиатр, и автомаппер автоматически становится не нужен
Аноним 12/06/25 Чтв 17:13:01 3475071 21
>>3474978
То ли дело лобком генерировать гетсеты и не иметь ни одной нормальной комьюнити иде с коробочным спрингом...
>подмелкомягком
У дотнета лицензия то посвободней будет чем у наших дорогих друзей
>платформозависимом
Вылезай из криокамеры
Аноним 12/06/25 Чтв 17:18:32 3475074 22
>>3474955
Потому что джависты перекатывают, у них аллергия на джаву здорового человека
Аноним 12/06/25 Чтв 17:22:25 3475078 23
>>3475049
Про ArrayPool слышал, обоссышь?
Аноним 12/06/25 Чтв 17:22:54 3475079 24
17037756237580.jpg 127Кб, 787x1333
787x1333
>>3475062
Умение способный уникальное учен
ик. Мы втроем шли по тропинке ноги топали по мягкой мокрой грязи издавая шлепающий звук Сегодня днем шел дождь и от него земля была грязной а ноги липкими Ботинки были порваны
Аноним 12/06/25 Чтв 17:54:51 3475097 25
>>3475056
>Установите в IDE расширение
Какое? Вроде такой функции нет и там минимальная поддержка. А так да, бывают сложные мапперы и нужно как следует посидеть и тщательно написать код, а затем тесты на мапперы
Аноним 12/06/25 Чтв 18:15:54 3475111 26
>>3474778 (OP)
Ну и нахуя перекатили? Чтоб ещё пару ебланов закатились и себе жизни поломали? На Линкедине половина вакансий создана чтоб обучать нейроHRов, четверть чтоб компании показывали свой рост перед инверсторами. Оставшаяся четверть ищют людей-оркестров с функционалом айтиотдела на зп в 2к баксов.
Аноним 12/06/25 Чтв 18:32:58 3475115 27
>>3475111
Потому что круговорот финтеха, где сидят одни и те же 50 летние жабисты/плюсисты этот круговорот начавшие. В геймдеве на позиции шарпистов нормально мест есть, про бугор ваще молчу.
Аноним 12/06/25 Чтв 18:40:35 3475119 28
>>3475115
В гейдеве традиционно низкие зп и ублюдочные мрази на менеджерах. Без исключений.
За бугром дотнет умер. Из реальных вакансий либо знание какого-нибудь нахуй не нужного датского и ворк пермит с хождением в офис в Эйхуйнахуйховене, либо ебаный человек-оркестр в стартап за три копейки, чистить говна за паджитами.
Аноним 12/06/25 Чтв 19:01:48 3475129 29
>>3475119
>За бугром дотнет умер.
Да откуда вы такую хуйню берёте?
Аноним 12/06/25 Чтв 19:04:28 3475133 30
>>3475129
Внезапно из вакансий на линкедине.
Аноним 12/06/25 Чтв 19:24:56 3475141 31
>>3475097
>тесты на мапперы

Подключаешь Automapper
@
А ты и не знал, что надо писать тесты на маппинги
Аноним 12/06/25 Чтв 19:26:02 3475143 32
>>3475119
>За бугром дотнет умер.

кек
Аноним 12/06/25 Чтв 19:59:45 3475156 33
>>3475119
>В гейдеве традиционно низкие зп
База. В гейдеве найти норм зп это как в лотерею выйграть. В ентерпрайзе в 10 раз легче.

>За бугром дотнет умер.
База x2. Зряплаты на уровене таксистов уже давно.
Аноним 13/06/25 Птн 01:34:12 3475315 34
Аноним 13/06/25 Птн 04:57:45 3475347 35
>>3475141
За автомаппер пиздить надо.
Аноним 13/06/25 Птн 04:59:03 3475348 36
>>3475133
Ну хуй знает, с чем ты там сравниваешь. Я уже почти десять лет работаю за бугром в нормальных компаниях.
Аноним 13/06/25 Птн 09:20:17 3475375 37
>>3475347

Да. Одно только включение автомаппера в код добавляет сомнений и тряски над каждым свойством

А что если это свойство используется неявно...
А что если это свойство НЕ ИСПОЛЬЗУЕТСЯ неявно, но это так и должно быть...

Особенно какая-нибудь ебень, когда автомаппер встроен в дженериковый метод, типо "GetEntityById". Это вообще пиздец, можно сразу вешаться
Аноним 13/06/25 Птн 09:57:25 3475389 38
>>3475375
Именно. Я с ним писал и до сих пор жалею.
Экономия кода не стоит того.
Аноним 13/06/25 Птн 13:09:28 3475456 39
image.png 312Кб, 1266x433
1266x433
Усатый давно уже доказал, что автомаппер говно.
Аноним 13/06/25 Птн 15:43:20 3475505 40
image.png 823Кб, 1000x666
1000x666
Анон, подскажи. Вкатываюсь в ойти, выбрал c#. Посмотрел по требованиям в среднестатистической вакансии (пока что фронт), помимо самого с# нужно знать .net, asp.net и sql. Есть ли разница, в каком порядке их изучать, и есть ли вообще "программа минимум", чтобы хотя бы на стажировку залететь самоучке без бумажке?
про необходимость накрутки стажа осведомлен

И дополнительный вопрос. У большей части просмотренных вакансий есть пункт "знание реакта - большой плюс", или что-то такое. Нахуя им нужно мое знание джавы, если вакансия для шарписта? Мне ее действительно нужно хотя бы до базового уровня довести будет, или можно забить на первых порах?

Заранее спасибо
Аноним 13/06/25 Птн 16:10:54 3475515 41
>>3475456
>>3475375
Т.е. ваш говномаппер в рантайме через рефлексию поля сетает, лол? Какое свойство, перодля? У вас нет проверки на этапе компиляции, что есть маппинг из сорса в таргет? Вы идиоты?)))))
Аноним 13/06/25 Птн 16:35:06 3475523 42
>>3475515
>Вы идиоты?
Да, использующие автомаппер - идиоты.
Тем более он стал платным...
Аноним 13/06/25 Птн 16:56:14 3475527 43
>>3475505
>чтобы хотя бы на стажировку залететь самоучке без бумажке

Да нахуй ты нужен? Ну ты, конечно, можешь попробовать прикоснуться к прекрасному, но я бы нахуй послал разгребать пейфон и джаваскрипты
Аноним 13/06/25 Птн 17:02:53 3475528 44
G031WJYjo.jpg 60Кб, 320x320
320x320
>>3475515
>Т.е. ваш говномаппер в рантайме через рефлексию поля сетает, лол

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

Всё работает само и бесплатно, а тебе только остаётся зарегистрировать маппинг один раз при старте проекта.
Аноним 13/06/25 Птн 17:10:32 3475535 45
>>3475528
>в рантайме через рефлексию
>бесплатно
>один раз при старте проекта
хорошо, что вас, мерзких гандонов, не пускают на нормальные проекты. сидите дальше црмки пилите, уроды
Аноним 13/06/25 Птн 17:54:20 3475577 46
>>3475505
>выбрал c#.
Беги пока еще не поздно, свичься в джависты и живи нормально с освоеным спрингом, жрать везде найдешь (кроме геймдева, но там впринципе жрать нехуй)
>Нахуя им нужно мое знание джавы, если вакансия для шарписта?
Потому что ищут фуллстеков за 3 рубля и хотят натравить тебя на то что паджиты не доели, ибо недурные. По делу - забей на рекакт и просто освой js, он простой и тебе хватит, а все их местные фреймворки подтянешь там где возьмут. Максимум доку прогляни чтобы с умным видом что-то проквакать на собесе
Аноним 13/06/25 Птн 18:13:36 3475581 47
>>3475577
>спрингом

И ебись с десятилетними DDD агрегатами и AOP в XML. Java стек собрал всех ёбнутых долбоёбов, там до сих пор этой хуйнёй занимаются
Аноним 13/06/25 Птн 18:15:25 3475582 48
>>3475577
>Беги пока еще не поздно, свичься в джависты
Я бы в бэк хотел уйти, после того, как хотя бы минимально в профессии освоюсь. Красить кнопки как-то мех, учитывая, что я не дегенерат.

>По делу - забей на рекакт и просто освой js, он простой и тебе хватит, а все их местные фреймворки подтянешь там где возьмут.
Хорошо, спасибо.
Аноним 13/06/25 Птн 18:16:34 3475583 49
>>3475581
Лучше ебаться с этой хуйней за нормальную зепку чем с голоду помереть
Аноним 13/06/25 Птн 18:19:07 3475584 50
>>3475582
Ты java с javascript часом не путаешь? Языки то разные и области тоже. Бежать я советовал в java а не js
Аноним 13/06/25 Птн 18:35:43 3475587 51
>>3475584
Не понял из сообщения прошлого.

А в чем разница между шарпом и джавой? Бэк же и на том, и на том пишется, и с вакансиями проблем нет особых, судя по хедхантеру.
Аноним 13/06/25 Птн 20:04:53 3475636 52
>>3475587
>А в чем разница между шарпом и джавой? Бэк же и на том, и на том пишется, и с вакансиями проблем нет особых, судя по хедхантеру.

java это ёбаный всеми трижды обоссаный спринг, разгребание XML, DDD, паттерны, ГОФ и хуй знает как собранный проект из кусков байткода 2008 года

c# это современный язык общего назначения и более адекватное сообщество разработчиков, приятная система пакетов в нугете и хайлоад.
Аноним 13/06/25 Птн 20:16:28 3475642 53
>>3475636
>C# - это чистить говно за паджитами в аутстаф галере с хохлами
Поправил тебя.
Аноним 13/06/25 Птн 20:43:01 3475664 54
>>3475071
>а вот у джавистов
А вот у джавистов ничего из перечисленного нет.

> У дотнета лицензия то посвободней будет чем у наших дорогих друзей
А? Куда свободнее GPL?

>>3475047
Не говорите ему что львиная доля стдлиба только для шинды.
Аноним 13/06/25 Птн 20:48:28 3475668 55
>>3475664
>доля стдлиба только для шинды
Какая еще стдлиба в шарпе? Ты тредом ошибся.
Аноним 13/06/25 Птн 20:49:23 3475671 56
>>3475668
Долбоёб, стдлиба это не обязательно плюсовая стдлиба. Это просто любая стандартная библиотека.
Аноним 13/06/25 Птн 21:01:35 3475677 57
>>3475671
Ну окей, давай покажи какая "львиная" доля System до сих пор прибита к винде и не работает на линуксе.
Аноним 13/06/25 Птн 21:38:24 3475700 58
>>3475664
>А вот у джавистов ничего из перечисленного нет.
Включая гетсеты которые они генерируют руками лобком

>А? Куда свободнее GPL?
Ну например отсутствие требования на публикацию сырцов форка, уже сильно свободнее
>Не говорите ему что львиная доля стдлиба только для шинды.
Платформозависимый код заключается в следующем:
Сокеты
Треды и локи
Файловая система
Консоль и дескрипторы окон
Импорт библиотек
Все работает из коробки под всеми заявленными платформами кроме потоков на вебассембли, хз о чем речь.
Аноним 13/06/25 Птн 21:56:44 3475711 59
>>3475700
> Включая гетсеты которые они генерируют руками лобком
Так трясёт, потому что ИТТ свиньям не дали такого же и надо ручками натыкивать?

> требование не ограничивать выданные свободы
Так куда свободнее GPL?

> Платформозависимый код заключается в следующем:
> Сокеты
> Треды и локи
> Файловая система
> Консоль и дескрипторы окон
> Импорт библиотек
> Все работает из коробки под всеми заявленными платформами кроме потоков на вебассембли, хз о чем речь.
Что сказать-то хотел? Лишь бы высрать тебе что-ли?
Аноним 13/06/25 Птн 22:58:11 3475729 60
>>3475711
>Так куда свободнее GPL?
Ты жопой читаешь? Сравни степень разрешительности MIT (под которой дотнет) и GPL
>Что сказать-то хотел? Лишь бы высрать тебе что-ли
Да просто думал с человеком а не с дебилом разговариваю который не знает как обеспечивается кроссплатформа и какие ньюансы у нее, my bad
Аноним 13/06/25 Птн 23:12:24 3475732 61
>>3475711
>Так трясёт, потому что ИТТ свиньям не дали такого же и надо ручками натыкивать?
Та как будто это единственная проблема жабы. Она просто самая ощутимая после шарпов, к хорошему увы привыкаешь быстро. А вот условные деревья выражений, методы расширения и еще масса мелких но приятных фич, включая unsafe может и не пользуется большим спросом, но после вольностей шарпа такое ощущение будто сел писать на визуалбейсике который почему-то похож на шарп и даже если хочется порой чего-то эдакого то сразу думаешь что ну его впизду, и так сойдет и так будет работать
Аноним 14/06/25 Суб 01:48:18 3475770 62
>>3475732
Зачем тебе деревья выражений? Чтобы что? Я сильно сомневаюсь, что ты занимаешься статическим анализом, с вероятностью 102% ты пукаешь джейсоном в автомапер.
Аноним 14/06/25 Суб 03:22:52 3475790 63
>>3475729
>Сравни степень разрешительности MIT
Сравниваю:
GPL - код открыт
MIT - спиздил и закрыл код
Итого:
GPL - степень разрешительности 100%
MIT - степень разрешительности 0%
Аноним 14/06/25 Суб 06:12:58 3475810 64
>>3475671
>Не говорите ему что львиная доля стдлиба только для шинды.

Какая стдлиба?

Расскажи мне, какую львиную долю могу написать "только для шинды"?
Аноним 14/06/25 Суб 06:29:17 3475812 65
>>3475770
чтобы генерировать SQL запросы автомаппером, очевидно же.

И похуй, что так делают только долбоёбы, но в java коде такого ещё 10 лет не будет.

Зато есть Spring, уюбищный бесконечный монолит, где всё встроено и работает хуй знает как, и на изучение котороно необходимо тратить МЕСЯЦЫ. Даже всеми трижды отхуесошенного медиатра как отдельной библиотеки в спринге нет, надо колдовать с XML, аннотациями спринга и прочей хуйнёй.

Большинство актуальных java проектов сейчас работает на спринге 2-3 версий, с JAVA десяти-15 летней давности, потому что обновлять что-то нереально.

А там даже VAR нет

Кто сравнивает java с дотнетом - у него 78 IQ уровня хoxoл. Объективно java сейчас только на легаси проектах осталась
Аноним 14/06/25 Суб 06:45:54 3475814 66
>>3475770
Чтобы писать рантайм генерацию кода и при этом быть в аот. Например, для своего очень быстрого бинарного сериализатора. Я ж говорю, фича популярностью не пользуется, но это не значит что ее никто не использует в тех же клонах автомаппера, которые имеют скорость х0.5 от нативного маппинга. А не было бы ее - осталась бы только генерация исходников перед компиляцией либо рефлексия с падением производительности в порядок.
Аноним 14/06/25 Суб 06:48:12 3475815 67
images(1).jpg 4Кб, 228x221
228x221
Аноним 14/06/25 Суб 07:17:17 3475822 68
>>3475814
> которые имеют скорость х0.5 от нативного маппинга

К слову, всем похуй на это наносекундное дрочево.

Но то, что экспрешшены автомаппера могут компилироваться до МИНУТЫ на старте приложения - вот эта хуйня бесит.

Ты хочешь поотлаживать коды, а они после конпеляции конпелируются
Аноним 14/06/25 Суб 07:21:33 3475824 69
>>3475812
Тем не менее, на джаве зарплаты выше, а работа будет и через 20 лет. На модном крутом сишарпе все вакансии - это чистка говна в аутстафе с хохлами за три копейки.
Аноним 14/06/25 Суб 07:29:41 3475826 70
>>3475824
>Тем не менее, на джаве зарплаты выше

Ну посмотри на отношение количества вакансий к зарплатам.

Увидишь те самые протухшие галеры на втором спринге, где если человека не удержать - всё ёбнется к хуям
Аноним 14/06/25 Суб 08:12:58 3475830 71
Есть ли причины в современном коде использовать оператор NEW? Помогите разобраться
Аноним 14/06/25 Суб 08:31:32 3475837 72
>>3475830
Есть ли причины спрашивать это чаще, чем new используется? Помогите разобраться.
Аноним 14/06/25 Суб 08:37:35 3475839 73
Моча, пожалуйста забаньте уже этих шизиков.
Аноним 14/06/25 Суб 14:51:08 3475941 74
Тред закрепят когда-нибудь? Вы нахуя его перекатили?
Аноним 14/06/25 Суб 16:50:22 3475989 75
>>3475941
Да я ебу как это делается?
Аноним 14/06/25 Суб 17:13:37 3476000 76
>>3475830
Выше есть примеры кода, где без new миллионы аллокаций, а с new - единственная аллокация.
Аноним 14/06/25 Суб 19:01:40 3476052 77
>>3476000
>Выше есть примеры кода, где без new миллионы аллокаций, а с new - единственная аллокация.

Экспрешшен один раз предкомпилируется и будет экономить тебе память. New будет выделять память столько раз, сколько его вызовешь.

Ты бы хоть для вида рихтера почитал
Аноним 14/06/25 Суб 19:09:58 3476054 78
>>3476052
Ты уже вытекаешь из треда.
Аноним 15/06/25 Вск 01:17:43 3476255 79
>>3475505
>Вкатываюсь в ойти, выбрал c#.
Если любишь Россииюшку и планируешь в ней жить лучше уж 1с учить. Также профитно, а конкуренции меньше.

А если ты хочешь на западного барина работать то забей. Бешеная конкуренция с паджитами, которые за косарь бачей в очередь станановятся. По удаленке, 40$ это потолок для лидов. К тому времени когда ты до этого грейда доберешься через 10-15 лет код уже никто писать не будет. И умение писать код будет как умение паять схемы сейчас, т.е. прикольно, но нахуй никому не всралось. Готовые оттестированные модули будут писать нейронки, а другие нейросети, под присмотром паджита сеньера будут их как лего собирать, и вываливать в энтерпрайз.

Вообще не советую сейчас в любое кодописательство вкатываться. Это гиблое дело.
Аноним 15/06/25 Вск 01:48:40 3476268 80
>>3475515
Там скорее всего рефлексия на этапе инициализации, и в её время динамически генерируется код самого маппинга.
Судя по скорости рефлексия в тайнимаппер (сука, тайни наоборот должен быть самым быстрым).
При этом маппинг никогда не является бутылочным горлышком, поэтому будь он даже в 10 раз медленнее, это было бы в рамках погрешности всего приложения.
Мы не любим автомаппер за то, что то, что там происходит, слишком неявное. Тебе IDE может показывать, что какое-то свойство не используется, а на самом деле это не так. И из-за этого может быть просто невероятно сложно отследить поток данных.
Аноним 15/06/25 Вск 05:29:34 3476289 81
>>3476268
>Мы не любим автомаппер за то, что то, что там происходит, слишком неявное
Хуй знает, я не вникаю в ваши говнопроблемы. Нормальные библиотеки для маппинга еще на этапе компиляции кода генерируют все мапперы и фейлятся, если ты проебал сорс-дестинейшн и еще 100500 гардов, чтобы не обосраться в рантайме. А ваша хуитка от Жимми Богурда только в рантайме начинает чето там разбирать через рефлекшн и пытается смапить классы дэтэох и моделек, лол
Аноним 15/06/25 Вск 06:57:18 3476292 82
16483033561-kar[...].jpg 125Кб, 1400x1070
1400x1070
>>3476289
>Нормальные библиотеки для маппинга

Какие нормальные библиотеки? Сами себе проблем насоздают и потом героически их решают.

Подключаешь медиатр и внезапно тебе нельзя использовать входящее DTO в обработчике команды. Нужно его обязательно замаппить на реквест потому что вызывать методы напрямую ты себе запретил.

И не дай боже вызвать медиатр из медиатра. Тогда всё повторяется и получается ёбаная матрёшка:

dto в контроллере -> автомаппер -> команда -> обработчик команды -> маппинг в другую команду -> другая команда -> маппинг результата другой команды -> основная команда -> контроллер -> маппинг результата команды.

И где-то между этими слоями прячется логика. И в автомаппер переезжает половина логики обработки данных.

Надо быть долбоёбом с окраины с IQ 78, чтобы тушить проблему лишних слоёв автомаппером.

Пиздец, столько простых проектов загубили. Ёбаная архитектурная боггартянка. Превратили обычные круд-репозитории в зубодробительное говно
Аноним 15/06/25 Вск 10:41:08 3476319 83
>>3476292
Не подключаешь медиатр.
@
Не пытаешься эмулировать сеть внутри локального процесса, какой долбоеб это придумал, а просто напрямую вызываешь методы.
@
Никакого бугурта.
Аноним 17/06/25 Втр 18:58:38 3477961 84
>>3476289
Это тоже хуита, потому что до генерации у тебя получается несобираемый код и красные подчёркивания в студии.
Аноним 17/06/25 Втр 19:08:49 3477968 85
>>3476319
Прикол в том, что у тебя несколько слоёв абстракции. И нельзя между ними всеми прокидывать один и тот же объект, потому что где-то надо ты поменять, какие-то данные спрятать и т.д.
При этом 90% свойств перекочёвывают без изменений. И тут возникает желание, вместо того, чтобы писать конверторы ручками, взять автомаппер и написать правила типа это свойство игнорировать, это конвертировать таким кодом, а все остальные просто скопировать.
Но на практике это создаёт кучу проблем.
Я вообще один раз засунул веб-реквест в маппинг. Потом посмотрел на это и ужаснулся. Но переписывать не стал. С тех пор в новые места маппинг не добавляю.
Аноним 17/06/25 Втр 22:31:03 3478122 86
>>3477968
>Прикол в том, что у тебя несколько слоёв абстракции.

медиатор не используй и не будет лишних слоёв абстракции. Автомаппер сам рассосётся.

Это ловушка такая, через неё проходили все в 2016-2018 годах. Называется архитекрурная боггартянка. Подключаешь медиатр - и его нужно тушить автомаппером. Зато код дохуя "крутой" и "правильный".

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

Ну не надо наших ошибок повторять
Аноним 17/06/25 Втр 23:05:14 3478135 87
>>3477968
У тебя ровно три слоя: контроллер, бизнес логика и дата лэйер. Все. Перекладывание происходит в трех местах: IDataReader -> DTO, Request -> DTO, DTO -> Response. Первое делается автоматически дапером. Второе и третье - это одна строка result.UserName = model.UserName и у тебя работает вся навигация по коду. Автомапер не нужен.
Аноним 18/06/25 Срд 01:43:55 3478205 88
>>3478135
>У тебя ровно три слоя: контроллер, бизнес логика и дата лэйер. Все. Перекладывание происходит в трех местах: IDataReader -> DTO, Request -> DTO, DTO -> Response. Первое делается автоматически дапером. Второе и третье - это одна строка result.UserName = model.UserName и у тебя работает вся навигация по коду. Автомапер не нужен.
Ты какой-то хелловорлд описал.
Между дл и бл и между бл и контроллером должны быть разные типы. В бизнес-логике объект может собираться из нескольких, например. В веб-респонсе тоже может быть свой формат из-за специфики http.
Аноним 18/06/25 Срд 03:08:03 3478218 89
>>3478205
Ты описал паджитский говнокод уровня епам. Посмотри, как пишут охуительно быстрые сервисы на расте и голанге, там нет никаких 100500 слоев мапинга над мапингом. Одна ручка - один запрос в бд - одна дто - ебейший рпс. Да, код строится вокруг бд, потому что бд - это сердце системы и самое медленное звено. В дотнете же разработчики деградировали и разучились писать простые и эффективные программы, у всех ддд головного мозга.
Аноним 18/06/25 Срд 05:12:14 3478234 90
>>3478218
>Одна ручка - один запрос в бд - одна дто - ебейший рпс
Как на примере создания заявки я должен обойтись одним дто? При создании заявки не указывается id сущности, например, т.к. он создается в момент сохранения энтити в бд. При создании заявки, пользователю нужно отдать дто где будет id сущности. Т.е. одним дто уже не обойтись. И это первое что пришло в голову. Да и смешно слушать про какие-то там сервисы на гоу и расте где элементарно зависимости подтягиваются через таги на артифакты в гитхабе, лол
Аноним 18/06/25 Срд 05:48:20 3478237 91
>>3478234
>При создании заявки, пользователю нужно отдать дто где будет id сущности.
То есть, ты не понимаешь, как работает sql. Ты настоящий дотнет разработчик, миллионы паджитов гордятся тобой.
Аноним 18/06/25 Срд 11:25:43 3478389 92
>>3478237
Хеллоухер обосрался с программированием, перешел на личности.
Аноним 18/06/25 Срд 12:11:04 3478419 93
>>3478389
Дурачок, ты не знаешь, как вставить данные и вернуть ID новой записи за один поход в бд? Туда ли ты зашел?
Аноним 18/06/25 Срд 12:36:25 3478436 94
>>3478419
Ну, а возвращать клиенту ты что собираешься? Прямо энтитю, которую достал из бд?
Аноним 18/06/25 Срд 14:01:57 3478498 95
>>3478436
Верну джейсон какой надо. Из бд я достаю не энтити и не объекты, я достаю датасет какой мне нужен здесь и сейчас. У каждой ручки свой.
Кстати, в EF Core паджиты добавили projections когда поняли, насколько обосрались с перфомансом.
Аноним 18/06/25 Срд 16:17:51 3478655 96
>>3478498
Ну так твой датасет - это и есть результат мапинга энтити на какое-либо ДТО (которое кстати объект)
Аноним 18/06/25 Срд 20:26:51 3478939 97
>>3478498
У тебя так получится хуева туча дублирующейся логики, которую потом заебёшься поддерживать при каких-то изменениях.
Аноним 18/06/25 Срд 23:26:38 3479079 98
>>3478939
Логика написана в сервисах, которые принимают интерфейсы дтошек. Будет какой-нибудь OrderService.Checkout(IOrderDTO), а данные в IOrderDTO каждый раз берутся из разных запросов в бд. Интерфейсы можно миксовать как угодно и у тебя все еще работает навигация по коду, в отличие от автомапера ебаного.
Дело в том, что рич ООП хорошо работает на локальной машине и плохо в сети. Для ситуаций, где класс Button наследуется от Control и перегружает виртуальный метод Draw, рич заебись. Когда твои данные лежат на другой машине, их надо каждый раз загружать, а поход по сети занимает дольше, чем обработка - лучше подходит анемик.
Аноним 19/06/25 Чтв 04:17:58 3479143 99
>>3479079
Где у тебя тут сервис?
У тебя наоборот получается куча логики то ли в квери, то ли, прости господи, в хранимках.
>>3478218
Аноним 19/06/25 Чтв 06:02:24 3479145 100
>>3478205
>Ты какой-то хелловорлд описал.

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

>В бизнес-логике объект может собираться из нескольких, например.

Согласен, автомаппер это лучшее средство, чтобы собрать из нескольких объектов третий.

Просто надо вызвать его несколько раз и в профиле последовательно описать, какие свойства из какого источника брать, а какие заигнорить

> веб-респонсе тоже может быть свой формат из-за специфики http.

Согласен. Автомаппер позволяет лаконично и без запахов кода сконвертировать один объект в другой.
Аноним 19/06/25 Чтв 06:08:36 3479146 101
>>3478237
>То есть, ты не понимаешь, как работает sql. Ты настоящий дотнет разработчик, миллионы паджитов гордятся тобой.

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

Но маппинг всё равно лучше руками написать. Модель БД и dto запрос начинает расходиться моментально
Аноним 19/06/25 Чтв 06:13:29 3479147 102
>>3478498
>Кстати, в EF Core паджиты добавили projections когда поняли

проекции были ещё в старом ентити фреймворке, задолго до появления ef core
Аноним 19/06/25 Чтв 06:48:44 3479151 103
>>3479079
>интерфейсы дтошек

понапишут своего долбоёбского ООП с интерфейсами на дтошках, а могли бы просто автомапер взять, и всё бы работало САМО, и кода в 10-20 раз меньше
Аноним 19/06/25 Чтв 07:16:15 3479157 104
>>3479143
Что для тебя логика? А то так можно дойти до безумия, когда джойны тоже логика.
Аноним 19/06/25 Чтв 07:25:39 3479159 105
>>3479146
У фронта две модели. Входящий джейсон - это request, исходящий - response. В сервисах модель называется DTO. В репозитори - это параметры хранимок и голый датасет, который приезжает из базы. Получил в контроллере джейсон - переложил руками в дто - что-то сделал в сервисе - передал дто в репозиторий - там внутри переложил из полей дто в параметры - вызвал хранимку - получил датасет - отмапил дапером на другое дто - вернул сервису - сервис вернул в контроллер - в контроллере руками переложил в джейсон и отдал наружу. Что писать код для перекладывания, что писать конфиг для автомапера - один хуй надо писать, только в коде работает навигация.
Аноним 19/06/25 Чтв 10:09:02 3479222 106
>>3479159
>это параметры хранимок
> вызвал хранимку
Да вы, сударь, говноед.
Аноним 19/06/25 Чтв 10:44:01 3479258 107
>>3479159
А мог просто взять автомаппер, он бы за тебя всё замаппил сам, и запросы сформировал какие нужно. ч

Или тебе нравится писать все эти перекладывания в сто слоёв? Я хуй знает, зачем вы вообще код пишете, если достаточно медиатром вызвать маппинг по хранимке... и всё.
Аноним 19/06/25 Чтв 16:45:13 3479651 108
>>3479222
О, вы из епама!
Удачи разбираться с дедлоками, когда твой sql сгенерирован через соплю IQueryable.
Аноним 19/06/25 Чтв 18:13:46 3479731 109
>>3479651
>О, вы из епама!
Нет. Но мои знакомые оттуда, тоже в рот ебали хранимки.

>Удачи разбираться с дедлоками
Удачи тебе с отладкой всего твоего хранимого говна.
Аноним 19/06/25 Чтв 19:04:11 3479757 110
В бушующем мире дерьма, я нашёл островок спокойствия - этот тред. Захожу сюда периодически, вижу упоминания автомаппера и медиатра и моя душа успокаивается. Пока есть на свете дебилы, использующие их, я буду цениться как специалист.
Аноним 19/06/25 Чтв 19:58:46 3479797 111
>>3479731
Ты и твои друзья с аутстаф галер даже не понимаете суть проблемы. Ваш уровень - разгребать говно за индусами.
Аноним 19/06/25 Чтв 22:15:47 3479912 112
>>3479757
>, я буду цениться как специалист.
нахуй ты нужен, если тебя заменяет одна библиотека?
Аноним 20/06/25 Птн 03:27:58 3479971 113
>>3479757
Хорошо, что подобных любителей писать свои конвертеры на дтошки и потом это говно покрывать тестами мы увольняем пачками))))
Аноним 20/06/25 Птн 06:14:25 3479995 114
>>3475677
>>3475810
Всё гуйное.

АЛЁ, ШАРПРОПРОЕБАНЫ, КАКОГО ВАМ ОСОЗНАВАТЬ ЧТО ВАША ХУЙНЯ В СУХУЮ ПРОЕБАЛА ДЖАВЕ В КОНКУРСЕ ПОГОДНЫХ СТАНЦИЙ?
Аноним 20/06/25 Птн 06:16:42 3479996 115
>>3475732
Какая ещё проблема джавы? Это такой хитрый ход отвечать "в джаве ещё проблемы есть" на "вот тут твоя шарпохуита сосёт по гланды"?
Аноним 20/06/25 Птн 06:17:21 3479997 116
Аноним 20/06/25 Птн 09:58:12 3480063 117
>>3479971

Дежурно напоминаю, что автомаппером пользуются застрявшие в 2016 году пивные сиськи.

Да и хуй с ними
Аноним 20/06/25 Птн 10:04:44 3480068 118
>>3479996
>Какая ещё проблема джавы

необновляемый спринг десятилетней давности из xml перемешанного с худшими практиками DDD и AOP ? Который вдобавок хуй пойми как собирать?
Аноним 20/06/25 Птн 10:08:59 3480070 119
>>3479997
Клоун, ты опять выходишь на связь?
Аноним 20/06/25 Птн 10:09:25 3480071 120
>>3475456
А есть ссылка на сорс ?
Аноним 20/06/25 Птн 10:29:44 3480079 121
>>3479995
Нам похуй. Тебе уже кидали бенчмарки в прошлом треде где твоя джава брала с заглотом, кроме деревянных бенчмарков давящих на LOH, но даже в них разница максимум двухкратная. Небольшая цена за удобный для работы язык.
Аноним 20/06/25 Птн 10:49:56 3480089 122
Аноним 20/06/25 Птн 11:06:52 3480106 123
Аноним 20/06/25 Птн 11:44:22 3480137 124
>>3480068
В чем проблема обновить спринг? xml остался в начале нулевых. Про какие "худшие практики DDD и AOP" ты говоришь? С худшими практиками можно и на сисярпе писать, если проекты на нем будут, лол
Аноним 20/06/25 Птн 18:02:19 3480466 125
Аноним 20/06/25 Птн 18:02:45 3480467 126
Аноним 20/06/25 Птн 18:04:00 3480468 127
>>3480079
Чё? Где? Во всех бенчмарках кроме каких-то беспруфных на непонятных ии-сайтах джава ебёт.

>небольшая цена за удобный для работы язык
Отдельно с этого проиграл. Удобство это гет сет кококо?
Аноним 20/06/25 Птн 18:37:53 3480481 128
>>3480467
Клоун, твое клоуничанье не поможет убрать говно в твоих трусах
>>3480468
https://programming-language-benchmarks.vercel.app/csharp-vs-java
>Удобство это гет сет кококо?
Так у тебя и этого нет, терпила) Не говоря про методы расширения, про нормальный ансейф и рантайм кодогенерацию, нету span<t> и структур под них. И это при том что чтобы начать юзать спринг нужно занести в кассу жижбрейну или качать крякнутые иде, иначе разрабатывать это говно ебаное нереально, поддержка сторонних иде нулевая, при том что комьюнити визуалка поддерживает всё кроме деплоя на азуру. И вообще вся инфраструктура языка похожа на парад костылей который без платной иде собрать нереально, ну это ладно, вкусовщина.
Аноним 20/06/25 Птн 20:40:43 3480516 129
>>3480481
> Клоун, твое клоуничанье не поможет убрать говно в твоих трусах
Терпи, говнопис.

>vercel.app
https://www.techempower.com/benchmarks/
Что, уже щёчки от злости надулись? :)

> про нормальный ансейф
Не можешь себе представить жить без ассемблероподобного пердолинга, ведь в петушарпе высокоуровневых и быстрых инструментов просто не завезли? Да и нормальный он, лол.

> рантайм кодогенерацию
Чаво? Лучшая среди всех языков.

> И это при том что чтобы начать юзать спринг нужно занести в кассу жижбрейну или качать крякнутые иде
Спринг != джава во-первых, во-вторых миллион у тебя срыг плагинов для любых иде на любой вкус, не знаю, что за хуйню ты несёшь, для вс кода есть, для эклипса, для чего угодно, для комьюнити жидеи даже.

> методы расширения
А в петушарпе они что-ли есть?

А теперь готовься реветь:

Огромная экосистема. Это включает в себя:
Возможность выбора наилучшего, подходящего под твою задачу между несколькими инструментами, выполняющих похожие задачи
Maven. Системы сборки подобной стабильности, удобства, качества, нет ни в одном другом языке. Новые версии Gradle тоже могли бы выглядеть как сносные системы сборки, тоже надирающих задницы системам сборки в других языках, но, увы, Gradle не умеет не ломать обратную совместимость и не внедряться в кишки JVM, из-за чего постоянно приходиться И обновлять Gradle, чтобы использовать новую Java, И бороться с поломками обратной совместимости.
Инструментарий для генерации бойлерплейт кода при компиляции, по сути расширяющий синтаксис Java. Это включает в себя Lombok и Manifold, откуда мы можем взять такие вещи как генерацию конструкторов, акцессоров, делегатов, перегрузку операторов и другое.
JVM. JVM является невероятно умной системой, поддерживающей самые разные языки программирования, как дающих гарантии (например, Rust), так и не дающих гарантии и требующих вмешательства со стороны рантайма (Java) с высокой производительностью. В JVM есть огромное количество сборщиков мусора на выбор, есть умный JIT, позволяющий делать оптимизации, а также мы ожидаем Project Valhalla, который должен позволить ещё сильнее оптимизировать работу кода.
Java имеет приятный, OG синтаксис из времён начала программирования человекочитаемыми конструкциями, грациозно расширяемый каждые полгода и поддерживаемый в современном состоянии.
Кроссплатформенность.
Обратная совместимость.
Джава является единственным языком, который на самом деле поддерживает многопоточность. Во всех остальных языках многопоточность является огромной бойлерплейтной болью, а гарантии через спецификацию являются рудиментарными, о которых никто не знает. Доходит до того, что пособия по многопоточности в Java являются отличным вариантом для изучения многопоточности в большинстве других языков.
Java поддерживает платформенную многопоточность. Некоторые языки пошли по пути исполнения кода глобально effectively в одном потоке. Таким образом, они избавились от части недостатков многопоточности (низкоуровневых багов), ценой отказа от увеличения производительности за счёт нескольких ядер процессора, оставив многопоточность для тех случаев, когда она нужна не для увеличения производительности, а для реализации непосредственной логики. Java даёт возможность пользоваться всеми ресурсами машины.
В Java есть огромнейший инструментарий для организации многопоточного flow, что регулярно расширяется с новыми обновлениями. Он настолько всеобъемлющий, что, например, на одном из классов Java были основаны все корутины в Kotlin поначалу (ForkJoinPool).
В Java есть полноценная теория о многопоточности, что позволяет подходить к построению многопоточных приложений с научной точки зрения. В основном, это представлено книгой Java Concurrency in Practice. Если не понимать всей сложности темы и просто забить хуй на неё, то очень скоро столкнёшься с непонятными проблемами вызывающими сомнения в реальности происходящего, поэтому без теории не может быть никакого многопоточного программирования, а в Java теория есть.
В Java присутствует решение проблемы тяжеловесности потоков общего назначения без всех минусов корутин, таких как замедление кода в 11 раз или загрязнение кодовой базы async/await/suspend приводящими к дублированию методов.
Preview процесс в разработке Java, благодаря которому каждая новая фича языка выпускается наивысшего качества.
Аноним 20/06/25 Птн 21:02:57 3480527 130
>>3480516
>в джаве есть это
>в джаве есть то
Так нахуя ты в этом треде-то пасешься, если в твоей джаве так все охуенно?
Аноним 20/06/25 Птн 21:09:27 3480530 131
>>3480527
Эффект Винни Пуха. Необдуманно оставить начальный говнопост легко, а прекратить спор значит слиться.
Аноним 20/06/25 Птн 21:32:50 3480540 132
>https://www.techempower.com/benchmarks/
сурс бенчей где? Я ебу что этот паджит там накорябал и выдал за perfomance comparsion. В моей ссылке сурс есть и там по http дела у жавы не очень и сурс есть.

>А в петушарпе они что-ли есть?
Есть, и очень, очень давно. И в нем еще очень много чего есть, советую ознакомиться.

>Чаво? Лучшая среди всех языков.
С каких пор написание ручного генератора java файлов на основе рефлексии стало рантайм кодогенерацией? Про деревья выражений слышал?

>Спринг != джава во-первых, во-вторых миллион у тебя срыг плагинов для любых иде на любой вкус, не знаю, что за хуйню ты несёшь, для вс кода есть, для эклипса, для чего угодно, для комьюнити жидеи даже.

Пиздаболище, я их тыкал вот буквально на днях. Единственное что не похоже на говно это amplicode, за бабки, остальное неюзабельный кал. А без спринга джава впринципе не нужна, обычный недошарп. По мнению самих же джавистов эклипсы хуипсы это все неюзабельное говно и если надо работать - меньше чем энтерпрайзом жижбрейнса не обойтись.

>Да и нормальный он, лол.
Нормальный != отсутствующий, пиздабол.


>В Java есть огромнейший инструментарий для организации многопоточного flow
Я могу сказать какого инструмента для организации многопоточного flow у джавы нет. И у шарпа нет. Это коллекции позволяющие производить блокировку по каждой отдельной записи на чтение и монопольно на запись, не блокируя всю коллекцию, так как это делают базы данных. Приходится в итоге велосипедить. Остальное это так, пыль в глаза, еще один способ стрелять себе в ногу по новому. Корутины, асинки, потоки, а нормального решения для параллелизации работы с крупным набором данных нет, сами подгатывайте мультипоточный флоу чтобы не нарваться на гонку или на дедлок, епта.

Пасту уноси, конкретики ноль, кейсов ноль, джава все ещк недоязык.
Аноним 20/06/25 Птн 21:37:10 3480545 133
>>3480540
> сурс бенчей где? Я ебу что этот паджит там накорябал и выдал за perfomance comparsion. В моей ссылке сурс есть и там по http дела у жавы не очень и сурс есть.
Далбаёб, 5 секунд поиска по странице. https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Project-Information-Framework-Tests-Overview

> Есть! Пруфов небудет.
Ясн.

> С каких пор написание ручного генератора java файлов на основе рефлексии стало рантайм кодогенерацией? Про деревья выражений слышал?
Чего? Ты откуда это взял вообще? Опыт петушарпа проецируешь?

> Пиздаболище, я их тыкал вот буквально на днях.
Поищи проблемы в межплечевом прыще.

> Нормальный != отсутствующий, пиздабол.
Сам-то понял, что высрал?

> Пасту уноси, конкретики ноль, кейсов ноль, джава все ещк недоязык.
Слив принят, опущенец.
Аноним 20/06/25 Птн 21:54:22 3480551 134
>>3480545
С телефона видно не очень. Замерить бы всё что он юзает, но мне в целом похуй, тебя даже если в его паджитизм носом ткнуть ты ж все равно будешь в тред срать дальше.
>Ясн
Яндекс не используешь по религиозным причинам?

>Чего? Ты откуда это взял вообще? Опыт петушарпа проецируешь?
Из гугления. Но тебе ничего не мешает притащить пруфы, благо это быстрее чем мне проверять что там этот паджит нахуевертил.

>Поищи проблемы в межплечевом прыще.
Я знаю эту проблему, называется привык к нормальному и не знал что значит платить за инструментарий.

>Слив принят
Конкретики всё еще нет, только куча говнокода от паджита который юзает ToList() в бенчмарке вот здесь
https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/CSharp/aspnetcore/src/Minimal/Database/BatchUpdateString.cs
>Enumerable.Range(0, lastIndex).ToList()
Как это делают питонисты, генерируя блять коллекцию вместо for, а это уже показатель.
Аноним 20/06/25 Птн 22:21:10 3480570 135
>>3480551
> С телефона видно не очень. Замерить бы всё что он юзает, но мне в целом похуй, тебя даже если в его паджитизм носом ткнуть ты ж все равно будешь в тред срать дальше.
Слив.

> Яндекс не используешь по религиозным причинам?
Какой ещё яндекс? Причём тут яндекс?

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

> Я знаю эту проблему, называется привык к нормальному и не знал что значит платить за инструментарий.
Давай по кругу, пока не дойдёт:
>во-вторых миллион у тебя срыг плагинов для любых иде на любой вкус, не знаю, что за хуйню ты несёшь, для вс кода есть, для эклипса, для чего угодно, для комьюнити жидеи даже.

> Конкретики всё еще нет
Тебе стена текста конкретики на ебальничек вывалена.

> Конкретики всё еще нет, только куча говнокода от паджита который юзает ToList() в бенчмарке вот здесь
> // Copyright (c) .NET Foundation. All rights reserved.
> // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Ааххахахахахахахаххахахахахаах блядь. Этот дебил только что своего барина закопал.
Аноним 20/06/25 Птн 22:39:25 3480581 136
>>3480570
Дауненок, ты что то кроме стрелочничества знаешь? Я тебе порядочно пруфов принес.
>стена конкретики
>Ровно ноль буковок про технологии, обеспечивающие тот набор хуйни, вываленной взбесившимся паджитом-маркетологом
Шиз, таблетки

>Ааххахахахахахахаххахахахахаах блядь. Этот дебил только что своего барина закопал.
Даун не знает что такое NET Foundation. Обьясняю для тех кто не в курсе что такое поисковик - это продукты существующие в рамках программ поддержки майкрософт, но не являющиеся частью дотнета, что-то типа спринга но от условного стороннего разраба.
Аноним 20/06/25 Птн 22:43:04 3480584 137
>>3480581
> Дауненок, ты что то кроме стрелочничества знаешь? Я тебе порядочно пруфов принес.
> Шиз, таблетки
Слив.

> Даун не знает что такое NET Foundation. Обьясняю для тех кто не в курсе что такое поисковик - это продукты существующие в рамках программ поддержки майкрософт, но не являющиеся частью дотнета, что-то типа спринга но от условного стороннего разраба.
Ну и?
Аноним 20/06/25 Птн 22:45:16 3480586 138
17488857696880.png 149Кб, 720x548
720x548
Аноним 20/06/25 Птн 22:46:01 3480588 139
>>3480586
Ну что, всё, слился, лошок петушарповый безпруфный?
Аноним 20/06/25 Птн 22:46:41 3480591 140
>>3480588
Слился в твою дохлую мамашу
Аноним 20/06/25 Птн 22:47:49 3480594 141
>>3480591
>рррря
Терпи, микрософтозависимая гетсетная шиндонативная тормознутая хуита.
Аноним 20/06/25 Птн 23:28:15 3480624 142
>>3480594
>>рррря
Не угадал, я просто перешёл на твой уровень аргументации
Аноним 20/06/25 Птн 23:29:09 3480626 143
>>3480624
>нет тииии
Терпи, микрософтозависимая гетсетная шиндонативная тормознутая хуита.
Аноним 21/06/25 Суб 07:03:50 3480730 144
> шиндонативная тормознутая хуита.
>в два раза быстрее жабы на погодных станциях под линуксом
Блять, просто съеби, долбоёб тупой.
мимо-проходил
Аноним 21/06/25 Суб 10:24:52 3480768 145
Аноним 21/06/25 Суб 10:40:19 3480777 146
Почему мне не похуй, какой кусок говна быстрее, если всё, чем я занимаюсь - заливаю однотипный говнокод из гптшки в прод, как и 100% "програмеров" на этой доске, лол.
Аноним 21/06/25 Суб 11:31:43 3480798 147
>>3480768
Я под однострочный for написал вот такое расширение https://pastebin.com/TJkNiB12, (ну и еще кучу ему подобных под всякие варианты итераций), но да, за представленнные в том гите такие однострочники нужно немедленно гнать в шею
Аноним 21/06/25 Суб 12:41:22 3480839 148
>>3480798
Зачем ты выделяешь память под список, чтобы один раз по нему пройтись?
Вот так надо https://pastebin.com/7un6Eh7D
Аноним 21/06/25 Суб 12:58:17 3480851 149
>>3480839
Делаю снапшот. У меня код максимально многопоточный, не хайлоад, избегаю разрушения итератора. Можно конечно ещё оптимизировать, подтянуть блокируемые списки, но и так тоже сойдёт.
Аноним 21/06/25 Суб 13:02:54 3480856 150
>>3480851
Если твой код многопоточный, то где блокировки?
Зачем делать многопоточный цикл? Чтобы что? Это же просто сраный цикл, базовая конструкция языка.
Аноним 21/06/25 Суб 13:04:49 3480858 151
>>3480856
А к чему блокировать снапшот? Внутри экшена и будут блокировки для его обьектов. Дело не в многопоточном цикле а в многопоточном доступе к коллекции.
Аноним 21/06/25 Суб 14:08:02 3480900 152
>>3480856
>Зачем делать многопоточный цикл
Что обработка 1кк элементов шла параллельно в 10 потоках в 10 раз быстрее чем будет пердеть 1 поток?
Аноним 21/06/25 Суб 14:32:00 3480926 153
>>3480900
Не, это не для такого случая. Такая конструкция нужна если коллекция может поменяться извне (добавиться удалиться элемент) и только в случаях если элементы коллекции независимы друг от друга. Параллелизация обработки такой коллекции - это Parallel.foreach и в качестве основы concurrency типы, такие как сумка/стек или велосипедный блокируемый список, чтобы не было проблем с разрушением итератора.
Аноним 21/06/25 Суб 15:40:39 3480976 154
>>3480900
Совершенно не факт кстати, однопоточный пеформанс намного выше и масштабирование нелинейное там, 10 потоков не ускорит в 10 раз.
Лучше протестируй и сравни результаты.
Аноним 22/06/25 Вск 05:11:47 3481196 155
>>3480900
Во-первых, сишарп плохой выбор для хайперфоманса. Блокчейн на нем никто не пишет.
Во-вторых, чтобы твои 10 потоков реально работали параллельно, надо все данные сериализовать в массив, чтобы вообще не было ссылок куда-то наружу в память. Потом загнать этот массив в кеш процессора и ебнуть simd инструкции. Кто будет этим заниматься в языке для попукивания в кафку - вопрос риторический.
Аноним 22/06/25 Вск 07:04:52 3481211 156
>>3481196
>сишарп плохой выбор для хайперфоманса.
У хайперфоманса градации есть. Плюсовик будет стоить в 2 а то и в 3 раза дороже. Да и к тому же так исторически сложилось что у шарпа все математические и ИИ либы сдохли, а ml.net не взлетел, потому на нём такое мисать в первую очередь больно, и только во вторую проигрышно по перфомансу.
>реально работали параллельно
Ты вместо реальной параллельности описал способ как избегать кешмисов при обработке массива. Это конечно очень интересно, но обычно процесс обработки элемента раз в 100000 тяжелее чем его взятие по ссылке из коллекции и нужно прям совсем экономить чтобы заниматься нарезкой коллекции на чанки array под каждый физический поток. Можно конечно и даже не очень сложно, но обычно да, это никому кроме разрабов Unity DOTS не надо. Про SIMD вообще смешно, ты сюда из /gd забрел? Напоминаю, что simd обрабатывает только типы из numerics и типы значений, задач для них у дежурного с# формошлепа нет ни одной, кроме быстрого сравнения строк/массивов, при том что в string.equal уже заложен этот функционал. Параллелизм же в первую очередь достигается формированием данных, готовых к параллельной обработке, а это самое сложное. Сложно сделать такую параллельность рентабельной, сложно достигнуть синхронизации с ресурсами, к которым обращаешься при параллельной обработке коллекции, сложно обеспечить нулевую связность элементов массива друг с другом для избежания гонки, а остальное это так, мелочи, технические ньюансы.
Аноним 22/06/25 Вск 07:07:54 3481213 157
Аноним 22/06/25 Вск 07:11:33 3481214 158
17488857696880.png 149Кб, 720x548
720x548
Аноним 22/06/25 Вск 07:40:36 3481216 159
image.png 107Кб, 1346x956
1346x956
Реклама нейроговна прямо в доках
Аноним 22/06/25 Вск 07:45:13 3481217 160
>>3481216
Ну надо же коупилот как-то продавать
Аноним 22/06/25 Вск 19:19:54 3481766 161
image.png 166Кб, 1042x1022
1042x1022
>>3480516

Как-то это не помешало мне свалить с джавы
Аноним 22/06/25 Вск 19:29:02 3481770 162
>>3480516
>Джава является единственным языком, который на самом деле поддерживает многопоточность. Во всех остальных языках многопоточность является огромной бойлерплейтной болью, а гарантии через спецификацию являются рудиментарными, о которых никто не знает. Доходит до того, что пособия по многопоточности в Java являются отличным вариантом для изучения многопоточности в большинстве других языков.
>Java поддерживает платформенную многопоточность. Некоторые языки пошли по пути исполнения кода глобально effectively в одном потоке. Таким образом, они избавились от части недостатков многопоточности (низкоуровневых багов), ценой отказа от увеличения производительности за счёт нескольких ядер процессора, оставив многопоточность для тех случаев, когда она нужна не для увеличения производительности, а для реализации непосредственной логики. Java даёт возможность пользоваться всеми ресурсами машины.
>В Java есть огромнейший инструментарий для организации многопоточного flow, что регулярно расширяется с новыми обновлениями. Он настолько всеобъемлющий, что, например, на одном из классов Java были основаны все корутины в Kotlin поначалу (ForkJoinPool).
>В Java есть полноценная теория о многопоточности, что позволяет подходить к построению многопоточных приложений с научной точки зрения. В основном, это представлено книгой Java Concurrency in Practice. Если не понимать всей сложности темы и просто забить хуй на неё, то очень скоро столкнёшься с непонятными проблемами вызывающими сомнения в реальности происходящего, поэтому без теории не может быть никакого многопоточного программирования, а в Java теория есть.
>В Java присутствует решение проблемы тяжеловесности потоков общего назначения без всех минусов корутин, таких как замедление кода в 11 раз или загрязнение кодовой базы async/await/suspend приводящими к дублированию методов.

async/await делает бррррр
Аноним 23/06/25 Пнд 16:29:17 3482579 163
Ысе вот эти вот Visual studio 20... (не важно какой версии, кроме 2017 ) и все вот эти вот эмуляторы - это всё тухлая поебень которая либо на работает вообще, либо компилируется 50 часов нахуй. А тем более visual studio Code. Я на этом VSC в жизни даже хеллоу Ворда не смог скомпилировать. Он просто не знаю даже для чего создан. А потому что "Multi " , а всё что мульти - это вроде как и для всех платформ сразу, но в тоже самое время и не для какой вообще.

Моя задача это делать примитивные программы но желательно с GUI и обязательно для двух платформ. Андроид и Винда (7я даже стоит дома) терпеть не могу «новинки».
Так вот я пришёл в выводу, что для того чтобы я пользовался родным C# я обязан перейти исключительно на консольные приложения.
Тупо мутить интерфейс из символов псевдографики наподобие Borland Pascal IDE если кто помнит.
По крайней мере это единственный РАБОЧИЙ вариант кодинга под две платформы. БЕЗ переписывания кода, без всей этой ебаты с элементами пользовательского GUI (где а MAUI то кнопка сползла за экран, то ещё какой-то там pading отвалился, то вообще всё накрылось к чертям.
Конечно, этот подход не годится для коммерческого программирование да и вообще для коммерческого сорта. Но я пишу для себя всякие автоматизатопы и парсеры и мне похуй на тренды. Зато код абсолютно идентичный получается и можно писать прямо в телефоне. Вплоть до того, что вечером дома на компе уже готовый код тестировать(после теста в телефоне).
Хули толку от этого xamarina если приложения постоянно отваливаются и с ними вечно какие-то проблемы. Или к примеру от Java, если для запуска его «УНИВКРСАЛЬНЫХ» «мультиплатформенного» кода, я вынужден таскать за собой гигабайты SDK и эмуляторов для каждой платформы чтобы это всё хоть как-то запустилось
Аноним 23/06/25 Пнд 17:37:12 3482620 164
В .NET рантайм уже какое-то время как смержили CoreCLR Interpreter (https://github.com/dotnet/runtime/issues/112748). Но что-то я не вижу упоминаний по поводу того что с ним будут делать кроме iOS и WASM (по типу, выкинут ли Mono runtime, будут ли юзать интерпретатор в NativeAOT и т.д.). Кто что знает (ну и мнение)?
Аноним 23/06/25 Пнд 17:57:55 3482637 165
>>3482579
>Хули толку от этого xamarin

Не, ксамарин норм. Только не тот, где формы и ксамл, о тот, который просто Xamarin native.

Там у тебя ровно те же самые типы, что на андроиде, но написанные на c#.

По про
Аноним 23/06/25 Пнд 19:05:09 3482690 166
>>3482620
>мнение

Нас всех заменят компьютеры, эйай будет везде, а операционные системы уже пишут на пэйфоне.
Аноним 23/06/25 Пнд 20:07:04 3482743 167
>>3482579
Как можно было обосраться с vsc хоть убей не пойму. Просто блять 3 простейших шага
Дотнет сдк
Расширение c# + c# devkit + intellisense по желанию
dotnet new console
Всё нахуй. Сижу на вскод последний год и решительно не понимаю в чем проблема, если для личного пользования. Wpf стал кроссплатформой, есть авалония уже очень давно. В конце концов можно поставить Target 4 фреймворк и запускать под моно винформу.
Аноним 23/06/25 Пнд 23:40:27 3482930 168
>>3481766
>да норм мне говно жрать
Да знаю я.

>>3481770
Что сказать-то хотел? Там про твои асинки прямым текстом написано. Это помои, которыми прикрывают свою порваную жопу шарподауны за неимением альтернатив.
Аноним 24/06/25 Втр 04:04:26 3482954 169
>>3482930
>Что сказать-то хотел?

Всё, что ты описал, в C# есть.

>за неимением альтернатив

Как просто ПОДОЖДАТЬ http запрос в джаве?
Аноним 24/06/25 Втр 05:42:30 3482964 170
>>3482930
>Это помои, которыми прикрывают свою порваную жопу шарподауны за неимением альтернатив.

какие альтернативы? Коллбеки писать?
Аноним 24/06/25 Втр 09:53:57 3483028 171
>>3474778 (OP)
Видел родителей ОПа. Нормальные мужики.
Аноним 24/06/25 Втр 15:38:04 3483286 172
Бля, пришлось кодить на Node.JS, какое же говнище ебаное по сравнению с дотнетом.

Ну ладно, из плюсов, всё можно поднять парой строчек кода. Окей. Но сука, дебаг череж жопу, куча уёбских any, сука бля.
Аноним 26/06/25 Чтв 01:03:27 3484369 173
Аноним 26/06/25 Чтв 02:14:24 3484382 174
>>3483286
>всё можно поднять парой строчек кода
Java сервисы тоже, если написать докерфайл. Мухам в винду так и не завезли синего кита? В десятке же появился какой-то Docker Desktop вроде.
Аноним 26/06/25 Чтв 09:44:03 3484474 175
Как думаете что сейчас перспективней в плане вакансий: C# для веба или десктопа? Что лучше учить новичку
Аноним 26/06/25 Чтв 16:05:40 3484723 176
>>3484474
Веб. Точнее, бекенд, откуда c# выдавливает джаву
Аноним 26/06/25 Чтв 18:27:26 3484815 177
>>3484382
Мне кажется, ты не понял, что тебе написали.
На ноде можно написать пару строчек кода, и оно уже будет что-то полезное делать.
Для спринга и аспнета нужно больше кода. В обоих случаях начальный бойлерплейт уже есть в шаблонах, но всё равно надо что-то ещё написать. Ну и бойлерплейт, который сам создаётся, тоже довольно объёмный.
Аноним 27/06/25 Птн 00:25:45 3485131 178
Дотьнет умер нахуй? Мне кажется, что уже unity по кол-ву вакансий начитает конкурировать с основным стеком c#
Аноним 27/06/25 Птн 00:38:53 3485137 179
>>3485131
Ладно, я ебу дал, беру свои слова назад
Аноним 27/06/25 Птн 03:09:17 3485165 180
>>3482954
>есть! яскозал!
Ясн.

>Как просто ПОДОЖДАТЬ http запрос в джаве?
var result = http.request();
Что, совсем мозг повредило асинками? Самый нормальный вариант белого человека без обмазывания кода говном уже в голову и не лезет?
Аноним 27/06/25 Птн 03:10:17 3485167 181
>>3482964
Один из вариантов. Ещё виртуальные потоки есть для хипстеров.
Аноним 27/06/25 Птн 03:23:49 3485170 182
>>3485137
Ёбу дал — ёбу взял.
Аноним 27/06/25 Птн 03:24:55 3485171 183
>>3485167
Асинк авейт и есть виртуальные потоки. Это вообще то же самое за исключением синтаксиса.
Аноним 27/06/25 Птн 03:28:43 3485172 184
>>3485171
Разница в том, что с асинками ты засираешь код говном и дублируешь методы.
Аноним 27/06/25 Птн 08:33:14 3485206 185
>>3485171
>Асинк авейт и есть виртуальные потоки
Нихуя себе. Блиииин а я то все какие-то машины состояний себе представлял и сохранение состояния потока при переключение.

Вот собственно с кем мы тут сидим. Виртуальные потоки в асинк эвейт.
Аноним 27/06/25 Птн 08:59:33 3485220 186
>>3485206
> я то все какие-то машины состояний себе представлял

Долбоёб, что-ли? Ты понимаешь, что такое зелёные потоки?
Аноним 27/06/25 Птн 09:08:43 3485225 187
>>3484815
>Для спринга и аспнета нужно больше кода.

С небольшой разницей. Дотнет просто запустится на любом современном железе, а JAVA будет ебать мозги 3-4 часа манипуляциями с бинарями, неработающим мавеном и правками в хуй знает каких xml файлах.

Собственно, мы поэтому от спринга и отказались. На вид джава почти как сишарп, но как работать начинаешь - понимаешь, что джава скорее аналог дотнет-фреймворк-4.5.2, который ты пытаешься запустить через wine.
Аноним 27/06/25 Птн 09:24:13 3485230 188
>>3485165
>var result = http.request();

этот вызов будет стоить одного потока? Твоя пропускная способность теперь зависит от количества доступной оперативной памяти.
Аноним 27/06/25 Птн 09:29:05 3485231 189
>>3485206
Я не знаю, что ты себе там представлял.

Конечно, там автомат с состояниями, а под ним находятся таски, которые являются абстракцией над потоками. В каких-то случаях таски могут выполняться последовательно в одном потоке, а в каких-то параллельно в разных. И именно это тоже самое, что виртуальные потоки в жаве.
Аноним 27/06/25 Птн 09:32:18 3485232 190
>>3485172

> засираешь код говной
Лучше написать async/await, чем размазывать запрос по коллбекам. Ну или как у вас там не блокируя код писать?

>дублируешь методы.
Охуеть, оправдание, конечно. Ты фреймворк пишешь или рабочий код?
Аноним 27/06/25 Птн 09:36:23 3485235 191
>>3485225
>С небольшой разницей. Дотнет просто запустится на любом современном железе, а JAVA будет ебать мозги 3-4 часа манипуляциями с бинарями, неработающим мавеном и правками в хуй знает каких xml файлах.

Да, у меня тоже такое ощущение.
Куча команд типа clean, install, build, deploy, и так далее, причём делают они совсем не это. Куча источников параметров вплоть до переменных окружения (это уровень php какой-то). Куча параметров сборки без которых нихера ничего не выйдет.
Нет нормальной среды разработки, которая все нюансы подхватывает. Вечно либо код красный, но собирается, либо наоборот.
Ну и несколько реп пакетов без синхронизации версий. Пакет одной версии в одной репе может оказаться совсем другой версией во второй.
Аноним 27/06/25 Птн 09:44:47 3485237 192
>>3485235
Ты скорее всего совсем тупой. Либо один день с непривычки такое пишешь.
Аноним 27/06/25 Птн 09:46:22 3485240 193
>>3485230
Ты наркоман? Производительность любой машины зависит от количества доступной оперативной памяти.
Аноним 27/06/25 Птн 17:53:45 3485621 194
Откликаюсь на стажерские вакансии - нихуя. По рофлу отправил отклик на джуновскую, и сразу предложили созвон. Но я зассал, условия хорошие, но до требований я явно не дотягиваю. Компания логистическая, а у меня пет проект для логистической компании, походу поэтому и ответили.
Но он довольно посредственный. Обычное рест апи, по сути можно только создавать заказы и управлять ими, а также отслеживать их. Есть система аутентификации и авторизации, распределение доступа к действиям по ролям, бизнес-логики почти нет никакой, ну расчет стоимости, а расстояние определяется через стороннее апи, юнит тесты для галочки, интерфейса нет. Насколько это кал, такое вообще стоит показывать?
Еще есть программа для учёта дебиторской задолженности на wpf, делал его для мамы, так как 1с у них не было. Делал года 2 назад, с нулевыми знаниями wpf и xaml, без mvvm. Стоит его вообще указывать, учитывая, что я уже почти все забыл и особо пояснить не смогу? Просто убил на него много времени, да и получился довольно объемным (ну для меня).
Аноним 27/06/25 Птн 19:17:50 3485707 195
>>3485621
За работодателя думать не нужно, дотягиваешь там или нет. Если только ищешь первую работу, отказываться от собеседований глупо, потому что это для тебя при любом исходе будет полезным опытом, даже если обосрешься (а сначала все равно скорее всего так и будет).
Про проекты имеет смысл рассказывать, если они имеют отношение к тому, чем планируется заниматься на работе. Ну или если такого мало, то просто показать, что не совсем дурак, и что-то сам можешь сделать от начала до конца.
Аноним 27/06/25 Птн 20:18:05 3485753 196
>>3485240
Ты понимаешь что такое блокирующие и не блокирующие вызовы?
Аноним 27/06/25 Птн 20:59:54 3485771 197
completablefutu[...].JPG 8Кб, 505x226
505x226
>>3485753
Неблокирующий вариант можно сделать через CompletableFuture
Аноним 27/06/25 Птн 22:56:36 3485879 198
Как в вашем C# с линуксом? .net core работает? Планирую перекатываться на C# и искать на .net core работу, но виндовсом не пользуюсь совершенно
Аноним 27/06/25 Птн 23:31:46 3485914 199
>>3485879
Сервера на линупсе, но разработка на винде, ведь студия есть только на винде, а вскод и райдер до неё не дотягивают.
Аноним 28/06/25 Суб 01:59:09 3485989 200
>>3485237
Я дотнет разработчик, которому очень редко приходится что-то делать с джавой. У меня, конечно, колоссальная разница в опыте между шарпом и джавой, но как правило почему-то когда я беру где-то шарповый код, то его можно просто открыть в вс и запустить, нажав f5, а с кодом на джаве так не получается.
Аноним 28/06/25 Суб 05:34:22 3486026 201
>>3485914
Двачую, реально какой-то шизостек. Код пишется под виндой, но на проде работает под линуксом.
Аноним 28/06/25 Суб 05:46:31 3486028 202
>>3485753
А ты понимаешь, что ядро не дает квант времени потоку, который ждет ответа на сисколе? Легковесные потоки - это просто дань моде, а так ты спокойно можешь запустить 1000 тредов или даже форкнуть 1000 процессов, повесить их на один сокет и все будет работать без хитровыебаных асинков.
Аноним 28/06/25 Суб 13:08:09 3486156 203
>>3485914
И что это получается, виртуалку поднимать, директорию через нее шарить и на вижле писать? Это если удаленно
Аноним 28/06/25 Суб 14:16:09 3486200 204
>>3485879
>>3486156
Если охота работать конкретно на линуксе, то см. пик. Если на винде то тот же самый набор + visual studio (имхо лучший выбор). Часть c# разрабов вообще на маках работает, но в душе не ебу, что они там сейчас используют. Вроде должен быть тот же набор, что и для линукса.

>>3486026
>Код пишется под виндой, но на проде работает под линуксом.
И что тут не так? Или ты к примеру разрабатывая под андроид будешь код у себя на телефоне писать?
Спокойно все пишется на одной системе и запускается на другой. Даже отладка удаленная с винды на линукс/докер/wsl замечательно рабоатет в реальном времени.
Аноним 28/06/25 Суб 14:19:28 3486204 205
image.png 25Кб, 764x268
764x268
Аноним 28/06/25 Суб 14:53:27 3486221 206
>>3485771
> Неблокирующий вариант можно сделать через CompletableFuture

А теперь, пожалуйста, сделай неблокирующий вариант и так, чтобы с коллбеками не ебаться?

И так, чтобы можно было последовательно отлаживать?
Аноним 28/06/25 Суб 15:10:56 3486229 207
>>3485879
>Как в вашем C# с линуксом? .net core работает? Планирую перекатываться на C# и искать на .net core работу

Работаю на линуксе последний год.

Дотнет устанавливается в домашнюю папку буквально кликом на один скрипт в интернете. Это охуенно.
https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

Райдер работает охуенно. Его для wayland рекомендую немножко подстроить:
Menu->Help->Edit Custom VM Options... Откроется редактирование, для поддержки Wayland добавить строку
-Dawt.toolkit.name=WLToolkit

Реальная проблема разницы операционных систем у меня была только одна, - когда я забыл, что в линуксе таймзоны называются по другому и надо работать с ними через пакет TimeZoneConverter

Нативный докер экономит несколько гигабайт памяти

Линукс сам по себе нетребовательный к ресурсам и предсказуемый. Он не перезагружается внезапно, не лезет в интернет, чтобы скачать что-нибудь.

В общем, я доволен.
Аноним 28/06/25 Суб 15:28:30 3486239 208
Аноним 28/06/25 Суб 16:01:28 3486262 209
>>3486221
Хватит с тебя и неблокирующего варианта
Аноним 29/06/25 Вск 13:00:11 3486894 210
>>3486229
А еще в линуксе нету виндового костыля ограничивающего шаг таймера на 15мс, и в итоге Task.Delay сжирает 1 ядро проца пока его не отпустит, но это так, просто неприятный ньюанс.
Аноним 29/06/25 Вск 18:27:19 3487109 211
изображение2025[...].png 209Кб, 1920x1080
1920x1080
изображение2025[...].png 207Кб, 1920x1080
1920x1080
>>3474778 (OP)
привет! :D можете помочь разобраться, в чем проблема и почему при запуске отображается по другому
Аноним 30/06/25 Пнд 04:09:47 3487384 212
>>3487109
Нет, у тебя какие-то коды и свинья бегает по шоссе.
Аноним 30/06/25 Пнд 07:38:56 3487407 213
>>3487109
Размер твоей формы при запуске сам меняется?
У тебя походу стоит 125% масштаб в системе, может быть по этому.
Dpi там, ещё что-нибудь.
Аноним 01/07/25 Втр 01:45:07 3488235 214
Кто-нибудь работал с PcapDotNet?
Аноним 01/07/25 Втр 07:41:21 3488280 215
>>3474778 (OP)
Когда в ObservableCollection уже добавят AddRange?
Аноним 01/07/25 Втр 12:07:11 3488464 216
>>3487109
Что вообще за игра в винформе?
Аноним 01/07/25 Втр 17:28:08 3488670 217
Аноним 01/07/25 Втр 17:42:30 3488679 218
>>3488670
Двачую, напиши метод расширение
Аноним 02/07/25 Срд 06:35:08 3488908 219
Как вы запускаете дотнет приложения на современном железе? Пробовал виртуалку с WindowsXP, но в ней работать некомфортно.
Аноним 02/07/25 Срд 11:50:40 3489055 220
>>3488908
Под dosbox конечно, что за вопросы.
Аноним 02/07/25 Срд 13:37:33 3489162 221
Предлагают работу, придётся перейти на C# и Azure. Какие у кого впечатления о стеке?
Аноним 02/07/25 Срд 13:45:29 3489169 222
>>3488908
Двойным кликом мыши по экзешнику. А что?
Аноним 02/07/25 Срд 14:13:51 3489195 223
Аноним 03/07/25 Чтв 06:59:44 3489667 224
Это всё, гайз... Корпорация Microsoft объявила об официальном окончании сопровождения .net framework 4.8 в ноябре.
Аноним 03/07/25 Чтв 07:07:17 3489673 225
Кроме того, представитель Microsoft прокомментировал дальнейшую судьбу .net core. Слухи о том, что .net 10 будет последней версией не соответсвтуют действительности, а массовые увольнения сотрудников не повлияют на поддержку проекта...
Аноним 03/07/25 Чтв 07:09:10 3489674 226
Это всё... Microsoft полностью переходит на python и typescript. Ведь там есть эйай... А что мы, жалкие скуфи, нас высех выкинут на улицу, а JS разработчики будут ездить на кабриолетах...
Аноним 03/07/25 Чтв 07:12:18 3489675 227
Это всё... Корпорация Microsoft объявила о переводе MediatR и Automapper на python... М
Аноним 03/07/25 Чтв 16:41:50 3490136 228
Блять решил поизвращятся и пощупать виндовый современный ГУЙ фреймворк. Тыкаю пустое ВинУИ апп, и сначало ахуеваю от 100 мегабутов на пустое окно, а потом ахуеваю что оно блять ТИЧОТ.
И это даже блять не превью и не альфа билд этой залупы.
На гитхабе двухлетнее ишшью висит где полтора Джона пердолятся и пытаются это пофиксить, но безуспешно и ни одна черномазая, срущая, индусская рожа даже не ответила.
Я конечно знал что они ебнутые, но не настолько же.
Аноним 03/07/25 Чтв 16:45:51 3490140 229
>>3490136
>ТИЧОТ

Течёт твоя мамка. А фреймворк осваивает память
Аноним 03/07/25 Чтв 16:47:23 3490141 230
Это конец... Я просто не могу программировать на фреймворке, который больше никому не нужен...
Аноним 03/07/25 Чтв 17:05:01 3490157 231
>>3489674
>Microsoft полностью переходит на python
Ага, поэтому они Core Python команду в прошлом году сократили?
Аноним 03/07/25 Чтв 18:46:45 3490229 232
>>3490157
>Ага, поэтому они Core Python команду в прошлом году сократили?

Это путь в один конец... Сначала кабан нанимает пейфон разработчиков, которые переписывают всё на ЭЙ АЙ, а затем они больше не нужны и их увольняют...

ЭЙ АЙ нас всех заменит... мне больно это слышать...
Аноним 03/07/25 Чтв 19:37:59 3490257 233
>>3489667
Ну так сколько можно
Аноним 03/07/25 Чтв 19:40:49 3490265 234
Это всё... Корпорация Microsoft переходит на php, Ubuntu, MySQL и AWS...
Аноним 03/07/25 Чтв 19:50:31 3490291 235
>>3490265
Вместо Windows 13 будет MS Ubuntu Ultimate. Вместо powershell будет PHP ActiveX. Вместо MSSQL будет MariaDB Enterprise Edition
Аноним 04/07/25 Птн 00:28:17 3490475 236
Аноним 05/07/25 Суб 08:34:54 3491610 237
Сколько можно...
Аноним 05/07/25 Суб 14:07:03 3491795 238
Это всё...
Аноним 05/07/25 Суб 14:09:37 3491799 239
И как нам тягаться с пэйтон и эйай...
Аноним 05/07/25 Суб 14:28:57 3491829 240
Нас всех просто выбросят на улицу... Как щенков
Аноним 05/07/25 Суб 19:42:22 3492055 241
Эти индусы захлебнулись в ЛГБТшном АИ угаре там? В мае обещали убрать плату за регу дев аккаунта в своем сторе. Уже 5 июля, а они продолжают бабло стричь.
Аноним 06/07/25 Вск 01:53:46 3492297 242
Кто-нибудь угомонит эту взбесившуюся нейронку?
Аноним 06/07/25 Вск 09:18:13 3492383 243
Аноним 06/07/25 Вск 13:34:03 3492535 244
Я просто хочу разобраться...
Аноним 08/07/25 Втр 06:06:53 3493846 245
Что делать...
Аноним 08/07/25 Втр 12:46:39 3494115 246
>>3485230
Они килобайты весят, ёптить. Твои асинки тоже по памяти не бесплатные.
Аноним 08/07/25 Втр 12:47:45 3494117 247
>>3485232
Каким нахуй коллбекам? Виртуальные потоки за тебя всё делают.

> Охуеть, оправдание, конечно. Ты фреймворк пишешь или рабочий код?
Подумай пожалуйста над негативными последствиями дублирования кода. Или хотя бы изучи это, если думать нечем.
Аноним 08/07/25 Втр 16:50:10 3494369 248
>>3494117
>Подумай пожалуйста над негативными последствиями дублирования кода. Или хотя бы изучи это, если думать нечем.

ни разу не сталкивался с такой проблемой. Ты её из пальца высосал потому что кроме коллбеков в обоссаной джаве нихуя нет
Аноним 09/07/25 Срд 10:46:01 3494826 249
Гайзоны, я тут слышал недавно, что java нет async/await потому что это приводит к дублированию методов.

Стоит ли верить или это пиздёжь?
Аноним 09/07/25 Срд 13:30:08 3495000 250
>>3494826
А нам насрать, что там в жабе! Это тред про шарп, другие языки обсуждать здесь запрещено!
Аноним 09/07/25 Срд 19:45:22 3495230 251
Сегодня начал переводить проект на EF с внутренних велосипедов. У какая же у людей анальная кантузия от всех этих "внутренних фреймворков". Сидят предлагают засунуть EF в разные репозитории и прочие залупы накрутить поверх уже готовых строительных блоков от Microsoft.
Аноним 09/07/25 Срд 22:41:06 3495322 252
>>3495230
EF для мартышек, инженеры выбирают даппер.
Аноним 09/07/25 Срд 23:15:00 3495334 253
>>3495322
Как раз даппер и будет выпелен нахуй потому что кривожопые мартышки угробили перфоманс в 0.
Аноним 09/07/25 Срд 23:44:08 3495343 254
>>3495322
В 2025-м преимущество даппера перед EF по скорости настолько ничтожно, что ебля с ним теряет всякий смысл.
Аноним 10/07/25 Чтв 00:12:39 3495353 255
>>3495334
Недавно на линкедине стали мелькать в ленте посты от разных MVP про плохой даппер и быстрый ефкор. Какому-то главному паджиту походу печет, что два еврея 10 лет назад написали охуенный даппер и он до сих пор топчик, пока стадо индусни пилит ефкор и допилить не может. Напоминает историю с микрософт браузером, который тоже пишут онли паджиты и который никому никогда нахуй не нужен.
Даппер отлично показывает уровень экспертизы. Кто пишет продукт - все за даппер, потому что заебались писать sql через сраные экспрешены, а потом отлаживать хуй пойми как. Макаки с аутстаф галер - все дружно топят за ефкор, ведь в проектах на три месяца даппер слишком большая пушка.
Аноним 10/07/25 Чтв 00:27:45 3495364 256
>>3495353
>писать sql через сраные экспрешены, а потом отлаживать хуй пойми как.
Зачем мне что-то отлаживать если у меня нулевая нагрузка при запросах и скорость работы запредельная?

Твой ебучий дапер сделали долбоебы потому что если мне нужен будет сырой sql я руками могу написать все это на ado.net без всяких библиотек с оптимизацией под моё приложение. Я не понимаю нахуя мне костыли в виде даппера хуяпера который режет яйца если я могу писать все сам на низком уровне как мне надо.
Но мне не надо. Потому что те -Nмс что я выжму из ado.net не стоят того чтобы отказаться от EF.

Ну и да с твоим даппером нахуй идут любые спецификации и следовательно ты будешь весь код обмазывать 100500 имплементацией фильтра по "нерелеватный статус" и скакать по коду в поисках где эта залупа еще была. Я же меняю список класса InvalidStatusSpec и все 200 мест его использования сразу будут с новой логикой которая работает и с Enumerable и с Querable и с отдельными классами.
Аноним 10/07/25 Чтв 02:23:09 3495377 257
>>3495353
>заебались писать sql через сраные экспрешены, а потом отлаживать хуй пойми как
Ты хлебушек? Экспрешены, то ты как раз и можешь отладить в IDE, в отличие от ебучего sql.
Аноним 10/07/25 Чтв 02:41:04 3495379 258
>>3495364
>нулевая нагрузка при запросах
На локалхосте она у тебя нулевая. На проде ты охуел бы, если бы твой галерный проект когда-то добрался до прода.

>руками могу написать все это на ado.net
И руками мапить user.Name = reader["Name"].ToString() снова и снова. Отличный план. Даппер для этого и нужен, чтобы ты не страдал хуйней.

>спецификации
Продолжайте в том же духе. Наша контора так заполучила жирного кастомера. У них была система, сделанная адептами DDD, может даже вашим епамом, эта хуйня дико тормозила на продовых данных. Наша система летает потому, что построена вокруг бд, а не вокруг мокрых фантазий о чистом коде, в итоге с нами подписали контракт. Вы все правильно делаете, больше говна богу говна.
Аноним 10/07/25 Чтв 02:42:58 3495380 259
>>3495377
Спроси у нейросети, что такое план запроса. Узнаешь много нового.
Аноним 10/07/25 Чтв 02:48:24 3495382 260
>>3495353
Я пишу продукты уже больше десяти лет, и я считаю, что sql в подавляющем количестве случаев нахуй не нужен, достаточно всё в монге хранить. И то, что для тривиальнейших вещей приходится писать километровые запросы с пятьюдесятью джойнами, а потом это ещё рекомбинировать из табличной в иерархичную структуру, это подтверждает. Ну или ебаться с еф, который тоже такой ебучий из-за несоответствия форматов данных.

>>3495364
Суть даппера в том, что легко можешь замаппить результат на класс, что радикально сокращает количество бойлерплейта.
Аноним 10/07/25 Чтв 03:02:44 3495384 261
>>3495382
>в монге хранить
Ммм, эти версии записей, эти простыни кода для обработки. Потом оказывается, что мы неправильно поделили данные и теперь нужна еще одна бд для аналитики. В sql это был бы просто джоин, но мы не ищем легких путей, прикрутим эластик и кликхаус, прикрутим еще раз. Потом данные разъезжаются, ведь асида из коробки у вас нет и консистенси - это ваша проблема. Такие-то вайбы финтех стартапов.
Аноним 10/07/25 Чтв 05:13:49 3495396 262
>>3495384
Это простыни кода будут меньше, чем sql портянки, да и вместо версий можно миграции писать как для реляционных бд всегда делают.

С консистенси всё нормально с тех пор как появились транзакции. Ну и я говорил, что для всего свои инструменты. Кое-что нужно и в сиквеле хранить.
Аноним 10/07/25 Чтв 05:57:45 3495401 263
Сколько просить джуну бекенд? Или молиться что хотя бы возьмут?
Аноним 10/07/25 Чтв 07:48:39 3495422 264
>>3495230
>Сидят предлагают засунуть EF в разные репозитории

Раньше надо было думать. Это бы помогло тебе, если бы ты внутри репозитория менял даппер на EF.

Заворачивать EF в репозиторий ПОСЛЕ того как ты перекатываешься с даппера бессмысленно.

Если не планируешь гранулярные-микро-юнит-тесты писать можешь забить хуй и использовать DbContext/DbSet напрямую, это и есть репозиторий.
Аноним 10/07/25 Чтв 07:52:25 3495427 265
>>3495353
>написали охуенный даппер и он до сих пор топчик

Ебаное говно твой даппер, он эмитит IL код в рантайме, что делает невозможным его использование в аот и лямбдах.

Dapper лучше переписать руками, на генераторах, вроде того https://www.nuget.org/packages/Finch.Generators . Только чел как будто проект не развивает
Аноним 10/07/25 Чтв 07:56:12 3495433 266
>>3495379
>адептами DDD

пидорская секта, обмажут все свои медиаторы и агрегаты автомапеером и ебуться в туза
Аноним 10/07/25 Чтв 08:03:01 3495437 267
>>3495382
>достаточно всё в монге хранить

Ещё одна пидорская секта. База данных из рекламного буклета. Эти долбоёбы настолько преисполнились, что объявили реляционные базы данных ЛЕГАСИ.

Я с утра пытался положить просто JSON объекты в монго, и после двух часов гомоебли с конвертацией JSON в BSON выкинул это говнище и просто в постгре сложил.
Аноним 10/07/25 Чтв 08:07:14 3495439 268
изображение.png 213Кб, 1434x1062
1434x1062
>>3495396
> Это простыни кода будут меньше, чем sql портянки

Ты ебанутый? У монго сучий блядский, ни на что не похожий, громоздкий синтаксис, по сравнению с которым sql нормален
Аноним 10/07/25 Чтв 08:12:06 3495443 269
> >>3495396
> появились транзакции

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

Так же как и констрейнты, которые в монго в некоторых случаях не работают
Аноним 10/07/25 Чтв 09:06:15 3495465 270
>>3495380
Ты действительно хлебушек. Я в курсе что такое план запроса и как с ним работать. Разговор был про отладку которую в разы удобнее делать в IDE и на нормальном языке программирования. Для SQl тупо нет нормальных средств отладки. А твои планы запроса, это уже больше про оптимизацию готовых запросов, а не их отладку.
Аноним 10/07/25 Чтв 09:09:30 3495466 271
>>3495401
Если совсем нулевый, то 60К испыталка, 80...100 после. Если с опытом то от сотки.
На большее ты сейчас только по связям залетишь или если удачно на какой-либо срочный денежный проект залетишь. Но там придется напиздеть, что ты уверенный мидл и пройти соответствующий собес.
Аноним 10/07/25 Чтв 09:13:37 3495469 272
>>3495465
А ещё я могу одним движением руки заменить реальную БД на коллекцию в памяти или контекст в памяти и отладить код. С сырым sql ты можешь пойти нахуй, написать юнит тесты на это невозможно, никакой статической проверки твоих запросов и типов нет.
Как там в даппер кстати решается проблема когда необходимо дать фронту возможность задавать поля и направление сортировки по нескольким полям?
Аноним 10/07/25 Чтв 09:27:59 3495481 273
>>3495469
Чел. Протрезвей. Мне-то ты это нахуя пишешь? Мой тейк как раз против raw sql (ну и даппер я тоже вротебал, да)
Аноним 10/07/25 Чтв 09:46:11 3495494 274
>>3495469
> С сырым sql

С сырым sql тебя могут пидорнуть SQL инжекшеном. EF в том числе для безопасности используют.

> Как там в даппер кстати решается проблема

В даппере вообще такой проблемы нет. Просто берёшь Dapper.Automapper, и с помощью экспрешшенов пишешь запрос, а автомаппер за тебя все поля маппит и фильтры делает.
Аноним 10/07/25 Чтв 09:47:06 3495498 275
>>3495469
>решается проблема когда необходимо дать фронту возможность задавать поля

В Dapper нет такой проблемы. В даппере вообще нет проблем, которые EF якобы решает
Аноним 10/07/25 Чтв 12:37:55 3495675 276
Аноним 10/07/25 Чтв 14:32:00 3495802 277
>>3495494
>С сырым sql тебя могут пидорнуть SQL инжекшеном
Экранируй и санитайзь.
Аноним 10/07/25 Чтв 17:30:18 3495957 278
У НАС ИСПОЛЬЗУЕТСЯ EF
@
ОТКРЫВАЕШЬ ПРОЕКТ
@
DAL
@
REPOSITORY
@
ПРЯМЫХ ВЫЗОВОВ EF В ПРОЕКТЕ НЕТ
Аноним 10/07/25 Чтв 17:59:31 3495988 279
>>3495957
Джун, так и должно быть. Пробрасывать IQueryable до контроллера - это красный флаг и метка мартышки. Репозитори - это не абстракция таблицы в бд, как пишут паджиты, это абстракция ВСЕЙ базы. Не IQueryable<Order> IRepository.GetOrders(), а List<OrderDTO> IRepository.GetOrders(ITransaction t).
Аноним 10/07/25 Чтв 18:42:17 3496029 280
>>3495988
DbSet это и есть реализация репозитория, а DbContext это реализация паттерна uow.

В проекте делаешь IQueryContextFactory и ICommanContextFactory. Внутри через. DI получаем pooled или обычную фабрику контекста. Оборачиваем вызов CreateDbContext() добавив AsNoTracking для запросов и делаем метод который автоматически добавляет транзакции и заварачивает твой код.
Дальше все это через DI получаем где надо и пишем
await using var context = await _contextFactory.CreateDbContextAsync();
Погнали писать запросы.

Если ты завернул вызов EF в Repository, то поздравляю ты долбоеб паджит который где-то слышал про репозитории и не понимает для чего они нужны. Если тебе требуется повторно использовать фильтры, то велком писать спецификации, а не городить хуйню из DAL слоя в .NET.
Аноним 10/07/25 Чтв 20:07:08 3496078 281
>>3496029
Ебаный пиздец, ты высрал фабрику фабрик, чтобы просто сделать селект. Еще небось сверху обмазал автомапером, а то недостаточно круто. Хорошо, что я перекатился на голенг, там такой шизы нет.
Аноним 11/07/25 Птн 04:34:41 3496274 282
>>3495988
>красный флаг

коммунизм это хорошо
Аноним 11/07/25 Птн 04:41:13 3496276 283
>>3495988
> Пробрасывать IQueryable до контроллера

Правильно возвращать IEnumerable, а что там за ним скрывается - совершенно не важно. Хоть IQueryable, хоть массив
Аноним 11/07/25 Птн 05:02:47 3496278 284
>>3495988
> ...а List<OrderDTO> IRepository.GetOrders(ITransaction t).

В DDD нельзя создавать репозитории конкретных сущностей, у тебя скорее будет один общий репозиторий

interface IRepository<TAggregate, TKey>{
Aggregate Get(TKey key);
IEnumerable<TEntity> Get<Entity>(TKey key);
}

При этом хорошей практикой считается если Агрегат сам может быть репозиторием. Это даёт чистое разделение ответственности и избавляет от антипаттерна анемичных моделей
Аноним 11/07/25 Птн 05:14:08 3496280 285
>>3496029
>Если ты завернул вызов EF в Repository, то поздравляю ты долбоеб паджит который где-то слышал про репозитории и не понимает для чего они нужны.

У меня был долбоёб один, который так сделал. Он буквально инжектил везде по 3-10 UOW вот так

конструктор(
IUnitOfWork<IRepository<Bill>> billUnitOfWorkRepository,
IUnitOfWork<IRepository<Account>> accountUnitOfWorkRepository,
IUnitOfWork<IRepository<Country>>
)
{
...
}

Он греко-киприотом был. Я его спросил, которым из них надо коммитать, он ответил какой-то набор слов про HEXAGONAL CLEAN DDD ARCHITECTURE, я посмотрел на этот долбоебизм ещё пол года и уволился нахуй
Аноним 11/07/25 Птн 05:34:57 3496282 286
>>3496078
>высрал фабрику
Да не, вроде норм выглядит. Можно делать короткоживущий DBContext,

>я перекатился на голенг, там такой шизы нет

В сишарпе можно писать в стиле любого шизика.

Но, в голенге ты пишешь в стиле голенг-шизика.

Вот и вся разница. Ты никогда не нахуяривался и у тебя не возникало желания написать восьмиугольный-дидиди-сикьюэрэс?
Аноним 11/07/25 Птн 08:09:13 3496309 287
>>3496078
>высрал фабрику
В смысле высрал. Это стандартный способ использования EF. Регаешь через AddDbContextFactory фабрику контекста и через неё получаешь контексты. Если у тебя хай рпс, то pooled.

DbContext это еденица работы. Каждый твой метод сервиса должен создавать новый контекст. EF оптимизирован для того чтобы ты мог создавать тысячи контекстов в секунду. Стандартный размер пулла контекстов это как раз 1000 штук.
Аноним 11/07/25 Птн 08:14:49 3496310 288
>>3496309
> Каждый твой метод сервиса должен создавать новый контекст.

а как же лайвтаймскоуп на запрос? Или ещё хуже, когда диби-контексты создаёт медиатор где-нибудь в жопе
Аноним 11/07/25 Птн 12:32:52 3496472 289
>>3496309
Нах тебе ебаться с легаси базами данных, возьми MongoDB
Аноним 11/07/25 Птн 15:35:58 3496612 290
>>3496472
MongoDB и есть легаси база данных.
Аноним 11/07/25 Птн 17:14:30 3496689 291
1654529760343.gif 929Кб, 150x148
150x148
>>3474778 (OP)
Я был простым прогером петухон + голанг, но месяца 3 назад пришлось в связи с задачами перейти на дотнет. уже писал на нем раньше к сожалению Я ебал в рот ваш дотнет, бойлерплейтный кал, сосите мои пальцы, пидарасы, 5 дней в неделю я трогаю кал. Я больше не хочу трогать ваш кал, с понедельника я уволюсь и больше не буду прикасаться к вашему калу с медиатром, еф кором, автогенерацией обработчиков. Буду отдыхать до следующей весны, а там начну разводить кроликов у себя на гектаре. Пейте мочу, рабы мелкомягких.

На самом деле против дотнета ничего не имею, просто противно на нем писать, пользоваться его тулзами. Так что уволюсь и отдохну.
Аноним 11/07/25 Птн 17:22:16 3496693 292
>>3496689
>Я ебал в рот ваш дотнет
Что именно не понравилось? Такая себе Ява с нескучными обоями, всяко лучше Раста или Коклина
Аноним 11/07/25 Птн 17:25:48 3496696 293
>>3496689
А какую СУДБ брать? Redis?
Аноним 11/07/25 Птн 17:27:13 3496698 294
>>3496689
> не буду прикасаться к вашему калу с медиатром, еф кором, автогенерацией обработчиков

И с автомаппером!
Аноним 11/07/25 Птн 17:30:10 3496700 295
>>3496689
>петухон + голанг

набор для гомоебли
Аноним 11/07/25 Птн 18:36:56 3496746 296
Аноним 12/07/25 Суб 04:57:33 3496961 297
>>3495437
У тебя с руками проблемы.

>>3495439
Это переписывается в виде экспрешенов, наркоман. Тебе боженька балмор дал linq, зачем ты эти билдеры городишь?

>>3495443
Ещё раз. Если тебе надо кучу реплик с транзакциями, у тебя там гостайны или банковские балансы, ну храни это в реляционной бд. Не надо граничные случаи придумывать. У 90% сервисов нет никаких гонок за конкретными записями, а вероятность нарушения консистенси даже без каких-то специальных мер ниже, чем вероятность падения метеорита на датацентр.
Аноним 15/07/25 Втр 09:06:12 3498709 298
>>3496961
>Если тебе надо кучу реплик с транзакциями, у тебя там гостайны или банковские балансы, ну храни это в реляционной бд.

Да я и так всё в реляционках храню. Монго - говнище обоссаное мочевиком.
Аноним 15/07/25 Втр 09:08:30 3498711 299
DDD
@
Медиатр
@
Автомаппер
@
АОП Интерцепторы
@
Монго-биби
@
Чистая архитектура
@
Запахи кода
Аноним 15/07/25 Втр 10:10:41 3498724 300
>>3494369
> ни разу не сталкивался с такой проблемой.
Опыт двух лаб не показатель.

> потому что кроме коллбеков в обоссаной джаве нихуя нет
Thread.startVirtualThread(() -> sharpFly.obossat("Нихуя себе проекции, лол."));
Аноним 15/07/25 Втр 10:31:45 3498739 301
изображение.png 4Кб, 112x52
112x52
>>3498724
>Опыт двух лаб не показатель.

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

Когда пишешь рабочий код, ты просто удаляешь лишний метод.

> Thread.startVirtualThread(() -> sharpFly.obossat("Нихуя себе проекции, лол."));

Это коллбек?
Аноним 15/07/25 Втр 10:34:23 3498741 302
>>3498739
>А ВОТ ТАК, И ВОТ ТАК, И ВОТ ЕЩЁ ЭТО СДЕЛАЙ, А ЭТО НЕ ДЕЛАЙ, И ТОГДА! ТОГДА НОРМАЛЬНО БУДЕТ)) ЖЖ)
Ясн.

> Это коллбек?
Это струя мочи летит тебе в рожу. Открывай рот.
Аноним 15/07/25 Втр 16:02:56 3498963 303
Предположим, я с помощью атрибутов задаю правила валидации в дто, в контроллере проверяю ModelState. Надо ли мне еще раз валидировать в сервисе по тем же правилам? Как принято вообще? Чат гпт говорит, что не надо, а дипсик что обязательно надо.
Аноним 15/07/25 Втр 17:07:25 3498992 304
>>3498963
По чистой архитектуре надо. Вдруг у тебя, ну, cli вызовы будут, по gprc, итд. Ядро должно быть консистентным всегда. оно знать не знант, что ктото выше чето провалидировал.
но как всегда it depends
Аноним 15/07/25 Втр 17:44:19 3499017 305
>>3498741
> Это струя мочи летит тебе в рожу. Открывай рот.

Вялая струйки пивной скуфьей кегли, застраяшей в 2004 году?
Аноним 16/07/25 Срд 06:48:08 3499210 306
>>3499017
>рвоньк
Терпи, тормозное гетсетное.
Аноним 16/07/25 Срд 08:57:55 3499234 307
>>3499210
Что с гет-сетами не так по твоему?
Аноним 16/07/25 Срд 16:55:11 3499594 308
>>3474778 (OP)
А есть ли пак вопросов которые задают hr-ки на скрининге? Меня хуйню спросили о которой я вообще впервые услышал
Аноним 16/07/25 Срд 17:09:18 3499608 309
>>3499594
Рассказывай, что тебя спросили
Аноним 16/07/25 Срд 17:11:18 3499611 310
>>3499608
че-то про ELK ( я вопрос даже не понял потому что не знал аббревиатуру эту)
опен телеметри че это

ну и с хр забыл про слово интернирование, но смысл значения нет ей объяснять, она не разраб, так бы меня чел по ту сторону понял и засчитал бы ответ. пиздос.
200к рублей собес на мидла
Аноним 16/07/25 Срд 18:04:04 3499641 311
>>3499611
>ELK
Elasticsearch
Logstash
Kibana

пидорас блядь, пидорасина
Аноним 16/07/25 Срд 20:49:33 3499721 312
>>3499641
я умею гуглить, спасибо
Аноним 17/07/25 Чтв 05:05:01 3499880 313
Аноним 17/07/25 Чтв 06:23:13 3499883 314
>>3499880

Где больше бойлерплейта, тут:

public string Name { get; set; }


или тут?

private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }


c# поддерживает оба синтаксиса, если что. А петухонская джава?

А вот так в джаве можно:

record Person(string Name, int Age);

?

Помоги разобраться, пожалуйста
Аноним 17/07/25 Чтв 08:52:50 3499912 315
>>3499883
И шо? Сейчас бы доебываться до размера кода. В голанге весь код - это бесконечные портянки с err != nil, ужас ужас. Тем не менее, опытные разработчики массово перекатываются на го, в дотнете остаются дауны, которые не знают, чем select * отличается от select id. На голанге пишут нагруженные сервисы, на сишарпе сидят пускают слюни в автомапер, потому что кадры решают, а не синтаксический сахар.
Аноним 17/07/25 Чтв 09:31:37 3499927 316
>>3499912
>В голанге весь код - это бесконечные портянки с err != nil, ужас ужас.
Угу, но за бойлерплейты предъявляют почему-то шарпу.
Аноним 17/07/25 Чтв 10:16:39 3499949 317
>>3499912
> И шо? Сейчас бы доебываться до размера кода.

так этот джава-петух и доебался. Я просто ему пояснил

> массово перекатываются на го

Не забудь добавить, что нас всех ЭЙ АЙ заменит
Аноним 17/07/25 Чтв 11:29:55 3500001 318
>>3499883
В джаве есть ломбок и котлин, если ты дохуя пурист. Рекорды тоже есть
Аноним 17/07/25 Чтв 11:54:57 3500020 319
Screenshot20250[...].jpg 53Кб, 1080x246
1080x246
Пентипл говорит истину.
Аноним 17/07/25 Чтв 12:58:18 3500064 320
Попробовал сделать middleware для глобальной обработки ошибок, но в режиме отладки он не срабатывает нихуя, вываливается в исключение. Это норма? Почему в гайдах, у всех работает и в режиме отладки тоже?
Аноним 17/07/25 Чтв 13:46:48 3500088 321
image.png 79Кб, 763x766
763x766
>>3500064
>Попробовал сделать middleware для глобальной обработки ошибок, но в режиме отладки он не срабатывает нихуя, вываливается в исключение. Это норма? Почему в гайдах, у всех работает и в режиме отладки тоже?
Аноним 17/07/25 Чтв 14:02:20 3500102 322
>>3500088
Да, уже понял. Вчера весь день убил, пытаясь решить эту несуществующую проблему. Хз, челы в своих гайдах могли бы и упомянуть, что нужно без дебага запускать.
Аноним 17/07/25 Чтв 14:02:44 3500103 323
изображение.png 123Кб, 1778x584
1778x584
>>3500064
Есть ещё IExceptionFilter, можешь его попробовать
Аноним 17/07/25 Чтв 14:09:14 3500108 324
>>3500064
>глобальной обработки ошибок
А хули с ними делать? Для логирования можно просто врубить стандартный функционал и сразу еще настроить откуда какие логи собирать и куда их слать.
Аноним 17/07/25 Чтв 14:15:58 3500116 325
>>3500108
>А хули с ними делать?
Ну говорят, что трай кетчи по всему коду это кал и можно исключения обрабатывать в одном месте.
Аноним 17/07/25 Чтв 14:54:40 3500144 326
>>3500116
Не, это хуевый подход.
Глобальный обработчик ошибок больше нужен для отлавливания какой-нибой непредвиденной хуйни, чтобы у тебя тупо сервис не упал из-за того-что где-то непредусмотренный таймаут или что-то еще выскочило.
Вот нахрена тебе к примеру тащить какой-нибудь ConsumeException из кафки и логику его обработки на самый верх, когда проще его обработать там где у тебя работа с ней ведется и просто самому гарантировать, что оттуда никакой эксепшен не выскочит.
Аноним 17/07/25 Чтв 15:19:49 3500165 327
>>3500144
Можно же в Middleware при ошибке сделать так

var error = ex switch
{
CustomException Exception e => new Error("e.Message"),
_ => new Error( "Внутренняя ошибка сервера")
};
context.Response.StatusCode = (int)StatusCode;
context.Response.ContentType = "application/json";
await context.Response.WriteAsJsonAsync(error);
Аноним 17/07/25 Чтв 16:18:46 3500202 328
>>3500144
>Не, это хуевый подход.
А у вас никогда не было такого, вот читаешь, учишь как надо. Потом смотришь другой источник, там говорят, что это хуйня, надо по-другому. Переделываешь. Потом смотришь третий, там пишут, что это тоже хуйня, надо вообще иначе.
Почему вот с программированием постоянно так?
Аноним 17/07/25 Чтв 19:07:24 3500300 329
>>3500116
>трай кетчи по всему коду это кал и можно исключения обрабатывать в одном месте.
Больше слушай долбоебов. Исключения надо ловить там где он происходят и ты их ждёшь, причём типизированые и писать нормально логи контекста этого исключения.

Тем более маразм это try catch в корне вызова. Ты таким макаром перфоманс в 0 просто убиваешь потому что это очень дорогая операция.
Аноним 17/07/25 Чтв 19:19:25 3500302 330
>>3500165
Можно сделать что угодно. Я говорил о том, что ловить эксепшены в отдельной мидлвари можно, но тащить туда именно их обработку со всех слоев - такое себе занятие.

>>3500202
Постоянно, но ведь так веселее. Иначе разработка была бы весьма унылым занятием.
Опять же любой подход это всего лишь инструмент для которого есть своя область применения. Даже для goto можно найти ситуацию которая сэкономит тонны кода, времени и тактов.
Аноним 17/07/25 Чтв 19:39:35 3500314 331
>>3499234
>Что с гет-сетами не так по твоему?
Нарушают инкапсуляцию же.
Аноним 17/07/25 Чтв 22:35:24 3500432 332
Аноним 17/07/25 Чтв 22:36:06 3500433 333
>>3500314
Вот это реальный пример долбаеба который где-то что-то услышал и просто репродуцирует чужое мнение
Аноним 18/07/25 Птн 02:50:14 3500555 334
ыв.jpg 25Кб, 596x485
596x485
>>3500314

Это как запрещать вызовы в БД потому что это не чистые функции
Аноним 18/07/25 Птн 08:57:53 3500611 335
>>3500432
>>3500433
Если ты можешь в любом месте программы поменять поле через другую ссылку на тот же инстанс, то это поломанная инкапсуляция.
Аноним 18/07/25 Птн 09:55:56 3500636 336
>>3500611
>джун не знает про anemic
Аноним 18/07/25 Птн 09:58:06 3500639 337
>>3500611
>то это поломанная инкапсуляция.
Ты долбоеб. Проперти с get-set-init как раз и есть чистейший пример нормальной инкапсуляции. По сути это и есть контракт который ты выставляешь наружу закрывая им детали реализации того что в реальности у класса там под капотом за этим проперти содержится.
Аноним 18/07/25 Птн 10:39:45 3500664 338
>>3500639
>закрывая им детали реализации
Так ты гет-сетами наоборот, открываешь детали и показываешь, что там у тебя внутри класса творится. Доступа к полям, даже через промежуточные методы, быть не должно, если ты нормальное ООП хочешь, а не его подобие.
Аноним 18/07/25 Птн 10:50:07 3500681 339
>>3500636
Но знать про анемик может и тот кто его не любит
>>3500639
Нарушают инкапсуляцию, потому-то сеттеры выносят логику изменения состояния объекта извне, потому что позволяют частично и произвольно изменить состояние объекта. В идеальном случае должен быть один метод, который делает всю работу за одни вызов.

мимо
Аноним 18/07/25 Птн 11:04:29 3500703 340
>>3500664
Но это только в твоей картине мира. В ФП инкапсуляция не нужна. ФП приложение это либо
1) один огромный стейт и куча операторов, функционалтных апдейтов, которые применяются к стейту через рекрсивный вызов main функции. А логика выбора оператора на каждом шаге рекурсии обычно через паттерн матчинг состояния делается.
2) однопроходная функция с вводом и выводом данных
Аноним 18/07/25 Птн 11:10:34 3500707 341
Нахуя метаете бисер перед жабасвиньями?
Аноним 18/07/25 Птн 12:27:54 3500758 342
>>3500703
>Но это только в твоей картине мира
Расскажи про свою, где инкапсуляция сохраняется.
Про ФП я ни слова не писал, не знаю зачем ты мне про него расписываешь.
Аноним 18/07/25 Птн 12:44:29 3500769 343
>>3500639
>Проперти с get-set-init как раз и есть чистейший пример нормальной инкапсуляции.

А чем это отличается от того, чтобы филд ЗАЭКСПОУЗИТЬ.

Нихуя я слово знаю, да? я англичанин а ты пидор
Аноним 18/07/25 Птн 12:47:36 3500772 344
>>3500664
>показываешь, что там у тебя внутри класса творится.

В DDD у объекта не предусмотрено свойств. Он может только получить событие извне, чтобы не раскрывать свой публичный контракт
Аноним 18/07/25 Птн 12:49:01 3500775 345
>>3500703
>Но это только в твоей картине мира. В ФП инкапсуляция не нужна. ФП приложение это либо
>1) один огромный стейт и куча операторов, функционалтных апдейтов, которые применяются к стейту через рекрсивный вызов main функции. А логика выбора оператора на каждом шаге рекурсии обычно через паттерн матчинг состояния делается.
>2) однопроходная функция с вводом и выводом данных

Всё правильно, только ФП в DDD не предусмотрен и не используется
Аноним 18/07/25 Птн 14:28:53 3500861 346
>>3500681
Чем вызов zalupa.SetPupa(42) отличается от zalupa.Pupa = 42.

Оба варианта это одинаковый IL и байт код. Проперти это сахар.
Аноним 18/07/25 Птн 14:35:05 3500870 347
>>3500861
Ничем. 2-ой вариант это путь шарпо господина, а 1-ый — джава дебила.

мимо
Аноним 18/07/25 Птн 19:18:42 3501062 348
>>3500861
На уровне сборки свойства и методы это разные вещи. Рефлексия по разному работает.

Джавка хуйня, кстати я с ней на дотнет перешёл
Аноним 18/07/25 Птн 19:28:49 3501073 349
>>3500861
Речь про то, что оба твои варианта ломают инкапсуляцию. А не то, что один лучше другого...
Аноним 18/07/25 Птн 23:58:30 3501318 350
>>3499883
> Где больше бойлерплейта, тут:

> public string Name { get; set; }
> public string Surname { get; set; }
> public string Anus { get; set; }
> public string Hui { get; set; }
> public string Govno { get; set; }
> public string Muravei { get; set; }

> или тут?

> @Getter @Setter
Во втором, наверное. Хз.

Зачем тебе кстати гетсет если проперти публичные? Чтобы что?

>record Person(string Name, int Age);
Давно можно, ты откуда свалился? Только редко используется это ибо ломбок гибче.
Аноним 18/07/25 Птн 23:59:25 3501321 351
>>3499912
Кто перекатывается на говно? Хуйню не неси.
Аноним 19/07/25 Суб 00:21:35 3501331 352
>>3501318
>Зачем тебе кстати гетсет если проперти публичные?
Потому что свойства блять это блять не поля класса. У тебя при сборке свойство разворачивается в приватное поле, метод сеттер и метод геттер.
Тебя не смущает что свойства могут быть частью интерфейса и их сеттер геттер могу иметь атрибут доступа, а еще к они могут быть виртуальные и абстраные. Прям как методы.
Аноним 19/07/25 Суб 00:25:45 3501333 353
>>3501331
Какая-то бесполезная мозгодрочка ибо индусы из микрософта не смогли в белый дизайн. Ясно.
Аноним 20/07/25 Вск 02:36:50 3501895 354
>>3501331
>Тебя не смущает что свойства могут быть частью интерфейса и их сеттер геттер могу иметь атрибут доступа, а еще к они могут быть виртуальные и абстраные. Прям как методы.

Это для чего? Чтобы DDD программировать? Когда у объекта 5 методов и 10 свойств?
Аноним 20/07/25 Вск 14:04:01 3502051 355
>>3501333
Блин, до чего же ты тупой.
Это нужно, чтобы можно было писать
user.Name = "джавадебил" вместо user.setName("джавадебил").
Я понимаю, что у некоторых ООП головного мозга и они бы не прочь писать 5.multiplyBy(3).subtract(2), но нормальные люди так писать не хотят.
А поля не используют, потому что инкапсуляция. Ты можешь развернуть сеттер в код и добавить какую логику не нарушая сигнатуры, точно так же, как и с лобковым set-методом.
Аноним 20/07/25 Вск 19:28:31 3502243 356
image.png 5Кб, 369x82
369x82
В .NET 10 такая конструкция ничего не выделяет (хоть и кодеген мог бы быть и лучше).

Escape analysis круто работает на простых примерах, но было бы намного интереснее посмотреть на него в NativeAOT как межпроцедурный анализ. https://github.com/dotnet/runtime/issues/108931

Решил тоже что-то высрать, а то чем я хуже?
Аноним 20/07/25 Вск 22:39:23 3502390 357
>>3502243
Каждый раз проигрываю с этого манямирка. Кто и для кого придумывает это байтоебство? Аудитория дотнета - это дебилы с автомапером, они в локальном сука процессе умудряются делать вызовы через медиатр. Место дотнета давно у параши рядом с руби.
Аноним 20/07/25 Вск 23:51:03 3502447 358
>>3502390
Не для тебя, ведь тебе в джаву нихуя не завезли и тебе и так нормально работать с срущими в память буферами, а то что перфоманс будет соответсвующий - да похуй, стерпят, не игры же делаем, фпс не важен.
Аноним 21/07/25 Пнд 00:53:49 3502495 359
>>3502447
Джунишка, никто на сишарпе не пишет блокчейны, кванты и прошивки для дронов, это литерали язык для попукивания в кафку. И даже тут он проигрывает джаваскрипту, ебаный стыд. Смешно говорить о перфомансе хуйни, которая сначала отжирает кучу память просто так, а потом в любой момент может встать раком и начать шуршать собирать мусор.
Аноним 21/07/25 Пнд 01:02:10 3502502 360
>>3502495
>отжирает кучу память просто так
Твоя джава хуйня жрёт в разы больше. У нас сервисы на 500мб памяти работают, жрут не больше 200 обычно под нагрузкой.

>а потом в любой момент может встать раком и начать шуршать собирать мусор.
Современный дотнет уже давно умеет собирать мусор без остановки потока приложения. И да как-будто твоя хуежава не собирает мусор.
Аноним 21/07/25 Пнд 01:42:48 3502514 361
Аноним 21/07/25 Пнд 03:32:13 3502531 362
image.png 71Кб, 836x866
836x866
>>3502390
>байтоебство
Ну escape analysis и object stack allocation (и девиртуализация нормально так помогает), могут сработать в любом твоём говнокоде и улучшить производительность, уменьшить аллокации и т.д., при этом всё что нужно сделать, так это обновиться до нового дотнета.

>>3502495
>Смешно говорить о перфомансе хуйни, которая сначала отжирает кучу память просто так, а потом в любой момент может встать раком и начать шуршать собирать мусор.
Ну вот в новом дотнете эта хуйня будет меньше отжирать памяти и вставать раком чтобы собрать мусор.
Ну а некоторым рукожопам сколько мощностей не дай их код всё равно будет тормозить, что тут сделаешь?

Ну вот к примеру есть у тебя метод Sum(IEnumerable<int> e). Вот JIT сгенерит код, это код немного поработает и соберёт инфу о том что в твой метод почти всегда приходит List<int>, ну и JIT перкомпилит код вставив проверку на этот лист, и соответсвенно оптимизирует код под него. Вот тебе бесплатный перф. Что тебе не нравится?

>JIT: De-abstraction in .NET 10
https://github.com/dotnet/runtime/issues/108913
Аноним 21/07/25 Пнд 04:20:54 3502536 363
>>3502531
Еще раз: никто не пишет высокопроизводительный код на дотнете. Литерали никто. Криптоскам пишут на расте. Кванты на плюсах. Драйвера на си. У этих людей нет проблемы эффективно посчитать сумму массива, это только в дотнете дебилы без автомапера и ефкора хелоуворлд не напишут. Эти твои микро оптимизации до пизды, один хуй сверху навалят медиатора, ддд побольше, и чтобы 50 микросервисов висели на кафке, больше кафки богу кафки нахуй. Ебланы из майкрософт сначала убили нахуй репутацию языка, зафорсили как язык для тупых паджитов, а теперь чето зачесалось. Поздно метаться.
Аноним 21/07/25 Пнд 05:58:23 3502548 364
>>3502536
>Еще раз: никто не пишет высокопроизводительный код на дотнете.

Я пишу
Аноним 21/07/25 Пнд 06:08:53 3502549 365
>>3502536
> один хуй сверху навалят медиатора, ддд побольше, и чтобы 50 микросервисов висели на кафке, больше кафки богу кафки нахуй

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

Дотнет это золотая середина всей вашей хуйни. Мода меняется. Вчера в моде был nodejs+typescript, сегодня python. Дотнет просто стабильно в топе по популярности.
Аноним 21/07/25 Пнд 18:50:21 3502904 366
>>3478218
господи как же этот мужчина шарит
мимо пишу всю жизнь на controller/service/repository, дто для request/response в контроллере, дто для бд по ситуации
всё летает нахуй
Аноним 22/07/25 Втр 04:43:37 3503129 367
>>3502904

Да хуй с ним, насколько оно быстро-медленно работает.

Там же с этим вашим DDD и автомаппером хуй чего разберёшь. Тупо падает не производительность кода, а производительность разработчика.

Откуда берётся свойство - хуй знает.

В каком из пяти слоёв вносить изменение, когда все пять слоёв высосаны из пальца - тоже хуй знает

Я ебал всю эту многослойную поеботу, когда для того, чтобы замаппить таблицу и внешний запрос требуется 3-4 раза вызвать автомаппер, а часть кода должна каким-то ебучим образом вызваться САМА в декларативной форме через эмуляцию рэббита внутри процесса.

Все эти обоссаные доменные сервисы, с трёхслойными дженериками подходят только для простейших круд-репозиториев.

Но простейшие круд-репозитории можно и без этой хуйни писать.

Ебать, эта такая боль была, когда мне после первой работы, где мы три года ебались с медиатором ОБЪЯСНИЛИ, ЧТО ВЫЗЫВАТЬ NEW МОЖНО, и свойства можно просто проставить из одного объекта в другой.

Я теперь пишу простейший CQS на стандартном контейнере и уже год нет проблем
Аноним 22/07/25 Втр 09:00:27 3503180 368
>>3503129
>медиатором ОБЪЯСНИЛИ, ЧТО ВЫЗЫВАТЬ NEW МОЖНО
Как в твоей шизофрении связаны медиатор и вызов new?
Фабрики сущностей пишут когда для создания требуется вызов еще 5 других сервисов и логики на 200 строк. Вот чтобы каждый раз не писать все это пишут фабрики.
Аноним 22/07/25 Втр 09:09:56 3503188 369
>>3503180
Так, что вся эта пиздобратия ходит под ручку.

Подклчюаешь медиатр - требуется автомаппер, в уме держишь DDD, а в контроллерах у тебя гексагональный эвент-сорсинг, а чистая архитектура погоняет BestPractices
Аноним 22/07/25 Втр 09:27:42 3503192 370
>>3474778 (OP)
Сап, шарпаноны, в универе учим Java, но в городе толковых вакансий по ней нет, хотя, собственно как и на .NET, везде от 3 лет опыта. Я просто хотел бы поинтересоваться, как по вашему мнению, на чем легче найти первую работку, любую, мне хочется хотя бы полгодика опыта наработать до конца ВУЗа. Спасибо
Аноним 22/07/25 Втр 11:56:42 3503247 371
>>3503192
Пойди на джаве поработай, посмотри этот ёбаный цирк с абстрактными фабриками билдеров посетителей DDD Эвент-сосинг

A потом можешь на дотнет собеситься. В дотнет не берут джунов, вы нахуй не нужны
Аноним 22/07/25 Втр 11:58:27 3503248 372
>>3503192
На 1С)))) И нет, это не шутка. Ну и кстати неплохой старт в финтех, когда видишь цельное и достаточно простое финансовое приложение, хоть кривое косое и медленное.
Аноним 22/07/25 Втр 14:51:34 3503366 373
>>3503192
На джаве больше работы
>>3503247
> Пойди на джаве поработай, посмотри этот ёбаный цирк с абстрактными фабриками билдеров посетителей DDD Эвент-сосинг
На шарпе то же самое.
Аноним 22/07/25 Втр 15:18:58 3503402 374
>>3503366
>На джаве больше работы
Ага, попизди мне. На джаве дохуя вакансий, на рабских галерах, где всё уже свершилось 10 лет назад и осталось только нести крест за мамкиных ООП архитекторов, которые говна понаписали и съебались

Джава ужасна, это всегда пропёрженое легаси, которое само поломалось, а затем само починилось
Аноним 22/07/25 Втр 15:50:11 3503428 375
>>3503402
Меняшь джава на шарп, и получаешь ровно тоже самое.
Аноним 22/07/25 Втр 15:54:48 3503434 376
>>3503428
> Меняшь джава на шарп

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

Одни только таски TPL экономят человекомесяцы
Аноним 22/07/25 Втр 16:46:27 3503492 377
>>3503434
>Новые проекты начинают на дотнете
Где конкретно?
Аноним 22/07/25 Втр 16:54:58 3503502 378
>>3503492
>Где конкретно?

У меня. Весь форкес 5 лет назад массово начал вались с джавы. Беки для мобилок, беки для небольших сайтов. Банки, озон, майндбокс, сбер, альфабанк, тинькофф. Дохера кто валит с джавы
Аноним 22/07/25 Втр 17:18:05 3503535 379
zz.png 82Кб, 1128x1218
1128x1218
>>3503502
А в тиньке в курсе, что они переезжают на .net?
Аноним 22/07/25 Втр 17:22:11 3503541 380
Стикер 0Кб, 512x512
512x512
>>3503502
>Весь форкес 5
А фарма переехала с позапе на шарп?
Аноним 22/07/25 Втр 18:23:44 3503621 381
>>3503129
только ради тебя спиздил с работы два класса:
первый и ебейший
public abstract class GenericGisUiPrepareExportDataThread<ItemKey extends GenericGisObjectKey, GisExportData extends GenericGisResultObjectData<ItemKey> & GisRequestData<GisExportResultData,ItemKey>, GisExportResultData extends GenericGisResultObjectData<ItemKey>, GridItem extends GenericGisExportGridItem<ItemKey,GisExportData,GisExportResultData>, DataProviderType extends DataProvider<GridItem,SerializablePredicate<GridItem>>> implements Runnable

второй и менее ебейший
public class ProcOrgNsiWorksExportPrepareGridExportDataThread extends GenericGisUiPrepareExportDataThread<GisWorkExportObjectKey, GisRequestNsiWorkExportData, GisRequestWorkExportResultData,ExportWorksGridItem,ListDataProvider<ExportWorksGridItem>>

ебало моё представляешь? первая работа, 1.5 месяца уже работаю - один хуй тяжко
Аноним 22/07/25 Втр 22:41:13 3503837 382
>>3499883
>
>А вот так в джаве можно:
>
>record Person(string Name, int Age);
>
>?
>
>Помоги разобраться, пожалуйста
да
Аноним 22/07/25 Втр 23:44:18 3503893 383
>>3499883
> record Person(string Name, int Age);
Что, даже сеттеры завезли?)))0)0)
Аноним 23/07/25 Срд 02:47:33 3503923 384
17530788271050.jpg 66Кб, 498x486
498x486
>>3502390
>дебилы с автомапером
>умудряются делать вызовы через медиатр

Ты не понимаешь, это гексогональный эвент-сорсинг CQRS и чистая архитектура
Аноним 23/07/25 Срд 17:43:11 3504308 385
аноны с чего начать изучение web api?
Аноним 24/07/25 Чтв 03:05:37 3504505 386
>>3504308

https://github.com/LuckyPennySoftware/MediatR
https://abp.io/

https://www.postsharp.net/

По сути тебе нужно освоить как пишутся агрегатные DDD сервисы, когда ты создаёшь один общий сервис для всех своих сущностей, а поведение добавляешь через спецификации, AOP или прочие практики метапрограммирования

Почитай как запускать шину сообщений, которая может паблишить события как внутри текущего процесса так и по кафке

Почитай как перехватывать доменные события через динамические прокси https://www.castleproject.org/projects/dynamicproxy/

Почитай, как оптимизировать SQL запросы с помощью автомаппера
https://automapper.io/
Аноним 24/07/25 Чтв 03:29:42 3504507 387
>>3504505
>шину сообщений внутри текущего процесса
Ебаный пиздец! Можно сколько угодно заниматься эскейп анализом и дрочить бенчмарки, но в реальности приходят паджиты и мажут код толстым слоем ддд говна.
Аноним 24/07/25 Чтв 03:53:25 3504509 388
>>3504507

Тебе не обязательно раббит или кафку использовать для интеграции шины сообщений. Можешь взять https://masstransit.io/ + ABP.Volo

Они взаимно интегрируются и тебе вообще не надо знать, как это работает. Просто получаешь доменные события по агрегатам
Аноним 24/07/25 Чтв 06:25:22 3504515 389
Аноним 24/07/25 Чтв 12:51:42 3504690 390
Аноны, как из джуна стать миддлом?
Работаю сейчас в конторе, у которой свои самописные технологии монолит еще с 2011 года. Современных фреймворков и инструментов тут нет. То есть опыта по современному стеку я тут не получу.
Что делать? Самообучаться только?
Аноним 24/07/25 Чтв 13:43:34 3504740 391
423.png 106Кб, 1328x767
1328x767
Анон, поясни пожалуйста за этот момент, потому что я сейчас ёбнусь с этой чёрной бухгалтерией. Итак, есть некое целое число. Мы отправляем это число в отдельный метод, где оно должно быть разложено на составляющие его числа (например, число 123 раскладывается на 1, 2 и 3). Я решил сделать это через строку, т.к. оно попазалось мне лёгким. В результате, я засовываю переданное в метод число в некую строку, затем вычленяю из этой строки нужный мне символ, и с помощью метода Convert преобразую этот символ в число. В итоге, метод выдаёт мне какую-то хуйню. И что самое странное - этот же код, написанный в main, работает корректно, возвращая мне нужное число из строки. Я долго не мог понять, почему в мэине всё работает, а в методе начинает творится хуйня. В итоге, я установил, что всему виной операция + "\n" в мэине. Т.е. перенос на новую строку. Я хз, как это работает, но с припиской "\n" в параметре метода, оно начинает выдавать корректные значения, а без него - хуй. Как это вообще работает?
Аноним 24/07/25 Чтв 14:19:02 3504765 392
>>3504740
Ты берешь char из стринга. В мэйне с "\n" ты превращаешь char в string, поэтому все корректно.
Когда ты приводишь char к int, он дает тебе код char'а. Видимо, getInt32 работает таким же образом.
А вообще ты можешь просто разделить число на цифры операциями % и /.
Аноним 24/07/25 Чтв 14:24:47 3504772 393
>>3504765
Спасибо, теперь понятно. Один только вопрос - а использовать "\n" в параметре метода Convert -это вообще считается дурным тоном? Потому что, как мне кажется, оно здорово облегчает эту ебаторию. Касательно реализации через деления числа (тот же %) - я думал про это. Но мне нужно было сделать всё через рекурсию, и я не сообразил, как сделать на каждом вызове так, чтобы из исходного числа (которое, в идеале, может быть любой длины) каждый раз бралось нужное число. Через строку это показалось проще, т.к. она просто массив символов, и ничего делить не надо.
Аноним 24/07/25 Чтв 14:34:31 3504779 394
>>3504772
Дурным тоном считается конвертировать литерал в число которое литерал представляет через конвертацию именно этим апи. Для такого есть int.Parse, float.Parse и т.д. включая возможность уточнять форматирование числа (например точка или запятая для плавающих чисел или разбиение разряда). Делай по документации, не по документации не делай.
Аноним 24/07/25 Чтв 14:59:48 3504798 395
17530788271050.jpg 66Кб, 498x486
498x486
>>3504690
>То есть опыта по современному стеку я тут не получу.

современный стек это умение обходиться без этой вот вашей всякой хуйни.

Или ты решил обложиться говном типо AOP, медиатра, монго-биби и писать микросервисы внутри десктопного приложения?
Аноним 24/07/25 Чтв 15:00:17 3504799 396
>>3504740
коды раскомментируй, может заработает
Аноним 24/07/25 Чтв 15:01:20 3504801 397
>Мы отправляем это число в отдельный метод, где оно должно быть разложено на составляющие его числа (например, число 123 раскладывается на 1, 2 и 3). Я решил сделать это через строку, т.к. оно попазалось мне лёгким.
Это полный пиздец! С одной стороны у нас люди которые претендуют на роль программистов, но при этом не понимают отличие цыфры от числа и не знают как разложить число на цыфры. С другой стороны у нас AI который постоянно галлюцинирует.

Мы обречены.
Аноним 24/07/25 Чтв 15:07:27 3504808 398
>>3504801
Я, конечно, обосрался с тем, что обозвал цифры "числами" в своём посте (и нет, я различаю эти понятия на логическом уровне, просто невнимательно написал). Но ты, чучело, дважды написало "цифры" через "ы". Это тоже многое говорит о тебе. А уж сопоставлять обучение типичного вкатуна на начальной стадии с такими широко идущими выводами, типа "ох, измельчал современный программист" - это вообще пушка.
Аноним 24/07/25 Чтв 15:48:06 3504866 399
>>3504808
>типичного вкатуна на начальной стадии
Типичного школьника ты хотел сказать, эту хрень сейчас в 7...8 классе проходят. Для вкатуна перед тобой уже не должно подобных проблем вставать.
Аноним 24/07/25 Чтв 15:55:07 3504870 400
>>3504808
>Но ты, чучело, дважды написало "цифры" через "ы".
Филолог хуёв, иди на свободную кассу! Хули ты в программирование полез?
Аноним 24/07/25 Чтв 16:21:24 3504899 401
БАМП ВОПРОСУ >>3504690
Хочу понять, что делает джуна мидлом. Можно ли искусственно без опыта стать мидлом?
Какие вумные книжки и статьи на хабре нужно читать?
>>3504798
Раз этого требует современный бизнес, то почему нет. Я хочу быть востребованным и нужным.
Аноним 24/07/25 Чтв 17:02:28 3504923 402
>>3504899
Никак. Только практика, только шишки. Книги тебе пробустят теорию, а практику - либо пиздуй на гит и смотри что там выложили индусы для всяческих курсов либо слушай подкасты/митапы бывалых энтерпрайз каломесов и пытайся на коленке собрать какой-нибудь прототип. На гите найти что-то вменяемое навроде готового продукта почти нереально, потому что это такая область где 99% кода - это каловая смесь из репозиториев с сущностями к которым прикручены ручки с кешами и всё накрыто nda.
Аноним 24/07/25 Чтв 17:46:02 3504944 403
>>3504690
>как из джуна стать миддлом?
Очевидно, получить оффер на мидла. Крути опыт, ходи по собесам, к десятому будешь отвечать как боженька. Я, блять, на стафф инженера сейчас собеседуюсь по голенгу, имея ноль лет опыта в этом самом голенге, а ты на мидла стесняешься.
По поводу технологий: везде в продукте будет свой самописный стек, это нормально. Модные крутые актуальные штуки есть только на галерах, где проекты по 3 месяца.
Аноним 24/07/25 Чтв 21:36:04 3505085 404
>>3504899
>Раз этого требует современный бизнес
Современный бизнес требует, чтобы сделано было вчера, а не конкретные технологии. В большинстве случаев тебе дается минимальный срок на то, чтобы разобраться и сделать. Вот на навык быстро найти информацию, обработать её, понять и применить и дрочи.
Аноним 25/07/25 Птн 00:42:25 3505173 405
изображение.png 349Кб, 619x504
619x504
Солон уже сто раз пожалел, что ушел от смешанного туалета и платежеспособной аудитории.
У него сейчас буквально два флопа подряд идут, вайфуэнджоеры не платят почему-то...
Аноним 25/07/25 Птн 00:51:46 3505175 406
image.png 1206Кб, 1000x651
1000x651
>>3475505
Полтора месяца плотнейшего пердолинга - первый оффер (раб за 100 тысяч веток в месяц), причем даже не аутстафф

Хотя наебать приукрасить про опыт и образование все же пришлось...
Аноним 25/07/25 Птн 03:12:31 3505203 407
>>3504899
>что делает джуна мидлом
опыт

> Можно ли искусственно без опыта стать мидлом?
нет. Но половина разработчиков навсегда остаётся джунами
Аноним 25/07/25 Птн 08:20:36 3505240 408
>>3496961
>Ещё раз. Если тебе надо кучу реплик с транзакциями, у тебя там гостайны или банковские балансы, ну храни это в реляционной бд
Так и скажи что база данных для тех кто помимо пуканья в кафку хочет пукать еще куда-нибудь. В какое приложение не плюнь - остатки, баланс, обороты, даже в аналоге джиры надо посчитать кпи.
Аноним 25/07/25 Птн 12:00:23 3505397 409
>>3502051
> user.Name = "шарпосвинота"
> user.name("шарпосвинота")
Ну хз хз. Мне кажется во втором покороче.
Аноним 25/07/25 Птн 12:01:43 3505399 410
А самое главное читаемее! Вместо индусского позорища в котором какие-то инструкции выполняются при = "хуй". Пиздарики!
Аноним 25/07/25 Птн 12:17:12 3505411 411
>>3505397
> user.name("шарпосвинота")

в шарпах по нормальному сделано, а это хуйня какая-то
Аноним 25/07/25 Птн 13:02:58 3505452 412
>>3505411
>выполнять инструкции при =
>по нормальному
ээээ
Аноним 25/07/25 Птн 13:51:03 3505491 413
>>3505452
можешь это рассматривать как разновидность перегрузки оператора присвоения. Ах да, у джавы же нет перегрузки операторов. И много чего еще нет. Только обмазываться анотационной кодогенерацией и дрочить остается, получается, зато по кайфу и все понятно.
Аноним 25/07/25 Птн 13:56:36 3505497 414
>>3505491
>вот какие вы лохи, вам не завезли нечитаемости кода, сидите разрабатываете реальные программы вместо того чтобы разбираться что эта строка значит
мда
Аноним 25/07/25 Птн 14:01:27 3505502 415
>>3505497
>вот какие вы лохи, вам не завезли нечитаемости кода

Щас бы в 2025 году из петушиного угла кудахтать про нечитаемость кода в c#.

Чел, вы бы хоть асинки завезли в ебучую джаву
Аноним 25/07/25 Птн 14:05:26 3505503 416
>>3505502
>ну да, пиздец конечно лохи, даже засирать код асинками вам не дают, всё слишком чисто
мда
Аноним 25/07/25 Птн 14:13:02 3505506 417
>>3505503
сыглы, надо засирать код actionblock`ами, ведь коллбечиться из гринтредов это такая приятная олдскул маза, век бы писал на таком
Аноним 25/07/25 Птн 14:17:16 3505510 418
>>3505506
Не перестаю поражаться манямирку в котором живут шарпобляди.
Аноним 25/07/25 Птн 14:19:19 3505513 419
>>3505510
научи о великий как надо синхронизировать стейты гринтредов для паралеллизации
Аноним 25/07/25 Птн 14:21:36 3505516 420
>>3505513
Что значит синхронизировать стейты?
Аноним 25/07/25 Птн 14:25:57 3505520 421
>>3505516
promise.then(..).then(..).then(..) и whenall как это сделано в нормальном шарпе
Аноним 25/07/25 Птн 14:28:25 3505522 422
Аноним 25/07/25 Птн 14:31:04 3505523 423
>>3505522
согласен, я брежу шарпом на фоне джавоговна и хочу вновь туда вернуться
Аноним 25/07/25 Птн 14:32:29 3505524 424
>>3505523
>вжжжж инструкции на = и копроасинки это хорошо яскоооозал и буду повторять каждый день потому что если не повторю хоть раз наступит кризис среднего возраста
Аноним 25/07/25 Птн 14:41:00 3505527 425
>>3505503
Почему ты реплаишь не то, что тебе пишут, а то, как ты это понял. Ты тупой?
Аноним 25/07/25 Птн 14:42:32 3505529 426
>>3505527
Суть в том что в твоём бреде в принципе мало информации на которую можно отвечать.
Аноним 25/07/25 Птн 14:44:28 3505530 427
>>3505510
Нахуя нужна джава в 2025 году?
Аноним 25/07/25 Птн 14:45:07 3505532 428
>>3505530
Писать программы и не страдать?
Аноним 25/07/25 Птн 14:48:00 3505537 429
>>3505532
Ты пришёл к нам в тред рассказывать как ты пишешь программы на джаве и вовсе не страдаешь?

Ну ладно
Аноним 25/07/25 Птн 14:49:24 3505540 430
>>3505537
Над шарпосвиньями издеваюсь просто потому что они никак проглотить не могут и продолжают слать мне уведомления. Я даже на сосач не захожу сейчас особо, но как раз в неделю захожу так кто-то тут рыло под мочу подставил в этом ИТТ треде.
Аноним 25/07/25 Птн 14:52:00 3505544 431
>>3505532
>писать программы
>не страдать
взаимоисключающие понятия для джаваговна. Впрочем как скриптовый язык для создания ручек, сущностей, репозиториев и иногда обращения к системному io - под пиво покатит, 1с похуже
>>3505540
ты даже не знаешь что такое синхронизация результатов асинхронных и многопоточных функций, ты просто залетуха чуханская на которую тред не ссыт из брезгливости, ведь говно лучше не трогать - воняет
Аноним 25/07/25 Птн 14:53:12 3505547 432
>>3505544
>нет ты нет ты нет ты нет ты!!!!!!
Я-то хотя бы асинки не пишу, бгггг.
Аноним 25/07/25 Птн 14:53:38 3505548 433
>>3505540
>Над шарпосвиньями издеваюсь

Ты ничего толкового не сказал
Аноним 25/07/25 Птн 14:54:55 3505550 434
>>3505548
Почему это? Обоссал все нахрюки с пруфами. Я в этом треде составляю 120% разума и толка.
Аноним 25/07/25 Птн 15:02:59 3505558 435
>>3505550
> Обоссал все нахрюки с пруфами.
Как? Можешь последовательно объяснить свою позицию? Смотри, я ушёл с джавы на c# и очень доволен. Мне нравятся асинки, нугет, и в целом он получше устроен.

Можешь меня убедить в обратном или тебе просто неприятно?
Аноним 25/07/25 Птн 15:04:56 3505560 436
>>3505558
Непробиваемость и бесконечная пиздлявость некоторых индивидов мало чего доказывает.
Аноним 25/07/25 Птн 15:34:30 3505597 437
175344685199935[...].jpg 71Кб, 1080x790
1080x790
>>3505558
>Мне нравятся асинки, нугет
Аноним 25/07/25 Птн 15:43:34 3505611 438
>>3505597
Ок, тебе по всей видимости просто НЕПРИЯТНО.
Аноним 25/07/25 Птн 16:14:40 3505656 439
>>3505240
Я имел в виду конкретно деньги, которые нельзя терять вообще. Для всего остального та мизерная разница в надёжности между sql и монгой вполне оправдана упрощением кода, что само ведёт к уменьшению богов.

>>3505397
>> user.name("шарпосвинота")
>Ну хз хз. Мне кажется во втором покороче.
Лобок генерирует setName(). Если ты хочешь делать name(), у тебе придётся писать реализацию самому.
private String m_name;
public String name() {
return m_name;
}
public void name(String name) {
m_name = name;
}

VS

public string Name { get; set; }

Вот уж бойлерплейтище.
Аноним 25/07/25 Птн 16:44:58 3505683 440
>>3505656
>Я имел в виду конкретно деньги, которые нельзя терять вообще
получается принтер за n денег который по милости отсутствия в монге способов атомизации задвоится или уйдет в минус в управленческом учете не так и страшно, да? Да, шанс на самом деле мизерный, но все же есть. Получается что за консистентность в нашем говне которе почему то называется бд для работы с важными данными, в ответе только господь бог, планировщик потоков и разраб, которому не повезло. При этом по скорости будет сосать у редиса. Так зачем же?
Аноним 25/07/25 Птн 17:26:44 3505717 441
>>3505683
Сохранение целого документа -- это одна операция. У тебя может возникнуть инконсистентность при сохранении нескольких документов, но во-первых каждый документ в монге это десяток, а то и больше записей в рбд, а во-вторых можно добавить механизм локов выше в абстракции. Тебе и для рбд такое пригодится, чтобы не ебаться с мерджем изменений от двух разных пользователей.
Аноним 25/07/25 Птн 17:41:27 3505733 442
>>3505717
Монга - это каловое легаси от дебилов, которые 10 лет назад повелись на форс этого говна. Это огромный красный флажище в вакансии. Нет пути.
Аноним 25/07/25 Птн 18:53:35 3505791 443
Аноним 25/07/25 Птн 19:01:45 3505795 444
>>3505717
>документ в монге

Монго это ебучий кал для долбоёбов.
Аноним 25/07/25 Птн 19:04:16 3505796 445
>>3505791
Что это? Очередная аннотация? Как spring со своим DDD в XML.
Аноним 25/07/25 Птн 19:06:33 3505797 446
>>3505497
Что вы там блять разбираете постоянно. Мне похуй что это значит вызов метода сеттера, мне важно ЧТО ПРОИСХОДИТ а не КАК. Вот серьёзно вы реально каждую строку читайте и думаете "так вот тут у нас такое условие" я просто читаю код как книжку и все.
Аноним 26/07/25 Суб 00:51:56 3505988 447
>>3505796
геттер сеттер из сторонней библиотеки

хз как можно копротивляться за джаву, когда очевидно, что это устаревший говноязык, живущий только за счет легаси

мимо бывший джавист
Аноним 26/07/25 Суб 04:17:17 3506038 448
>>3505797
>мне важно ЧТО ПРОИСХОДИТ а не КАК

Императивная хуйня. В нормальном DDD поведение объекта должно быть скрыто от разработчика.

Разработчику достаточно настроить событийную модель и поддержать пару пайплайнов, чтобы аналитик мог в декларативной форме описывать сценарии на ubiquitius language.
Аноним 26/07/25 Суб 05:47:59 3506040 449
>>3506038
>DDD
Гуманитарная хуйня. Не нужна.
Аноним 26/07/25 Суб 08:42:43 3506058 450
>>3506038
>Императивная хуйня.
И чем плохо? Ты функциональный шизик с лиспохаскеллем?
Аноним 26/07/25 Суб 10:52:09 3506088 451
>>3506058
Функциональная шиза тоже нахуй не нужна. Писать нужно на таком уровне абстракции, чтобы разработчик ничего не знал о деталях реализации логики приложения.

В коде описывается один общий репозиторий под аггрегаты и событийная модель. Поведение настраивается через AOP c помощью XML аналитиками или в крайнем случае в коде по паттерну спецификация.

Только так можно добиться чистого кода без запахов.

Мимо 5 лет в чистом DDD
Аноним 26/07/25 Суб 14:19:57 3506173 452
>>3505733
>>3505795
Ну то есть аргументов у вас нет. Молодцы.

>>3505791
Очередной бойлерплейт. Вы же так сильно ноете про {get; set;}, а сами готовы аннотации на каждый чих писать.
Аноним 26/07/25 Суб 17:31:56 3506273 453
>>3506173
>Ну то есть аргументов у вас нет

Перед тем как оправдывать монго-биби, ответь на два вопроса:

- нахуя хранить несвязанные данные?
- нахуя хранить данные с неопределённой схемой?
Аноним 26/07/25 Суб 17:39:05 3506276 454
tri-kita2-300x2[...].jpg 21Кб, 300x218
300x218
Аноним 26/07/25 Суб 23:14:56 3506464 455
Шарпоняши, какой линтер у вас тут самый строгий модный молодёжный? Хочется именно CLI тулзу чтобы и в CI запускать. И ещё, как вы форматер настраиваете, может конфигом поделитесь? А то dotnet format по дефолту чето даже длинну строки не везде энфорсит как я погляжу. Я на шарп сегодня первый раз увидел, лень искать-разбираться, просто скажите как надо пожалуйста. А то я большой любитель обмазать проект с самого начала всякими статическими анализаторами...
Аноним 26/07/25 Суб 23:18:15 3506467 456
>>3506088
>Мимо 5 лет в чистом DDD
Эххх вот бы хоть раз в таком поработать а не разгребать ад
хок лапшу...
Аноним 26/07/25 Суб 23:25:15 3506473 457
>>3506464
В дотнете все пишут в вижуал студии, с консолью никто не работает. В студии есть свой встроенный линтер.
Аноним 27/07/25 Вск 00:09:54 3506537 458
>>3506473
Сиаем в дотнете тоже не пользуются? Ну или вот например я хочу сказать клод коду чтобы он все замечания линтера пофиксил - если линтер это CLI тулза то клод код сам её запустит и посмотрит вывод, а если это "свой встроенный линтер" то тогда что, вручную всё копипастить?

Ну бля я не верю что в 2к25 существует такая жёсткая связность между яп и гуём для кодописания на этом яп и комьюнити неиронично это хавает, ну камон шаропняши, я знаю что вы можете лучше...
Аноним 27/07/25 Вск 00:25:06 3506543 459
>>3506537
Нахуя мне твоя нейронка если все это делает решарпер при коммите? В студии копилот встроен который тебе целые куски кода генерирует и ошибки ищет.

Вот каким надо быть долбоебом чтобы в 2к25 консоль открывать это да.
Аноним 27/07/25 Вск 04:27:25 3506565 460
>>3506464
>энфорсит
мамку твою
Аноним 27/07/25 Вск 04:30:34 3506566 461
>>3506464
>Хочется именно CLI тулзу

встроена в эссдикей, просто набери в консоли

$ dotnet format

>А то я большой любитель обмазать проект с самого начала всякими статическими анализаторами

ты попал в статически аналируемый рай
Аноним 27/07/25 Вск 08:00:37 3506587 462
>>3505597

Чем тебе не нравятся асинки? Разве тебя не заебало коллбеки писать?
Аноним 27/07/25 Вск 11:50:44 3506672 463
>>3506587
Как будто кроме колбеков нет других вариантов.
Аноним 28/07/25 Пнд 09:02:48 3507200 464
>>3506672
Как на джаве писать неблокирующий код без коллбеков?

Помоги разобраться
Аноним 28/07/25 Пнд 09:26:05 3507208 465
>>3507200
Через классы. А при чём тут обоссанная жаба, если тред про шарп?
Аноним 28/07/25 Пнд 09:31:40 3507213 466
>>3507208
>тред про шарп
И где же шарп дискусии? Только войной с спринговыми сосальщиками тред и жив. Тред блять закрепить не могут уже 2 или 3 месяц
Аноним 28/07/25 Пнд 09:35:22 3507218 467
>>3507213
> И где же шарп дискусии? Только войной с спринговыми сосальщиками тред и жив.
Ещё полгода назад здесь всем было похуй на жабу и обсуждали формочки WTF и программирование на XAML
> Тред блять закрепить не могут уже 2 или 3 месяц
За всё время существования шарпотредов их ни разу не закрепляли.
Аноним 28/07/25 Пнд 09:37:46 3507219 468
>>3507218
>За всё время существования шарпотредов их ни разу не закрепляли.
Я про то что ходить в этот тред нужно было через перекат из 60 треда с мобилы, сейчас вроде уже пофиксили, но буквально пару недель назад приходилось ходить так.
>Ещё полгода назад
И где?
Аноним 28/07/25 Пнд 09:43:57 3507224 469
>>3507208
>Через классы. А при чём тут обоссанная жаба, если тред про шарп?

Какие классы? А создавать как? через пару КЛАССОВ фабрик и провайдеров? Вы там совсем ёбнулись в конец?

Вот я пишу метод, и хуяк, я понимаю, что мне надо в БД посмотреть кой-чего. Как мне не переписывая мой метод НА КЛАССЫ сделать запрос в БД и не блокировать при этом поток исполния? Ну или как не переписывая мой метод НА КОЛЛБЕКИ и не связываясь с многопоточной внутрянкой это сделать?
Аноним 28/07/25 Пнд 10:02:41 3507246 470
>>3506273
>Перед тем как оправдывать монго-биби, ответь на два вопроса:

>- нахуя хранить несвязанные данные?
Что ты имеешь в виду? Хранить данные в несвязаном виде? Ты про отсутствие констрейнтов?

>- нахуя хранить данные с неопределённой схемой?
Схема определяется кодом слоя репозитория. Отсутствие схемы может быть и плюсом, когда ты делаешь полиморфное хранилище с однотипными но немного разными данными.

Я уже достаточно писал про плюсы монги по сравнению с реляционными бд.
Аноним 28/07/25 Пнд 12:53:04 3507456 471
>>3507200
Виртуальные треды, акторы, реактивщина.
Аноним 28/07/25 Пнд 13:01:17 3507466 472
>>3507456
>Виртуальные треды, акторы, реактивщина.

Как писать "Виртуальные треды, акторы, реактивщина." без коллбеков?

Так, чтобы код можно было слева-направо читать и сверху-вниз?
Аноним 28/07/25 Пнд 13:03:48 3507469 473
>>3507246
>Я уже достаточно писал про плюсы монги

Какие плюсы? Ты тоже из тех дебилов, которые СУБД и Монго как-то могут сравнивать?

Монго это же ссаная коллекция BSON, ничего более.
Аноним 28/07/25 Пнд 13:05:59 3507473 474
>>3507466
>Как писать "Виртуальные треды, акторы, реактивщина." без коллбеков?
>
>Так, чтобы код можно было слева-направо читать и сверху-вниз?
Мудило, думаешь если будешь изображать клована сразу станешь убедительно звучать?
Аноним 28/07/25 Пнд 13:46:10 3507528 475
>>3507473
Так он спрашивает по делу. Реактор - промисная обертка над коллбеками. Виртуальные треды - очень хорошо, но без промис говнеца мы будем писать вызывать коллбеки прямо из этих тредов. Акторы - эвентлуп который по факту те же коллбеки которые ты передаешь в сообщении.
Аноним 28/07/25 Пнд 14:36:15 3507608 476
>>3507473

Что не так? Я начинал программировать на коде, который до TPL был написан. Прошёл еблю с ручным управлением потоками, с самописными промисами. Работал со стилем begin/end. Ебался с реактивным кодом, я всё это видел.

Когда появился TPL - то мы резко весь код на него начали переписывать, и он тупо стал ПОНЯТЕН. Не ворох ебучих коллбеков, перемешанных с примитивами синхронизации, а просто функции, написанные слева-направо и сверху-вниз, которые могут подождать не блокируя поток.

В джаве нет async/await. И еще лет десять не будет. Джаву можно просто вычёркивать
Аноним 28/07/25 Пнд 23:55:26 3508062 477
>>3507608
Если ты такой дохуя олдфаг, ты должен помнить, что до микросервисного безумия никто не делал по 100500 асинхронных операций в коде. Просто не было необходимости, тебе IIS давал поток и ты в нем спокойно работал без асинков. Не хватает памяти - докупил плашку и снова хватает. Это сейчас жиды всех затянули в облака, где надо сделать кучу асинхронных вызовов в каждой сраной ручке. Раньше просто писали код.
Аноним 29/07/25 Втр 00:22:20 3508064 478
>>3508062
К БД тоже делал синхронный вызовы?
Аноним 29/07/25 Втр 02:30:19 3508074 479
>>3507469
Да, блин, это просто коллекция бзонов, чем база данных и должна быть.
Окей, я один раз повторю вкратце чем монга удобнее сиквела.

1. Формат данных гораздо ближе к тому, как оно хранится в коде. Никакие орм нахуй не нужны. Чтобы понять, как данные в коде соотносятся с тем, что лежит в бд, не надо изучать кучу кода.
2. С сиквелом на каждый чих пишут новый селект, в монге у тебя в куче мест будет вызов одного и того же метода получения объекта по айди, а просто потом уже вычленение нужной информации. Плюс при дебаге для анализа информации в бд не надо писать кучу джойнов, чтобы понять, что там лежит. Релевантные данные сгруппированы большими кусками.
3. Из-за обилия бойлерплейта все кому не лень клепают кучу абстракций и паттернов типа unit of work, а потом заёбываются это всё поддерживать. С монгой это всё тоже нахер не нужно.
4. Суперфункциональная база данных приводит к тому, что кто-то умный успел понаписать кучу хранимых процедур и функций (в лучшем случае) и триггеров (в случае несколько похуже) с бизнес логикой. В итоге бизнес-логика размазана по sql и c#. Удачи сопоставлять и поддерживать это.

У меня достаточно опыта работы и с тем, и с другим, и работа с sql занимает намного больше времени и порождает намного больше багов просто в силу раздувания кода.
Зато можно над одной таской три дня корпеть вместо одного. Заебись, хули.
Аноним 29/07/25 Втр 02:31:00 3508075 480
>>3508062
>до микросервисного безумия
золотые были времена
Аноним 29/07/25 Втр 02:35:10 3508076 481
>>3508064
Ну а как ты данные возвращал вызывающему асинхронно без асинков?
Аноним 29/07/25 Втр 02:42:04 3508077 482
>>3508064
Конечно. В чем проблема?
Асинки нужны для экономии памяти. Память надо экономить, когда глупые и жадные кабаны пытаются выгадать копейки и запустить 20 контейнеров на одной несчастной машине. Опытные девопсы никогда так не делают, но всегда найдется мартышка с галеры. Когда у тебя один апп сервер бежит на одной машине и не хватает памяти, ты просто докупаешь память, она стоит хуйню, экономить не надо. Тогда асинки не нужны, менеджментом потоков занимается иис или томкат или апач или еще кто.
Аноним 29/07/25 Втр 02:50:59 3508079 483
>>3508074
То есть монга для тех, кто не может в sql из-за недоразвитости участков мозга. Ну как бы это не секрет, в айти много идиотов.
Все твои охуительные истории про данные лежат в одном месте работают ровно до тех пор, пока продакт не приходит с новой охуительной идеей, которая все перекраивает. В sql ты можешь джоинить кого угодно с кем угодно, в монге - хуй на, модель одна. Бонусом идет ебля с версиями записей, схемы то нет.
Аноним 29/07/25 Втр 02:52:09 3508080 484
>>3508062
Дело вовсе не в памяти, а в том, что у тебя запрос блокирует тред. Во-первых, этот тред сидит и нопы выполняет пока ему ответ из бд придёт, тратя процессорное время. Во-вторых, тред берётся из тредпула, а их там ограниченное количество. Если пришёл запрос, а тредпул исчерпан, то запрос посылается нахуй.

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

мимо-ниибаца-олдфаг
Аноним 29/07/25 Втр 03:06:40 3508081 485
>>3508080
Давным давно ядро складывает такие ожидающие потоки отдельно и квант времени им не выдает. Никто нопы не крутит. Ты можешь запустить 1000 потоков, повесить все на один сокет, и ядро сделает балансировку нагрузки. Дело именно в памяти, под каждый тред выделяются какие-то служебные данные, а в дотнете паджиты еще и насрали от души сразу на пару мегабайт пер тред.
Колбеки писали в джаваскрипте тупо потому, что там нет многопоточности. Никто не думал, что через 30 лет долбоебы будут писать бекенд на скриптовом языке, инженеры тех лет охуели бы от современного айти. С ростом популярности нодежс это говно протекло и в другие языки.
Аноним 29/07/25 Втр 03:08:23 3508082 486
>>3508079
Ты если такой умный, пиши сразу на ассемблере, хули.
Не понимаю, зачем себе проблемы придумывать. Это как долбоёбы, которые солнцезащитным кремом не мажутся, потому что "они ж не пидоры", а потом обгоревшие сидят и стонут.

Вот придёт тебе продакт с охуительной идеей, где один-ко-многим надо на много-ко-многим менять, и придётся тебе писать миграции. Точно так же никто тебе не мешает написать миграции для монги, чтобы проапдейтить все сущности. И не будет никакого версионирования.
Аноним 29/07/25 Втр 03:14:12 3508083 487
>>3508077
> менеджментом потоков занимается иис или томкат или апач или еще кто.

ты из 2008 года? Счастливый человек!
Аноним 29/07/25 Втр 03:19:43 3508084 488
>>3508081
У тебя что с эвейтами, что без них n потоков в пуле, это никак на памяти не отражается. Исчерпание пула называется thread pool starvation или exhaustion, и это реально существующая проблема.

Тред не занимает пару мегабайт, он занимает примерно 25КБ. Пруф: https://stackoverflow.com/questions/33846838/c-sharp-thread-memory-usage

Число тредов в пуле исчисляется десятками (10 на процессор по дефолту), так что о памяти речь не идёт вообще.
Аноним 29/07/25 Втр 03:22:45 3508085 489
>>3508082
монго уместен только для несвязанных ни с чем сущностей и когда нет транзакций и изменения схемы данных. Во всех остальных случаях лучше использовать СУБД
Аноним 29/07/25 Втр 03:30:07 3508086 490
>>3508084
Ты не понял. Я руками на старте моего сервера могу создать 1000 тредов на любом языке, хоть на асме, и мне асинк не нужен.Будет такой себе пул на уровне ядра. 1000 тредов займут больше памяти, чем 10 тредов, но память или есть или нет. Похуй, 2гб сожрет твой сервер или 3гб, когда у тебя 4гб на машине и на все хватает. Поэтому асинки нужны для экономии памяти, других причин нет.
Аноним 29/07/25 Втр 07:22:49 3508102 491
>>3508086
>Поэтому асинки нужны для экономии памяти, других причин нет.

асинки нужны для того, чтобы быстро и удобно писать асинхронный код.
Аноним 29/07/25 Втр 08:01:57 3508108 492
>>3508080
>тредпул исчерпан, то запрос посылается нахуй.
То создаётся новый тред не из пула.
Аноним 29/07/25 Втр 08:09:35 3508111 493
>>3508102
Зачем писать асинхронный код?
Аноним 29/07/25 Втр 08:12:18 3508113 494
>>3507528
>Реактор - промисная обертка над коллбеками. Виртуальные треды - очень хорошо, но без промис говнеца мы будем писать вызывать коллбеки прямо из этих тредов. Акторы - эвентлуп который по факту те же коллбеки которые ты передаешь в сообщении.
Это конкурс на самый тупой ответ, что ли? Что за хуету ты несешь?

Во первых какая разница что там внутри, если ты пишешь код который читается слева направо, с хуя на залупу. Во вторых нет там внутри никаких колбеков.
Аноним 29/07/25 Втр 08:21:59 3508117 495
>>3508113
>код который читается слева направо, с хуя на залупу
А какая разница если это всё равно коллбеки? Промисы для того и придумали чтобы сделать из коллбеков формат чтения слева направо, но от этого они коллбеками быть не перестали.
>Во вторых нет там внутри никаких колбеков
Где это внутри? Что ты имеешь в виду под этим словом? По твоему конструкция then(...).then(...) в реакторе это не цепочка из коллбеков? Ебобо?
Аноним 29/07/25 Втр 08:22:40 3508118 496
>>3507608
>Когда появился TPL - то мы резко весь код на него начали переписывать, и он тупо стал ПОНЯТЕН. Не ворох ебучих коллбеков, перемешанных с примитивами синхронизации, а просто функции, написанные слева-направо и сверху-вниз, которые могут подождать не блокируя поток.
У тебя просто симптом утенка. Тебе дали асинки и ты теперь считаешь, что кроме них ничего и не бывает.

>В джаве нет async/await. И еще лет десять не будет. Джаву можно просто вычёркивать
У тебя какие-то комплексы, что тебе надо постоянно джаву вспоминать? Джаве не нужны асинки, там есть виртуальные треды которые делают всё то же самое, но в разы проще для разработчика.
Аноним 29/07/25 Втр 11:19:22 3508230 497
>>3508118
>Тебе дали асинки и ты теперь считаешь, что кроме них ничего и не бывает.

Ты долбоёб? Я тебе русским языком объясняю, что я прошёл через все круги параллельного, многопоточного, асинхронного, неблокирующего, синхронизированного ада.

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

Симптома утёнка у меня нет, потому что я НЕНАВИЖУ БЛЯДЬ писать многопоточный код руками, а таски буквально решают все проблемы и позволяют сконцентрироваться на логике приложения, а не на примитивах синхронизации потоков.
Аноним 29/07/25 Втр 11:20:21 3508232 498
>>3508118
>У тебя какие-то комплексы, что тебе надо постоянно джаву вспоминать?

> У тебя какие-то комплексы, что тебе надо постоянно джаву вспоминать?

Да, я ебался с джавой 4 года и нахуй слез с неё на ИТТ
Аноним 29/07/25 Втр 11:37:19 3508253 499
Симптом утёнка, лол
Аноним 30/07/25 Срд 03:12:40 3508825 500
17459580406070.jpg 162Кб, 714x1280
714x1280
Пора и тред перекатывать!

500 сообщений уже
Аноним 30/07/25 Срд 03:16:00 3508826 501
>>3508825
Уёбывай обратно в свой жабатред, здесь перекатывают после 1000.
Аноним 30/07/25 Срд 07:26:30 3508856 502
>>3508826
>Уёбывай обратно в свой жабатред, здесь перекатывают после 1000.
Иди на хуй, пидор, я и перекатывал тред в прошлый раз. Получилось хуёво, но картинка охуенная
Аноним 30/07/25 Срд 08:43:24 3508890 503
>>3508856
Пидор, больше ты не будешь перекатывать.
Аноним 30/07/25 Срд 10:08:19 3508917 504
>>3508890
>Пидор, больше ты не будешь перекатывать.
А я и не хочу перекатывать! Но я не пидор!
Аноним 30/07/25 Срд 14:38:33 3509198 505
55fe494e-07b0-1[...].png 47Кб, 907x549
907x549
зображення.png 36Кб, 849x363
849x363
Поцаны, я вышел из криокамеры.
На что сейчас принято мигрировать с BinaryFormatter?
- Данные мои, могу пересериализировать.
- Важна секюрность и перфоманс.
- Простота миграции - мне лень писать атрибуты для protobuf.
Смотрю на MessagePack, вроде перфоманс ниче, но есть предупреждение про безопасность. Я не хочу чтобы мне инжектнули через какую-то форму кусок бинарного кода (я знаю что нужно писать валидаторы).
Аноним 30/07/25 Срд 14:41:40 3509201 506
>>3509198
> На что сейчас принято мигрировать с BinaryFormatter?

На AI
Аноним 31/07/25 Чтв 04:56:17 3509650 507
>>3509198
Просто зашифруй и всё. Ключи захардкодь.
Аноним 31/07/25 Чтв 06:07:17 3509654 508
>>3509198
>секюрность и перфоманс

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

Пользовательский код ничего не заметит, будет работать как и работал
Аноним 31/07/25 Чтв 10:56:13 3509739 509
image.png 10Кб, 674x73
674x73
Какие же погромисты дегенераты, пиздец просто.
Аноним 31/07/25 Чтв 11:07:53 3509748 510
>>3509739
Все в MS это знают, поэтому ради обратной совместимости даже в WinAPI не исправляют некоторые баги, чтобы не сломались программы, которые его неправильно вызывают.
Где-то даже писали, что Windows 9 не было, чтобы не сломать определение Win95/98 по наличию цифры 9 в названии.
Аноним 01/08/25 Птн 14:39:53 3510744 511
>>3500681
>[сеттеры] позволяют частично и произвольно изменить состояние объекта
Частично - ну допустим, но не произвольно - сеттер можно настроить, чтобы он присваивал только допустимые значения.
Приведи хоть пример как правильно. Правильно будет когда нужно обновить свойства объекта вызывать каждый раз конструктор, который будет разрешать создавать одни только допустимые состояния этого объекта, ты такой предлагаешь подход?
Аноним 02/08/25 Суб 03:40:41 3511148 512
>>3510744
>вызывать каждый раз конструктор

1. Вызывать конструктор объекта через new запрещено почти во всех проектах.

2. Вызов сеттера это красный флаг. Он всегда означает, что инкапсуляция нарушена и ты смешиваешь домены в одну кучу.

В твоём случае объект сам инкапсулирует всю логику и сеттеров у него не может быть. Ты просто инжектишь объект и пользуешься его свойствами. Все обновления происходят автоматически по событийной модели
Аноним 02/08/25 Суб 05:06:07 3511156 513
>>3510744
>сеттер

нарушение инкапсуляции. Агрегат должен самостоятельно изменять своё состояние и оповещать об этом все заинтересованные сервисы
Аноним 02/08/25 Суб 07:52:02 3511176 514
Аноним 02/08/25 Суб 08:30:28 3511181 515
>>3511148
Какая же у тебя каша в голове. Как ты без new создаёшь объекты? Через активатор?

Свойства и есть инкапсуляция. Ты говоришь объекту что необходимо установить свойство, дальше он что-то делает внутри.
Аноним 02/08/25 Суб 11:26:23 3511255 516
>>3511181
Забей, там клиническое ДДД головного мозга. Пациент скорее мертв, чем жив.
Аноним 02/08/25 Суб 11:31:32 3511258 517
>>3511148
Вся эта хуйня в нынешних реалиях уже неактуальна и нежизнеспособна. Бизнесу уже давно поебать на весь этот чистый код и прочие "бест-практицес". Сейчас надо чтобы просто работало, быстро и надежно. Никто не будет ждать пока ты там свою событийную модель вкорячишь и кучу фабрик напишешь, чем быстрее твое говно выйдет в пром, тем лучше. Поэтому достаточно просто писать так, чтобы оно не падало и не жрало овердохрена ресурсов.
Аноним 02/08/25 Суб 11:51:06 3511268 518
>>3511258
>Сейчас надо чтобы просто работало, быстро и надежно. Никто не будет ждать пока ты там свою событийную модель вкорячишь и кучу фабрик напишешь, чем быстрее твое говно выйдет в пром, тем лучше.
Дада. Только проблема есть, без всего этого твой проект загнется через 2 года под весом техдолга.
В бизнесе побеждает не заяц, а черепаха. Как говорится если долго сидеть на берегу можно увидеть как по реке плывёт труп врага.
Аноним 02/08/25 Суб 13:08:16 3511328 519
>>3511268
Чел, когда срок на реализацию проекта с нуля чуть более полугода максимум (это со всем циклом тестирования, включая ФТ, НТ и ИТ). При почти полном отсутствии ТЗ, ежедневно меняющимися требованиями от безов и при никаких возможностях доработок со стороны интеграций (сраные гринскринщики)) - как-то похуй на техдолг и что там с ним будет через 2 года. Его за это время успеют уже раза 2 переписать с нуля.
Аноним 02/08/25 Суб 13:53:57 3511351 520
>>3511268
>Только проблема есть, без всего этого твой проект загнется через 2 года под весом техдолга.

Разочарую тебя, тех долг никуда не денется, а DDD станет ещё одной проблемой.
Аноним 02/08/25 Суб 14:10:50 3511367 521
>>3511258
>весь этот чистый код и прочие "бест-практицес"

Чистый код и чистая архитектура это хорошо и очень просто.

Многие не понимают этого и смешивают в кучу все "бест-практиcес", все неправильно понятые статьи с медиума и в итоге получается гексогональный доменный аспектно ориентированный пиздец, состоящий из восьми слоёв автомаппера и медиатра. В одном только DDD около 12 глубоких и сложных категорий, которые пихают в код.

Не надо так. Делайте просто, возьмите парочку архитектурных паттернов и следуйте им
Аноним 02/08/25 Суб 19:24:32 3511516 522
>>3511328
>Его за это время успеют уже раза 2 переписать с нуля.

Только если припрутся DDD-бляди, которые 8 месяцев героически будут переписывать твои коды на BEST PRACTICEC, потому что у тебя КОУД СМЕЛЛ.

Перепишут наполовину, потом решат, что нихуя не работает и надо на микросервисы переписать.

Перепишут наполовину и отправятся гастролировать в следующую компанию.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов