Этого треда уже нет.
Это копия, сохраненная 3 марта 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 2551685
>>2550619 →

>Он что, рили подписывается на каждый итем из списка?


А есть какая то проблема от этого?
3 2551707
Джава лучше, чем шарп
4 2551722
>>551707
Репортите и пинайте мочу, ибо джавадебил заебал. Джавадебил, пошел нахуй!
5 2551724
>>2550619 →
Ты можешь иметь всего одну подписку, которая будет добавляться в новый бутон при событии его активации, и удаляться из старого бутона, если она в нём была.
6 2551729
>>551722
А в джава-тред приходить и срать своим шарпом типа норм?
7 2551736

> 1. Validation takes place (automatically) before controller action no matter the attribute. I was a bit unclear on that point before.


> 2. In monolith web apps (e.g. returning Razor pages) code should check if the model is valid (as you’ve shown), but it’s only a check against already established (validated) model state, not a validation itself.


> 3. With [ApiAttribute] you get automatic 400 response with a list of validation errors.


> Since we’ve established validation takes place before any controller action, then you will never reach IsValid() check unless the model is already valid, thus making it redundant.


Почему в таком случае в 90% примеров веб апи продолжают включать проверку валидности модели?
image31 Кб, 1560x691
8 2551739
>>551587 (OP)
В какой язык стоит погрузиться для изучения? Выбор стоит между C# и C++.
В С++ есть концепты с темплейтами, которые гибче дженериков. Есть умные указатели и в принципе в 2к23 можно на С++ писать без ручного управления памятью. На С++ можно писать маленькие крошечные программы-утилиты, в то время как на C# хелловорд будет весить 300 мб, либо же потребует от пользователя устанавливать фреймворки из интернета. На C++ написано больше кода и больше всяких либ. С++ намного более свободен и не зависит от одной корпорации. Вся инфраструктура языка открыта. С++ намного быстрее. А используя современные подходы к программированию на С++ уже не придётся сталкиваться с UB и утечками, как это было 10-20-30 лет назад. С++ полностью мультиплатформенный, хоть для БЭСМ пиши. С# - это винда + вялые имиджевые потуги на линух, в которые никто не верит. C# - это по большей части макакоразработка, в то время как на С++ есть и жирные вакансии на 700-1000к во всяких финтехах, трейдинге и крипте, и фундаментальные интересные задачи. С++ является батей C#, потому что весь рантайм C# написан на С++.
Почему в 2к23 нужно выбирать C#, а не С++?
9 2551748
>>551729
конечно норм. есть же разница - говорить истину и бредить как жавист.
10 2551756
>>551739

> Почему в 2к23 нужно выбирать C#, а не С++?


Потому что кресты никому нахрен не нужны и работы для джуна там нет. А ещё в крестопараше нет нормальной системы управления зависимостями, на каждый пук нужно катать портянку в мейк файле, если что-то пошло не так тебе выдадут ошибку на несколько страниц, и разбирайся как хочешь. Также в крестах нет нормальной инфраструктуры, стандартная библиотека очень скудная, не завезли даже работу с сетями. В языке нет рефлексии, а значит и нормальной сериализации. Продолжать можно долго. Кресты уступают шарпу во всём, кроме скорости.
11 2551757
>>551739

> С# - это винда + вялые имиджевые потуги на линух, в которые никто не верит


Толсто, пошёл нахуй.
12 2551758
>>551739
Кроссплатформенный аналог С++ - это Java, а не C#. Именно она унаследовала всё, за что любят C/C++. Работает принцип: один раз написал - работает везде (на 4 миллиардах устройств без перекомпиляции).
А C# - это наследник Delphi с PascalCase-конвенцией. Название не должно сбивать с толку. Это обман.
13 2551759
>>551739

>в принципе в 2к23 можно на С++ писать


Что ты собрался писать в 2к23-м? Основная работа разработчика сейчас это поддержка и доработка готового. А это значит, что ты погрязнешь в отладчике разбирая код хорошо если 2003-го стандарта. А что-то новое глобальное начинать на C++ слишком рисково, и мало кто решиться вкладывать бабки в такое. Так что хуй тебе, а не новые фишечки.

>в то время как на С++ есть и жирные вакансии на 700-1000к во всяких финтехах,


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

>трейдинге и крипте,


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

>фундаментальные интересные задачи


К которым тебя без корочки, а то и двух никто не подпустит.

>Почему в 2к23 нужно выбирать C#, а не С++?


Ты опоздал с выбором года на 3 где-то. В 2к23 совершенно похуй уже, что выбирать. Разве что только для хобби.
14 2551783
>>551756

>в крестах нет нормальной инфраструктуры,стандартная библиотека очень скудная, не завезли даже работу с сетями


Boost является по факту стандартной либой, если тебе такое надо. Там есть всё как в дотнете. Но при этом есть и возможность и не тащить с собой то, что не нужно.

>В языке нет рефлексии, а значит и нормальной сериализации.


Потому что это никому не нужно, кроме ошивающихся рядом макак. Сохранение и чтение состояния пишется ручками и обычно его делают эффективным.
15 2551806
>>551759

>что-то новое глобальное начинать на C++


Где нужна производительность - выбирают С++. Не карбон же, не раст брать. Они ещё сырые и разрабов нема. А что ещё брать-то?

>До-о-о, и берут конечно же пиздюков вчера только начавших учить плюсы.


Так можно про любой язык сказать. Речь о том, что время пройдёт, и ты уже будешь опытным разработчиком. И крестовик с 10 годами опыта намного ценней, чем такой же старый питонист. Банально выслуга лет на плюсах - выше всех ценится рынком. А вот в JS она скорее в минус идёт. JS - дело молодых.

>Тут проще в казино сходить, шансов больше.


В этих сферах крутятся бабки. Побольше чем даже в геймдеве.

>К которым тебя без корочки, а то и двух никто не подпустит.


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

>В 2к23 совершенно похуй уже, что выбирать.


Сейчас государство будет топить айти в деньгах, будут импортозамещать всё и вся. Работы будет только больше.
16 2551851
>>551806

>Где нужна производительность - выбирают С++


Не выбирают. Выбирают C#, а если нужна производительность - то её пишут на C++, а затем интегрируют в шарп.
17 2551854
>>551806

>Сейчас государство будет топить айти в деньгах, будут импортозамещать всё и вся. Работы будет только больше.


Эх, бля. Если бы ты реально работал с государством ты бы так не радовался.
18 2551871
>>551851

>если нужна производительность - то её пишут на C++, а затем интегрируют в шарп


>шарпомакака...


>пишет на C++


Представили? Посмеялись?
19 2551884
>>551783

> Boost является по факту стандартной либой, если тебе такое надо.


Ни по какому факту стандартной либой она не является.
20 2551885
>>551783

> никому не нужно


Поэтому во всю идут разговоры о том, что пора бы уже добавить рефлексию? Проснись, ты сериш.
21 2551888
>>551885

>во всю идут разговоры


Обычная соевая пропаганда, она сейчас везде, буквально повсюду эти разговоры.
22 2551922
>>551884
Ты можешь называть это как хочешь, но не нужно врать, что крестовики сидят на голой стандартной либе, а если нужно например регулярку заюзать, то им придётся искать васянолибы на каждый чих и полдня пердолиться с мейкфайлом или велосипед писать. Также легко как в шарпе всё делается уже очень давно.

>>551885

>во всю идут разговоры о том, что пора бы уже добавить рефлексию?


Рефлексия решает очень специфические и далеко не всем нужные задачи, но при этом затрагивает и засирает весь язык целиком. Нужно ли это в системном языке общего назначения, который позиционируется как предельно производительный? Комитет считает, что это не нужно.
23 2551965
Дебсы отъебитесь от плюсов. Соевые куколды вы уже реально заебали. Никакая рефлексия, регулярка не нужна в плюсах, это лишняя рыготина.
24 2551972
>>551756

>Также в крестах нет нормальной инфраструктуры


Для вкатуна может и да, но в крупных компаниях и фаангах есть свой самописный тулинг, который облегачет работу существенно. Ну и стандартные решения вроде буста и симейка никуда не делись, пакетные менеджеры вроде vcpkg и conan тоже уже давно существуют.

>>551759

>хуй тебе, а не новые фишечки


Везде, где работал, старались кресты обновлять до 14/17/20 стандартов. На 98/03 уже очень мало кто сидит. Как минимум 11 везде уж точно.

>>551759

>Ну и плюсы там вроде никому нахуй не сдались сейчас


HFT все так же на С++ живет (и частично на джаве), и никуда уходить не собирается.

>>551759

>К которым тебя без корочки, а то и двух никто не подпустит.


Смотря что интересное для тебя. Если вот это

>численно моделировать какие-нибудь квантовые эффекты в высокотемпературных сплавах для авиации или обрабатывать петабайты с массивов радиотелескопов в разных концах страны



то вышка конечно нужна, плюс нужно работать в профильной организации научным сотрудиником. Это не для рядовых разрабов задачи, а для ученых, для которых разработка дело второстепенное.
Если говорить именно про разработку, то какие-нибудь cloud/infra хуевины вроде видеостриминга, где нужно много данных отдавать в секунду с малыми задержками, все еще на крестах написаны. И на такие проекты вполне возможно с обычной вышкой попасть.
25 2552006
>>551972

> есть свой самописный тулинг,


Ну то есть каждый раз придется осваивать чужие велосипеды, вместо стандартного решения. О чем и речь, нахуй такой язык.
>>551965

> не нужна в плюсах


Классика. А ещё контейнеры не нужны, ошибки, классы, айда на чистый си!
26 2552049
>>551739
попустись дедуль, какой С++ в 2к23? все нормальные люди на ржавом давно уже
27 2552050
Проработал год на C# бэкером. Теперь думаю, что надо иметь подстраховку и изучить ещё пару языков - думаю изучить пару JS-фреймворков и изучить C++. Правильно всё делаю?
28 2552059
>>551972

>возможно с обычной вышкой попасть.


Которая хорошо если у 10% есть.
29 2552060
>>552050
Для подстраховки надо учить то, где есть уверенность, что при необходимости сможешь по-быстрому доучить и вкатиться. С JS прокатит, с плюсами может не пройти, их обычно учат долго.
30 2552064
>>552050
нет. на пол шишечки изучишь - на полшишечки получишь.
31 2552075
>>552064
Как получить во всю длину?
32 2552115
>>551965
Дебилы просто не понимают (или специально серут), что если в С++ завести фичи макакиных говноскриптов, то С++ превратится в еще один шарп или джаву. Но зачем еще шарп или джава, когда они и так уже есть? С++ нужен именно потому что это не макакин говноскрипт, которых и так полно как собачьего говна по весне. То есть, макаки просто хотят уничтожить С++, потому что он напоминает им об их ущербности. Свиньи хотят разрушить всё красивое и замазать своим говном чтобы было им удобно в этом говне лежать.
33 2552119
>>552115

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


Собственно так и появился C++, свиньям не нравилась красота и лаконичность сишки.
34 2552131
>>552119
С++ содержит в себе всю красоту и лаконичность сишки, бери и пользуйся, никто не мешает.
Только С++ не ограничен сишкиной красотой только в теории, а на практике бесполезным говном, годным только для хеллоуворлдов и поделок для микроконтроллеров. Сишка была крутой в 80-х, когда компьютеры были так же примитивны как сишка. Но сейчас те времена давно ушли, сишка осталась за бортом истории, и король теперь её наследник С++.
35 2552135
>>551965

>Никакая рефлексия, регулярка не нужна в плюсах


Но там всё это уже давно есть.
36 2552141
>>552115

>всё красивое


Это ты про C++, который состоит наполовину из архитектурных косяков, на вторую из попыток решения этих архитектурных косяков?
37 2552148
>>552131

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


В таком случае c++ мне нахуй не нужен, хватит чистых сей. А вот сами кресты, если отойти от си тот ещё большой уродливый кусок костыльного говна.

> и король теперь её наследник С++


Король параши разве что.
38 2552154
>>552119

>свиньям не нравилась красота и лаконичность сишки.


Только эта красота и лаконичность приводит к тому, что в любом хоть немного большом куске кода на Си будет изобретён свой особо уродливый DSL. Ага.
39 2552188
>>552154
Ну по словам любителей плюсов это норма.
40 2552189
Чому все остальные имеют такую нужду самоутвердиться, типа "мой язык не ущербный, это ваш язык говно" и регулярно заходят сюда
41 2552192
>>552189
Серьезно, почитал пару тредов, то джависты сюда приходят, то крестовики
42 2552195
>>552188
Это позеры и вкатуны. Тру-плюсовики лучше всех знают, что cpp говно. Просто выбора нет. Учат Rust и ждут Carbon.
43 2552196
>>552115
Какой же смачный подрыв. Пиши еще.
44 2552198
>>552059
Обычная техническая вышка есть у многих, не пизди. Везде, где работал, включая самые помойные галеры, вышка была почти у всех, а техническая минимум у половины.
Если ты после путяги или вообще не учился, ну земля пухом тогда. Серьезно, большая часть разрабов, что в РФ, что на западе хотя бы диплом помойного бакалавриата имеют.
45 2552201
Нахуя они вообще сделали в sql столько функционала для хранимых процедур и функций, не легче ли все в sql просто хранить, а в шарпе всю логику делать, а еще представления хоть в каком-то виде нужны будут?
46 2552210
>>552201
Иногда хранимки быстрее и фичастее. Но, в целом, эти штуки я только у ораклоделов видел
47 2552212
>>552201
Когда-то логику на хранимках писали. Да и до сих пор иногда пишут. SQL и реляционные БД в целом очень старая и древняя вещь.
48 2552243
>>552006

>контейнеры не нужны, ошибки, классы


Теневые сотни миллионов офисных программистов-автоматизаторов екселя и ворда на самом популярном в мире языке программирования VBA как-то живут с этим.
49 2552250
>>552192
Клоуны в любой тред набегают. В крестотреде срут шарписты и растовики, в джава-треде срут goвноеды и шарписты, в go-треде срут все. Разве что JS и петухон, там срать скучно, их и так жизнь обидела, поэтому срут в основном про ущербность динамической типизации и местных фреймворков. Ну и у 1С-ников и в пхп, где всё совсем плохо, можно срать совсем толстотой.
50 2552254
>>552243
Скриптики на тыщу строк можно хоть на баше писать. Энтерпрайз не просто так для сервисов-миллиоников выбирает Java и C#.
51 2552259
>>552198
>>552059
Очень редко встречал в профессии людей без вышки.
Такие были, как раз наверное 1 из 10 были без вышки или отчисленный с 1-2 курса. Такие люди могли быть очень даже технически грамотными и прошаренными в своём стеке, но ВСЕГДА такие люди были с нулевым социальным интеллектом, или как сегодня принято говорить, с тотальным отсутствием софт-скиллов, токсичные и странные, с которыми никто не хотел иметь дело.
Да по всякому жизнь складывается, может не получиться по разным причинам получить диплом. Но что мешает пойти на вечерний или заочный и сдать эти сраные экзамены и получить диплом, понимая, что он реально ценится и востребован и в РФ и за рубежом.
52 2552261
>>552259
А с образованием шараги(колледжа) онли много людей видел?
53 2552263
>>552201
Stored это палка о двух концах. С одной стороны они намного быстрее и компактнее таких же запросов через тот же EF, с другой стороны у многих есть непреодолимое желание впихнуть туда бизнес логику, что приводит к усложнению поддержки кода и невозможности нормально покрытить эти части кода integration тестами.
В итоге stored procedures нужно пользоваться очень умело, описывая там только низкоуровневую логику связи с базой данных, а по возможности избегать их, если мы говорим о новых версиях .net core. По моему опыту они оправдывают себя, только в случае записи/удаления действительно больших объёмов данных (миллионы объектов).
54 2552271
>>552195

>Тру-плюсовики


Тру-плюсовик не ждёт от мира подачек. Если ему что-то не нравится в существующих языках, он сам напишет себе свой LISP на LLVM.
55 2552273
>>552263
Кстати, а не пытался ли кто-то впихнуть хранимки в сервиса? Ибо SQL-запросы билдить умеем, таблицы описывать умеем, чем хранимки хуже?
56 2552274
>>552273

>Кстати, а не пытался ли кто-то впихнуть хранимки в код сервиса?


fix
57 2552286
>>552273
Не совсем понял куда ты предлагаешь их впихнуть, но использовать stored procedure необходимо только в очень безвыходных ситуациях даже несмотря на все их плюсы. Потому что они банально дороже в обслуживании такого же по функционалу кода в c# - их сложнее написать, их очень сложно дебажить, их сложнее поддерживать, смена версии базы данных может легко их сломать.
Я не говорю, что не стоит ими пользоваться и они говно, но в долгосрочной перспективе это почти наверняка будет стоить дороже.
58 2552288
>>552049

>ржавом


ЯП для петпроектов.
Писать на нём очень сложно, очень долго, программистов не найти, все будут джунами.
Бизнес-ценность отрицательная. Только для души и for fun.
59 2552291
>>552286

>Не совсем понял куда ты предлагаешь их впихнуть



Банально описывать хранимки C#-кодом и компилировать в код СУБД по миграции.
В теории должно помочь с сопровождением и дебагом.

>но использовать stored procedure необходимо только в очень безвыходных ситуациях


Надеюсь ребят, которые описывали бизнес-процессы на PL/SQL поувольняли к хуям.
60 2552292
>>552288

>ЯП для петпроектов.


Используют там же, где и C/C++. Уже видел вакансии на системщину и HFT.

А вот тех, кто тащит это в веб нужно кастрировать.
61 2552293
>>552261
Лично я нет. У меня были в школе знакомые, которые пошли учиться на компьютерщиков в ПТУ местное, часть из них сейчас на обычных гречневых работах просиживает штаны, кто-то на завод работягой пошел, кто-то в монтажники и техподдержку, кто-то дальше на вышку пошел и теперь 1С ковыряет, а кто-то уже ушел из жизни по разным обстоятельствам, один вот в СВО погиб недавно, мобилизованным был.

Стоит понимать, что в путяги народ идет не от хорошей жизни, как правило там собираются самые низы общества. При этом окружение очень большую роль играет в сознании как ни крути. Чел, который закончил 9 классов в мухосранской сош, кое-как получил аттестат и ушел в путягу на компьютерщика, будет сильно отличаться от условного выпускника 57/СУНЦ МГУ, который потом еще в ВШЭ или МФТИ отучился.
62 2552297
>>552293
Хм, да вроде нет, у нас в колледже и мажоры всякие были, которым уже после 18 покупали и машину и квартиру и шарага при МГИМО.
Надеюсь получится работку найти без вышки, в прошлый раз это не было проблемой какой-то.
63 2552303
>>552291

> Банально описывать хранимки C#-кодом и компилировать в код СУБД по миграции.


> В теории должно помочь с сопровождением и дебагом.


Написать компилятор шарпа в хранимые процедуры, да ещё и дебаг прикрутить - это нереально сложная задача по сравнению с генерацией альтеров и селектов.
image83 Кб, 1844x651
64 2552305
>>552292

>Уже видел вакансии на системщину и HFT.


Сейчас и на делфи и на ДРАКОН можно до сих пор кое-где устроиться работать. Всё это флуктуации и самодурство отдельных личностей, которые не умеют считать деньги.
В реальности внедрятели раста гарантированно кончат как в этой статье с хабра.
65 2552313
>>552297
Вышка на сегодня в РФ - это просто некий базовый фильтр совсем конченного отребья. Ведь абсолютно любой днарь сегодня получает вышку. Кто-то идёт и чему-то учится. Кто-то просто идёт за корочками, и просто учится решать вопросики. А вот ты ни того ни другого не осилил.
Вот попробуй мне как HR-у объяснить, почему у тебя нет вышки? Ты конечно можешь вскукарекнуть, что вышка не нужна, что вон в гугле уже без ВО берут... Только кто ты такой, чтобы такое рассуждать? Из твоих уст это ничем не обоснованное оправдание.
Единственное что ты можешь сказать: да, у меня нет вышки, но я ведь на многое и не претендую. Просто относитесь ко мне как к человеку второго сорта и платите соответственно, и я не буду ждать повышения, просто буду делать безропотно самую черную и грязную работу.
66 2552318
>>552313
Я тебе поясню, что для профильных знаний вышка совершенно бесполезна и никакого желания просиживать штаны для корочки у меня нет.
Но да меня насчет вышки вообще не спрашивали.
Средние показатели на то и средние, хз, мож в будущем на заочке можно будет найти варик, где можно проплатить
67 2552340
>>552318

>для профильных знаний вышка совершенно бесполезна


Да кто ты такой, что бы так рассуждать? Ты ноунейм-вкатыш с улицы, ты даже не джун. Что ты знаешь? Ты просто наглый, самоуверенный и глупый - вот именно такое впечатление ты производишь.
А человеку, который в IT достаточно долго, почти наверняка приходилось иметь дело с линейной алгеброй, с численным интегрированием, с численной оптимизацией, с математической статистикой, с какими-то разделами физики. Это даже не говоря про базовый computer science, если речь сугубо про айти.
Да даже орангутангам-фронтендерам, которые кнопки двигают, рано или поздно приходится всё же задаваться вопросом, почему преобразование координат реализовано через умножение матриц.
68 2552345
>>552340

> Ты просто наглый, самоуверенный и глупый - вот именно такое впечатление ты производишь.


Таких называют амбициозными, это куда лучше аутиста из вуза, который билетики перед зачетами заучивал или на удачу надеялся и в итоге не знает ни мат стата, ни физики, ни computer science, ни английского, ни каких-либо профильных знаний.
69 2552349
>>552345

>Таких называют амбициозными


