>>3332498 → Да мужик (или тяночка), компоуз не виноват, что вышел из-под гугла. Тут проблема в том, что XML никуда не делся, а компоуз слишком быстро зашел на рынок как основной фреймворк. Это же не джаву на котлин менять (кстати, вроде Square написали Retrofit поверх okHttp, но на джаве, что достаточно интересно в плане "нахера?"). На выразительность тоже уже плевать, да и это более "тонкая" тема т.к. для меня джава всегда была более понятнее, чем котлин.
Глянул на C#, на его кол-во живых библиотек, на его качество кода (в плане читаемости) и прям кончил можно сказать. Мне постоянно ссали в уши менторы с ютуба, что котлин это будущее, джава скоро сдохнет. Ну я как идиот 3 года учил котлин и андройд, вместо спринга или того же asp + c#. МДАААААААААААААААААААААААААА
>>3332537 >Тут проблема в том, что XML никуда не делся ну это проблема динозавров любящих (цензура) с этим подходом (привет списки) >компоуз слишком быстро зашел на рынок как основной фреймворк и это шикарно. шикарный фреймворк шикарный подход >что вышел из-под гугла енто да. они умеют все портит. вон навигацию испортили. M2 не доделали, но поддерживают. Какие то странные ребята
>для меня джава всегда была более понятнее, чем котлин. выразительность это не про понятность. Это "мы городим огород (читай костыли) потому что иначе никак, а в другом языке это есть искаропки и работает само".
недостаток котлина это его жава рантайм (ну и сложные корутины). в остальном же на нем приятнее писать код. Зато в шарпе структуры и много чего под них заточено, а в котлине такого нет....но ведь это не котлин виноват.
>>3332542 Я надеюсь, что когда-нибудь напишут какой-нибудь рантайм чисто для котлина и будут ребята уровня xiph или типо того, чтобы писали код для компоста и всего, что с ним связано. В данный момент для меня котлин это чисто андройд, который на уровне говна собаки (андройд, конечно же).
А я в бекенд хочу, а не искать проблемы с производительностью UI, навигацией и делать анимашки конченных даунов-дизайнеров через littie, а потом выслушивать .что я неправильно запихал их анимашку.
>>3332544 >который на уровне говна собаки (андройд, конечно же) если честно хз. он там вполне норм. да и котлин актуальный последний. Просто меня не волнуют анимашки и "в этой версии андроида нужно делать так, а в этой анально огородили и вот тебе 3 стула и все с говном и на них нужно не сидеть, а проглотить". я ссу кипятком с компоуза в плане удобства. Собственно из-за него котлин и выучил ибо этот хамл в замарине ...замарил но на десктопе беру шарп и WPF, потому что гуи на порядок сложнее надо (про шрифты помолчу)
>>3332469 Ненависть к автомапперу - признак шизика. Видимо чел в него пытался кучу конвертаций запихивать которые чуть ли не бизнес логикой являются. Ну и при этом на все тесты хуй ложил, да.
Захотел дайвануть в пучины C#, а clr via C# уже устарело в говно.
Сейчас начал читать Pro .NET Memory Management, уже начинаю понимать как на практике работает GC и всякие умные указатели. Вместо тупых абстрактных концепций в голове которые на самом деле не дают нормального представления.
В своё время так же заебался с ответом про async методы - "ну это стейтмашины", который толком нихуя не объясняет, это просто элементарный паттерн лол, а топик асинхронности огромный.
>>3332570 >Ненависть к автомапперу - признак шизика Ненависть к инструменту который добавляет неявность, ломает навигацию в ide, да еще не везде применим - так ли он нужен то
>>3332544 >Я надеюсь, что когда-нибудь напишут какой-нибудь рантайм чисто для котлина
Нечего там не напишут, набрали студентов, наговнокодили компилятор (у них даже внутренний доки не было), потом переписывали несколько лет это.
Эти ребята писали компилятор в байткод лет 5, о каком уровне вирт машины можно говорить. Писали много лет писаали фронт под llvm, потом что-то переписывали (я про нейтив), в общем ппц. А анальный вендерлок на тулинг просто убивает возможность развитие котлина самостоятельно. Сначала они вроде пытались пилить плагины для других редакторов, но потом даже не набрав массы положили болт.
Гредл это отдельный ужас жаба мира. Тырпрайзный-индустриальные технологии очень плохо ложатся на модный и молодежный новый язык.
В котлине есть некоторые интересные синтаксические решения, которые они просто потаскали у груви (но есть тотальные безграмотное wtf) В общем, как говорил анон, технология без души, которая еще утопила скалу и сам груви (да и жаба без мобилок это уже кобол).
>>3332469 Кода с автомаппером получается больше, чем без него. Поэтому вывод очевиден: не нужен. ЗЫ: однако, кодомакаки именно за это его и любят: можно настрочить тонны конфигов маппинга, и вроде как не бездельничал.
Сейчас основная тенденция в дотнете - AOT. Посему AutoMappet, работающий на рефлексии, в пролёте.
>>3332675 По-моему это слово обозначает (в контексте ЯП) понимание того, что ты пишешь и как ты пишешь буквально с первых секунд, а не в попытках понять синтаксис. Условно val myValue = intArrayOf(1,2,3,4,5) Более понятно, чем в джаве int[] myValue = new int[5] {1,2,3,4,5};
Котлин хорош! Он великолепен тем, что разделил комюнити Жавы на две части. Теперь и создатели вынуждены поддерживать Коклин, и его пользователи вынуждены учить и его, и саму Жабу. Собственно, сами виноваты. Могли бы писать на божественном Шарпе и не страдать хернёй.
>>3332673 → >Что за категория такая, "выразительность"? Да хуй его знает. Носятся с ней как с важной хуйней какой-то, а когда просишь конкртено пояснить, что это - обычное "пук-срень, ну вот в язык_нейм можно сделать вот так, а в шарпе нельзя" (и в 90% случаев окажется, что либо можно, либо нахуй не нужно). Часть под "выразительностью" имеет в виду просто какой-нибудь местечковый сахарок, который им нравится исключительно из-за синдрома утенка. И что, кстати, не мешает им поливать шарп за засилье сахара, хотя свой жрут ложками.
>>3332750 Ну да... Типа для меня - переменная это что-то важное, у чего аж имя есть которое я сидел, придумывал, чтобы не x,y, a,b,c было, и оно доступно во всем скопе где объявлена. Как-то пояснить, что оно нужно просто чтобы передать значение - в шарпе нельзя. Даже в ЖС сделали const-перменные, пусть они и всратые и можно уже внутреннее состояние изменить, но какая-то семантика все же есть.
А если их не использовать и заворачивать вызовы - это становится нечитаемо. Потому что будет: Console.WriteLine(string.Join(" ", ("HelloWorld!".Split(" ").Reverse())));
Тут разобраться что там за чем вызывается - надо посидеть, подумать. А это простейший пример же.
>>3332680 >Условно >val myValue = intArrayOf(1,2,3,4,5) >Более понятно, чем в джаве >int[] myValue = new int[5] {1,2,3,4,5}; Во, как я и говорил. Типичный пример "в язык_нейм хуй сахар вкуснее, чем в язык_нейм_2"
>>3332675 ее использую в контексте котлина Я потому что пишу и на шарпе и на котлине И нет - это не просто слово. И нет это не НЕ читабельность. Это способность удобнЕЕ выразить мысль в коде уже не раз приводил примеры, повторяться влом повторю только малую часть
backing field. в котлине он просто есть. А в шарпе что? Что то там в дотнет 9...ну ну примари конструкторы в шарпе притащили позже и они примитив по сравнению с котлиновскими (хотя лучше чем ничего) енумы в шарпе...без мата нечего сказать нельзя нормально расширить статический класс нет инлайн методов настоящих нет делегации свойств нет топ левел функций нет типа unit и поэтому есть Task и Task<T> вместо одного Task<T>/Task<Unit> (кто кодогенил оба варианта потому что просто необходимо их оба - тот поймет) где бл... lateinit. вместо него null! что другое ну и так далее...
>>3332751 > виду просто какой-нибудь местечковый сахарок этот "местечковый" сахарок делает, например, принципиально невозможным портировать подход jetpack compose потому что язык просто не может. Максимум что могут выдать это comet по типу swiftui combine, да и тот будет засран вездесущими new
>>3332798 >щас будет "да и не надо", да Я не пишу под андроид/айфон, на котлин/джаве и в душе не ебу за всякие jetpack compos-ы и т.д. Поэтому да - не надо. =) Ну и опять же. Когда говорят про "выразительность", то это идет в контексте базы языка, а не всяких его фреймворков и тулкитов. Т.к. их можно наворотить сколько угодно и какого угодно вида.
>>3332829 а я и не говорил про фреймворки и тулкиты. И андроид тут вообще не причем. Кстати на замарине под андроид те же проблемы у шарпа ибо...ну мы же про шарп говорим.
я говорил за сам язык и НЕВОЗМОЖНОСТЬ сделать подобное на шарпе. Когда что-то получается кривокосо (последствия компромиссов) - значит у языка не хватает выразительности. А значит на шарпе мне приходится жить с другими подходами БЕЗ ВАРИАНТОВ
потому что НЕТ - НЕЛЬЗЯ НАВОРОТИТЬ, ограниченность языка позволяет наворотить только то, что можно наворотить как бы это в итоге не получилось, а не РЕАЛЬНО УДОБНО.
Просто средний шарпист, как и...допустим, похапэшник - НЕ ВИДИТ проблем выразительности ибо он и не видел что можно как то по другому. Тот вариант, что предлагает язык, является для него единственным, а значит и верным. Как и похапэшник не видит проблем похапэ, пока не пощупает питон.
>>3332742 А эта хуетень сразу вызывается, или лениво? Стектрейс выглядит как говно? Как отлаживать? Никак? Брейкпойнты не ставятся примерно никуда? Внутри там уебанский обобщённый фреймворк?
Смотри пример, какое мутное говно есть у меня в коде. Это героически переизобретают каждые два года, а потом с ним одни мучения
>>3332829 Под выразительностью 10 лет назад преподносили в противовес джава коду, мол геттеров и сеттеров не писать и вообще дата классы, лямбда-хелл этот и прочее.
Нужно было продать жабистам зачем им второй язык за туже зарплату. То что до сих пор с этим носятся, это косяк дармоедов евангелистов или инфоцыган, которые продают курсы андроид. Еще в те же времена стало ясно, что если апи не на дсл котлина, то пишешь ты на той же джаве, только с х2.5 компиляцией.
Прокси языки зло. Ты либо с нуля бери и дела, либо размазывай говно по полу.
>>3332965 >Прокси языки зло это так >Под выразительностью 10 лет назад преподносили в противовес джава коду, мол геттеров и сеттеров не писать и вообще дата классы, лямбда-хелл этот и прочее. в шарпе типа не та же ситуация, ога. и всякие рекорды появились не поэтому, а потому что гладиолус? >Еще в те же времена стало ясно, что если апи не на дсл котлина, то пишешь ты на той же джаве а это можно просто не тащить легаси. ведь можно же в шарпе же увы легаси вбит навечно. И никогда Ilist не станет наследоваться от IReadOnlyList, и даже Lock из 9го дотнета не заставит похудеть хидеры объектов. И много чего этакого что "никогда"
>>3332960 Так охуенно выглядит же. Чего ты? Надо просто взять концепт и довести до ума. Ну и майков заебывать, чтобы наконец довели до ума дебагер. Вон, недавно наконец - при return стал показывать что там реутрнится. Думаю если сильно попросить и примеры что это и при дебаге линку будет полезно - они таки возьмут в работу.
>>3333063 >Он же рид-онли, а лист не рид-онли. А типа List (не интерфейс) ридонли.Но между тем реализует IReadOnlyList, а еще и IEnumerable, которое риоднли по самые помидоры
Как можно передать Ilist в метод принимающий IEnumerable, так и тут та же логика, но в шарпе нет Ilist : IReadOnlyList потому что изначально тупо спроектировали. А теперь уже поздно - ломается бинарная совместимость.
>В 12 дотнете запланирован полный переход. брякоченджесы на уровне бинарной совместимости? ну ну.
>>3333064 это кстати шикарная ебала. просто померла со студией 2019, а для 2022 выкатили недоделку и забросили. Спрашивается - почему в студии такой убогий дебаггер в плане гуи. Просто говно говнистого говна. Ответ - потому что рукожопы. И новый год ничего не изменит в их жопошных руках. Лол, даже ретурн валую они сделали хорошо в этом тысячелетии, прямо удивился
>>3332832 Нормальный шарпист знает о Nemerle - языке для .NET, который имеет гигиенические макросы, что позволяет вводить новые синтаксические конструкции. В нём легко можно ввести все те фичи, о которых ты говоришь. К сожалению, Nemerle умер... Но Microsoft постепенно движется к реализации его возможностей в C#.
>>3333078 >К сожалению, Nemerle умер тогда ЗАЧЕМ ты его вспоминаешь??????? риторический вопрос
однако >В нём легко можно ввести все те фичи может мне еще свой язык написать? а че нет? с меня хватает и необходимости создавать и поддерживать либу в которой есть то, чего ожидаешь в дотнете, но будет там через 1000000 лет. вообще я не один такой с такой либой. Даже вон есть dotnext проект
>>3333085 >Перечисление только перечисляет как и IReadOnlyList только читает и его ничуть не волнует ридонли ли список или нет. Он всего лишь говорит "я буду только читать"
>ему ничего не известно о словах, которые ты произносишь tomatoes.Select(t=>t) а теперь?
>>3333088 >Надо будет - прибьют гвоздями вообще то изначально было надо. но не вышло. даже статьи на эту тему писали почему НЕЛЬЗЯ это сделать - именно проблема бинарной совместимости. Так что никто никогда гвоздики не тронет
>Я даже не будут спрашивать какую шизофрению ты в это понятие закладываешь. а я отвечу они ввели Lock польза от которой какая? новый апи? никто не побежит переделывать текущие локи возможность убрать секцию для лока из хидера объекта - тогда все старые либы которые просто "мы тут версию дотнета поменяли" просто выпадут в осадок. Тогда что они планируют в дотнет 12? из за подобных проблем никто не стал делать IList : IReadOnlyList ни щас, ниКОГДА
>>3332701 >В Котлине есть автомаппер? Чувак, автомаппер - это всего лишь библиотека! Их тысячи. Если тебе нужен маппер, но нет подходящего с нужными фичами - напиши свой. Это делается на коленке.
>>3333154 >Да, нельзя. я не говноед. я критикую и требуют навести порядок. жаль что меня не очень слушают, поэтому получаем фичи в недоделанном виде, а то и годами ждем. >Нет, не хватает. так ты не переживай. мелкие еще наделают. они в этом мастера. они найдут где сделать так что "ну семён семеныч"
свойства без backingfield, ConfigureAwait, рекорды, is var, полусырые примари конструторы (хотя как я понимаю это всё) и т.д. - что то доделывают через годы (когда уже поздновато), но в основном хер Ну хоть расширения на доработку отправили, но они постараются и там сделать жопно
>>3332445 (OP) Всем ку мужики, скатываюсь в шарписты, подскажите где можно найти задачи/проекты которые будут похожи на реальные рабочие кейсы? Я имею ввиду не хуйню с литкода или кодварса, а что-то реальное и прикладное. Хочу потренироваться и занять себя.>>3333088
>>3332985 >Ilist не станет наследоваться от IReadOnlyList ФэПэшное фантазии умерли уже лет 10 назад. Программирование не может не иметь сайд эффектов. Лист по задумке это динамическая структура и иметь иммутабельную структуру данных в хипе, а не в стеке - это абсурд и результат того, что некомпетентные люди попадают в разработку языков.
>в шарпе типа не та же ситуация Нет, даже 5 лет назад шарп был на голову выше жабы. Продать его шарпистам было сложно, ради пару модных сахаринок. То что в шарп тянут модные свестелки и перделки - в чем проблема? Это больше гемморой для команды разработчиков, чем для потребителя. Нормальная практика взять проверенное другими фичу и засунуть себе (так же и джава делает, что там от котлина еще осталось?).
>а это можно просто не тащить легаси. ведь можно же Нельзя, потому что у котлина не было ничего своего, перевкатуны даже об гредл разбивались. Представь тебе только что рассказали про модный и молодежный язык, чуть ли не правильный питон у тебя в руках и ты такой на радостях бежишь потыкать в него и тут тебя встречают сразу кровавый тырпрайз с его аномальными оверхед-решениями, которые непонятны даже местным (блин, даже гугля про веб на джаве в 2016 году ты попадал на страницы про EE). Фраза "котлин пахнет джавой", это фраза того времени, то что они полезли в котлин жс, котлин нейтив, а не стали пилить дефолт инструменты для jvm на их выразительном, это фатальная ошибка руководства тех лет. котлин js вообще смешно, они правда думали что смогут конкурировать с node.js и ts, написав кривую обертку над HTML DOM? Ты представь уровень некомпетентности в управление котлина в те года
>>3333177 Если вебдресня - то по традиции люди с двача пишут движок двача.
Я бы попробовал какую-нибудь низкополигональную (low poly) игрушку написать на юнити, не ради результата, а ради каких-то механик которые можно написать на шарпах (например, сложный расчет поведения врагов за счет динамически меняющегося окружения. Или процедурная генерация местности или мобов как в no man sky). В общем что-то, что визуально можно позапускать потыкать, это интереснее бэкенда с перекладыванием json'ов (хотя есть вот эти браузерные сетевые миниигрушки на вебассембли).
>>3333102 >критикую шарп, нельзя что ли? в шарпе хватает говна и ему радоваться или что? Шарп мультикомбайн в прикладной разработке, как наверное и современный js. И там и там людями срать на какие-то огрехи языка которым овер 20 лет, все реально понимают почему так или иначе исторически сложилось, все внимание пользователей этих языков не в том с какой стороны тип записать или список объявить, там у людей уже фокус смешается на уровень - какой взять инструмент и какие технологии помогут в том или ином решении. в свое время я попал в шарпы не потому что нравился синтаксис, а потому что он был в моем решение - юнити, был бы там хоть js - мне было срать, я бы писал на js
Так что всем срать что твой юношеский максимализм фрустрирует с синдромом утенка и тебе что-то где-то не нравится. Хочешь уровень реальной разработки? Возьми и напиши свой "свифт/котлин/ts" для дотнета (и пойми потом почему это не нужно), а мериться тем как одно и тоже делается в разных языках, но чуточку по разному - это удел глупеньких.
Смотреть на котлин надо смотреть через призму андроида. А не потому что там глисты другие. Так что если нравится котлин? Напиши уже какую-то теху или флагман на нем, это ему больше поможет. Сейчас главное проблема котлина и то что его убивает - это вендерлок на IDE, так что спаси свой кокотлин, вытащи его хотя бы в vscode.
>>3333087 >tomatoes.Select(t=>t) >а теперь? И что "теперь"? Select это метод расширения статический, это не метод самого IEnumerable, так что он все так же ничего не знает.
>>3333167 >годами ждем. Кто ждет? Зачем? Иди попиши на го, потом даже в джаву вернутся будет счастьем.
Недавно узнал что раст планировался изначально с гринтредами и гц как го, но в нормальном дизайне и тулингом не из 70х годов. Представьте какую ошибку допустили авторы, а где-то в параллельной вселенной сейчас существует язык, который полностью затмил все ваши жабы/шарпы - нормальный современный язык с нормальным тулингом и конкурентностью.
>>3333205 Отсутствие поддержки внутренний мутабельности объектов, практически навязывает использование Arc<Mutex<T>> Что является счетчиком ссылок с проверкой владения во время исполнение. Это не так критично, но это уже не совсем системный уровень.
Отсутствие ГЦ нужно только паяльникам, в прикладной разработке банально нет столько ресурсов, чтобы еще с указателями трахаться. То есть, это настолько узкая и ниша, что старого с++ там было достаточно, на котором и так тонна либ, которые переписывать никто не собирается. А вот наличие в бэкенде удобного конкурентного языка - это до сих пор явная потребность.
>>3333179 >Лист по задумке это динамическая структура сам понял что сказал? лично я нет. причем тут вообще фп. причем тут вообще стек. есть КОНТРАКТ. IList реализует IEnumerable, потому что IList имеет часть контракта "читать" и поэтому IList можно передавать БЕЗ ДОПОЛНИТЕЛЬНЫХ приседаний в методы, которые принимают IEnumerable с IReadOnlyList та же история просто ЕГО ЗАБЫЛИ когда изначально дизайнили контракт списков (кстати жопой дизайнили). А когда люди наконец пояснили что "надо бы", то оказалось что уже поздно впихивать как надо.
>даже 5 лет назад шарп был на голову выше жабы. причем тут жаба. в шарп тянут свистелки по той же причине - народу надо. >взять проверенное другими фичу и засунуть себе (так же и джава делает ога, через десятилетия. при этом все эти 10 лет утверждая "эта фича никому не нужна", а потом с бахвальством "смотрите мы сделяль". поэтому жава говнистое говно и всё лучше жавы, даже говно бомжа лучше жавы.
>потому что у котлина не было ничего своего это просто динозавры привыкли. Я вот не изучал легаси и сразу жетпак и котлин и всрались мне всякие там ретрофиты. И никаких "эта хрень не работает с корутинами". Но да, то я - у меня не было старых проектов которые нужно было бы переводить.
>>3333189 >И там и там людями срать на какие-то огрехи языка которым овер 20 лет это личное дело каждого говноеда. не всем срать на огрехи что можно исправить бэкингфилды тому пример, если всем срать то зачем их исправляют? и так многие вещи просят. Просто не всех слушают.
>твой юношеский максимализм я начал писать на шарпе с его рождения еще с версии 1 и это мой основной язык. Так что про синдром утенка он как бы более у тебя. У меня же здравая критика "не нужно бояться признавать ошибки, но и не нужно избегать их исправлять, просто можно не через десятилетия, а? мы ж не жава"
>Смотреть на котлин надо смотреть через призму андроида мне на него смотреть не надо. Я шарпист и спотыкаясь о проблемы дизайна шарпа, иду и пишу мелким, что "тут херня, а другой херни вообще нет", а не хвалю котлин "вот там есть". С котлином мне просто ЗАМЕТНЕЕ разница. Но это не значит что я и без котлина не матерился каждый раз создавая бэкингфилд или кодируя ConfigureAwait(false) или кастуя к IReadOnlyList (ну там ладно я хоть понимаю что они исправить не могут) или не имея очевидных методов LINQ или того же словаря - котлин тут вообще не причем.
>>3333190 >Select это метод расширения статический зато возвращает IEnumerable помидорков. так что...
>>3333192 >Кто ждет? Зачем? внезапно шарписты. потому что нужно. смотри список proposal и прозревай. и это ведь про новые фичи. >Иди попиши на го иди поешь говна чтобы познать что тебе не так уж плохо или а в африке вообще негры голодают это аргументы уровня /b
>>3333321 >я начал писать на шарпе с его рождения еще с версии 1 и это мой основной язык. Тогда бы ты обплювался от котлина, который везде наговнил классическому дефолт джава-стилю (чтобы быть нетакусиком). Если для го это быть может норм, это новый яп и он может делать что хочет, то для приемника джавы, переворачивать базу семантики, это идиотизм.
Да и с опытом более 15 лет приходит осознание что все языки в какой-то степени говно, а когда начинаешь писать свои сложные архитектуры, то понимаешь что это нормально и по другому нельзя, поэтому придираться, что там где-то забыли что-то, это юношеский максимализм. Это тоже самое как жаловаться что в одном заводе, поставили автомат с печеньками, а на другом заводе нет.
>причем тут вообще фп. А в том что листы по природе были созданы в противовес массивов как мутабельная динамическая структура данных. Представь ты создаешь машину которая должна ездить, а потом создаешь машину которая ездить не должна, ибо опасно когда она ездит, Ванюша может пораниться в коде.
>>3333360 >Тогда бы ты обплювался от котлина у меня претензий к нему тоже хватает, но тут не котлин тред чтобы я им возмущался >наговнил классическому дефолт джава-стилю котлин не преемник жавы. это шарп преемник ибо начался как "мы сделаем свою жаву".
>и по другому нельзя, поэтому придираться, что там где-то забыли что-то, это юношеский максимализм нельзя? кто сказал нельзя? что за дикий бред. вот щас делая фичу с бэкингфилдами оказывается можно. И даже возможные конфликты с написанным кодом не останавливают.
>как жаловаться что в одном заводе, поставили автомат с печеньками ну так если в итоге автомат с печеньками поставят, то разумно жаловаться, а не продолжать облизываться на другой завод.
>А в том что листы по природе были созданы в противовес массивов какое отношение это имеет к контрактам списочных структур? правильно - никакое. На уровне контрактов не разницы что там лист или вообще склад котиков мимикрирующий под список. Там есть просто контракт. И его просто не продумали, ведь так спешили сделать свою жаву, что много чего не продумали.
А если брать дизайн списков то сделано было ЧЕРЕЗ ЖОПУ нужно было сразу разделить мутабельные, иммутабельные, ридонли на уровне языка. И назвать нормально
>>3333375 >нельзя? кто сказал нельзя? что за дикий бред Реальность, без декомпозиции мозг не способен воспринимать сложные системы полностью, там физическое ограничение на 4-7 элементов. В остальном восприятие происходит через обобщение, но так что ты его даже не чувствуешь - поэтому и получается что ты как вкатун бегаешь с листами, а кто-то решает реальные проблемы реального софта. Вот мне думаешь важны какие там листы, когда я не могу локализовать плавающую ошибку в коде?
Так что учи шарп молча. Еще бы к шрифтам в вскоде докапался бы.
>>3333389 >там физическое ограничение на 4-7 элементов ты какой то шизнутый. какое отношение имеет, например, НЕОБХОДИМОСТЬ писать бэкингфилд руками к ограничению твоего мозга? и остальное тоже туда же.
похоже у тебя шизофазия какая то, раз ты вообще не понимаешь что я пишу
>>3333375 >бэкингфилдами Чел, а ты можешь объяснить как тупому, зачем они нужны? А то я вот почитал и чет не понимаю, что в них такого уникального, что нельзя было бы заменить обычными свойствами с модификаторами на get/set ?
А то ты так их расписываешь, будто это прям килер фича какая-то, вот и хотелось бы понять.
>>3333446 >Я не ограниченный биоробот, который мыслит субъективно, слышишь! Я высшие существо способное думать умно! Если я вижу что листы неправильные, значит так оно и есть! Это самая главная проблема сейчас в шарпах! Это очень сюрьезна, ты понял?!
>>3333457 ты просто не понимаешь что это такое их нельзя заменить обычными свойствами ибо они и есть ЧАСТЬ свойств
вместо
private int _foo; public int Foo { get=>_foo; set{ _foo=value; ...другой код }
ты можешь не заводить private int _foo; которая может нахер никому не нужна, а заведена лишь потому что нечему присвоить =value
поэтому в норм языках если ты хочешь добавить код в сеттер, и тебе нахрен не нужно это приватное поле в классе, то ты можешь сделать так get=>field set{ field=value; ...другой код } где этот field за тебя скомпилирует компилятор. вот в дотнет9 это и собирались сделать...или сделали но там экспериментально...или сделали. вот перейду на дотнет 9 и посмотрю
>>3333475 это одна из проблем в шарпах. и ты можешь сколько угодно трололо, но это не изменит ущербности списков в шарпе так что мимо, иду учись аргументировать нормально дитятко
В чем ущербность? в том что нет нормального искаропочного разграничения между мутабульными, иммутабельными, риоднли, фрозен и прочее. Ну и на уровне контрактов та же херня. Я не могу передать byte[] как ридонли и не потерять в перфомансе. Когда ввели IReadOnlyList, то он оказался неудобным и большинство так и продолжило передавать везде IList (какой такой там чистый код вы что) не замораиваясь с какими то там "контрактами" вида "если метод будет лишь читать список, то пусть прямо обозначает это в сигнатуре"
>>3333531 С-с-ука-а. Ну это же ебучий сахар. Ты весь тред сотрасаешься насколько важны - эти бэкингфилды, а по сути - нихуя особенного. Просто, блять, приватное поле под капот спрятал. Я понимаю, если бы это было, что-нибудь вроде init или with, которые в 9-м шарпе появились. Вот это да офигеть как избавляло от кучи ебли. А тут...
Алсо, я честно говоря вообще не вспомню, чтобы за последние 3 года хоть какую-то логику в get/set-ах писал.
>>3333556 только бездарям, которые себя погромистами называют а нормальным программистам - нет.
>>3333602 как и get/set тоже сахар. может его тоже не надо было делать, а как в жаве методами? ты ж вот не пишешь в свойствах ничего из логки. зачем тогда вообще свойства? или что ты хотел сказать?
это пример того что этот сахар со свойствами изначально не был нормально сделан. И такое в шарпе много где. Я не сотрясаюсь о их важности. я сотрясаюсь о том что ФИЧИ ДЕЛАЮТ ЖОПОЙ и они получаются сырыми. и это просто пример одной из фич, которая показательна тем, что через десятки лет они таки решили этот вопрос допилить (что прямо нереальная редкость). иди напиши им что "не надо этого делать, никому не нужно, а что там в proposal champions, так то жависты накручивают"
>чтобы за последние 3 года хоть какую-то логику в get/set-ах писал. ну да, ты ж один у нас на свете шарпист )
⚡⚡⚡Платформа Asp.Net Core 10 будет включать в себя новую библиотеку System.Object.Autoassigner.
"Многие просили нас включить в ASP.NET Core решение для автоматического маппинга свойств в объектах. Поэтому вместе с Visual Studio 2024 будет поставляться совершенно новое решение на базе многолетнего изучения опыта разработчиков.
Мы разработали для нового пакета специальный, укороченный синтаксис. Благодаря ускоренной в dotnet 10 обработке деревьев выражений, а так же обновлённому API динамических прокси, System.Object.Autoassigner работает на 12% быстрее альтернативных библиотек." - Раджеш Папаржеканасра, главный архитектор Blazor
>>3333648 >Так в чём ущербность-то? я ж говорю. чужие методы без проблем принимают IList просто потому что "а что еще ж", и хрен поймешь меняют ли они твой массив внутри или нет. С выходом IReadOnlyList ...ничего не изменилось. Особенно забавно если у тебя уже IReadOnlyList и методу нахер не нужно писать в твой список, но он же принимает IList
фрозен коллекции появились ТОЛЬКО ВОТ. иммутабельные тоже не сразу. ну а на уровне обычного массива вообще нет защиты компилятора на запись без каста к интерфейсу со всеми вытекающими.
>>3333649 >Больше, больше сахара! вообще то это не новый сахар, а он должен был быть таким с самого начала. просто как обычно сделали все руками из жопы И да - этот сахар нужен. Не веришь - иди убеди что зря мелкие доделывают фичу но лично ты после выхода фичи можешь не использовать. тебе ж не нужно.
>>3333672 дурачок что ли это ОДИН ИЗ МНОЖЕСТВА примеров просто нагляднее ибо его таки обещают притащить
интересно. а вы сахаром пользуетесь в шарпе или тупо лицемерите? отвечать не надо. ответ знают все
>>3333673 понятию "нормальный дизайн языка позволяющий писать чистый и стройный код без костылей и приседания, и лишних компромиссов" но ВАМ такое понятие неведомо, поэтому можешь даже не пытаться понять.
>>3333710 таков мир дотнета вон решарпер последний имеет баг где при переименовании студия просто виснет. фикс будет в следующем билде. а когда он? полмесяца прошло
они наконец додумались бэкингфилды они наконец додумались до метода Index они наконец додумались что hex строка нужно то в разном регистре. они наконец додумались что если в LINQ проходит ICollection то можно не создавать итератор (это сколько то тредов назад сюда заходил жавишник и выиграл в перфомансе именно по этой причине) они наконец додумались добавить еще методов в LINQ (но все равно мало) они наконец додумались что таки нужен и дженерик вариант SortedDictionary они наконец додумались сделать оптимизации для Task.WhenAll (в 8 версии тоже делали, но кто ж делает всё очевидное сразу то, ведь можно отложить на год....двадцать...вечность) и другое...
возникает вопрос - а раньше никак нельзя было догадаться да?
>>3333776 >а раньше никак нельзя было догадаться да? Догадаться то можно было, а ты пойди и сделай сразу. И можешь не утруждать себя фразами "а вот в язык_нейм сделали" - копнув поглубже в любом языке можно дофига другого говна найти из разряда "а чо сразу не сделали". Вон, куда ни ткни, все современные языкописатели сначала усираются чем-нибудь в духе "дженерики нинужны", а потом, когда им комьюнити панамку хуев напихают, начинают все это прикручивать на готовый костяк, пытаясь к херам все не сломать.
Ты вот к примеру если умный такой, чего битками в 2007-м не обзавелся? Ведь мог бы догадаться, а?
>>3333776 возникает вопрос - а раньше никак нельзя было догадаться да?
Зна́ние за́дним число́м — когнитивное искажение, склонность воспринимать события, которые уже произошли, или факты, которые уже были установлены, как очевидные и предсказуемые, несмотря на отсутствие достаточной первоначальной информации для их предсказания.
>>3333799 >/// Форма отправки данных платежа клиента службы доставки Это норм, потому, что вротебал разбираться в тысяче ДТО-шек по их названиям какая из них за что отвечает.
>>3333799 >/// Метод отправки формы данных платежа клиента службы доставки >/// Конструктор сервиса вызова метода отправки формы данных платежа клиента службы доставки >/// Регистрация DI контейнера интерфейса сервиса вызова метода отправки формы данных платежа клиента службы доставки >/// Сервис вызова метода отправки формы данных платежа клиента службы доставки
Это да, очевидная хуйня - засоряет.
>>3333799 >/// Интерфейс сервиса вызова метода отправки формы данных платежа клиента службы доставки То что, это интерфейс итак очевидно и не нежно, но подписать, что за контракт он реализует, тоже иногда бывает полезно, если это не какая-нибудь очевидная хуйня вроде репозитория или клиента.
Допустим я ебанулся и делаю монолит модульный но мой мозг загажен микросервисами. Собственно, я не хочу делать общую сборку в которую вынесу события для эвентбаса. Я хочу чтобы каждый модуль мог сам определить события, и потом если имя И СИГНАТУРА объекта совпадает - какой-то модуль обрабатывал.
Тут и вопрос. Есть ли более хороший путь, кроме как заворачивать при публикации в жсон и динамически пробовать развернуть в объект уже из другой сборки? Я как-то делал типа утиную реализацию, типа если все поля есть - то можем спапить. НО, это во первых был оч обскурный код, там надо было ебаться с генерацией типов в рантайме, да и вообще, не настолько я хорошо знаю шарпы. Больше так не хочу.
Чтобы было понятно: public record UserAuthEvent(int Id, string Name, string Email) : IEvent // MyProj.ModuleA public record UserAuthEvent(int Id, string Name, string Email) : IEvent // MyProj.ModuleB
Почему я так хочу? Потому что я не хочу пересобирать модули, которые не менялись. А если я буду менять какую-то базовую сборку с событиями - все модули что ее используют(считай все) будут должны пересобраться, а иногда это критично.
>>3333788 >а ты пойди и сделай сразу а я иду и делаю сразу. серьезно. в моей либе ака MiscUtils есть много чего и даже больше и уже десять лет минимум. потому что нет ничего сложного сделать сразу.
>чего битками в 2007-м не обзавелся? потому что я не оракул разбираться в чем то новом неизвестном а SortedDictionary существует со времен динозавров и дженерики тоже. Что тут неизвестного то А LINQ наверное инопланетные технологии будущего да? ну а hex это ж...никто никогда не пользуется hex строками.
>>3333789 >Зна́ние за́дним число́м — когнитивное искажение, ты разраб дотнета? взять тот же hex они делают методы в классе Convert не помню в какой версии дотнета И делают метод для генерации хеша в нижнем регистре НО ДЕЛАЮ! ЕГО! ИНТЕРНАЛ!!!!!! то есть они всё таки понимают нужность этого, потому что он был реализован сразу...просто ИНТЕРНАЛ
>>3333890 >то ты неправильно используешь свойства. вернее как раз правильно. геттеры и сеттеры как раз и придуманы чтобы можно было логику добавить, а не только степень видимости установить. Другой вопрос КАКУЮ логику я там пишу - но этот вопрос за рамками.
>>3334076 да ничего когда тебе в чай с сахаром не положат, собственно, чай - ну может ты поймешь в чем беда хотя нет, не поймешь. Тебе в голову мозг не доложили )
>>3334018 >они делают методы в классе Convert не помню в какой версии дотнета И делают метод для генерации хеша в нижнем регистре НО ДЕЛАЮ! ЕГО! ИНТЕРНАЛ!!!!!! Напиши им в issue. Ну то есть это нормальная претензия, буквально создай им этот вопрос в гитхабе, я видел что они вполне себе выносили какие-то методы в паблик на основе реквестов, после обсуждения естественно.
Шо ты так гонишь на дотнетчиков, подумаешь обосрались в мелочи. В листе кстати есть AsReadOnly, которая даже аллокаций не делает, кроме аллокации себя естественно. Чем тебе это не нравится? Решили же твою проблему.
>>3334108 >Напиши им в issue. Ну то есть это нормальная претензия, буквально создай им этот вопрос в гитхабе, ну я так и делаю же. Я ж не говноед, который "жричодали". Вот только толку мало - issue висят годами, вот в чем проблема.
>подумаешь обосрались в мелочи практически в КАЖДОЙ мелочи.
>которая даже аллокаций не делает но меняет объект на другой. Да и костыль это. >Решили же твою проблему нет не решили. Сам для себя я сразу написал метод типа дапперовоского AsList но это никак не решает проблему что другие используют IList потому что "ну всегда использовали, а IReadOnlyList неудобна"
>>3334230 >Почему Котлин такой выразительный? потому что его не делали "они не приняли наш j# поэтому мы запилим СИшарп" - в итоге получился сиподобный язык с сахаром. что тоже хорошо, но все же сахар не был самоцелью а сразу делали упор на DSL-способность языка. рантайм конечно выбрали говно. ну и подход с корутиноскоупами хорош для своих задач, но мозг сломаешь то ли дело простые и понятные тасочки (но это уже другая крайность)
Как автомаппер оптимизирует запросы в БД? Вы из епама? Кто у твоей мамочки сладкий любимчик? Почему Котлин такой выразительный? Почему List не наследуется от IReadOnlyCollection
>>3334314 ну так скорость работы и потребление памяти. там нет запаса на "нам расти надо" и вообще "нас могут менять" и потому можно оптимизировать чтение. Не нужны никакие локи и тому подобное. редко создавать и часто читать - вот их место.
>>3334317 Я понимаю, но прирост для поиска не очень значительный, при больших затратах на саму оптимизацию. Выходит что имеет смысл использовать только для очень долго живущих сервисов? Сначала я вообще подумал это это просто readonly обёртка, типа заморозил коллекцию и будь уверен что никто не не поменяет, в то время как IReadOnly таких гарантий не даёт, ибо бог знает у кого под каким интерфейсом ещё лежит твоя коллекция. Оказалось совсем не про это.
>>3334329 но все же прирост есть. а если создается один раз то еще больше. а там еще jit поработает
это как то работает. вот у меня WPF проект с таблицами и после дотнет 9 прямо заметно шустрее стал. Почему? хз видимо jit что то постарался.
IReadOnly не гарантии что тебя не будут менять. IReadOnly это заявление, что тебя собираются там только читать и поэтому ты можешь впихнуть хоть фрозен. Но это не запрещает тебе ничего менять.
>>3334332 С readonly - было бы удобно иметь условный immutable dictionary, но на хеш таблице. Как раз с целью хранить его и знать что даже если он пришел снаружи - никто поменять его не может. Поэтому первая мысль была - вот оно.
>>3334342 Самое смешное что инфа про это совсем не на поверхности. И уж точно когда ты видишь название ImmutableList ты не ожидаешь логарифмической сложности доступа.
>>3334345 а вот это ты зря. одной моей горящей жопы по этим поводам хватит на освещение всей солнечной системы. так что ты присоединяйся к тем, кому норм.
До чего всё таки убог wpf Да, статья от 2011 года, но поверьте, ничего не изменилось с тех времен. https://jeremiahmorrill.wordpress.com/2011/02/14/a-critical-deep-dive-into-the-wpf-rendering-system/ > I’m currently working on a touch UI for an embedded medical device, and the requirement is basically to provide an iPad app-like UX. The machine has probably 2-3x the raw horsepower of an iPad, but no matter what, the UI just won’t feel as smooth or responsive as a slick iOS app. > For another example, create an animated Expander with a large amount of content in it, or basically, slide anything with a large amount of content in it. This is a common iOS thing. It’s animation will be stuttery, even on a Core i7. > Then I will see some cool HTML5 canvas example posted on Reddit, check the CPU loading it causes, and think there’s no way I could do that in WPF without 2x the loading. Even jquery widgets seem to behave more responsively than my WPF app.
>>3333776 > (это сколько то тредов назад сюда заходил жавишник и выиграл в перфомансе именно по этой причине) Проиграл с этого демедж контрола. Петушарп сосёт БЕСПРОСВЕТНО у джавы в перформансе. Петушарп это говно уровня питухона, т.е. игрушечный язык для долбоёбов что ни разу в жизни не запустали бенчмарк, когда джава это язык отстающий на ~2%-~3% от максимально возможного перформанса в принципе (ассемблера и с++).
>>3334858 да срать на анимации. за них деньги не платят. Зато возможность создать контрол не пердолясь в ручное рисование - это вещь а хамл - не вещь, запарил уже. но альтернатив толковых нет.
>>3334928 сразу видно что ты дурачок если ты сравниваешь с ассемблером то сравнивай в числодробилках, а не либы !!!!с разным функционалом.!!! (потому как даже в рамках одного языка та же жсон сериализация имеет кучу реализаций с разным перфомансом) - сравнение такого рода сразу выдает человека не совсем здорового.
с ассемблером ладно. давай с растом хотя бы (пик) 2-3% ога )))) ну чего еще от дурачков ожидать.
>>3334930 Ага, понятно, жсоны сериализовать можно очень по разному, можно парсить, а можно читать, и на весь огромный петушарп не нашлось либы, что сериализует жсон таким же методом, чтобы также быстро как и на джаве получилось!
>>3334933 каким методом, дурачок? на твоем скрине ВЕБФРЕЙМВОРКИ сравниваются, а не чисто жсон сериализация даже. (то есть в принципе разный функционал у них)
Господи, ты когда жавистов создавал, вообще мозг им давал или отложил "выдам когда реализуют гет/сет на уровне языка"?
>>3334939 ты чего с зеркалом то разговариваешь, жавопсих. да еще так орешь, что всем тебе слышно. ты (или не ты) ляпнул про 2-3%, а сейчас чего то замолчал по этому поводу
а сравнивать фреймворки или сериализаторы будет только имбецил. их воз и тележка в каждом языке, да и разные они между языками (банально в жаве нет структур, с дженериками жопа и так далее)
>>3334940 ну плохо быть тобой. я хз что можно писать на WPF чтобы прямо требовали анимации.
>>3334944 конечно не будет. я не психиатр, справочку выписать не могу могу только посоветовать к нему обратиться но это я как бы сделал...правда не слишком явно
>>3335000 отвечаю только из за трипла. тупость говноеда жависта меня утомила. все всё увидели что не стоит на жаву смотреть, а то такими же дебилами станут
можешь уползать в свой сральник. я больше учить тебя уму разуму не буду даже за триплы
Пришел к выводу, что все связанные с какой-то хуйней вещи должны лежать в одной папке. Иногда даже - в одном файле. Но хотя бы папка - достаточно. Потому что ебись оно в сраку. Какой еблан придумал - константы положить в отдельную папочку. Модельки которые их используют - в другую. В третью - енамы. А потом тебе этот код из проекта в другой проект надо перенести - и ты как ебанат бегаешь и ищешь все говно. Да даже если не переносить - ты подключаешь какую-то хуйню, и тебе хуяк - 100500 неймспейсов навалилось, и начинается....
Короче - структура должна быть такой: - Папка1 --Модель1.цс --Модель2.цс --Константы.цс --ЯСервис.цс --Сервис.цс --МодульТестыСервис.цс --События.цс
>>3335074 > Какой еблан придумал Джависты. Придумывают 100500 пакетов на каждый пук. Потом не могут вспомнить, где что лежит, а автоимпортом импортируют нужное только с третьей попытки. Додумываются называть классы как можно уникальней, чтобы при импорте был только один вариант, и пох, что в имени класса теперь 50 символов, половина из которых совпадает с именем пакета. Хуй знает ваще, зачем это тащат в шарп.
>>3335074 >--МодульТестыСервис.цс Ты еблан? Нахуя тесты пихать в сборку? Нахуя они будут присутствовать в скомпилированном коде, который поставляется клиенту или разворачивается на сервере? Ух, сука, как подгорает!
>>3335074 >Потому что ебись оно в сраку. Какой еблан придумал - константы положить в отдельную папочку. Модельки которые их используют - в другую. В третью - енамы.
Тоже никогда не понимал, зачем так делать. Я руководствуюсь следующим правилом из Библии:
Не клади руку в карман если у той меньше пяти пальцев. Это и не рука вовсе. Если пальцы кривые и выглядят как узелки на верёвочке, то, эта рука больна. Отрежь её. Но не жди, что на том месте вырастет другая, по виду здоровая и которую можно подать и бедному и богатому.
>>3335074 Я группирую по сервисам. В одном файле лежит сервис, интерфейс к нему, все используемые енумы и дтошки. Нахуя плодить 100500 файлов по 10 строк в каждом, а потом лазить по 100500 вкладкам - непонятно, это что-то из области психиатрии.
⚡⚡⚡ глава корпорации Майкрософт Сатья Наделла заявил об отказе от С# и платформы дотнет, а так же переводе внутренних сервисов компании на более выразительный язык программирования
>>3335170 >В одном файле лежит сервис, интерфейс к нему, все используемые енумы и дтошки. Нахуя плодить 100500 файлов по 10 строк в каждом, а потом лазить по 100500 вкладкам Конечно, лучше как ебанутый метаться по одному файлу туда-сюда без возможности посмотреть некоторые места одновременно.
Ну и хранение интерфейса вместе с реализацией, тоже классика. Нахуй он тебе тогда вообще нужен? Ты множественные реализации тоже в один файл с ним будешь засовывать?
>>3335171 В вашей шараге бардак вместо процессов. У нормальных людей таски разделяются между разработчиками и никто в один файл толпой не комитит. Ваш лид пидорас и хуесос.
>>3335809 >в шарпах не было varargs. что значит не было? params много лет просто он либо принимал массив, либо сам создавал - что приводило к лишним аллокациям только для вызова такого метода
>>3335595 >params Невероятно полезная фича уровня dynamic, перепишу теперь весь код нахуй. Паджиты совсем сдулись, уже не знают как выполнить план по нововведениям.
>>3336283 >Невероятно полезная фича уровня dynamic фича как фича. использовал много раз > план по нововведениям. оптимзировать ее нужно было давно. с самого начала, а лучше за 100 лет до рождения c# но раз уж дотнет9 упор на оптимизацию...
а вот фича с индексом с конца - хз кому она вообще нужна
>>3336291 Зачем оптимизировать то, что никому нахуй не надо? Эти params используются только в string.Format, форматирование давно все делают через доллар.
>>3336295 >Эти params используются только в string.Format, мде. что ты пишешь? калькуляторы? это используется там, где это удобно. если ты не использовал нигде - ну это твой частный случай.
>>3333609 Откуда эта тряска чел? У тебя блять нет решарпера в конце 2к24? У меня приватное поле создаётся АВТОМАТИЧЕСКИ когда я требую создать тела для сеттера и геттера.
>>3336514 у меня есть решарпер я тот чел что жалуется что текущий решарпер вешает студию и это известный баг который типа будет пофикшен после нового билда но билда нет уже полмесяца
а теперь по твоей аргументации >У меня приватное поле создаётся АВТОМАТИЧЕСКИ и оно НЕ НУЖНО НИГДЕ!!!!!!!!!!!!!!!!! кроме этого свойства, то есть банальный семантический мусор и ты после этого нормальный? значит не пользуйся филдами когда они выйдут окончательно. ты же нормальный типа ))))))))))) А если воспользуешься (пусть и решарпер тебе перепишет) значит ты пидорасом станешь
Кто переходил с MVS на VS code + linux? Насколько болезненно было привыкание? Я пока только перенес проект на .net8 в vscode и охренел от древнего и неудобного интерфейса. Настроил запуск в режиме отладки, публикацию. - работать можно, но все желание работать в vs code пропало.
>>3336576 Vscode кривое тормозящее говно. У меня после какого-то из недавних апдейтов пропадают букмарки, в списке они есть, а в окне с кодом нет. Паджиты, хуле. Хуитку из трех файлов вскоде еще потянет, но в продуктовом солюшене однозначно нет пути.
Линукс это ОС для серверов чтобы экономить на лицензии и то при наличии денег лучше ставить винду. Он просто напросто непригоден для работы, ты будешь больше ебаться с проблемами кривых пакетов и почему у тебя отвалилось "хуйня_нейм"
Недавно занимался добавлением авторизации через keycloak и через наш стандартный вариант текущий. Хочу высказать моё почтение, разрабы .NET сделали реально заебись. В плане Keycloak достаточно просто добавить конфигурацию и прибиндить и оно работает, просто работает, сразу и без каких-то проблем. В целом с любым OAuth2 будет также.
Что не заебись это поведение при AllowAnonymous. В таком случае .NET все равно пытается проверить токен, но только при наличии схемы по умолчанию. Проблема заключается в том, что даже так дотНЕТ проверит только эту самую по умолчанию и дальше ничего не сделает. Политиками по умолчанию это не решается, надо указать именно схему. В целом это не влияет никак на бизнес логику потому что ей, очевидно, не нужна информация о пользователе. Проблема в логах, там теперь нельзя понять кто же сделал анонимный запрос.
Раст обоссал петушарп, джава обоссала, говно обоссало, питон обоссал, жопаскрипт обоссал, плюсы обоссали, даже ёбаный кложур обоссал! Как после такой зрады жить-то можно вообще?!
>>3336587 >Нахуя ты на линукс перешёл? Импортозамещение на гос галере. Ещё и астру-линукс ставят. Я пока подготавливаю рабочее место. Может проще перейти на джаву+эклипс, чем ебстись с дотнетами на вскоде?
>>3336755 >Импортозамещение на гос галере. А где вы сборку .Net берете? Качайте у Майков или есть импортозамещенные сборки .Net с саппортом и ГОСТ 28147-89?
>>3336755 >Может проще перейти на джаву+эклипс, чем ебстись с дотнетами на вскоде? Проще писать коды на своем компе, а кабану скидывать уже готовое через дыру в его анальном огораживании. Тогда и не придется ни на что переходить.
>>3336910 >ГОСТ 28147-89 В .Net-е по моему никогда и не было гостовских алгоритмов. Их всегда приходилось колхозить через всякие криптопро, сигнатуры и т.д.
>>3336604 >В идеешке запросы отсылать люблю Имеешь в виду .http files в VS? Да, удобно. Но тогда ты должен знать, что оно вдохновлено VS Code REST Client extension. А VS Code работает и на лялихе.
>>3336980 > что оно вдохновлено VS Code REST Client extension
не, оно ещё в саблайм тексте 10 лет назад было.
Ну не запускать же VS CODE, который отжирает гигабайт памяти только за факт своего запуска? Тем более Visual Studio.
Вообще обидно. HTTP протокол простой как палка, для него нужна программа простая буквально как блокнот. А мы имеем комбайны с ЭЙ АЙ КЛАУД ОППОРТУНИТИС чтобы курл дёрнуть.
>>3337016 > нужна программа простая буквально как блокнот Раз она такая простая, тебе не составит труда написать её самому. Простых программ дохуя, ими весь гитхаб завален, но они же все не на слуху, страшно использовать.
Да в том и вся проблема. Либо постман, который уёбищен во всех смыслах, либо кустарное говно, которое при первых признаках популярности начинает просить всего по пачке жевачки в месяц (10 долларов, разумеется, а где эти доллары брать, я хуй знает, в руках их держал 1 раз в жизни).
Какой-то заколдованный круг в итоге.
Для себя я уже начал накидывать прототип на авалонии. Думаю уложиться в 800-140 мегабайт оперативки. Но чтобы довести до вменяемого уровня, надо усилия прилагать, тратить время, вылизывать и делать внимание к деталям.
Это всё если либо более глубокая "инфа" по разным темам или просто внутренности рантайма и т.д. Но я думаю всё это есть в той книге, в той или иной степени (я просто х.з., всё руки не доходят до неё).
Я был бы не против если бы кто-нибудь ещё что-то подобное кинул.
Почему студия не имеет рефактроинга - ПЕРЕНЕСТИ В ДРУГОЙ ПРОЕКТ? Понимаю, что вопрос про софт, но типа. Вот допустим, начал я что-то писать. Допустим, обертку над ребитом. Определил там сразу Event, ну, типа шина, вся хуйня. Прошел год. Все пользовались, но закралось подорзение, что не гуд, что каждая блядская либа из класса *.Domain - знает не только про события, но и зачем-то интерфейс шины. Возникает охуенная идея - а вынесу я Event - в отдельный проект, в духе Company.Project.Primitives. И все. Пизда пошла. Теперь я как еблан бегаю в 100 местах ставлю ссылку на новый проект, удаляю ссылку на проект с абстракциями для шины.
А как было бы удобненько, если бы вот как с неймспейсом, но для проекта было бы. Клацаешь: Перенести в проект. Оно в корень перелетело, ссылки проставились где надо. Да. Ссылка на абстракции шины осталась, но там можно было бы другую хуйню еще: Удалить ссылки на неиспользуемые зависимости. И хуяк - у всех проектов осталось только то что используется.
>>3337145 То что это делается не автоматически. При переносе класса в другой неймспейс - студия сама все импортирует. Когда я переношу руками в другой проект, на который нет ссылки, начинается - 9000 ошибок, не знаю что за класс. И я как дебил полдня трачу, чтобы все импорты проставить.
>>3337164 Сколько у тебя там проектов в солюшене, что ты по пол дня тратишь на то, чтобы в них ссылки проставить? Просто если для тебя это постоянно боль, то вангую что с архитектурой что-то не то. Скорее всего десктопные приложения пилишь, да?
У меня, за все время работы на последнем месте, необходимость вынести что-то прям в отдельный проект появлялась раз 5 от силы, и то это обычно было в репозитории с платформенными либами, когда либу на Abstractions и Implementation пакеты разбивал, чтобы не тянуть лишние пакеты-зависимости туда, куда не следует. В самих же (микро-)сервисах, при создании проекта у нас автоматом из шаблона создаются проекты под слои приложения (Domain, Application, Infrastructure, Hosting) и CrossCutting-проект для всяких хелперов и методов-расширений, которые могут в любых других проектах использоваться. И обычно достаточно просто перекинуть код между проектами (к примеру из Domain в Infrastracture, как в твоём примере с шиной), а потом просто попросить IDE автоматически выправить пространства имён и using'и по всему решению.
>>3337250 Приложения. Но в них я чаще говноархитектуру встречал. В ASP.Net Core сама структура фреймворка и сопутствующих либ диктует, как приложения на слои разбить. Есть контроллеры, есть EF-Core для доступа к данным и т.д. Во всех местах, где работал, структура сервисов была +/- похожая. Везде на слои били. А в десктопных обычно все лепят кто во что горазд. Плюс не одного устоявшегося стандартного фреймворка. Где-то Prism юзают, где-то что-то своё на основе MVVM Community toolkit пилят, а где-то реактивщиной с ReactiveUI упарываются. Ну и просто по объему кода десктопные приложения обычно заметно жирнее, так что там проблемы с архитектурой острее стоят.
>>3337266 >Во всех местах, где работал, структура сервисов была +/- похожая. Везде на слои били.
Я работал с долблёбами, которые повторяли в день слова clean architecture по 10 раз, кичились ДДД, у них была разбивка по 5-7 слоям, но в итоге всё сваливали в кучу в проект Core.Domain, к которому подключались все нугеты.
Вот тогда я понял, что лучше не понимать вот эту всю архитектурную хуйню, чем понимать, но неправильно.
А к чему это я. Правильно: тот проект был о разработке твоей мамки
>>3337266 >как приложения на слои разбить. Есть контроллеры, а кто сказал что это хорошо. Поклонники feature-based деления скажут что вы шизанутые части одной фичи по 100500 мест размазывать
>>3337272 > ДДД Для меня это уже редфлаг. Если мне на собесе скажут, что у них все по DDD, то я скорее всего дропну вакансию. Только один раз видел, когда его нормально реализовали. В остальных местах был просто какой-то лютый дроч без особого выхлопа.
>>3337272 У нас крч интерфейсы лежать в слое Domain их реализации и регистрации в Api и используют их в Application слое.
На мои логичные вопросы а почему бы вам не переложить реализации в Application, а ещё лучше в слое Domain пошли какие-то ебанутые рассказы про чистую архетуктуру. На это я прям на встрече сказал "ну окей давайте я сейчас добавлю новый слой PizdaApi или удалю Api. Ой блять приложение больше не запускается." Причём их даже это не убедило, что у них ебаный слой Api предоставляет Application реализации бизнес логики, а значит Application транзитивно от него зависит. Аргумент был заебись "ну ссылки до идут от Domain <- Application <- Api" ссылок на проект нет значит и зависимости нет.
>>3337236 > Сколько у тебя там проектов в солюшене 120 примерно. С ходу не вспомню.
> Просто если для тебя это постоянно боль, то вангую что с архитектурой что-то не то Ну. Как. Обычная микросервисная. Штук 15 сервисов, каждому из них создай домен, инфраструктуру, DAL-уровень, какую-то либу для своих ютилити штук. Плюс - десяток либ для внутреннего использования или вот как раз с теми примитивами, которые всем нужны. Ну или всякие общие мидлвары и все такое.
>>3337266 Как раз и разбивали. И это еще большая боль в заднице. Вот у тебя домен. Домен должен по хорошему ничего о шине не знать, только объявить свои события. Вот у тебя приложение - оно уже про шину знает, но не знает с какой конкретно работать будет, ей нужны абстракции шины. Вот у тебя инфра - она уже знает, что с кафкой работать надо. Вот у тебя еще запускатор, который может быть с веб-апи, а может без, в зависимости от сервиса.
И вот тебе надо из проекта EventBus.Core - вынести Events в проект Primitives. Все. Пошла пизда. Всем доменам - добавь ссылку на это, удалить ссылку EventBus.Core. Теперь всем приложениям - уже надо добавить ссылку на EventBus.Core, ведь теперь они не могут из домена это получить. Ну и т.д.
Это самый простой пример. А когда начинается хуйня с контрактами. Ебись оно в сраку если честно. Одни пишут - харам общую сборку для контрактов, вы же завтра решите на питон переписать, так что сразу делайте что сервис сам контракты объявляет. Другие - не страдайте хуйней, вынесите контракты в одну сборку и пусть все подключают. Третьи - нет, разбейте по доменам, и общие доменные события в одну сборку, нехуй сервису знать про события, которые в других сборках.
Короче. Залупистика. А вынести иногда надо. Потому что когда у тебя библиотека какая-то должна на сторону пойти - выглядит кринжово, что с ней рядом лежит dll в которой половина кишок валяется.
>>3337324 Ну а я это к чему пишу-то. Вот типа когда я пишу два класса в одном файле - студия предлагает рефакторинг - о, можно вынести в отдельный файл. Или когда я хочу - я навожусь на неймспейс - и она такая, а давай перенесем куда тебе надо, хоть новый создадим. И если кто-то использует класс - везде оно поменяет.
Вот нужна такая же фича для переноса между проектами. Было бы просто замечательно. Да.
>>3337324 Вот за это и не люблю монорепы (даже для одного приложения). Еще и студия/райдер тормозят от такого кол-ва проектов. Как по мне, лучше уж каждый микросервис в отдельном репозитории держать, а какие-то общие штуки в nuget-пакеты выносить. Так меньше соблазна сослаться на то, на что вообщето не следует. И вообще более вдумчиво все начинают подходить к тому, какие штуки должны быть общими. А проблему контрактов мы у себя с помощью protobuf-ов и GRPC решили. У нас просто есть консольная утилита, которая берет ссылки на протники из репозиториев других сервисов из yaml-файла, который в репозитории сервиса лежит, и подтягивает их в проект. При билде для них C# контракты генерируются. Общие для всех сервисов протники просто в отдельном репозитории лежат и так же подтягиваются из него утилитой. Плюс недавно джобу для билд-пайплайна запилили, которое проверяет, нет ли в мр-е tracking changes в протниках.
>>3336919 Про ГОСТ это была шутка, вопрос про сборку .Net. У Java есть Axiom JDK которая собирается российской компанией, находится в Реестре Российского ПО, сертифицирована ФСТЭК. Соответвенно мой вопрос, есть ли что-то подобное для .Net?
>>3337376 Какой пиздец это оказался не троллинг. И сколько денег освоили эти парни из Axiom, какой олигарх или министр крышует? Я блеванул с главной страницы их сайта. Сборки дотнета нет потому что дотнет лежит на гитхабе. Вообще сборки в программировании это какая-то специфика джава мира.
>>3337084 Не смешно. Мне надо по требованиям использовать нативную сёрд пати лайбрари, которая доступна в виде jar-ника. Во флаттере я могу захерачить активити и общаться с ней из нормального кроссплатформенного кода. Как мне в уно сделать что-то подобное?
>>3337297 >пошли какие-то ебанутые рассказы про чистую архетуктуру. Но по чистой архитектуре должен быть проект Infrastructure с реализациями, если они зависят от базы или третьих сервисов. Если это какие-то типо Domain сервисы - их реализация может быть и в Application.
В Api ничего быть не может, что не относится именно к api.
>слой Api предоставляет Application реализации бизнес логики, а значит Application транзитивно от него зависит Смотря что за реализации, но так это и должно работать.
>>3337437 Не, удобно на самом деле. Это стандартный флоу для GRPC. Все эти контракты автоматом генерируются стандартным гуглувским пакетом (Grpc.Tools который). А вместе с контрактами сразу генерируется абстрактный класс для реализации объявленного GRPC-сервиса (там остаётся только заовверайдить методы и их реализовать) и реализация клиента для него.
>>3337444 >Смотря что за реализации, но так это и должно работать В смысле смотря что. Там лежит реализация интерфейса из Domain при этом используется этот интерфейс в Application. Это не должно так быть и так делать нельзя потому что ты связываешь два разных слоя причем. Ты не можешь отделить АПИ от твоей системы и наоборот заменить то что лежит ниже этого АПИ.
>>3337509 >Это не должно так быть и так делать нельзя потому что ты связываешь два разных слоя Ты просто создаёшь в домене некие абстрактные интерфейсы которые реализуешь потом.
Если написано хорошо и удачно - ты сможешь заменить апи на десктоп, а SQL базу на NoSql буквально без единого изменения в домене. Потому что он зависит от интерфейса, а не от апи напрямую. Цель - сформировать самодостаточный уровень домена, который бы не зависел от реализации. Но в отрыве от базы данных и прочего не очень понятно что должен делать код уровня "SaveUser" или "SendMessage", поэтому эти вещи существуют в домене как интерфейс без реализации.
>>3337574 По моему сюда пишут только тогда, когда шарподебилы начинают активно у нас срать. А вообще общеизвестный факт, что священный вояка это безработный пидорас и ненавидим обеими сторонами.
>>3337538 >Если написано хорошо и удачно - ты сможешь заменить апи на десктоп, а SQL базу на NoSql буквально без единого изменения в домене. Караван охуительных историй. Нет, не можешь.
>>3337297 > На мои логичные вопросы а почему бы вам не переложить реализации в Application...
АДИК - субъективная и неоднозначная архитектура, которую каждый волен трактовать по своему.
Более того, она в принципе не реализуема, потому что всегда есть входная точка приложения, при упоминании которой принято стыдливо отводить глаза в сторону и переводить тему.
>>3337586 Ты просто не видел как это по-нормальному пишется.
И это нормально. Потому что хорошая чистая архитектура действительно почти нигде не нужна. Нужно какой-то рандомный шаблон чтобы раскидать всякие классы, для этого что угодно подойдёт как основа.
>>3337736 Монга - это секта поехавших, с ними бесполезно говорить. Если в проекте упоминается монга - там дичайший кал говна, от которого охуеют даже паджиты.
>>3337389 >Что не так, Это твоем хеловорду похуй на чём и как запускаться. А в крупных компаниях сидят на старых версиях и надо чтобы кто-то бэкпортил критичные багфиксы. Чтобы можно было засабмитить баг и его пофиксали. Вот для этого и нужен суппорт.
>>3337389 >Иди билди дотнет и продавай кабанычам. Куча компаний зарабатывает на том что билдит ядро линукса, посторесс и т.п. с гитхаба.
Надо замутить rest api сервер под виндой работающий в виде сервиса. Как лучше сделать, на asp.net или может какой нибудь хороший nuget пакет есть для этих целей? К asp.net душа не лежит. :С
>>3338787 >А чего не лежит? хз, сложилась ассоциация что это интструмент для вебсайтиков. Ну и он монструозный, мне надо компактный для лёгкого сервиса.
После двух недель мучений с Unity хочу спросить: - Как жить без указателей? - Как жить без #define? - Как жить без typedef? - Как жить без человеческих enum'ов? Хули тут всё так неудобно?
>>3338943 Писать свой движок, конечно, интересно и приятно, но нереалистично, если хочется писать игру, а не движок. Юнити тот ещё кактус, но увы, это всё ещё лучший вариант для одиночки, если хочешь в приёмлимые сроки написать законченный продукт, а не разрабатывать тулзы до старости. >>3338944 Сомневаюсь. Неуютное чувство, что тебя держат в песочнице и смотрят как на идиота никуда не денется.
А с чего вообще вкатываться? Меня направили из Unity/C# в дотнет из-за невозможности найти работы. ВО нету, с БД не работал, в вебе и серверах не шарю. С чего начинать вообще и за что браться? На каких проектах отрабатывать? Если в ГД просто берёшь и делаешь игру или прототип с механикой, то тут везде разные требования и фреймворки.
>>3338926 >- Как жить без указателей? Они там есть. Ну вернее в шарпе есть. В юнити я не знаю чем тебя барин кормит. >Как жить без #define? >Как жить без typedef? Это всё есть.
>>3339041 проблема в том, что этот франкеншейн просто этакий не пойми что вокруг типа и ничего более ты не можешь хранить разные значения в нем (да ты можешь это делать с помощью классов, но зачем тогда енум)
также ты можешь присвоить значение которого нет в енаме и никто и слова против не скажет.
Получается по факту что это строковое обозначение каких то значений базового типа (например инт) причем не бесплатно в плане выполнения (банально медленнее чем тот же инт) и при этом позволяет присвоить чего угодно. Этакий враппер над базовым типом с недовозможностями.
>>3339118 то есть базовый убогий механизм, причем кривой, ведь можно присвоить енаму значение, которого нет там вообще. И нужно ручками самому проверять лол. >>3339120 шарп не один язык имеющий энамы. посмотри на котлин посмотри на rust (пик) - в языке в принципе нет полиморфизма
>>3339621 какая разница. я просто показал что это не "нельзя сделать такие енумы ибо полиморфизмы и другие умные слова мешают", а просто шарп сделал убогие енумы
>>3339650 >вообще то это обертка над числом на уровне IL, поэтому работает коряво и медленнее. А, ты шизофреник просто. Так бы сразу и написал, а то выдумывал что у шарпа какие-то проблемы есть лол.
>>3339670 >>3339685 >>3339672 это не число (пик пруф) коряво, потому что всякий десериализатор впихнет туда любое число и не поперхнется. Ну ладно это природа енума ради перфоманса.... но перфоманс их оставляет желать лучшего. О скорости методов енума легенды ходят. ну ладно, там линейная сложность + рукожопство разрабов шарпа
так что возьму простое - я как то в микробенчах заменил енумы на числа и получил х4 в скорости. То есть это нихрена не zero cost
>>3339984 Просто ты долбоёб и даже микробенч не смог написать что бы не наглотаться погрешностей измерения времени.
По дизассемблеру, чего тебе дебило не нравится? Потерей никаких нет, все ровно целое число и занимает.
>рукожопство разрабов шарпа
Угу, липперт и хейлсберк сидели в мс за зарплатой 5 лямов в год потому что рукожопы, а какое-то анонимное ебанько вершина достижений которого срать на сосаке, нерукожоп. Я бы на твоем месте задумался над самооценкой.
>>3339984 Ебать дебил. Как из того факта что енум в IL имеет самостоятельный тип следует что в рантайме будут накладные расходы? Что тебя ждёт когда узнаешь что генерик в дот нете тоже имеет прямое представление в IL а не макрос времени компиляции как на плюсах?
>>3340009 >Угу, липперт и хейлсберк сидели в мс за зарплатой 5 лямов в год так вот в чем причина, что очевидные оптимизации делаются через годы, а то и десятиления. Я тут выше писал про дотнет9 как пример.
Интересно, а почему эти супер кодеры не сделали Enum.GetValues (и другие методы) быстрым сразу, а потом? Почему в LINQ оптимизации "а вдруг у нас тут список, так зачем создавать итератор если можно пройти по индексу" завозят только к 9й версии дотнета? это все риторические вопросы чтобы подольше зарплату получать видимо. Ясно понятно.
зато они забыли сделать IReadOnlyList на старте (хотя может не они) и спроектировали дебильную систему коллекций. (но это уже оффтоп)
>>3340009 >Я бы на твоем месте задумался над самооценкой. у меня с ней все нормальн. это мс меня за дебила держит. поэтому и сделал ConfigureAwait(true) (боже, ну и синтаксис) по дефолту. Все в угоду формошлепам, чтобы им меньше этой пурги писать (а то дедлоки хуже чем "к контролу нельзя обращаться в другом потоке"...)
И когда остальные попросили "а можно нам на уровне сборки указать чтобы можно было чтобы он был (false)" - то результат все знают. Нет никакого результата. Даже в асп.нет коре пишут что там нет контекста синхронизации, но оверхед не сильно высокий от ConfigureAwait(true) по дефолту. То есть на полном серьезе - оверхед, да есть, но он же небольшой, чего вы жалуетесь, мы тут по 5 лямов зарабатываем.
>>3340052 >>3340046 С енумом напукал в лужу, теперь по таскам решил насрать, генератор ты шизофазии нахватвашийся баззвордов? Иди учебники читай а не сри в треде. Всё там правильно сделно, тебе дебилу на низкой должности не понять. Читай бложек Липперта, он там популярно объясняет как принимаются те или иные решения по языку, по каким критериям и что берётся в расчёт.
>>3340069 по таскам и по всему остальному я срал всегда. а пояснения вместо функционала и скорости - лично мне они не нужны. Он может пояснить почему методы в LINQ что добавили в дотнет 9 не были добавлены раньше? не нужны были? тогда зачем добавили? нужны были? тогда почему только щас?
аргумент "потому что так в мануале написано" оставь говноедам.
Насчет енамов признаю только частично. Ведь от этого они не стали ничем более как именованными интами без защиты от записи чего угодно. И когда у тебя в енуме 3 значения 1,2,3, а тебе может в рантайме спокойно прийти 10 и твой метод ожидающий что может быть только 3 варианта...
>>3340174 >твой метод ожидающий что может быть только 3 варианта Падает на строке default throw new NotImplementedException() Точнее, это написано в бузинес логике на всякий случай. Так-то ты мальчик взрослый и конечно же проверил юзер инпут еще в контроллере ручки, хитрый юзер получит ошибка 500 или чето там.
>>3340046 >зато они забыли сделать IReadOnlyList на старте (хотя может не они) и спроектировали дебильную систему коллекций. Они пиздили её из другого языка, где тоже не было ридонли коллекций. Как и lock (object) спизжено. inb4: сегодня то, уже очевидно, что надо было делать по другому. Но тогда всё было не так очевидно.
>>3340174 >а пояснения вместо функционала и скорости - лично мне они не нужны. Так ты на пиздел про скорость.
>Он может пояснить почему методы в LINQ что добавили в дотнет 9 не были добавлены раньше?
Ответы дадены в моём сообщении, перечитывай до просветелния. А ещё задайся вопросом почему Сталин людям ХДТВ не давал смотреть.
>Ведь от этого они не стали ничем более как именованными интами без защиты от записи чего угодно У тебя совсем что ли вместо мозга насрано? Это их киллер фича и повсеместно используется. Без неё они не нужны т.к. будут дублировать обычный классы с кастом логикой.
Аноны, стоит ли идти на позицию +1/3 дохода, если там может быть довольно уныло (много хранимых процедур, мало собственно разработки на .Net). Или поискать столько же выгодной вариант, но более интересный?
>>3340871 >Их наличие в целом красный флаг. У меня сейчас проект, где много бизнес-логики написано на хранимых процедурах. Это такая мучительная блевотина, что я засомневался соглашаться на новый офер, если получу его на наступающей неделе. Даже прямо за очень хорошую прибавку.
>>3340972 >Хранимки означают, что на проекте бд инженеры есть. Нет это означает что тебе придётся заниматься адовой ракоеблей на проде в попытке отловить баги через RDP говна под тремя слоями анальной модерации, а любая правка бизнес логики будет требовать десятка часов чтения говнокода.
Я белый человек с зп 320к который работает в банке бэкендором онли. Мои знания БД и как там это сделано заканчивается на миграциях в EF. CI/CD пишет и поддерживает девопс, фронт пишет фронтендер, за базой следит тоже девопс. Моё дело переложить JSON с фронта в базу в с помощью автомаппера
>>3340919 Я на пяти работах из семи работал фуллстеком, и это ничем не хуже тех двух мест, где я работал бэкендером. Даже лучше, не надо с фронтами договариваться о контрактах, а то у них вечно какие-то ебанутые просьбы, то вместо массива объект прислать, то ещё какая хуйня. С собой гораздо проще договориться.
>>3341362 Какая же хуета этот ваш питон. Вынужден был с ним связаться, и более уебищного языка я еще не видел (а я с бейсика пришел). Иногда нужно окунуться в говно, чтобы полюбить си шарп с еще большей силой.
Никто код не комментирует, везде каст к object или any, и вызывают методы из обджекта по наитию. Никаких подсказок intellisence, а если и есть, то что-то уровня пикрилейтед 1, где вываливают в кучу описание метода, описание параметров, и все без подсветки синтаксиса.
Все поля публичные, в итоге люди пытаются капсом или подчеркиваниями визуально отделить мочу от говна. Ну пиздец какой-то. Неудивительно, что в их тредах растет шиза уровня пикрил 2. Они выдумывают какие-то ритуалы, чтобы что-то там не перепутать, хотя в нормальном языке синтаксис в принципе не должен тебе позволить перепутать.
>>3341577 >Никаких подсказок intellisence, а если и есть, то что-то уровня пикрилейтед 1 так ты прыгай обратно в машину времени и возвращается а то забросило тебя далеко в прошлое.
>>3341591 >type hints Первым делом начал юзать, но что делать с чужим кодом? Ты посмотри на пикрилейтед. Функция принимает any параметры, нииии одного комментария. Как с этим работать вообще?
1. Не трогаю их вообще никогда. 2. Даже если удаляю код вокруг, то то комментарии, если они были, оставляю на месте. 3. Если надо добавить метод, в класс с комментариями - просто вписываю его под уже существующий комментарий, если он хоть примерно пару подходящих слов содержит.
>>3341636 >>3341639 Питоноблядь порвалась. Да у вас и приватные поля и методы создают только долбоебы. Указание типов параметров и переменных — это тоже для долбоебов. Высрали нечитабельное говно и рады.
>>3341652 >Да у вас и приватные поля и методы создают только долбоебы. Указание типов параметров и переменных — это тоже для долбоебов. Высрали нечитабельное говно и рады.
Зачем этой хуйнёй заниматься, если можно просто через автомаппер писать? Ему не важна видимость и типы, а в случае, если типы не сходятся, он сам всё выведет
>>3341650 в контексте питона тут другое. в питоне 3 есть тайпхинтинг на уровне синтаксиса, а вот в питоне 2 только в докстринг можно что то указать. упоротые орали про "питонвей, питон это динамика". А нормальные делали, а с приходом тайпхинтинга нормальных стало сильно больше, но если либа старая, то с ней реально проблема. Вот есть либа pewee - ее автор долбоеб, который специально не делает хинты ибо упорот. Но я вот попробовал ее захинтить и это реально жопа делать постфактум, то есть ниасилил я покрыть всю ту магию, что она в динамике выдает, хинтами.
>>3341652 шарпоблядь рвет жопу, а зачем? я тоже шарпист, но если собрат шарпист несет хуйню, то я с радостью потыкаю его мордой в "иди изучи вопрос, а потом рот открывай".
>>3341660 >я тоже шарпист Здравому человеку в голову не придет высрать пикрилейтед >>3341616 Ты просто горишь из-за того, что питон оскорбили. Никто в здравом уме не будет на шарпе писать только публичные поля и методы, возвращать и принимать данные object типа, не документировать свойства, классы и методы.
>>3341664 а тыкаю я мордой в говно тех, кто в вопросе не разбирается, но мнит себя дохера экспертом.
>Никто в здравом уме не будет на шарпе писать только публичные поля и методы, возвращать и принимать данные object типа, не документировать свойства, классы и методы. ну так шарп и задуман как статически типизированный язык, а питон задуман ровно обратным. Природа у языка такая - быть динамическим где всё создается в РАНТАЙМЕ.
>Здравому человеку в голову не придет высрать пикрилейтед еще как придет. причины есть 1 это порт или враппер аля QT. а значит есть офф дока по всем этим параметрам. зачем её еще раз писать 2 когда в языке нет поддержки хинтов, то писать как бы нечем. А в пи2 такого не было ибо динамическая природа языка. И очень много кода с тех времен, которые тупо перегнали конвертером под пи3. А многие до сих пор поддерживают обе версии зачем то. Да и сейчас чтобы писать с хинтами - это нужно писать игнорируя динамическую природу (основную силу питона), а будто на шарпе каком пишешь. Сначала выбираешь динамику, а потом пишешь как будто статика. Зачем тогда питон вообще выбрал?
Каждому языку своя задача. Иначе почему твой супер любимый красивый и мощный шарп не заместил питон. риторический вопрос.
>>3341676 >а тыкаю я мордой в говно тех, кто в вопросе не разбирается А ты разбираешься? Каждый второй дурак умеет тыкать других мордой в говно — для этого много ума не надо. Самоуверенность — не признак правоты.
>Природа у языка такая - быть динамическим Не надо оправдывать глупости. Все мои претензии спокойно реализуются либо уже реализованы, но игнорируются пользователями. Что мешает динамическому языку иметь приватное поле? VBA чет не помешало их иметь.
>когда в языке нет поддержки хинтов, то писать как бы нечем. Но их появление — разве не доказательство моей правоты?
>Иначе почему твой супер любимый красивый и мощный шарп не заместил питон. риторический вопрос. Вопрос форса языка инфоцыганами среди долбоебов (которых подавляющее большинство). Во многих сферах я встречал абсолютно ублюдочное приложение, которое по видом "справится и дурак" захватывало огромную аудиторию. Это даже не новость.
>>3341707 >А ты разбираешься? да. пишу на многих языках, но не лезу со своим уставом в чужой монастырь. а раз я пишу, то я ЗНАЮ как что где устроено Впрочем, это неважно потому что только долбоеб высрет фразу "Да у вас и приватные поля и методы создают только долбоебы" - смысл которой понять может не только лишь каждый, а понять может только долбоеб.
>Что мешает динамическому языку иметь приватное поле? ничего не мешает. просто это ДИНАМИЧЕСКИЙ язык где "всё есть словарь". И классы построены поверх этой концепции. как в том же раннем жс поверх прототипов было. и сокрытие там есть - просто на уровне конвенции без лишних слов одинарное подчеркивание - протектед двойное - приватное и ни один нормальный редактор тебе его не подскажет снаружи, да и в рантайме чтобы добраться до этого приватного тебе нужно построить правильное имя. Ну так и в шарпе можно добраться до приватного поля - получается шарп не имеет средств для задания видимости?
>Но их появление — разве не доказательство моей правоты? на момент появления кода их не было - раз. они все равно не могут покрыть динамику - два. Чтобы они работали - это нужно писать сразу с ними и забыть про магию. А это далеко не везде возможно. да и они для редактора больше, а в рантайме их никто не проверяет.
>Вопрос форса языка инфоцыганами среди долбоебов может тебе реально пописать на обоих языках чтобы понять что ты несешь херню? риторический вопрос. у тебя синдром утенка. я вот использую языки и знаю достоинства и недостатки. и поэтому прекрасно понимаю силу и слабость питона и шарп. и только утята пытаются запихать шарп везде, но реальность такова, что так не работает
>>3341723 >да. пишу на многих языках Специалист во всем и ни в чем не мастер. И прям щас лезешь в чужой монастырь, предлагая ебанутые идеи, вроде не документировать и не комментировать в коде шарпа. На столько тебе горит, что написал это трижды.
>ничего не мешает А хули тогда споришь, кретин?
>и сокрытие там есть - просто на уровне конвенции без лишних слов Вот пока вы так делаете, все так и происходит. Потом часами спорите с какой стороны ставить коснтанту.
>может тебе реально пописать на обоих языках чтобы понять что ты несешь херню? А может послать нахуй говноязык и не пачкать руки? Ты — печальный пример самовлюбленного хуесоса, который лезет во все щели и навязывает больные идеи.
И заметь, когда мне что-то не нравится, я просто в это не лезу. Ты начинаешь распространять вредные идеи и "тыкать мордой в говно" тех, кто посмел возмутиться.
>>3341676 >Сначала выбираешь динамику, а потом пишешь как будто статика. Так-то помимо динамической/статической типизации есть еще сильная/слабая. И писать на пайтоне, как на каком-нибудь сраном js, такое себе.
>>3341723 >да. пишу на многих языках, >а раз я пишу, то я ЗНАЮ как что где устроено Ну или наоборот - нахватался по верхам и считаешь, что преисполнился.
>>3341723 >Ну так и в шарпе можно добраться до приватного поля - получается шарп не имеет средств для задания видимости? Только в шарпе для этого недостаточно просто "построить правильное имя", а произвести некоторый комплекс действий, применение которого само по себе уже говорит "шатал я ваше ООП и области видимости в текущий момент"
>>3341731 >предлагая ебанутые идеи, вроде не документировать и не комментировать в коде шарпа долбоеб? риторический вопрос. я лишь пояснил ньюфакам почему отсутствие хинтов не является дичью, как бы это не раздражало (в том числе и меня). остальное ты придумал сам.
>А хули тогда споришь, кретин? кретин тот, кто заявляет что там нет приватных вещей. Угадай кто из нас это заявил.
>Вот пока вы так делаете, все так и происходит никто не спорит. это как раз дао питона (ну изначальный) - "есть только один путь сделать это". Поэтому там и отступы для блоков. Это как раз в других языках спор "а как именовать приватные, нужна ли буковка m" или "открывающую скобочку на этой строке или переносить".
>А может послать нахуй говноязык и не пачкать руки? тебя кто то заставляет писать? не пиши, какая проблема. Но идиотом ты выставляешь себя САМ
>>3341736 я НЕ про динамическую типизацию. А про динамическую ПРИРОДУ. при которой, например, класс (да и вообще всё) создается В РАНТАЙМЕ. То есть итоговые поля, методы и прочее создаются в рантайме и никакими хинтами на уровне IDE ты их не опишешь. Декораторы могут породить что угодно ибо динамика.
>>3341739 по себе судишь. ну учитывая твои аргументы - ты даже по верхам не смотрел. ты вообще не знаешь о чем говоришь, и просто позоришься.
>>3341744 > а произвести некоторый комплекс действий а в чем разница? а ни в чем. просто ты снова "слышал звон, да не знаешь где он"
>>3341750 >кретин тот, кто заявляет что там нет приватных вещей. Угадай кто из нас это заявил Ну ты и клоун. Т.е. нет приватных модификаторов и ничего не мешает питону их заиметь, при этом их нет. Вместо этого дурачки закрывают глаза и представляют, что нет кучи говна в списке IntelliSence. При этом я в чем-то не прав, назвая это дебилизмом и вынужден читать ебанутый аргумент про то, что язык динамический, что не мешает языку заиметь приватные модификаторы, при этом их нет.
Чуешь чем пахнет? Получается замкнутый круг, когда хочешь добиться ответа от дурачка. Он приводтит аргументы, которые никоим образом не оправдывают то, что должны оправдывать. Зачем тогда он их приводит — не понятно.
>>3341778 >Т.е. нет приватных модификаторов а должны быть средства управления областью видимости или именно какие то ключевые слова чтобы лишь бы были потому что гладиолус? средство есть - двойное подчеркивание. Зачем требовать необходимость особого слова?
>что нет кучи говна в списке IntelliSence ее нет. Нормальная IDE знает, что __foo это приватное и не покажет его. И даже _foo не покажет. нет никакой разницы между тем как IDE воспринимает private. У тебя синдром утенка что приватное что то обязательно должно иметь слово private? private class в шарпе давно писал?
да чую. дураком пахнет. дураком у нас выставляешь себя ты.
>>3341783 >Нормальная IDE знает, что __foo это приватное и не покажет его. И даже _foo не покажет. А причем тут ИДЕ? Почему питон выполняет скрипт где идёт обращение до приватного поля. Вообще private делает чуть больше чем просто скрывает поле в ИДЕ, но откуда пеутонщику это знать.
>>3341841 >Почему питон выполняет скрипт где идёт обращение до приватного поля а ты проверял или фантазируешь? я написал тебе "а и в рантайме чтобы добраться до этого приватного тебе нужно построить правильное имя"
что уже должно намекать на то, что если в классе есть поле __foo, то обращение print(obj.__foo) работать НЕ БУДЕТ для вызова извне класса. Чтобы до него добраться извне нужно обращаться как _<classname>__<fieldname>, что как бы нельзя случайно обратиться, а нужно реально захотеть добраться до этого поля - это раз.
Ну а второе - зачем сверхсильно защищать приваты. даже в шарпе они защищены НЕ БОЛЕЕ - кому надо, тот доберется. А в питоне вообще то динамика НОРМА. Так что "нужно приседать дополнительно" вполне нормально. СЛУЧАЙНО ТАК НЕ ПРИСЯДЕШЬ. Смекаешь? там НЕТ такого что "я задумал свойство приватным, а читатели снаружи этого не знают". ЗНАЮТ, ЕЩЕ КАК ЗНАЮТ - и вынуждены читать по особому ибо просто так не прочтешь.
но откуда фантазеру, который щупал предмет спора, это знать
>>3341841 фикс >который щупал предмет спора который НЕ щупал предмет спора ибо чудик, который со мной спорит и аргументирует "а там так", даже не пробовал проверить не несет ли он херню.
>>3341861 >Может я кайфую называть публичные методы с двух плинтусов. ну значит ты долбоеб, который пришел в чужой монастырь... и питон защищается от таких долбоебов который "а я люблю вот так" потому что "нужно код писать, а не выражаться затейливо"
>>3341870 так и к питону ты их ПРИДУМЫВАЕШЬ улавливаешь? ты просто решил опозориться публично.
>>3341877 >В шарпах нет никиких монастыре, они просто однозначны. за сим можно закрывать спор. утенок шарпист, который ДАЖЕ НЕ ВИДЕЛ В ГЛАЗА ПИТОНА, пытается рассуждать о чем то и придумывает на ходу полную херню лишь бы что то ляпнуть.
>>3341891 я уже говорил - каждой задаче свой инструмент. посмотри на количество всего написанного для питона и спроси "а че не для шарпа, ведь он же лучше". ну и попробуй одно с другим и ты сильно удивишься. для прототипов, для вещей для которых нужны всякие биндинги - там питон рулит и педалит. насколько просто работать с OpenCV на питоне и как запаришься плясать с бубном в шарпах. Такая же ситуация со многим.
питон универсален, если не против заплатить за его недостатки, а вот шарп хорош, но не для всего.
Анончик, отрекламирую мне C#. Я говнюкодю на Пиструне. Мне он нравится тем, что в нем я могу буквально всё. То есть, все костыли для работы уже давно придуманы красноглазиками, а я просто беру и пользуюсь. Очень универсальная штука, хотя он и жутко медленный, но jit обязательно доведут до ума. Хочу в телеграм ботов, хочу в парсинг, бэк, невросети и так далее. Что может предложить C# без костылей? Интересуюсь без негатива, мне действительно любопытно ваше мнение.
>>3341928 >>3341930 на практике посмотри рейтинг языков и УЧТИ, что питон не жс который "ну в вебе он дефолтный, а веб как бы везде", то есть его заслуга честная (в отличие от того же жс)
это на практике. А то, что ты несешь - это фантазии того, кто питона даже не знает даже поверхностно (это ты 1000000 раз уже доказал обосравшись)
питон лидер по универсальности (кроме системного программирования конечно, но это же узкая ниша - там вообще мало кто). жс взлетел потому что веб, но сам язык говнище. остальное ниже питона по универсальности.
>>3341929 шарп лучше в многопотоке, статическая типизация, довольно богатый синтаксис (но менее выразителен - когда появилась enumerate в питоне? а когда в шарпе Index? (ответ - в последнем 9м через пару десятилетий от момента когда это стало нужно)), но если тебе нужна динамика или всякие там биндинги, то у тебя может быть большая большая большая большая ЖОПА с ним.
я помню делал на шарпах проект для работы с видео, проект для работы с имаджами с экономией памяти (vip), ну и opencv в первом случае пришлось самому кодить обвязыку, во втором у меня текла память под линуксами, в третьем вообще не завел под линуксами в итоге плюнул и на питоне все это сделал и быстрее и оно просто работает.
>>3341978 В альфа-выпуске языка программирования Python 3.13.0a6 включена экспериментальная реализация JIT-компилятора. Он компилирует код Python в машинный код «на лету», во время выполнения программы, что позволяет языку работать значительно быстрее.
>>3341783 >Зачем требовать необходимость особого слова? Приватное на то и приватное, что его не видно снаружи. И не надо ебать мозги какими-то договоренностями, чет подчеркивать там.
>средство есть - двойное подчеркивание Хуй там, это костыль, который не во всех случаях работает. Настолько не во всех, что его рекомендуют избегать.
Вишенка на торте, когда я пытался сделать статическое свойство, обращающееся к приватному полю. В этот момент питон жидко пернув обмяк.
>>3342006 > что его не видно снаружи. так его и не видно. и не потому что кто то не смотрит, а потому что __ эквивалент кейворду private, что в IDE, что в рантайме.
>Настолько не во всех, что его рекомендуют избегать. пруфы будут? а то придумывать ты мастер
>В этот момент питон жидко пернув обмяк. скорее ты обмяк со своим уставом в монастыре. нужно понимать что ооп в питоне прикручен сбоку да, потому что это вам не класс, как ты его привык видеть, а динамическая структура - да, да, само определение класса собирается в рантайме и в этот процесс не только можно вмешаться, а он является базой. Там все в питоне так устроено - "всё есть словарь". В жс с их прототипами что то похожее, только менее удобно ибо нет спец средств для магии. понимая базу можно спокойно делать статические поля и работать с ними. Ну да, статическое проперти не выйдет, будет только статический метод.
>>3342029 >так его и не видно. и не потому что кто то не смотрит, а потому что __ эквивалент кейворду private Охуительные истории. На пикрилейтед класс Debug находится в другом пространстве имен (если это можно так называть). Почему я вижу зоопарк говна, которое я не должен видеть?
>скорее ты обмяк со своим уставом в монастыре. нужно понимать что ооп в питоне прикручен сбоку да Так а зачем ты тратил время на доказательство обратного? Я же изначально написал, что такой подход мне не нравится. Я сразу написал, что выглядит питон как говно, и работает как говно, но зато это ОСОБЕННОЕ говно, это говно со своей ФИЛОСОФИЕЙ. Мне поебать сколько человек его использует. Я считаю, что питон — говно. Какой толк от его особоенностей, если ты как слепой котенок буквально во всем? Какой-то садизм: то что надо не видно (any), а то что не надо — видно (приватные поля).
Даже указание типов в третьей версии намекает, что так живется проще. И джит прикрутить собираются. Даже в джава скрипте сначала нахуевертили ШВАБОДЫ, а потом поняли, что обосрались, и добавили let. Вы должны понять, что как бы языки не вертели жопой (простите за каламбур), но С-подобный принцип — это база, к которой придут все, потому что это удобно.
>>3342044 >https://youtu.be/0hrEaA3N3lk?t=703[РАСКРЫТЬ] Блин, какое же говно. Меня еще поражает, что если ты сделал, что-то не так, то ты даже ворнинга не получишь, ни в компайл тайме, ни в рантайме. Пока построчно отладкой не пройдешь, хуй ты узнаешь, что что-то где-то не срабатывает. Хуже наверное только в js, который в довесок еще какую-нибудь явную хуйню начинает воротить.
>>3342044 >Почему я вижу зоопарк говна, которое я не должен видеть? потому что ты не отличаешь приватные методы от магических. магические методы не являются приватными. Так что нормально что они подсказываются, но внизу списка.
какая то тупая хуета на видео _foo - протектед (поле, метод) __foo - приватный (поле, метод) __foo__ - магический метод. это особая хреновина
Да, в IDE есть проблемы с подсказкой когда она вываливает лишнее или не в том порядке. Только это проблема самой IDE и обычно имеет issue на эту тему. То, что ее могут не чинить годами или ломать с новым билдом - ну что поделать, разрабы пишут на жава и они рукожопы (это я про пишарм)
>что такой подход мне не нравится это лично твои проблемы. если ты НЕ ЗНАЕШЬ в чем сила динамики и не знаешь как ее применить - ну значит тебе оно и надо.
>Даже указание типов в третьей версии намекает, что так живется проще опять ты про типы. я этого не отрицаю Я вот вовсю использую тайпхинты чтобы не терять помощь редактора даже если пишу не либу, а просто рабочий код. Но если мне надо, то я просто ухожу в динамику, я думаю о задаче, а не о коде.
В шарпе же для такого мне приходится приседать и про код забывать не получается Потому что динамика это не только типы. В шарпе в принципе нет таких вещей.
А если у тебя проблемы - значит ты не умеешь использовать силу языка, то есть плохо его знаешь. Что нормально, потому что писать в разных парадигмах это нужно сначала отформатировать мозг. Везде своя парадигма. я вон под анрюшу на котлине пишу в реактив стиле, а в шарпе принципиально такое не перевариваю. Как то чужеродно.
>>3342070 >это лично твои проблемы А с чего ты взял, что это проблема? Я не считаю это проблемой. Единственная проблема, это насильный форс питона — его запихнули буквально во все приложения в качестве языка скриптинга. А потом радостно показывают статистики популярности питона. Но так было и с VBA одно время.
>>3342070 >А если у тебя проблемы - значит ты не умеешь использовать силу языка, то есть плохо его знаешь. Что нормально, потому что писать в разных парадигмах это нужно сначала отформатировать мозг. Ебать как ты себя любишь.
>>3342070 Все приложения, написанные на питоне, которые я встречал, были жутко забагованными с возмутительными ошибками.
1. Cura - слайсер для 3д печати. При закрытии сохраняет все введенные параметры не спрашивая пользователя, наперекор всем стандартом. Но питонисты не любят проверенные пути, им обязательно надо сделать медвежью услугу, они думают, что облегчают жизнь пользователю не ебя мозги всплывающими окнами.
Однажды, в настройках, при установке размера стола печати принтера, я ввел "220,5" вместо "220.5" — написал на автомате, с учетом региона моего шиндовс. Знаете что произошло? ВСЕ текущие параметры печати нахуй слетели, а их там сотни. А теперь вспоминаем про сохранение параметров при закрытии приложения и охуеваем от нулевой безопасности этого говна. И это философия питона — медвежья услуга, вот эта вот нетребовательность, предлагаемая на старте, чтобы в ближе к финалу придти в тупик и не знать что делать дальше. Мне пришлось запускать новый экземпляр приложения, а этот убивать — так я сохранил параметры, а ведь мог случайно закрыть приложение и потерять сотни параметров навсегда.
2. ComfyUI - оболочка для Stable Diffusion. Этому говну так же поебать на регион, поэтому с русской раскладкой Ctrl+V вставляет данные из буфера дважды. Косяк на косяке. Например, там есть возможность связку нод преобразовать в компонент, это аналог функции в Unreal Engine или ассета в Houdini. Сохраняешь компонент (сохраняется в джейсон) и это дерьмо берет и все константы внутри компонента нахуй сбрасывает. А там прикол в том, что условная нода math содержит словарь операторов, и если я установил деление, которое НЕ является первым в списке словаря, то оно сбрасывается на суммирование, которое является первым в списке, и вся логика компонента летит в пизду. Ты смотришь джейсон, там все параметры сохранены, все так, как должно быть, но при чтении они сбрасываются до дефолтных значений. Ну подумаешь баг, с кем не бывает? Но там, сука, каждый этап сохранения компонента сделан через жопу. Например, не может адекватно установить путь до компонента. Весь комфи забагованный и работает через жопу. Все нестабильно.
Кстати, код, который я показывал, он как раз оттуда. И когда мне пишут оправдания по поводу подобного, мол, это враппер или порт, то я не верю. Я не верю потому, что приложение, написанное в такой манере, прекрасно сочетается с говеным забагованным результатом. Когда ты работаешь с приложением, созданным на питоне, ты как будто ходишь по минному полю. И цена ошибки порой очень серьезная.
>>3340396 >ответы вида "ну так в документации написано" это не аргументы Так у тебя не техническая претензия, а почему не сделали или почему поздно. Один из главных критериев той или иной фичи экономический и востребованность. Руководство могло посчитать что на раннем этапе та или иная фича была мало кому нужна. Ну ида, какое нибудь частное решение может быть кривым в силу эксцесса исполнителя, большие дяди с зп в 5 лямов только контурно определяют решение, на низах там могут говнокодить тупые пёзды вроде широко обсуждаемой здесь в своё время ленки-хуесоски с какой-то хохляцкой галеры которая пересосав километры задротских хуев дорвалась до какой-то должности в команде по F#.
>каво шта? Что бы сделать как ты писал нужно писать отдельный класс, поддержки со стороны языка не требуется, голый enum в С# по дизайну полный аналог сишного.
>>3342655 Когда в сишарп только добавили эти экспрешены, такого говна было много. Потом народ наигрался в мамкиных метапрограммистов и шиза прошла. Ты наблюдаешь копролит тех времен.
>>3342549 >а почему не сделали или почему поздно именно так. некоторые вещи просто ОЧЕВИДНЫ и делаются легко но делаются через жопу. взять тот же Index метод у LINQ. Пипец дохера сложный да? Или задание регистра в методах конвертации в hex, где они таки это сделали, но оно интернал и тому подобное
Я понимаю их оптимизацию LINQ когда появилось allow ref struct но блин другое то делается на 2 щелчка
>>3342803 >Может, эти политики там нахуй не всрались. Правильно нахуй нам проверять что запросы идут с доверенных доменов. Принимаем все от всех и без проверок. Неважно какой у тебя проект. Если это не публичный АПИ то ты должен проверять кто прислал запросы, даже если это GET. Тем более если ты разработчик в банке.
В Dotnet реально запустить динамически dll без ебаного reflection? AppDomain сдохли в дотнете, выходит альтернатив не осталось?
P.S Пилю свою десктоп-приложуху которая со всеми оптимизациями сборки весит 40 Мб (при оригинальных 250 Мб без всяких NativeAOT и прочих) но эти оптимизации похерят любой reflection так что ищу варик без него
>>3343672 >Как и DI При чем тут DI и рефлексия. Максимум у тебя отвалятся некоторые методы добавления в контейнер сервисов. Вроде AddFromAssembly или по якорям.
Вопрос к местным эстетам. В принципе разобрался с WPF, читал Петцольда, Мак-Дональда, но беда пришла откуда не ждали. Если пытаюсь с нуля сделать свою программу мечты, то внешний вид виджетов получается настолько всратым, что Айвазовский крутится в гробу. Либо во время веб-сёрфинга случайно натыкаюсь на какой-нибудь сайт с пиздатым дизайном, и пытаюсь скопировать. Тогда норм выглядит. Есть ли готовые таблицы цветов, или эмпирические правила, чтобы красиво выглядело?
>>3343993 Твоя ошибка в выборе впф, которому давно пора на свалку. Он кривой, тормозной, рендерить на нем что-то приличное из-за использования directx9 и airspace issue сложно. Лучше переходи на авалонию. Ну и да, чтобы получилось красиво, нужно сначало отрисовать это красиво в фигме или хотя бы lunacy (написана на авалонии), чтобы можно было видеть как интерфейс выглядит в целом.
>>3344020 >Лучше переходи на авалонию нет не лучше. единственное достоинство - кросс а на винде выглядит ужасно да вообще всё что на skia выглядит жопно. что авалония, что та же проблема у котлин мультиплатформ
Сап аноны, нужна ваша помощь вот есть домашка по информатике, у меня с# нам дали задание написать прогу которая выводит таблицу с бегунами у которых есть своё имя группа и время, нужно выделить лучших и тех кто прошёл норматив Вопрос как задать этим бегунам имена и группы? время я реализовал через функцию рандом, через форич смог отсортировать лучших и тех кто прошёл норматив. А как задать имя обьекту я не знаю. Код могу скинуть если нужен
>>3344042 Вот как раз уно кал, который на винде представляет собой абстракцию над winui3, со всем из этого вытекающим. >>3344025 > нет не лучше. единственное достоинство - кросс У авалонии полно достоинств. Она гораздо производительнее wpf, имеет куда лучшую систему стилей, позволяет легко встраивать рендеринг directx/opengl/vulkan, активно разрабатывается и поддерживается, ну и плюс ко всему она кроссплатформенна, да. Единственные плюсы впф это лучшая документация и наличие большого количества сторонних библиотек контролов. На этом всё. > а на винде выглядит ужасно Нормально выглядит.
>Есть ли готовые таблицы цветов 1. Есть цветовой круг, например https://colorscheme.ru/ Берешь базовый цвет, выбираешь схему, и тебе предлагают сочетающиеся цвета. Самая базовая схема, это триада.
2. Есть правило 60-30-10 (пикрил 3). Оно определяет в каких пропорциях цвета триады использовать на твоем макете. 60% цветовой гаммы твоего окна должно быть заполнено доминирующим цветом, 30% - второстепенным цветом и 10% - акцентным цветом. Что такое доминирующий, второстепенный и акцентный, можно узнать в гугле.
3. На основе этого создается цветовая система приложения (гугли color system). Сперва рисуется UI раскладка в какой нибудь векторной программе, типа иллюстратора или фигмы, делается таблица цветов с ключами уровня Control.Secondary.Background, ты видел подобное в стилях WPF, но без точек, но не суть — можно юзать и так и сяк. Это уже стандарт, посмотри туторы по фигме, там суть та же.
Но это так, вершки. Можно просто гуглить цветовые системы, какие-то дизайны UI например на https://www.behance.net/ и пиздить оттуда. Обычно там представляется выкладка всех элементов интерфейса и их взаимное сочетание, типа как на пикрил 1 и 2.
Через пару лет глаз приучится и начнешь создавать самостоятельно. Либо продолжай пиздить, ничего зазорного в этом нет, если ты не дизайнер с пятилетним стажем. Все художники и дизайнеры начинали с пиздинга, по другому никак, твои нейроны должны обучаться на базе данных, и чем эта база больше, тем лучше результат.
>>3344064 >Там нет мыла можешь назвать его гладиолусом, суть не изменится >просто отсутствует cleartype а вот хрен тебе. он там есть. просто результат все равно не такой какой можно получить в WPF
>>3344066 Перепутал cleartype с фирменным хинтингом от майков, который пидорасит шрифты, но делает их четче, да. Но это не особо актуально на современных дисплеях. Ну и отсутствие жестокого хинтинга не делает шрифт мыльным.
>>3344059 >Вот как раз уно кал, который на винде представляет собой абстракцию над winui3, со всем из этого вытекающим.
Во-первых это абстракция, а значит лазить внутрь в прикладном коде долбоебизм, во-вторых вин уи 3 это круто.
>имеет куда лучшую систему стилей
Ничем не лучше.
>ну и плюс ко всему она кроссплатформенна, да.
Ты понятия не имеешь о чем говоришь. Имплементации у неё разные под разные платформы, как и у уно.
>>3344047 Жопно выглядят кривые стили из коробки, впф голый идет, за денюжку сторонние производители делают конфетку. Тоже самое касается всех фреймворков, обычно только простенькие контролы вылижут для рекламы, а что-то чуть нестандартное нужно делать с нуля, проблема только в этом. В целом все основанные на разметке фреймворки более менее одинаковые, удобство только в том насколько конкретный фреймворк облегчит тебе создание законченного приложения, с этом плане уно всех обскакал и быстро развивается, авалония уже свое отжила, оттуда народ разбегается, ничего нового не выпускают.
>>3344132 >Но это не особо актуально на современных дисплеях субъективное мнение так то "с каждой версией приложения по новому монитору...каждому". зопесал
>жестокого хинтинга не делает шрифт мыльным он МЕНЕЕ четкий чем весь остальной шрифт в системе. И что ты хотел сказать своим пиком хз - ты посмотри на дефолтный размер шрифта что предлагает авалония и на размер шрифта в системе. Конечно километровый шрифт проще сделать четким.
>>3344151 >впф голый идет, за денюжку сторонние производители делают конфетку голый да, но "конветку" - слишком спорно. слово "модерн" в модернуи не значит конфетка, а значит "модняво" А что такое "модняво" можно посмотреть на любом показе моды.
>>3344151 > Во-первых это абстракция, а значит лазить внутрь в прикладном коде долбоебизм, во-вторых вин уи 3 это круто. А лазить не надо, достаточно знать, что уно всего-лишь подмножество и без того крайне бедного функционально winui. При том, что винюай это кривая залупа, с кучей багов, недоработок, и в целом почти не развивающаяся. К тому же он медленный из-за того, что написан на плюсах, и много времени уходит на вызов плюсового кода из шарпов. Фиксится aot, но с ним не работают templatebinding (в голос с этого). Поэтому тот же винстор написан на uwp, и никто его не спешит переносит на winui. Ну и winui, как и uwp до этого имеет крайне кастрированный xaml. Мультибиндингов нет, findparent нет, onewaytosource нет, x:static нет и тд и тп. > Ничем не лучше. Ну это сектанство форменное. Стили в авалонии лучше во всем, куда более гибкие и удобные. В впф, чтобы банально поменять цвет одного элемента нужно переопределять весь шаблон, в авалонии достаточно выцепить нужный элемент селектором. Не говоря уже о том, что в авалонии можно комбинировать стили.
>>3344175 >А лазить не надо, достаточно знать Так ты не знаешь нихуя. Уно по фичам перекрывает твою древнюю авалонию которая была актуална только во времена первых версий замарина, только она не развивается и осталась там где стартанула. Кросс платформа по дефолту медленнная, как и любой навороченный MVVM фреймворк где по определению на каждом углу оверхед из-за паттернов и кросс платформенности, так что это пук в лужу. Главное что производительности хватает для целевых приложух (ты же не собрался игры на нем писать).
> Поэтому тот же винстор написан на uwp Это ты сочиняешь, просто сто лет назад написали во времена вин 8, так и остался пока, нет мотивации на переписывание.
На С++ наоборот быстрее работает чем на управляемом коде.
>но всего-лишь подмножество и без того крайне бедного функционально winui
Не пизди, всё там есть. Ты понятия не имеешь что представляет собой уно, или по какой-то древней версии судишь. Там если что мощный сдвиг в функциональщину, даже основной паттерн другой, не MVVM а MVUX.
>>3344227 > Так ты не знаешь нихуя. Уно по фичам перекрывает твою древнюю авалонию которая была актуална только во времена первых версий замарина, только она не развивается и осталась там где стартанула. Какие фичи есть у уно, которых нет в авалонии? Ну, кроме x:Bind, который годнота, не отрицаю (хотя порой криво работает, к тому же плохо совмещается с чистым mvvm). Ну а говоря, что авалония не развивается, ты лишь доказываешь, что ничего о ней не знаешь. Если взять ту же 11 версию, то там обновили рендеринг, добавили Composition Api со всем функционалом вроде expressionanimation, какой был в UWP. > Кросс платформа по дефолту медленнная, как и любой навороченный MVVM фреймворк где по определению на каждом углу оверхед из-за паттернов и кросс платформенности, так что это пук в лужу. Ни на чем не основанное утверждение. Производительность кросс платформы зависит от реализации для каждой конкретной платформы, не более. Авалония в частности быстрее wpf, winui, а следовательно и uno. К чем твой пук о mvvm вообще не ясно, 99% функционала этих фреймворков сводится к реализации inpc, все остальное, если сравнивать со временем рендеринга, вообще почти ничего не потребляет. > Это ты сочиняешь, просто сто лет назад написали во времена вин 8, так и остался пока, нет мотивации на переписывание. Во времена win 8 uwp не было так то. А не переписывают именно потому, что winui кривой и тормозной. > На С++ наоборот быстрее работает чем на управляемом коде. Анон, я уже заметил, что ты туповат, но хоть бы подумал о том, что вызов неуправляемого кода из управляемого не бесплатен. > Не пизди, всё там есть. Ты понятия не имеешь что представляет собой уно, или по какой-то древней версии судишь. Там если что мощный сдвиг в функциональщину, даже основной паттерн другой, не MVVM а MVUX. При чем функциональщина и паттерны, к функциональности фреймворка они не имеют отношения. Не говоря о том, что mvux какая-то очередная игрушка, mvvm как рулил так и будет рулить.
>>3344272 Кроме авалонии, авалония годнота. А вообще десктоп мёртв, не будь я ленивым хуйлом уже давно перекатился бы в фулстэка, грузил джейсоны и дрочил реакт. А вместо этого дрочу авалонию и opengl за копейки по меркам даже самых обоссаных джунов на asp.net
>>3344291 > язык, основанный на хамл, не может быть годнотой по определению Ну а какие альтернативы? Так то да, от многословности горит жопа, когда у тебя условно такая конструкция: xmlns:libNameControls=”” <libNameControl:AnotherUselessControl> <libNameControl:AnotherUselessControl.CustomizeableProperty> </libNameControl:AnotherUselessControl.CustomizeableProperty> </libNameControl:AnotherUselessControl> Но что поделать
>>3344306 на шарпе никаких. на других языках MVU подходы, которые в шарпе никто нормально не сделает никогда. тот же Comet (https://github.com/dotnet/Comet)...ну да, он приносит типа MVU, но по факту "ну просто вместо хмл описывает кодом...но не более, чем мог бы описать тот же хмл...просто кодом" Описание кодом лучше чем хмл в плане компиляции, но это все равно так уныло - ну и это чисто концепт.
Есть большой метод с кучей вычислений, который принимает 28 аргументов. Я вот думаю, стоит ли создать несколько структур, которые сократят количество аргументов до 5-6, или получится слишком большой оверхед? Метод вызывается очень часто.
В Dotnet реально запустить динамически dll без reflection? AppDomain сдохли в дотнете, выходит альтернатив не осталось? AssemblyLoadContext возвращает Assembly с которым возможна работа только с System.Reflection. Неужели нет альтернатив? ( publish trimming и ебучий reflection плохо совмещаются, не хочу гигабинари плодить)
Мужики, что делать? Написал на net 8 gRPC клиент на http узел без шифрования, всё работает. Тоже самое только в проекте на framework 4.8 при подключении опускает хттп 2 до 1.1: Bad gRPC response. Response protocol downgraded to HTTP/1.1 Как это исправить? Нагуглил только совет установить флажки: AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); но не помогло.
Проектирую архитектуру библиотеки, которая поддерживает несколько реализаций. Планирую всю основную архитектуру построить на интерфейсах и добавить метод QueryObject, и в каждой конкретной реализации при помощи этого метода получать класс этой реализации. Соответственно если пользователь попытается смешать две реализации, буду кидать исключение. Какие подводные?
>>3343993 ЁБ ТВОЮ МАААААААААААААТЬЬ!!!!!!!!!!!!!!!! НАУЧИТЕСЬ УЖЕ БЛЯДЬ СУКА В КОИ ТО ВЕКИ БЛЯДЬ ТРЮКАМ РАСШИРЕНИЯ ЦВЕТОВОГО ПРОСТРАНСТВА, ЭТО ЖЕ ПИЗДЕЦ, КАК ЖЕ Я НЕНАВИЖУ БЛЯДЬ ЭТИ БИТОВЫЕ ПОЛОСКИ БЛЯДЬ!!!!!
>>3342553 Всю историю питон был на дне, в нулевые они стебались над классами пхп 4 когда во 2 питоне был вообще адок во всем. Пхп 5 все быстро пофиксиле и ООП потенциала и сахара там стало больше чем во всех языках вместе взятых (даже чем в шарпах, ну ибо это интерпретируемый язык). Но питухи продолжали стебаться сидя на своей 2 версии со всем говном. Это буквально было как слон и моська в те времена.
Потом эта говнина раскрутилась с новой техой (ИИ), хотя веб до сих пор в отсосе, но они просто на каком-то уже генетическом уровне продолжают противопоставлять себя над пхп.
>>3346346 кек от фантазий анона )) пхп взлетел из за того что низкий порог входа и каждый школьник мог написать свой супер пупер скрипт, кинуть на шаред хостинг и оно работает (про то "как работает" я промолчу)))) и ТОЛЬКО ТАМ была сфера применения похапэ (да там и осталась)
именно эта уникальная способность "кинул скриптик в папочку и оно заработало" и сыграло на руку пхп но это не значит что питон был где то на дне )))
ну а "ооп потанцевал" это вообще лол. банальная калька с жавы - да похапэ этого и не скрывает.
>>3346366 Ну одно дело, тебе на ютубе рассказали что было когда ты родился, а другое дело, когда я варился в этом в те года. До машинного обучения питон был экзотической помойкой с проблемой перехода между 2/3 версией и ужасной производительностью.
Самое смешное когда они на конференциях упоминали веб языки, цинично не упоминали пхп, хотя тот на то время занимал 90% рынка.
Причем тут выстрелил не выстрелил, пхп в свой рассвет конкурировал с перлом вообще
>>3346477 >До машинного обучения питон был экзотической помойкой когда по твоему выстрелило это ML что ты такой вывод делаешь? может ты про 2007 год когда по версии тиобе (да, да я знаю это попугайный индекс, но других нет) он стал лидером рейтинга (экзотическая помойка занимает первое место????)
>с проблемой перехода между 2/3 версией ....а питон3 появился только в 2008?
> и ужасной производительностью она ужасная у всех интерпретируемых языков где не нашлось достаточно ресурсов все это безобразие ускорить. И похапэ тут не исключение
и да - с пхп я познакомился еще во времена пхп 3, так что прекрасно знаю как он рос по фичам и почему выстрелил. Слава богу, удалось свалить с этого "чудесного" языка на чудесный питон (3 конечно). Но не до конца еще (((
>>3346894 >Брать ли macbook Очевидно нет. Зачем тебе это говнобук? Не надо только про 10/15/120ч мобильности. 1) он максимум часов 6 выдержит райдер 2) ты сам себе не ври ты работаешь из дома рядом с розеткой.
>>3346894 >Брать ли macbook для .net бэкенда? Если райдером пользуешься, тогда можешь попробовать.
>>3346894 >Сейчас на проекте core, но в будущем могут на framework перекинуть Тогда тебе не о маке надо думать, а как съебать с этой работы побыстрее.
>>3346894 >Нормально ли работает rdp macos - windows server? Это зависит не от платформы как таковой (т.к. стандартное подключение везде работает нормально), а от анальных заслонов которые работодатель накрутит поверх твоей удаленки. У тебя там может какой-нибудь хитровыебанная модификация цитрикса оказаться или еще что-нибудь и ты соснешь. Поэтому выясняй заранее у самого работодателя можно ли к нему подключаться с мака.
>>3346894 >М какие подводные? Ну только что геем станешь с маком.