Сишорп не сдох, внимание, не поддаёмся на провокации джавистов. Вакансий нет, т.к. сишорп программисты самодостаточные и сами знают где их искать. Хэхэ ру не нужон. Постинг сдох, т.к. сишорп программисты - это уважаемые люди с работой, которым некогда шитпостить, они работают. Постинг в джава/питон/1с треде - это признак того, что там работы нет и безработные просто пинают балду в треде. Просьба не бухтеть и не раскачивать лодку.
>>3604187 >Постинг сдох, т.к. сишорп программисты - это уважаемые люди с работой, которым некогда шитпостить, они работают. Всё так. >Постинг в джава/питон/1с треде - это признак того, что там работы нет и безработные просто пинают балду в треде. Работа есть, просто они ее ненавидят и вместо закрытия техдолга и получения премий за закрытие фич - предпочитают бухтеть в тредах >Вакансий нет, т.к. сишорп программисты самодостаточные и сами знают где их искать. Вакансий нет потому что кабанчики не знают куда деваться в кризис, у них есть джава/джанго/1с легаси родом из конца нулевых и они его педалят и подмазывают, чтобы хоть как-то стояло, технологиями десятилетней давности - просто потому что переписывать дорого. Шарпистам в этой самой стране остался только геймдев.
>>3603761 (OP) Чо как вам 2026-я студия? Меня пока больше всего бесит новое окно настроек, благо старое все еще доступно. Остальное мелочи. Из приятного, что почти все расширения сразу заработали, кроме каких-то совсем древних, которыми все равно не пользовался. Ну и работает побыстрее.
>>3605015 Говно. Уебищный дизайн, от линий рябит в глазах. Шрифты стали хуже, хз что там паджиты сломали. Уебищный копилот как назойливый ребенок все время лезет под руку со своими охуительными советами, пришлось сразу отключать. По скорости я разницы не заметил, на большом проекте этот их розлин тормозит одинаково. Я остался на 2022 студии без копилота ебаного.
>>3605015 У меня дизайн стал супер мелким, почему то 125% увеличения с винды не конектятся к приложению из за этого интерфейс очень мелкий, а так нраица
>>3603761 (OP) Ебать у вас столько незнакомой терминологии - автомапперы какие-то ебучие и прочий скам. Мне порою кажется что в плюсах гораздо меньше всякого bloatware чем в оопнутой джаве и сишарпе
Реквестирую блоги, видео или книги где более менее качественный и интересный контент по рантайму и связанному с .NET или C#. Предпочтительно что нибудь низкоуровневое. Я кидал это: https://2ch.su/pr/res/3332445.html#3337069 и был бы рад если бы кто-то накидал мне за щеку подобного.
Как был сишарп кривой парашей за пределами виндовсогавна, так и остался. Создал в VS Code пустой проект на основе MAUI, не вношу никаких изменений и запускаю компиляцию, а этот петушиный дотнет жалуется на ошибку в коде и не собирается.
Видимо говнокодеры из майкрософт не ожидали что их говноподелие будет кто-то использовать за пределами винды.
projects/android2/MauiApp1/MainPage.xaml.cs(3,33): error CS0246: The type or namespace name 'ConittentPage' could not be found (are you missing a using directive or an assembly reference?)
The terminal process terminated with exit code: 1. Terminal will be reused by tasks, press any key to close it.
>>3608775 >>3608781 Как оказалось это криворукое индусоподелие от криворуких майкоблядей настолько криво работает, что после создания нового .net проекта в vs code и его открытия (открывается он в автоматическом режиме), нужно вручную СНОВА открыть проект через solution explorer.
>>3608823 >Кто тебе виноват что ты Снегишь в буквально аналоге блокнота? Скачай и поставь себе студию долбоеб.
Дурачок, актуальной студии под Mac OS / Linux нет, а шизики из мелкософта говрят что C# ТЕПЕРЬ КРОССПЛАТФОРМЕННЫЙ кек. Выходят индусы из мелкософта снова наврали/
Гайз, хелп!!!! Есть wpf uno хуйнюшка. В зависимости от масштаба выставленного в настройках операционки плывет разметка. Можно как-то сделать так, чтобы вне зависимости от масштаба операционки эта хуйня рисовалась одинаково?
Я не хочу рисовать 4 вьюхи под каждый масштаб, и дополнительно 4 вьюхи под разрешения + еще на планшеты это говно делать. Я это до старости говноСнегить буду.
>>3613432 >VS fo mac Он уже очень давно не обновляется и депрекейтед под Mac OS. Ты как долго в заморозке был?
>С чем ты сравниваешь кросс-платформенность? С тем что тот же VS Code это тупо текстовой редактор, а не IDE с глючной поддержкой C# в mac os. Я уэе писал выше об этом, посмотри на сообщение, на которое я изначально отвечал.
>>3613432 Вот отзыв экспериенса Снегинга c# .net под vs code на mac os:
Как оказалось это криворукое индусоподелие от криворуких майкоблядей настолько криво работает, что после создания нового .net проекта в vs code и его открытия (открывается он в автоматическом режиме), нужно вручную СНОВА открыть проект через solution explorer.
С тоской вспоминаю далекий 2012 год, когда еще встречались вакансии на WinForms. Даже на Delphi встречались. Какое же ламповое время было. Воистину, не врали древние майя про конец света.
>>3613762 >Как оказалось это криворукое индусоподелие от криворуких майкоблядей настолько криво работает, что после создания нового .net проекта в vs code и его открытия (открывается он в автоматическом режиме), нужно вручную СНОВА открыть проект через solution explorer.
ну хз, альтернатив всё равно нет
Джавка ещё хуже, она живёт только потому что есть дохуя проектов на спринге 2008 года. Гоу ещё более-менее, но там нет минимального ООП, который непСайгако помог бы. Нода, питон - мусорные технологии: проекты не живут дольше полугода и их всё время переписывать надо.
>>3613830 >мусорные технологии: проекты не живут дольше полугода и их всё время переписывать надо. Про питон не знаю, а про ноду с тайпскриптом бред откровенный
>>3609103 >Дурачок, актуальной студии под Mac OS / Linux нет Потому что не надо заниматься Снегингом на тех ОС что для этого не подходят. Макбук это оверпрайс печатная машинка для соцсетей и модных дизайнеров. Линукс непригодная ни для чего хуйня.
Поставь винду и живи как белый человек который может ставить любое ПО, а если очень надо запускать WSL.
>>3615024 Ты троллишь? [нео]вим, емакс. ВИЖОЛСТУДИЯ КOДЕ на худой конец. Идеи всякие вроде тоже кроссплатформенные, но я таким дерьмом не пользуюсь, могу ошибаться. Я бы понял если бы ты говорил про игори и фотошопы, но вот написание кoдов под спермой, сделанной буквально для неграмотных бабов сраков и прочих потребителей - это всегда пытка.
>>3615635 Да даже makefile это верх адекватности. А то тут и sln и csproj и msbuild. Пока в IDE сидишь и руками ничего не трогаешь - ок. Как вылезешь, пиздец.
>>3608775 >Видимо говнокодеры из майкрософт не ожидали что их говноподелие будет кто-то использовать за пределами винды. А схуяли им заботиться? Может им вс-код на пс2 портировать ещё? На хуй иди, короче.
>>3616325 Это местный шизик, надышавшийся паров то ли Столярова, то ли еще кого. Уже какой месяц носится по всей доске. По стилю и тематике сообщений легко узнается. Поясняет всем, что тру Кнут, Таненнбаум, книга Дракона, язык С, Линукс, емакс/ви, а что не тру в целом всё остальное, чаще всего хейт к вебу, к ИДЕ, при этом сам, наверняка, не писавший ничего объемнее пары сотен строк. Возможно так же сидит в /math и пытается осилить ТК и книжку Голдблата про топосы. В общем скорее всего впечатлительный школьник лет 14. Сам примерно таким был.
>>3616355 >зачем он про сперму пишет? Древнее уничижительное прозвище винды. Юзеров называли спермоблядками. Линуксойдов прыщеблядками. Откуда пошло не знаю. Мб от слова "семерка".
С утра вычитывал какой-то метод, около 300 строк длиной. он имеет примерно следующую структуру:
комментарий, который поясняет, что делает следующие 30 строк кода 30 строк raw-sql перемешанного с сишарпом
Я не могу отделаться от мысли про комментарии. Они напоминают мне мудака, который смотрит на то, как я работаю, и комментируют каждое моё действие или просто дёргает меня за локоть. Это как помощник автомеханика, который вместо того, чтобы помочь, смотрит и говорит, "Крутишь гайку? Ну давай, крути".
Джуны, дебилы, выносите блоки кода в функции и используйте правильное именование. Купите себе блокнотик, свои соображения оставляйте при себе. Не структурируйте код комментариями.
>>3620811 Какий вакансий? Фулстек на аутстаф галеру за штуку баксов, опыт настройки кубера от трех лет. Или фулстек в крипто копро аи финтех стартап директор лично проводит собесы. Нет вакансий нихуя.
>>3621007 >Мы, например, выбираем. Я в прошлом треде рассказывал как от спринга избавлялись в пользу обычного aspnet core. Одно говно поменяли на другое, типо оно лучше.
>При чём тут майковский стек? В докере всё одинаково работает. Речь про интеграцию с Office, Active Directory и т.д. Вот моя будущая контора выбрала шарп ради интеграции с AD.
>>3618854 Уеби обчитаются своего клинкода и выносят все подряд в функцию this.krutitGaiku() , потом как ебанько прыгаешь по всем этим функциям, чтоб понять, что происходит, вместо одного места
да, лучше. После опыта спринга, в дотнете все те же самые вещи делаешь, но получается лучше. Я хз, почему так. Если подробно объяснять - то сильно долго будет
У меня чувство будто GC пишут медленные тупые чсвшные пидоры (20 лет додумываются до регионов, положили хуй на workstation gc, и т.д.), ибо хули они игнорят Satori (с учётом того что его написал "свой" чел)? Та же Maoni не высказалась в треде ( https://github.com/dotnet/runtime/discussions/115627#discussioncomment-13162692 ), хотя казалось бы - не последний человек. Ну да, требуются изменения в рантайме, несколько GC будут иметь несовместимые между собой настройки и .т.д, ну так а хули они хотели, смысл комьюнити делать другой GC, который будет отличаться только цветом (они вроде где-то говорили, что комьюнити может сделать свой GC, ведь публичный API доступен)? Из геймдева люди оценили (и ещё больше оценят) Satori, а эти пидоры даже в runtimelab его не добавили. Горит пиздец.
Потому что в дотнете нет такого бестолкового жора памяти как в джаве или, прости госпаде, питоне. Обычный GC устраивает 99% пользователей, оставшемуся проценту надо просто на си пересесть
>>3622513 >нет такого бестолкового жора памяти >Pauseless Garbage Collector >Also, people don't need a real pause-less GC, what they need is a GC that has a consistent reasonably low maximum pausing time (lower than one or two milliseconds) for latency-sensitive apps. Чел...
Он каждую строчку кода комментарием сопровождал. По гениальной задумке, надо читать комментарий, затем сравнивать его с кодом. Типо, в комментарии - правильное поведение.
В общем по его коду прошлись регекспами, вычистили комменты нахуй сразу после его увольнения. Чел работал три месяца, не успел сделать ничего путного
>>3622761 Самое смешное, что он писал /// комментарии ко всем буквально сущностям в коде. Такая вымученная канцелярщина. В основном цепочки слов в родительном падеже. Я уже тогда над ним начал угорать и так же в годе загаживать всё:
/// Модель объекта нотификации пользователя
/// Сервис отправки модели объекта нотификации пользователя
/// Конструктор сервиса отправки модели объекта нотификации пользователя
/// Интерфейс сервиса отправки модели объекта нотификации пользователя
// Вызов интерфейса сервиса отправки модели объекта нотификации пользователя
// Обработка результата вызова интерфейса сервиса отправки модели объекта нотификации пользователя
опы, всем привет. помогите пожалуйста советом по развитию в профессии, использую этот язык. сделала пет проект при помощи entity framework, postgreSQL, +-знаю базу языка, ооп, асинхронное программирование, но лишь для СRUD систем, что делать дальше? такие же проекты с регестрацией? делать таких мини проектов больше, чтобы тренироваться ?
>получай рефлексией За неимением лучшего так и делаю. Но тут уже и джейсон не нужен становится.
>оперируй низкоуровневыми примитивами newtonsoft Здесь не понял.
>Зачем это тебе, бы долбоёб? Может быть, но вот, к примеру, есть у меня класс где хранятся настройки программы. Зачем мне создавать объект? Настройки они одни и других быть не может - по логике вещей этот класс должен быть статическим.
Предположим при стечении некоторых условий мне нужно прервать компиляцию и выдать соответствующее сообщение. Я так понимаю пафосный шарп тут пукает в лужу?
>>3623179 Учитывая, насколько много в шарпе фич, которые появились в шарпе на много лет раньше, чем в жабе, если было бы нужно, то давно бы уже сделали.
>>3623455 >Как так получилось, что джава стала говном, которое все ненавидят, а дотнет приятный? Это из-за того что джавой пользуются все, а дотнетом никто
Вынужден писать проект на спринге, какое-то враждебное говно эти мавены, ломбоки, jpa. В божественной студии все просто работает из коробки. А тут приходится постоянно какие-то левые проблемы решать.
>>3623370 А чем плох синтаксис? Есть же какой-нибудь sizeof() или typeof(). Ну хочешь можно так errorcompile("ляля тополя") { }
>>3623334 >>3623360 >>3623361 Директивы здесь не пойдут. По сути нужно проверить класс на присутствие/отсутствие определённых типов и в случае если не так как надо выдавать ошибку с поясняющим текстом. Текст можно и в комментариях написать, главное чтоб на строчку указывал.
>>3622512 >json Этот ваш json даже тип Font не может десериализовать. Ну и нахуй он тогда нужен?
>>3623355 >По какой логике структура данных должна быть статической? По той что она нужна в одном единственном экземпляре и второй такой быть не может. Создавая статический класс ты как бы неиллюзорно на это намекаешь.
>Его просто биндишь, регистрируешь и инжектишь Я нуфаг, мне эти твои жаргонные словечки ничего не говорят.
> Этот ваш json даже тип Font не может десериализовать. Что за хуйню ты несёшь?
> По той что она нужна в одном единственном экземпляре и второй такой быть не может. Создавая статический класс ты как бы неиллюзорно на это намекаешь. Зачем ты слово "неилюзорно" вставил? Что за хуйню ты несёшь?
> Я нуфаг, мне эти твои жаргонные словечки ничего не говорят. А, ясно.
Я думал, ты челленджовый скуфи-разраб 10+лет опыта и решил хуйнёй пострадать в шутку (как и все тут), а ты просто настолько тупой, что несёшь какую-то несуразицу и вряд-ли понимаешь, что делаешь и зачем. Вопросы настолько тупые, что даже объяснять что-то лень.
Документацию не читай ни в коем случае, там всё врут. У дикпика тоже не спрашивай, его неправильно научили. Все свои тупые вопросы адресуй в этот ИТТ тред
Или у тебя есть умные мысли, зачем в 2к26 году использовать DI контейнер, если можно резолвить любой обработчик по месту медиатром? DI умеет кросс-каттинг консёрны решать?
Медиатр (и автомаппер) охуительно полезны: как только при приеме на работу собеседуемый вскукарекнет про них, сразу отсеиваешь его. И в итоге команда будет состоять из нормальных людей.
>>3625111 >Что за хуйню ты несёшь? Ну сам попробуй. >Зачем ты слово "неилюзорно" вставил? Потому-что могу. Эко тебе жопу клочками по закоулочкам разъебало. >этот ИТТ тред Да я давно понял что тут полно душных чсвшных пидоров наподобие тебя.
>>3625384 >>3625222 >сингтон синглтон, хуинглтон... А зачем же тогда статика нужна?
>>3625817 Медиатор это лучший DDD фреймворк на сегодня. Ты буквально одной библиотекой получаешь доменные события, CQRS, и по нормальному можешь обрабатывать кросс-каттинг консёрны в любом вызванном методе.
>>3625957 Фактически, комбинация медиатр-автомаппер это безальтернативный выбор на сегодня.
Две эти библиотеки составляют собой мощный и в то же время простой в отладке инструмент. Порог вхождения крайне низкий.
Достаточно запомнить одну догму: всё - это либо команда, либо квери.
Самое охуенное - это работа с доменными событиями. Их можно запускать как в текущем процессе, так и через кафку. Опять же, пукнул событием в кафку, а медиатр сам разберётся где и как его исполнять.
Но самое мощное - это что для добавления новой доменной сущности надо просто добавить один класс! Автомаппер разберёт как его хранить в хранилище. Притом, даже не надо знать, В КАКОМ хранилище лежат агрегаты.
А самое главное - кросс-каттинг консёрны. Ты просто запускаешь команду и не греешь себе голову. Нужны транзакции - благодаря встроенным бехевиорам медиатр всё за тебя сделает. Нужна валидация - медиатр валидирует каждую команду в цепочке, и не важно, в каком процессе она исполняется.
Я долго могу рассказывать и про новые свойства, которые автомаппер автоматически подхватывает и добавляет в БД. И про гарантии автомаппера, который при добавлении одной строчки бросает ошибку при любом некорректно настроенном маппинге.
Забыл добавить про чистую архитектуру. Используя эти две библиотеки получается действительно чистый и не тесно не связанный код. Ты просто вызываешь команду из домена, а обработчик может быть как в аппликейшене, как в инфраструктуре, так и вообще в соседнеем домене или процессе.
>>3623322 >Учитывая, насколько много в шарпе фич, которые появились в шарпе на много лет раньше, чем в жабе, если было бы нужно, то давно бы уже сделали. Есть фича которой в шарпе нет, и судя по всему не будет - нормальный подход к дизайну языка. Хороший подход это когда у тебя есть 1 идеоматичный способа сделать что-то. Ни прибавить, ни убавить.
Ты не страдаешь херней пытаясь выбрать, что же лучше для задачи А, ты просто делаешь как принято. А тот, кто читает код, видит идеоматичный способ сделать А и сразу понимает о чем речь.
>>3627899 Нет практически ни одного языка, для которого это было бы верно. В них всех есть по куче разных способов сделать одно и то же, причём в разных ситуациях разные подходы получаются лучше, что позволяет подавляющему количеству разработчиков использовать некорректные методы, порождая говнокод. Шарп действительно не лишён этого недостатка, но данная претензия точно так же применима к джаве, и почти ко всем остальным языкам. Говорят, на расте приходится писать только одним способом, поэтому там получается идиоматически верный говнокод.
>>3627899 >Ни прибавить, ни убавить. Джава спроектирована как говно, поэтому новые современные фичи в неё просто не добавишь. То, что в дотнете сделали из коробки, в джаве сделать не могут по 10-20 лет и прикрываются умными словами вроде идеоматичности, обратной совместимости, дизайном и прочей гуманитарной хуйнёй.
>>3627899 Рассуждения хуйня. Так моно докатится до того, что и вообще разнообразие не нужно. "Давайте уберем все виды циклов и будем хуярить только while везде". "Или давайте выкинем нахуй все коллекции и оставим только массивы". И т.д.
Это не рассуждения, а психологическая защита java-разработчика, который оправдывает кривизну джавы какими-то магическими словами вроде идеоматичности и преемственности.
На самом деле джава просто не может вобрать в себя современные фичи. Физически:
Дженерики реализованы на уровне виртуальной машины как говно. type erasure - говно. Апи работы с коллекциями - говно. Stream API - говно. Ничего даже близко сравнимого с Linq нет. Любые попытки вкорячить async/await не заканчиваются ничем, не поломав язык. В джаве есть четыре подхода писать асинхронщину, и все - ебля с коллбеками. Структур нет. Исключения спроектированы как говно, по факту, от них просто отказались
Обьясните плиз почему вместо вывода от 0 до 14 получается такая хрень? Это типо из-за того, что операция передачи переменной i в метод не является атомарной, да?
>>3629155 Нет, это потому что i — захваченная переменная в замыкании. Её значение в метод передаётся не сразу на каждом шаге цикла, а в момент, когда создался тред и начал выполнятся. За это время цикл успевает сделать несколько шагов. Если хочешь, чтобы было от 0 до 14, надо добавить в 9 строке var j = i;, и передать в метод j.
>>3629208 >Бля многопоточность тут вообще непричем Конечно ни причем, тебе же сказали - смотри, что такое 'замыкания' и как они работают.
Если вкратце, то в Console.Writeline в качестве параметра i попадает значение из первого цикла, а не второго. А с учетом того, что когда ты дергаешь экшены, первый цикл закончился и i в нем равен 15, то ты и получаешь такой результат.
Я регулярно захожу на утренний стендап, и каждый раз спрашиваю, подключён ли там MassTransit. Каждый раз мне отвечают — нет. Я спрашивал уже раз 150, и 150 раз мне ответили — нет.
Смысл в том, что отвечает мне один и тот же тимлид. Отвечает с неизменной интонацией. А я каждый раз с неизменной интонацией спрашиваю:
— MassTransit подключён? — MassTransit не используем.
— А шина сообщений у нас есть? — Без брокеров обходимся.
— А конфигурации событий MassTransit можно посмотреть, где настраиваются маппинги? — Нет, MassTransit в проекте отсутствует.
— Я бы хотел события нормально публиковать, через MassTransit, как у людей. — Извините, у нас синхронные вызовы.
— Как публиковать события? Из медиатра или напрямую звать масс-транзит? — Мы не любим инфраструктурные библиотеки.
И ведь этот тимлид, зараза, знает меня идеально по коммитам, знает, что я спрошу, и знает, что он мне ответит. Но ещё ни разу ни один из нас ни жестом, ни словом не показал, что каждый из нас знает сценарий.
Бывает, он в это время рефакторит контроллеры, когда я открываю решение. Тогда я подсматриваю на его пулл-реквест, он равнодушно переписывает await mediator.Send(...) на _getUsersUseCase.Run(id), коммитит и возвращается в ко мне:
— Что ты хотел? — Мне нужен MassTransit для публикиции событий. — У нас его нет. — Жаль.
Иногда он обсуждает с другим разработчиком AutoMapper, тогда, сидя рядом в созвоне, я терпеливо жду, когда они закончат:
— А MassTransit в проекте есть? — Нет, мы им не пользуемся.
Иногда он просто скучает в проекте, когда нет задач, и только я брожу по слоям решения. Конечно, он знает, что будет дальше, но не подаёт виду и равнодушно удаляет MappingProfile.
— Что-то я MassTransit в Infrastructure найти не могу, он вообще у нас бывает? — Нет, не бывает, мы им не пользуемся.
Это очень суровое, по-настоящему мужское противостояние, исход которого не ясен. Очевидно, что каждая сторона рассчитывает на победу.
>>3627948 >Нет практически ни одного языка, для которого это было бы верно. Понятно что абсолюта нет, но где-то ситуация лучше, где-то хуже.
>>3627948 >В них всех есть по куче разных способов сделать одно и то же, причём в разных ситуациях разные подходы получаются лучше, что позволяет подавляющему количеству разработчиков использовать некорректные методы, порождая говнокод. >>3627974 Речь не идет о принципиально разных способах сделать одно и то же, типа пройтись по коллекции циклом и аггрегировать их, или использовать LINQ. А о том что есть Query Syntax, а есть Method Syntax. И тут уже возникают вопросы, а нахуя надо было городить огород с Query Syntax, который смотрится абсолютно чужеродно в C# коде. И гораздо более органичный Method Syntax. При этом Query Syntax еще и порождает ложное ощущение что это SQL у которого есть всякие оптимизации- индексы, хитрые джойны и прочее.
>>3627975 >Джава нахуй не нужна со своей идеоматичностью. Там даже async/await нет. И ты даже можешь, аргументированно объяснить чем легковесные треды virtual threads в Java, или goroutine в Go хуже шарпейного async/await? Или ты так, спизданул не разбираясь?
>>3628003 >Рассуждения хуйня. Так моно докатится до того, что и вообще разнообразие не нужно. "Давайте уберем все виды циклов и будем хуярить только while везде". "Или давайте выкинем нахуй все коллекции и оставим только массивы". И т.д. Ты просто не догнал о чем вообще речь. Разные структуры данных нужны, они служат разным целям и у них разные плюсы и минусы. Речь идет о том, что способах сделать одно и то же или сэкономить пару символов. Как будто кто-то пишет на петушарпе в блокноте, без автодополнения.
>>3628217 >Это не рассуждения, а психологическая защита java-разработчика, который оправдывает кривизну джавы какими-то магическими словами вроде идеоматичности и преемственности. Психологическая это твой высер, половина которого маня проекции, вторая пиздеж от незнания. Если будет не лень потом прокомментирую.
В целом подрывом жёп петушарперов удовлетворён! Через недельку начну говнокодить на вашем Петушарпе и буду и дальше писать впечатления от этого ахуительного языка. До новых подрывов!
>>3630055 Квери синтакс действительно говно, но к счастью им почти никто никогда не пользуется. Зато в джаве реально просто дикое количество разных способов создавать треды. Или, например коллбеки событий, раньше всё время надо было класс-обработчик подавать, теперь часто можно передать функцию, но старые версии с классом на каждый чих никуда не делись. Учитывая, что каждый класс зачем-то надо в отдельный файл, получался адский блоат кода. Как видишь, у всех языков есть свои косяки. Сложно заранее предугадать, что и как будет лучше.
Уже несколько лет пишу на wpf десктоп приложения за небольшую зп, но за то работа ненапряжная. Но пиздец гложет понимание, что если уволят, то это овари да нахуй, ибо вакух просто нет щас под это. Какую околошарповую сферу стоит освоить на такой случай? Мне в целом шарп нравится, да и привык я к нему сильно за столько лет.
>>3626509 >при любом некорректно настроенном маппинге А маппинг-то откуда взялся? Написан руками! Причём это охренительно сложный маппинг (на стековерфлоу тысячи вопроса на тему: как сделать маппинг в автомаппере). А теперь выкидываем автомаппер и пишем простой маппинг без него. Кода получается меньше, работает быстрее, память не жрёт.
>>3628003 >уберем все виды циклов В богоподобном Nemerle циклов нет! И в то же время они есть. Они сделаны на гигиенических макросах. Какой тебе цикл нужен, такой и добавляешь в язык. Прям в синтаксис.
>>3628233 Я как кабанчик выбираю шарп. Нанимаю высококлассных дотнетчиков по пять копеек пучок. Такие же по классу джависты стоят дороже. Поэтому все проекты у нас на .NET - так выгоднее.
Похуй на чем писать. Главное - лишь бы были ебучие вакансии за рубежом и чтобы смогли релоцировать. А так готов хоть на 1С, хоть на джаве, хоть на сишарпе, хоть на пхп, хоть на ABAP, хоть на вижуал бейсике. Вообще до пизды.
Сам последние 5 лет писал на Go/Python. Из-за гойды релокнулся в Сербию, потом моя айти батрачька схлопнулась нахуй и я пошел побираться по удаленным кипрским конторам, так как в Сербии найма локального на Го очень мало, только люксофт с епамом иногда вакухи открывают по мелочи но не более того.
Сейчас меня удаленные криптоскам параши на кипре изрядно подзаебали, поэтому ищу варианты релокнуться в нормальную гейропу и пойти в финтех или банк работать с нормальным оформлением в штат.
Так вот работы на Го за рубежом нет нихуя. Количество вакансий просто мизерное нахуй.
>>3630979 Тем удивительнее популярность goвна на нашем локальном рыночке, которая уже по количеству вакансий уже превосходит и джаву и шарп вместе взятых.
>>3630255 Ладно, я так понял на юнити работы почти нет, а больше на шарпе нечего и нет, ибо ксамарин даже рассматривать глупо. Тогда остаётся только бэк. Вопрос такой тогда, если я хочу как-то более фундаментально разобраться, как бэк работает, то мне asp.net ковырять или спринг? Просто спринг я однажды уже трогал и что-то на нем писал и мне не особо понравилась эта завязанность на аннотации. Я хочу видеть код, а не украшать классы аннотациями без конца. Как ситуация с этим на шарповом бэке обстоит? И ещё, у меня в целом о бэке на шарпе сложилось впечатление, что там в основном вакансии состоят из гречневых контор, где ты по-сути каловый фуллстек и где зп это 150к потолок. На сколько это правда? Не хотелось бы вложить несколько лет своего обучения в стек и потом остаться с 2 хуевыми стеками.
from users in context.Users join tickets in context.Ticket on users.Id equals tickets.UserId join book in context.Books on tickets.BookId equals book.Id select users
Method syntax:
context.Users .Join( context.Tickets, user => user.Id, ticket => ticket.UserId, (user, ticket) => new { user, ticket }) .Join( context.Books, temp => temp.ticket.BookId, book => book.Id, (temp, book) => temp.user)
Только имбецил будет спорить, что методы тут лучше. В синтаксисе методов нужно вручную протаскивать между джойнами. В синтаксисе запроса они и так видны.
И таких примеров может быть много. Например, let в Query syntax позволяет создать значение, которое можно использовать несколько раз. С методами опять облом.
>>3631894 >>3631941 При чём тут вообще sql? Речь о LINQ, который может использоваться и с коллекциями в памяти.
>Тебе надо объяснять, почему он не прижился или и так всё понятно? У долбоёбов не прижился? Ты не можешь раздуплить глаза и сравнить два приведённых фрагмента кода? Даже в этом простейшем примере Query syntax намного корочем, чем Method syntax, что уж говорить о более сложных вариантах.
Я смотрю, тут холиварчик небольшой на тему синтаксиса линка. Зацените библиотеку Linq2d (не путать с linq2db) для работы с двумерными массивами. Используется синтаксис запросов и получается очень просто и понятно. Синтаксис методов использовать просто невозможно, чтобы получить такую же красоту.
Решил попробовать Rider и чёт чувствую себя теперь говноедом. Может я чего-то не понимаю, но Rider маниакально предлагает менять объявление всех переменных на var. Даже если это не несёт никакой выгоды. Объявляю какую-нибудь локальную переменную, чей тип я точно знаю, которую я буду использовать только внутри одной функции, и менять тип которой я не собираюсь. Да даже имя класса короткое. А вот хуй, меняй на var. А если игнорировать, то выдаёт уведомление "Build succeeded with warnings". Типа, ебать ты хлебушек, без ошибок не можешь написать. Как эту хуйню выключить? Или это такая мода пошла?
Бонусом пикча с ещё одним варнингом. Какого Rider мне предлагает сделать конструктор приватным? Чтобы что?
>>3631963 >Речь о LINQ, который может использоваться и с коллекциями в памяти. Не может. Он дико сосет по производительности. LINQ - это высер от паджитов, имитация деятельности, что-то типа современной ??= хуеты.
>>3631976 >А вот хуй, меняй на var. >"Build succeeded with warnings" Неиспользование var записать в warning'и... я знал что есть var'осектанты, но чтоб настолько..
Как дорасти до первой работы? Я студик, у нас преподают дерьмово, решил самообучиться вне пар дома. Программирование очень нравится, очень интересно обучаться, в будущем хотелось бы быть именно специалистом, но жизненная ситуация меня сейчас очень подгоняет начать зарабатывать деньги как можно скорее. Как вкатиться именно в коммерческую разработку максимально быстро? Я понимаю, что самым грамотным вариантом является просто написание собственных проектов, по ходу развития которых я должен изучать все больше технологий и практик, но мне очень торопится заделаться джуном, чтобы быть уже в профессии, получать какие-никакие деньги и развиваться осязаемо. Зароляет ли мне сейчас изучить стек технологий, которые прописываются в вакансиях, просто чтобы поскорее получить первую работу в итэ?
Понимаю, что вопрос говнярского вката, но мне сейчас это очень нужно, просто чтобы иметь возможность развиваться дальше как специалист.
>>3632131 >Понимаю, что вопрос говнярского вката, но мне сейчас это очень нужно, просто чтобы иметь возможность развиваться дальше как специалист.
Нахуй нам студенты не нужны, вы, блядь, долбоёбы, припераетесь, на 250к устраиваетесь, а толку от вас как с козла молока.
Не в обиду, но иди на хуй. Мы студентов и джунов не берём. Вы, долбоёбы, изобретаете каждый раз одно и то же говно из умных статей про DDD-MassTransin-Aop-Automapper-ЧИСТАЯ-АХРИТЕКТУРА, чтобы в резюме написать хуйню какую-нибудь, а со стороны как дети, измазавшиеся в собственном говне.
>>3631976 > Или это такая мода пошла? Судя по приложенному изображению, ты пишешь HelloWorld. Очевидно, ты либо никогда код на проектах не писал, где кроме тебя кто-то есть, либо просто учишь язык.
В обоих случаях делай как райдер предлагает. А лучше просто форматируй код райдером и вообще не думай о том как код должен выглядеть. Он всё за тебя сделает
>>3632268 Мне кажется ты не совсем понял суть моего вопроса. Я как раз и спрашиваю, что мне нужно знать и уметь, чтобы устроиться на работу и быть полезным. Если бы у меня стояла цель просто на зарплатку попасть, то вопросов бы не было, тк в айти сегменте сейчас больше гайдов как залететь волком. Или ты планируешь бесконечно жить и всегда быть программистом?
>>3632266 >Многие функции LINQ векторизованы. 1.5 функции и это если они смогут получить спан из входящего IEnumerable<T> (а я сомневаюсь, что в реальном коде это будет часто, ибо это должен быть либо T[], либо List<T>). https://source.dot.net/#System.Linq/System/Linq/Enumerable.cs,44 >>3632273 >jit умеет применять векторизацию Смотря что считать векторизацией. JIT использует SIMD инструкции в обычном коде, но не использует те которые реально SIMD (по типу addps) (может что-то и поменялось в .NET 10/11, но я не видел), так что и векторизации циклов нет. https://habr.com/ru/companies/otus/articles/977080/#comment_29260898 Вроде как это комент егорки, который EgorBo
>>3632282 Нет. Линк делает всё именно так, как ты напишешь. Можно легко получить квадратик, а в некоторых местах это бывает критично. Иногда у тебя коллекции уже отсортированы или, например, там только уникальные значения. Линк этого всего не знает и никак не оптимизирует. Да, в простейших случаях можно написать where, select, group by, ещё select, и получится то же самое по производительности, что циклы писать, только гораздо короче. Но как только начинается что-то сложное, лучше ручками перегнать в хэшсеты, словари по необходимости и написать итеративный код. Как правило можно даже с помощью линка это написать, но это будет настолько нечитаемо и неподдерживаемо, что за такое надо увольнять.
>>3632581 >ряяяя не получают шарписты сток, я на хх видел >пруфы с зп еще выше >ну и зачем ты это скинул Иди менять штаны маня. Я уже не говорю о том что работу на хх ищут разве что джуны с 0 лет и катышки которые летают из компании в компанию. Жирные и хорошие места вообще не попадают на рынок как вакансии, их закрывают чисто по найму через знакомых.
Почему в query syntax можно использовать let, а в method syntax нельзя использовать аналог let, который существует с самой первой версии языка переменные? Или это другое?
>>3631065 >Тем удивительнее популярность goвна на нашем локальном рыночке, которая уже по количеству вакансий уже превосходит и джаву и шарп вместе взятых
Как было на моей памяти: на Go первыми начали писать массово в Avito. Они ходили по конференциям и рассказывали как круто они переписали часть бекенда на пхп и джаве на Go и сэкономили там чего-то на инфраструктуре. Потом вслед за ними начали подтягиваться Озон и WB и тоже стали писать на Go и переписывать легаси на пхп/джаве/шарпе на Го. Ну а потом уже пошло-поехало, Озон и WB сильно выросли в момент ковида, стали крупными работодателями. И в то же время случилась гойда и многие работодатели с джавой и шарпом банально уехали, а озон, вб и авито никуда не делись и стали значимыми игроками на рынке труда.
Сейчас из более-менее адекватных работодателей на шарпе разве что майндбокс остался и немного шарпа есть в озоне, в случае с джавой - сбер и тбанк. Майндбокс раньше славился хорошими условиями труда, интересно деградировала ли она за эти суровые годы. Озон, сбер и тбанк стали бигтехами с перф ревью и потогонкой и увольнениями.
В целом писать крудики на голенке нет никакого смысла. Для переката за границу голенк в целом тоже не очень выбор, мало кто на нем пишет.
>>3632596 >Иногда у тебя коллекции уже отсортированы или, например, там только уникальные значения. Линк этого всего не знает и никак не оптимизирует.
Просто сортируешь и дистинктишь с помощью того же линка
> лучше ручками > написать итеративный код > но это будет настолько нечитаемо и неподдерживаемо
Стандартные средства языка на мой взгляд всегда лучше, чем копаться в сомнительных самописных алгоритмах. И ладно, тебе, дураку, это писать. Ну ты недопонял чего-то, полез в микрооптимизации, бывает.
>>3632772 > Просто сортируешь и дистинктишь с помощью того же линка Только линк после вызова distinct не в курсе, что в коллекции только уникальные данные, и никак это не может использовать в дальнейшем.
> Стандартные средства языка на мой взгляд всегда лучше, чем копаться в сомнительных самописных алгоритмах. И ладно, тебе, дураку, это писать. Ну ты недопонял чего-то, полез в микрооптимизации, бывает. А что, циклы вдруг перестали быть стандартными?
> Но твоим коллегам же ревьюить всё это. И >>3632777 Господа, я пишу на шарпе за деньги уже почти 15 лет. До этого ещё кодил на нём в универе. Я не чего-то недопонял, я прекрасно знаю как там что под капотом работает. Я сам прошёл уже все эти фазы, когда мне хотелось писать все подряд через линк, типа посмотрите как я могу начейнить десять функций с тройной вложенностью. И потом через полгода смотрел на свой же код как на текст на грузинском. Это сложнее разбирать, чем регулярки. Итеративный алгоритм ты всегда можешь разбить на кусочки, дать переменным говорящие названия, сделав код понятным и читаемым.
Конечно, цепочку из where, group by и select лучше написать через линк. Но я говорю о гораздо более сложных ситуациях.
>>3632770 >Для переката за границу голенк в целом тоже не очень выбор, мало кто на нем пишет. Там это просто поделка, чтобы было чем занять толпы тупеньких студентов-практикантов в гугле.
>>3632782 >Это сложнее разбирать, чем регулярки. До-о-о, канешн. Это тебе удобнее, поскольку ты их под себя пишешь. А попробуй их поразбирать, когда их штук 20...30 и все писались разными людьми. А потом еще и ебля с отладкой, которой нет.
>>3632782 >А что, циклы вдруг перестали быть стандартными?
Сами циклы стандартные.
Но когда разраб начинает писать посреди продуктового кода рукописные алгоритмы сортировок и прочего - то это нестандартный подход.
> Но я говорю о гораздо более сложных ситуациях.
Можно самые обычные задачи воспринимать как сложные ситуации при этом писать очередную реализацию хеш-сета. Просто потому что не умеешь словарями пользоваться.
Такое - повсеместно. Приходят люди, создают себе проблемы и героически их решают. Говорят умные слова. Ходят гоголем. Чешут подбородок сдвинув брови.
>>3634702 Бэк на дотнете точно умер, везде один ебучий фулстек в аутстаф галеры, разгребать вайбговно в очередном аи стартапе. Ебаные паджиты убили дотнет. Я пытаюсь перекатиться в голенг, там хоть и криптоскам, но без ублюдочного реакта и блазора.
>>3635207 Криптоскам это путь в один конец. Лучше перекатывайся за рубеж и ищи работу в финтехе/энтерпрайзе на дотнете или джаве. На Го тебя ждут помойные ру маркетплейсы и криптоскам на кипре. Нахуй оно тебе нужно?
Я сейчас из голенка в джаву выкатываюсь пушо тут за рубежом нет нормальных вакух на голенке.
>>3635387 Бэк на голенге точно умер, везде один ебучий фулстек в аутстаф галеры, разгребать вайбговно в очередном аи стартапе. Ебаные паджиты убили голенг. Я пытаюсь перекатиться в дотнет, там хоть и криптоскам, но без ублюдочного реакта и блазора.
Что за шиза такая? У окна есть свойство задний фон BackColor, есть свойство прозрачный цвет TransparencyKey и есть прозрачность Opacity. Если поставить прозрачность на 100, т.е. полностью прозрачный, и BackColor вместе с TransparencyKey поставить, к примеру, на синий, то окно становится ре просто прозрачным на вид, но и даже прозрачное для мыши. Т.е. можно сквозь окно нажимать на другие окна, перетаскивать ярлыки и тд. А если выбрать красный цвет то такого уже нет. Поэкспериментировал с разными цветами, какие-то дают такой эффект какие-то нет. Что за шиза такая?
Смешно сказать, но код Color MyColor = Color.Red; Color Color; даёт ошибку на Color.Red >Ошибка CS0841 Невозможно использовать локальную переменную "Color" перед ее объявлением.
>>3640291 Умеет. Разумеется, переменные должны быть одинакового типа, как и в любом популярном языке, поддерживающем такой синтаксис. >>3640338 Так же смешно, как непонимание правил разрешения имён?
>>3640466 >>3640499 Вы предвзятые токсики без аргументированного мнения и просто троллите, либо ваше мнение актуально было лет 10 назад. Я вот много лет пишу бекенд на (ts) и радуюсь жизни. Прекрасный язык, не зря написан автором сишарпа. Он меня не ограничивает в написании сложного бекенда, наоборот ускоряет, не привнося серьезных минусов.
Все такие современные и крутые со своими типоскриптами, голенками и жабами, но почему-то нет-нет да заглядывают в тему сисярпа. Очевидно, признают превосходство последнего и в тайне мечтают перекатиться.
Я - дотнетчик - почему-то не брожу по темам конкурирующих технологий. Угадайте, почему? Потому что они мне нахуй не нужны, я и так в шоколаде.
>>3632131 Идешь на завод. В отдел который пишет коды, обычно это какие-нибудь отделы с хтоническими названиями в духе: КБ ВПО ЖОПА, КБ ЗАЛУПА, и т.д.. С большой вероятностью будет стек: С/С++ + Java + C# + Python + PHP + 1C + JS. ЗП, на старте, около 20-40к рублей.
Будешь писать няшные прошивочки, и на .net Framework 4.5 хреноту для станков. Работать с разными велосипедами, которые до тебя писали шизы и студенты.
Это чтобы что-то программировать и стаж капал.
В это время - учишь докеры-хуекеры, кубернетисы-хуенетисы, AI, CI/CD и вот эту срань. Где-то через года 2 выходишь на рынок и пиздишь что ты там чуть ли не весь завод на себе держал, приписываешь к этим 2 годам сверху виртуальные 3 года за вредность производства. И сидя на заводе - ходишь по собесам, пока не получишь оффер который тебя удовлетворит.
>>3640779 Я тайпскрипто-бекендер и сижу в тредах большинства языков, просто интересно для кругозора. По работе ещё пишу по-мелочи на го и расте, вот может в кои-то веки скоро попробую дотнет (либо котлин).
>>3640523 >либо ваше мнение актуально было лет 10 назад. Я вот много лет пишу бекенд на (ts) и радуюсь жизни.
Сборка с нагромождением рукописного говна из npm, vite, yarn, webpack, и ещё 10-50 умных пакетов, которые до тебя настроили какие-то шизики. Компиляция по 3 минуты. Зависимости от нестабильных детей из NPM, которые апи ломают каждую неделю. Чуть что тронешь - всё рассыпается к хуям.
Как-то так мне TS запомнился, я на нём полтора года уже не пишу
>>3641100 >нахуя? Язык удобный, скорость разработки быстрая, рантаймы очень неплохие для 99% сервисов (I/O). >Можешь пояснить, в чём смысл писать на тайпскрипте бекенд если его всё равно нужно конпелировать А в чём проблема с этим? Процесс очень быстрый. Но вообще последний год уже не делаю этого, всё сервисы переехали на Bun (относительно новый JS рантайм), там не обязательно. Хотя теперь контролируем в single file executable. А недавно и нода научилась TS запускать.
>динамические приемущества js проёбаны? Да и хуй с ними, уже много лет даже на фронтенде почти во всех проектах брезгуют чистым JS, а на бекенде тем более этому не место.
>>3641106 >Сборка с нагромождением рукописного говна из npm, vite, yarn, webpack, и ещё 10-50 умных пакетов, которые до тебя настроили какие-то шизики Это фронтенд. Да и там всё не так плохо. Достаточно одного пакет менеджера и vite, всё.
>Компиляция по 3 минуты. Опять же на фронтенде у каких-нибудь Next.js дурачков, хотя даже там лучше стало из-за turbopack.
>Зависимости от нестабильных детей из NPM, которые апи ломают каждую неделю. Чуть что тронешь - всё рассыпается к хуям. Ну это ведь уже очень давно не так. Устоявшиеся фреймворки типа express (хотя это тупо роутер я считаю), fastify или nest - что там каждую неделю рассыпается? У экспресса мажорная версия только недавно сменилась на 5 спустя 10 лет. Библиотеки для валидации тоже стабильные, какие-нибудь орм/квери билдеры типа Knex, Sequelize, Mikroorm тоже, сейчас ещё Drizzle красиво сделали.
Из специфичного мне нравится end to end type safety. Я описываю типы в одном месте, они переиспользуются на фронтенде, из них же автоматически формируется апи клиент для фронтенда, из них же + из route handlers формируется опенапи спека, всё само автоматически, фронтовику достаточно просто импортировать апи клиент.
С тем, что сишарп круче, я спросить конечно не буду.
>>3641108 Поч? Это обычно довольно крутые станки и установки на самом деле. Из времен дружбы с Сименсами и прочими. А писать-то на WPF/WinForms программулины... Ух. Крутота же. Просто представь, берешь, в своей любимой студии, перетаскиваешь кнопочки на форму... Аж хуй встает же... Опять, т.к. винда на таких станках, пусть и специальная, все знакомое-родное... Единственное, ну, максимум 2-4 гига оперативы, из которых половину, местные админы под антивирус отдадут, треть - ОС будет жрать, ну, и собственно, тебе придется как-то свою ЙОБА хреновину в это укладывать.
>>3641101 Что он знает? Что у тебя отсортирована коллекция? Там это вообще никогда не принимается в расчёт. Да и откуда ему это знать, если коллекция извне приходит? Но даже если ты сделаешь Enumerable.Range(1, 1000000).OrderBy(x=>x).Where(x=>x<10), ты увидишь, что он в Where всю коллекцию просмотрит.
>>3641120 >Enumerable.Range(1, 1000000).OrderBy(x=>x).Where(x=>x<10) Пример говна. Ты используешь метод который подразумевает "перебрать все" и возмущаешься, что он перебирает все, а не делает что-то другое. Для того, что хочешь в linq есть: .OrderBy(x => x).TakeWhile(x => x < 10); Компилятор конечно умная штука, но это не значит, что он тебе во всем жопу должен подтирать и мысли читать.
>>3641136 Не надо мне тут ворота передвигать. Это был яркий пример того, что линк нихуя не оптимизирует, и он реально нихуя не оптимизирует. Единственное, что он делает, это если у тебя есть Select(...).Take(5) то он только для этих 5 выполнит код в селекте. Но это как бы вообще базовые вещи, оно для того и считается только в конце.
>>3641120 >Да и откуда ему это знать, если коллекция извне приходит? Это не рокет сайнс сообщить базовые характеристики источника данных. Вот джава стримы умеют такое https://dev.java/learn/api/streams/characteristics/ Что мешает в LINQ такое добавить?
>>3641533 > Это не рокет сайнс сообщить базовые характеристики источника данных. Вот джава стримы умеют такое https://dev.java/learn/api/streams/characteristics/ Что мешает в LINQ такое добавить? А что ты меня спрашиваешь? Спроси майкрософт. Но тут тоже возникает вопрос. А упорядочено оно по какому критерию? А как сравнивать на уникальность? Это очень сложно может быть понять как правильно применить в общем случае.
>>3640410 >Так же смешно, как непонимание правил разрешения имён? Вот смотри, понимальщик правил разрешения имён, я могу написать Color Color = Color.Red; и компилятор отлично по контексту понимает что есть что, но на примере выше уже сбоит. К тому же компилятор анализирует текст сверху вниз. Так, например, int i; int i; он подчеркнёт нижнее объявление, но с примером выше это не так. Что выглядит очень странно.
>>3642278 >Бля, а что, нельзя было просто добавить перегрузку конструктора List, принимающую capacity и collection? Это не шарпвей, шарпвей это придумать новую языковую конструкцию.
>>3641113 >припиздываешь Ну зачем вот это "врёти"? Почему людям неприятно, что в написанном на коленке за пару дней языке производит какое-то развитие?
>>3642269 Значит вы молодцы. А так если посмотреть документацию прошлых лет, почитать разные статьи, блоги, форумы, stackoverflow, то там сплошь и рядом получают сервисы из провайдера. Более того, я был неимоверно "счастлив" обнаружить GetService в кишках Entity Framework'а, когда нужно было оттюнинговать его. А у нас в той библиотеке DAL не использовался DI. С трудом удалось выкрутиться.
>>3642362 Передам фабрику. А уже фабрика сделает сервис с нужными параметрами. Когда используется ServiceProvider, то код получается привязан к DI от Microsoft. Вон даже в Autofac и других DI-контейнерах вынуждены были заюзать его. Фабрика лучше в том, что мы не привязаны ни к чему стороннему.
>>3642349 Ну мне повезло, наверное. Везде, где была продвинутая архитектура, изначально был нормальный DI, а где говнокод, там просто через new всё создавалось.
>>3642362 Как правило это решается иначе. Но тут надо на конкретный кейс смотреть. Одно дело, когда у тебя лайфтайм на веб реквест, совсем другое, когда у тебя постоянный сервис, тут может понадобиться редизайн классов. Ну или фабрику передавать, как выше советовали. Я обычно предпочитаю не использовать все эти паттерны, там часто экономия на спичках получается при раздутии количества файлов, но в исключительных ситуациях, наверное, можно.
Другой вопрос, что это именно рекомендация и бывают случаи когда проще сделать так, чем городить кучу абстрактных фабрик или еще что. Ну и опять же голый ServiceProvider тоже сейчас мало кто использует для этого. Есть IServiceScopeFactory которая позволяет это безопасно делать скоуп для извлеченного сервиса.
>>3642394 >Передам фабрику >>3642424 >Ну или фабрику передавать, как выше советовали Это просто в случае если у тебя там просто транзиент будет, а если дял более-менее сложного скоупа ты заебешься его в своей фабрике корректно собирать. Тебе просто придется заинжектить в эту фабрику ровно все что будет входить в этот скоуп по цепочке. Нахуй это надо, когда уже есть одна фабрика (IServiceScopeFactory) для всех таких случаев.
>>3642394 >привязан к DI от Microsoft. Вон даже в Autofac и других DI-контейнерах Чел, 2026-й год на дворе, какой к хуям "автофак и другие контейнеры". Ты еще какой-нибудь нинжект вспомни или еще что более протухшее.
>>3642676 Ты чо, у них аннотации. Там такая ебола, что хер разберёшься. Мне иногда приходится подправлять код под спрингом, я каждый раз хуею с того, как там всё ебануто. В спринге дохуища магии под капотом, и если ты в дотнете как правило можешь проследить что и почему происходит, то в пружине всё гораздо менее явно. Это потому что спринг - это магический DI контейнер с нашлёпками, асп.нет это веб-фреймворк со своим DI.
>>3642278 В листе есть конструктор с кэйпэусити и есть метод эддрэйднжъ, которые полностью решают поставленную задачу. Зачем нужна шиза с пика - решительно не понятно.
>>3642698 Не в чем там разбираться, хуйнул @Service и @Autowired в нужных местах, и всё работает даже на очень больших проектах, никакой ебли с лайфтаймами и сервиспровайдерами. Зачем ебаться, если можно просто делать все компоненты стейтлесс синглтонами?
>>3642505 > Ты еще какой-нибудь нинжект вспомни или еще что более протухшее. Большинство контейнеров тех времен умерли, да. Но не все. Использую DryIoc, самый быстрый di. мимо
Декларативная магия. Авторы спринга почему-то решили что если код напрямую вызывает другой код, то это порочная тесная связанность.
Ссал на лицо java-скуфью, которое породило концепции AOP и мета-объектно-ориентированного программирования, размазанного по xml файлам.
Пивная пузатая java-кегля не может не вкорячить между вызовами двух методов интерцептор.
Перед тем как написать кусок кода, надо добавить пару базовых классов предусмотреть, что через 5 лет его кто-то может переопределить.
Сам код обязательно развалить в 8 слоёв, так, чтобы был слой домена, слой core, слой бизнес-логики, слой приложения, слой доступа к данным, слой common, слой оркестрации, и на каждый переход между слоями надо по модели иметь.
И DDD. Но только брать удобную сторону DDD которую понял в меру своей тупизны.
И тесты обязательно на всю эту хуйню. Тест на то, что наследник базовой блядоты ни в коем случае не нарушил контракт по вызову адаптера фабрики
Повторю ещё разок, легаси java-кегельбан живёт только потому что 10 лет назад понаписали говна, которое поддерживать никто не хочет кроме авторов. А авторы знают это и пользуются
>>3644175 Сынку, спринг придумали еще до твоего рождения. Еще твой батя дрочить не начал, а на спринге уже писали большие системы. В те темные времена не было дженериков и замыканий и на каждый пук приходилось писать по десять абстрактных декораторов. Тогда это считалось нормальным, как сейчас считается высрать 100500 микросервисов и пукать в кафку. В наши дни по солиду уже никто не пишет, кроме ДДД долбоебов, но код на спринге есть, его дохуя, он приносит бабло и его надо поддерживать.
>>3644175 >Пивная пузатая java-кегля не может не вкорячить между вызовами двух методов интерцептор Ну и? В том же питоне во всю декораторы используются. AOP и вообще хуйня с аннотациями это просто расширение идеи декораторов из питона.
>>3644175 >Сам код обязательно развалить в 8 слоёв, так, чтобы был слой домена, слой core, слой бизнес-логики, слой приложения, слой доступа к данным, слой common, слой оркестрации, и на каждый переход между слоями надо по модели иметь Кек, я так писал на Go на последнем месте работы.
Мне как раз легко. я активно разрабатывал во времена помешательства на AOP, DDD, автомаппера, медиатра, bouncycastle, обобщённых репозиториев, и все эти дебильные практики метапрограммирования коллекционирую.
Я один из первых, кто перекатился на "нормальное программирование", я даже могу в коде написать new, и мне не стыдно.
>>3644405 >нормальное программирование И что это в твоем понимании?
>>3644417 >Ты различаешь декораторы и интерцепторы Да. Но в конечном счете суть у них одна - внедрить дополнительную логику вокруг выполнения кода. Декораторы простые и нативные (если про питон говорить), интерцепторы гораздо более громоздкие и тяжелые инструменты, но в каком-то смысле являются развитией идеи декораторов.
В голанке кстати тоже есть оборачивание поведения, просто ты там это явно делаешь и все.
>>3644405 >в коде написать new, Где-то в коде должны быть new, если их нет в твоём коде, значит они в библиотеках.
Вообще единственный момент почему я стараюсь все пихать в абстракции и избегать new это написание юнит тестов. Если мне не нравится как выглядят тесты или не могу с ходу их написать, то иду выносить абстракции. В 9 из 10 случаев в итоге получается понятная система.
>>3644554 Читай про Инъекцию Зависимостей / Dependency Injection. Можешь взять книгу Марка Симанна. Есть материалы на сайте Microsoft. Есть куча статей и видео разных авторов.
>>3644554 Сделать фабрику или иным образом выделить способы создания объектов. Идеально вообще с помощью generic math скрыть все инварианты создания внутри самой сущности, а все публичные свойства сделать get only. Дальше там надо немного черной магии авторегистрации открытых дженериков и ты получишь инъекции вида IEntityFactory<TEntity, TCreateDto> В чем плюс? Типы TEntity и TCreateDto будут проверяться на этапе анализа кода, то есть невозможно внедрение такой фабрики для которой тип TEntity не реализует инвариант для TCreateDto. Твой код просто не будет собираться, а ИДЕ выдаст ошибку типов.
В DDD запрещено создавать aggregates руками. Это responsibility репозиториев, а они в свою очередь должны инжектить aggregates из контейнера или получать из абстракции над базой данных
>>3644708 чтобы разделить конструирование сервисов и бизнес-логику. При конструировании задаёшь всякие настройки, прописываешь зависимости. А бизнес-логике только используешь уже созданные. Опять же при юнит тестировании вместо сервисов можно подставить моки
>>3645075 Расскажи про проект, на котором ты счас, домен интересует. Часто слышу про неправильное проектирование, год объекты, но блять шо банк шо перестрахование, везде домен такой что двадцать зависимостей в сервис это норма. Мб у вас домен проще?
нет, подобрал проект из-под сениур команды, которая по всей видимости осознанно пилила огромные контроллеры и год-сервисы по 1000-8000 строк кода.
Ну я посидел так пол года и понял, что нужно распиливать на кусочки.
Сначала смотрел на медиатр, чтобы обработчики запросов выносить. Но тот потребовал писать много бойлерплейт-кода и дженериков, потянул за собой автомаппер, что потребовало писать ещё больше бойлерплейт кода. Потом полезли все стандартные проблемы: из хендлеров медиатра вызывать хендлеры медиатра, обработчики команд развалили между всеми трёмя слоями, Domain и App и Infr. Фактически над кодом вообще не было никакого контроля. Какое-то обобщённое месиво из бехевиоров, валидаторов и маппингов.
Сделал вывод, что люди медиатр не понимают. Я работал в нескольких репозиториях с медиатром. Всегда выходит очень плохо.
>>3645085 >двадцать зависимостей в сервис это норма.
Это не норма. Если у тебя сервис делает сохранение в БД, запрос в стороннее апи и пукает в кафку - значит у тебя в зависимостях должна быть кафка, сервис внешнего апи и DbContext.
Покажи мне запрос, который делает что-то сложнее, чем эти действия
>>3645252 >Ты можешь показать пример c# файла, где больше двухсот строк кода и это оправдано? Ты ебанутый? 50 строк это максимум. Если получается больше - нужно насрать абстракциями.
тебе никто про абстракции не говорил, дурачок. Считать данные из постгре, переварить и записать обратно, совершить пару http вызовов - это не более ста трок кода.
Есть какие-то контраргументы или ты DDD дурачок с OrderService на 10000 тысяч строк мешанины?
С лидами/специалистами 10+ лет стажа, которые ещё на силверлайте писали, перееблись со всеми типами оэрэмок, переживжими восьмиугольный ddd-eventsourcing-automapper-aop-mediater ад и собравшими микросервисы обратно в монолит, чтобы распилить его обратно
Скоро заканчиваю вышку (техническая, связанная с сетями и связью, но не профильная, не прикладная математика/информатика). Есть шансы залезть хоть куда-то в сишарп, похуй куда и на какую ЗП? Почитал раздел, тотальное уныние, работы будто бы нет нигде ни на чем. Тут пишут, что на сишарпе нет работы, но есть на жаве, в жаве пишут, что на жаве не могут найти даже мидлы после увольнения и надо выкатываться в голанг, а голанга 5 вакансий на страну. Нравится сишарп за его разносторонность, и веб и десктоп и геймдев, согласен на что угодно. Свою специальность не люблю, но рад, что не пошел на айти, по крайней мере есть шансы не пойти на озон коробки таскать, а устроиться по специальности.
>>3645961 Просто берешь и смотришь рынок вакансий. В моей ебаной хохляндии, например, сишарп никому не нужен, работы нет. Думаю, в твоей локации все гораздо лучше. Нарисуй себе 3 года опыта и подавайся на мидла. Если говорить о трендах, то дотнет умирает. Печально, но факт. Паджиты методично убивают стек, теперь это не конкурент джавы в энтерпрайзе, а "сидят мартышки лепят кривую хуйню".
>>3646403 >дотнет умирает У тебя моск умер. Дотнет сейчас на взлёте. Каждая новая версия всё лучше, быстрее, богаче возможностями. Работы жопой жуй, если конечно мозги имеешь. Жаба даже близко не валялась по возможностям.
>>3646403 >Нарисуй себе 3 года опыта и подавайся на мидла.
У меня есть разраб такой на проекте, долбоёб страшный устроился, открывает рот, говорит умные слова. Толку никакого от него, в одной задаче может ТРИЖДЫ поломать публичное апи в случайных местах и ничего не понять.
В дотнет лезть НЕ НАДО. Это - для специалистов. Не надо рисовать себе три года опыта, тебя всё равно со стороны видно как на ладони и тебя просто выкинут на испытательном сроке.
>>3646411 Не мы такие, жизнь такая. Напишешь честно джун с гитхабом - даже резюме не откроют.Не прогонишь резюме через нейронку с этими ебучими "улучшил на 37%" - резюме автоматически пойдет в мусор.
>>3646406 Дурачок, толку с тех возможностей, если проектов нихуя нет. На дотнете никто не пишет нагруженный бекенд, одни фулстек инвалиды с блазором проект на три месяца. На джаве можно уехать в Цюрих, на сишарпе ты никому нахуй не нужен.
Ну справедливости ради в Швейцарии действительно джава популярна, другое дело, что никакого долбоеба с двача туда никто перевозить не станет, хоть ты жабу выучи, хоть питон, хоть сишарп, хоть си плюс плюс.
>>3647038 Швейцария не в ЕС и налоги там одни из самых низких в Европе...
А вообще ты не туда воюешь. В Гейропу надо съебывать сейчас чтобы к моменту полной АИ-автоматизации иметь ПМЖ и возможность пойти говночистом за полторы-две шутки евро в месяц. Ну или там кусты уметь стричь, тоже норм оплачивается.
В России, если ты прямо сейчас не учишься в свободное время трубы варить или унитазы бетонировать, то ты либо с голоду умрешь, либо в лучшем случае за 25-30к и прочий МРОТ рублей будешь уборщиком или грузаном работать.
Толку от твоих сотыг и низких налогов, если буквально завтра это все пукнет и ты останешься за забором как уже тысячи кнопнкодавов в России в прошлом и в этом году. Я безработый уже более чем полгода, например. В Германии хотя бы какие-то пособия дают, а здесь хоть с голоду помирай. Тебе видимо никогда залупой по губам не водили, не увольняли и не сокращали. Всю свою карьеру в айти педалишь и горя не знаешь. Ну ничего, скоро узнаешь.
В воображении ты заканчиваешь курсы сишарп, подаёшь резюме в deutsche bank. Устраиваешься тимлидом главной программы по обработке транзакций за 10к и ебёшь украинских проституток.
В реальности ты устраиваешься работать на полулегальную Кипрскую компанию за 3.5к. Твой домен это в лучшем случае форекс, вебкам или порно. Снимаешь квартиру за 1.4 к евро, 800 евро платишь налогами. Тебя в любой момент могут уволить и заменить на два удалённых пакистанца.
>>3647193 >>3647195 Можно подумать джавист окажется не в кипрском порностартапе в соседней съемной хате с дотнетчиком, а в том самом пресловутом дойчебанке.
>>3646457 >хоть си плюс плюс Nvidia до сих пор хайрит и возит.
>>3647047 Швейцария переоценена. Да это хорошая страна, налоги не очень высокие. Именно не очень высокие, а не низкие как многие думают. Одиночка с зп 150к франков будет платить 30.5 % налога. А еще надо медстраховку, самая днищенская будет 5,5к. Плюс цены на всё выше чем у соседей. Конечно если ты устроишься в Nvidia или Google, то зарплаты перекроют стоимость жизни, но ты туда еще устройся. Ну и в целом натурализация, тот ещё квест.
>>3647193 >В реальности ты устраиваешься работать на полулегальную Кипрскую компанию за 3.5к Дуднет на кипре никому не нужен. Там в основном питон, нода, очень мало go.
Да и нах нужен кипр, когда есть люксофт и епам в сербии и болгарии?
>>3647971 Да. У меня вообще путь такой был: Java -> Go (и немного Python) -> Java. Из Go пришлось обратно в Java выкатиться потому что работы на Go за пределами России довольно мало. На Кипре как раз на Go Олег Тиньков нанимает в Plata и еще Exness есть, какой-то мутный форекс/трейдинг.
>>3603761 (OP) Внимание вопрос. Как вы собираете окружение под свои проекты ? К примеру .net 5 даёт кое-какие легкие контейнеры под линукс, неужели происходит пердолинг с виндовс контейнерами или на похуе берете образ ОС со всем говном нужным и хуярите на вируалку\облако ?
>>3649075 Работа программиста заканчивается на пуше в гит. С окружением ебется девопс. Если от тебя требуют настраивать пайплайны, значит, ты попал на жлобскую галеру с хохлами, беги оттуда.
>>3649075 В чем отъебись. Кубернетис и вся эта хуйня это бегать целый день на согласования, совещания по развитию, следить за инфрой, паролями и прочей залупой. Я не лезу туда не потому что мне похуй, а потому что специалист колега мне все настроит и подготовит, а проблемы на границе мы вдвоем в зуме обсудим.
Каждый должен заниматься своим делом, а не писать на сдачу скрипты для гитлаба и докера.
>>3649102 >>3649111 Так я и есть тот самый девопс, всю жизнь сидел на божественных плюсах с йоктой, тут попросили кое-какое говно старое посмотреть. Пошел к коллегам, эти додики держат AMI готовые просто. Ебучие виндовсоконтейрены под четвертый дотнет я в рот ебал, но походу надо будет затерпеть. Разработка под винду .net это какой-то особый фетиш получается.
>>3649136 >Разработка под винду .net это какой-то особый фетиш получается. Если говорить про бэк, то там сейчас вообще разницы нет под что ты пишешь, винду или линукс. Максимум, что за последние года 2 платформозависимого у меня было - это сравнение имен файлов с учетом регистра и без. Но сейчас и с файломи-то максимально редко приходится работать.
>>3649276 >Бекенд разработчик = полудевопс. Не знаю где ты такую хуйню взял. Ниразу не писал ни одного скрипта для докера и не залезал в гитлаб. У меня даже нет прав на настройки гитлаба.
Как раз ты всю жизнь будешь работать за мелкий прайс потому что ты коекакер, умеешь все но кое как.
P.S. ждем сколько получают не джуны которые ежедневно вместо написания кода и проработки архетуктуры занимаются настройкой кубера.
>>3649295 А чем ты как разработчик полезен в эпоху нейронок? Сейчас в крупных компаниях везде переходят на agentic написание кода, то есть ты как разработчик код либо только ревьювишь, либо вообще не смотришь. Если ты не можешь выполнять роли девопса и аналитика, то ты из профессии вылетишь очень скоро. Я уже вылетел, например.
>>3649278 >У меня ещё несколько раз с таймзонами проблемы были. Что решается установкой нугета Я когда-то с этим столкнулся, еще во времена .net Core2, и с тех пор просто хуярю во всех кодах константу DateUtcToMoscowHours = 3 и не парюсь. Но скоро вот придется с иностранцами работать и там похоже придется все-таки делать по человечески.
То, что ты захардкодил +3 для москвы - это ты сам себе дурачок. Надеюсь, тебе самому придётся это исправлять, а не коллеге, который твой говнокод в сопровождение возьмёт.
Я вообще про другое говорил. Про то, как в винде хранятся таймзоны:
Непонятно, зачем ты свой собственный формат сериализации словаря изрбрёл? Пользоваться INI/ json/yaml умеет каждый. Просто научись пользоваться сериализатором
Ты комментариями разграничиваешь блоки кода в файле на 700 строк. По таким комментариям делаю вывод: остальное смысла смотреть нет
>>3646403 >Просто берешь и смотришь рынок вакансий. В моей ебаной хохляндии, например, сишарп никому не нужен, работы нет. Лол, ты видел че гетьман (не шоколадный) писал? В марте если дай-дай не будет - будет дефолт. В киеве люди в пакеты срали ползимы, с весьма ощутимым уроном по бизнесу. Какие разработчики?) Скажи спасибо что хоть какие-то конторы остались на западной в живых и платят денег, чтобы хватало жить на доставке и не быть скрученным оповестителями. Наш ит рынок вообще не показатель. Я лично свичнулся в 1сники из довоенного геймдева (который утонул), на еду в целом хватает и работа есть, вкатываться в что-то другое надо в другой стране
>>3650928 1С - это постоянные разъезды по микрокабанам. Как ты с тцк порешал? И чому не уехал с этой ебаной помойки, если у тебя такие связи? Лично я съебываю к ближайшей границе, от Киева это Беларусь, как только границу откроют, ебал я кормить безногих хохлов.
>>3651019 >1С - это постоянные разъезды по микрокабанам. На продуктовой фирме осел с бронью, знакомого знаю - 1с удаленщик дома сидит, а ему мать за продуктами ходит, так что варианты как не попасть в ряды героев есть разные. Если вылечу - скорее всего тоже буду удаленить как и он. >Как ты с тцк порешал? Ну успел проскочить в окно, когда в 22-23 не сильно трахали работодателей за плохой военный учет душ, и людей брали на работу в обход тцк. Сейчас есть 45 дней, тоже можно рискнуть, но на 44 день лучше заболеть, пока нормально не оформят. >И чому не уехал с этой ебаной помойки, если у тебя такие связи Потому что лично знаю примеры, как килобаксы за эвакуацию отдавались буквально вникуда, и это еще не самый худший вариант как дело может обернуться. Связей у меня никаких особо нет >как только границу откроют сплю и вижу этот день
>>3651319 >Каждый комментарий в твоём коде это бестолковое бормотание Бестолковое бормотание это твои посты. Ты не отдупляешь простейших вещей. Есть комментарии которые объясняют что делает код, и да хороший код почти всегда не нуждается в таких комментариях. А есть комментарии которые объясняют почему код написан так, а не иначе - требования заказчика, костыль для обхода бага в соседней системе, перформанс оптимизация и т.п. И тут комментарии нужны и уместны.
>>3651516 >Нахуя мне его высеры читать? Кто тебя заставляет писать высеры?
Вместо того чтобы нормально объяснить новичку что не так, ты начал писать шизоидные высеры про вынесение функций и написание тестов. Не хочеш/не можешь нормально ответить - так просто ничего не пиши.
>>3651319 >это бестолковое бормотание >>3651485 >хороший код почти всегда не нуждается в таких комментариях Ну не знаю, спорное утверждение. Намного легче прочитать комментарий и понять что делает кусок кода, чем вчитываться и анализировать сам код. Тупо быстрее получается.
>>3651516 >Комментарий - это последнее средство. Он пишется в крайнем случае. Это кто такое сказал?
>>3651319 >Затем в местах, где хочется написать комментарий вынеси функцию с нормальным именем Ну да, на каждый цикл, каждое условие по функции. Видел я такой код.
>>3651855 >И внезапно не появляется никаких "противоречивых требований заказчика" и "обход бага в соседней системе". Тут ты не прав. Я тоже не сторонник комментариев, но на больших проектах как раз таки норма когда в коде могут быть заметки на неочевидных решениях. Например несоответствие реальности стандарту или какие-то исключения связанные с особенностями работы интеграций и т.д. Другое дело, как выше уже писали, что такие комментарии описывают не то "что и как сделано", а то "почему это сделано именно так, а не иначе", чаще всего там достаточно ссылки на задачу в трекере которой все и описано. Но я в таких случаях все равно обычно добавляю хотя бы краткое описание, т.к. трекеры имеют свойство дохнуть и потом можно следов не найти с одной ссылкой.
>>3651855 >И внезапно не появляется никаких "противоречивых требований заказчика" И да, как раз таки появляются, неожиданно и резко и срок их выполнения обычно "вчера"
>>3651485 >А есть комментарии которые объясняют почему код написан так, а не иначе Это и есть плохой код, который писать не надо изначально, толку от того что там есть комментарий или нет конечно, делать всё хорошо и сразу правильно на больших проектах несколько проблематично, но стремиться к этому надо
>>3652086 >>3652208 А как же любопытство. Вы же программисты! >Если б нам было интересно байтоёбство, мы б сидели в тредах про плюсы и раст. Да, но для этого нужно знать эти языки (особенно C++ со своими подвохами, где даже -Wall не всегда поможет). А в C# ты можешь начать байтоебствовать почти сразу.
Ну или почитать какой нибудь блог на досуге в качестве развлечения (ну и можно узнать что нибудь новое). Вот тот же Kevin Gosse пишет GC на C#. Вот из этих статей можно узнать более подробно о работе GC.
>>3652568 >Ну или почитать какой нибудь блог на досуге в качестве развлечения (ну и можно узнать что нибудь новое). Если именно в качестве развлечения, то гораздо интереснее взять какую-нибудь esp-шку и под неё что-то поделать или под pico-8 игрушки поделать. Там байтоебство намного интереснее и выхлопа больше (хотя бы эмоционального). На шарпе приятнее как раз на высоком уровне писать.
>>3652517 >Работал на многих крупных проектах, где не писали комментарии и даже не обсуждали этот вопрос. Вопрос решён лет 20 назад умными людьми А сейчас не 20 лет назад, а 2026 на дворе и всем похуй на потуги перфекционистов.
>>3652508 >Просто потому что мы можем себе это позволить Ага IDE-only язык. При этом на кой-то хер интерфейсы надо объявлять через IZalupa а то будет непонятно, что это интерфейс.
>>3652606 >Если именно в качестве развлечения, то гораздо интереснее взять какую-нибудь esp-шку и под неё что-то поделать или под pico-8 игрушки поделать. Там байтоебство намного интереснее и выхлопа больше (хотя бы эмоционального). Это да, но это уже не получиться делать в перерыв/перед сном/на унитазе. К тому же >под неё что-то поделать Кто? Я?
Я уже так миллион лет жду разбор особенностей NativeAOT. Самому разобраться - так эти знания "пропадут" вместе со мной, ибо чукча ленивая жопа и не писатель блогов.
>>3653216 Сейчас вообще коды никто не читает. Люди просто сидят и вайбкодят через claude code/codex в CLI режиме в терминале. Текстовый редактор и тем более IDE нах не нужны. Как не нужен и дебаггер.
>>3653221 Это ты не нужен, болван, сидишь уныло байтишь в пятисотый раз одно и то же, у интернета рак от тебя, сходи книжку почитай какую-нибудь, Дюма там, Тома Сойера
>>3653231 Раковник никчемных оболтусов на самоподдуве. Ты еще линкедин фид полистай, там каждый первый уже убил все саасы, навайбкодил халфлайф 3, и все с помощью одного старого советского файла skills.md. Остолопы как есть.
>>3653216 >А нахуя тебе открывать код вне IDE ? Ты будешь видеть кучу кода во время кодревью в Гитхабе или что там у вас. Помимо код ревью иногда надо просто посмотреть код в другом бранче/ревизии, удобно через вебинтерфейс делать. Иногда надо что-то быстро глянуть в другом проекте не настраивая его, тоже проще без IDE это сделать. Claude будет тебе код в консоли показывать, там вообще никакой IDE нет.
>>3654610 >Ты будешь видеть кучу кода во время кодревью в Гитхабе или что там у вас. Если это просто фикс какой-то на пару строк, то посмотреть его проблемы нету, а если это какая-то жирная фича, то намного удобнее её ревьюить в IDE. Ну а вообще - код-ревью - это фикция. Джунов, за которыми надо прямо ревьюить, я уже года три в природе не видел. Вокруг одни синьоры-помидоры у которых все ревью идет по принципу "ок, можешь лить свое говно в эту ветку", Ты максимум смотришь, чтобы код более-менее соответствовал задаче и был из этого релиза, а не из другого. >>3654610 >Помимо код ревью иногда надо просто посмотреть код в другом бранче/ревизии, удобно через вебинтерфейс делать Нет. В IDE это все уже есть. Буквально парой кнопок. >>3654610 >Иногда надо что-то быстро глянуть в другом проекте не настраивая его, тоже проще без IDE это сделать. Нахрен тебе его настраивать если просто глянуть? В IDE открыл и все. Это не говоря о том, что в штуках типа гитлаба уже встроенное web ide для таких целей есть. >>3654610 >Claude будет тебе код в консоли показывать, там вообще никакой IDE нет. Я хуй знает за твой клаудэ, у меня плагин для дипсика спокойно и копирует код из IDE и вставляет, хуй знает в чем твоя проблема. Сейчас глянул - в нем и для claude вкладка есть.
>>3654704 >Ну а вообще - код-ревью - это фикция. Джунов, за которыми надо прямо ревьюить, я уже года три в природе не видел. Вокруг одни синьоры-помидоры у которых все ревью идет по принципу "ок, можешь лить свое говно в эту ветку", Ты максимум смотришь, чтобы код более-менее соответствовал задаче и был из этого релиза, а не из другого. Хуясе у вас культура разработки.
>>3654704 >Нет. В IDE это все уже есть. Буквально парой кнопок.
Я IDE не открывал уже года 2. Просто даю указания Claude (я в восторге от этой нейросети) и он сам за меня коммитит всё, что нужно. Подписка стоит буквально как пачка жевачки в месяц
>>3655202 код написан синтаксически верно и всё хорошо @ на проде апи начало крутить вертухи и появилась возможность купить null товаров за undefined денег тру-стори, я потом это говно еще и разгребал потому что коллега уебал в отпуск после релиза
>>3655990 Литерали бесполезные знания. Кому надо ебаться с памятью, на дотнете не пишут. Кто пишет на дотнете, тому поебать на кишки жц. Кому надо писать на дотнете без жц, просто выделяют статический глобальный буфер структур и вместо указателей используют индексы буфере.
>>3656502 >Литерали бесполезные знания. Кому надо ебаться с памятью, на дотнете не пишут.
Ты долбоёб уровня хoxол.
Я однажды видел как парни написали сервис где память росла линейно. Для того, чтобы скрыть эту проблему, они придумали перезапускать конетейнеры раз в пол часа.
Я говорю им: такого не должно быть. У вас проблема тут и тут, это называется мемори-лик.
Они посмеялись и их тех лид сказал, что перезапускать контейнеры это ХОРОШАЯ ПРАКТИКА. Они вообще хуйнёй страдали, пытались прикрутить библиотеки от классического .net framework к дотнет кору, пытались в automapper/mediatr based DDD.
>>3656517 >Я однажды видел как парни написали сервис где память росла линейно. Для решения таких проблем знание кишков GC тебе поможет чуть более чем никак.
>>3656517 Я поскольку новичок, не могу вообще даже вообразить себе, как образуется мемори-лик в дотнете? Там же принципиально не используется ручное высвобождение ресурсов. Обесните, сеньоры. Дайте примеры хоть какие.
Пацаны, планирую поменять IDE для кодинга игр на unity. Что лучше для C#: vscode или neovim? На neovim можно добиться того же функционала, что в vscode?
>>3656517 Поридж, ну кому ты пиздишь? Ты безработная хуйня у мамки на шее с ноль опыта в проде. Мемори лики были в старом дотнете, если засрать большую кучу огромными строками. Сейчас тебя решарпер захуесосит, если ты будешь конкатенировать через плюсик.
дотнет гарантирует, что сборщик мусора не вычистит объекты из стека вызовов (от текущей вызванной функции и вниз).
Так же дотнет гарантирует, что сборщик не вычистит статические данные. Они на то и статические.
пока не рассматриваем очередь финализации, так как это хитрый механизм, про него позже прочитаешь
Вот и всё. По сути любой мемори лик ты пишешь сам и это нормально.
Если ты реализовал кеш в статике - ты получишь контролируемый мемори лик.
Если ты написал долгоживущий сервис с событием, на которое бесконечно подписываются, но не отписываются какие-то другие объекты - ты получишь мемори лик.
И так далее. Магии никакой нет, если в дебри не лезешь
>>3657260 Ну как сказать. У нас мемори-лики были до того как мы перешли на автомаппер. Теперь зануление всех ссылок это не ответственность разработчика.
Я обнаружил сладкий синтаксический сахар, который мне очень нравится, и хочу больше, но даже загуглить не получается, какие ещё есть варианты применения? Речь о вложенных в условия переменных: > if (obj is Form f) {f.Title = "form";} Хочется чтобы из такого синтаксиса вывели новый синтаксис локальных переменных. Типа такого: > (SomeType expression resultVariable) { // в этом контексте существует resultVariable } В круглых скобках задаётся выражение, типизируется и присваивается локальной переменной. В одну строку. Несложно догадаться, что такой сахар заменяет отдельную строку с объявлением локальной переменной. > SomeType resultVariable = expression;
Ага, про rider так же говорили, что он "быстрее". Через год его допилили до паритета с VS и он стал жрать в 2-10 раз больше памяти и тормозить не меньше студии.
с VS Code то же самое было. Сначала все дрочили на то, какой он быстрый и отзывчивый. А потом, после установки пары плагинов он стал потреблять ресурсов как rider.
Я, кстати, смотрел недавно видео, как автор зеда на видео оргазмировал от его скорости. Он буквально открыл блокнотзед и полчаса восхищался тому, какой он гениальный редактор написал: "Awesome!", "Wow", "Great", "Nice!".
А так со стороны смотришь и видишь какой-то саблайм-текст по цене пачки жевачки в месяц 10$
>>3658271 А в чём кек? Типа, если нет ошибок, но последний матч не сработал, вся эта конструкция возвращает нулль, и мы получаем: >>3655411 > возможность купить null товаров за undefined денег
>>3658332 Нет, всё гораздо хуже. Вместо того чтобы развивать функциональный F# который им дала майкрософт, они тащат функциональщину в C# - вот что огорчает.
>>3657715 Спс. Попробовал я zed, но там синтаксис не так хорошо подсвечивается как в vs code, поэтому буду пробовать vs code пока что. Но да, zed быстрый.
Возникла другая проблема, не ставятся вообще никакие расширения, chatgpt предлагает скачивать через api, распаковывать и устанавливать в ручную, зачем оно мне надо непонятно. Кто-нибудь знает, помнтися microsoft уходил из россии, может заблокирован доступ и к расширениям vs code? У всех все нормально ставится? Может там регаться и логиниться нужно, чтобы они скачивались? Спрашиваю, чтобы исключить эту проблему и разбираться с сетью.
>>3658749 Зед настолько быстр, что даже запросы к системе на добавление в исключения брандмаэуэра у него отсутствуют. Просто тихо обламывается и молчит. Что ящитаю, минус. Надо как-то это в интерфейсе было показать.
Если ты вручную добавишь правило в брандмауэре для зеда - то всё начнёт качаться.
>>3659007 Вообще я не вижу смысла в IDE. за меня всё делает перплексити, я просто с утра даю ему пару промптов, а к вечеру он уже деплоит в апп-стор.
в прошлом месяце я таким образом опубликовал на ксамарине приложение с ценами стоков криптовалют. В этом планирую брокера запустить и трейдеров приманивать.
>>3659279 Такая же хуйня. Тимлид приседает читать высеры клауды, а я просто сижу и всякие масс-транзиты и медиатры интегрирую, чтобы в резюме добавить.