В продажах и агрессивном маркетинге тебя с руками оторвут. А в айти ты такой не нужен.
70 2552352
Отучился 3.5 года в ВУЗе, отчислился, проработал 2.5 года на плюсах, потом вернулся в ВУЗ, закончил и пошел в магу.
Задавайте ответы.
71 2552355
>>552352
В каком НИИ работаешь?
72 2552356
>>552349
Да, зато в айти нужны аутисты, которые имеют те же знания максимум 11 классов, но зато с коркой?
Ты же сам знаешь, что в вузах преподают максимально аутдейтед хуйню и нет никакой гарантии, что студент хоть какую-то базу подберет и не забудет уже в следующем семестре.
В общем-то, я проходил 3 собеседования и меня на счет вышки не спрашивали, зато спрашивали какие технологии я знаю и по сишарпу вопросы задавали, заценили, когда я сказал, что Рихтера читал, на одном я не прошел потому, что слишком далеко жил и не хотел переезжать, на другом была проблема с приписным и военником, а на третьем я на тестовое забил вообще, так как думал, что на втором примут и мать проблемы с военником быстро порешает Спойлер - нет, посмотрим, как оно сейчас будет, знаний сейчас у меня гораздо больше, чем тогда, даже по англу.
73 2552357
>>552352
Между магой, баком и спецом в СНГ разницы нет, абсолютно.
74 2552362
>>552357
Магам в госконторах платят на 20к больше.
75 2552364
>>552362
сейчас бы с государством работать
76 2552368
>>552364
корпорат, спок
image385 Кб, 2007x1574
77 2552381
>>552356
Чел, без ВО в айти есть работа, есть программисты. Это так. На макакоработу тебя конечно возьмут. Просто может ты хочешь большего? Где-то ты подойдёшь по всем критериям, но тебя забракуют на финальном этапе по формальному критерию. Оно тебе надо?
Ты говоришь, что в ВУЗе не дают знаний. ОК. Ну так получи хотя бы ачивку. Найти паршивый ВУЗ с вечеркой или заочкой за 15к в год. Покажи, что ты умеешь решать вопросики и достигать.
А про знания в ВУЗе. Ну кому хочется, тот их получает и в заборостроительном. В ВУЗе дают фундаментальные знания, математику и физику, которые в зависимости от задач, не меняются уже от 100 до 400 лет. Даже в CS всё, чем мы пользуемся сейчас, кроме передовых ИИ, придумано лет 30-40 назад а то и раньше.
78 2552393
>>552381
Хз, как там на уровнях повыше, но устроиться с профильными знаниями явно легче.
У меня есть знакомый с вышкой, он вообще собеседовался на стажера, на одном из собесов его завалили на вопросе про ООП, ясен хрен, что ни про какие принципы SOLID он не слышал, в вузике максимум UML преподают, да и то оно не запоминается.

> В ВУЗе дают фундаментальные знания, математику и физику, которые в зависимости от задач, не меняются уже от 100 до 400 лет.


О чем ты вообще говоришь, физика там максимум первый курс, математика да, но диплом можно пройти тупо ничего не запоминая и зазубривая билет/списывая, либо вообще преподу понравиться и получать автоматы, так что не факт, что чел с ВО ее вообще знает выше уровня 8 класса.
79 2552410
>>552148

>я не спортсмен-спринтер, сижу за компьютером, поэтому ноги не нужны


>поэтому лучше пойду в больницу сделаю ампутацию


Охуительные истории от срущего шарподебила. Типичный интеллект макаки, и вот эти выродки рассуждают о С++. Тьфу, погань.
80 2552428
>>552410
Ты же сам себя только что обоссал.
81 2552441
>>552393
И на этом все, думаю тут больше нечего обсуждать.
Мне немного страшно, что может попасться реально такой эйчар, который скажет "А ну нет вышки, тогда пошел нахуй, без корочки не пущу", но да я думаю на такого всегда найдется другой, которому похуй, а для иммиграции опыт работы в 4-6 лет ценится так же, как и вышка.
Лучше опиши, кто ты, джун, миддл, сеньор, какой стаж работы, работаешь в госконторе или на частника?
82 2552466
В последнее время не видел в крестотреде набега шарпистов, хуле крестоёбы пришли сюда?
83 2552540
>>552466
это небось прошлотредный "джавист"
84 2552593
>>551748
Вот она - вся сущность лицемерного петушарпера. Гоните петушарперов, насмехайтесь над ними!
85 2552595
>>551739
Петушарп позорное дерьмо, кресты довольно уважительный язык, но к сожалению устаревший сильно.

Выбирай Java. Это как петушарп, только оригинал и всё ещё лучше.
86 2552597
>>552593
И где тут лицемерие? Шарп - сила, жаба - могила.
87 2552600
>>552597

>ну мам

88 2552608
>>551759

>Ты опоздал с выбором года на 3 где-то.


Опоздал - это 2030. До этого ещё можно изучать программирование хотя бы для того, чтобы апнуть скилл мышления.
89 2552616
>>552600
Слит.
90 2552635
>>552616

>ну маааам ну он слит ну мам

91 2552638
>>552635
Хуя пичот.
92 2552645
>>552638

>ну мам это ни у меня горит нигорит поняли да нигорит! ну почему вы ни верите я жи сказал нигорит

93 2552743
Почому в шарпе так мало деняк :(
94 2552768
Может кто скинуть вопросы, которые задают на интервью по asp.net core
95 2552797
>>552768
Не скинем.
96 2552799
>>552797
ну пожалуйста
97 2552801
>>552799
Просто загугли
98 2552816
>>552801
Мне хочется чего-то хардкорнее, а там совсем для дебилов.
99 2552822
>>552816
Тебе на джуниора не будут задавать хардкорные вопросы. Будут смотреть просто на глубину, которую ты сможешь докопать на тот или иной вопрос
100 2552861
>>552822
Забей, я нашел в одном из прошлых тредов пайплайн
2022-12-2502-09-57.png21 Кб, 672x248
101 2552918
Будь проклят тот день, когда я связался с MVVM. Каждый, сука, элемент — это уникальный случай. Ты сидишь полдня и пытаешься каким-то образом при помощи скотча и божьей помощи заставить это дерьмо работать. Какая к хуям гибкость при таком количестве исключений из правил?

К примеру, захотел к WrapPanel привязать ViewModel, а хуй те с маслом — нет у него DataTemplate. На SO предлагают вот такую конструкцию (пикрил)
https://stackoverflow.com/questions/8258410/how-to-set-wrappanel-itemsource-to-list

При работе с другими контролами, к примеру, при событии SelectionChanged я получал экземпляры не View-итемов, а Model-итемов из списка ViewModel и это было очень удобно. Проблема в том, что теперь возвращаются данные Model-итемов, НО завернутые в ConentPresenter. Ебанина какая-то. Весь SO напичкан именно этим примером, а как с ним работать — хер знает.

Я не могу биндить список Selected, потому что буквально каждый итем завернут в эту скорлупу под названием ConentPresenter, от которой мне надо как-то очищать, либо держать два списка + тратить ресы на "выколупывание".
102 2552919
>>552918
Не читайте. Моя вина.
103 2552934
>>552918
С TREEVIEW хоть разобрался?
104 2552935
>>552918
Енджой йёр петушарп.
105 2552942
>>552919
А что делать тем, кто прочитал, офигел от того как ты пытаешься забивать болт молотком - и теперь психологическая травма?
106 2552944
>>552934

>С TREEVIEW хоть разобрался?


Хуйня какая-то получилась, если честно.
WrapPanel еще хуже.
Все это приправлено ссаными словарями ресурсов.

>>552942

>пытаешься забивать болт молотком


Ну на первый взгляд, у меня перед глазами только болт и молоток. Меня уже воротит от этих контролов, когда речь заходит а кастомном стиле. Даже ссаный "итем селектор" уже имеет ворох визуальных свистоперделок, не говря уже о производных контролах.
107 2552945
>>552944
ну хз че у тебя за болты, что молоток нужен
WrapPanel - он как и StackPanel, то есть отвечает за компоновку, а не является контролом списка.
А за списки с биндингами отвечают списковые контролы. У них можно переопределить панель, хотя лучше это делать с умом и сразу думать про виртуализацию иначе уже на 10к итемов получишь 100% загрузки cpu и зависнет все.

>SelectionChanged я получал экземпляры не View-итемов


тут предпочитаю иметь свойство у вьюмодели итема IsSelected, а не мудрить с отдельным списком выделеных - тогда можно же и со стороны вьюмоделей выделять и это синхронно будет видно в списке.
изображение.png140 Кб, 609x1009
108 2552998
Почему ef такой сложный?
109 2553022
>>552305
Ты эту статью читал хоть? Там чувак реально потащил раст в бэкэнд.
110 2553052
>>552305

>Сейчас и на делфи


ага и будет поддержка древнего говна
2022-12-2512-07-05.png4 Кб, 919x95
111 2553072
>>552945

>тут предпочитаю иметь свойство у вьюмодели итема IsSelected,


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

>а не мудрить с отдельным списком выделеных


А как дальше? Вот у тебя каждый пук: удалить, переместить, переименовать должен рыскать по всей иерархии итемов в поисках флага IsSelected?

> У них можно переопределить панель


А разве на пикриле >>552918 не так сделано? ItemsControl это базовый класс списковых контролов. Дальше уже идет Selector у которого ебучие визуальные стили.

> сразу думать про виртуализацию


Вот про это надо почитать. У меня дерево жрет дофига ресурсов, там у каждого итема есть растровый имидж.
112 2553083
>>553072

>удалить, переместить, переименовать


какая то проблема? аж целый Where
тем более для удаления и перемещения это все равно нужно делать. При этом никто не запрещает забиндить селектедитемс, но зачем

>не так сделано?


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

>Вот про это надо почитать


это не нужно читать. это нужно гуглить реализацию нужной панели с виртуализацией.
113 2553209
>>553083

>это не нужно читать.


Ну я про это вообще не знал. Загуглил про TreeView, активировал
VirtualizingStackPanel.IsVirtualizing="True"
но толку ноль. У меня при каждом открытии ноды все больше оперативной памяти занимается, а при закрытии остается такой же.

Там виртуализация тоже не всегда работает и не со всеми итемами.
114 2553320
посоны, что можно на asp.net core написать, чтобы пощупать все основные темы, не предлагайте интернет магазин плиз
115 2553332
>>552060
Я в колледже учил C++ и ассемблер
116 2553393
Сап, шарпач. Я собрался писать пет, это будет приложение для самозанятых/ип с простым функционалом: финансы, таски, подрядчики и т.д. И вот не могу понять, как все это устроить в базе. Например, нужно куда-то пихать список доходов и расходов юзера. Можно было бы отправить их все в отдельную таблицу и тащить по foreign key, но это решение мне кажется небезопасным (можно скомпрометировать финансовую инфу сразу всех юзеров) и плохо в плане scalability (этих записей при большом количестве юзеров могут быть миллиарды). Та же история с тасками, сообщениями и т.д. Как это грамотно организовать?
117 2553442
>>553209
Это всего лишь флаг что нужна виртуализация. contentpresenter умеющий в виртуализацию учитывает этот флаг. Тому, кто не умеет, бесполезно его писать.

А потому сразу нужно гуглить virtulizing wrap panel и смотреть лисапеды, например это https://github.com/sbaeumlisberger/VirtualizingWrapPanel
118 2553520
>>553393

>Можно было бы отправить их все в отдельную таблицу и тащить по foreign key


Это нормальное решение. Можно сделать шарды по юзерам, если хочется.

>можно скомпрометировать финансовую инфу сразу всех юзеров



Как? Если вытащат всю БД, то жопа будет в любом случае. Лучше подумай о транзакциях и консистентности.

>в плане scalability


Сразу ограничивай свои хотелки по scalability. Не пиши приложение для сферических нагрузок в вакууме.
119 2553522
>>553332
C++ в вакууме никому не нужен. Нужна системщина, HFT, рассчёты и геймдев.
120 2553526
>>551587 (OP)
Как использовать js в представлениях razor pages/mvc? В доках тема не освещена. Не надо мне писать про веб апи.
121 2553558
>>553526
Подключаешь к cshtml файлу:
@scripts
{
жиес путь
}

в жс скрипте делаешь что тебе надо
122 2553560
>>553442

>Тому, кто не умеет, бесполезно его писать.


TreeView же умеет, но не хочет.
123 2553566
>>553558
Спасибо!
124 2553568
>>553520
Благодарю.

>Можно сделать шарды по юзерам, если хочется.


>Лучше подумай о транзакциях и консистентности.


Это по каким понятиям нагуглить можно? Никогда таких терминов не слышал.
125 2553569
>>553560
Ну он всегда был багнутый
https://github.com/dotnet/wpf/issues/1962
Но вроде что-то починили
126 2553571
>>553520
Олсо, не проще ли сразу писать под максимальную нагрузку на всякий случай? Или это потребует чересчур много усилий?
127 2553593
>>553569
Это какой-то старый баг зависания еще для net framework.

А у меня вроде как вирутализация работает т.е. не загружает всю иерархию целиком, а постепенно по мере открытия папок, но не выгружает.
Я бось, что у меня в итеме что-то такое, что не дает ему подохнуть. Знал бы я как итемы выгружаются и поможет ли IDisposable. Надо будет создать тестовый итем без лишнего дерьма и проверить.

Ну или вообще отказаться от MVVM. У меня уже был экземпл, где ноды подгружаются и выгружаются по мере их раскрытия или закрытия. Видимо не зря так было сделано.
128 2553624
>>553568

>Никогда таких терминов не слышал.


Чел. Я надеюсь, что ты только вкатываешься и никогда в жизни даже не смотрел на продовый бэк.
Если интересно - читай "высконагруженные приложения" Клеппмана. Та самая, с кабанчиком.

>>553571

>Олсо, не проще ли сразу писать под максимальную нагрузку на всякий случай? Или это потребует чересчур много усилий?


Именно так долбоёбы-стартаперы и пишут. Потом приходит дзен.

У тебя в принципе нет "максимальной нагрузки". Один юзер с миллиардом транзакций и миллиард юзеров с одной транзакицей - это совершенно разные типы нагрузки. А распределена ли нагрузка географически? А какие требования к консистентности? А требования к изоляции транзакций? Можно ли отображать юзеру устаревшие данные? А что если для одного юзера сделаем транзакцию одновременно? Как реплицировать будем? А если кластер расхуярит, что будет? А серверов-то на это сколько нужно? Кэшировать как будем и что? И так далее, поотвечай на такие вопросы. Всё это будет влиять на инфру и архитектуру.

Я поэтому и говорю: возьми не проект из вакуума, а что-то реальное, о чём можешь говорить с точки зрения пользователя. Например, приложенька для подсчёта расходов. Не бери чистый финтех - это хардкор. Считай примерное количество пользователей и сколько пользователь может добавить записей и каких и как часто. Бери с запасом. Думай как приложенька может развиваться. Думай как отдавать данные анальникам.
129 2553645
>>553393
Декомпозируй задачи на как можно более мелкие задачки. Тогда все станет понятно.
130 2553648
>>553393
UPD. Лучше вообще начать с фронтенда. Так будет проще допиливать бекенд по маленьким кусочкам.
131 2553680
>>553624

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


Зис. Поэтому я думаю мне пока не стоит лезть в такие сеньорские дебри, задача стоит получить позицию стажера/джуна. Запилю тогда просто в одну таблицу думаю. И еще вопрос - какую лучше юзать авторизацию? JWT или родной ASP Identity? Именно в контексте того, что будут потенциально требовать на работе.
132 2553698
>>553680

>Поэтому я думаю мне пока не стоит лезть в такие сеньорские дебри, задача стоит получить позицию стажера/джуна.


Тогда просто почитай про РСУБД и key/value-СУБД, для начала этого хватит. Хотя бы базовые понятия вроде транзакций на уровне БД и индексов. Обязательно потыкай SQL руками, благо его можно перетыкать почти весь за 3 часа.

> JWT или родной ASP Identity?


jwt, кнш.
133 2553702
>>553680

>JWT или родной ASP Identity?


Вопрос уровня какой фреймворк использовать - web api или родной asp.net
134 2553869
>>551587 (OP)
Недавно осознал насколько меня балует Нугет. В новой галере бэк на джаве, я пишу тут чисто фронт.

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

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

В конце я им рассказывал про ЕФ и как он может играюче выдать тебе данные с Оракла, Постргри и МССКУЛ без каких-то проблем
135 2553878
>>553869
Лучше никому не рассказывай об этом. Пусть это будет нашим секретом.
136 2553893
>>553869

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


Ну да, а смысл тебе про мавен рассказывать, ты всё равно продолжишь нести какую-то хуйню, даже минимально не разобравшись в вопросе.
137 2553910
шарпач а посоветуй самый микронаноминималистичный DI который ты знаешь желательно через конструкторы
просто я смотрю на все эти фреймворки тысячи их и у меня просто в голове крутится ну и нахуй мне тащить в проект 100500 функционала который не понадобится никогда
138 2553913
>>553910
ASP.NET
139 2553915
>>553913
ну не траль.. мне чистый шарпач нужен желательно что-то с 3.5
140 2553934
>>553320
Сервис электронной очереди.
141 2553936
>>553915

>что-то с 3.5


А был ли для него тогда нормальный DI из коробки? По моему нет. Что похоже и привело к появлению зоопарка из разных unity, ninjet, autofac и т.д.
142 2553948
>>553936
так мне как раз не искаропки и нужен, но очень простой
видимо придется велосипедить...
143 2553957
>>553869
Вот ненадо так нахваливать нугет, эта ебала у меня сама постоянно отваливается - если нужно сменить версию пакетов и версию фреймворка проекта, все туши свет, нугет ебанеться с ошибками вероятностью 90%. И нужно будет руками редактировать версии пакетов в csproj или оттуда же убирать ворнинги и ошибки.
144 2553977
>>553593
ты смешал мух и котлеты
мввм это просто паттерн "кто о ком знает и за что отвечает"
вид просто за отображение
механизм биндинга позволяет декларативно связать все воедино
при этом иногда приходится писать свои бехавиорс или атачед где внутри как раз та самая "ручная реализация биндинга с привычным событиями контролов"

в случае treeview косяк именно в виде. Кривая реализация...наверное. Вон датагрид тоже группы виртуализирует плохо. Что вообще эта виртуализация? всозможность не создавать заново инстанс итема (то есть контрол)
и тем самым экономить на некоторых шагах? но ведь все равно же нужно поменять DataContext у существующего итема. и сделать работу
А сколько вообще держать этих итемов в кеше? Вон в том же TreeView проблема иногда решается установкой MaxHeight.
Да и память растет -а ты уверен что растет именно то что кешируется?

>>553910
то что DI майков в асп.нет не значит что он только там
он называется в нюгете
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.DependencyInjection.Abstractions

модулям раздаешь Microsoft.Extensions.DependencyInjection.Abstractions, а основная программа юзает Microsoft.Extensions.DependencyInjection и модули регистрируют себя по аналогии как это в асп.нет сделано.
просто и удобно
145 2553980
Правда ли, что шарпистов заставляют становится фуллстеками?
146 2553982
>>553980
И гейшлюхами к тому же
147 2554003
>>553982
Дак вот почему у них зп сравнялись с джавистами!
148 2554011
>>554003
Не сравнялись и не сравняются.
149 2554164
Хм, а доки майкрософта поприкольнее метанита будут, но инфы сравнительно маловато
150 2554179
>>554164
На метаните много ошибок. Там надо ещё проверять, что написано.
151 2554224
>>553869

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


Я хуею с манямирка петушарподегенератов.
152 2554277
Пацаны, а какую архитектуру юзать для маленького/среднего проекта? В прошлой шапке видел DDD и микросервисы, но это явно будет лютый оверкилл, который нуб вроде меня еще и не осилит.
153 2554412
Как осваивать новые версии сишарп и фреймворков, если они так быстро выходят?
154 2554414
>>554309 (Del)
Так оверкилл же. Я вчера весь день читал/смотрел про этот DDD и в основном говорят, что он даже в очень жирных проектах не всегда к месту.
155 2554430
>>554412
Читай документацию и не выёбывайся плиз.
156 2554433
>>554412
Забей хуй. Во-первых, там особо ничего не меняется. Во-вторых, конторы оче медленно обновляются. Многие до сих пор сидят на 3.1, а некоторые динозавры вообще на легаси .NET Framework.
157 2554438
>>554412
Забей хуй. Во-первых, там особо ничего не меняется. Во-вторых, конторы оче медленно обновляются. Многие до сих пор сидят на 3.1, а некоторые динозавры вообще на легаси .NET Framework.
158 2554442
>>554433

>сидят на 3.1


Я могу выучить только 2.1, потому что книги Фримана по 3.1 так и не перевели.
159 2554461
>>554442
А кроме как по книгам учить нельзя? (спрсил я который ни одну книгу ни по одному языку не прочел)
160 2554465
>>554461
А как ещё? Курсов по шарпу нет. Либо совсем старьё 2014 от Шевчука.
161 2554476
>>554465
ну тогда никак )
нет не офф доки, ни ресов типа професссорвеб или метаинит, ни миллиона статей на ресах типа хабра и это только в ру сегменте. ничего этого нет.
162 2554489
>>554476
Этот профессор же лютое старье по фреймворку. Метанит новое, но доверия не вызывает. В комментах постоянно пишут, что много ошибок в статьях.
Остальные ресурсы разрозненные и не дают полной картины.

Ну просто я вот встаю с утра и мне надо четкий план по изучению на день, но вместо этого листаю интернет полдня, а потом уже голова устаёт и не могу учиться. В итоге результат нулевой. И так день за днём нулевой прогресс.
163 2554498
>>554442
Без англюсика тут никуда, вот прям вообще, ты даже загуглить толком ничего не сможешь, а это 95% работы, плюс клевые курсы и книги тоже не переведены, так что бери словарь и страдай.
164 2554505
>>553977
так у меня таргет дотнет 3.5 а у них 4+ судя по всему
165 2554509
>>554489
ну я же сказал "никак" )
166 2554517
>>554509
И что делать? Учить голанг?
167 2554591
>>554505

>так у меня таргет дотнет 3.5


любимого кота держат в заложниках? ну а какие еще причины могут быть чтобы писать на этом говне мамонта

>>554517
учи английский.
168 2554634
>>554164
Хуясе. Т.е. ресурс где буквально описаны все классы, со всеми методами - это по твоему "относительно маловато"? 'Относительно' чего?
169 2554635
>>554309 (Del)
Схуяли? Пишу сейчас микросервисы на заказ, там вполне себе DDD применяется.
170 2554641
>>554277
Просто попили на слои и достаточно будет.
171 2554652
>>554489

>Ну просто я вот встаю с утра и мне надо четкий план по изучению на день, но вместо этого листаю интернет полдня, а потом уже голова устаёт и не могу учиться. В итоге результат нулевой. И так день за днём нулевой прогресс.


В твоем случае - платные курсы или ментор. Я без рофла. Не можешь сам - плати бабки.
172 2554695
>>554634
Метанит безусловно прикольный ресурс, но ему нужны рецензенты, потому что там один чел все статьи пишет.
Вот почему я всем советую читать книги? Да потому, что их проверяют перед изданием несколько людей и это как правило какие-нибудь профессора в области компьютерных наук.
173 2554728
>>554695
Вот только вот Microsoft Press издаёт рекламно-религиозные тексты. Последние лет двадцать.
174 2554741
>>554695
Я про МСДН говорил.
175 2554773
Смотрю код в разных проектах, и не могу понять, как делать правильно. У одного при удалении объекта его существование проверяется в контроллере, у второго в бизнес логике, третий это дело в репозиторий суёт. Также и с бд. У одного есть репозиторий, другой в бизнес логике с контекстом работает, третий для каждой операции свой класс создает к примеру PlaceOrderDbAccess. В итоге не могу сам начать что-то сложное писать, постоянно боюсь, что делаю неверно.
176 2554796
>>554773
Это же фломастеры, потому каждый по своему
Достоинства для одних - недостатки для других
177 2554851
>>554489
У тебя большие проблемы. Тебе не помогут книги и даже курсы с менторами. Даже если тебя будут обучать лучшие преподы, ты будешь говорить, что тебя неправильно обучают. Не ищи свежую информацию. Не ищи мега полную информацию. Такого не бывает. Все устаревает, везде чего то не хватает, везде есть ошибки. Пойми, что информация тебе ничего не даст. Информацию нужно не только поглотить, но и переработать. Потом усвоить на практике. Это целая цепочка сложных процессов. Это гораздо важнее объема и качества самой информации. У тебя сдвиг ценностей. Чтобы учиться программировать, важно программировать. А у тебя зацикленность на важности информации. У тебя сложный случай. Так все текстом в одном посте не объяснишь.
https://ru.hexlet.io/blog/posts/traps-learning
178 2554854
>>554728
Примеры приведешь? Одно из лучших издательств по CS.
179 2554865
>>554489
Советую применить проблемно-ориентированное обучение. Так например учат в school 42. Ты не должен заготавливать информацию. Ты должен иметь задачи и отталкиваться от них. Вот есть задача, ты ищешь информацию, которая поможет решить задачу. Так ты получаешь только нужную информацию и в конечном итоге имеешь решенную задачу, а не просто прочитанный текст. Это очень мощный метод обучения программированию. С первого дня ты погрузишься как бы в боевую обстановку, а не обстановку лайтового обучения.
image.png75 Кб, 971x816
180 2554997
>>554634
Ну как описаны, вот это немного жидко, мне бы примеров где оно нужно и зачем вообще и почему мне не похуй должно быть.
Но зато я понял, что можно иметь несколько Startup классов и один из них будет выбираться в runtime в зависимости от переменных среды, а еще у майкрософтов к нужным темам внимание уделяется, вроде хоста, про dependency injection я и так знал, но почерпнул для себя новое
.png32 Кб, 709x907
181 2555103
Шарпач-шарпач, помоги.

Смотрите. Я делаю пакмена в консоли.
Но не суть. Суть вот в чем. Я хочу сделать систему событий.
И вот что я сделал.
Оно - работает. Но проблема в том, что мне не нравится это вот решение.
Причин - несколько.
Самая главная, это то - что Dispatch может кто угодно дергнуть.
Вторая, что я оборачиваю Action<T> в Action<Event>;
Третья, что чтобы отписаться - нужно id где-то хранить
Четвертая, я подозреваю, что если много кто подпишется - List<Event> который в словарике - не уменьшится, когда они все отпишутся, так и будет висеть выделенный огромный массив
Может быть еще какие-то проблемы есть, но это те что я вижу.

В общем. Если вам не сложно - дайте советов по коду. Как сделать нормально?
Суть-то в чем. В том, что я хочу просто сделать в лупе:
while(GameRun)
{
HandleEvents();
Update();
Draw();
}

Вот для первого HandleEvents() эта срань и придумана. Но чет оно меня сейчас смущает.
182 2555112
>>555103
Ты же специально оверенжиниришь чтоб подзадрочиться? Я чуть было не блеванул от кодца в стиле 2000-х

1. Dispatch можно спрятать за интерфейсом чтоб его не видели подписчики
2. Т наследется от Event же? в чём именно нюанс?
3. Можно использовать референс handler-а вместо айдишек. Так например работает встроенный event
4. Похуй, List же умеет ресайзиться
183 2555152
>>555103
1 нах гуиды. верни хотя бы Disposable token
2 lock при вызове события? ну ок, пусть весь мир подождет
prikol489.jpg56 Кб, 550x766
184 2555540
>>554854
Далеко ходить не будем, вот на Амазоне:
https://www.amazon.com/Books-Microsoft-Press/s?rh=n%3A283155%2Cp_27%3AMicrosoft+Press

Эта книга знакомит читателя с объектно-ориентированным программированием, и автор предлагает начать обучение с реальных программ в среде Windows. Новый язык программирования Microsoft C# (произносится «си-шарп») — очень мощный и в то же время простой в использовании. Он высоко ценится современными ИТ-специалистами и является хорошим выбором для тех, кто только ступает на путь программирования.

Visual C# Express упростит первые шаги в постижении программирования, а после прочтения книги вы сможете двигаться дальше, постепенно усложняя задачи. Узнайте, как создать класс в C#, который инкапсулирует любые свойства! Легко создавать новейшее высоконагруженное программное обеспечение, легко исправлять, легко отлаживать! Итак, самое главное: наслаждайтесь освоением мира программирования! Зарабатывайте!
185 2555553
Почему в первом случае nullable, а во втором нет?
186 2555575
>>555553
Потому что в первом случае - ты присваиваешь переменной Nullable значение.
Во втором - ты используешь сахарок, который не предусматривает Nullable

Ну. Типа чтобы тебе было понятно, можешь в первом случае сделать так:
var ld = dod.HasValue ? dod.Value : DateTime.Now;
В этом именно и разница.
Если в первом случае - заменишь : DateOfDead на : DateOfDead.Value - получишь именно что DateTime, без Nullable
187 2555577
>>555540
Понятно всё. Специально говна откопал, 20+ летней давности, когда любые книги по IT выглядели одинакого говёно, не зависимо от издательства.
https://www.microsoftpressstore.com/store/browse/programming
1526648766114319389.jpg172 Кб, 1200x628
188 2555601
>>555577
Могу я хоть быструю сортировку в твоих книгах посмотреть? Или погромистам с горящими глазами такое не нужно?
189 2555604
>>555601
а нужно? использовать книгу как справочник это дичайшая дичная дичевая дичь
190 2555727
>>555596 (Del)
Большой это какой?
150к строк бекенда и 90к фронтенда - это большой или маленький проект?
191 2555731
>>554277
MVC юзай.
Базарю.
192 2555809
>>553893
А че они тогда трясутся от любых обновлений либ и упорно суют своего говно в докер, хотя я им предлагал спокойно настроить все и лить по сфтп. Стенд закрытый и поэтому нельзя в конвейере СИ/СД запускать скрипт установки их ебучего докера и надо через виртуальный стол(ога консоль не завезли админы заказчика) руками ставить.
193 2555815
>>553869

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



и правильно смотрели. потому что это речь только про зависимости шарпа, ну и там где создатели либ заморочились сборкой нативщины. Иначе привет бубен
194 2555817
>>555809

> трясутся от любых обновлений либ


Потому что в джаве на хую вертели обратную совместимость. Дохуя проектов сидят на восьмилетней Java 8 тупо потому, что на более новых жабах то сервер приложений не стартанёт, то спринг срёт стектрейсом при запуске, то ещё какая-нибудь залупа.

> упорно суют своего говно в докер


Серверные приложения легче разворачивать в докере. Похуй, на чём они написаны, хоть жаба, хоть PHP.
images.jpeg8 Кб, 196x257
195 2555818
>>555727
микроскопический
196 2555821
>>555815

>только про зависимости шарпа, ну и там где создатели либ заморочились сборкой нативщины. Иначе привет бубен


У тебя буквально все нужные длл кладутся всегда, селф сборка просто суёт туда дотНЕТ нужной версии чел
197 2555826
Как в Visual Studio сделать так, чтобы при переименовывании имен аргументов функций в интерфейсе, они переименовывались и во всех классах, реализующих интерфейс?
198 2555830
>>555826
ctrl+RR же
199 2555837
>>555826
в глаза долблюсь, в обычной студии только удалять и новый делать через ctrl+RV...
200 2555838
>>555830
Ну так он независимо переименовывает аргументы в интерфейсе и в методах классов, его реализующих.
IMyInterface { void Call(int orgumnd) }
MyClass1 : IMyInterface { public void Call(int orgumnd) {} }
MyClass2 : IMyInterface { public void Call(int orgumnd) {} }

Как в одном месте переименовать orgumnd в argument?
201 2555840
А в треде только студенты?
Если желающие, поработать над совместным проектом под unity? За интерес.
202 2555933
>>552131
Плюсы были крутыми в нулевые, когда компьютеры были так же примитивны как плюсы. Но сейчас те времена давно ушли, плюсы остались за бортом истории, и король теперь их наследник С#
203 2555972
>>555601

>переобулся второй раз

204 2556021
>>555821

>длл кладутся всегда


ну класться они могут. работать..нет
вот пример https://github.com/shimat/opencvsharp/issues/1085
и от селфсборкости и шарпа ничего не зависит.

и тут можно начать "нууу это автор либ просто не позаботился об актуальных и рабочих нативах, ну да бывает, ну поставь в систему, не ставится? ну возьми старее систему"

а я тебе в ответ - так именно эту проблему и решает докер.

да, в основном ничего делать лишнего не нужно, но это не всегда. Более того докер это не только изоляция, а и про деплой.
205 2556055
>>553869

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


Правильно смотрели.
Собери мне под какую-нибудь железяку со своим линуксом и armv7 все, чтобы без пердолинга.
На сях, я хотя бы включаю статичную сборку, да, раздуваю бинарник, но потом просто с флешки закидываю и как человек могу на любую железяку закинуть.
Тут - я должен, блядь, все зависимости нативные найти, найти нужные версии, со всеми проверить. Это пиздец какой-то.
206 2556188
>>556055
Я чет не понял. Может проблема в этом:

>все зависимости нативные найти


У тебя проект не на чистом сишарпе, а оливье из шарпа и с/с++ и подобных же либ?
Нативную сборку прог на шарпе под винду и линух обычный я делал и всё работает без проблем и думать негде там.
207 2556194
>>556188
Дотнету - нужны зависимости, которые он с собой не таскает. Тот же openSSL, glibc нужной версии и прочее.
И потому - ты не можешь просто на линукс с busybox закинуть .net и приложуху на чистом шарпе и радоваться.
Программулину на си/плюсах ты просто собираешь, кидаешь на железяку и радуешься.
208 2556200
>>556194

>ты не можешь просто на линукс


Не нужно. У нас в конторе на IIS на винде всё крутиться нормально, недавно 4.8 ставили.
209 2556207
>>556194

>Дотнету - нужны зависимости, которые он с собой не таскает.


А почему дот нет их с собой не таскает, а программы на си/плюсах - таскают или обходятся без них?
В чём проблема дотнету сделать для этих зависимостей то же, что делает msvc для аналогичного кода на крестах?
210 2556219
>>556207
На плюсах - я могу просто статически слинковать все что мне надо и в моем бинарнике - будет, по сути, копии тех библиотеки, которые мне нужны(да, раздуваем размер бинаря, но если сравнивать с .net'ом, то даже так - это копейки).

Теперь про дотнет.
Сам рантайм .net - почему-то рассчитывает, что часть библиотек - будет в системе. Если не будет, ну, веселись с поиском тех либ, что нужны тебе. И при этом - никакой возможности собрать приложение, чтобы оно все-все-все нужное таскало с собой - нет. Это приводит к очень веселой ситуации, когда чтобы хелловорлд проверить - тебе приходится качать докеровский образ .net'а с дистрибутивом, максимально близкми к тому, что на твоем железе, выковыривать из него либы, рассовывать их по папочкам, чтобы просто запустить хелловорлд на железяки и пару бенчмарков, написанных на .net'е. Оч весело и прикольно.
211 2556243
>>556207

> msvc


Я кстати про MSVC - не говорил. Плюсы, с тулчейном на основе gcc, пишем в code::blocks(я, единственный мудень, что пишет в vim)
212 2556539
>>556219
Ну ок, можно посмотреть IL код, где вызываются функции этих внешних зависимостей и как на них ссылаются, и написать, скрипт, которых их подменит на приложенные рядом файлики под нужную систему.
Такие проблемы джуны 1+ года стажа должны уметь решать.
213 2556555
>>556539
Пиздеть - не мешки ворочать.
Не я тут писал, как удобно и без пердолинга в дотнете на линуксе.
214 2556585
Что полезно изучить за сутки к собеседованию на позицию джуна c# (а точнее даже стажера)?
Перекатываюсь из 1с, тестовое задание сделал как-то по наитию
215 2556605
>>556539

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


>шарп приложение умеют себя собирать включая все свои зависимости прям в билд и не требуют вообще никакой настройки хоть в линуксе хоть в винде


эт твои слова? братан? это где в каком мире в какой реальности ил просеивать чтобы функции зависимостей найти и шкрепты писать не пердолинг?
216 2556664
>>556585
А смысл накануне 2к23 уходить из 1С в пендосский шарп?
В 1С будут бабки, будут заказы. А шарп в РФ будет гнить и умирать.
217 2556669
>>556664
Проходи мимо.
218 2556675
>>556585
Краткий справочник Албахари наверни перед собесом. Там 250 страниц, можно за пару часов непосредственно перед прочитать.
219 2556711
>>556675
Ебать, две страницы в минуту.
220 2557186
>>551587 (OP)
Хочу научиться прогать на С#, интересует веб/игры.
Но есть нюанс: у меня макбук на м1.

Кто пробовал дотнетом заниматься на маке? Какие подводные камни? Может быть стоит сначала на винде поучиться?
linuxdotnet67.jpg83 Кб, 855x451
221 2557291
Стоит на Манжаро две версии дотнета: 6 и текущая (7). Консольные приложения нормально работают и 6 и 7 версии, но стоит попробовать ASP.NET как получаем ошибку с пикрила.
Вот вам и хваленная кроссплатформенность и обратная совместимость! Извольте каждый год переписывать свои проекты под новую версию.
222 2557319
>>557291
ты эта...мух из котлет не делай.

хваленная кроссплатформенность и обратная совместимость - это когда я могу взять и подкинуть к своему дотнет 7 (по факту core же) проекту либу, которая скомпилена на дотнет 4.6 и все будет работать, и под линуксом в том числе

А ASP.NET это набор либ. А для либ абсолютная норма что там от версии к версии могут быть брикинг чанджес и мало ли что еще. И поэтому в дев мире принято локать конкретные версии при разработке чтобы на продакшене разворачивались именно эти и никакие другие ибо "мало ли что там забрякоченжилось". И потому обычны мануалы "миграция на такую то версию либы"

Потому от тебя и требуют конкретной версии набора либ (описано в файлике .runtimeconfig.json)
223 2557325
>>557319
Во-первых, дотнет 6 стоит, но среда выполнения подхватывается почему-то 7, а не 6. Как заставить выполнять в 6 - не понятно.
Либы как правило есть все от 1 до последней. В дотнете же старых версий просто нет, их удаляют и заменяют новыми. Имея старый проект на руках, через некоторое время его уже не запустить. Единственное, запрещать все обновления, что сама же винда не выполняет и обновляет вопреки мнению пользователя. В итоге со временем любой проект на дотнете становится нерабочим.
Image 5.png49 Кб, 854x801
224 2557335
>>557325

>В дотнете же старых версий просто нет, их удаляют и заменяют новыми


не соглашусь. И хоть это винда, но судя по доке про убунту

"dotnet --list-sdks Используйте команды и dotnet --list-runtimes , чтобы узнать, какие версии установлены. "

в линуксах такая же мультирантаймвость.
225 2557343
>>557335
Да, если такие пакеты есть в репозитории, то можно установить, а есть дистрибутивы, где старое удаляют.
226 2557350
>>557343
возможно старый дотнет, что кончилась поддержка то его забрасывают. но 6й к ним не относится.
Так что просто выполни dotnet --list-runtimes
и просто доставь все что нужно и заработает

кстати, нашел у себя приложуху под 3.1, подправил .runtimeconfig.json под 7 и внезапно запустилось. Правда тут же упало ибо не нашло нужную WindowsBase (это WPF), но ведь стартовало же.
227 2557359
>>557350
Нет, aspnet-runtimes 6.0. Кто поддерживает Манжару - обосрались и удалили нужный пакет из репы.
228 2557378
>>557359
ну ребята выбрали такой подход да
https://archlinux.org/packages/community/x86_64/dotnet-sdk/

быть всегда "на острие ибо нех"

тогда тебе копать в сторону старого подхода с dotnet-install.sh и бубна
https://www.jeremymorgan.com/tutorials/linux/how-to-install-dotnet-manjaro/
229 2557808
>>552743
Пушто его каждый второй школьник учит чтобы говну наюнити сделать
230 2558132
Если я прочитаю https://professorweb.ru я стану хотя бы мидлом?
231 2558139
>>558132
нет
миддлами становятся после нескольких лет задрачивания
232 2558141
>>558139
Но я мидл на других языках
image624 Кб, 1748x587
233 2558155
>>558139
Надо просто быть уверенным в себе и говорить, что у тебя опыт 2-3 года, нужно придумать себе какие-то проекты.
По сути дела измеримой разницы по знаниям нет, только по опыту.
Уверенный и наглый джун - это мидл. Требуй сразу после курсов 220к, будешь мидлом. Если согласен работать за стопку гречи - ты опущенный джун, отойди в сторонку. На задания и тесты, которые могут тебя разоблачить, не соглашайся, это ниже твоего достоинства. Пусть тестовые задания всякий посткурсовый сброд решает. Ты выше этого. Ты не биомусор. Ты не будешь работать менее, чем за 250к. Если сам поверишь в это, то поверит и работодатель.
Ты успешный программист, а не обоссанная джуновая скотина. Ты не потерпишь ни малейшего неуважения.
Если обычному заурядному биомусору нужно 10 лет, чтобы стать сеньором, это не твои проблемы. Ты уже знаешь больше сеньора. И не нужно равнять тебя с обычными программистами. Ты просто на другом уровне.
234 2558157
>>558155

>Требуй сразу после курсов 220к, будешь мидлом.


В голос.
Каких курсов? Полного курса обучения в MIT разве что.
image.png18 Кб, 212x238
235 2558159
236 2558176
Слили лучший курс по сишарпу, теперь количество вкатунов в шарп увеличится в разы:
https://youtu.be/w8rRhAup4kg
237 2558184
Как потрошить ASP.NET Core?
238 2558343
читал что есть такая микро оптимизация: запечатать классы от которых не планируется наследование, будет быстрее
если это так то почему классы без наследников по умолчанию не считаются запечатанными?
239 2558347
>>558343
Не будет, пиздёж. Sealed классы просто не разрешают наследоваться и всё. Никакой оптимизации не будет.
240 2558348
А правда, что сейчас запрещают писать циклы и заставляют писать всё в функциональном стиле через LINQ?
241 2558350
>>558343
Микро-оптимизации бессмысленны, JIT справится лучше.
242 2558351
>>558348
Нет, это бред.
243 2558412
>>558347
>>558350
вот же они наебщики ебаные а я уже хотел все классы запечатывать спасибо посоны
244 2558436
>>558412
Можешь анус себе запечатать.
245 2558455
>>558343
Гипотетически это может помочь эвристикам JIT'а в доказательстве того, что иерархия наследования закрыта, а значит, возможно, он сможет произвести девиртуализацию вызова метода класса. Но JIT, скорее-всего, это сможет вывести и так, без указания sealed. Плюс просто ситуация, когда это сможет выстрелить редкая. На ум приходит только случай, когда у нас в сборке есть internal-интерфейс и один public класс. В таком случае, сделав этот класс sealed, мы сможем гарантировать, что у интерфейса только одна реализация, а значит, JIT сможет заменить все виртуальные вызовы методов интерфейса на статические (по их прямым адресам) вызовы методов класса.
В общем, не стоит с этим заморачиваться и помечать все sealed, если действительно нет причины запечатать класс.
246 2558478
>>558455

>не стоит с этим заморачиваться и помечать все sealed, если действительно нет причины запечатать класс.


Классы, которые не будут по дизайну наследоваться, следует запечатывать. Неявное нужно делать явным. Это как компилятор предлагает помечать неизменяемые поля ридонли и удалять неиспользуемые приватные сеттеры. Большинство классов на самом деле никогда не будут наследоваться. В котлине по умолчанию классы запечатанные. Это ошибка дизайна языка сишарп, что класс по умолчанию не запечатанный.
247 2558553
>>558412
Так и правильно запечатывать. Оставлять распечатаными - это нужно иметь сильную мотивацию для этого. Запечатывай всё, делай всё приватным, не объебешься, уж поверь. Распечатать потом всегда успеешь.
248 2558563
>>558478

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


Это не ошибка, а хорошее умолчание которое не связывает руки.

Я хуею с некоторы бдсм-языков где все по-умолчанию иммутабельно. Любая логика из реального мира нуждается в дополнительных телодвижениях, зато манямир сектантов чистоты не потревожен.
249 2558572
>>558553
хоть я за строгость, но это очень спорный момент
не единожды имея нужду унаследовать что-то от мелких, вспоминал их совсем не добрым словом.
Так что я за открытость по умолчанию.
250 2558576
>>558412
Не надо запечатывать. Это лишная работа и головняк в будущем с перекомпиляцией исходников когда тебе внезапно понадобится отнаследоваться.

Алсо есть редкий кейс: когда твой код уйдет в прод и в нем найдут критическую багу, ее смогут пофиксисть без исходников через рефлексию горячей перегрузгой проблемного класса. Запечатанный класс станет как серпом по яйцам, твою мать за это проклянут и выебут.
251 2558584
>>558348
Правда. Если пишешь дидовские циклы думают, что ты лох-пидор-неосилятор. И похер что циклы быстрее, понятнее и привычне.
252 2558601
Вы уёбки вместе со своим языком, я из-за вас плюсы забросил.
253 2558653
>>558584

>дидовские циклы


>И похер что циклы быстрее, понятнее и привычне.


Хуй там. Я дид и настолько уже привык к LINQ-у, что не могу нормально на портянки из циклов смотреть.
254 2558657
Как собрать всё в один единственный исполняемый файл без нужды тащить вместе с ним дллки?
255 2558661
>>558653
Мне в линке не нравятся цепочки вызовов. В любой книге типо совершенного кода сказано, что это признак северного полярного лиса в проекте. Они всадник трудной отладки, отсутвия нужной абстракции, неправильного домена логики, протекающих в глобал данных. И тут появляются клоунские технологии которые провоцируют писать в таком стиле. Старый подход: нужно отфильтровать список - пишешь класс фильтра с нужными данными, в нем предикат или метод филтьтрации делающий работу. Это объект тестируемый, вызывается через одну точку, нигде не дублирует логику, понятно где он лежит, системный подход збс. Но сейчас пиздос, говнякают линк себе в штаны прямо по месту и пусть весь мир охуеет понимать зачем это написано и где еще в проекте есть грабли такой же конструкции.
256 2558665
>>558661
ты о законе деметры?

https://en.wikipedia.org/wiki/Law_of_Demeter

так линк его не нарушает
257 2558671
>>558665
Да о нем. Нарушает. Сложная логика фиьтрации болтается прямо посреди бизнес-логике со всеми подробностями, хотя она должна быть скрыта за интерфейсом объекта-фильтра.
258 2558809
Собираюсь делать пет по Clean Architecture и DDD. Вряд ли у меня получится сделать все прям по науке, но хочу хотя бы нормально разбить все по слоям. То есть будет Api, Contracts, Application, Infrastructure, Domain. Как в это веселье влепить EF? В гугле и на ютубах никаких толковых туториалов не нашел.
259 2558848
>>558831 (Del)
Да соси ты хуй, зумерок полоумный. Без линка уже скоро максимальный элемент в массиве будет не найти таким гореразработчикам.
260 2558849
>>558827 (Del)

>дают do-нотацию прямиком из хачкеля,


Худшее говно что случалось с шарпами. Ебаные функциональные сектанты поналезли в чистый ОО-язык и задристали его вызовами функций функций функций функций поверх словарей листов массивов итераторов. Все это без нормально абстрагирования и с диким количеством повторов кода. Сука, были четкие объексты с методами и данными! Теперь просто лапша методов плавает сама по себе, а вокруг нее в наблеваны данные попадающие в захват блямд - за кулисами всь этот понос конпелятор все равно упаковывает в объекты, но написавший ее петух-пограмист не имеет нормальныйх объектов и копатеся по локоть в дристе.

Алсо на швабре видел статейку: как бы еще позаборестее трахнуть систему типов шарпа, чтобы дженерики стали гоморфными категориями абстрактных групп произвольного типа. У меня от такого рука сжимается в кулак и хочет уебать петуху, пояснив его криком - УЕБЫВА В СВОЙ ХАСКЕЛЬ ЖРАТЬ БОРЩ ЧЕРЕЗХ АНУС!

Бендный шарп, короч. ФП-фанатики его доебут до состоянитя С++.
261 2558902
Прошёл бесплатный курс на htmlacademy, я теперь фулстек?
262 2558958
>>558584
Спустя время сказали расширить алгоритм на получение данных с БД. Вместо генерации скул запроса дастаешь данные в память и руками чешешь
263 2558963
>>556219

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


Пробовал собирать селф-контеин приложение? Рот можешь закрыть я уже год пишу тул который по сфтп заливается на голый линукс и работает
264 2558981
>>558809
Бумп.
265 2559004
>>558809

> В гугле и на ютубах никаких толковых туториалов не нашел.


Потому что это максимально расплывчатая хуйня, вот прям у каждого первого полностью своё определение DDD. Можно писать какой угодно код с какими угодно концепциями хоть на ассемблере и иметь все основания называть это DDD. В 2к23 DDD - синоним программирования.
266 2559055
>>559004
А EF-то к такому устройству слоев как подключить?
sage 267 2559072
Дебилы ИТТ не осилили в Linq.Dynamic, который имеет OrderBy(string propertyNames)...
изображение.png49 Кб, 529x655
268 2559111
>>559055
Советую почитать Ef Core в действии. Там как раз много внимания уделяется использованию ef core в ddd с примерами.
269 2559205
>>551587 (OP)
С наступающим, помогач!

Есть вопрос. Вот есть сущности многих разных типов. Заявки, задачи, отчёты, утверждения отчётов. Всё это во многих вариантах, задачи программы Task-Doer-1.0, задачи программы Task-Performer-v325.3, и так далее. И всё это между собой связано, там, вроде как, даже своя иерархия имеется, только мне не понять нифига, в чём тут суть иерархии, когда как по мне структура этих связей это просто граф без замкнутых путей и какой-либо иерархии.

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

Вот ты, мудрый ананасик, как бы ты решал эту проблему? Вообще, в целом?

И конкретно в частности: Есть одна задача в двух программах одной и той же организации. Ну, скажем, есть два инстанса двух разных классов, созданных по одной и той же проблеме. Они должны друг на друга влиять при создании, изменении или закрытии. Как красиво-то написать так, что у нас один объект, получив управление для выполнения каких-то действий, передаёт управление ещё и другому объекту для выполнения аналогичных действий, но тот не перебрасывает управление обратно?

Я-то могу просто взять и написать, но нужно бы написать так, чтобы этот код не был write only, это ведь сегодня все эти сущности связаны так, а завтра какой-то отдел перестанет отчитываться перед какой-то другой организацией, или будет отчитываться только по одному подтипу задач, а по другому не будет. Как сделать так, чтобы в будущем всё это правилось с минимальными усилиями?
sage 270 2559207
>>559205
Как же много воды. Давай вкратце, что у тебя не работает? Опиши всё в парочке предложений.
изображение.png291 Кб, 1250x695
271 2559262
>>559207
Да всё работает. Система получается слишком сложная. Как красиво такое написать? Задача же вроде стандартная для всяких там CRM. Наверняка тут каждый второй чем-то подобным занимался. Или нет?
272 2559279
>>558963

> Пробовал собирать селф-контеин приложение?


Нет, блядь, не пробовал.
Пробовал взять и залить на китайский контроллер/WiFi-модуль и проч с их китайским линуксом селф-контейнед приложение? Я - да. В 90% случаев, тебе не фортануло - иди ебись как хочешь.
Ну серьезно. Ты думаешь учитывая, что я плюсовые приложухи - собираю статически - мне в кайф с дотнетовскими ебаться?
273 2559280
>>559205

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


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

Наверно тебе что-то подобное нужно.
274 2559296
>>559178 (Del)

>твои визги в сторону функциональщины имели бы хоть какой-то вес, если бы ты хоть что-то из этой самой фунциональщины осилил


Спасибо, но жрать говно не планирую. Чтобы понять, что это говно не обязательно его деустировать.

Возразить тебе по-существу нечем кроме того, что петухи написли какое-то монадное петушение 10 лет назад. Единственный вопрос: чо им в хаскеле не сидится с этой дрисней? Нахуя он гадят в нормальный язык?
15183542214190а.png915 Кб, 1960x1962
275 2559300
2035 ГОД
@
ОТКРЫВАЕШЬ ФАЙЛ С РАШИРЕНИЕМ CS
@
А ТАМ ЛИСП
276 2559320
>>559300
НАХОДИШЬ ШАРП В ФАЙЛАХ CPP
277 2559323
>>559307 (Del)
Не рвись, функциональная манька. Хотя я рад, что хоть в одном промышленном языке появилось понятное для тебя петушение и ты наконец начать зарабатывать деньги решая рельные задачи, а не жрать мамкин борщ прорешивая в сотый раз скип.
278 2559326
>>559300

>2035 ГОД


>@


ГДЕ-ТО НА ПРЕДЕЛАХ РАДИОАКТИВНОЙ ПУСТОШИ НАШЁЛ РАБОТАЮЩИЙ КОМПЬЮТЕР
279 2559329
>>559326
@
НА НЕМ ДОС 3.1 И БОРЛАД ПАСКАЛЬ
@
ДОВОЛЬНО УРЧИШ ВСПОМНИВ МОЛОДОСТЬ
280 2559332
>>559327 (Del)

>ряяяя ухади мне неприятно


Причина баха?

Линк говно - это объективно. Функциональная парадигма - ущебна по сравнению с ОО-парадигмой. Нормальные люди это понимают и не тащат в проекты каку. о чем тут спорить?
281 2559334
>>559329

>ДОС 3.1 И БОРЛАД ПАСКАЛЬ


Если ты настолько древний то долго под радиацией ты не проходишь.
282 2559386
>>559350 (Del)
Нахуя ты его так?
283 2559388
>>559280
Мне кажется, тут это не пойдёт. В цепочке у каждой сущности одинаковый интерфейс. И она линейна. А тут что-то вроде дерева, растущего во все стороны, и центр в нём определить невозможно.
При этом действия разные.
Создан отчёт: Розетку отремонтировали.
Задача отдела по ремонту розеток - закрывается, а не создаётся.
Задача, поставленная управлением по контролю за ремонтом розеток - не закрывается, а переводится в ожидание приёмки. А параллельно всему этому на основе отчёта отдела по ремонту розеток создаётся отчёт на уровне всей нашей компании, который в каком-то виде отправляется в управление по контролю за розетками. То есть тут и ветвление, и передача по цепочкам, но в одной цепочке происходит создание отчётов, а в другой - закрытие или перевод в ожидание приёмки заявок.
284 2559432
>>559350 (Del)
Ты просто назвал меня тупым из-за того, что я не пишу ФП-лапшу как ты. А может это ты тупой? М? Понтуешься тут как можешь круто поедать борщ новыми способами, но твой код ужасен. Дерьмо без абстракций на бесконечных замыканиях для домена приложухи не годится.

>>559426 (Del)

>добавить тайпклассы


Не нужно. Уебывай на любой ФП язык.

> LINQ говно, потому что.... потому что функциональщина!


Да. А еще потому что привлекает извращенцев и кораптит моск неокрепших нюфагов.
285 2559456
>>559438 (Del)
Тебе корона на уши не давит? Я понимаю как это говно писать и как оно работает, но я его не пишу осознано, потому что все ФП-петушение сосет у ОО-подхода. Я выше перечислил в чем траблы. Главная проблема - теряется семантика. Глядя на словарь словарей с листами ни за что не отгадаешь какую логическую единицу данных представлят чудо которое в нем хранится. Потом у каждого объекта есть список методов позволяющих что-то с ним делать, а над контейнерами можно выполнить любую функцию и попробуй отгадать какая из этих функций валидна в данном контексте данных. ФП-сектантам в принципе норм, ведь состояние у них харам остаются только функции поверх листов-параметров для замены того самого состояния на пошишечки. У меня баребух из-за того что подобные кадры лезут со своей парашей в чистый ОО-язык. Еще расказывают как все вокруг неправильно живут и вообще дебилы непонимающие их монад. Обидное.

Линк ест моск.
286 2559471
слушьте, а как нормально компилить в vscode. чтобы не тыкаться в терминале.

не прописывать dotnet run постоянно?

и еще такой вопрос, а че при дебаге терминал не работает чтоли? все эти врайтлайны, ридлайны?
287 2559472
>>559471
так скачай visual studio
288 2559474
>>559471
Тестовый редактор тебе не IDE, понятное дело, что надо будет тыкаться в терминале.
289 2559524
>>559474
тык епт помогите это говно автоматизировать наверняка в ней где то можно батник прописать?
290 2559529
>>559472
бля она гигов с дотнетом весит больше чем мой с диск
291 2559533
>>559524
Это говно не автоматизировать.
292 2559538
>>559533
Зато можно автоматизировать Emacs.
293 2559540
>>559529

просто подскажи куда копать.
вот там есть джейсон файлы с какими то путями. лоунч и таск - это оно?
или надо расширение конкретно для редактора делать?

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

вот может дополнение уже есть такое же??
294 2559555
>>559534 (Del)

>Курьером поработай сначала, ну или в ...



эта блядская студия всегда будет весит больше, сколькоб я винтов не покупал. зря только зхадницу порву.
295 2559576
>>559572 (Del)
ну а че всеж с кода кипятком ссут
296 2559587
ладно такая хуйня, вроде поставилас студия, влезла. а че она мне проект не собирает?
поставил я значит нет кор 7мой свежий.
загрузил значит асп нет.

шаблон просто веб кор.

результат нихуя ругается на 7ой нет. просит пятый.

Это че нормально?
297 2559588
>>556585
В общем, как оказалось, это позиция на джуна t-sql. С вкраплениями дотнета. Имеет смысл вкат сюда, есть перспективы переката в серьезный дотнет? Зп здесь вполне рыночные.
298 2559592
>>559587
Установи через Visual Studio Installer.
Снимок.JPG53 Кб, 2380x914
299 2559593
ладно кароч, запустилось на 5м нет коре шаблон выдает вот такую хуйню. Это нормально или чето не прогрузилось?

я видел что шаблоны в видосе покрасивей открывались прям с графикой.
а тут чет он и в коде пустой. но я не шарю совсем.
300 2559596
>>559592
через него тоже чето поставилось

7ой нет до этого стоял под вскод.
301 2559667
>>559500 (Del)
Я выпоз из оливьешечке сказать тебе, что ты опять несешь дичь на своем птичьем языке. Братишка, для работы это нинужна. Совсем.
С новым годом тебя.
302 2559670
>>559500 (Del)

>чтобы пройти по ссылкам, прочитать информацию


Мимопроходил. Чел, подкинь ссылок на теоретические основы.
303 2559747
>>559350 (Del)

>ParsecSharp


Ради интереса полистал, т.к. когда-то писал велосипедопарсеры-интерпретаторы арифметических выражений.
И я ожидал удовлетворить своё любопытство, как же это всё можно красиво сделать в ФП.
Но твой код - ничего не делает. Ты просто создал сотни файлов с интерфейсами и хелпер-методами с телом в одну строчку, чтобы... обернуть несколько стандартных функций типа int.Parse() и реализовать какой-то примитивный абстрактный токенизатор?
Что это? Зачем?
304 2559749
>>559667
Так борщехлебам работа и не нужна.
305 2559792
>>559751 (Del)

>>Что это? Зачем?


>почитай


Не ответил на вопросы, то есть сам не знаешь о чем пиздишь.
306 2559853
>>559747
Анон, советую лучше посмотреть на Sprache https://github.com/sprache/Sprache . Это как раз приличная production ready реализация комбинаторных парсеров для C#. В ридмишке есть ссылки на примеры использования и статьи с примерами.
На самом деле очень удобная либа. Особенно когда тебе нужно парсить что-то не сильно большое, но то, что нельзя описать регулярной грамматикой (тобишь то, что априори регулярками парсить нельзя). Заюзать Sprache гораздо быстрее, проще и поддерживаемей, чем писать ручками свой парсер с рекурсивным спуском или LR(1) автомат (хотя с приходом patter-матчинга их небольшие реализации стало писать достаточно прикольно) или тащить в проект ANTLR.
Да и по сравнению с регулярками парсеры описанные на Sprache выходят сильно более читаемыми.
307 2559859
>>559829 (Del)

> я 33 раза в своих написал про монадные парсеры


Но так и не смог сказать что это такое и зачем нужно. Типичное тупое кукарекало.
308 2559865
>>559853
я мимокрок
это хороший парсер, но сложно в нем делать экранирование кавычек
а потому сразу лучше прыгать до peg парсеров
123.JPG60 Кб, 1271x346
309 2560266
читаю сейчас метанит.

че такое системные типы? это класс чтоли встроенный?

а int тогда че такое? почему сразу не писать Uint32?

в сях вроде так можно
310 2560273
>>560266

>че такое системные типы?


ну типы что дают тебе искаропки

>а int тогда че такое? почему сразу не писать Uint32?


да пиши как хочешь. это всего лишь алиасы
хотя конечно так мало кто пишет.
311 2560276
>>560273

>алиасы



во че это такое?
312 2560278
>>560276
это значит что можешь писать так и этак и будет одинаково
считай что это аналог такого
using int = System.Int32;
313 2560279
>>560278
Спасибо анон!
124.JPG66 Кб, 897x430
314 2560281
о слушьте, а неявная типизация давно появилась?
315 2560282
>>551587 (OP)
Аноны подскажите я фронт немного кодю на яве и котлине, хочу попробовать перекатиться вбэк быстрее освоить
csharp vs golang
316 2560287
>>560282
че больше нравится то быстрее освоишь
317 2560295
>>560281
досталась от пращуров со времен мамонтовых войн
318 2560298
>>560281
Давно, это было как минимум в пятом шарпе (.net 4.0).
319 2560322
а как смотреть доступные перегрузки в методе?

типа допустим вот есть у нас Convert.toint32() а в кобочках 18 перегрузок на разные типа значений как посмотреть че там доступно?

в визуал студии
320 2560333
>>560322
Скобку открываешь и можно перелистывать стрелками вверх-вниз доступные сигнатуры в подсказке.
Или курсор между скобками и клавой жмешь Cntr + Shift + Space, и потом снова стрелками.
321 2560340
>>560322
пкм - Nvaigate -> Object Browser
322 2560374
>>560333
а чет не работает. скобка то закрывается сразу.

вот горячая клавиша сработала.

>>560340
это f12 "перейти к определению"? сорямба у меня пока русская раскладка встала.
323 2560463
а вот кароче, я открыл проект в студии, который я раньше сделал через vscode.
простой консольный проект. и у меня не работает подсветка.
как ее включить в студии?
324 2560472
>>560463
сгенерь солюшен файл, перезагрузи вс
переустанови винду наконец
325 2560497
>>560472
не а как вот непример есть у меня чужие исходники. сделаные не в студии. как мне их открыть и включить подсветку кода?
326 2560512
>>560497
Создай пустой проект и закинь туда все исходники.
И вообще иди в гугол уже.
327 2560519
>>560512
пасибо! недодумался. Да ладно все равно тред мертвый, пусть хоть какая то движуха будет
328 2560539
кароче че мне с подсветкой помогло.

в файле .csproj сменил версию net на 5ю и все заработало.

<TargetFramework>net5.0</TargetFramework>

похоже 19я студия тупо не поддерживает 7й нет
329 2560543
Так ставь 22 студию.
330 2560599
>>560543
дык тут такое дело. 19 я у меня стоит до 4.26 анрил. и если я поставлю 22ю то мне и анрил придется обновлять до 5й версии. а это все вкупе 30-40 гигов выкачивать. я пока в деревне живу , через свисток.
а нет я просто пощупать хочу. вдруг не понравится совсем.
331 2560601
>>560599
Удаляй анрил, и тогда не придётся ничего выкачивать.
332 2560603
>>560601
ага удали анрил и нет заработает! круто.
333 2560606
>>560603
Ну да, это правильно.
334 2560651
>>560539

>похоже 19я студия тупо не поддерживает 7й нет


Не "похоже", а так и есть.
335 2560653
>>560599
Ты можешь вместе и 19-ю и 22-ю поставить. И любую другую. И даже солюшены будут открывться той студией для которой они созданы, там достаточно умный селектор есть.
И они даже работать смогут одновремено, не мешая друг-другу, если, конечно, памяти хватит.
336 2560659
>>554865
Но задача должна быть хорошо сформулирована, с кучей условий, чтоб ты гуглил и изучал именно что "надо". Если ты сам себе скажешь "сделать форум", то ты сделаешь всё максимально примитивно и почти ничему не научишься.
337 2560668
>>560659
Если возникают подобные вопросы, значит человеку ничего не нужно, он не будет ничего делать и ничему не научится. Обучение начнется только на работе, когда будут платить деньги, вот ради этого и будет делать и учеба пойдёт.
Помощь новичку в освоении Новенький 338 2560910
Доброго времени суток всем работягам! Начинаю, в это нелегкое время, свой тернистый путь C# разработчика. Меня интересует преимущественно бэкенд. Хотелось бы в этом треде найти единомышленников или людей с опытом работы в этой индустрии. Изучаю шарп уже полгода, но всё равно чувствую, что во многих местах присутствуют пробелы в знаниях (как минимум на тестовых заданиях и интервью при трудоустройстве). Я понимаю, что есть огромное количество учебных материалов и ресурсов, но откровенно говоря, в них можно просто утонуть, затянув при этом свое обучение на долгие, долгие годы. Поэтому хотелось бы найти человека, который поможет сориентироваться на месте и подсказать несостоявшемуся джуну как оно всё устроено на самом деле. Надеюсь на Ваше понимание)
sage 339 2560991
>>560910
Учи EFCore, кодстайл шарпа, SQL, научись ебашить КРУДы, пойми что такое DTO, как писать по DDD и уже можно будет работать
340 2561021
>>560910

>Изучаю шарп уже полгода


>несостоявшемуся джуну


https://github.com/Elfocrash/.NET-Backend-Developer-Roadmap
Вот когда по этой карте до хотя бы до микросервисов дойдешь, тогда можешь несостоявшимся 'джуном' считаться.
341 2561030
>>560910
а че ты уже умеешь?

я вот могу шаблон открыть.
342 2561052
>>561021
Картинка из серии: Мы много говна сожрали и ты столько сожри прежде чем нам бросать вызов.
Нельзя просто взять и начать писать бек с рест-апи, попутно погружаясь в разныве темы по мере надобности.
343 2561063
>>561021
Все эти роадмапы придумали говноеды для дебилов 75 IQ, которые не могут думать своей головой. Одни облака в разделе про микросервисы многое говорят об этих людях.
344 2561064
>>561052

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


Да не вопрос. Писать то начать ты можешь, но если мы говорим о реальной работе, то в нынешних реалиях, от джуна ожидают хотя бы минимального опыта работы с любым пунктом этого списка. Ну или хотя бы способности ответить на пару-тройку определяющих вопросов по каждой теме.
345 2561091
>>560991

>как писать по DDD


А как писать по DDD ?
346 2561095
>>561091
Любой компилирующийся код полностью соответствует DDD.
sage 347 2561096
>>561091
https://docs.abp.io/en/abp/latest/Domain-Driven-Design
Вот тут хорошо объясняется
348 2561107
>>561064
Всякие пидоры пытаются купить мидлов по цене джунов. Навесят кучу требований, а когда их не вывозят режуит ЗП. Потом попавшие под такую практику рассказывают как много надо знать джуну, стоят роадмапы где надо обязательно учить пять технологий для одной задачи.
349 2561108
>>561096
Чет там самое обычное всё. В чем отличие от не ddd, хз

«На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати чёрные применили хотя и устаревшую, но довольно верную защиту Филидора. Если б Остап узнал, что он играет такие мудрёные партии и сталкивается с такой испытанной защитой, он крайне бы удивился. Дело в том, что великий комбинатор играл в шахматы второй раз в жизни».
sage 350 2561168
>>561108
Ну значит иди собесся.
351 2561175
>>561168
Так я не понимаю DDD
sage 352 2561202
>>561175
Тогда читай что скинул и понимай
353 2561204
DDD -:это то же, что ООП.
354 2561208
>>561202
Повторюсь - я не вижу там ничего отличного от самого обычного способа написания приложений, которое существовало всегда.

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

Вот микросервисы хоть просты, но имеют ярковыраженную особенность.

а тут - вода водой в воде и "покупайте задорого"
sage 355 2561209
>>561208
Давай пиши круд какой-нибудь и кидай ссылку на репо. Щас посмотрим на твоё ООП
sage 356 2561210
>>561209
На тему погодных условий, возьмешь там опенвеазер апи
357 2561257
суака ебать. чет начал разочаровываться в веб разработке.

смотрю сейчас аспнет кор. и сука там ебать ковырять включаешь фреймворк, он хуй пойми там как чет работает, включаешь какието хуй пойми компоненты. без этих компонентов тебе хуй будет доступ к штмл. но и там это не штмль а какието куски заготовок, которые тоже хуй пойми как подтягиваются и сшиваются другими компонентами аспкора. и все это сдобрено юблюдским синтаксисом который к с# ни сбоку припеку. модели какие то придумали. в виде классов без методов. кароче тоже какая то хуйня чисто для представления. почему не листы тогда вместо классов? мне вообще попрагроммировать дадут?
че за хуйня происходит. такое ощущение, что за тебя уже все написал какой то долбаеб а ты отчаянно пытаешься разобраться в его говнокоде. все обложенно спец правилами. Это ВСЕЕЕЕЕЁЁЁЁ надо изучить и понять чтобы блядь банальный хеллоу ворд написать.

Это че вообще? это программирование я вас спрашиваю? это везде так в вебе или только в дотнете? Есть может чето более привычное?

Еще блядь я с# не узнаю совсем. вкатывался 10 лет назад в контексте юнити. каким красивым он тогда казался. жестко типизированый правильный. никаких неявных конструкций.
сидели ржали с посонами на джавистами.

а тут захожу неявные типы, какието верхнеуровневые команды, какието ублюдские сокращения. => это че вообще?

нахуй так делать? это че это то самое хваленное развитие? компилятор всеравнож это все приводит к старому типу.

посоны у меня бомбит реально. может действительно жаваскрипс какойнибудь с ноджсом поприятнее будут для веба?
358 2561276
>>561257

>он хуй пойми там как чет работает


работает как и все подобные фреймворки бум которым задал RoR и понеслось. и не только на шарпе.

>почему не листы тогда вместо классов?


юзай что хочешь. просто классы это строгость.

>Это ВСЕЕЕЕЕЁЁЁЁ надо изучить и понять


ну да. понял RoR (то есть подход) === понял сотни фреймворков на пхп и асп.нет тоже

>какието ублюдские сокращения. => это че вообще?


та же херня как и богомерзком жс.

>жаваскрипс какойнибудь с ноджсом поприятнее будут для веба?


удачи
359 2561354
>>551587 (OP)
И всё-таки, бампану свой вопрос. А точнее, перезадам.
У нас задачи хранятся в разных базах данных. Задачи - это указание починить какую-нибудь фигню, например. По ним есть отчёты, есть заявки, вот всякая такая ерунда. При этом одно порождает другое. Меняется статус задачи - должен измениться статус заявки и статусы задач в других базах. Ну плюс-минус так. Иерархии как таковой у всей этой фигни нет. Ну то есть она как бы есть, но как по мне, она высосана из пальца.
А вопрос в том, как сделать подобное наиболее правильным образом. Чтобы гибко достраивалось, надёжно работало и выглядело не запутано.
Что здесь, как мне кажется, не подойдёт (из того, что предлагалось) - это паттерн цепочка обязанностей. Ибо цепочка обязанностей обрабатывает одно и то же событие, при чём по линейной цепочке. А тут не линия, а разветвлённый граф. И если рассматривать то, что инициирует изменения во всём этом графе, как событие, которое может непосредственно повлиять на все документы в базе, то как-то сложновато всё это выглядит. Ибо некоторые задачи, например, в некоторых базах вообще могут отсутствовать, так как отделы, которые этими задачами занимаются имеют отдельные базы.
360 2561365
есть у кого-нибудь книга

ASP.NET Core в действии?
362 2561367
>>561366
битая ссылка(
363 2561369
а стоп бляджь ебаный рот этого роскомнадзора. сука блядь.

Спасибо анон!
364 2561372
>>561369
Пробуй libgen.rs, libgen.is, libgen.st, у меня всегда хотя бы одно из них работает.
365 2561380
>>561372
ага разобрался. еще раз спасибо.
366 2561387
>>561354
я бы делал без четкой связи. как в ооп.
типа у каждой задачи есть свой набор свойств
допустим есть у нас
три класса: задачи, таски, отчет.
задачи могут породить таски, таски могут породить отчет.
все три класса могут порождаться сами по себе и ссылаться друг на друга.

потом собираешь каждый тип в стеки и просмотриваешь че с чем связано
367 2561425
>>561387

>потом собираешь каждый тип в стеки и просмотриваешь че с чем связано


А вот это как?
368 2561440
>>561425
ну стек типа например если взял задачу она ссылается на два таска. один из тасков ссылается на отчет, последовательно строишь цепочку например по приоритету. задачи главные таски вторые отчеты третьи. у тебя выходит иерахическое дерево. записываешь это все как относяцееся к какойто глобальной задаче.
вот тебе и иерархия.
369 2561490
>>561208

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


DDD - это когда разработка идёт от предметной области. Например типичный BookStore можно начать писать с позиции REST API, а потом подгонять логику приложения под неё, а можно вначале создать бизнес-логику и уже вести разработку в зависимости от требований бизнес-процессов.
370 2561509
>>561490
писать REST AP не зная что собственно ожидается от этого апи? Это вообще возможно??

А если пишешь апи учитывая ожидания (читай требования) к нему, то это уже требования к логике приложения как бы.
371 2561560
>>561509

>писать REST AP не зная что собственно ожидается от этого апи? Это вообще возможно??


Возможно, привязав к сущностям из БД.
372 2561571
>>561560
Да, передавая SQL-запросы через REST.
373 2561585
>>561560
к каким сущностям? мы только начинаем писать приложение и сущностей нет. создавать сущностей с потолка мы не можем, а значит мы автоматически создаем сущности для предметной области прежде чем начать апи )

Выходит, не так сложно писать по DDD, как писать иначе - нужно быть прокачанным чуваком чтобы уметь писать иначе.
374 2561755
Тут слышал мнение, что многие шарп-программисты сидят на старых дотнетах и даже не знают про то, что вводят в последних.
Нужно ли вкатуну учить все эти новые штуки?
375 2561760
>>561755
Я сижу на пятом шарпе и .нет 4.0. Мне норм.
376 2561771
>>561760
Этот анон - латентный жавист. Держитесь от него подальше.
377 2561810
>>561755
ну вот в асп нет сейчас смотрю. классы перетасовывают.
например между 5 и 7 есть разница. 7ой выглядит пизже
378 2561838
>>561810
Куда они спрятали Startup.cs?
379 2561849
>>561838
отож
380 2561853
>>561838
нема мужик стартапа
все теперь напрямую запускается.
381 2561866
слушьте а нахуй нужен sln файл в студии? солюшн как это понять?
и зачем туда добавлять проект. и чето пишут что в один солюшн можно несколько проектов добавить.
есть же для настроек . csproj
нахуй это все надо?
382 2561880
>>561866
Допустим написал какую-то программу, а потом хочешь переписать по-другому, сделать версию 2.0 типа. Вот тут и создаешь свой проект2.0 и переписываешь. Удобно сразу перед глазами иметь старый и новый проект.
383 2561887
>>561880
бля всеравно не понимаю.
384 2561891
>>561866
Ну вот пишешь ты параллельно несколько приложений. Они вроде как самостоятельные, но в то же время чем-то связаны, например, одновременно пишешь клиент и сервер. Вот каждый из них в отдельном проекте, но они объединены одним солюшеном. На хеллоуворлдах это сложно понять.
385 2561895
>>561866
У меня может быть новый модуль — это отдельный проект. Я могу его писать вообще не запуская основное решение и подключить уже либо на финале, либо ближе к нему. А еще можешь это проект подсоединить к другому решению, чего невозможно делать, если ты пишешь все в одном проекте — я подобного говна нажрался.

Солюшин это сборка проектов. Можно конечно импортировать библиотеки, но библиотека не продразумевает частое вмешательство ну и в целом это неудобно. А вот с множеством проектов ты ведешь разработку параллельно.
386 2561898
>>561891
вот так понятней. спасибо. дак че мне пока мозгов дальше холлоу вордов нехватает.
я уже вон клок волос вырвал
387 2561900
>>561895
а почему нельзя просто по фалам туда сюда шнырять? вот например в vscode нет никаких солюшнов. сидишь папки перебираешь.
388 2561904
>>561585

>к каким сущностям?


Сущностям из БД

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


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

>Выходит, не так сложно писать по DDD, как писать иначе - нужно быть прокачанным чуваком чтобы уметь писать иначе


Нет. Проблема сложных проектов в смешивание бизнес-логики и логики приложения, как раз потому что такие как ты не видят разницы в них. Да, вначале в этом не будет проблем, но как только бизнес-логика изменится, как всё, наступает пиздец.
389 2561920
>>561898
Однажды у тебя будет столько подпапок и классов, что тебе захочется как-то логически это разделить на блоки. Конечно, с этим есть свои проблемы, типа зацикленности и это заставит тебя создать еще один проект, чтобы связать другие проекты, но это уже другая история.

>>561900
Дохрена папок. С проектом ты в принципе вынужден будешь соблюдать солид принципы. В целом проект это тупо законченный модуль, как библиотека, которая не воняет на все решение, при этом ты легко можешь туда влезть и чет подправить\добавить. Создавая класс в отдельном проекте, он автоматом располагается в неймспейсе этого проекта. Попробуй такое же провернуть с папками.

А еще у меня один проект писался на VB, а другой на C# и вместе все работает в одном солюшине. Например VB не умеет в небезопасный код, это один из негативных отличий от шарпа, поэтому мне пришлось часть кода писать на шарпе.
1234.JPG114 Кб, 1656x709
390 2562012
а че это за ублюдская конструкция после объявления конструктора.

я имею ввиду : this(). это че специально только для конструкторов сделано? где то еще используется подобное? например при методах?
391 2562014
конкретно правила использование этого ублюдского двоеточия интересуют
392 2562024
>>562012
Да весь синтаксис сишарпа ублюдский, начиная с PascalCase и до новомодного сахарка.
393 2562027
>>562012

>а че это за ублюдская конструкция после объявления конструктора.


И что в ней не так?
394 2562032
>>562027
засирает читабельность. ну типо язык должен быть прост для восприятия и его читабельностью нельзя жертвовать ради ублюдских сокращений.

сегодня ты сократил выражение, секономив 2 секунды, завтра начнешь переписывать, потому что трудно найти ошибку.
395 2562035
>>562024
не основа нормальная. но вот это какая то поебень.
396 2562037
>>562035
Потому что основу они взяли с джавы, где продуманный синтаксис. Код на джаве просто красивый и легко читаемый.
397 2562044
я вообще смотрю, что появилась куча дублирующих конструкций. типа сути они не меняют но пишутся поразному.

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

и еще нельзя допускать чтобы одни и теже конструкции работали в зависимости от контекста поразному.

этого должно быть поминимому ибо ублюдство
398 2562075
>>562032
увы в шарпе, как в мерзкой жаве, имя конструктора равно имени класса (идиотизм, но слизывали же с жавы). и this хоть как то спасает идиотскую ситуацию

>>562037

> с джавы, где продуманный синтаксис.


продуманность уровня "тупее некуда"
это и new, и имена конструкторов, и null-ы, и многословность
в том же котлине все лаконично сделано
1213.JPG55 Кб, 1386x347
399 2562079
бляяя вы че реально этим пользуетесь?
400 2562081
>>562079
гм. какие претензии к реально полезной конструкции? пользуюсь в шарпе, питоне, котлине очень активно.
401 2562083
>>562079
Да, удобная хуйня
1214.JPG38 Кб, 815x253
402 2562088
>>562081
>>562083
да вы че ну серьезно чтоли?

вот так еще ладно норм. вообще надо просто с полями работать а этой херней страдать.

где она вообще понадобиться может?
403 2562089
>>562032
>>562044
Вы нормальную IDE вместо блокнота использовать пробовали?

>>562037

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


И чем же джавовский this лучше чем шарповский?
404 2562091
>>562089
Тем, что он пишется в теле конструктора, а не строке с сигнатурой
405 2562092
>>562089

>Вы нормальную IDE вместо блокнота использовать пробовали?



при чем тут иде вообще если конструкция засирает визуальное представление.
это всеравно что рекурсиями выябываться вместо циклов
406 2562093
>>562088
Когда тебе из всего класса нужно 2-3 поля.

Можешь засрать код говном уровня
var value1 = object.value1;
var value2.= object.value2;
...

Человеку который читает похуй в целом ему важно что он за 1 строку видит что из объекта вынули определные поля.
407 2562106
>>562093
var value1 = object.value1;
var value2.= object.value2;
вот это как раз таки нормальный код.

>Человеку который читает



а который не читает. нет. ты мне главное скажи где это может понадобиться?
пишешь object.velue1...2...n и все нахуй.
408 2562107
>>562012
>>562014

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

В то время как в бейсике можно посмотреть на метод или класс и в принципе понять что и для чего. Это подтвердит даже converter.telerik.com
409 2562108
>>562092

>при чем тут иде вообще если конструкция засирает визуальное представление.


>>562091

>Тем, что он пишется в теле конструктора, а не строке с сигнатурой


Т.е. вместо однозначной, сразу считываемой конструкции позволяющей сразу разложить цепочку вызовов не залезая внутрь конструктора, ты предлагаешь ту где это слово будет хуй знает где внутри тела конструктора запрятано? Нахуй, спасибо.
410 2562109
>>562108
Вызов конструктора всегда идёт первым оператором. Это проверяет компилятор и если не так, то выдаст ошибку.
411 2562112
>>562107

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


Давай примеры.
412 2562114
>>562109
И какая тогда, нахуй, разница?
413 2562116
>>562114
Джава код красивее и читабельнее
414 2562124
>>562112
Ну наследование класса от интерфейса хрен отличишь.
converter.telerik.com тебе не переведет адекватно, он будет считать интерфейс базовым классом, из-за этого внутри класса будет неадекватная мешанина.
Ну и опять же, твой пример с this.

Да и вообще часто наблюдал любовь юзать это ":" и это "+=" для множества контекстов. Впрочем, я это уже не один раз тут писал.
416 2562136
>>562130
ну почему второй то варик не юзать? нахуй тут это двоеточие?

понапридумывали хуйни
417 2562140
>>562136
можно юзать. Это сахар для слипшейся ленивой жопы.
418 2562148
>>562124
Потому что сишарп - это гибрид сишного синтаксиса с паскалевским. Не стоит забывать, кто его создал.
image.png39 Кб, 775x108
419 2562149
>>562116
>>562124

>Ну наследование класса от интерфейса хрен отличишь.


>>562136

>ну почему



Я так подозреваю, что увидев код подобный тому, что на пике джавист вообще в кому впадет или в окно выпрыгнет.
420 2562153
>>562124

>наследование класса от интерфейса хрен отличишь


А есть разница?
421 2562156
>>562149

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



конечно, говнокод ебаный.
422 2562157
>>562149
А шарпист от такого
class ListObject<T extends Comparable<? super T>> {){
423 2562161
>>562157
к чести сказать этот говно код еще хуже. ахахахаха

слуште а че в коммерческой разработке вот такая хуйня тоже используется?

или за это по рукам бьют?
424 2562162
>>562153
Подписчик экстрим цоде? Не слушай этих клованов.
А если нет разницы, то попробуй сконвертировать в другой язык и скомпилировать полученное варево.
425 2562165
>>562162
Зачем мне конвертировать? Я не ожидаю что вертолет будет крутой подлодкой хотя винт у него есть

Поясни чем наследование отличается от реализации интерфейса что их нужно отличать "кровь из Носа"
Особенно если класс может быть абстрактным, а интерфейс с методами)
23.JPG36 Кб, 1364x334
426 2562174
чет меня плавит.

откуда в структуре методы? это всегда так было? ммм нахуя?
427 2562176
>>562174
В этом смысл ооп.
428 2562177
>>562165

>Особенно если класс может быть абстрактным, а интерфейс с методами)


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

Из ВБ в шарп я моргу спокойно сконвертировать код, а из шарпа в ВБ — нет. При том, что функционал у них на 99,5% схожий.
429 2562178
>>562165

>Особенно если класс может быть абстрактным, а интерфейс с методами)


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

Из ВБ в шарп я моргу спокойно сконвертировать код, а из шарпа в ВБ — нет. При том, что функционал у них на 99,5% схожий.
430 2562179
>>562176
а чем тогда структура от класса отличается?

тем что наследоваться от нее нельзя? лол.
конструктор в структуре. я ебал.

мне уже похуй просто интересно, это я забыл или раньше такой хуйни небыло?
431 2562182
>>562177
Проблемы других языков, мммм-- проблемы других языков
Схера ли шарп обязан быть с кем то конвертируемо совместимым на уровне исходного кода?!!!!

Это все претензии?
432 2562183
>>562182
лол блядь это дотнет они все в пропежуточный ассемблер конвертируются.
433 2562184
>>562179
тем, где она живет в памяти и как живет. и конечно это накладывает свои ограничения, но принцип "держи данные и методы для работы с этими данными вместе" никуда не делся.

все это было всегда.
434 2562185
>>562179
Щас и в интерфесах можно писать методы, по сути превратив в реализацию в наследование. Осталось поле сделать классом, а класс отдельным проектом.

А в 2к35м у нас будет одна мандула, которая является всем и сразу. Внутри будет нейрсоеть.
Например ты пишешь MyMandula.ExtractNumber("Petya228"), а внутри автоматом создается метод и все необходимое.
435 2562186
>>562182

>Схера ли шарп обязан быть с кем то конвертируемо совместимым на уровне исходного кода?!!!!



Это просто наблюдение читаемости кода, не более. А быть таковым имеет право.
436 2562190
>>562186
по конвенции интерфейсы имеют буковку I, так что сразу видно где интерфейс, а где нет. И никакой проблемы читабельности не наблюдаю

так что давай подробнее поясняй проблему, а то не видать ее в телескоп даже.
437 2562192
>>562183
читай внимательнее. что куда компилируется вообще не причем.
438 2562197
>>562184
но этож просто компилятор создает для структуры доп класс гдето в тени.
кароче ладно это может и удобно. но нахуй надо. я сам хочу управлять структурами.
439 2562199
>>562190
да кстати в учебниках тоже надо сразу помечать типы данных.
440 2562201
>>562190
Конвенция не является обязаловом. Это ты на себя можешь полагаться, а теперь представь, что ты делаешь условный конвертер кода и не факт, что рандомный васян поставит приставку "I" в названии.
А что будет, если я захочу наследовать класс Internet? Оу, наверно должно быть две заглавные буквы в начале? А если это наследование класса IPadress?

Понимаешь? Тебе надо усложнять свой конвертер, рыться в самом классе, чтобы проанализировать а нет ли там внутри реализаций, а потом это как-то отличить от ":this". И кучу, кучу всякого дерьма.

При это ровно тоже самое в бейсике распознается на раз без каких-то хитрых манипуляций, потому что там синтаксис достаточно очевидный.
441 2562208
>>562197
никто не запрещает не иметь методов, а воспринимать структуры как...кортежи

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

структуры к тому что ты хочешь дополнительно используются как успокоитель GC же и методы весьма полезны. Вон смотри CancellationToken структура - плоди их миллионами хоть. А там есть метод Register...и куда ты его поместишь если не в структуре?
или тот же ValueTask
442 2562219
>>562201
чет у тебя как то смешались "я за читабельность" и "конвенция может не соблюдаться".
если за читабельность, то соблюдай

>А что будет, если я захочу наследовать класс Internet?


Гайды говорят что имя должно быть вменяемым. если для тебя nternet или padres о чем то говорит....ну тут хз - есть те кто вообще на русском названия классов и методов шпалит, и что теперь.

насчет конвертеров - я понимаю что вот мне удобно нагуглить на жаве кусок кода и вставить его в котлин и студия перепишет
Но я при этом как то не ожидаю, что в обратную сторону это будет работать.

То есть я понимаю что язык не должен думать о том что его куда то конвертируют - это вообще дичь
а портирование - это уже другое.
443 2562225
>>562208
ну в моем понимании структура это набор значений велью.

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

ну кароче хуй знает. быстро наговнокодить может и полезно.
444 2562232
>>562225

>ну в моем понимании структура это набор значений велью.


и что им запрещает иметь методы в себе?
ну кроме того что после плюсов это непривычно?

так не нужно устав таскать по монастырям.
445 2562235
>>562201
Слушай, вот если задача конвертации из VB в шарп понятна, то обратно-то тебе нахуя? Что за проект?
446 2562236
>>562219

>чет у тебя как то смешались "я за читабельность" и "конвенция может не соблюдаться".


>если за читабельность, то соблюдай


Правила синатксиса не позволят тебе писать иначе, а на конвенцию могут наплевать. Еще раз, представь себя на месте создателя сервиса, которым могут пользоваться другие люди. Все, чем ты можешь оперировать — правилами синтаксиса.

>если для тебя nternet или padres о чем то говорит...


Т.е. ты в своем конвертере предлагаешь еще и анализировать название, сопоставляя со словарем слов? Замечательно, очень эффективно.

>Но я при этом как то не ожидаю, что в обратную сторону это будет работать.


Сишарп и бейсик это братья, поэтому ожидать не просто можно, а нужно.

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

Я пытаюсь в споре о читабельности языка предложить в качестве аругментов мысленно создать конвертер для шарпа и для другого языка, а затем сравнить где будет легче это сделать.
447 2562240
>>562232
просто это еще один черный ящик. и дублирующая реализация.

я теперь могу многие задачи решать чисто на уровне структур. с одной то стороны это хорошо. но с другой опять же путаница. вместо одного правильного пути у меня теперь два. при проверке мне придется просматривать оба.
448 2562248
>>562235

>вот если задача конвертации из VB в шарп понятна


кек, ну это тебе понятна, потому что ты знаешь шарп. А если у кого-то проект на VB и ему надо вставить код с шарпа?

Я тут бесикоблядь из красной книги. Вообще медленно сам перкатываюсь на шарп, но у меня уже начат собственный длинный проект на бейсике, так что его добиваю на том, на чем начал. Так-то сам понимаю код шарпа в большинстве случаев, но порой лень переводить, а конвертер шарпкода выдает такую ересь (особенно это касается подписок на события и реализация интерфейсов), что по итогу вручную конвертируешь.
449 2562254
>>562236
суть в том. что кроме твоего конвертера это нигде и не нужно
я понимаю твою проблему - тебе нужно написать имплементс когда это интерфейсы, но ты не можешь гарантировать верность детекта.

я предлагаю вообще не конвертировать, а просто перейти на шарп )
вб вообще сам по себе брр язык в плане читабельности.
450 2562259
>>562254

>суть в том. что кроме твоего конвертера это нигде и не нужно


1. Речь шла про читаемость языка. Я тебе привел аргумент неоднозначности контекста в ситаксисе.
2. То, что тебе не нужно — не факт, что не нужно другим или не понадобится в будущем. Даже код ты пишешь с прицелом на то, чтобы он был готов к возможным ситуациям, которых прям щас нет.
451 2562266
>>562259
1 я попросил уточнить где это является проблемой. Эта неоднозначность НЕ создает проблем при использовании языка
2 годы идут. А проблем все не создает.
В шарпе хватает дичи в синтаксисе, но конкретно это не вредно
image.png125 Кб, 1202x652
452 2562301
Бля, ебал в рот майкрософтов, сейчас бы показывать пример с гитхабом, но не пояснять, че тут вообще происходит, че за AddHttpClient
453 2562303
>>562301
Открой МСДН и узнаешь.
455 2562305
>>562304
Да я уже понял, но порядок статей немного бесит, чому этот пример в другую статью не внести
456 2562313
>>562185
Написание методов в интерфейсе это ожидаемое решение. На уровне компиляции и кода интерфейс это абстрактный класс с кучей методов, именно поэтому в шарпе можно пихать свойства в них.
Ты можешь хоть в С++ добавить интрфейсы просто делая их как абстрактные классы и на уровне соглашения не писать там реализации, только поведение.

Без такой хуйни как базовая реализации для метода интерфейса придётся городить такие костыли что ебнуться
457 2562317
>>562301
Регенерация в ДИ контейнере реализации клиента для гитхаба.

Блять даже не нужно читать НА РУССКОМ доку Майкрософт чтобы понять. Достаточно просто понимать что такое ДИ
458 2562323
В Спринге такого нет
Поэтому непонятно.
459 2562334
Сап до-диезщики.
Составил тут себе на ближайшее время из роадмапа список технологий для изучения.
Подскажите, чему из этого надо выделить максимальный приоритет и иметь исчерпывающие знания, а что не так глубоко изучать или вообще пропустить.
Спасибо.
Screenshot20230104001510.jpg350 Кб, 1080x1031
460 2562336
>>562334
пикча отвалилась
461 2562338
>>562317
А не зная про IHttpClientFactory и читая про HttpContext впервые ты как об этом узнаешь? Я знаю про ДИ.
462 2562349
>>562338
вот так и узнаешь. пойдешь гуглить что такое AddHttpClient и узнаешь
только вот зачем об этом узнавать раньше времени....
463 2562367
посоны, допустим есть либа с таргетом на дотнет 4.6
меня она оче заинтересовала и я хочу ее даунгрейднуть до 3.5
подводные камни?
ебало представлять не надо у меня оно перманентно такое
464 2562373
>>562367
загугли может есть конвертеры.
465 2562386
а есть ли какой нибудь простой форумный движок на асп ? посмотреть че как там
466 2562395
>>562367

>даунгрейднуть до 3.5


Респект таким пацанам!

>подводные камни?


Самый крупный камень а 4.6 много новых типов завезли в либу. В 3.5 аналогов может не оказаться и тебе придется написать их самому.
467 2562450
>>562338
По контексту? Или ты просто код пишешь без понимания что конкретно сейчас происходит?

Добавить клиент в список сервисов. Наверное это про полёты на Марс
468 2562479
>>562334
Все пропускай. Берешь пишешь код, потом ищем работу стажировку и готово
469 2562481
>>562367
Они обратно не совестимые. Вполне возможно либа требует другие зависимости которые тоже 4.6 минимум.

Пока все зависимости не будут согласованы по таргет версии твой код не будет даже собираться
470 2562498
>>562479
Чего писать в коде?
471 2562589
В 8-м дотнете добавят очередной вид коллекций - frozen collections.
Все мы знаем, что read only collections могут меняться, и это нас не всегда устраивает. Поэтому используем immutable collections. Так вот, казалось бы - зачем нужны фрозен коллекции? Ведь есть же уже immutable collections.
Мало кто знает, но immutable collections - это урод и ублюдок, зачатый в пьяном угаре, которые абсолютно нахер не нужны. Почему спросите вы. А потому что immutable collections работают в разы, на порядок медленнее, чем их обычные мутабельные аналоги. Да ну не может быть такого. С чего бы это? Однако например метод Contains или ContainsKey из классов ImmutableDictionary и ImmutableHashSet работают в 3-5 раз медленнее, чем у таких же классов без всякой иммутабельности.
А как так могло получиться - спросите вы? Ведь он же гарантированно неизменяемый, его легче оптимизировать. Как же так? Неожиданно, правда. Вот вы такой адепт функциональщины, делаете всё иммутабельным, и получаете неожиданный сюрприз в виде просадки производительности.
Как так получилось, а главное - нахуя, никто не знает, кроме пары человек в микрософте, которым это зачем-то было нужно, и которые не рассказали своему менеджеру об особенности-изюменках их творения. Говорят, в иммутабельный словарь можно сделать Add и получить возвращаемым значением новый инстанс иммутабельного словаря, в котором уже будет то, что ты добавил. И вот чтобы это всё оптимизировать по памяти, новый инстанс не будет содержать полную копию оригинального инстанса, а будет шарить с ним данные, и вот эти хитрые "оптимизации" и дают просадку по перформансу. Казалось бы, не может же макакер быть настолько ебнутым, чтобы массово делать адд в иммутабельный словарь (наверное, так вообще никто не делает). Но тем не менее, имеем что имеем.
Теперь на радость всем джунам-вкатышам, чтобы их окончательно запутать и отвадить от языка, микрософтщики выкатывают фрозен коллекции. Они уже по настоящему иммутабельны. И они будут самыми быстрыми на чтение. Ну что, иммутабельность здорового человека против иммутабельности курильщика. Казалось бы, вот оно, то что надо. Но как оказалось - не совсем. Для фрозен коллекций создание инстанса будет чудовищно медленным. Вы же хотите оптимизированности на чтение - такова цена.
Через 1-2 года ждём Solid collections, Crystallized collections или скорее всего Fast frozen collections, которые наконец-то будут такими же как обычные коллекции по скорости на создание и на чтение, собственно именно то, самое простое решение, которое люди ждали сразу и иногда даже пилили свои обёртки под это дело.
А теперь, вопрос знатокам. Нахуя в шарпе в стандартой либо столько видов коллекций (и это я ещё не упомянул про конкаррент и всякие span'ы) и как объяснить это своим джунам?
471 2562589
В 8-м дотнете добавят очередной вид коллекций - frozen collections.
Все мы знаем, что read only collections могут меняться, и это нас не всегда устраивает. Поэтому используем immutable collections. Так вот, казалось бы - зачем нужны фрозен коллекции? Ведь есть же уже immutable collections.
Мало кто знает, но immutable collections - это урод и ублюдок, зачатый в пьяном угаре, которые абсолютно нахер не нужны. Почему спросите вы. А потому что immutable collections работают в разы, на порядок медленнее, чем их обычные мутабельные аналоги. Да ну не может быть такого. С чего бы это? Однако например метод Contains или ContainsKey из классов ImmutableDictionary и ImmutableHashSet работают в 3-5 раз медленнее, чем у таких же классов без всякой иммутабельности.
А как так могло получиться - спросите вы? Ведь он же гарантированно неизменяемый, его легче оптимизировать. Как же так? Неожиданно, правда. Вот вы такой адепт функциональщины, делаете всё иммутабельным, и получаете неожиданный сюрприз в виде просадки производительности.
Как так получилось, а главное - нахуя, никто не знает, кроме пары человек в микрософте, которым это зачем-то было нужно, и которые не рассказали своему менеджеру об особенности-изюменках их творения. Говорят, в иммутабельный словарь можно сделать Add и получить возвращаемым значением новый инстанс иммутабельного словаря, в котором уже будет то, что ты добавил. И вот чтобы это всё оптимизировать по памяти, новый инстанс не будет содержать полную копию оригинального инстанса, а будет шарить с ним данные, и вот эти хитрые "оптимизации" и дают просадку по перформансу. Казалось бы, не может же макакер быть настолько ебнутым, чтобы массово делать адд в иммутабельный словарь (наверное, так вообще никто не делает). Но тем не менее, имеем что имеем.
Теперь на радость всем джунам-вкатышам, чтобы их окончательно запутать и отвадить от языка, микрософтщики выкатывают фрозен коллекции. Они уже по настоящему иммутабельны. И они будут самыми быстрыми на чтение. Ну что, иммутабельность здорового человека против иммутабельности курильщика. Казалось бы, вот оно, то что надо. Но как оказалось - не совсем. Для фрозен коллекций создание инстанса будет чудовищно медленным. Вы же хотите оптимизированности на чтение - такова цена.
Через 1-2 года ждём Solid collections, Crystallized collections или скорее всего Fast frozen collections, которые наконец-то будут такими же как обычные коллекции по скорости на создание и на чтение, собственно именно то, самое простое решение, которое люди ждали сразу и иногда даже пилили свои обёртки под это дело.
А теперь, вопрос знатокам. Нахуя в шарпе в стандартой либо столько видов коллекций (и это я ещё не упомянул про конкаррент и всякие span'ы) и как объяснить это своим джунам?
472 2562596
>>562589
Иммутабельность решает несуществующую проблему.
473 2562598
>>562589

>Нахуя в шарпе в стандартой либо столько видов коллекций (и это я ещё не упомянул про конкаррент и всякие span'ы)


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

В голанге у нас вообще только слайсы и мапы есть, и ничего, живем.

мимо c# -> java -> golang господин
474 2562669
>>562589

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


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

иммутабельные и фрозен коллекции это разные вещи. абсолютно вообще разные

удивляет что их только щас придумали добавить через столько то летов
475 2562674
Как проверить, что я подключил все необходимые классы для внедрения зависимостей?
476 2562678
>>562674
об этом в рантайме узнаешь
477 2562708
>>562669

>иммутабельные и фрозен коллекции это разные вещи


Раскрой тему.
Плюсы, минусы тех и тех, зачем нужны, условия применения.
478 2562723
>>562708
фрозен коллекция
- гарантирует неизменность. ридонли коллекция не является неизменной. массив тоже не является.
- дает возможность оптимизаций. никакой лишней памяти (привет List, ну да можно array, но код инициализации будет дичь). оптимизированные коллекции - если у нас 10 элементов то зачем нам строить хештаблицу в фрозенсете? можно и списочком. А если у нас это строки, то зачем нам хештаблица опять же - можно и скилпист или простое что то. мы то точно знаем что расти не будет и что мы не потеряем в скорости, а в памяти выиграем точно.

иммутабле коллекции
с ними вообще все ясно. без них многопоток превращается в "лок на локе локает лока во все локи". и допустимо пожертвовать памятью, но сделать локфри
479 2562730
>>562708
и как ты понимаешь иммутаблы хороши для многопотока, но они сильно оверхедят для задачи "гарантируйте мне неизменность, мне нужно создать миллион неизменных листов, аааа что с памятью? я что гугл хром пишу что ли"
480 2562740
>>562730
при неизменности память зачастую делится между листами, особенно для древоподобных структур

листов много, но они по сути указывают на один и тот же участок, их не нужно копировать полностью при "изменении"

алсо сборщику мусора проще ретривить иммутабельные структуры

тут не всё так просто, няша
481 2562748
>>562740
ты это к чему сказал?
ты описал что в иммутабле коллекции при Add не копируется весь список, а создается новый, где просто ссылается и на старый

каким образом это решает проблему потребления памяти когда я создаю 2 РАЗНЫХ иммутабле списка?
в каком месте тут будет экономия памяти?
ответ: ни в каком ибо будут созданы 2 "списка", которые по факту гибриды двусвязного списка с енотом и на список похожи лишь контрактом.
482 2562749
>>562748
если у тебя два разных списка, то в любом случае нужна память для обоих, иммутабле ор нот

не понимаю твоей проблемы, приведи код?
image75 Кб, 1348x684
483 2562755
>>562723
>>562740
Ты не понял о чём я вообще говорю и на что жалуюсь.
Ты не понимаешь истинный смысл и задумку immutable collections, как они сейчас сделаны в дотнете.
Они не просто неизменяемые. Они оптимизированы под операции типа пикрил. И из-за этого кратно поигрывают в скорости операций чтения обычным мутабельным коллекциям. При том, что подобные операции всё равно будут жутко медленными, даже по сравнению с конкарент.
Именно поэтому и родились фрозен коллекции.
А зачем вообще нужна операция add для immutable collections, не говоря уже о том, чтобы ранее неё делать сложные оптимизации, гробящие перформанс базовых операций для 2^127-1/2^128 кейсов использования, для меня загадка и кроме глупости и недоработки объяснить это я не могу.
От тебя ответа я не услышал или не смог ввиду скудоумия понять твой ответ.
484 2562758
>>562749
да. я это и говорю. я не знаю к чему было сказано про "не нужно копировать"

список (фрозен или обычный, но размер задан)- просто кусок памяти нужного размера
иммутабле список - мимикрирует под список, а по факту внутри AVL tree

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

>Ты не понимаешь истинный смысл и задумку immutable collections, как они сейчас сделаны в дотнете.



>>562755

>скорости операций чтения обычным мутабельным коллекциям


конечно проигрывают. это очевидно.
вот только не все так радужно если сравнивать с обычным список с локами

>А зачем вообще нужна операция add для immutable collections


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

> даже по сравнению с конкарент.


покажешь мне конкарентлист. очень хотеть посмотреть.
485 2562788
>>562758

> GC вряд ли его больше любит


любит ещё как (но это конечно зависит от реализации GC в дотнете)

https://wiki.c2.com/?ImmutableObjectsAndGarbageCollection
486 2562793
>>562589
А ведь тотальная иммутабельность это функциональная фича с помощью которой пытались избавиться от грязного изменяемого состояния. Какбы втф? Что эта ебаная муть делает в сишарпе? Зачем она нужна? Ни одной реальной проблемы она не решает, а тормоза и сектантов пишущих говнокод порождает на ура.
487 2562803
>>562788
именно. иммутабле это ведь просто реализация, что вообще изначально отдельно была, а потом стала либой в составе дотнета. это не Span про который рантайм знает и особо любит.

там используется своя реализация Avl tree, где не видать ничего такого "GC люби меня".

>>562793

>Ни одной реальной проблемы она не решает


решает проблемы блокировок помогая не уходить в "епрст как сложна то"

писать многопоточный код в разы сложнее, чем однопоточный. А локфри многопоток - вообще атас.
свойства.JPG42 Кб, 1356x526
488 2562852
бляя ну а это то нахуя?

этож обычный методы? зачем блядь таку стандартизацию придумали?
чтобы p.Name.get не писать?

че это вообще дает?
489 2562858
>>562803
Многопоток лучше через разделяемое состояние делать. Т.е. каждый поток не лезет грязными руками в шаред ресурсы, а владеет своей копией. С ней он может что угодно без риска застрять в блокировке или испортить соседнему потоку стейт. Потом разделяемые ресурсы синхронизируются специально обученным родительским потоком. Надо заранее подумать какие данные разделять и где их собирать обратно. По мне это самый тру вей писать многопоток.
490 2562911
>>562758

>дядя анон видимо никогда не писал многопоток.


После прочтения мне в начале показалось, что я начал понимать твою логику и логику создателей этих immutable collections. Хотя и осталось возмущение тем, что из доков это нихуя не понятно, что вся эту муть нужна исключительно для многопотока (или может я слепошарый).
Однако я не понимаю всё равно, как с этим работать в многопотоке без локов. Ну допустим у тебя есть родительская коллекция immudict0. Ты передаёшь её в несколько потоков для добавления каких-то данных, допустим, через Parallel.For. И каждый поток что-то добавляет и получает новый инстанс immudictN. И что он дальше со своим инстансом делает? Как их потом слить воедино? Если бы каждый поток срал в ConcurrentDictionary, у тебя всегда был бы один единственный и всегда свежий инстанс словаря. А вот в случае с иммутабл я паттерн всё равно нихуя не улавливаю.
491 2562915
>>562852

>бляя ну а это то нахуя?


>че это вообще дает?


1. Удобно
2. Красиво
3. Лаконично
4. Иногда очень хочется не срать геттерами и сеттерами, а просто написать поле. Это не тру ООП, но шарп хотя бы даёт очень короткий путь сделать быстро, но при этом потом прикрутить логику если что без каких бы то ни было изменений.

>p.Name.get


Что это за говно?
492 2562917
>>562589
Не пользуюсь иммутабл. Я умею в такую вещь как делать код нормально, а не пытаться добавлять элементы в ИММУТАБЕЛЬНЫЙ объект.

Ты блять дурак или как?
493 2562919
>>562674
Писать тесты или ловить в ебало ошибки в реальном времени
494 2562921
>>562915
p.Name.get()
p.Name.set()
да просто абстрактная реализация обычными методами. при такой записи я понимаю. что это инкапсулированая переменная .

а если просто p.Name написать. то че это нахуй? поле, или гет ?

помоему это не лаконичтно это ублюдство.
43.JPG25 Кб, 1391x273
495 2562923
ахахаха

ну норм че. а как сюда обяъвление set впихнуть? или init?
496 2562924
сократили блядь. чето кстати метанит как то хуй пойми как структурирован.

я думал всякие подобные контрукции в конце будут рассматриваться как неважные. а ты смотриж. уже в третьей главе.

все действительно этим пользуются в энтерпрайзе?
497 2562925
M e T a N i T
498 2562926
>>562915

>Это не тру ООП,



а почему не тру то? обращение к полю есть, по ссылке, с внутренним обработчиком. че еще надо?
499 2562928
>>562925
да я уж начал, не бросать же.
500 2562931
>>562852
При этом ещё name и Name занимают память. Если делали бы сахарок, то надо было сделать доступ к Name сразу из методов, а не использовать дополнительную переменную.
501 2562939
>>562931
чето пока весь этот сахарок. чес слово воняет говном.
502 2562940
>>562931
Как же ты заебал.
503 2562968
ладно понял. set get это нужно типа на будущее.

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

только это все равно нахуй говнокод.
504 2562972
>>562921

>p.Name.get()


А что такое Name? Какой у неё тип? GetterSetter<T>? Это вообще из какого языка пример? В большинстве языков можно написать Get_name(), а твою парашу я вообще нигде не видел.

>при такой записи я понимаю. что это инкапсулированая переменная .


>а если просто p.Name написать. то че это нахуй? поле, или гет ?


Во-первых, ты в блокноте кодируешь? В IDE это тоже легко понять (по цвету, например, у пропертей и полей он разный). Можно кастомно настроить сколь угодно кислотные цвета, чтобы уж точно не перепутать.
Во-вторых, это и есть фишка, ты не должен это понимать. Ты, как клиент класса, должен относиться к этому как к полеподобной сущности. Зачем тебе знать, поле это или пропертя? Как правило, ты всегда будешь иметь дело с пропертями. В тех же винформах у объектов сотни свойств. Если на каждое свойство писать ещё геттер и сеттер, то вместо сотни свойств будет двести методов.
В третьих, зачастую тебе достаточно написать public string Name {get; set;} и всё. Кратко, быстро. Если надо, потом добавишь логику. Чтобы написать тоже самое через private string _name; public string Get_name(); public void Set_name(string n); придётся потратить только на печатание в 5-7 раз больше времени (никаких автогенераторов, IDE ведь у тебя нет).

>p.Name.get()


Ты видимо любишь много печатать и любишь скобочки. Может тебе попробовать Ada или Lisp.

>помоему это не лаконичтно это ублюдство.


А как насчёт индексаторов? Квадратные скобки какие-то? Почему нельзя нормально написать myArray.GetItemAt(i) или myArray.SetItemAt(i, value)?

А вообще, проперти - это отличная фишка языка, которой мне во многих других языках не хватает.
К шарпу можно очень по многим вопросам предъявить претензии, но уж точно не по
505 2562973
>>562931
опять нужно пояснять как в прошлых тредах, что name и Name не занимают лишнюю память по сравнению с жавой (и чем угодно)?

Потому что компилятор тупо переписывает их В ПОЛНЫЙ ЭКВИВАЛЕНТ тому что в жаве ты руками пишешь.
doubleMemory.jpg93 Кб, 1150x436
506 2562985
>>562973
Я проверял, что в IL-коде создаётся именно два поля для переменной name и для свойства Name.
507 2562988
>>562972

>А что такое Name? Какой у неё тип? GetterSetter<T>? Это вообще из какого языка пример? В большинстве языков можно написать Get_name(), а твою парашу я вообще нигде не видел.



дада я ошибся тут в записи. p.Name_get() , p.Name_set() естесно.
508 2562992
>>562972

>А как насчёт индексаторов? Квадратные скобки какие-то? Почему нельзя нормально написать myArray.GetItemAt(i) или myArray.SetItemAt(i, value)?



а тут то че? все впорядке. вызываешь метод объекта.
то что массив создается скобками это особенность языка. тут претензий нет.
509 2562995
>>562972

>Ты, как клиент класса, должен относиться к этому как к полеподобной сущности.



тогда это должно быть реализована через интерфейс а не в функциональной части .
510 2562996
>>562985
так ты на скрине и создал 2 поля
поле name не имеет никакого отношения к свойству Name
511 2563000
>>562972
ага и еще такая штука с этими черными ящиками. я значит обращаюсь к полю. а оно мне на ровном месте начинает поганить результат. я начинаю проверять свою логику, а все потому что какой то обмудок под поле зашил еще один метод.
singleMemory.jpg89 Кб, 1131x420
512 2563002
>>562996
Да, но если я использую нормальный подход к геттерам и сеттерам, то лишняя память не выделяется. Да и код выглядит в разы понятнее.
513 2563003
кароче, надо хотябы как то помечать что ты к методу обращаешься. чтобы хотябы потестировать.
.png54 Кб, 1473x375
514 2563013
>>562985
Ой, что это? Куда делось то недоступное свойство, про которое ты уже какой тред кукарекаешь?
515 2563015
>>563002
еще раз
компилятор напишет ТАКОЙ ЖЕ КОД что ты на этом скрине руками.
516 2563043
>>562911
в этом примере нет смысла. Сам смысл Parallel.For говорит о том, что время добавления в список хз. И тут место для ConcurrentBag
или вообще PLINQ - пусть он с этим разбирается.

Кстати, те же Concurrent коллекции не являются локфри - в том же ConcurrentDictionary хранение разбито на бакетов и каждый бакет имеет свою блокировку. То есть блокировок меньше, но они все же есть. К тому же есть операции которые требуют полной блокировки.

привычный тебе пример - ну вот анон тут писал свой event manager, где кладет понятно подписчиков в список
и вот пришло время вызывать publish и он обернул все в лок (и пусть весь мир подождет)
Что делать? ок. можем локнуть и скопировать подписчиков. Тут уже лок и копирование. Миллион событий - миллион локов и копирований.

Поэтому в шарпе события сделаны через иммутабельность делегатов. Весь сыр бор только при подписке, а при вызове ничего не копируется.
Там правда уже свои грабли в многопотоке но суть не меняется - локов при вызове нет.

Многое можно сделать через лок. все дело в цене операции что под локом.

Возьмем подобный абстрактный пример. у тебя миллион подписчиков уже в списке и тебе нужно итерировать по ним чуть ли не постоянно (ты криптобиржа и шлешь цены ))))
и доступ по индексу для каких то нужд

обычный список сразу мимо - локи могут дорого стоить, риск дедлока. А итерироваться то вообще как? только что вот описал проблему итерирования под локом
ну можно обернуть в ReadWriteLock - но все равно это полный лок на запись.
ConcurrentDictionary? так он по индексу не умеет, жрет лишнее место на бакеты (которое не очищается кстати), имеет полную блокировку на тот же Count например.
LinkedList тоже не умеет по индексу и

можно конечно мудрить "нам не нужен доступ по индексу и Count мы сами посчитаем"
а можно просто взять ImmutableList - доступ и итерирование никто не сдерживает, count дешевый и считать отдельно не нужно. Операция добавления и удаления тоже дешевые.
Время доступа к элементу...а че? типа ConcurrentDictionary быстрее что ли? там внутри как бы локи есть, если идет активная запись, то чтение будет в жо

Конечно можно запилить и своего франкенштейна, но это неблагодарное дело
вот пример https://habr.com/ru/post/240891/
чел слепил такой велик ибо другие были тормоза. и при этом в статье реализация имеет ошибку. в самом итоговом коде на гитхабе все верно, но в статье неправильно
настолько это сложно писать локфри на низком уровне, что лучше лишний раз не лезть.
516 2563043
>>562911
в этом примере нет смысла. Сам смысл Parallel.For говорит о том, что время добавления в список хз. И тут место для ConcurrentBag
или вообще PLINQ - пусть он с этим разбирается.

Кстати, те же Concurrent коллекции не являются локфри - в том же ConcurrentDictionary хранение разбито на бакетов и каждый бакет имеет свою блокировку. То есть блокировок меньше, но они все же есть. К тому же есть операции которые требуют полной блокировки.

привычный тебе пример - ну вот анон тут писал свой event manager, где кладет понятно подписчиков в список
и вот пришло время вызывать publish и он обернул все в лок (и пусть весь мир подождет)
Что делать? ок. можем локнуть и скопировать подписчиков. Тут уже лок и копирование. Миллион событий - миллион локов и копирований.

Поэтому в шарпе события сделаны через иммутабельность делегатов. Весь сыр бор только при подписке, а при вызове ничего не копируется.
Там правда уже свои грабли в многопотоке но суть не меняется - локов при вызове нет.

Многое можно сделать через лок. все дело в цене операции что под локом.

Возьмем подобный абстрактный пример. у тебя миллион подписчиков уже в списке и тебе нужно итерировать по ним чуть ли не постоянно (ты криптобиржа и шлешь цены ))))
и доступ по индексу для каких то нужд

обычный список сразу мимо - локи могут дорого стоить, риск дедлока. А итерироваться то вообще как? только что вот описал проблему итерирования под локом
ну можно обернуть в ReadWriteLock - но все равно это полный лок на запись.
ConcurrentDictionary? так он по индексу не умеет, жрет лишнее место на бакеты (которое не очищается кстати), имеет полную блокировку на тот же Count например.
LinkedList тоже не умеет по индексу и

можно конечно мудрить "нам не нужен доступ по индексу и Count мы сами посчитаем"
а можно просто взять ImmutableList - доступ и итерирование никто не сдерживает, count дешевый и считать отдельно не нужно. Операция добавления и удаления тоже дешевые.
Время доступа к элементу...а че? типа ConcurrentDictionary быстрее что ли? там внутри как бы локи есть, если идет активная запись, то чтение будет в жо

Конечно можно запилить и своего франкенштейна, но это неблагодарное дело
вот пример https://habr.com/ru/post/240891/
чел слепил такой велик ибо другие были тормоза. и при этом в статье реализация имеет ошибку. в самом итоговом коде на гитхабе все верно, но в статье неправильно
настолько это сложно писать локфри на низком уровне, что лучше лишний раз не лезть.
image.png21 Кб, 661x222
517 2563044
>>562911
Нужно в потоках использовать Interlocked.CompareExchange для обновления исходной коллекции. Типа так
519 2563066
>>562985
Какие же джависты дегенераты...
520 2563092
>>563066
Пиздец просто.
521 2563196
Вопрос о моделях в ASP.NET Core:

Хорошая ли практика мутировать модели приходящие через POST запрос? Или надо создавать новый объект и передавать во вьюху уже его? Поясните

чатгпт считает, что лучше создавать новую
522 2563200
>>562921

>а если просто p.Name написать. то че это нахуй?


100% это проперти
_name private field
name public/local field
Name property
name() method
523 2563203
>>562985
Потому что ты мудак. Компилятор умнее тебя и считает что Name относится к name.

При компиляции этот код создаст тебе поле и два метода доступа у нему. Тебе блять слева прямо говорят удалить не испольуземемое говно.

В шарпе нет ситуации когда поле класса и проперти имеют одно имя, так не пишут
524 2563215
>>562921

>при такой записи я понимаю. что это инкапсулированая переменная


в этом и есть так то суть инкапсуляции, что снаружи тебе и не нужно ничего понимать как оно внутри и есть ли вообще это "внутри".
525 2563230
>>563200

>name() method


Студия 2022 ругается на методы с маленькой буквы которые сама же и сгенерила
526 2563234
>>562921

>при такой записи я понимаю. что это инкапсулированая переменная


Инкапсуляция - сокрытие деталей реализации от конечного пользователя. Создание абстракции.

object.Name Её пример в чистом виде. Если поле нельзя руками менять тебе скажут об этом красной чертой и ошибкой доступа. А как получается значение имя ты не знаешь, может просто дефолт свойство, а может быть там логика на 20 строк и композиция 5 полей аля "НалоговыйОтчёт_01.12.2022_31.12.2022_Стандарт3_ТребуетПроверки"
image.png64 Кб, 931x1056
527 2563275
>>563196
выглядит так - совсем простая формочка

из того что я нашёл, похоже что модели должны быть иммутабельными
https://stackoverflow.com/questions/70469381/does-it-make-sense-to-use-init-only-setters-on-request-models-in-an-asp-net-core
528 2563293
>>563196
Он тожы мудак.

В запросе тебе приходит RequestDTO.
На его основе ты создаешь сущность.
Делаешь с ней какую-нибудь хуйню.
И уже на её основе (или результата той хуни, что ты с ней сделал), создаешь ResponseDTO.
И вот его уже и возвращаешь.
529 2563305
>>563293
это для рест апишки пойдёт

у меня MVC ок
530 2563372
Если честно, то я так и не понял, зачем нужен DelegatingHandler
Может кто пояснить?
531 2563381
>>563372
Кому нужен?
532 2563387
>>563381
Зачем нужен?
533 2563401
>>551587 (OP)
Приветы в треды, что посоветуете из расширений VS 2022 для ускорения написания кода.
- видел дополнение к ide, которое ищет на гите или стаковерфлов части кода с автокомплитом
- нейронки разные которые тебе подсказывают, как лучше написать и т.д.

решарпер и т.д. не советуйте, денех нет, вы держитесь
534 2563404
>>563401
забыл добавить, я все это не нашел для vs
это что такое?
535 2563408
>>563200
а ну это мы добавляем уже правописание. тут тогда еще надо тип данных указывать надо.
а без этого всего ты хуй разберешь глазами
536 2563411
>>563215

>в этом и есть так то суть инкапсуляции, что снаружи тебе и не нужно ничего понимать как оно внутри и есть ли вообще это "внутри".



мне плевать че там у кого свербит. если код плохо читается и ведет к ошибкам я пишу функционально.

лучше интерфейсами обмазаться чем ухудшать читаемость.
537 2563413
если все так дрочат на инкапсуляцию че тогда тут джаваскрипт засираете?

вот где ооп. ложкой наворачивай. аж стоит
538 2563414
>>563411
Шизло, тебе и фигурные скобочки с новой строки ухудшают читаемость.
539 2563415
>>563414
наоборот с новой строчки и надо ставить. с четкой табуляцией чтоб красиво было.
540 2563417
>>563401
>>563404
Почему на меня не обращают внимание?
https://plugins.jetbrains.com/plugin/9513-stackoverflow есть такой же для мы, но нет вставки "первый правильный"

Но я такой видел, он точно есть.
541 2563419
>>563413
На инкапсуляцию не дрочат. Дрочат на няшный синтаксис шарпика с сахаром, которые ограниченные джавадебилы не могут осознать.
542 2563445
Рейтаните говнокод. Сколько из 10? Вы бы обосрались такой поддерживать?
543 2563451
>>563445

>2022


>вин формы


>все в коде формы



Я бы тебя нахуй послал 0/10
544 2563453
545 2563465
>>563451
А чо такова-то? В лаба1 все запихнуть в форму это нормуль.
546 2563472
>>563465
Не нормально. Сразу учись делать нормально, ты же срать учился сразу хорошо, а не в штаны? вообще не импользуй винформы, это мёртвая технология.
547 2563521
>>563387
чтобы было. ведь если его нет...то его ж нет. а если есть, то всегда может пригодиться.

вообще назначение этого очевидно даже из его названия
548 2563532
>>563521
Сказал как господь.
549 2563579
>>563521
да стоит только добавить что нахуй вообще делегаты не нужны.

если ты исподьзуешь делегаты значит ты чето наговнокодил.
550 2563583
>>563579
А чо нужно? Ф у Н к Ц и О н А л Ь н Ы е И н Т е Р ф Е й С ы ? ? ? ) ) 0
551 2563587
>>563579
товарищ не отличает делегаты от DelegatingHandler?
ну а делегаты не нужны только школьникам которые первый раз за шарп берутся
552 2563588
>>563583
ну давай покажи мне где может понадобиться делегат?

функция это твоя мать . люби ее.
553 2563590
>>563587
ни то ни другое нахуй не нужно. если ты будешь работая с моим кодом выебываться делегатами я техуй сломаю. у себя делай че хочешь.
554 2563595
Эх, вот бы в джаву добавили делегаты.
555 2563596
>>563590
события не используешь?
LINQ не используешь?
CancellationTokenы не используешь?
такси не используешь?

во всем этом юзаются делегаты

так что ты это....трусы то надень.
556 2563616
>>563596
ладно уел.
557 2563684
Привет, шарпаны.

В дот нете нет обратной совместимости рантаймов чтоли? Пытаюсь запустить проект из 2020 года и уже поставил кучу версий этого говна рантаймного, а ему похую вообще.
Че блять он хочет от меня?
558 2563691
>>563684
а все, запустилось после установки dotnet-runtime-3.0.3-win-x64
559 2563730
>>563684
В шарпе надо постоянно переписывать программы под новые версии.
560 2563737
>>563730
Джавист, спок.
561 2563833
>>563472
Это мертвая технология еще 5 итераций ASP переживет.
562 2563849
>>563472
Десктоп вообще мёртвая технология, так что какая разница, что из мёртвых разновидностей использовать, можно выбирать то, что больше нравится. Мне больше нравятся винформы, например.
563 2563870
>>563849
разница в количестве портяночного кода. огромная разница.
564 2563882
>>563445
Прямо илюстрация как ведение одной абстракции с четыремя чахлыми методами дико упрощает код. А челики которые думают в терминах контейнеров и функции потеряные.
565 2563908
>>563870
Да, в винформах его меньше.
566 2563946
Короче пришел к выводу, что все-таки фронтенд фреймворк точно надо учить. Несколько дней порылся в инете, вроде бы получается, что в энтерпрайзе больше используется Angular, вакансий .Net+Angular тоже больше, но смущает один момент - много проектов переписываются с ангуляра на реакт.
Что советуете, ангуляр вообще используется в новых проектах или на нем только легаси? Мне нравится TS и ООП в Ангуляре, что-то к реакт вообще душа не лежит. Другие варианты не рассматриваю.
567 2563970
>>563946
Получается всё-таки сишарперов заставляют становится фуллстеками? Если хочешь чистый бэкенд, то это только джава?
568 2563984
>>563908

>Да, в винформах его меньше.


меньше нормального кода, которого не видать среди портянок ручного управления всем гуи.
569 2564028
>>563730

>В шарпе надо постоянно переписывать программы под новые версии


Вот это збс. Заставляет говноедов поддерживать проекты и актуализация проводить. Сейчас наши джависты ебутся пытаясь перевести проект на самые последние версии вообще всего прыгая через 6 лет назад вбитые зависимости.

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

И да в шарпе дохуя чего совместимо, а сейчас уже Майкрософт прямо сказали что надо держать актуальность не меньше -2 от текущего номера
570 2564031
>>563946
Blazor
571 2564048
>>563984

>ручного управления всем гуи


Ты так говоришь как-будто он сам собой где-то умеет управлять. Привязка любых моделей к гую это ад портянок.
572 2564065
>>564048

>он сам собой где-то умеет управлять


да. именно так

>Привязка любых моделей к гую это ад портянок


декларативных портянок, которые
а) сильно короче ручной херни
б) используют правильный flow (хз как это сформулировать), а не инвертированный.

поясню подробнее

возьмем подход MVVM/MVU
там происходит наблюдение за стейтом или биндинг на вьюмодели (в общем то это одно и то же, только по разным углом). То есть меняется стейт - и все заинтересованные контролы меняют в себе все как надо. Биндинг позволяет это короче описать, вообще без строчки кода.
Новые элементы не заставляют ничего переписывать, ведь каждый контрол он "я и стейт".

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

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

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

ps: в таком чокнутом стиле можно и на WPF писать и если что использовать свои шаблоны. Вопрос - нахера тогда винформс нужен.
573 2564079
Стоит ли учиться по книге ASP NET Core MVC 2 Адам Фримен? Проблема, что она 2019 и уже устарела, а более новой нет в свободном доступе. Из преимуществ там разрабатывается реальное приложение, что позволяет понять как пишутся профессиональные веб-приложения, а не просто учебные примеры как в других книгах.
https://youtu.be/BG4nnMR7uTs
574 2564143
>>564065
По скрину выше.

У меня чистая модель Пазла. Она ничего не знает про свое отображение. Для нее отобржанием ялвялется кнопка винформы и она же хранит у себя модель(владеет пазлом, да). Весь остальной код(NewGame, MovePuzzle, Swap) работает как View Presenter - он знает что модель меняется и за ней надо обновить View, отсюда появляется все кнопкопетушение.

Смысл игры вот в чем: как не декларируй, как не обмазывайся наблюдателями и отдельными классами VP все равно получится тот же код связи Пазла и Кнопки, но через три абстракции передачи сообщений от модели к виду. Если не предполагается менять вид, то смылса в излишних телодвижениях нет - просто хреначим один презентер прямо в код формы где V намертво прибит к М и радуемся жизни.

>нахера тогда винформс нужен.


ВинФормы просто UI, под капотом можно как угодно писать.

Попробуй написать свой вариант если хочешь.
Вот ссылка: https://rosettacode.org/wiki/15_puzzle_game
575 2564170
>>564143

>У меня чистая модель Пазла...работает как View Presente


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

>но через три абстракции передачи сообщений от модели к виду.


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

>Если не предполагается менять вид, то смылса в излишних телодвижениях нет


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

>ВинФормы просто UI, под капотом можно как угодно писать.


ага. путем пердолинга в OnPaint

>Попробуй написать свой вариант если хочешь


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

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

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

ps: сам я старой школы и для меня не норм когда для простой вещи берется что-то монструозное и потом это все весит дохера и еле работает. Но даже мелочь я сразу пишу чисто. Уже не раз попадался на "да нафиг оно надо, оно написал и забыл", а потом приходилось переписывать.
576 2564282
>>564028
То есть C# 9.0 сейчас держать это нормально?
577 2564283
>>563970
На джаве тоже половина вакансий требует знаний фронта. Сейчас везде такая тенденция, но шансы найти почти чистый бекенд есть на любом стеке, даже на пхп.
578 2564295
>>564282
Держи хоть 7.0 просто собирай на старой студии. В чем твоя проблема перейти на новую версию?

Версии синтаксиса и компилятора сильно завязаны на версии дотНЕТ и студии. Но тебе никто на мешает скачать и поставить параллельно 2022 2019 студию для пердолинга старых проектов. Но лучше их обновить.

Если тебе страшно обновить проект, то ты написал кусок говна. Я меняю версии и запускаю полный прогон тестов и получаю результат пройдены все тесты, автотесты завершены
2.png48 Кб, 1061x446
579 2564328
Какой же я тупой. Только после 25 минут попыток впихнуть невпихуемое начал что-то подозревать. Оказывается головоломка не всегда решаема. Сейчас попробую сделать альтернативную раскладку для победы.
580 2564331
>>564328
Не генерируй числа тупо в рандомных местах. Инициализируй сразу правильную раскладку и дальше делай рандомные перемещения, как если бы это делалось вручную.
Хотя вряд ли будет легко изменить поведение с портянкой из запрограммированных мышкой button13_Click
581 2564338
>>564328
А прикинь если бы ты с кубика-рубика начал.
3.png29 Кб, 898x441
582 2564342
>>564331
Спохуха, я уже сделол и даже работает. Самый экшон это быстро понять что раскладка обратная.

>>564338
Кубик Рубика уровень синьора. Мне такое не светит, лел.
583 2564344
>>564342

> int GridSize


Как задать неквадратный грид? И что будет, если BlockCount не равно GridSize * GridSize?
584 2564349
>>564344
Меня это не тревожи чесно говоря. Константы не меняются.

Залил изменения: https://rosettacode.org/wiki/15_puzzle_game#C#
Пацаны, обсирайте! Алсо, я выкинул линк.
586 2564362
РЕПОРТЬТЕ ДЖАВИСТА, ПЕРЕКАТИВШЕГО ТРЕД!!!
587 2564433
>>564360
Перекат без тега. Сидим в старом.
588 2564507
>>564028
Выглядит наоборот, как-будто говноеды из майкрософт экономят на поддержке своего говнокода sdk иruntime и выписывают себе премии за регулярность релизов.
Просто перенесенная с Винды схема
589 2564509
>>564507
Поддержка старых версий(старше 5 лет) это ебаный кал который тормозит развитие и делает из С++ кусок говна, зато обратная совместимость.

Обратная совместимость это зло и якорь.
590 2564521
>>564079
Стоит, потом просто почитаешь доки и подтянешь свою базу под актуальную версию.
dotnet.microsoft.png89 Кб, 1355x679
591 2564527
>>564509

>>старше 5 лет


Если бы. Меньше 2 лет уже
592 2564530
>>564527
Почему так всё быстро? Нет, чтобы каждую версию выпускать раз в 3 года, потом ещё поддержку лет 5.
593 2564532
>>564509
Школьник, ты? Нормальные люди хотят использовать новые фичи, не занимаясь при это переписыванием старого кода.
594 2564551
>>564532
ну вообще касаемо рантайма и самого фреймворка переписывать не приходится. Максимум версию поднять и перекомпилить. Или вообще без этого.

А вот асп.нет страдает "сделаем все по новому"
595 2564622
А вам не кажется, что валидация модели - это нарушение паттерна MVC, потому что она переносит часть View в Model?
К примеру, мы можем добавить аннотацию:
[Required(ErrorMessage = "Error! Enter data in field!")]
где сообщение об ошибке явно относится к представлению.
596 2564645
>>564622
А зачем ты это вешаешь на модели?
597 2564696
>>564645
Так меня научили
598 2564736
>>564696
тогда чего ты споришь с учителем

на самом деле аттрибуты не относятся к логике, ведь это всего лишь метки при этом из общей сборки.Но вообще не гуд так вот мапить на модели, а лучше иметь для этого особые DTO объекты.
1 они отвязывают структуру модели от визуальной части
2 могут быть заполнены частично и это норма
3 могут переиспользоваться
4 могут иметь на себе аттрибуты биндинга из-запроса
5 будет больше котов в мире.
599 2564782
Планирую юзать VScode для шарпа, потому что VS лагает. Что думаете? Для обучения пойдет?

Студия подлагивает слегонца, хотя после 10 минут работы вроде пропёрживается и почти не чувствуется лагов, но все равно бывают фризы. Так что думаю код буду писать в легковесной VS code, а если че надо будет посерьёзней, то буду запускать вашу тяжеловесную иде.
600 2564787
>>564782
Ебаться когда будешь бабу дилдаком еби, а когда уже дело сам.

Купи нормальный ссд и перестанет лагать. Вообще ты конечно не ведре работаешь полном
601 2564802
>>564782
В VSCode тормозить будешь уже ты. Кто-то же должен делать то, что студия делает за тебя.
602 2564811
>>564787
Пиздец, это ведро стоило 65к в 2018, это был средний компьютер. Сейчас оказывается это ведро охуеть. Может проградизды будут норм работать, чтоб ебучая иде не весила 50гб и чтоб не лагала на норм проце 4 ядра i5 2018 года????? У меня ведь еще и 16 гигов оперативы, это так-то дохуища просто я считаю.

>>564802
Ну так сначала надо понять вобще, че куда и как, смысл мне от помощи иде, если я даже понять эту помощь не способен.

Ладно кароче понятно, придется еще 2 месяца на толоке копить на новый "среднекомп", который опять через 4 года будет ведром.
603 2564814
Я щяс вобще уйду обратно в PHP-тред и всё, больше вы меня не увидите в своём ультратоп-языке!!!
604 2564819
>>564811
Скоро вин10 закроют и надо будет ставить 11, а может и 12 выйдет с более высокими системками, а без них не будет новых дотнетов. Я так вынужден был с вин8 перейти на вин10 тупо ради новых дотнетов. Так что требования к железу для программирования на сишарпе будут расти.
605 2564821
>>564811
Я пишу на шарпе в виме, мне норм. Автодоролнения нет, анализа кода нет.
606 2564828
>>564821
Вот видите, человек аж на виме пишет! Значит вскода достаточно. Всем спасибо за советы и ответы.
607 2564845
>>564782

>но все равно бывают фризы.


1. Поставь нормальный объемный SSD, вместо HDD.
2. Сделай полностью установку на SSD (сама IDE, хранилище пакетов и т.д.)
3. Проекты с которыми работаешь так же храни на SSD
4. В студии отключи все лишние нагрузки, вроде анализаторов кода, покрытие, лишние codelens и т.д. (гугл "повышение производительности visual studio" в помощь)
5. Отключай ненужные расширения. Часто они могут конфликтовать друг с другом. Так же не держи постоянно включенными те, которые тебе не нужны. Например какйо-нибудь спеллчекер можно включать только перед финальным коммитом.
608 2564870
>>564814
И жавистов с собой забери
609 2564885
>>564870
Как только вы отзовёте свою лахту из жаботрнда.
610 2564891
>>564885
У нее там миссия спасения
А тут жависты показывают свою близорукость
611 2564971
Меня сейчас трясти начнёт с этих конченых индусов. Хули в F# теперь сломаны папки?
Берём создаём чистый проект, создаём папку "pizda" и файл "zalupa.fs" в ней, пишем какой-то код, делаем публичным. Пока всё заебись - из Program.fs, лежащего рядом с файлом проекта, залупа доступна, код компилируется. А теперь делаем магию - кидаем прям мышкой в вижуал студии файл Program.fs в папку пизда и обратно. Имеем файл проекта идентичен тому что был до этого, все файлы лежат на тех же местах. Но залупа уже не доступна! Код не компилируется! Даже из консоли без студии dotnet build не работает после перемещения файлов.
Как индусы так сделали? Файлы проекта не менялись, а код больше не компилируется. Я бы ещё понял если это студия как обычно ебала мозг, но из консольки тоже хуй.
Я даже пробовал бэкапить всю папку проекта, но после того как файл перемещается, код уже не собирается. Хотя в файле проекта в ItemGroups всё верно прописано.
И ещё wildcards не работают, даже пример из документации не будет работать с F#. А если у меня нет студии и я пишу руками файл проекта, то с вложенными папками уже сразу нихуя не работает.
Вот так и пользуйся софтом ундусов, качество продуктов просто 10/10. Алсо, в сишарпе этого говна похоже нет.
612 2565100
>>564971
Борщехлёбы должны страдать.
613 2565104
>>564971

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


Я х.з. какая структура проекта в F#, но точно ли ничего не менялось?
Прямо вот если весь каталог под контроль версий взять, а потом проделать твои манипуляции и посмотреть действительно ли нет изменений. Может в каком-нибудь метафайле что и поменяется или новый файл добавится.
614 2565135
>>564811

>Пиздец, это ведро стоило 65к в 2018, это был средний компьютер. Сейчас оказывается это ведро охуеть. Может проградизды будут норм работать, чтоб ебучая иде не весила 50гб и чтоб не лагала на норм проце 4 ядра i5 2018 года????? У меня ведь еще и 16 гигов оперативы, это так-то дохуища просто я считаю


Диск у тебя какой ебалай. ОЗУ твоё в хуй не нужно, важно мощный ссд и тогда у тебя все летать будет. Студия активно индексирует файлы и постоянно их дрочит сканом в фоне чтобы тебе дебилу аналитику выдать и стат анализ кода.

И да комп за 85к это просто комп средней руки, ничего особого
615 2565163
>>565135
Таки да, учитывая нейросеточки без геймерского компа уже пограмировать не получится.
Не удивлюсь если потом запихнут прямо в студиую асистента, который не только жесткий задрочит, но и видюху спалит.
616 2565325
>>565163
Получается выгоднее кодить на нормальных языках: PHP, Ruby, Python, Lua. Впрочем, любому адекватному человеку это и так понятно, просто до шарпистов не сразу доходит.
617 2565361
>>565325
Ты абсолютно прав. Ты просто нас уничтожил. Завтра же пойдем записываться на курсы нормальных языков.
618 2565388
>>565163
Таки просто никому в голову не приходит что в наше время кто-то собрал себе для работы пека на 16Гб ОЗУ и без м2 ссд на борту. У него из нормального железа только проц стоит, но на проц сейчас уже похуй хватит любого если не нужно собирать все за наносекунды.

Мне вот для нейронок не хватает 3080 и 32гб ОЗУ, иногда получаю вылеты из-за того что не рассчитал потребление памяти и получил по ебалу
619 2565390
>>565361
Курсы не надо. Берешь "Dive in Python/Ruby/PHP" и вкатываешься за 2 недели максимум. Потом фрейворк один учишь 1-2 недели, потом 1 неделю на вротенд, потом 1 неделю на SQL и еще пару дней на ORM. Ну и всё по сути, всякие дизайн паттерны джунам не надо знать, поэтому просто пишешь микроприложуху крутецкую, выставляешь на обозрение, делаешь резюме и откликаешься на все доступные вакансии с сопроводительным. И ждем.

Что мы имели бы в шарпе? 2 месяца дрочить синтаксис, 3-5 месяцев asp учить, еще желательно WPF осилить для пущего эффекта. Короче месяцев 10 минимум займет.

Теперь сравни 1 месяц vs 10 месяцев. Кто захочет тратить свою жизнь на какой-то более "функциональный и уникальный и вобще крутой" язык, если можно хуяк-хуяк и всё готово???
620 2565434
Как теперь заставить работать диспетчер пакетов Bower?
621 2565461
>>565390

> 3-5 месяцев asp учить


Хуле там учить столько. Асп учится буквально за неделю.
622 2565464
>>565461
Читать талмуд на 1000 страниц.
623 2565466
>>565464

> Читать талмуд на 1000 страниц.


Я и говорю
>>565461

> буквально за неделю

624 2565471
>>565466
Сколько месяцев перед этим прокачивать скорочтение???
625 2565472
>>565390
какие у тебя фантастические сроки.
такое возможно только если уже есть опыт подобного на других языках.

а пхп вообще выучить невозможно ))))
чудный язык, где можешь быть про, но все равно без доки никуда из-за непродуманности.
626 2565480
>>565471
Я тут смотрел видос Соера, где он хвастается, что читает талмуды за один вечер:
https://youtu.be/k0eDZVmbjUo

Но мне кажется, это не вариант для ученика, потому что ему надо разобрать материал подробно, потому что его спросят на собесе. А он читает для общего ознакомления, либо уже знаком с материалом.
627 2565486
>>565480
Он прав.

Ну разве что ошибается про художественную. Там конечно нет кросс-понимания смысла вы раньше это уже видели" , но скорость чтения достигает 3-10к слов в минуту из-за того что и не нужно разбираться в прочитанном (чай не код же).

Потому при настоящем скорочтении художественная читается быстрей
А техническая быстро сканируется в поисках недостающих элементов пазла общей картины че как устроено
628 2565491
>>563946
Бамп вопросу. Будет ли Ангуляр жить?
629 2565497
>>565491
Ангуляр давно мёртв, новых проектов на нём никто не пишет, только поддержка легаси.
630 2565631
>>565471
Нисколько там первые 100 страниц вступление и основы языка, ещё 100 в конце это всякие справки.
В итоге там 800 страниц темы которые неспеша читаются за 2-3 недели
631 2565701
Можно как-то заставить интерфейс не доебываться до типа реализуемого свойства?
Я хочу заставить класс реализовывать свойство нужного имени, но тип должен быть тот, который классу нужен.
Дженерики не предлагать, тип Object не предлагать.

Даже если взять какой нибудь ICommand, то там свойство property передается через Object. Можно как-то это переиначить в конкретный тип?
632 2565733
>>565701

>Дженерики не предлагать, тип Object не предлагать.


я умираю с голоду. еду не предлагать, молитвы не предлагать.
633 2565751
объясните как работает type erasure
634 2565752
>>565751
это тебе к жавистам
635 2565755
>>565701
Тогда никак.

Почему ты не хочешь сделать дженерик?
636 2565766
>>565755
>>565733
А не, все, отмена паники (моей). Дженерики зашли.
Боялся что при работе с xaml будут траблы.
637 2565829
(пикрил 1) Чему не хочет конвертировать?

Если что KeyGesture поддерживает INotifyPropertyChanged . Но явно ругается на Binding (не важно чего). На SO все почему-то приводят пример хардкодинг хоткеев в KeyBinding (пикрил 2)
638 2565850
>>565829
Почему у тебя шрифт красивее, чем у меня?
639 2565862
>>565829
ну так не все свойства являются dependency property
и потому не могут скушать твой биндинг
640 2565863
>>565850
Анон порекомендовал шрифт JetBrains, сам страдал.
У меня JetBrains Mono NL Light - не слишком жирный и не тонкий.
641 2566103
Поясните мне про MVVM и команды.
Вот я раньше делал кучу команд типа "нажал кнопочку и выполнилась команда из вьюмодели". Все просто и понятно.

Но вот у меня задача: я нажимаю кнопку, и прежде чем должна выполниться команда, возникает окно запроса ввода данных.
Проблема заключается в том, что вьюмодель не может содержать никаких окон и я не могу внутри команды иметь экземпляр этого окошка с запросом. Вероятно, окно должно находиться посредником между кнопкой и командой. Но как это дерьмо реализовать в MVVM?
642 2566121
>>566103
в MVVM нет понятия окон. Это просто модель визуального состояния (плюс контроллер, что является жирным недостатком паттерна и потому его вырождают в MVVMC)

А значит можно сделать на уровне вида, чтобы он спросил до передачи вьюмодели.

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

Также может быть банальный проперти Func<Result> у вьюмодели и на него вид забиндит свой обработчик, ведь целый сервис нахер не нужен ради одного случая.
643 2566143
>>566121

>А значит можно сделать на уровне вида, чтобы он спросил до передачи вьюмодели.


Это я понимаю. У меня как раз траблы с реализацией это затеи. К примеру, в контекстном меню есть вот такой итем, по клику которого переименовываются выбранные папки в списке:

<MenuItem
Header="Rename Selected"
Command="{Binding Path=RenameCommand}"
InputGestureText="Ctrl+R" />


Тут напрямую идет команда RenameCommand из вьюмодели. Я вижу два варианта для вставки окна:
1. Я могу подписать итем на событие OnClick и там запустить окно, а затем запустить команду. Для контекстного меню я проблему допустим решу, но вот с запуском команды по хоткею такой финт не прокатит т.к. KeyBinding для InputBindings требует ICommand и туда нельзя передать делегат метода. Мне вдовесок придется избавиться от KeyBinding и по старинке городить в событии KeyDown проверку нажатых клавиш и уже там запускать нужные методы и команды.

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

Оба варианта нарушают MVVM и плодят города из кода.
644 2566146
>>566143
1 не нарушает.
2 вообще не понял о чем ты

я предложил тебе 3 варианта. все они не нарушают мввм.
645 2566207
>>566143
смотри

в 1 варианте нет никакого нарушения MVVM. во вьюмодели есть, допустим, метод DoLogin(user, password), на что она имеет право и как бы без разницы откуда берутся параметры - вид, в свою очередь, у себя может творить что угодно касаемо пользовательского ввода

во 2 варианте нет нарушения потому что просто объявляется интерфейс вида ICredentialProvider и кто-то там его реализует. То есть вьюмодель всего лишь спрашивает у этого сервиса "дай мне кредентиалы". А реализация может быть как завязана на вид, так и вообще из конфига данные дать. Таким образом, в сборке вьюмоделей живет всего лишь интерфейс, но не реализация.

3й вариант тоже ничего не нарушает, ведь вьюмодель может обьявить у себя любое свойство и Func<> ничем не хуже и не лучше. ну да, вид может забыть его установить и будет NRE, но точно так же вид может забыть установить любое другое свойство и в результате тоже будет ошибка.
646 2566311
Шарпаны, пойдемте уже в этот >>2564359 (OP) тред.
Похуй на тег, тонуть заебало.
647 2566370
>>566207
Заюзал вариант с передачей функции в свойство. Теперь при выполнении команды сперва чекается это свойство. Мне кажется это самый безболезненный вариант и позволяет работать с оригинальными командами.
648 2566390
>>566311
Подписался
image.png547 Кб, 745x925
649 2567214
Это лучшая книга на данный момент?
650 2567928
Хочу установить VS на рабочий комп с win7 для изучения С# как первым языком. Проблема в том, что он не установился, а для решения предлагают переустановить винду.
Так как комп рабочий, это не вариант. Чем можно заменить VS, eclips пойдет? Или что-то другое?
651 2568109
>>567928
Ничем. Поставь себе актуальную ОС. ДотНЕТ у тебя старше 3 даже не будет работать в 7
652 2568542
А как выглядит архитектура веб приложения, где у каждого пользователя своя база данных? Это всегда монолит?
653 2568546
>>568542
nvm, я уже увидел про multitenancy, ух блять.
654 2569616
Рудольфы молю, может кто помочь с инфой с тредами про тян которая писала прогу наощупь без доки и инета или что-то подобное!? Я дэбил и найти не могу соре за оффтоп
655 2569804
>>2547665 →
Не ебу почему в ебларуси на двач через раз пускает
Были вопросы про типы данных, коллекции, отличие Array от условного List, XML, состояния БД, LINQ. Вроде все, что сейчас могу вспомнить.
Уже прислали отказ. Сегодня собес в другую компанию.
656 2569955
>>569804

> отличие Array от условного List


И в чем отличие кроме фиксированного размера у первого?
657 2570805
>>569955
Это разные структуры данных, вы не прошли собес. У массивов быстрый доступ к произвольному элементу, но медленное добавление новых элементов, у списков наоборот
658 2570839
В треде ещё остались знатоки древней забытой технологии предков WinForms?

Во всех мануалах по взаимодействию форм делается примерно следущее:

Form1 form1
{
buttonCallForm2_Click()
{
Form2 form2 = new Form2();
form2.Show();
}
}

А можно ли сделать вот так:

Form1 form1
{
buttonCallForm2_Click()
{
CalForm2Method();
}
void CalForm2Method()
{
Form2 form2 = new Form2();
form2.Show();
}
}

И что вообще происходит с переменной форм2, как и когда она диспосится, особенно в случае с методом, разве не тогда, когда метод отработал? Их именно поэтому и пихают в события? Это единственно правильный вариант? В событии переменная не исчезает?
658 2570839
В треде ещё остались знатоки древней забытой технологии предков WinForms?

Во всех мануалах по взаимодействию форм делается примерно следущее:

Form1 form1
{
buttonCallForm2_Click()
{
Form2 form2 = new Form2();
form2.Show();
}
}

А можно ли сделать вот так:

Form1 form1
{
buttonCallForm2_Click()
{
CalForm2Method();
}
void CalForm2Method()
{
Form2 form2 = new Form2();
form2.Show();
}
}

И что вообще происходит с переменной форм2, как и когда она диспосится, особенно в случае с методом, разве не тогда, когда метод отработал? Их именно поэтому и пихают в события? Это единственно правильный вариант? В событии переменная не исчезает?
659 2570872
>>570839

> А можно ли сделать вот так:


Нет никакой разницы, создаёшь ты дочернее окно непосредственно из метода-обработчика или из другого метода, который вызвал обработчик.

> В событии переменная не исчезает?


Здесь тебе не C++. Объект будет уничтожен не сразу после того, как на него не останется ссылок, а по желанию левой пятки сборщика мусора. Но это не так важно, диспоуза не будет, пока пользователь не закроет form2. И обычно для дочерних окон вызывают не Show(), а ShowDialog(), который ждёт, пока не закроется окно, и только после этого продолжает выполнение метода. Show() показывает окно и сразу же продолжает выполнение метода и даёт обрабатывать новые события. Т.е. для Show() можешь делать что-нибудь ещё в родительском окне, пока не закрыто дочернее (например, можешь ещё раз кликнуть на кнопку, и будет открыто уже два дочерних окна, а ShowDialog() блокирует родительское окно, пока открыто дочернее.
660 2570898
>>551587 (OP)
Привет пацаны, подскажите как разместить свой пет проект на vps сервере, если он использует бд mssql, как это вообще сделать
661 2571204
Моя кабина скисла, моя вышка не принесла мне бабла, пока мои лучшие друзья учились сисярпу .Я меняю вектор своей жизни, и путем долгих размышлений остановился на перипетии Golang/C#. Голанг привлекает модно-молодежностью , живым коммунити (подобно опенсурсному софту, активное живое обсуждение и развитие языка, плюс для обучения вроде несложный) и С# (универсальный, востребованный язык для всего, плюс нахождение в микрокоммьюнити из своих двух друзей).

Запощу уродский пост, но прошу рассказать, почему C# - лучший язык программирования на планете, как у вас написано в шапке.
662 2571235
>>570898
В теории? Докер с MSSQL
663 2571407
>>571235
Я же правильно понимаю принцип работы VPS. Я покупаю доступ к компьютеру (серверу), например на Linux и могу тутда устанавливать любые программы, в том числе MsSql и использовать ее уже для своих нужд?
664 2571584
Как сейчас дела с обновлением вижлы и наматыванием новой версии дотнета? Нужно будет с впн ебаться али нет?
665 2571855
>>571204

>почему C# - лучший язык программирования


Так как это тред по C# Нет такого понятия как "лучший язык программирования"

>Golang или C#


Распиши плюсы и минусы. Или не расписывай и выбери тот, который нравится, это будет правильнее.
666 2571883
>>571584
Сегодня только обновлялся. Все работает без всяких ВПН
667 2572123
Товарищи, у меня проблема.
Хочу в С# вкатиться первым языком, но не могу установить VS, так как на рабочем компе нет админки. Посоветовали скачать VS Code, но и тут проблема, не могу установить .NET из-за ошибки 0х80070005, для ее устранения тоже нужна админка.
На что еще можно заменить, на чем удобно в C# вкатываться?
668 2572128
>>572123
Бля. Опять тред перепутал.
669 2572425
Какого хера в DateTime есть Kind, это же объект предстасвляющий абсолютное время, разве часовой пояс не должен браться из локали при форматировании?
670 2572459
Сап, шарпач. Пилю свой первый интернет-магаз в качестве пета. У каждого товара есть название, описание, категория и ключевые слова. Хочу запилить поиск в одну строку, который бы искал сразу по всем параметрам. Как на Depositphotos например. Это можно будет сделать с помощью Elasticsearch? Или есть другие какие-то готовые решения или самому велосипед делать?
671 2573129
Я тут пришел из в веба в шарпы в качестве развлечения, учу c# и Unity, короче не знаю как сформулировать запрос:

https://pastebin.com/aXia8KyB

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

Нужно изменить полоску запаса здоровья, но каждый раз делать это в методе Update(), который вызывается каждый кадр, как будто бы плохо, потому что это значение будет меняться очень редко, поэтому я и хочу узнать можно ли привязаться либо к изменению переменной во внешнем классе, либо к вызовам его методов, не меняя сам внешний класс

В Реакте например есть useEffect, который позволяет повесить на изменение значения переменной любой callback, который будет тригерриться только при изменении значения переменной
image.png29 Кб, 696x184
672 2575015
Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
Помогите пж выходит такое исключение в этой строчке, в инете гуглил хз ниче не понял
673 2575056
>>575015
Если у тебя в массиве, скажем, 5 элементов, то валидные значения индекса будут от 0 до 5-1, т.е. от 0 до 4. Либо, если коллекция пустая, для неё нет валидных индексов.
Очевидно, что эти условия таои индекс не выполняет.
674 2575874
>>575712 (Del)
ИДИ НАХУЙ
675 2576019
>>575712 (Del)

А смысл, тут всё равно одни бесполезные долбоёбы сидят и нихуя не петрят в C#/
676 2581852
>>573129
В хелс классе делаешь публичный евент public event Action<int> который при изменении хп рассылает текущее значение. В хелсбаре делаешь метод, который параметром принимает инт. Метод подписываешь на эвент. Вуаля.
677 2609358
>>552050
Попробуй TS, с шарпов сильно приятнее, да и сам язык поудачней будет
Тред утонул или удален.
Это копия, сохраненная 3 марта 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски