3. WinForms или WPF? Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
5. Какую IDE выбрать? Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS. Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ). Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ). Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.
7. Что почитать? — The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода. — C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь. — C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. — C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой. — Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал — CLR via C# (Jeffrey Richter) — это классика, это знать надо. — C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются. — Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF — Pro WPF 4.5 in C# (Matthew MacDonald) — Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET — Pro ASP.NET Core 3 (Adam Freeman) — Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму — Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции. — Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная. — Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке — Creating Mobile Apps with Xamarin.Forms (Charles Petzold) — Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes) — Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению — Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов. — Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать? На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду? — Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper. — Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов. — GitHub — issues, пулл-реквесты, теги, релизы, Actions. — Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках. — Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы. — Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue). — Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
>>2133833 → >большинство сидит в вебе. Это профессиональное искажение и личный инфо-пузырь. На прошлой профессии я был по другую сторону баррикад, и такие вот профессиональные программисты постоянно за большие деньги и откаты приходили что-то автоматизировать к нам в контору. Разумеется, красивая веб-форма одобрялась начальством. Разумеется, на выходе получалось чудовищно тормознутое говнище, абсолютно не пригодное к использованию. Разумеется, на просьбы пользователей добавить кнопку, чтобы просто все данные чудо-системы можно было бы выгрузить в ЭКСЕЛЬ и нормально с ними работать, игнорировались. Мы вам такую СИСТЕМУ сделали по аджайлу и на кубернетисе, а вы не довольны скоты. Разумеется, всегда находились пути скачать данные, чтобы с ними можно было работать (иногда БД торчала наружу и можно было на SQL в акцессе всё вытащить, иногда просто скриптик какой парсил дозированные выгрузки, иногда просто сажали кого-то кто несколько дней подряд набивал/копировал данные в ЭКСЕЛЬ вручную. А программисты-то оказывается и не в курсе, что в вебе невозможно работать, что он всегда тормозит, он тупой, он не гибкий, а люди бесятся, нервничают и теряют здоровье. Как бы, экселем пользуется около миллиарда человек ежедневно. И в резюме стоит писать о крепком знании экселя, потому что на самом деле очень мало кто реально умеет пользоваться хотя бы 5% его возможностей, даже среди тех, кто реально годами им пользуется. Сложить A1+A2 - это любой программист сможет.
>>2134631 Эксель евангелист в треде. Все по шейрпоинтам!
В твоем рассказе хуево все, если вам так надо ексели, почему не продвинули фичу по добавлению кнопочки "експорт ту ексель"? Ну или вообще сразу не стали тот же шейрпоинт юзать или динамикс. В общем, твои описанные обсеры никак не принижают веба. Декстоп апы уже почти и не нужны никому. Те же офисы давно имеют сносный веб-интерфес и это охуительно удобно.
>>2134658 >Декстоп апы уже почти и не нужны никому. Всякие САПРЫ - это десктоп апы, например. Некоторое профессиональное ПО доходит до 1 млн. долларов в год за лицензию на 1 рабочее место.
>почему не продвинули фичу по добавлению кнопочки Потому что никакие другие фичи не были нужны никому вообще. Но за ИНФОРМАЦИОННУЮ СИСТЕМУ с одной кнопкой много денег не заплатят. Да и как можно простому пользователю отдать все данные? Что, ему надо статистику посчитать или график какой-то сводный построить по каким-то показателям за 5 лет или за всё время? Ну пусть он нам скажет, что ему конкретно нужно (он же макака, изо дня в день одно и тоже строит наверняка), напишите нам ТЗ, мы за 5 млн. руб. и за 2-3 месяца (плюс 2-3 месяца на отладку и доработку) допилим функционал в нашу прекрасную систему, и пользователь сможет сразу готовый график показать начальству или вставить вот прям в отчёт. А вообще зря вы доверяете вашим сотрудникам анализ данных. Это ведь бигдата, тут нужна команда датасцаентистов- математиков, лучше вы нам такую работу тоже закажите. Что, ваши сотрудники кудахтают, что в экселе графики и сводные таблицы строить намного проще, и он намного более гибкий инструмент, и позволяют проводить произвольный анализ данных под нужды конкретной задачи. Да не это бред, сейчас всё в веб-интерфейсе, а эксель устарел уже. Он не сравнится по возможностям автоматизации и гибкости с современной системой, написанной профессионалами. А экселем даже кухарка может пользоваться. Вы же не будете принимать бизнес-решения на основе таблицы уровня кухарки? То-то.
>Те же офисы давно имеют сносный веб-интерфес и это охуительно удобно. Чувствуется, что программист в треде. Он имел опыт создания в гугл-док резюме на целую одну страничку, и у него всё прекрасно работало. Экселевский файл на 20 МБ данных с кучей связей и бизнес-аналитики? Вордовский отчёт с кучей таблиц и картинок под 200 МБ? Да ну такого не бывает или не нужно никому прост.
>В общем, твои описанные обсеры никак не принижают веба. Веб впаривают потому, что разработка на нём дешевле всего, а продать на хайпе можно сильно задорого. За простой и быстрый винформс миллионы могут и не заплатить.
Алсо, предлагаю со следующим перекатом поправить шапку на актуальную информацию >>2134580 (OP) >Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? >Неправда
>>2134705 >Всякие САПРЫ - это десктоп апы, например САПР - это скорее пример графической йобы вроде игрового движка нежели пример простой десктоп аппы для автоматизации офисного говна.
Сап РАБотающему классу, нахуй студентоту и вкатышей. Господа разрабы, есть ли смысл вкатываться в сисяпр в 2к21? Не проебу ли я время и не вкачусь? Есть пара знакомых, которые говорят, что сисярп это новый делфи т.е. умирающий кусок говна (сами они джависты и пхпшники). Но это единственный язык, которому учили в универе. По вакансиям смотрю - +- пайтон, джава и сисярп на одном месте (в пыху вкатываться не хочу, ибо хуже него только 1С). Дискасс
>>2135431 На сегодня шарп по факту самый охуительный язык по дизайну. На нём настолько приятно писать после других говноязыков, что уже одно это обеспечит постоянную подпитку сообщества. Я не юзал раст, его говорят тоже любят, но раст не может быть первый языком, и порог входа высоковат. Шарп же прост для вката и даёт широкие и гибкие возможности для любого синьора-задрота. Кроссплатформенность. Богатейшая стандартная либа. Язык активно развивается. Ожидаемые обобщённая математика и нативмемори сделают его по возможностям и перформансу максимально приближенным к С++, лишенным всех его недостатков. Какие реально альтернативы шарпу? 1. Джава. Так исторически сложилось, но джава как есть уступает шарпу как язык во всём. Джависты это признают. 2. Котлин. Попытка сделать улучшенную джаву, сохранив обратную совместимость. Шанс взлететь есть, но пока сферы применения узкие. 3. С++ - мёртв и заменится растом в ближайшие лет 10 чуть менее чем полностью. 4. Раст - уже выше озвучил. Концептуально сложен и не для широких масс. 5. Го - если бы не жесткий форс со стороны гугла, язык был бы мертворождённым. 6. Петухон, джаваскрипт и прочие помойки с динамической типизацией всегда останутся игрушечными языками. Подходят для построения сайтов для картинок и срача, но полетел бы ты в самолёте с ПО на джава скрипте, залез бы ты под рентген с джаваскриптом? Я - нет.
>>2135539 > полетел бы ты в самолёте с ПО на джава скрипте, залез бы ты под рентген с джаваскриптом? Я - нет. Без шуток, когда-то я где-то читал, что какая-то АМС летит под жс-кодом. Не хочу топить за жс, но справедливости ради
Как бы вы хранили форматированные текстово-табличные данные? Как бы вы с ними работали?
Я сначала хотел задать вопрос по возникшей у меня трабле с выбранным мною способом. Но тут я подумал, может я изначально черезжопно делаю? Как делаю я: 1. Есть файл CSV с парой десятков строк и тремя столбцами. 2. Сначала я загуглил CSV reader'ы, поставил, охуел от того сколько говна тянется в зависимости. 3. Сделал просто. 3.1. Создал структуру из трёх стрингов и конструктор, принимающий стринговый массив. 3.2. Создал List<MyStruct>, загрузил его данными, читая ксв как текстовый файл и сплитухой преобразуя каждую строку в строковый массив и скармливая конструктору структуры. 4. Довольно урча, фильтрую мой лист LINQ-ом по нужному из полей-индексов (да, индексы строковые, но мой фронтенд работает со строковыми ключами, нет смысла гонять инты) и получаю что хотел, но 5. Мне не нравится, что файл лежит рядом с приложением. Хочу запихнуть в ресурсы. 6. Загуглил, как хранить ресурсы в сборке, как работать, и ОХУЕЛ, БЛЯТЬ, инфа только дремучих годов. 7. Есть варианты работать с собственным форматом, resx но нет варианта запихнуть в ресурсы csv и потом без задней мысли выпихнуть в Stream ну или я тупой и не вижу очевидное для всех, кроме меня.
Итак, ответьте сначала на первые два вопроса отдельно. Опционально посоветуйте по изложенной ниже трабле с ресурсами.
>>2135610 UPD: CSV-файл статичен, меняется редко. Я в принципе за него не держусь. Мне главное преобразовать данные к IEnumerable и фильтровать LINQ-ом. И штоб внутри сборки хранилось всё. Без внешних файлов.
>>2135539 меня коммерческая сторона интересует. Ради интереса загуглил вакансии в своем регионе - C# - 1, JAVA - 7, Python - 3. Кстати на C# - юнити, сразу нахуй. Как тогда вкатываться? И я так понимаю сейчас все в вебе? >>2135562 5 лет назад в институте рофлили, что пыха скоро умрет - по сей день как я вижу вакансий море >>2135590 судя по твоим пикам нужно вкатываться во фронт или Python. Кстати а что скажете насчет пайтона?
>>2135666 > рофлили, что %технология_нейм% скоро умрет Так отсекают возможных будущих конкурентов. Спустя 5 лет теперь ты это знаешь. Deal with it. >>2135635 >>2135610 Кстати, пока ждал ответ, задумался, а может перегнать всё содержимое в строковые ресурсы? Содержимое-то я уже перегнал. Сейчас надо провести исследования, как это удобнее применять. На первый взгляд там нет никаких списков-коллекций, только автогенерированные методы на каждую строку. Пойду исследовать.
>>2135752 но хотя бы есть вакансии, по # я посмотрел, в веб нужны мидлы+, даже pre-middle не нужен, не говоря о джунах. Как вкатываться тогда? И кстати да, хоть вакансий +- одинаково с джавой, часть вакансий это Unity, часть мертвый десктоп, часть аналогичный десктопу xamarin. Веб - 25% вакансий. Итого на джаве сейчас в 4 раза больше предложений по вебу. Печаль
>>2135539 С чего С++ мёртв? Пока что он вне конкуренции для системного программирования и во многих областях прикладного программирования. Раст ещё сырой, да и вряд ли когда-либо заменит С++. Я вообще думаю, что через пару лет о нём все забудут. А С++ останется.
>>2135894 По твоей же ссылке: > Note that this class handles bytes independently of the encoding used: If used to handle sequences of multi-byte or variable-length characters (such as UTF-8), all members of this class (such as length or size), as well as its iterators, will still operate in terms of bytes (not actual encoded characters). Напоминаю, строка в 2к21 это юникод. Иные варианты просто опасны для данных.
>>2135892 Для системного программирования достаточно языка, который поддерживает базовые типы процессора. Остальное можно реализовать как тебе нужно. У тебя есть указатели и память. Хочешь делаешь ASCIIZ-строки, хочешь как в Паскале с фиксированной длиной, хочешь как в шарпе UTF-16.
>>2135896 Что будет делать системная программа, не способная в строки? Даже работа с ФС требует корректную обработку пути к файлу. Который может содержать английские символы, русские, китайские иероглифы и еврит. Причем одновременно. Если программа не может гарантированно работать с такими путями, ее нельзя* использовать.
>>2135900 Ты путаешь системное и прикладное программирование. В системном программировании как правило ты сам реализуешь ФС и как реализовать пути. Может ты вообще хочешь написать клон CP/M-80 и там нет ни каких путей, просто диски и файлы в корневом каталоги. При это реализовать можешь что угодно как из кубиков.
>>2135761 >в веб нужны мидлы+, даже pre-middle не нужен Берут с джунов без вышки, которые прочитали книжку за вечер и заучили ответы на вопросы собеседования. После чего отлетают по испыталке. И смысл таких брать, через год перебегут в другое место с +500.
>>2135761 >в веб нужны мидлы+, даже pre-middle не нужен Компании обычно не размещают джуновские вакансии, т.к. это бессмысленная трата времени на фильтрацию дедов-вкатунов. Джуна проще по знакомству собеседовать. Вкатываться так - подаёшь своё резюме на мидловые ваки. https://www.youtube.com/watch?v=FsjWDocSeGw&ab_channel=SergeyNemchinskiy
>мертвый десктоп Десктоп - это чаще всего b2b, как visual studio, например, только не для программистов. Как только ты из десктопной IDE перейдёшь в облако и будешь работать строго с мобилы/планшета, тогда можно будет кудахтать о смерти десктопа. Но пока ты пишешь код с десктопа. И все остальные работают тоже на нем.
>>2135813 >Xamarin вообще охуенный >Ты додик короче бля. я тебя понял, дальше не продолжай >>2135908 как тогда вкатываться? Спиздеть на мидла, что есть опыт? Так спросят про реальные проекты, которых не было. Не хочу зря потерять время на изучение невостребованного языка
>>2136008 >Вкатываться так - подаёшь своё резюме на мидловые ваки. Какой в этом смысл? Если ищут человека с опытом, кому нужен сопливый джун, за которым нужно подтирать сопли и указывать на его говнокод? Спасибо за видео инфоцигана, очень полезно (нет) >Как только ты из десктопной IDE перейдёшь в облако и будешь работать строго с мобилы/планшета https://www.mentofacturing.com/Vincent/implementations.html MsSqlServer написан на ASM, может в ASM тогда вкатываться? Не мертвый язык же... Можно увидеть ответ от человек с трехзначным IQ?
>>2135813 >В веб все вкатуны прут, и ты туда же Суть в том, что сейчас почти все деньги в вебе и мобилках.
>И за юнити тоже норм платят. Десктоп не мёртвый. Xamarin вообще охуенный для мобильной разработки.
Юнити в СНГ - это натуральный треш, как и весь геймдев тащем-то, десктопы давно уже мертвы, а те что не мертвы пишутся на кроссплатформенном Qt или electron. Ты вообще можешь вспомнить, какие используемый тобой десктоп приложения пишутся на шарпе? Я вот только одно могу - Rufus, которым я пользуюсь раз в полгода-год. Остальное написано на С++/GTK/Qt (хром, телега, zoom), java (ide от жидбрейнс), js (vs code, slack). Вот серьезно, это все десктоп аппы, которыми я пользуюсь. Десктопный шарп остался где-то вместе с делфи в госконторах еще с нулевых годов.
Мобилки пишут на kotlin/swift/react native, а в последнее время и на flutter. Замарин уже помер считай. MS проебала весь мобильный рынок из-за ебаного блядского обращения с winphone/winmobile в начале 10-х.
>>2136027 >Суть в том, что сейчас почти все деньги в вебе и мобилках. Сейчас вылезет тип, который будет тебе задвигать про какую-то дорогую декстоп программу для нефтедобычи в рашке, ахахахаах.
>MS проебала MS проебала, а проекты заходят. Кот Шрёдингера какой-то.
>>2135900 >программа не может гарантированно работать с такими путями Так строки в С++ вполне уже поддерживают юникод. Просто некоторые символы в один байт не помещаются и их приходится храить в 2 или даже 4 байтах. В шарпе тоже в 16 байтный символ не все значения юникода помещаются.
>>2136018 >Если ищут человека с опытом Если компания активно ищет мидлов, то и джуны толковые им тоже обычно нужны. Просто вакансии бессмысленно размещать. Это кстати вообще только в айти такая мода размещать публично вакансии на должности типа синьоров с зп 200+. В газпроме или роснефти спецы тоже и по больше получают, только ни одной публичной вакансии такой ты не найдёшь. Только разнорабочие, заправщики, электрики, всякие скважинные рабочие задвижки на морозе крутить да протёкшую жижу застывшую вилкой отковыривать и т.п. А причина та же - пойдут десятки тысяч резюме от всякого скама, а кому это всё фильтровать?
>может в ASM тогда вкатываться? Это самая тупая идея лезть туда, куда как зомби из всех щелей лезут такие же вкатуны, где на вакансию 200 человек на место. Почему повезёт тебе, чем ты такой особенный? Вон михалыч 42 года, питонист, надежный, семья дети, имел опыт руководства людьми (бригадир), тим лид почти готовый, мощнейшие софт скиллы. А ты - что?
>>2135610 > с парой десятков строк и тремя столбцами Вообще насрать как хранить такое. >охуел от того сколько говна тянется в зависимости. Эм.. -->CsvTools -->This package has no dependencies. И уже с поддержкой линка. >ОХУЕЛ, БЛЯТЬ, инфа только дремучих годов. Как было поставить в билд экшене Embedded resource, так и осталось.
>>2136030 Ну, десктоп программы для нефтедобычи пишутся долго. Если ее начали писать еще в начале нулевых, когда шарп был на сильном подъеме, то какой смысл переписывать ее с нуля на другой технологии. Суть в том, что новых проектов на винформочках, WPF и Xamarin уже давно нет, сейчас просто идет поддержка древнего легаси. Десктоп сейчас с нуля пишут для разных государственных контор и корпораций, они сразу стартуют проекты на Qt или электроне, чтобы можно было это дело запустить на астралинуксе, а не только винде. Когда там будет гуи для линуксового шарпа и будет ли вообще - не известно. Обещали MAUI, а по факту он будет только для винды, макоси и мобилок.
>>2136030 >Сейчас вылезет тип, который будет тебе задвигать про какую-то дорогую декстоп программу для нефтедобычи в рашке, ахахахаах. Программистам с 2-значным IQ почему-то кажется, что это только они работают в своей ДЕСКТОПНОЙ проге типа VS, а все остальные люди, которые внезапно тоже РАБОТАЮТ на компьютере, не используют никакой профессиональный софт. Может быть только ворд и эксель, которые впрочем по мнению тех же программистов, тоже давно мертвы и ушли в веб. Это вообще кажется удивительным, но в офисах в не айтишных конторах, тоже на каждом рабочем место стоят десктопы (и почему сотрудников не перевели на мобилки). И, внезапно, сотрудники на них используют кучу специфического профессионального ПО. И его надо писать, развивать и поддерживать.
>>2136107 >поддержка от самсуня и комунити GTK# тоже комунити поддерживало. Ну и где оно теперь?
>>2136060 На самом деле так и есть, кроме ворда, экселя и 1С в офисах десктопных программ почти и нет. Работал в двух банках, так у них там самые далекие от ИТ люди всегда пользовались веб-интерфейсами.
>>2136035 А я молодой-перспективный зумер с татухами и цветными волосами. Умею чилить и пью смузи. Модно одеваюсь. Я лучше михалыча. Михалыч старый, он отстой.
>>2135539 >уступает шарпу как язык во всём ниже >>2135539 >сферы применения узкие ты скозал?
В этой простыне прекрасно все, А ТЕПЕРЬ ПЕРЕХОДИМ К ЗАРПЛАТАМ И они в среднем НИЖЕ всего выше упомянутого, при том где-то достаточно значительно
Я уж молчу о том, что вариантов удаленной работы на дотнете нет ПЕри переезде в условные штаты, ВНЕЗАПНО ты там нахуй не нужен, придется менять стек на питухон\ноду\го
>>2136536 Нахуй твоя омерика? Я могу в своем городе жить как царь, не зная куда деньги транжирить. Не говоря, что в омерике все намного дороже на обиход (та же стрижка), медицина с приколами, нельзя пей пассом оплачивать все! возможные услуги, огромный налог. У меня даже сранный ларек в переходе принимает безналичку. Еще и зарплата в каких-то бумажных чеках, тьфу. На публичном транспорте кататься вовсе небезопасно. Это еще и нужно выучить особый омериканский язык, присущий этому региону.
Последние два года работаю на удаленке. Работодатель только рад. Без особого напряга на зп ниже среднего с твоих слов. Какие-то влажные фантазии про дотнет и уровень жизни.
>>2136536 1. Самые низкие зп как ни странно на С++, хотя он явно самый сложный для вката и всей последующей деятельности. А поди ж ты. На С ещё ниже. Ну на самом деле в этих статистиках по зп нет никакой логики. Джун С++ просто на порядок квалифицированнее джуна питониста. Джун С++ может стать джуном питонистом за неделю. Обратная трансформация потребует может быть год. Но почему-то эти ребята всё равно идут в свой нищий С++. Поэтому как-то не очень верится в такую статистику. Хотя и реального расклада по зп ты не узнаешь. Статистика по вакансиям типа как на hh.ru - это херня, потому что нормальные конторы зп не указывают, а васяноконторы указывают завышенную. И ещё надо понимать, какова доля в вакансиях джунов, а какова - синьоров. Вакансии джунов часто не публикуются, получаем завышенные зп. Статистика по репортам пользователей - ещё больший шлак, т.к. выборка тех, у кого есть время и желание, чтобы заполнить анкетку и сказать правду, очень не представительна.
2. Как возможность удалённой работы зависит от языка? Да и какая удалёнка джуну? Удалёнка - это нормально при 3-5+ опыте работы.
3. Мне кажется не разумным выбирать язык исходя только из разницы какой-то там средней зп 10-20%, а тем более из количества вакансий. Если бы вакансий не было вообще, то конечно смысла нет учить язык. Хотя на самом деле специалисты нужны и по паскалю, и по фортрану, и по хаскелю. Но если вакансии в принципе есть, но их меньше, то в чём проблема-то? Выбирать надо язык исходя из того, чтобы тебе он нравился. Я бы не смог писать на петухоне и тем более на джаваскрипте, потому что меня от них тошнит. Мне было бы намного тяжелее развиваться в этих языках. А на любимом языке намного проще стать синьором играючи, и быстрее получить топовую зп.
>>2136491 плакса? Я не хочу быть очередным из нытья треда, который пишет про потраченное время на решетках, а выбрать технологию, которая будет приносить копейку. Подписался на 3 треда - python, java и сисярп. Даже по постам анона понятно, где вкатыши, а где специалисты.
>>2136602 >Ну на самом деле в этих статистиках по зп нет никакой логики Потому что это статистика рабсиянских работодателей, где на плюсах написано куча говна, которое нужно саппортить (для дотнета это тоже справедливо) Я в первую очередь про глобальный рынок >>2136602 >Как возможность удалённой работы зависит от языка Мне стоило сразу сказать, что удаленка имеется ввиду работа на ВНЕШНИЙ РЫНОК, а не на местного дядю васю на местном рынке не сидя в офисе. Стоит ли продолжать говорить что на питоне работу удаленно найти проще или это и так понятно? >>2136602 >Да и какая удалёнка джуну Во-первых о джунах речи не было, во-вторых в них не ходят всю жизнь Если речь и зашла о джунах, то дотнет далеко не самый легкий вариант для вкатывальщиках, в сравнении с питоном\js
>>2136560 >Последние два года работаю на удаленке Выше написал, что стоило уточнять про работу на заказчика на прямую, а не на местного дядю, с нормальными рейтами
>>2136560 >Ниже среднего - это сколько? примерно 20% >>2136560 >Нахуй твоя омерика? да, я как-то забыл где нахожусь >>2136560 >уровень жизни. Вот это у тебя уровень жизни конечно, типичная пидораха, у которой главное чувствовать себя царьком в своем родном мухосранске, браво
>>2136615 >Вот это у тебя уровень жизни конечно, типичная пидораха, у которой главное чувствовать себя царьком в своем родном мухосранске, браво В России с деньгами можно достойно жить кстати.
>>2136615 >примерно 20% Так ты же не пишешь сколько это, ниже среднего. Что мне твои сферические 20%. Ну а дяде можно и заплатить за его менеджмент бюрократии и риски на другого дядю. С пидораxой и мухосранью мимо, сразу показывает как ты читал жопой мои выводы по омерике. К тому же на вопрос не ответил, нахой та омерика.
>Если речь и зашла о джунах, то дотнет далеко не самый легкий вариант для вкатывальщиках, в сравнении с питоном\js Один хер там и там не может даже мидл рассказать отличие поста от пута. Деградация знаний соискателей с каждым годом.
>>2136615 >работа на ВНЕШНИЙ РЫНОК На какой внешний рынок ты собрался работать из России? Россия под санкциями. В деталях мало кто захочет разбираться, проще нанять индуса или хохла, чем с проблемным русским иметь дело.
>>2135012 >>2135078 >>2135359 Вместо срача дали бы ссылки на магазины в России, где можно купить англоязычные бумажные оригиналы этих книг. На переводы много жалоб, вплоть до выкинутых абзацев, а покупать электронку я не хочу, хочу читать старую добрую бумагу, ибо навигация проще (ведь эти книги обычно создаются не для того, чтобы их читали целиком, а читали только по интересующим главам). Зачем мне книги, спросите вы? Затем, что я не осиливаю многопоточность и асинк (несмотря на то, что у меня в унике был курс параллельного программирования, но чистые треды никому не нужны, а глубже погружения не было, асинк так отдельная область знаний. Ещё вы курсе был OpenMP, но в Шарпе он недоступен), а учить по кускам из статей неприятно.
>>2136647 >Так ты же не пишешь сколько это, ниже среднего Если брать аутсорс галеры, в среднем на 500$ зп ниже, в сравнении с жабой \ питоном, если сравнивать с ГО то отрыв еще выше Для заказчика разница как правила 10-20$ в час Т.е за Senior SE на дотнете платят в среднем 70$, то на питоне 90$ Внутренний рынок US устроен таким же образом Если ехать в Европу, в той же Германии ты работу на дотнете не найдешь, нужно ехать в Бритаху >>2136647 >нахой та омерика. Побольше в /b/ сиди, может поймешь для чего Как минимум, уехать - заработать - вернуться - выкатится из работы в принципе >>2136653 Если для себя то авалония, если для вкатывания то про десктопы забудь
>>2136655 >работать из России? А я напоминаю, что на борде не только аноны из пидорахи капчуют Более того, знаю людей которые спокойно себе работаю ИЗ ПИДОРАХИ в том числе
>>2136666 >Как минимум, уехать - заработать - вернуться - выкатится из работы в принципе Ты заебал писать абстрактные вещи. Буду игнорировать твои посты.
>>2136666 >Если для себя то авалония, если для вкатывания то про десктопы забудь Для себя. Как я понял, Авалония может то же самое что и WPF, но при этом приложения будут кроссплатформенными, вот и задумался, что сейчас вообще актуально и кто чем пользуется.
Хотя и вкатываться тоже планировал через пару лет. Как я понял, сейчас самый лёгкий способ вкатиться с шарпом это веб с ASP.NET? Многие ещё пишут про Юнити. На хедхантере вакансий по ним почти что одинаковое количество. Тоже интересно узнать у вас мнение, через что легче будет вкатиться? Спасибо.
Кто-нибудь может пояснить, почему при сборке нет6, теперь в проект напихивается невидимый файл с таким говном: // <autogenerated /> global using global::System; global using global::System.Collections.Generic; global using global::System.IO; global using global::System.Linq; global using global::System.Net.Http; global using global::System.Threading; global using global::System.Threading.Tasks; При этом посмотреть это руками нигде нельзя из студии. Что за ебанутое решение?
>>2136693 >кто чем пользуется. Авалонией в промышленных масштабах никто не пользуется, пользуются WPF Для себя можно использовать авалонию >>2136693 >это веб с ASP.NET? верно, но кроме этого нужен будет на базовом уровне фронт >>2136693 >Многие ещё пишут про Юнити Юнити это рак от мира геймдева, забудь про него >>2136693 > через что легче будет вкатиться? Проще всего будет вкатиться через JS\Python, перспектив больше В любом случае, вкатываться рекомендую исключительно в веб. Вкат в десктопы \ геймдев практически гвоздями прибивает к решеткам, сменить потом стек будет сложнее
Я искринне не понимаю тех, кто в 2021 году советуют дотнет для вката, когда наблюдается повальное перекатывает из дотнета в ноду \ го Сейчас не 2012 год. Его можно советовать лишь тем, у кого в вузе были плюсы и дотнет и ничего больше они в глаза видеть не хотят. Нормальные люди которые работают на дотнете, его советовать для вката не будут
>>2136681 Мне не нужно учить шарп, я уже работаю. Но в проекте есть код с тасками и многопотоком, а я не понимаю этот код. Я джун, поэтому в этот код меня не пустят, но я вот думаю, что это удача, что меня взяли на работу без этих знаний. Статьи в интернете по асинку неполные, в официальных доках тоже пусто, думаю надо читать книги, как раз таки не как зумеры, а как отцы и деды. >выебнуться бумажной книгой Книга нужна, потому что она лежит на столе, а не в телефоне, например, а на третий монитор, видеокарту с тремя выходами и более большой стол я ещё не заработал. >В языке, где изначально не предполагалась многопоточность, ну-ну. Что эти зумерские TPL. Я не понял, можешь объяснить подробнее пожалуйста? В шарпе не предполагался многопоток? В c/c++ для которых есть поддержка OpenMP, не предполагался многопоток? Если ты про использование OpenMP в шарпе, то я про это не говорил. Если в шарпе не предполагался многопоток, но его запилили, зачем тогда фраза про зумеров и намёк на то, что TPL не хуже/лучше OpenMP?
>>2136708 На одном из интервью говорили, что людей заебало прописывать некоторые дефолтные юзинги. Фича еще может измениться. Разные сдк генерируют разный список. Судя по закрытым ишью в спеке на гитхабе, людям это нравится. Выключается через EnableDefaultGlobalUsings и скорее всего будет выключена с выкаткой в ноябре как нулабилити, который теперь будет включен в дефолтный шаблон.
>>2136715 Сочувствую тем, кто тебя нанимал, так как это даже на лекциях вышки рассказывают. Киндл стоит 79 баксов.
>В шарпе не предполагался многопоток? Я про плюсы говорил. OpenMP - это только один из способов сделать многопоточное приложение на плюсах. TPL - это C# технология, которая пришла с .NET FX 4.0, чтобы упростить работу с потоками. Многопоточность - большая и сложная тема без особой привязки к языку, я не помню не одну книгу, где бы она более менее нормально описывалась.
>>2136719 Идея здравая и полезная. Просто бесит именно неявность. Почему нельзя просто сделать специальный файл GlobalUsing.cs, в котором руками всё это прописать?
>>2136852 Если бы не был долбаебом то увидел, что про амазон было сказано почти сразу. Так что скройся со своим мнением отседа. Как и с твоим опытом что-то скачать.
>>2136875 Не знаю, сравни время этих двух постов, мое двухзначное айсикью не позволяет этого сделать: >>2135078 >>2136681 Между этими постами есть еще несколько моих.
Хочу написать графическое приложение на шарпе, но в этом треде активно хейтят WPF. Подскажите в таком случае, как мне писать графическое приложение? Мне нужно окно, где будет поле для вывода массива пикселей, которые могут обновляться с частотой 50Гц и дополнительные элементы управления в виде кнопок, переключателей и т.п.
>>2136560 >Нахуй твоя омерика? Я могу в своем городе жить как царь, не зная куда деньги транжирить Ну сейчас-то оно действительно так, но я вот что-то очкую что будет через лет так 10-20-30. Экономика России как завязана на экспорт сырья, так и будет завязана еще долго лет. Если это сырье внезапно закончится или просто другим странам оно перестанет быть нужно, то здесь все свалится в такую пизду, о которой думать страшно. Западный барин платить конечно будет, но вот насколько комфортно и безопасно будет оставаться в родной пердяевке? Я даже не про преступность, а про банальную инфраструктруру вроде больниц, электричества и водопровода. В моей мухосрани воду (холодную) отключают почти каждый день. Ни посрать, ни помыться. И это еще водопровод времен 60-70х годов прошлого столетия функционирует. Что будет через 20 лет я хуй знает. А в местную больницу и сейчас уже не кладут, пока денег не даш всем начиная от медсестер заканчивая врачом отделения. А сама больница внутри представляет собой руины. Я если что в РФ живу, город 200к населения, а не где-то на донбассе или украине/молдавии.
Я вот поэтому и дрочу алгоритмы и инглишь чтобы по возможности съеьаться если не в фаанг, то куда-нибудь на запад. Заебало, что какая-то жизнь есть в 2.5 городах, а за их пределами самый настоящий мордор.
>>2136927 Самый быстрый вариант: жс в зубы и вперед покорят те 2.5 города, потом может быть релокация в любую другую страну нейм. Выехать на жс/питон будет сложно, огромная конкуренция среди ждунов, но проще шарпа, потому что хотя бы вакансий больше. Я сравнивал не с мухосранском.
Проходил собесы в некоторых странах на чистого фронтендера и чистого бекендера. Ожидания от жс фронтендера на порядок ниже, достаточно сказать как ты любишь теху, на которой они пишут, ответить на пару вопросов на дурака и простейшая испыталка. На бека будут заебывать всякой теоретической хуйней, знаниями определенных очень экзотических тех, других языков, кроме шарпа, и испыталка может показаться адом, если проект достаточно большой.
Еще отношения разные к фронтендеру и бекендеру. К первым чаще всего относятся как к говну, в контракте желательно от этого защищаться дополнительными пунктами.
Что-то окромя веба, как по мне, слишком рискованно для релокаций.
>>2136711 > лойс Заинтересовало? Я собсна хочу исправить критический недостаток официальной мокрописьки, и кроме того добавить фичу - контекстное меню со всем каталогом, чтобы быстро загрузить нескучную обоину прямо из трея, прямо выбрав из каталога категорию, в том числе меняя или не меняя настройку выбранной категории.
>>2137004 Идея неплохая. Хотя чисто обоины - узкая тема. Попробуй добавить ещё туда всякие заставки, типо каминов и т.д.
Помню когда то в последних классах школы и вузике, пользовался какой то прогой которая умела менять обои, делать заставку камина и еще у неё была функция превращать комп в будильник и выводить его из гибернации(и вводить туда), классная была прога.
>>2137020 Таких прог тыщи! Тыщи! Буквально вчера искал как программно устанавливать обои из шарпа и натыкался на подобную прогу. Мотивации нет делать ещё один клон клона. Я в общем-то выбрал эту программу, чтобы попрактиковаться в новых модных молодёжных методах построения интерфейсов. Я - дед, выползший из анабиоза. Раньше формошлёпил себе формочки в дельфях. А тут выползаю, а у зумеров МВВМ всякое, датабиндинги, прочая. >>2137164 picoe/eto из прошлого треда. На винде разворачивается в WPF, на линуксе в GTK.
Тут другая проблема. Как оказывается по состоянию на сегодняшний день я не обнаружил простого способа без задней мысли установить обои. Везде надо какие-то лютые шаманства применять. Очень огорчае сие.
>>2134580 (OP) Объясните, пожалуйста, пошагово, что здесь происходит. Не понимаю почему такое наименование метода, IHostBuilder CreateHostBuilder, что тут имя и что значит второе слово, тогда, ведь это не модификатора Не понимаю что за лямбда запись после параметров функции Не понимаю .ConfigureWebHostDefaults , чего это метод и как он вызывается не понимаю что делает дальше с лямбдой webBuilder
Буду рад помощи, пришёл с плюсов, учу синтаксис, и вообще не могу понять что происходит на пикриле
>>2137634 >учу синтаксис >почему такое наименование метода, IHostBuilder CreateHostBuilder, что тут имя и что значит второе слово Не учишь. Синтаксис объявления методов: <модификаторы доступа> <возвращаемый тип> <название метода>(<аргументы>) public static - модификаторы IHostBuilder - возвращаемый тип. По соглашениям, типы с префиксом I - интерфейсы. CreateHostBuilder - название метода.
Я вот не понимаю, зачем тогда нужен этот .Net Core, если из него вырезали кучу библиотек и оставили только консоль и АСП? Тип сматрите какая у нас кроссплатформа, можно даже консольные приложения на линупсе писать. Им самим-то не смешно? Кому нужны консольные приложения в 2021? Да ещё при этом надо отдельно ставить вагон библиотек, чтобы это всё работало.
>>2137769 Я тут не выдержал, скачал книжку Прайса по 9 версии на английском и он там вообще убрал главу про UWP. У него теперь книга чисто про консоль и ASP.NET Core. Таким образом .Net Core - это не про графику.
На сайте микрософтов можно найти следующую фразу: Несмотря на то, что .NET представляет собой кросс-платформенную технологию, WPF это не касается, и данная платформа выполняется только в Windows.
Так что о чём мы говорим? Ни какой кроссплатформенности мы не получили, дак к тому же и мощь .Net Framework убили.
>>2137831 > к тому же и мощь .Net Framework убили Никто тебе не запрещает писать на 4.8-ом фреймоврке. Никто, кроме твоей мещанской тяги ко всему новому БЛЕСТЯШЕМУ.
>>2137871 Почему тогда в прошлом треде писали, что ASP.NET ничего сама не может и надо ставить ещё Nginx/Apache?
>>2137859 Я в 2005 знать не знал как писать сайты, взял в библиотеке книжку по РНР и за неделю у меня был модульный сайт с гостевой, счетчиком и авторизацией/регистрацией.
>>2137887 Я прям сейчас могу написать сайт на РНР за пару часиков с нуля. Мне нужен только текстовый редактор и веб-сервер с РНР. А С# надо полгода изучать язык, потом полгода ASP.NET, разибираться что там переносимо, что не переносимо, читать Рихтера, чтобы понять как это компилируется в IL-код и выполняется на CLR-машине. В итоге 1,5 года готовится к тому, что я могу прям сейчас написанть на РНР.
>>2137831 МС реанимировала платформу дотнета кроссплатформенностью . Опыт/эксперимент с net core был весьма успешным.
Никто не запрещает тебе юзать некроссплатформенные тулзы с тем же 5 дотнетом (net5-windows), они просто стали стали располагаться "рядом" (параллельно), а не во главе платформы. Никто вкусноту дотнета винды не выкинет, даже если прикрутят какую-нибудь Avalonia.
>>2137904 Мне и не надо это знать. Программирование заключается в создании файлов .php. А как они там работают - меня не интересует. А в C# надо всё знать. Там даже код не напишешь без этих знаний. Очень много уровней абстракций. В РНР всё тоже самое, но проще.
>>2137884 Вообще-то nginx всегда ставят "лицом", даже с го, джавой и прочим. Потому что nginx хорошо отдает статику под нагрузкой, лучше чем языки с GC (кто сказал про apache, я хз, но может его допилили уже).
>>2137913 Хороший повод поднять свой уровень разработчика, с шаблонизатора-пхп с криво прикрученным ООП, до настоящего программиста на универсальном языке, с которым ты сможешь уже хоть веб, хоть игры, хоть ИИ, хоть вебассембли.
Ты все еще хочешь гонять php файлы или программировать на (возможно) лучшем языке в мире?
Java - стагнирует, держится только за счет гигантов, которые реанимировали его по средствам openjdk (этого говна им еще на век хватит).
Kotlin - на серьезных щах писать новый язык поверх стагнирующего jvm, где все другие прокси языки уже скукожились - это странно, но смогли.
Go - пытается кого-то удивить в 2021 асинхронщиной (и дженериками, лол). Язык микросервис, язык if err != nil
Rust - пытается и так сложное системное программирование засунуть в рамки борроу-чекера, а то, видимо, программистам и так скучно, им надо еще больше ограничений в коде, чтобы они не выражали своим мысли, а просто боролся с кодом.
Js - вместо создания удобного функционального языка, где у тебя были бы только данные и алгоритмы (и никакого лисп-синтаксиса!), они все таки пропихнули в него ООП. Получилось терпимо, но блин node.js это какое-то издевательство уровня студенческой лабораторной работы. Вам повезло, если нюхаете его только во фронтенде.
Python - до сих пор при копипасте слетают отступы. Постоянно "не такой как все" синтаксис, даже если идею стыбрили из вне. Засунули тоже классы, но криво. Теперь у вас и классы и словари, живите с этим. Язык дико любим инфоцыганиями, которые до сих пор неплохо доят вкатывальщиков. В узких кругах называют не питоном, а"вкатоном"
PHP - еще один стагнирующий язык, который убили тем, что в него засунули полный синтаксис джавы. Зачем динамическому языку ООП и тем более интерфейсы, мало кто ответит (они реально их использовали даже когда не было хинтов на типы). Как бы всем не было больно это осознавать, но язык по прежнему хорошо приносит деньги и занимает 80% интернета.
C# - удобнейщий на сегодня фулл-ООП язык, в котором есть конструкции на все случае жизни. Имел бы статус лучшего языка в мире, если бы начал перекатываться в опенсорс еще лет 10-15 назад, когда жабу начало колбасит. К сожалению МС умеет делать языки и платформы, но не умеет вовремя прыгнуть в нужный вагон. Язык, которого вам хватит на все задачи (от машинного обучения, до игр и вебассембли). Одно из самых быстрых асинхронных веб решений (ASP.Net) поддерживаемое самим разработчиком - MC, а не просто тестовая зарубка для бенчей techempower. Но не самый популярный язык ввиду выше описанных причин.
Кто-нибудь разобрался как работать с null? Я вот читал в книге Гриффитса про это и вообще ничего не понял. Муть какая-то. Чем плох подход: var x = Something.GetSomebody(); if(x==null) { Console.WriteLine("Error! You must reinstall Windows!"); } x.Work(); ...
>>2137977 Не забивай голову, временная хайпавая-молодежная штука. По началу кажется что круто, а потом начинается всякое lateinit и классы заглушки, так как трудно выразить красивый код, когда есть большой объект, который инициализируется постепенно в коде (не работает).
>>2137977 Ну в твоем примере все упадет. А так - тем что ты вынужден засирать кучу своего кода проверками. Если ты хуячишь методы по 500 строк - это не так страшно, но сейчас модно-молодежно делать классы максимум в 300+-50 строк, сответственно обычно у такого класса 2-3 метода паблик, соответственно ты должен везде ебнуть проверку на null. Это ебатория. Потому если твой апи явно не говорит что может вернуть null с помощью nullable refirnce - ты должен либо выбросить ошибку, либо вернуть пустышку, либо еще что-то сделать, но не возвращать null. Ну и да, классика про null - если ты его таки забыл проверить(а настенет день когда забудешь), то все ебнется в рантайме, и ошибку ты скорее всего уже в проде заметишь, а знаешь как весело получать пиздюлей, за такую вот хуйню, которая еще и исправится одной строчкой? Потому лучше сразу не допускать null в своем апи, а чужое - оборачивать и тоже не допускать.
>>2137997 В самом сервисе, который инициализирует этот объект, часть данных у тебя уже готово и используется где-то в бизнес-логике, а часть будет получена позже, за счет уже инициализированных данных. Причем в предметной области, это одна такая сложная сущность (так задумано и неделимо). Можно нагарадить промежуточного говна данных, но там и так абстракций дофига, проще моднявую хрень выкинуть.
>>2138007 Борьба с null'ами, хайповое говно, не укладывающееся в предметную область динамических систем.
>и героически ее решим Потом сидеть и подгонять динамические данные к очередной временной игрушки в индустрии, которая появилась благодаря пиара котлина.
>>2138009 Бизнес-логика это про то как твои биты-байты отражаются на реальный мир. Условно, что это такое для пользователя твоей хуйни. Допустим, вот ты делаешь ToDo - для тебя это сущность описывающаяся как-то так: ToDo = { id:guid, name: string, description:string, creator:user, attachments:file[], deadline:dateTime ... } еу и т.д. С точки зрения пользователя - это одна сущность и она описывает задачу, то что под капотом есть какая-то база данных, что часть этой хуйни подтягивается с другого сервера, что можно отправить на почту и т.д. пользователя не ебет. Ему не интересно что там программа делает под капотом, для него важно конечная "бизнес" сужность: отчетик, настроечка оборудования, задачка и т.д.
>>2138005 Ты же понимаешь что только что описал классический говнокод. Завтра вы командой поедете на какую-нибудь конференцию, разобьется автобус, вы сдохните в адских муках(за оправдание таких вот решений только так помирают) и ваш кусок говна хуй кто поддерживать сможет, потому что ему нужно будет знать что там в каком порядке собирать. А если добавятся еще сущности и проч-проч. Вот серьезно. Что, блядь, мешает сделать несколько маленьких объектов, которые могут независимо инициализироваться, сделать фассадик и билдера к нему и жить как нормальный человек. Блядь, это же как лего, лол. Только кубики нужной формы ты можешь сам сделать. Не, зачем. Давайте мы вместо лего будем какой-то обрубок с урока труда тащить, а потом он как-то собираться будет, а как он собирается - знаем только мы)))
>>2138019 Если ты не встречал области или не можешь себе смоделировать области, где нуллы восстребованны, то ограниченный мозг скорее всего у тебя. Ибо не обладаешь достаточным критическим мышлением, чтобы проанализировать маркетинговый буллшит на наличие полного покрытия в коде, всех моментов.
Скорее всего ты пишешь скрипты или пхп-странички в стиле - запросил и выкинул, поэтому твой мозг и не может в такую когнитивную сложность как динамические системы. Это нормально, не переживай, но впредь, перед тем как есть маркетинг, попробуй его сначала понюхать и определить на уровень наличие в нем говна.
Столько идей появилось, что мне в моем коде надо переделать. Будто ботлнек в голове проскочил и стало свободней - просто из-за того что увидел как задачу решить по другому, а не как я утенком делаю все по одному типу.
И даже стало интересно - есть еще, а то он там бросил эту затею.
Видел еще всякие таймлапсы - но это не то, все очень быстро, не проговаривается почему так, а не по другому и т.д.
Вообще считаю такой контент очень полезным, а не как Дудари стопятсот видео по инициализации переменой снимают.
В моей жизни нет возможности как другие программисты что-то делают, хотя бы в ютубе у них поучиться.
>>2138297 Серьезно? Открыл "Часть 2. Приложение с нуля на C# - Расчет заработной платы.". Чел полвидео игрался с автогенерацией имен неймспесов с удивленными глазами, полвидео создавал тест, который нехуя не делает. На уровне Дудари стопятсот.
Никто не будет просто так распинаться, описывая архитектуру проекта или всякие бест практики как Ардалис, настоящий инфоцыган своих курсов. Или будут короткие видео обо всем по чуть-чуть как у Nick Chapsas. Или какой-либо пересказ статьи, возможно даже своей, как у Mark Seemann. Или всякая дженерик параша как написать тодо лист прикрутив всего и побольше: сокеты, иок, графкуэл, сваггер, логгер, эф, даппер и т.п.
Добавь сюда популярность дотнет на фоне того же жс. На этих видео автор даже не выйдет на нормальный зароботок, проще запилить какую-нибудь зумерскую хуйню на ректа в формате стримов и обязательной подпиской на патреоне, чтобы получить сорцы.
>>2138345 >процесс разработки Бесплатно не найдешь.
>всякую хуйню И ненавязчиво рекламируют всякую хуйню. Как даун, снимающий хуйню, снимет то, что ты хочешь? Например какая-нибудь инста-вбагиня. Ты себя хоть слышишь?
>>2138348 >Бесплатно не найдешь. А вдруг? Когда-то и видео уроков не было, и онлайн лекций.
>>2138348 >И ненавязчиво рекламируют всякую хуйню. Люди с 1-2к подписчиками нихера не рекламируют, кроме может своего патреона (реклама с 10к), но тем не менее снимают.
Например в мире юнити таких много - как раз сейчас такой ролик смотрю. В геймдеве вообще много подобного. А вот в софте - вот ищу по нему
>реклама с 10к Чтобы что-то рекламировать, не надо 10к.
>в мире юнити таких много Как раз ровно то, что я описываю. Инфоцыгане с качеством ниже плинтуса.
Чтобы не быть голословным. Пишем unity project from scratch, открываем первое же видео с 1лям+ просмотров. Чел за 2 часа высрал меньше 100 строк говнокода (учитывая специфику C# с фигурными скобками и пустыми строками), где на Update вызывает GetComponent. Рукалицо.
Понты - чек. Реклама - чек. Гуглит - чек. Нарушает принципы - чек. Много воды - чек. Рассказывает про основы C# - чек.
Чуть прокрутив ниже, можно увидеть ролик от фрикампа (рекламируют свои курсы, выкидывая склеенные легаси лекции в общий доступ) на 7 часов с длиннющей такой приставкой "бегинер", даже какой-то проект запилил. Промотав. Можно ли научиться что-то писать после этого урока? Да. Код будет говно? Да. Даже у них можно встретить как просуммировать два числа на C# (в уроке про Unity) и очередной GameManager.
>>2138151 А самому придумать, не? Вывести массив в консоль, отразить по вертикали, отразить по горизонтали, сложить элементы двух массивов, отсортировать строки по количеству элементов, повернуть на 90 градусов, удалить строку, удалить элемент и over 9000 других операций. >>2138353 Раньше на твиче были программерские стримы. Правда не обучающие, а либо кто-то сам учился, либо просто пилил свой проект. Но смотреть такое. конечно да, тяжко и уныло. Да и сейчас уже программинг хаб выпилен, вроде. P.S. Бери книгу и не выебывайся. У того же анкл Боба создание приложения идет через всю книгу, в книгах Адама Фримана по EF и ASP тоже идет создание магазина спорттоваров, вроде.
>>2138353 Кстати вот пишу я свой сайт, уже больше года часов по 10 в неделю. Да я не профессионал, сам учусь после работы, поэтому делаю все медленно и большую часть времени уходит на чтение доков и прочего. И сайт еще даже не бета. К чему это я, ах да создание какого-нибудь осмысленного проекта с нуля это несколько сотен часов, ты правда хочешь что бы кто-то такое заснял, и ты правда хочешь потратить время на просмотр такого?
>>2138489 Ну хз. Это будет либо что-то совсем начальное, а-ля посмотрите мы можем не создавать экземпляр класса ввнутри другого класса, а передать его в коструктор, да еше и в виде интерфейса! Либо FizzBuzz Enterprise Edition где нихрена не понятно, что зачем и почему. Сам как-то пробовал смотреть вот этого индуса https://www.youtube.com/channel/UCCTVrRB5KpIiK6V2GGVsR1Q У него там дофига всего и для вкатывающихся и по самому шарпу, и по еф, и по асп. Но боже, как же неэффективно смотреть видосы, даже на 1,5х.
>>2138662 не понял, мне что трайкечи фигачить прямо в представлении? Мне кажется это хуево будет работать, я же не будут просто один трайкеч фигать на всю страницу, неужели нету какого-то более умного способа поймать ошибку и что-то сделать например показать красивую картинку вместо стека или 404
>>2138654 Ловить ошибки прерогатива контролера, в край модели. Тоже вкатывающийся и не знаю как конкретно, но должны быть какие-то хендлеры. Но если очень надо, то можно и так https://stackoverflow.com/a/9845417
Котаны, почему я получаю такие странные результаты, когда хочу посчитать самый простейший кубический корень из 1000. Ответ должен быть 10, но почему в первых трех результатах мне выдает 1? Не должно же так быть!
Кто знает, что за книга лежит в основе? Пытался гуглить по уникальным словам, мало куда попал (вероятно автор прям склеел вступление из какой-то статьи и часть с курсов stepic) https://metanit.com/sharp/tutorial/
Need help сеньеры. Я вкатун. Обучаюсь по средствам metanit + С# 9.0 in nutshell. Вроде все идет хорошо, но. Я не могу найти точку входа в asp.net, где бы мне все хорошо разжевали. С чего начать? сразу смотреть видосики где пилят сайт? мб литература какая? мб толковый курс посоветуете? Заранее премного благодарен.
>>2139288 > Обучаюсь по средствам metanit while(client.DataAvailable) уже писал? > точку входа в asp.net, Так если тебе метанит заходит, почему там же и асп не начать? >С чего начать? Попробуй Адама Фримана. >сразу смотреть видосики Не дай Б-г.
>>2139360 > while(client.DataAvailable) уже писал? нет > Так если тебе метанит заходит, почему там же и асп не начать? первые статьи про асп показались непонятными. Да я понимаю, что еще основной курс по c# не прошел, но по сути, то я уже должен что-то понимать. вот и паникую, ищу другую инфу. >Попробуй Адама Фримана. спасибо, скачал
>>2139574 > но по сути, то я уже должен что-то понимать Если ты не понимаешь общую информатику, общий ООП в отрыве от языков вообще, общие сетевые технологии в отрыве от фреймворков вообще, то - асп.нет ты не пойиёшь, хоть какую книгу читай. Учи матчасть, учи, сука!
>>2139586 >бщую информатику, общий ООП в отрыве от языков вообще ну тут ок >общие сетевые технологии в отрыве от фреймворков вообще вот тут не ок Как наверстать?
C# сантехник в треде. Занимаюсь программированием уже лет 5, могу запилить какую угодно хрень, но стал ощущать нехватку знаний деталей.
Подскажите как вкатиться глубже в шарп и дот нет, может какие-то курсы есть, книги может какие-то которые учат не с нуля, а именно деталям, особенностям, как все под капотом работает и описывают лучшие подходы.
>>2139742 да ладно. Можно и оформить. Вот аноний выше даже неплохую мегу запилил - уважуха. Второй вопрос - кто это будет поддерживать, мы тут ленивый мудаки все.
Неофит на связи. Asp.net 5, создавал по дефолту страницы в папке pages и верстал их, затем дошел к контроллерам и в "гайдах" написано что нужно перед контроллером пишеться Views/"имя папки и самого контроллера". При попытке переноса и переименования неймспейсов внутри страницы при запуске выдает ошибку ViewData cannot be null. С чем это связано и как это фиксить?
>>2139937 Не так то, что DataAvailable >Gets a value that indicates whether data is available on the NetworkStream to be read. А на метаните его используют как количество отправленных байт. В итоге на каком-нибудь сайберфоруме, да и тут проскаиивает, 1000 тем "а пачиму у меня клиент-сервер не работает, я же скопировал с метанита 1 в 1, ряяя".
>>2139828 >Views/"имя папки и самого контроллера" Ващета Views/Controller/Action.cshtml >ViewData cannot be null. А ты к вьюдате сам не обращаешься из кода? А если вернуть неймспейсы все работает? Попробуй еще жмякнуть Build -> Clean Solution
>>2140079 > Попробуй еще жмякнуть Build -> Clean Solution Спасибо за заботу, но это само собой. > Ващета Views/Controller/Action.cshtml Ну да я это и имел ввиду > А ты к вьюдате сам не обращаешься из кода? А если вернуть неймспейсы все работает? Все работает если не юзать контроллеры, оставить дефолтный конфиг и создавать вьюхи в pages. При обращении к вьюдате из метода контроллера (к тайтлу например) выдает эксепшн на этой строке. Если убрать и оставить в методе просто return View(); выдает эксепшн пейдж.
>>2138890 Не пиздит CLR гарантирует что вызов статического конструктора происходит 1 раз на домен Пустой статический конструктор там нужен чтобы убрать аттрибут beforefieldinit, и чтобы вызов конструктора был только при первом обращении к классу Без статического конструктора CLR может вызвать инициализатор немного раньше, чем первое обращение к класу
В любом случае, нормальные люди на среду не завязываются, потому что дефолтное поведение может изменится в будущем Многие зеленые об этом в принципе не слышали, нормальные люди используют Lazy<T>
>>2140123 Ну вот смотри.Тебе нужно отсортировать что-то по какому-то признаку. Оки доки. Алгоритм ты выбрал. Но признак может измениться. Допустим у тебя нет делегатов, но все еще есть интерфейсы. В таком случае, чтобы сделать сортировку - ты должен каждому классу, который будешь сортировать реализовать интерфейс ISortable. Хочешь ли ты это делать? А если условие сортировки зависит от контекста? Допустим тут мы сортируем объекты по длине строки, а там - по числу гласных в слове, а тут - по числу специальных символов. Делать на каждый такой случай по интерфейсу? Ну, допустим. Допустим ты даже исхитришься и дойдешь до такой штуки как визитер и у тебя вместо этого вот - будет ISorter<T> который уже сам знает как сортировать, но блядь, это все еще куча классов, когда алгоритм-то отличается только условием по которому сортируют. Так вот. Делегат позволяет ЭЛЕГАНТНО передать какой-то кусок алгоритма туда, где оно надо и где целый класс - будет оверкиллом. Я-то сам - любитель плодить сущности, но это выливается в то, что у тебя куча каких-то ошметков, а понять что и как происходит - довольно сложно. Со временем приходишь к мысли - что оч удобно когда твой класс - полноценная логическая и неделимая сущность и его поведение слабо зависит от того что там в каком-то интерефейсе наворотили, а если у тебя не супер-дупер интерпрайз-проект с сотней разрабов на проект - эти вот выебоны с миллиардом интерфейсов и по одной реализацией на них - выглядят как пустая трата времени, проще передать делегат лямбдой, чтобы все было наглядно и удобно.
>>2140177 Ну вот допустим ты делаешь рпг. НПЦ получил в лицо ядом. Ты хочешь вот такую вот хитрую логику сделать: обычные нпц получают обычный урон, а андеды - хилятся. Все ок, ты можешь просто сделать метод и переопределить его у андедов. Но вот теперь добавилось заклинание обратного эффекта и нужно сделать так, чтобы обычных НПЦ пока на банке этот эффект - яд теперь хилил, а андедов - наоборот. А потом появятся эльфы, для которых яд должен быть всего на 20% от его дамага и т.д. Для каждого класса переопределять заебешься, где-то забудешь, да и с усложнением разных логику у тебя будет много чего меняться. Да, это синтетический пример и можно иначе написать, просто как по мне - довольно жизненный и в принципе понятный.
>>2140301 А при чем тут курсы? Речь как раз о более-менее реальных проектах в открытую с обсуждением что и почему. (реальный проект - это проект решающий какую-то задачу - а не очередной хелловорд)
>>2140393 Платные функции студии, человеку который спрашивает чем студия отличается от кода, нахрен не нужны. >>2140439 Ну майкрософт как всегда тут. Есть Razor Pages, а есть MVC, но и там и там используется razor синтаксис (cshtml). В пагесах тебе надо из контролера возвращать Page (ну и все что с Page - RedirectToPage и т.д.) из мвц вьюхи. В мвц ты модель передашь во вьюху, в пагесах модель связана со страницей (по типу как в винформах, есть файл морды и есть код бихайнд). Плюс разница в биндингах и прочее. Там отличий достаточно, но я с пагесами не сильно знаком.
>>2140456 Я выяснил что проблема возникает из-за раставленных по вьюхе asp-validation/asp-for="Username/Password", хотя модель подключается в начале страницы и находится в отдельной папке ViewModel. Я так понял что вьюмодель почему-то не инициализируется при запуске страницы. Если убрать все "ссылки" на нее, страница запускается. Как их заставить заработать опять?
>>2140487 > вьюмодель почему-то не инициализируется при запуске страницы Я же таки написал. В Razor Pages моделью является сама страница (её .cs часть, не .cshtml), т.е. все биндится к её свойствам. В MVC модель нужно передать в метод View() (return View(new MyVM())).
>>2140536 >>2140532 Шо за бред? Обсуждали уже. Сможешь ли ты из пыхи почти изкаробки получить богатую авторизацию/аутентификацию, ДИ, по сути готовый хомяк с темплейта дефолтного? А если пойти дальше по пути говнокодерства наименьшего сопротивления и репид девеломпента - сможешь ли ты изкаробки полностью генерить крудяки по базе? Получишь ли ты хотя бы рельсы для вменяемой архитектуры?
Я давно не видел пыха, но скорее всего ответ - нет.
>>2140536 Ну и это тоже ложь. Чому больно-то? Если совсем тупенький - можешь хочь через гуй "розробатывать". Раньше только с хостингом могло быть подороже, но сейчас кроссплатформа, так что, наверное, однохуйственно. Асп и С# единственные годные технологии "навырост", лояльные к новичкам но не к долбоебам
>>2140540 > богатую авторизацию >полностью генерить крудяки по базе? > рельсы для вменяемой архитектуры? Видимо у нас разные понятия о маленьком проекте. Я имел ввиду сайт визитку/лэндинг которым нужно быстро и дешево. На том же вордпрессе, если не нужна особая кастомизация, это сделают за ящик пива.
>>2140543 Хостинг C# всё равно тяжеловесней, чем РНР. Тем более поставить платформу .NET не всегда просто. Сам недавно ставил на Линупс и словил кучу ошибок, пришлось руками допиливать.
>>2140491 >>2140503 >>2140505 Т.е. мне просто создать представление razor вместо страницы Razor? Но я все равно не понимаю почему страница работает в папке Pages, но не работает в папке Views?
>>2140555 Например? Сам ставил на бубунту и центос тупо скопировав команды с мсдн. Я не с целью доебаться, а что б знать где может эпик фейл случиться. >>2140560 >страница работает в папке Pages, но не работает в папке Views? Потому что по дефолту RazorPages ищутся в /Pages, а вьюхи во /Views oO. Плюс возможно конфликтуют маршруты, и там где ты думаешь что стучишься к мвц контроллеру, на самом дели улетает к Page, но это не точно.
>>2140567 Ок, а как тогда не обосраться с маршрутами? У меня в конфиге для razor pages (по дефолту): app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); } А для обычных вьюх (как я пытался сделать) endpoints.MapControllerRoute("Default", "/{controller}/{action}", new { controller = "App", action = "Index" });
>>2140574 Скорее всего да. Только обрати внимание. что у тебя используются дефолтные значения для мвц. Т.е. при запросе site.ru/app заматчится RazorPages "App", а не контроллер app с экшеном index.
Зачем они вообще выпустили этот Core, если в итоге он не является полной заменой Framework? Раньше было много книг по этой теме и всё было актуально, а сейчас они своим Core всё сломали и книги стали не актуальны, а новых книг не выходит. Самые свежие книги - это переходные, где авторы пишут про Framework и сравнивают, что вот дескать вышла новомодная Core, но изучайте её сами на сайте микрософтов. В итоге я сижу как дурак и ничего не могу спрограммировать, потому что всё в подвешенном состоянии, не стабильно.
>>2140648 Ну какое большинство? Где это большинство? Троелсен - переходная книга, где он в последних главах вскользь упоминает Core, сама книга 2017, Рихтер - старая книга про Framework за 2013, Книги по WPF - все про Framework за 2008-2011 годы, Фриман - самая свежая по ASP.NET MVC 5 за 2013 год.
>>2140665 Каждый год выкатывают новую версию .NET и новую версию языка, сколько времени надо на перевод книги на русек? Год? 5 лет? Понять основы пойдет и книга 2008 года, C# обратно-совместимый. Не будут работать только мертвые технологии как Silverlight и всякая хрень, которую не напишет нормальный программист.
>>2140673 >Silverlight Половина книг по WPF как раз про эту фигню.
Будут ли Микрософты решать проблему десктопа? Дело в том, что на текущий момент вообще не понятно как писать десктопные приложения. Ничего кроссплатформенного нет, технологиям уже по 15-20 лет, литература по ним тоже не пишется.
>Половина книг по WPF как раз про эту фигню. Silverlight никому не нужен, тем более, когда есть WA и Blazor. MAUI будет позволять писать кроссплатформу.
>Ничего кроссплатформенного нет Не одним декстопом бабки зарабатывают. В домах компухтер уже редкость.
>технологиям уже по 15-20 лет И? QT не меньше, но на нем тоже пишут.
>литература по ним тоже не пишется Ничего не изменилось в WinForms и WPF, зачем писать книгу?
>>2140682 >не понятно как писать десктопные приложения Также как и раньше. Формы и впф давно уже на кор портировали, плюс винюи пердолят. Да и фреймворк не перестал внезапно работать. >Ничего кроссплатформенного нет Замариан и сын его MAUI. Либо Уно, плюс тут еще анон ETO использовал да и еще есть несколько менее известных фреймворков.
>>2140652 Троелсен по .net core 3... В каждой теме есть список изменений языка, плюс вначале рассказывается про dll и запуск на линуксе. Фриман есть по asp.net core 2.1 и 3. Чё несёт не понимаю, я сам по этим книгам вкатывался... Рихтер соглы, только старого видел
Обесните, почему не работает так, как я хочу? У меня есть два класса, в которых есть одинаковое свойство bool Checked; которое, к сожалению не унаследовано от общего предка, а вручную вписано создателем либы в эти классы. Я хочу общий коллбэк, принимающий параметром эти классы и в нём вести обработку данного поля. Я завожу себе без задней мысли интерфейс ICheckable { bool Checked { get; set; } } и далее в нужном мне месте (в ивент хэндлере) опять же без задней мысли пишу ICheckable s = sender as ICheckable; И что мне выдаёт компилятор? NullReferenceException! В s ничего не конвертится, не приводится к моему интерфейсу. Интерфейсов в либе, от которых я мог бы унаследовать свой интерфейс тоже не завезено.
Не, я конечно, сделал дедовским методом, копипастя (sender as RadioButton).Checked; или (sender as CheckButton).Checked; так всё работает. Но хотелось бы узнать, может есть какой-то обходной манёвр? Как собрать под одним интерфейсом разные классы?
>>2140766 >get; set; Я вот часто вижу в коде эти гет-сет. Чем плохо, просто объявить переменную нужного типа и она также может читаться и принимать значения. Зачем городить эти огороды?
>>2140815 > то чему удивляться? Да я как бы не удивляюсь, о чем и написал: >>2140766 > Интерфейсов в либе, от которых я мог бы унаследовать свой интерфейс тоже не завезено. Немного невнятно, признаю. Имел ввиду, что в либе нет общего интерфеса, от которого были бы унаследованы оба этих батона.
Попробую твой вариант. Это ново для меня.
>>2140789 Потокобезопасность. Управляемость. СОЛИД. И прочие умные слова. Короче, не рефлексируй, а просто повторяй за умными дядями. Так глядишь и на галеру возьмут джуном.
>>2135539 >4. Раст - уже выше озвучил. Концептуально сложен и не для широких масс.
Чем? Обскурной семантикой присваивания и тем что управление памятью основано на анализе времени жизни объектов? Попробовал бы Хаскель, по-другому бы сказал.
>>2141000 Смысл в таких приложениях? Для меня программа - это графическое приложение, где что-то нарисовано, можно пощелкать, вводить инфу с клавы и т.п.
Вот английская версия с трекера бабочки, если что. Найду русскую скину в тред.
>>2140682 В треде сидят помешанные на английском языке карго-культисты, бро. Которым к тому же лень тебе скинуть что либо. Могу поделится частью курсов с OTUS по Сore на русском.
Почти все книги и курсы есть на русском, или есть аналоги (ну кроме Троелсена). Но в тред их не скидывают из принципа всякие петухи типо тебя. Позор вам.
>>2141060 >помешанные на английском языке карго-культисты ЗАМЕЧЕН ФОРС горячей воды МЕЖДУНАРОДНОГО ЯЗЫКА! ПОВТОРЯЮ НЕ ВЕДИТЕСЬ НА ФОРС ПРИНЯТЫХ В ИНДУСТРИИ СТАНДАРТОВ И ЯЗЫКА-ПЕРВОИСТОЧНИКА! >>2141056 Вторая часть - ленивые деды, которым пахую уже на ваши книжечки и погромиррвание в целом.
>>2141070 Я тебя услышал, ты петух. Из принципа кукарекаешь, из принципа не кидаешь в тред ссылки ни на какие книги, иногда вообще вводишь людей в заблуждение мол РУСЕК НИКОГДА НЕ ВЫЙДЕТ (хотя для большинства книг, издательства Вильямс и Питер их выпустили).
>>2141074 Про русек я писал, а не он. И там было очень важное слово в начале предложения из двух слов. Понимаю, нужно двухзначное айсикью, чтобы понять предложение из двух слов.
>>2141089 Та видно, что вкатуны же. Молодые-горячие, один вообще на истеричном пике биполярки, походу. Я бы тоже зажидил я и сейчас жидюдаю жидкого тксзть
>>2141097 >>2141089 Видно что вы петухи. Обоссаные-долбоёбские. Помешанные на англюсике и жидящие ссылки для вкатунов. Параноики наверное. Боитесь что вашу никому не нужную говноработу заберут, шизики. Интересно что такие обоссанцы как вы только на дваче есть. В профильных группах вк или каналах в телеге таких нету. Так что это чисто двачерская фишка с такой болезнью краба в бочке.
>Помешанные на англюсике Харкачую, нахуй он надо, де мий украинский?
>Так что это чисто двачерская фишка с такой болезнью краба в бочке. Хуя у него обострение. Сказали же, нам похуй на книжки, мы их не читаем. Нет, оно бля истерит "РЯЯЯЯ ЗОЖАЛИ МАЛАДЕЖЬ НЕ ПУЩАЮТЬ!!!11"
>>2141116 Так и не отвечай челикам на посты с своими высерами хуйней уровня РЯЯЯЯЯ ЧИТАЙ НА АНГЛИЙСКОМ РЯЯЯЯЯ У ТЕБЯ ГОВНОПРОЕКТ РЯЯЯЯЯЯ.
Не можешь дать совета или помочь -засунь себе в рот свой грязный носок и сиди молча, опущ. Understand?
Всегда в треде рано или поздно найдутся норм аноны которые скинут всё что надо или помогут советом. Ты своими недовольствами и высерами лишь тред засираешь и мешаешь его скроллить.
>>2141115 Спасибо! Ты крут! Читать это всё я конечно же не буду, мне и МСДН хватает, чтобы быстро узнать, как применять то или иное, и кодить дальше, на шарпе, который я особо и не учил, просто сел и начал писать, а хули, иф есть, фор есть, типы, шаблоны, классы, структуры, интерфейсы, вместо бегин-энд скобачьки, хуяк-хуяк и в продакшон. Лямбды - единственное к чему долго привыкал и осознавал смысл. Но осознал. Ииии каааак охуел!
Продолжаем анализ пациента: >>2141126 Явно выраженные борцунские наклонности. Нужно наградить медалью: "Борец за чистоту харкача" и "Патриот". Когда немного успокоится - закрыть в дурку.
>>2141114 И кстати да, прорабатывая эти варианты, я осознал, почему Checked в радиобаттоне и чекбоксе реализован отдельно, а не в некоем общем предке. Внимательный глаз всё увидит на скрине.
>>2140789 Если коротко, то на самом деле дело в семантике. Возьмем на примере html. Ты там можешь что угодно чем угодно верстать. Хочешь - все дивами, хочешь - лейблами, и главное-то пользователь разницу не увидит, ему как отрисует браузер так и отрисует, да и другие верстальщики просто посчитают что ты ебанат, но смогут если что разобраться. Но даже тебе самому понятно что табличные значения лучше с помощью table сделать, а для кнопок использовать button.
Нормально ли на гитхабе хранить шаблончики которые появились в ходе работы? Ну, допустим с появлением top level statements - я начал убирать нахуй main, и файл Program.cs - как раз служит для конфигурирования(соответственно отказался и от startup). Плюс - у меня есть определенная структура для проектов. Опять же - я привык использовать Postgres/Sqlite для своих штук. Так вот к чему я это. Я имею локально папочку template и могу скопировать оттудова когда мне нужно то что надо. Но ВДРУГ я окажусь в месте, где этой папочки нет, а хочется сетапчик иметь, чтобы я мог просто начать работать над новым проектом в привычной мне среде. И идея использовать гитхаб мне показалась интересной. Типа - обана и получил то что надо. Но смущает то что у меня есть петпроектики свои, которые веду потихоньку, и типа блин, рядом с ними будет репка с шаблончиками которые я постоянно использую. Тупо жи. Или не?
>>2140551 >Я имел ввиду сайт визитку/лэндинг которым нужно быстро и дешево. При ориентировании на такой рынок тебе точно не нужен сишарп, можешь пользоваться пхп смело.
>>2141278 Можно сделать поле и через ctrl + . его в конструктор добавить. или ты про другое? Кста как научить студию подсказывать название переменных с _ когда private readonly?
>>2141247 Прописать правила именования полей. Делается в менюшке что на прикриплейд. Интереснее как заставить стдию на работе не падать при попытке зайти в эту менюшку.
Учу c# и не смог решить задачу на построение пирамидки из звездочек в консоли. Есть смысл дальше заниматься программированием или в реальной работе задачи будут легче?
>>2141562 ПОПЫТАЛСЯ ВЫУЧИТЬ ШАРП @ СЕЛ НА ПИРАМИДКУ
В той книжке, что ты читаешь, дальше скоро будет задача самостоятельно написать игру крестики-ноли в сосноли, по сравнению с пирамидкой она ААА игра и ты там упадешь на диван и заплачешь в подушку. Лучше возьми печеньку и кофе и попробуй сделать пирамидку сам, даже кривую и потом уже загуглируешь ответ.
>>2141572 Я немного слукавил насчет изучения C#. Скорее повторяю основы для подготовки к собеседованию, потому пытаюсь решать такие задачки. Пугает, что не могу их решить сразу. Пару лет как работаю разработчиком - но в основном пилю круды и немного бизнеса. Видимо мозги высохли от такой работы.
>>2134580 (OP) Всем привет! Помогите дауну пожалуйста...
У меня в WPF приложении есть две кнопки, которые должны выполнять один функционал. Два раза писать один и тот же код это шиза. Надо бы использовать ООП. А как это сделать правильно, я не понимаю, и найти даже гайдов не могу... Помогите пожалуйста, уже вторые сутки бьюсь над этим дерьмом...
>>2141638 А впф с того времени не изменился. Так что литература для впф под framework4 будет актуальна. >>2141658 Нет уж. Пусть делает сразу как положено с командами биндингами и бихэйверами.
>>2142095 C# позволяет перекрывать методы в иерархии наследования без ключевого слова new. Нормальные IDE и помидоры бьют линейкой по пальцам за такое.
>>2142101 >>2142098 Так, падажжи. В студии ворнингов нету и это не перекрывание, а обычная перегрузка, как я понимаю. Нахуй оно мне инт в дабл кастует-то? Или может вообще не в этом дело?
Сап. Я поступил на первый курс прикладной информатики. В программировании полный 0 и способен решать только простейшие задачи в ЕГЭ с Паскалем, те же массивы не знаю
В ВУЗе у меня будет сначала язык С, а потом С++. Я хочу стать хорошим программистом и первым делом приступил к изучению английского, хотя это не только для кодинга, а вообще по жизни полезно
Вопрос: какой язык мне, зелёному, изучать? С, или сразу С++? Я слышал, что они похожи. С++ вроде практичнее и популярнее, может тогда сразу с него начинать? Или начать с С вместе с программой ВУЗа, а потом перейти на С++? Я вообще не уверен, что это мне пригодится в жизни. Может быть, я буду чисто фронтендером или вообще уйду в дизайн и 3д.. Но т.к в ВУЗе это все будет, и я мотивирован учиться, то спрошу совета, изучу – лишним не будет. Учиться проще станет
Самое сложное в любом деле – подступиться. Неуверенность, страх, незнакомые термины и сокращения и зелёный ты. Список учебников в шапке видимо для тех, кто хотя бы открывал среду программтрования и выводил "Hello world". А вот мне бы с нуля-нуля Информации очень много, глаза разбегаются. Вплоть до того, что советуют прочитать гору книг по математике. Глаза разбегаются и не понимаешь, как начать. А когда поймешь, как начать – уже само пойдёт дальше
>>2142106 Ну я в руске терминах не силен. В твоем случае, это все равно как если бы оба метода были в классе Animal, но более высокий приоритет у метода с double. https://dotnetfiddle.net/OYggUc
>>2142116 >какой язык мне, зелёному, изучать? Петухон.
>С, или сразу С++? Сразу петухон.
>Я слышал, что они похожи. С++ вроде практичнее и популярнее, может тогда сразу с него начинать? Сразу на петухоне разрешаю.
>Или начать с С вместе с программой ВУЗа, а потом перейти на С++? Если вуз норм, а не шарашка с дедком за 90, то будет петухон.
>Но т.к в ВУЗе это все будет, и я мотивирован учиться В вузе преподают, а не учат. Ты наивный дурачек, если думаешь, что ковыряясь в носу и посещая пары - принесет какой-то результат.
>Самое сложное в любом деле – подступиться. Забудь про эту психологическую хуйню.
>А вот мне бы с нуля-нуля В шапке есть книги с нуля.
>Информации очень много, глаза разбегаются. Начни с хелоу ворлд.
>Вплоть до того, что советуют прочитать гору книг по математике. Забудь про математику. Чтобы выучить программирование, она не нужна. Если проект будет связан с математикой, гей дев скажем, то выучишь вместе с геймдевом.
>А когда поймешь, как начать – уже само пойдёт дальше Нехуя. Будешь учиться весь свой короткий век.
>>2142136 >Если вуз норм, а не шарашка с дедком за 90, то будет петухон. Питон есть в Барнаульском ВУЗе, но нету в МИСиС и НГТУ. Прикольно...
>В вузе преподают, а не учат. Ты наивный дурачек, если думаешь, что ковыряясь в носу и посещая пары - принесет какой-то результат. Так под "учиться" я имел в виду как раз самообразование, я не надеюсь что-то от ВУЗа получить
>Забудь про эту психологическую хуйню. Психологию ты сам приплел. Лично я на опыте изучения 3Д говорю, что сложнее всего начинать и понимать, какой софт для чего нужен, какой твой порядок, тактика изучения. А когда ты уже с пониманием что делать сел непосредственно изучать – это другое дело. Есть какая-то избитая фраза про то, что если не знать, куда плыть, никакой ветер не попутный.
>>2142163 >Психологию ты сам приплел. У меня глаз дергается от слов "подступиться", "неуверенность", "страх".
>Питон есть в Барнаульском ВУЗе, но нету в МИСиС и НГТУ. Прикольно... Если вуз норм, могут дать возможность поехать учиться в какой-нибудь Växjö как у меня было. А там будет все стильно, молодежно.
>>2142116 Все просто. Для изучения именно программирования - питон и не ебет. С сями ты заебешься возиться со всякой ритуальной хуйнй, типа: Ыыыы, ты не можешь передать массив просто так))) надо указатель и размер, а чтобы размер узнать sizeof(arr)/sizeof(arr[0]) ))) Короче, чтобы понять мякотку - берешь питон, не слушаешь никого. Там пробуешь алгоритмы, задачки решать и вот это все. Когда почуял силу: смотришь, что тебе интереснее: железо и прочий низкий уровень, перформанс и прочая залупистика для задротов - берешь go/с/с++ сложние штуки, архитектура, устойчивость и прочее - java/c#, просто зарабатывать деньги и быть как-то связанным с IT - js/php.
>>2142163 >Есть какая-то избитая фраза про то, что если не знать, куда плыть, никакой ветер не попутный. Программирование так не работает. Где-то одну хуйню используют, где-то другую. Т.е. будешь учить всякую экзотическую хуйню в кратчайшие сроки. Начни с хелоу ворлда, потом видно будет.
>>2142184 А с хеллоу ворлда в каком языке начинать?)
Мне советовали для начала изучить массивы в Паскале. Массивы я знаю на уровне "хранятся под индексами разные числа". Видел в Паскале код, который их фильтрует или сортирует определенным образом. Этого недостаточно наверное и надо что-то еще знать, да?
Аноны, кто-нибудь работал с этим eto.forms из прошлого треда? Я тут наваял кастомный месседжбокс на базе диалогового класса, и всё прекрасно работает, пикрелейтед, например. А потом я такой думаю, ща приделаю пикчи кнопкам, ну знаете, чтобы на ОК была зелёная галочка, на Cancel - красный крестик. И тут я ловлю САБЖ. И не просто сабж, а сука, САБЖИЩЕ! При создании на диалоге кнопки с прописанным полем Image пикча увеличивается в сотни раз и диалог занимает полэкрана! Пикрелейтед2. Если кто-то запаривался с прощупыванием этого фреймворка, может попробуете воспроизвести у себя? Минимальный набор действий выложу следующим длиннопостом. Я весь вечер гуглил-гуглил, скроллил ишьюсы на гитхабе афтора, - ничего похожего не нашёл. Если проблема стабильно воспроизведётся - надо ишью заводить, это баг, настоящий!
>>2142163 Тем более, что если ты сам настроился на саморазвитие, то то что там в вузе будет тебя ебать не должно. Я вот пока учился - линуксы ковырял, пробовал всякие свистелки-перделки делать, пощупал сотни языков, вплоть до эзотерики всякой типа браинфака, смотрел что там с кудами, OpenCL и прочим. В итоге, когда я вкатывался работать - я просто рофлил с того как рядом чел с курсов пытается оправдываться, что ну вот, я там курс прошел, но вот как отсортировать массив - незнаю(((. К чему. К тому что самое важное просто не проебывай время впустую в плане дотки-сериальчики и прочая хуйня. Щупай-трогай все до чего дотянешься, участвуй в движухах что просто кажутся интересными(даже в средних вузах их полно, еще обычно за активное участие тебе накинут сверху стипендии), знакомься с другими челами, что тоже заинтересованы, туси-развлекайся, ходи на кружки. Короче, вуз это время все щупать и пробовать, знакомиться и т.д. Прям задротствовать не нужно, таки даже в среднем вузе более-менее норм базу дают, а современные технологии ты выучишь как раз лапая и щупая, интересуясь и участвуя.
>>2142202 > Минимальный набор действий выложу следующим длиннопостом. Да собсна и длиннопоста не нужно. Создаёшь новый класс на базе класса Dialog, в него прописываешь: > PositiveButtons.Add(new Button { Text = "test", Image = new Bitmap("путь к любой пикче png") }); Затем вызываешь его из формы: > new CustomMessageBox().ShowModal(this); Где удобно. Результат будет неизменно ОГРОМНЫМ, если вы понимаете, о чём я.
>>2142244 Нет, ты не понял. Если пририсовывать битмап кнопке на обычной форме - то всё и так работает, без ебли с ресайзами. Ресайз там предусмотрен. Я первым делом попытался отресайзить. После чего пикча становится ещё больше. На скрине выше видна часть пикчи 32х32, при ресайзе 16х16 от пикчи остаётся вообще угол примерно такой, остальное улетает ту зе мун.
> твой ебля.формс Бро, я обращался к тем, кто этот фреймворк щупал и может у себя воспроизвести проблему. Советы с дивана как-то не очень помогут делу. Без обид, бро.
>>2142257 Ну в принципе, отбой, можно расходиться. Кнопки в панелях кнопок имели по умолчанию Size(-1,-1) для авторесайза их. И этот авторесайз даёт такой сбой. Стоит вручную задать Height и кнопки становятся нормальными.
>>2142285 >Советы с дивана Я диванный эксперт, которому лень ставить ебля.формс.
Допустим все работает: var image = new Bitmap("123.png"); var image2 = new Bitmap(image, 100, 100); dialog.DefaultButton = new Button { Text = "Default Button", Image = image2 };
>И этот авторесайз даёт такой сбой Ожидаемое поведение.
>>2142296 > Ожидаемое поведение. Не согласен. В кнопку пришла пикча 32х32, авторесайз должен сделать кнопку приблизительно 34-36 по высоте. А там высота делается примерно как у дисплея, 1080. Я этого не ожидал.
>>2142302 Я показал пример, что если битмапу задать размер, то диалог не пидорасит на весь экран. В ебля.формс нет тестов для картинки в кнопке в диалоге. По коду так пробежался, вшивый проект.
>>2142116 1. Тебя в вузе ничему не научат. И даже отобьют желание учить прогу. По собственному опыту знаю. 2. Ты тредом ошибся в плане языков. 3. С нинужен, а плюсам тебя нормально в вузе НЕ НАУЧАТ. Максимум сделаешь пару никому ненужных говнолаб а потом половину из этого забудешь. Сохранятся какие то отдельные слова уровня "пузырьковая сортировка" "Красно-чёрное дерево" и всё такое. 4. Плюсы плохой язык для вката.
Так что да, тебе тут не зря питон советуют. Начинай с питона или шарпа или с жабаскрипта.
>>2142370 Ну вот например 2ch.hk/b/res/253423744.html Сейчас школота и подпивасы полезут, и потом эта волна будет набивать собой рынок до отказа спамом резюме с вытекающими.
Заодно не забудь врубить мемори диагностику, потому что ты аллоцируешь список без заданного размера. Дефолтный размер списка - вроде 4 элемента массива и если не влезет, создастся новый массив, двойного размера и так до посинения далее.
>>2134580 (OP) Шарпаны, нужно прикрутить телеграмм бота к небольшому проекту на кор 2.0. Для ботов в основном используется Telegram.Bot. Прям на глагне там указанно, что он для кор 3.1 минимум. Соответственно возникают вопросы: есть ли эта библиотека на кор 2.0 или как перекатить с 2.0 на минимум 3.1 5? Ну может еще в целом кто че подскажет по ботам для телеги на на решетке и вообще по ботам для телеги
>>2142419 >есть ли эта библиотека на кор 2.0 или как перекатить с 2.0 на 5? В сорцах: <TargetFrameworks>netstandard2.0;netcoreapp3.1</TargetFrameworks>
Ты можешь спокойно на .net 5 использовать хоть 3.1, хоть 2.0, хоть нетстандарт, хоть старый framework.
Если ты хочешь свой проект перекатить на .net 5 с core 2.0, то просто поменяй TargetFrameworks в csproj, ничего больше править с 141% вероятность не нужно.
>>2142367 Как что-то плохое. Т.е. дa, на бумаге 500 человек на место, а на практике новичку-фронтендеру устроиться на работу в 5 раз легче, чем шарписту.
>>2142116 В ВУЗе надо учить только тот язык, который тебе нравится, с которым будет легко, иначе ты выгоришь и не выйдет из тебя программист. Учить С не стоит, на нём будет слишком сложно получить хоть какой-то результат. С++ можно, но если ты к этому реально склонен. Запустить хелло ворд на джаве на обычной винде - это тот ещё геморрой. Поэтому остаётся C# и петухон.
>>2142367 Шарп имеет порог входа чуть ниже джавы. А джава довольно высокий порог вхождения имеет. Это не плюсы, где ты понимаешь как компьютер работает, знаешь синтаксис и семантику - вперед и с песней. Не, в джаве(соответственно и шарпе), это только первые ступеньки, сверху - знай как ебланы там накодили что, когда они выделяют память, когда освобождают, знай как работает жит, знай как гц работает, сверху знай пару js-фреймворков и умей писать оптимальные сложный SQL-запросы. Я к чему. К тому что если будет хайп на вкат, тем кто уже вкатился - только лучше будет, на фоне овощей наконец можно будет спокойно просить 3-4к бачей, а то создали блядь адепты мелкомягких у шарпистов и джавистов культуру, когда ты должен чуть ли не в космас отправлять корабли, а получаешь чуть больше хуя, который все что умеет - это накачать пакетов из npm и накопипасить со стэковерфлоу кода, чтобы оно как-то работало. Да-да, фротендер хуже пидораса.
>>2142540 >а то создали блядь адепты мелкомягких у шарпистов и джавистов культуру, когда ты должен чуть ли не в космас отправлять корабли, а получаешь чуть больше хуя, который все что умеет - это накачать пакетов из npm и накопипасить со стэковерфлоу кода, чтобы оно как-то работало. У джавистов это пиздец, лежащая у меня книга Шилдта на 1500 страниц это наверное десятая часть того чтотнужно знать, ещё спринг, там какого хуева только нет, паттерны, хуятерны, коллекции, алгоритмы, как работает вэб (всё эти http, фронтеды и прочая залупа), maven, ant для легаси, sql, Кафки, раббиты. И это всё для начала на стажировку. На фронте заебись, на макет верстай, отправь форму мы вам перезвоним на бэк, собери веппак и запусти npm install получилось-приходи, через 4-5 месяцев мидлом тебя сделаем. Поработал на жабе пару месяцев стажёром и съебался оттуда в рельсы, такого количество бесполезного кода и бесполезных знаний я нигде не видел. Это скорее подойдет для изучения и общей эрудиции, только там я увидел кучу всяких паттернов, глубоко познакомился с ООП и прочая залупа, но работать с этим каждый день чего-то не очень хотелось.
>>2141647 Нет, это моя первая работа в качестве прогера. На собесе половину не ответил. К прогерству таланта и желания никогда не было. Не знаю вообще почему взяли
>>2141634 >>2141639 >>2141658 Да я уже решил что сделаю просто функцию, а в функции нажатия кнопок просто вызов этой самой функции прихуярю. Спасибо за помощь!
>>2142630 >книга Шилдта Так его тоже не достаточно чтобы вкатиться в более-менее серьезное место, где при этом именно шарп основная технология. Опять же из-за желаний левой пятки мелкомягких мы имеем ситуацию, когда старые проекты сейчас хуй соберутся в новой студии и тебе либо иметь несколько версий студий, либо знать как перетащить старый проект на новые рельсы(а это не всегда так просто, плюс нужно знать как там менялось апи). Опять же, иногда у мелкомягких случались приступы хуйни и они решали что теперь мы хотим декларативно, потом другой приступ и мы хотим метапрограммирование, потом следующий - теперь мы по солиду живем и вот эту всю кашу хорошо бы знать и понимать. О, а если ты еще и попадешь на проект который начинался на рубеже первого и второго неткора, когда они внезапно решили что вся конфигурация будет в json-файлике, ух, бля))). Короче, у шарпа тоже много чего знать нужно, а если он основная технология, вкатиться зная только основы обычно не так просто, по крайней мере если прям срочно не нужны руки.
Пацаны, кто-нибудь макбуком на м1 пользуется как рабочей машинкой? Можно на роззете 2ой подождать до осени, когда .net 6 нативный будет, или совсем больно? Айдеехи работают нормально? В докере запущу себе монгодб? Хочу себе air взять с 16гб
итак в этом итт треде помогаем придумать мне тему для диплома, условия: без бд (либо максимум 2-3 таблицы), без сервера, обычное десктопное приложение на винформс
>>2143281 Чатик со сквозным шифрованием. Делается изи-бризи, научная ценность в том что ты добавил пару шагов в алгоритме шифрования и получил доселе невиданный алгоритм, пилится за выходные.
>>2142630 Некоторым кажется, что джава - это примерно плюс минус такой же шарп, со своими преимуществами и недостатками. Нет. Джава - намного более отсталый, урезанный и корявый язык. В джаве нет: - пропертей (пиши геттеры и сеттеры руками на все случаи жизни, а если хочешь геттер пока без логики, то хуй тебе, всё равно пиши приватное поле + геттер и сеттер) - нет делегатов, лямбд и вообще возможности как-то передать функции (пиши интерфейсы и их реализации, пиши сотни тысяч однострочных классов) - нет событий (а потому что не ООП, пиши визиторы и листенеры) - нет значимых типов (нужен легковесный вектор с float X, float Y - хуй тебе, пиши класс, компилятор всё оптимизирует, наверное) - дженерики там ограниченные из-за корявого дизайна, ты даже не можешь узнать тип генерика (типа как в шапре GetType или проверить через is) - конечно же там нет кортежей и всяких анонимных типов (пиши ручками полновесный класс) - из функции нельзя вернуть 2 значения (хочется out или даже казалось бы простой ref - нет и не будет, пиши ещё сотни тысяч классов-обёрток) - конечно же, никакого LINQ и ничего даже близкого по удобству как уже можно понять из предыдущих пунктов там нет и не будет - конечно же, как ты уже наверное догадался, перегрузки операторов в джаве тоже нет. А то вдруг ты перегрузишь, а другой программист запутается. Пиши-ка лучше старые добрые методы.
>>2144068 Насчет последнего. Будь моя воля, я бы из шарпа тоже это убрал. А вообще, будь моя воля прям по хардкору - я бы вообще избавился от операторов в привычном смысле. ИМХО - правильный подход: все есть метод, и чтобы сложить два числа ты должен писать так: int result = 5.Add(5); Почему? Потому что это и понятнее и удобнее(не запутаешься со скобочками, потому что вычисление идет строго с лева на право).
>>2144068 Перечислил один сахар, а самое главное не сказал, что в Жаве нет беззнаковых типов и побитовые операции урезаны. Код целиком выполняется на виртуальной машине, а не компилируется в реальный машинный код. Ограничение один класс - один файл.
>>2144081 > один сахар Два треда срёмся про сахар, я так и не понял, что такое сахар и в чём доёб? я представляю лагерь спорщиков, считающих синтаксическим сахаром всё, что отличается от ASM
>>2144077 Мне часто приходится писать кучу всяких инженерных формул в код, я бы сказал, что скорее наоборот чудовищно не хватает например возможности писать хотя бы верхние и нижние индексы в именах переменных, и нет оператора возведения в степень. Т.е. даже существующих средств языка не достаточно.
>>2144319 > кококо! ТЫ ПЕТУХ! ТЫ! ТЫ, А НЕ Я! > кок-пок! Ну так а по делу что скажешь по сахару-то? Хотя, у вас, у непетухов, по делу обычно сказать нечего. Просто услышал модный баззворд и носишься с ним, не понимая сути.
Ньюфаг в треде. Я правильно понимаю, что функции и методы нужны только лишь для работы с крупными проектами и мне, в силу отсутствия таковых, они ещё очень долго не пригодятся?
>>2144546 Они еще нужны, чтобы делить большой кусок говна на мелкие какашки, следуя принципу Don't Repeat Yourself, bitch. На хороший код написаны обычно тесты, представь какого это тестировать большой кусок говна, который и в файл лезет, и что-то в консоль печатает, и считает двойной интеграл.
>>2144546 Што? А как ты без метода, хотя бы одного мейн, что-то запустишь? инбифо - новая говновозможность без явного мейна запускать Да и вообще, учись структурировать код смолоду. Это даже важней "как" ты себя приучишь работать чем "что" ты там напишешь и смоешь.
>>2144631 > Я имел ввиду те методы, что пользователь создаёт сам Блять, ты проперти штоле методами обзываешь? > public string MyProperty { get; private set; } ???
>>2144691 Посмотрим, что ты будешь говорить, когда в дефолтных тепмлейтах консоли и асп будут юзаться топ левел выражения. У зумеров в твитере как раз была специальная олимпиада недавно.
>>2144739 они просто ебланы какие-то, вполне понятно, что ты про методы, код для которых ты пишешь сам (ну и которые потом вызываешь), а не те, которые уже есть в других классах + метод main
Такое дело. Начал учить этот ваш шарп. Юзаю вскод и не могу заставить его дебажить. Вроде все пути выставил, но все равно выбрасывает пикрелейтед. Что ему не так?
>>2144792 Хз, вообще с чем ты ебешься: 1. Открыл голую вс код с хелоу ворлд 2. Зашел в раздел дебага и нажал запустить 3. Выбрал .NET, предложило скачать расширение, само создало и прописало launch.json 4. ЧЯДНТ?
>>2144807 Потому что ты открыл папку проекта как воркспейс. У меня же общий воркспейс для всех проектов, чтобы отдельно каждый не настраивать. Но это почему-то не нравится дебагеру.
>>2144856 Пока один но воркспейс - папка "C#", папка с проектом - "Test". И у ты у себя путь захадкодил, и соответственно тебе придётся его менять каждый раз как ты захочешь дебажить другой проект. Да это работает, но мне хочется настроить один раз и забыть,
>>2144863 Обычно на разные хоткеи или просто разными тасками билдят разные проекты. У вс кода нет никакого шанса узнать как надо билдить проект и как его запускать. Напиши или найди расширение, которое будет делать то, что ты хочешь. Но я с 99% вероятностью уверен, что оно не сбилдит не один мой проект. Только что-то уровня хелоу ворлд.
>>2144863 >>2144840 >>2144782 Ну кароч вроде решил таким образом. Полагаю, что проблема была в том, что из-за того что .csproj-ты лежат не в корне воркспейса и вскод не видит переменные в <>. Ну так оно работает пока мейн файл называется так же как проект и собирается все net-ом 5.0. Ну пока пойдёт.
>>2144907 Используй вс или райдер. Если тебе так сильно нравится вс код, то я уже предложил, напиши расширение. Например, которое по определенному правилу, описанному в app.json, будет генерить таски. Или форкни расширение для C#.
>>2144910 >вс Ну нахуй. Мало того что весит мин 11гб, так еще интерфейс отвратительнейший. >райдер У меня есть джетбрейновская учебная лицензия, но она кончается через пару недель. Недолговременное решение. >сильно нравится вс код Ага, нравится. >напиши расширение Да хуле мелочится, щас быстренько ИДЕ себе за вечерок набросаю. И сразу с собственным компилятором и вирт машиной.
>>2144868 > Анончики, пытался сделать что-то типа Dictionary, очевидно что только со строками. Я сильно наговнокодил? Сильно. >using System.Collections.Generic; >Dictionary<string, string> dick = new Dictionary<string, string>();
>>2144918 >весит мин 11гб Террабайтник SSD стоит сейчас как средний обед в ресторане. Студия скачивается и устанавливается при нормальной системе и скорости сети - за пару минут. Какие проблемы?
Почему авторы книг по WPF скрывают как выводить пиксели без всей это мишуры? Нашёл всего 2 странички по этому вопросу в книге Мак-Дональд Мэтью "Windows Presentation Foundation в .NET 4".
>>2145666 Вот и я о том же, что доводят больных людей. В чём проблема начать книгу с того, как рисовать пиксели, а потом уже про свои кнопки и как их крутить во все стороны?
>>2145685 Синхронизация должна быть детерминированной после завершения Parallel.For в целом. Посчитал параллельно операцию, смотришь результаты, запускаешь её повторно. Если же у тебя разные потоки постоянно друг в друга долбятся, то ты хуету какую-то написал кривую, и гнать таких надо из профессии.
>>2145880 Параллельность это не только когда тебе надо обработать имеющиеся данные в многопотоке. Если приложение будет работать с внешними клиентами, то будешь как миленький ебаться с семафорами, мониторами, барьерами и прочими интерлоками. Класс parallel тут вообще мимо.
>пропертей Генерируется любой иде, если и этого мало, то ломбок
>нет делегатов, лямбд и вообще возможности как-то передать функции Supplier<YourType> lambda = () -> YourType::new Function<ArgType, ResultType> lambda = (arg) -> arg.method(arg2) и т.д.
>нет событий кроме динамикодрсни нигде толком нет, а реализовать велосипедик под себя элементарно
>нужен легковесный вектор >конечно же там нет кортежей и всяких анонимных типов >из функции нельзя вернуть 2 значения Pair.of(value1, value2). Да, на уровне языка сахара для этого по-прежнему нет, но и не особо нужно, когда дженериком записывается настолько коротко.
>дженерики там ограниченные из-за корявого дизайна Соглы, затирание типов полная беда, особенно на стыке с внешними интерфейсами или либами
>никакого LINQ и ничего даже близкого по удобству Стримы в жабе хороши, лично мне заходят гораздо лучше linq, т.к. код выглядит однородно, и названия методов субъективно более логичны. Если отбросить вкусовщину, то под определение "близкого" все равно подходит.
>перегрузки операторов в джаве тоже нет С одной стороны, да, с другой нинужна. Ну, это до момента, как начнут впиливать, а там конечно понадобится сразу.
Крч нужна новая паста, от этой дамаг слабый. П.с. жаба говно
>>2146475 >Какой ASP учить? Последний. Их по сути два основных дотнетовских - тот который под фреймворк, це уже давно легаси, и начианать с него нет смысла. И есть коре, вот его и бери (желательно 5 версию, 3.1 тоже приемлемо, 2 не бери не актуально, а отличий от современных версий много).
>>2145799 Я собсна тоже не торт с кем спорил торт с которым не спорил ты. Поэтому ты - петушок. мимокрокодил
Как сделать несколько запросов к API?
Аноним01/09/21 Срд 12:36:15№2146690573
Как сделать несколько запросов к API?
Всем привет! Прошу помочь мне в следующей проблеме...
Имеется АПИ переводчика майкрософт, там вроде лимит на 5000 символов в одном запросе. И имеется прога, суть которой заключается в нахождении русских слов в конфигурационном файле, вычленению их, перевода через апи, а затем возвратом в файл уже переведенных значений.
Я вроде механизм реализовал (создан лист стрингов, затем регуляркой находятся слова, переносятся в функцию перевода, там создается запрос, и полученные значения возвращаются в список, а тот возвращается в файл), но если запихнуть файл целиком, то он выкинет ошибку 403, с пояснением что запрос то большой.
Но вот как разбить это на части я хз, даже найти гайда не могу нигде. Может вы поможете? Код, если что вот
>>2146690 Во-первых пошёл нахуй. Во-вторых не буду читать твой говнокод, где все смешан в кучу. Ну а в-третьих Строка сообщение Для каждого слова . Если сообщение.длина + слово.длина > лимит .. Отправить(сообщение) .. Сообщение.очистить . Сообщение += слово Если сообщение!=пусто .отправить(сообщение)
>>2146701 Кстати, WPF приучает к такому говнокоду, потому что нигде не описывается как правильно писать код, но зато 99% книг посвященно вращению кнопочек на 360 градусов. Видимо, у авторов какая-то мечта была, чтобы создали графическую библиотеку, где можно вращать кнопочки и они бросились писать про это вращение. Хотя очевидно, что книгу надо начинать ни с долбанного XAML, ни с кнопочек, а с объяснения модели написания кода для WPF. А он отличается от классических консольных приложений, но про это не пишут почему-то. Когда я знакомился с WinAPI, то про это все писали, что нужно освоить событийный механизм. А сейчас всё тоже самое, но про это не пишут. Кнопочки же важнее!
>>2146739 В каких? Я изучил все 3 книги по WPF и нигде этому не уделено должного внимания. Разве, что Петзольд начал изложения не с XAML, а как писать чистый код без него, но понимания этого не добавило. Тем более у него книга по самой первой версии WPF и примеры уже не запустишь так просто.
>>2146734 Шизик плиз. Везде пишут, что wpf заточен под mvvm. Потому, wpf как раз отучает от написания каши. Только не говори им, что я тебе это сказал. Нам велено от тебя всё скрывать.
>>2146642 Ну, проскролил треть - вроде бы не такие и критмические изменения, какая-то внутрянка, которую жун точно трогать не будет и косметика. Я вообще обновил боевой проект с 2 на 3 и не заметил разницу.
>>2146803 Так это только брекинг, много чего нового запилено. Я сам с core2 почти не работал, из того, что меня коснулось, это изменения в настройки роутов и авторизации через куки (или в политиках, уже не помню). Плюс на SO часто в попадается в ответах что-то типа для 2.х вот такое решение, а для 3.х вот такое. Да и какой смысл юзать 2.х если его уже практически нигде нет?
>>2146744 Какой нахуй чистый код в книжках для вкатывающихся новичков? Совсем ебанулся? Человек может только месяц назад узнал, что такое массив, а ты ему блять чистый код предлагаешь накатить. Как верно отметили, для этого есть совсем другие книги с совсем другой аудиторией. Чистый код - это для тех, кто 2-3+ года опыта коммерческой разработки в команде, а не для тех, кто пиксель на экран пытается вывести. Это я говорю, как человек, который только освоив основы языка ринулся читать Макконелла, Мартина и Фаулера, и это была чудовищная ошибка, потому что начитавшись этих книжек я не мог теперь решить ни одной элементарной задачи, которые без знаний чистого кода я написал бы за 30 минут, а потом интуитивно бы отрефакторил, а теперь я искал везде интерфейсы, фасады, стратегии, модели, контроллеры, адаптеры, билдеры и т.п. (на самом подлинно не понимая что это значит на самом деле и зачем), писал синглтоны с интерфейсами и провайдерами вместо одного статического метода, дробил классы и функции, чтобы не было дублирования ответственности и/или кода, чтобы не было слишком больших классов или методов, чтобы не было слишком больших списков аргументов, чтобы не было слишком большой связности и т.п., и постоянно страдал, что что-то НЕ ДОСТАТОЧНО ЧИСТО получается, и что куча времени потрачено, и что нихуя так и не приблизился к решению, и что даже если решение есть, то что-то как-то подозрительно ТОРМОЗИТ, и очень долго так мучился, пока не отпустило.
>>2146892 Ну сейчас ты-то молодец? А без задрочки на "чистый" код может быть им бы и не был. Чистый код сразу, таки, сходу, да, слишком круто. Но, вспоминая свой вкат, я больше всего благодарю ребят и книги, которые советовали мне обращать внимание на качество, а н епросто пиздячить фичы
>>2146966 Сейчас я пришел к тому с чего начинал. Любой код сначала пишется быстро, грязно, но чтобы хоть как-то работало. Об оптимизации в каком-то смысле конечно нужно думать на старте, но точно не о чистоте кода. А когда всё заработает - рефакторишь уже, чтобы и сам и другие могли понять. Конечно для рефакторинга принципы и идеи чистого кода знать нужно. Но в целом я бы сказал, что понимание чистого кода с опытом приходит на интуитивном уровне и становится очевидным и банальным. А вот без достаточного опыта чистый код не понять вообще, сколько бы ты книжек ни читал.
Анончик помоги, не могу нагуглить, не могу понять. У меня есть две модели: юзверь и посты. Мне нужно заимплементить поиск, чтобы искал и по юзерам, и по постам одновременно. Я сделал DTOшку в которой поля юзера и поста, автомаппером в SearchProfile указал две модели как мапящиеся с моей DTO. Сейчас пишу контроллер и у меня вопрос как вообще это все сделать. Поиск должен быть по доступным для view полям (т.е. по searchDTO). В интерфейсе дженерик репозитория есть метод find, принимающий linq expression.
Если я правильно понимаю, то поиск по юзерам и по постам, а потом мапинг результатов в дтошку дадут мне лишние результаты (например юзеров по их имейлу, которого нет в дто). Если писать linq expression по конкретным полям, то это хардкод и сильная связь между Application и Web слоями. Наверное, можно взять всех юзеров и все посты, замапить их в дто и потом найти в них необходимые, но тут два вопроса. Получается, надо создать репозиторий для search? Это же пиздец неэффективно и не много ли логики в таком случае находится в контроллере?
>>2147139 Спасибо. В таком случае у меня будет в Application какая-нибудь папка queries, в которой уже будет класс глобального поиска, обращающийся к репзиториям юзверя и постов, linq поиском по указанным в коде полям и маппингом на месте. Верно мыслю?
>>2147166 Смотря как организуешь >папка queries Это больше на CQRS похоже, погугли, в принципе, имеет место быть. Но если честно, я предпочитаю просто делать менеджеры да, да, многие хейтят. Я бы сделал так: класс лайбрари на репо говно и лично я бы убрал возможность експрешен туда передавать, типа DataLayer. BusinessLayer - тут уже всякие твои фичи, если можно так сказать, в нем же и серч будет. И PresentationLayer - там уже твой сайт с тонкими контроллерами или другая хуйня типа крона какого. Плюсы - теоретически, реюзабельный код. BusinessLayer может быть переиспользован в других аппах. Репо скрывает БД рилейтед говно и делает ТОТ САМЫЙ КЕЙС СО СМЕНОЙ БД легче. Но хз, если ты туда експрешн пиздолишь - хуй знает зачем тебе репо вообще. Минусы - ну, много бойлреплейта, можно доебаться за перфоманс по некоторым моментам
>>2147142 > это Pascal А кто у нас автор шарпа? А? А? Автор дельфи-паскаля! >>2147156 > И что бывает? Бывает, что еблан не допечатал одну буковку и побежал на двач жаловаться.
>>2147268 >Бывает, что еблан не допечатал одну буковку и побежал на двач жаловаться. И что коммон кейс, когда из-за полнейшей хуиты проебываешь день. Хули он юзинги вручную пишет - другой вопрос.
>>2146892 Я написал про чистый код в том смысле, что код без связки с XAML, т.е. просто файл .cs. Я даже не знал, что книга с названием "чистый код" вообще существует.
>>2147268 > > это Pascal > А кто у нас автор шарпа? А? А? Автор дельфи-паскаля! Кстати, в дельфи тоже был коде-бихайнд, задолго до того, как зумеры из яиц бати выстрелили до потолка. Только фронтом был не ХАМЛ, а ДФМ.
>>2147404 > обсуждают десктоп > МАМ! ЕЗЫГ УМИР! Мобилкопараша не нужна. Вебодрисня не нужна. Игродебилизм и нахуй не нужон. Только десктоп, только хардор. Мокрописечки. Ильхам. Девэкспресс крякнутый бесплатно скачать. Вопросы?
>>2147390 >Всё верно, сеньёры? Нет, конечно. Код в файле cs окна это код бихайнд, он же говнокод. Чистый код, это принципы написания читаемог и поддерживаем ого кода, как правило с применением различных паттернов.
Как я вижу проблемы современного программирования в том, что создают тысячи библиотек, но совершенно не понятно как ими пользоваться. Даже по самым популярным пишется мало книг и многие уже устарели. В итоге получаем, что есть потенциально крутые технологии, но ими никто не пользуется.
>>2147691 По тысячам библиотек не пишут книги. Так, может упомянут в какой-нибудь книге. И это никогда не было проблемой + ты заебешься писать книгу на либу, которая обновляется каждый день.
>>2147691 Ты опять таблетки забыл принять? > не понятно как ими пользоваться У всех мало-мальски популярных библиотек есть доки. > мало книг Книги по библиотекам? Нонсенс. Будешь покупать книги по каждой библиотеке несколько раз в год? А дока обычно соответствует текущей версии, да еще и бесплатно.>>2147691 >никто не пользуется Ну-ну, миллионы загрузок в нугете у популярных библиотек, и десятки тысяч у нишевых. У ноджсников вобще нпм днями крутится без остановки Так что или лечись.
>>2147700 Я как раз сейчас на таблетках. Когда без таблеток, то мне сложно программировать. Голова не соображает совсем.
По докам не реально освоить библиотеки. Там мало примеров и они не отражают всех потребностей. А как я должен догадаться, что библиотека может, а что нет? Это просто не реально! Вот, к примеру, WPF. Как я должен догадаться, что в ней есть секретные методы, которые в связки позволяют выводить пиксели на экран, но каждый по отдельности этого не делает. Ни в какой доке это не написано. Я это нашёл только у одного автора книг и то всего 2 странички.
>>2147740 Боюсь тебе уже не помочь. Забей на программирование, на лучше анекдот то нейросети: Заходят в бар молодой парень с девушкой. Видят за стойкой девушку и парня, который похож на их парня. Тот бармен им говорит: - Вы - пара? Они отвечают: - В точку! - Тогда Вам придется выйти вон! Бармен говорит двум клиентам, которые тоже похожи на пару: - Вам тоже придется выйти!
>>2147740 Обычно такие проблемы у людей, которые начинают изучать программирование сразу с больших фреймворков и из-за отсутствия базовых знаний все окружающие вещи являются для них черными ящииками и колдунством, и вещей не написанных в гайде для них не существует. Если ты один из этих, то решение простое - начать с начала. Да-да, то самое - скучное пердоленье консоли.
Помогите вкатышу. Написал формочку с парой кнопок. Кнопка запускает процедуру, которая выполняется достаточно долго и пишет инфу об этапах выполнения в List<string> обёрнутый в класс с lock'ом на всякий случай. Форма по таймеру (раз в 0.2 сек) читает из List<string> данные, и должна выводить их в RichTextBox. Но почему-то она выводит их только после того, как процедура, вызванная нажатием кнопки, полностью завершиться, вместо того, чтобы выводить в процессе. А я хочу чтобы в процессе всё выводилось. Так можно? Или формы типа совсем однопоточные и ничего не происходит пока не выполнится текущее действие?
>>2147772 Для форм самым простым будет либо IProgress<T> либо цикл типа foreach(...) ..var item = await SomeMethod(); ..list.Add(item); ..richTextBox.Append("Step completed.");
Есть приложение WPF, на вход подаются файлы текстовые со строками типа "название переменной = значение". нужно сделать так чтобы прога сравнивала два файла, находила отсутствующие строки, и запихивала бы их в файл, где их нет, а также выводила их на экран.
Как это реализовать? А то я даже гайдов адекватных найти не могу... Спасибо
>>2148049 Не слушай этого >>2148195 Это индус лапшычный. Произведу ДЕВЕЛОМПЕНТ вашего ПРОЕКТА включая ЭКСПЕРТИЗУ и СОЛЮШН ПРОВАЙДИНГ всего за 50000 хандрид бакс.
>>2148049 Не слушай этого цыгана >>2148261 Наша фирма произведет полный комплекс проектировочных и девелоперских работ, учтёт все пожелания заказчика, обеспечит долгосрочное сопровождение продукта. Всего за 2,5К в год!
>>2148592 Какие методы? Тебе, скорее всего, в сторону ООП надо копать. Ну напиши бля борду в сосноли, где будут МЕТОДЫ добавления поста/треда/борды, пусть и в обычный массив и принта в консоль треда/борды. Да хоть физбазз декомпозируй.
>>2148641 Мимо. И то и другое может быть как от кора так и от фреймворка, смотри метаданные файла. По умолчанию либы фреймворка лежит а c:/winduz/microsoft.net/framework/версия/..., а либы кора в c:/program files/dotnet/shared/тип/версия.
>>2147426 Уж лучше клепать классическое десктопное приложение, чем сайт очередного интернет-магазина или фитнес-центра. На мобилке, если это не игры, так вообще вы где деньги видите? Очередной мессенджер писать будем? А мобильные игры с выкачиванием бабла за более лучшее сгорание шариков в ряду - это зашквар на уровне онлайн-казино или клонов платежных систем для фрода. За десктоп. Против веба и мобилок.
>>2148813 Вот и я подумал, максимально просто. Но так как это мой первый серьезный проект, то трудности на каждом шагу. Плюс иду своим особенным путем неправильным. Ну и разумеется я не каждый день пилю, в основном на выходных. Сеньер, конечно бы за неделю сделал, хотя я тут смотрел на LynxChan, там чел 3 или 4 года его пилит и чуть ли не каждый день коммиты пушит.
>>2148777 Все мои проекты были связаны с автоматизацией какой-либо работы. Это большая комплексная система, разбитая на части, которая делает проще и быстрее какие-то ежедневные задачи и убивает отдел кадров для всяких менеджеров среднего звена. Например автоматическое списание средств с видеокамеры.
>>2148917 >себя в цифровую форму (да, на ардуино) Мощность ардуины в этом случае оверкил.
>нейроинтерфейсы (да на шарпе) Разве это не хипстеркая поебота? Или типа цепи маркова пожилые и типа того?
Встал вопрос
Аноним03/09/21 Птн 15:20:22№2149016644
Колом встал. Какую СУБД юзать для небольшого петпроекта в 2к21? Мне надо чтобы, конечно шустро работало, при желании чтобы я смог отмасштабироваться до промышленного уровня. Чтобы подключаться одной строкой к бд-файлу в папке с конфигом проги. Чтобы одной строкой получать выборку или записывать коммиты.
В проекте предполагается долгие годы вести журналы, поэтому файловые варианты типа накидывать данные в жсон и складывать в стопочку не рассматриваю сразу же.
ЧТо не так-то? за четыре писят в месяц у тебя будет ентерпрайз левел база с бекапами и прочим говном.
>>2149108 >MS Access Серьезно? Тетя-клава с бухгалтерии? >SQLite Хронимок нету и, вроде бы, еще чем-то там от взрослого сиквела отличается. Но если супер економит ьи есть где хостить, то ок
>>2149117 >Тетя-клава с бухгалтерии? Смешной и глупый снобизм. Над екселем ещё пошути. >есть где хостить Это локальная БД, про хостинг речи не шло. >Хронимок Не нужны. На шарпе пиши.
>>2148903 >убивает отдел кадров Отделы кадров, бухгалтерии и прочие не производящие добавочной стоимости сотрудники "убиваются" программистами ещё со времён Windows 1.0. На деле же их штат только растёт. Если раньше в бухгалтерии просто сидела тетя, считала всё сама, вела сама свои журналы, сама готовила отчёты, то сейчас программы, автоматизирующие работу бухгалтеров, стали настолько сложны, что бухгалтеров требуется больше, а также теперь ещё нужны сисадмины, 1С-программисты и т.п.
>>2149130 Так это же не от программ и программистов. Просто теперь приходит понимание, что можно не как с бабой любой просить какую-то сумму баланс-небаланс посчитать, а можно реально сложную хуйню в отчетах, типа статистику по закупкам дилдаков отделом хуйни в период с новолуния по меркурий в тельце проинтегрированный по закону сосницкого. Если бы задачи у программ были те же что у той пресловутой бабы любы, это были бы простенкие калькуляторы в 2 строчки.
>>2149651 Нихуя он неправ ни в чём. Баба Люба на калькуляторе и с бумажным гроссбухом физически не могла обсчитать ничего сложнее дебета-кредита сальдо-сосальдо по одному небольшому предприятию численностью человек в 20. А сервак 1ц (не реклама, чисто как пример) - может, и зарплату на 12 отделов по 150 челов в каждом, и премию, и финансовый анализ затрат с доходами и отчётность, и обслуживается он одним саппорт-айтишником.
>>2149743 >сервак 1ц Мочь-то он может. А если он что-то не так посчитает. Премии лишать тоже сервак будешь? В тюрьму тоже сервак поедет? Под любой циферкой должна стоять имя и фамилия. И чем больше твой сервак считает, тем больше людей требуется, чтобы готовить данные, осмысливать расчёты и брать за них ответственность.
Прошел основной синтаксис с#, не весь, но более мене что-то знаю, хочу начать делать какую-то простенькую 2d игру и учить си шарп по пути, не могли бы вы посоветовать хороший движок? Во многих как я вижу используется свой личный язык программирования или визуалка. Второй вопрос, нормальный ли такой подход, или лучше дальше заняться онли си шарпом(Скучновато так)
>>2149984 Подход нормальный. Если прям движок - юнька. И востребованно и довольно просто. Я бы на этапе: только выучил синтаксис, таки советовал бы попробовать свой простой движок намутить, чтобы понять как что делается. Берешь опенгл/sdl/sfml/хуячишь на формах и делаешь свою простую игру
>>2149988 > юнька Это говно отбивает желание делать игры. > попробовать свой простой движок намутить > на этапе: только выучил синтаксис > понять как что делается Вредный совет. Щас бы новичок, только выучивший синтаксис, лез бы в написание движков. Впрочем, от юнитидауна ничего другого и не ожидал.
>>2150000 > Это говно отбивает желание делать игры Не отбивает. Раз. Два, человек вроде как хочет в языке попрактиковаться на чем-то, а не ЛОЛОЛО-МАМ Я В ГЕЙМДЕВЕ ДЕЛАЮ ИГРЫ!!!
>бы новичок, только выучивший синтаксис, лез бы в написание движков От движака для СОБСТВЕННОЙ МАЛЕНЬКОЙ 2Д(уровень первого марио/змейки/танчиков/флеппи бердс/пакмена) игры требуется: Загрузить спрайт(10 строк кода) Загрузить звук(10 строк кода) Сделать покадровую анимацию(15 строк кода) Сделать пользовательский ввод-вывод(зависит, но в среднем 10 строк кода) Придумать как хранить ресурсы игры(зависит, но в простейшем случае - 10 строк кода, а я не думаю что чел будет придумывать свои хиторвыебанные алгоритмы сжатия и криптоалгоритмы, чтобы его картинки не утащили из игры) Математика уровня: Vector2d + Vector2d(3 строки кода) Физика уровня AABB, либо вообще без физики делать если там она не нужна(15 строк кода) Может быть какие-то алгоритмы еще, типа поиска путей с помощю AStar(30 строк кода), мин-макс дерево(25 строк кода) и прочее.
И уже на основе этого - сама игра, скорее всего в 250 строк будет.
Это то что в любом вузе на первом курсе учат делать. И если человек изучил синтаксис и имеет базовые представления о том что ему нужно - он осилит это буквально за пару недель.
>>2150097 Зленым светится? Светится. Значит заебись. Что оно значит не ебу. это студия макс едишн какой-то? Почему не отдельный продукт типа сонара? Или это плагин сонаровский?
Двощ, стоит задача запилить десктоп клиент к готовому серверу, который использует самописный протокол на тцп сокетах.
Есть ли какие-то готовые решения, которые могу облегчить эту задачу? Не хотелось бы всю низкоуровневую логику писать с нуля(да и явно напишу гавно). (веб сокеты и все что выше, собственно, - не прокатят).
Как максимально быстро получить из байтового массива значение произвольного типа, например int или double? Самый быстрый способ получить из byte[] значение double, которое по скорости сопоставимо с получением double из double[] - это double x = (double)&byte_arr. НО! Это работает, только если фиксировать указатель на byte_arr (или на нужный элемент) через fixed. Если фиксировать при каждой операции доступа, то скорость снижается в 2.5-3 раза по сравнению с получением значения из массива нужного типа, и становится сопоставимой с BitConvertor'ом из стандартной либы. Такое снижение скорости делает бессмысленным всю оптимизацию, которая задумана. Если же фиксировать массив заранее в момент создания, например через GCHandle, то придётся писать IDispose и финалайзеры, а это по ряду причин не выглядит удачным решением. Почему нельзя просто разом интерпретировать память из байтового массива как double или int или что угодно, без затратной операции фиксации? Ведь это по сути атомарная операция, сопоставимая с чтением?
>>2150640 Ну, вот я пару тредов назад свою хуевину кидал. Там как для клиента так и сервера достаточно допилить парсер протокола и диспечеризацию намутить. На работе пихнул в прод и норм работает на одной машине 10к коннектов без проблем держит и всего 100мб памяти уже с базой и прочими DI. Правда на работе я использую больше серверную часть, а клиенты нужны были только для того чтобы стресс-тест провести с дудосом. НО. Но. Но. Тут сказали говнокод, потому - не дам)))
А так, если не себя рекламить, то https://github.com/chronoxor/NetCoreServer оч неплохая хуевина(да, хоть называется Server - там и для клиентской части все есть), знал бы про нее до того как свое нахуячил - использовал. Хотя там низкоуровнево слегка, и тебе придется оберточки хуячить. Есть еще https://github.com/jchristn/WatsonTcp им не пользовался, но судя по звездочкам вполне норм должно быть.
Анон шарящий за Single page aplication, выдел фичу на ютубе где можно мини проигрыватель включить и дальше прыгать по страницам при это видео не перерывается, это сложно реализовать? Существуют примеры реализации такого проигрывателя?
У меня есть такой класс пик 1 у меня есть такое квери к базе пик 2 я получаю ексепшин ввиду того что у меня в базе нет поля "IsMine", оно мне не нужно так как я храню в базе айди пользователя и получить IsMine так как на пик 3 но правильно я понимаю что с этим селектом ентити делает ту же работу 2 раза? И это работает пиздец медленно? Если да как мне сделать, то же самое, но по-человечески без лишних полей и проходов?
>>2151618 Я не могу сделать так потому что у меня нет айди пользователя с которым могу сравнить что бы получить значение, [NotMapped] поможет только тем что оно не будет бросать исключение потому что нет такой колоне в базе, но нулл референс нику да не денется, в этом и проблема
>>2151650 >Или сделай метод (желательно, расширения, чтобы не захламлять сущность) IsMine(this message m, int myId) отдельный метод будет работать еще медленнее селекта, меня интересует скорее не захломление, а перфоманс, сообщений может быть десятки и сотни тысячь, хранить беспонтовую колонну, или вызывать целый обеденный метод каждый раз очень не оптимально, я ищу что-то быстрое
>Так и делай так. не совсем понял что ты имеешь ввиду?
>>2148777 >Уж лучше клепать классическое десктопное приложение, чем сайт очередного интернет-магазина или фитнес-центра.
Сейчас все, что может приносить прибыль, сжирается гигантами и переходит в enterprise. В недалеком будущем у тебя будут два работодателя в Москве - Сбер и Яндекс. И госуха с ее попильными проектами.
>>2148777 >На мобилке, если это не игры, так вообще вы где деньги видите? Очередной мессенджер писать будем?
Зачем мессенджер? Есть готовый бекенд. Например банкинг. Или госуслуги. Или какой-нибудь ритейл вроде Озона/Авито/Перекрестка/Пятерочки/Утконоса/etc. Вот и пишется к нему мобильное приложение, чтобы ты по пути в метро мог заказать доставку хрючева к себе домой. Или мобильное приложение банка, чтобы ты мог другу васяну подкинуть 100 рублей на выпивку или взять микрозайм в короткие сроки не выходя из дома.
>>2151726 Потому что дотнет - это несколько языков кроме шарпа. Все они транслируются в единый мсил, который уже конпелируется, причём не в простой машинный код, а код виртуальной джава-машины.
>>2151668 >отдельный метод будет работать еще медленнее селекта Чего блять? >хранить беспонтовую колонну Чего блять? х2 >целый обеденный метод каждый раз очень не оптимально Чего блять? х3 >не совсем понял что ты имеешь ввиду? >сравнивая айди пользователей уже в разоре
>>2151727 Ну и что? В чём проблема сразу в машинный всё перегонять? Зачем эти прослойки? Тем более ладно были нулевые затраты, а то они ни фига не нулевые и серьёзно так просаживают производительность во время выполнения программы.
>>2151862 > Зачем эти прослойки? Чтобы получить преимущества управляемого кода и джит компиляции. >серьёзно так просаживают производительность во время выполнения ORLY? И тут ты такой с цифрами. >>2151865 >появилось что-то новое? Пилят MAUI (продолжение замариан форм) и UNO. MAUI обещают зарелизить вместе с .Net6 и на этом формы всё (вроде год бпгфиксов обещали).
>>2151862 > Зачем эти прослойки? Для удобства. Гугли блять, зачем нужны виртуальные машины, что они дают, чем они круче реальных процессоров. Я тебе не нанимался матчасть преподавать. > затраты, а то они ни фига не нулевые и серьёзно так просаживают производительность во время выполнения программы На твоём днищепека для учобы? Несомненно. Однако на мощных пеках ценой дополнительных затрат на виртуальную машину в памяти, современные проги гораздо быстрее выполняют ряд задач, которые были очень накладными на реальных регистрах процессоров при дидах. Если вкратце.
>>2151915 Никакими. В студии есть пункт меню "вынести класс в отдельный файл" вот и весь рефакторинг, который я юзал. Код студией сам стилизуется со всеми отступами. Я ХЗ, чего не хватает людям, которые ещё какие-то плагины, наворачивают. Другие ИДЕ ставят.
>>2151931 вопрос к тырпрайз кабанчикам, которые работают по корпоративному стайл-кодингу, ревьювят и дают свой код на ревью. Ответы чмох, которые кроме своего петпроекта в жизне ничего не видили, не актуален
Вещает беженец с wpf'a в asp.net core. В впф'е энитити контекст правильно вызывать через using(){} ибо если просто создать конекст в конструкторе окна были бы "просадки" памяти. А в асп контекст передаем через конструктор контроллера - так делать разве правильно? Или как можно передать IConfiguration config со startup'a в контроллер для того чтобы можно было создавать контекст в контроллере через using? https://metanit.com/sharp/aspnet5/12.2.php
>>2152067 >контекст передаем через конструктор Правильно. Ты же не руками будешь контролер создавать, IoC все разрулит. >создавать контекст в контроллере через using Неправильно. Впрочем как и на wpf. Если вы не использовали DI в wpf - мои соболезнования.
>контекст Ты, долбаеб, научись вещи называть своими именами. Любой нормальный программист хуй поймет, про какую контекст ты вообще втираешь.
>В впф'е энитити контекст правильно вызывать через using(){} Неправильно. И тебе должно быть глубоко насрать, что используется, впф или асп, огородив все конфигурацией извне.
>так делать разве правильно? Нет, тесты на свой говнокод попробуй напиши или замени одну орм на другую. В контроллере не должно быть никаких Add и SaveChangesAsync. Так этот кретин еще модель базы данных выводит на экран.
Есть ли какой-то стандартный атрибут, чтобы пометить, что класс, передаваемый как аргумент в функцию, не должен меняться (и возможно какой-то анализатор, который это проверяет)? Или же наоборот, что он будет изменён в ходе выполнения метода, чтобы явно указать это?
>>2151727 Ну тащем-то кроме C# и F# живых языков для CLR нет, а F# можно было бы пожертвовать и написать что-то уровня компилируемого C# в машинный код + с небольшим рантаймом для GC, как это в ГОвне сделано.
>>2151907 >зачем нужны виртуальные машины, что они дают, чем они круче реальных процессоров
>>2151905 >преимущества управляемого кода и джит компиляции
Идея виртуальной машины для C# была в том, чтобы просто сделать аналог как в жабе. В жабе виртуальную машину делали, чтобы запускать код на разном зоопарке устройств без того ада, который происходит с С/С++, когда компилируешь под разные платформы. Правда шарп один хуй 15 лет работал только на винде, тут можно было и без тяжелой виртуалки обойтись.
>>2152419 >живых языков для CLR нет Тем не менее, Visaul Basic активно поддерживается, хотя и не понятно кто его использует. И зачем. По сути мало чем от C# отличается, кроме отсутствия скобочек и точек с запятыми. Писать на нём всё равно придётся в VS. Я понимаю VBA в MS Office, это скорее всего самый популярный язык программирования в мире, но он к VB.Net не имеет отношения, и вообще MS хотят его убить и на заменить куцым куском говна с JS.
>>2152435 >Visaul Basic На нем написано легаси говно, которое никто не хочет трогать. Например, какие-нибудь скрипты, которых нет на шарпе и не хотелось использовать какой-нибудь повершелл. Или на нем пишут старперы, с которых уже труха сыпется и они не хотят ничего нового учить.
>>2152113 Можно. Где-то на гитхабе видел ишью и в нем есть костыльные решения. Там типа кипхер написали, который декриптил ринжаелевское легаси. Сейчас не могу гуглить.
Хм. Хм. Смотрите. Есть структура базы: //устройство Device{ ... какие-то поля устройства; ICollection<DeviceParameter> Parameters }
//параметр устройства DeviceParameter{ // Да, вот такого вида хуйня, id т.к. в устройстве может быть несколько одинаковых параметров но со спецификой int Id ... остальные поля int DeviceId; int PrarameterId; } //некий параметр Parameter{ ... какие-то поля описания параметра; ICollection<DeviceParameter> Parameters }
// данные по чтению с устройства DeviceDeviceParametersReadResult{ int Id; DateTime readDt; int DeviceParameterId; JSON Value }
Так вот. Фронтенд не хочет запрашивать сам все это по стандартным крудовским путям. Он хочет получить хуйню вида:
Device{ ...список всяой основной информации: parameters:[ { ...тут описание параметра; value:{}// последнее прочитанное значение + метка времени } ] }
Так вот собственно в чем проблема. Отдать-то не проблема. НО, я беспокоюсь чет за производительность. У устройства может быть в районе 10к параметров, читаются они раз не реже в минуту, самих устройств тоже не меньше 100к. Может быть я зря беспокоюсь и это нормальная нагрузка, ну и отдам я на фронтенд 3MB json разом, ничего же страшного не должно случиться.
>>2152592 >НО, я беспокоюсь чет за производительность. Померяй, например NBomber, так как это попугаи в вакууме: >в районе 10к параметров >самих устройств тоже не меньше 100к
>3MB json Смешной размер. Или ты грузишь 3мб каждую секунду?
>>2152598 >3мб каждую секунду Ну, при каждом запросе клиента. На данный момент фронт не хочет использовать никаких вебсокетов и прочего, потому периодически дрочит бекенд запросами чтобы иметь акутальные данные, правда не каждую секунду, а раз в 10, но это все равно за час - примерно гигабайт трафика.
Захотел узнать насколько использование нескольких классов, реализующих один интерфейс будет медленнее простого набора if или swith. Подспудно получил неожиданный результат, что блок из 10 if-ов оказался чуть быстрее, чем switch с 10-ю кейсами. Хотя вроде считается, что switch должен быть быстрее.
>>2152765 Сколько прогонов делал? Джит прогревал? Но я думаю, для теста иф-свич на 10 элементах будет существенно влиять даже фаза луны. Попробуй пару сотен хотя-бы.
>>2152821 Не. Автор бенчмарка написал даже книгу. Бтв на шарплабе чекнул исходники на последнем компиляторе с большим свитчом. Раньше оно действительно разворачивалось в таблицу, сейчас этого не показывает.
>>2152821 + надо выключить JIT оптимизацию, убрать твой говнокод с фором, убрать вызов метода и использовать случайное число на заданном сиде, чтобы код не попадал в кеш.
Как пофиксить эту поеботу с табуляцией при работе с разором в студии? В настройках менял параметры форматирование у Razoy/HTML/просто текста - не помогает, или я где-то в глаза долблюсь. Т.е. нажимаешь энетер - он убирает всю табуляцию и сдвигает влево, ну и сам не ставит её если проставляешь теги внутри тега.
>>2152850 Через хоткеи все выравнивает(только я обычно через Ctrl+K Ctrl+F делаю). Студия чистая стояла(сразу после переустановки) и эта проблема возникла(т.е. врятли что-то в настройках успел наковырять).
Расскажите про Best Practices в имплементации настроек юзверя. Ну там дефолтные смена почты, пароля, таймзоны и отключение пуш-уведомлений. Последние хочу хранить в базе булевым значением, а таймзоны енамами. Кажется, будто какую-то хуйню придумываю с таймзоной. Есть ли что-то адекватнее? Как принимать данные с фронта? Каждый раз ожидать все поля, пустым в контроллере присваивать null, в сервисе собирать все значения с объекта Settings по UserId, перезаписывать те, которые не null, а потом DbContext.Update()'ом перезаписывать все настройки?
Хочу сайтец сделать на C# через IIS. Вопрос такой - у меня есть белый статический айпи-адрес. Есть windows 10 Мои действия для того чтобы все настроить для доступа к моему сайту на моем компе из интернета?
И чтобы без дыр для хакера васи (то есть без этих тупых советов про отключение брандмауэра и антивируса и оставления рут паролей)
>>2153405 Начни с примитивной реализации: класс Parameter с двумя свойствами Name и Value как строки.
Если параметров много, надо поддерживать и т.д. и т.п.: базовый абстрактный класс Parameter с свойством Type и целая иерархия параметров на все случаи жизни. В базе данных сохраняй Id, TypeId и Value как Json, для перечня типов отдельная таблица. Нужно ли на фронт отправлять Id зависит от требований.
>>2153539 А ты уверен, что оно ему надо? Как по мне, такая структура без необходимости - путь в никуда. Да пусть уж лучше все стрингой в жысон колонку сохраняет, не? Почему просто таблицу не создать с полями-сеттингами? Ну и ХТТП патч для его случая с "нуллами", да или просто разными роутами разные сеттинги апдейтить.
>>2153629 Когда я пишу сообщение и снимаю фокус, например кликаю куда-то на другой див а потом возвращаюсь в инпут и тогда нажимаю ентер все работает, то-есть проблема в том что он биндует только когда снимается фокус, как быть теперь?
>>2153655 да >>2153648 Прочитал, но это же дико неудобно! в общем собразил что-то типа такого но остаться проблема с тем что, когда пользователь нажимает shift+enter должна произойти не отправка сообщения а переход на новую линию, и блазор слишком тупой что бы детектить сочетания клавиш, есть какие-то идеи?
>>2153663 >да Красивое. >>2153663 >есть какие-то идеи? Все мое знакомство с блейзером - это пара бутылок в 2007. Но если снова заглянуть в доки, то там говорят, что у аргумента события есть свойтства ShiftKey, AltKey, CtrlKey.
>>2153667 Cпасибо! Это работает идеально! Кстати ты случайно не знаешь почему стринговые символы вроде \n исчезают в этом месте
_messages.Add(new IMMessenger.Models.Message() { UserId = _identityUser.Id, Body = message }); когда я пытаюсь создать новое сообщение в боди уже символы исчезают из-за чего отступы не сохраняются
>>2153720 на самом деле тут даже не в этом проблема а в то что такой стринг test<br/>test<br/>tes отображается в на странице как test<br/>test<br/>tes он изменяет html символы и мне интерестно это сделано так специально что бы в сообщениях нельзя было создать свой хтмл элемент и структуру или для чего? и если мне все таки надо то как мне заставить браузер скушать стринг как есть
>>2153735 >отображается в на странице как test<br/>test<br/>tes я имел ввиду так * как на пикриле, я просто совсем совесм ньюфег даже хтмл толком не знаю
>>2153738 Ну так это ж звездец, если юзеру позволить вставлять HTML в сообщения. Тогда он же сможет не только отформатировать сообщение, но и встроить жс скрипт, и совершать CSRF атаки и прочие непотребства. В razore, чтобы отрендерить строку как html, есть HTML.Raw() или как-то так, пошукай. Только не вздумай рендерить сырые данные анонимуса. Те. тебе надо получить сообщение, распарсить его, убедится что он не делает лишнего, превратить в хтмл, и уже потом слать другим. У меня, например, есть парсер для мини версии markdown разметки и в базу записываются RawText и HtmlText.
>>2153768 > убедится что он не делает лишнего А как убедится что он не делает лишнего? Если можно конечно я бы глянул на пример такого парсера > и в базу записываются RawText и HtmlText. а зачем и то и то? ведь одно производное другого верно?
>>2153791 Google, motherfucker, can u use it? Мне вот выдало, что есть MarkupString, вроде не совсем аналог, но разве тебе не подходит? > глянул на пример такого парсера Нит. Но там ничего такого, известные тэги заменяются на хтмл, все остальное экранируется. Видел как-то на гитхабе парсер для bb-кодов. >а зачем и то и то? Если понадобиться что-то поменять, или какая-нибудь ошибка в парсинге, то всегда можно перепарсить заново. А если парсер поломал что-то и это неправильное записалось в базу, то всё - суши сухари. А если хранить, только исходный текст, то это каждый раз парсить - дорого.
>>2153809 Ты прав, MarkupString это то что мне надо было, сейчас работает идеально, я думал что MarkupString это что-то типа vieBagaи его можно определить только один раз в коде то-есть в @code, а на самом деле он и в разоре работает
>>2153553 Потому что я не знаю требований. Чтобы не вдаваться из одной крайности в другую, описал промежуточное решение. Если есть голова на плечах, можно реализовать как одну крайность (древовидная структура параметров), так и другую (херачить все настройки в одну колонку в виде json).
Оба подхода с плюсами и минусами. Только какой смысл спрашивать тогда про адекватное решение? Передает null, ну пусть передает. Или методом PATCH передает только измененные свойства.
>>2154019 FIO - это самое тупое, что можно придумать. Suda go nahui. What rings in karmanah? Are you dolbaeb chtoli ebta? Либо пиши полностью по-английски, раз уж ты такой интернациональный, либо пиши ФИО по-русски.
>>2154032 Исправлюсь. А по коду-то что? Меня терзает смутное сомнение, что я нахуярил говна, которое можно виртуозно линком оформить в пару строк. >>2154033 Мой выбор - никаких расширений. Стандартной искаропки вполне хватает для большинства задач.
>>2154039 >Мой выбор - никаких расширений. Тоже так думал. Но вот я прочитал вот это: https://habr.com/ru/company/microsoft/blog/577118/ Мелочи, но очень удобно. Что называется, тут же задыхаясь от жажды, заюзал расширения и прокодил с ними весь день.
>>2154081 Посмотрите вот на это и никогда не делайте так. Абсолютно неуместное переусложнённое решение, когда очевидно достаточно одной примитивной функции. ООП головного мозга. Зато с заделом на будущее (нет). Стоит помнить о YAGNI. Лучшее решение, это то, которое проще и быстрее всего прочитать и понять, при прочих равных. Исходное авторское решение на самом деле самое близко к оптимальному. Возможно только стоит использовать string.IsNullOrEmpty.
>>2154094 Ты не шаришь. Сделать форматтер - генериком и будет пиздец как круто. Завтра тебе нужно будет собак форматировать, послезавтра - компуктеры. Будешь вот эту вот как у чела фигню городить? А ведь можно будет просто один классик добавить и все - чики-брики и заебись. Эх. Эх. Вот посиделы бы ты на проектах в 500к+ строк и порадовался методам в 300+ строк и постоянному копипасту логики, понял бы, что это YAGNI придумали евреи чтобы разработчиков обманывать и заставлять их хуячить, когда они могли бы один класс сделать и смотреть ютуб дальше.
>>2154098 >посиделы бы ты на проектах в 500к+ строк Форматтер делаешь при рефакторинге, когда видишь такую возможность. А то я так подозреваю что твоих 500к+ проектах форматтеров будет штук 50. И применяются каждый из них строго в одном единственном месте, и на этом про него забывается.
На РНР мог написать простой сайт уже через неделю после начала изучения (при этом сам веб вообще не знал). В АСП.НЕТ со всем багажом знаний по веб не могу написать ни строчки кода, хотя уже прочитал 3 главы у Фримена, а до этого изучил сам C# под консольку. Что тут не так? Я тупой или технология слишком сложная?
>>2154264 Если похаб был твой единственный язык, то может быть проблема с изучением чего-то нового.
>Я тупой или технология слишком сложная? Ну хз, ты можешь создать новый веб проект из шаблона и даже не лазить по кишкам, а просто херачить код в контроллеры. Через два месяца сайты можно создавать будет вообще без шаблона, просто написав три строчки кода буквально. Другое дело, если ты во фронт лезешь, тогда да, похаб проще, потому что позволяет говнить сразу все в одном похаб файле.
>>2154306 А на следующий день узнаешь про Uno, а на следующий узнаешь еще что нибудь. А через пару лет ни авалонии ни мауи ни {framework_name} кроме легаси нигде использовать не будут. Если мозговые ресурсы так ограничены, то исход будет печален.
>>2154326 Ну WinForm'ам 20 лет, и до сих пор это ультимейт решение. ☑ простота ☑ интуитивность ☑ хелло ворд в пару строк ☑ перформанс и легковесность на порядок превосходят любые альтернативы ☒ поррижды воротят нос, т.к. дедами пахнет
>>2154413 Можно и свои формы вокруг винапи обернуть. Можно и на юнити написать формы кроссплатформенные. Уж простые баттоны и выпадающие списки с событиями и биндингами - дело пары вечеров.
>>2154622 Ну, твое решение как минимум пиздит, а их - нет. Блядь, ну с хуй 2,5 в квадрате - это радиус? Что за хуйня-то? Ты бы написал a,b,c, чтоб никто не догадался что ты нихуя не понимаешь.
>>2154413 Умеет. Самое смешное, что на моем заводе - сишники когда их заставили на дотнет перейти именно так и захуячили. В итоге - от форм - одно название. Потом те сишники массово уволились и пошли туда где больше плотют, остался один который ЛОЯЛЬНЫЙ, и он сидит-пердит тащит на себе проект(потому что никто не хочет, а тех кто хочет он не подпускает), при этом т.к. это оказался вполне востребованный продукт - тот чел получает больше чем весь отдел разработки и отдел контроля качества. Просто забавная справка про быт завода.
Хм. Смотрите. Вот есть мой микросервис и микросервис не мой. Мне нужно запросить некоторые данные которых у меня нет, это серия запросов, которые у того микросервиса обращаются в базу. Так вот. Не сильно ли жирно будет, если я буду как-бы разом все запросы слать. Ну, типа беру и пишу: var userTask = api.GetUsers(x=>x.email == email); var userTypesTask = api.GetUserTypes(x=>x.type == type); ... await Task.WhenAll(tasks);
Ну, типа как я рассуждаю. С моей стороны - будет быстрее если они все будут асинхронно выполняться, таким образом я экономлю свое время(думаю всем понятно почему, но объясню все равно: таким подходом общее время выполнения будет чуть больше самого долгого, при последовательном ожидании - я буду каждый запрос ждать, и время выполнения будет являться суммой всех запросов, что иногда раз в 10 больше чем разом все вот так дергнуть). С другой стороны для того микросервиса в случае если таких запросов с моей стороны много это будет выглядить как небольшой дудос и дрочь базы без особого повода. Я бы конечно хотел чтобы второй микросервис одним запросом от меня все что нужнно отдавал, но на той стороне бекендеру лень делать, говорит бери что есть и пользуйся. Или я зря придумываю и волнуюсь и вообще не моя проблема, если на моей стороне все работает нормально?
>>2154498 Не было цели. Цель появилась - купили замариан сделали мауи. >>2154622 >минусы Ты назвал диаметр радиусом. x * x лучше читается и даже работает быстрее, чем Math.Pow. >>2154882 Ну так если апи не отдает аггрегации, то ему все рано N раз базу дернуть придется, хоть последовательно, хоть параллельно. Так что позер, если нет лимита на твое дерганье апи.
Объясните, отправляю в асп контроллер через фетч пост запрос body: JSON.stringify({days: parseInt(days, 10)}) Если написать вот так: public async Task<IActionResult> Foo([FromBody]int days), то days не биндится, равно нулю. Но если так public async Task<IActionResult> Foo([FromBody]Bar bar) где у Bar есть св-во Days, то работает. Можно забиндить без жоп класса?
>>2155421 Ну, внутри боди ты можешь как хочешь передавать. На стороне сервера ты можешь просто принимать это как строку и парсить в нужном формает. Если тебе таки нужно чтобы .net сам парсил - таки придется оборачивать в объект и передавать его, либо пилить свой миддлвар который бы достал из боди то что тебе надо, распарсил как надо и передал дальше.
>>2155713 Фич в шарпе на данном этапе явно не достаточно. Хотя то, что ожидается вместе с NET.6-NET.7 - неплохо. Но нужно ещё завозить аспектное программирование и макросы как в nemerle. Также нужны зависимые типы и вывод типов для метапрограммирования. Этого реально очень не хватает. Без развития шарп не станет взрослым языком. А джуны на такой уважаемый язык как шарп должны год учиться, а не 21 день, как на С++.
>>2155808 Все эти фишки даже Рихтер не осилит. Он уже слился, потому что не стал писать книгу по Core. В лучшем случае будут книги для новичков, где и половины языка не расскажут. А самому всё это освоить не реально.
>>2155818 Ну опытные же спецы как-то это осваивают. С++ люди как-то учат. Язык должен делаться не для джунов, а для опытных спецов, решать их реальные проблемы. Если учиться синтаксису придётся дольше, ну так учитесь дольше, это в ваших же интересах, ниже конкуренция за место, выше зп. Хотя должен сказать, что я и сам многие фичи языка либо не знаю, либо знал, но забыл. Вот например >>2154812 - офигенно же, и ведь я знал это когда-то, но сейчас совершенно не помнил, что так можно.
>>2155808 >нужно ещё завозить аспектное программирование и макросы как в nemerle. Также нужны зависимые типы и вывод типов для метапрограммирования. Этого реально очень не хватает
>>2155808 Ничего из этого не нужно. А что нужно, так это наконец прийти к тому, что раз уж у нас 1файл == 1 класс -> нет нужды писать класс в скобках, отбирая целых 4 пробела. Вот, с неймспейсами уже обещают так сделать, дальше надо чтобы и классы так же можно было. Затем нужно договориться о том, что все классы по-умолчанию должны быть ненаследуемы, а чтобы их можно было наследовать - дополнительный модификатор указывался бы. Ибо - в 99% случаев как раз наследоваться от этого класса - не хотелось бы, но люди sealed не ставят, в итоге получаем что кто-то наследовался, пропихнул куда не нужно, все в пизду. Так же нужны readonly class которые бы нельзя было модифицировать после вызова конструктора(рекорды не совсем то). Ну а в остальном - надо над оптимизацией работать, чтобы программист мог без задней мысли хуячить линку и всячески с коллекциями работать, не вспоминая, что там создается енумератор и прочая залупень из-за которой сразу после релиза ты все охуенные линку переписываешь на старые-добрые циклы.
>>2155940 >нет нужды писать класс в скобках, отбирая целых 4 пробела. Согласен. Хотя и не всегда 1 файл = 1 класс. Особенно это енумов касается.
>с неймспейсами уже обещают так сделать Отличная фича. Вроде уже даже доступна в 22-й студии. Еще будет вроде бы возможность в сеттерах и геттерах использовать ключевое слово field для обращения к приватному полю, связанному с геттером, вместо того, чтобы руками его писать. Хотя я и не понял пока как это хотя бы в превью включить.
>классы по-умолчанию должны быть ненаследуемы Это джуновское предложение. Чтобы наследование класса могло привести к неожиданному поведению, тебе нужно, чтобы часть методов была виртуальными или были протектед члены. А если ни одно поле ни тем ни другим не помечено, то ничего сломаться не может. Какие проблемы?
>пропихнул куда не нужно Ну это явно не твой вопрос, а вопрос архитектора. Если такие проблемы возникают, то может дизайн класса кривой.
>readonly class Идея бессмысленная, ты и так можешь гарантировать, что класс ридонли, имеющимися средствами языка. А вот помечать, что класс, переданный в функцию как аргумент, не будет изменён - вот это тема.
>ез задней мысли хуячить линку Простые форычи и так хорошо оптимизированы везде где можно. А сложные линки ты всё равно руками не перепишешь в разумный срок. Конечно хотелось бы предельную производительность, но не думаю, что это может быть возможно в принципе.
>>2156071 Да поебать мне на конторы! Я самозанятый фрилансеробог. Мы тут ЯЗЫК обсуждаем, блять, а не стандарты галер, раб ёбаный, пресмыкающийся, хррр-тьфу на тебя, ничтожество. Иди греби веслом, мразь. Тебе ещё кредитопомойку оплачивать.
>>2156071 Это тупое формальное правило. Его явно не следует придерживаться огульно везде. Некоторые вещи лучше писать в один файл, из-за их краткости, либо же из тех соображений, что их последовательное чтение сверху вниз позволяет намного лучше понять смысл всего кода (скажем если это набор логически связанных интерфейсов), а раскидав всё по разным файлам, ты просто заебешься их выискивать, особенно учитывая ещё и тот факт, что нельзя настроить нужный порядок сортировки исходных файлов.
>>2156096 Та я сам с одной стороны согласен. НО, как же меня раздражает что в шарпе столько место отъедает просто объявление неймспейса и класса. В такие моменты даже плюсовый подход кажется норм. И вообще. Я вот недавно решил чутка вспомнить универ и пописать для себя на старых добрах сях. И это на самом деле так приколько, что все умещается в 80 символов, накаких тебе здоровенных неймспейсов не нужно, никаких имен классов в 30 символов. Красота, все так компактненько. В этом плане шарп выглядит оч широким.
Так как близится перекот, позволю себе подзасрать тред напоследок. Накидайте вариантов названий для имиджбордного движка на шарпе. Только, чтоб я мог гит с ним показывать в резюме, а не всякие analgovno9000. inb4: analgovno9001
А можно какой-нибудь класс, запаковать в виде байтиков и сохранить файл. А потом другая программа распаковывает этот класс из файла и его выполняет как программу?
Как писать бизнес-логику программы для WPF, если WPF полностью перехватывает программный поток? К примеру, я хочу нарисовать треугольник в окне в результате работы своего кода, но я не могу этого сделать, потому что в это время выполняется код самой WPF.
>>2156487 Попробуй написать еще раз. Бизнес логика никак не должна быть связана с отображением. Нужно нарисовать треугольник? Отсылай запрос на просчет треугольника бизнесу, он тебе вернет класс треугольника с координатами вершин, вьюха отрисует как умеет. Ну в случае впф, еще будет слой вьюмодель, через который общаются вью и бизнес. Синхронно или асинхронно - решает вьюмодель.
>>2156500 Получается моя программа - это набор функций, а события WPF - управляющий код, который указывает какая моя функция будет исполняться в текущий момент? Вот нафига во всех книгах для новичков учат эту долбанную консоль!? Это абсолютно бесполезный навык. Мало того, он вредительский, потому что в такой модели исполнения кода ничего не работает. Просто убиваешь столько времени на бесполезные навыки. А ещё некоторые мне говорили: зачем лезешь в окошки, начни с консоли. Ну начал я с консоли. И что? В итоге вернулся к тому, с чего начинал.
>>2156512 Ты похоже быстро слез с консоли, залезай обратно. Что консоль, что впф - это по сути методы взаимодействия с пользователем. Твоя бизнес-логика не должна знать как с ней работают: через консоль, окна или пси-лучи.
>>2156526 В WPF нет команд типа Console.WriteLine или ReadLine, там надо вещать обработчики на кнопочки и в них писать свой код. В итоге у тебя нет единой нити управления. И как увязать мой код с этими обработчиками, я не понимаю. И вся логика у меня отделена между прочим! Я как раз и говорю, что я не могу связать дурацкий WPF с логикой моей программы. Они просто не совместимы!
>>2156487 В винде есть такая хрень как ивент луп, что-то похожее на ивент луп в жабаскрипте. Винда это делает в одном потоке, нет никакой многозадачности. Когда ты двигаешь мышь, когда нажимаешь на контрол - винда генерирует ивент в этом ивент лупе.
Тебе надо подписаться на обработку нужного типа ивента нужного тебе контрола и сделать то, что ты хочешь. Сделать можно или через вин апи, или через существующий враппер для ивента. В WinForms это всякие OnClick, OnPaint. Если ты сделаешь что-то долгое при обработке ивента - окно зависнет.
В WPF у тебя добавляется еще DirectX 9, который вне этого ивент лупа, который тоже обрабатывает ивенты в одном потоке. Если в WinForms, скажем, кнопка - это контрол из вин апи, то в WPF, кнопка - это результат рендера DirectX, тупо картинка. На DirectX у кнопки нет ивентов, кнопки тоже нет, генерация ивентов сделана своим костыльным способом. Поэтому в WPF другая модель обработки ивентов, рядом с ивентами WinForms, + свои типы ивентов как OnRender. В WPF та же проблема, сделаешь что-то долгое в обработке ивентов, приложение зависнет.
Если ты хочешь что-то долгое просчитать на WinForms/WPF, то тебе надо это делать в отдельном потоке. А при попытке показать результат на UI, тебе необходимо использовать диспетчер ивентов (вызвать Invoke метод), чтобы в ивент луп добавить свое действие. UI нельзя изменять из другого потока.
Итого, у тебя в WPF есть: - ивент луп винды - ивент луп DirectX (скажи спасибо, что не 12) - все обрабатывается в одном потоке - из другого потока нельзя обновлять UI
>>2156533 >Они просто не совместимы В обработчике кнопки вызываешь метод из своего класса с логикой. async-await намного упрощают проблемы с диспетчеризацией UI. Я могу портировать любой свой код на консоли на WinForms/WPF/Xamarin/любая-другая херь с минимальным телодвижением, потому что логика нехера не знает про UI.
Еще есть такая хрень как контекст потока, но ты пока разберись с разделение UI и логики.
>>2156569 Получается программа строится "шиворот на выворот". В консоли ты указываешь когда и что вывести, а в графическом приложении тебе указывают, когда выполнять код.
>>2156809 В том, что тебе надо бизнес-логику переписывать под событийную систему WPF, а не единый поток как в консольке. Допустим я написал программу, которая делает вычисления, что-то выводит, а потом просит ввести данные пользователя, а в WPF я не могу так написать. Мне надо вычисления вставить в код инициализации окна, вывод в код визуализации, а ввод пользователя ловить обработчиками событий. В итоге код превращается в кашу разбитую на сотни отдельных фрагментов.
>>2156924 >в WPF я не могу так написать Почему? Просто при появлении окна дергаешь метод, который делает твои вычисления и возвращает результат. Можно дернуть в отдельном потоке. И так со всем остальным. Ты пишешь ГУИ, всякие обработчики ввода пользователя, запуск новых окошек, менюшек, и т. д., а когда нужно, дергаешь свою бизнес логику. Ничего сверхъестественного тут нет.
>В итоге код превращается в кашу разбитую на сотни отдельных фрагментов. Так работают все современные программы. Даже если писать более мнее продвинутое консольное приложения, с возможностью работы в нескольких режимах и интерактивным взаимодействием, то тоже быстро удивишься, как быстро код превратится в кашу.
>>2156924 Я вообще начинаю понимать что теряю нить твоей мысли все больше и больше. Как минимум у нас разное понимание бизнес-логики. Как-бы в моем понимании - ты можешь выделить бизнес-сущности, операции и вообще до пизды должно быть на какой-то там гуй и прочее. Ну, на примере. Вот нужно создать заказ. Логика бизнеса: Проверить наличие товара, проверить данные об оплате, все ок - оформляем, сохроняем, возвращаем сущность описывающаю заказ, не ок - возвращаем ошибку. Где тут вообще встревает пользователь? Где ввод? Где потоки? Я не понимаю в упор. Может быть я тупой и что-то не то под бизнес-логикой понимаю, но меня как-то вот учили, что есть уровень представления, в широком смысле это любой интерфейс который не относится к нашей логике автоматизированного процесса, а служит такой-то ручкой, это может быть хоть пользовательский ввод в консоль, хоть запрос по TCP, хоть изменение температуры процессора или появление в папке файлика, до пизды, потому что к основной логике предметной области не имеет же. А есть еще всякие уровни хранения данных, сервисов и проч-проч. И вот во всем этом - вообще до пизды какие там у тебя потоки, откуда ты данные взял(вот ты описал свой пайплайн, а подумай, как ты автоматизируешь его тестирование? Робота разработаешь, который будeт за тебя вводить все что надо?)/ Ладно. Эт я тупой, потоки какое-то отношение к бизнесу имеют и если мы перешли на ВПФ из коносли, мы не можем просто сделать класс вьюхи и контроллера/вьюмодели, а бизнес оставить без изменений.
Сап, слышал на рынке ЗП штормит. Что сейчас по актуальным вилкам хорошего .NET бэкера миддла-удаленщика?
Сижу на 100к, HR'ы пишут в личку про вилки 150-250. Насколько это сегодня адекватные цифры? Сильно ли ебут на таких ЗП или можно как везде хуи пинать половину времени?
>>2157148 Ты какой-то наивный. Если хочешь зарабатывать много, при этом будучи мидлом. То ты: - либо пиздишь, что помидор, прыгая по галерам на +500 оффер - либо занимаешься фрилансом и тащишь всю бюрократию и риски на своем горбу - либо заводишь трактор - либо навешиваешь на себя доп обязанности: менеджмент, менторство, экспертиза...
ЗП зависит исключительно от твоих способностей хорошо вешать лапшу на уши. Не от лычки мидла.
Пинание хуев зависит от проекта. Есть заказчики, которые будут тебя задрачивать каждую секунду и глубокой ночью.
>>2157160 Ну опять же вопрос, что сегодня значит много. Я думал фриланс-удаленщики давно на 300к+ сидят с патентом.
Мне интересно насколько больше 100 сегодня можно получать на дефолт миддле. Знакомые и 150+ выбивают на всяких питончиках, вот и вопрос появляется - насколько я могу получать больше, при тех же трудозатратах без смены стека.
>>2157043 >Я вообще начинаю понимать что теряю нить твоей мысли все больше и больше. Он описывает ход выполнения программы. В консоле операция за операцией выполняется. В WPF по событиям. Тот же паттерн MVVM работает через события, когда в ViewModel свойство кидает событие при изменении или кнопка вызывает метод ViewModel. Если сама бизнес-логика написана через событийную модель, то ее легче натянуть на WPF.
В ViewModel из MVVM и в Controller из MVC нет бизнес-логики. Ее туда пихают из-за лени или если приложение слишком простое.
>Как минимум у нас разное понимание бизнес-логики. Ее можно по всякому писать. Ту же консоль можно переделать на событийную обработку как в WPF, используя тот же Rx. Только все равно бизнес-логика не должна знать про интерфейс. Обычно ее выносят в отдельную библиотеку, чтобы не получилось использовать классы интерфейса.
>Где тут вообще встревает пользователь? Где ввод? Где потоки? Как спрашивали вверху. Программа - это набор функций, а события WPF вызывают нужную функцию. Ввод - проблема интерфейса, при вызове бизнес-логики должен быть уже финальный результат ввода, только если это не частичный поиск как в поисковике. Потоки появляются при выполнении действий "проверить наличие товара", "проверить данные об оплате", потому что это долгие операции, так как надо считать данные из файла, сходить в базу данных, сделать реквест на какую-то апи, что-угодно. Если не использовать потоки, пока идет проверка, у пользователя зафризит интерфейс до конца проверки. И раз уж на то пошло, бизнес-логика не знает еще не про какие файлы, базу данных, апи и так далее, не только интерфейс.
>может быть хоть пользовательский ввод в консоль, хоть запрос по TCP, хоть изменение температуры процессора или появление в папке файлика Есть разница между этими процессами. Например, температуру процессора читать каждую секунду или повесить обработчик на событие изменения температуры. Запрос по TCP часто засовывают в бизнес-логику, хоть это и неправильно.
>И вот во всем этом - вообще до пизды какие там у тебя потоки, откуда ты данные взял Интерфейсу не все равно. Если из другого потока изменить любое свойство контрола, может произойти дедлок, а может и не произойти, как повезет. Еще может фризануть интерфейс на несколько секунд, а может и не фризанет, тоже как повезет, дело удачи. Если в бизнес-логике асинхронный код превращать в синхронный без отвязки от контекста интерфейса (а он привязан по умолчанию), почти всегда будет вечный фриз интерфейса.
>как ты автоматизируешь его тестирование? Для любого UI можно написать функциональные тесты. В вебе эмулируются действия в браузере, на десктопе/мобилках запускается приложение и тоже эмулируются действия пользователя. Уже есть готовые библиотеки для этого, сайпресс например. Модульными тестами тестируют функции из интерфейса и бизнес-логики по отдельности.
Еще можно извратиться и написать функциональные тесты для консоли через потоки ввода и вывода консоли. Не думаю, что есть готовые библиотеки для этого.
>если мы перешли на ВПФ из коносли, мы не можем просто сделать класс вьюхи и контроллера/вьюмодели, а бизнес оставить без изменений Можем. Даже если бизнес-логика - это сложный класс Game, у которого только два публичных метода Start и Stop. Такой черный ящик можно запустить на консоли, на десктопе, в вебе. Книги по ООП/функциональщине как раз описывают как заставить этот класс Game не от чего не зависеть и чтобы он поддавался модульному тестированию. Но это сложный случай, сделать какой-нибудь реквест на апи намного проще. И это типичный сценарий Windows сервиса или демона на линуксе, где интерфейса вообще нет, есть только логи где-то, не обязательно в файле.
>>2156533 >В WPF нет команд типа Console.WriteLine или ReadLine На WPF метод Console.WriteLine выводит текст в окно вывода ИДЕ. Еще можно заставить консоль и окно появиться одновременно и работать независимо друг от друга в рамках одного dll/exe файла.
>>2157168 Я просто немного оторван от текущих зарплат, и хочу понять, сколько обычный работодатель сейчас считает нормальным платить миддлу/сеньору. (Если такие средние показатели вообще есть)
То есть условные 170к миддлу это исключение из правил, или уже правило.
>>2134580 (OP) >Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован
Хуй знает в каком энтерпрайзе он стал востребован, потому что большая часть вакансий на хх выглядит так
> .NET Framework >= 4.0, ASP.NET MVC (WebForms), WPF/Unity, WCF, ADO.NET, MSSQL > опыт от трех лет > зп в виде рыбной котлеты 120к в ДС > работодатель: ИП Ашот/НПЦ ФГУП ООО "Говнософт"
Ну и что блять не так с этим рынком? Отличный ведь язык, пиши себе крутые бекенды со всеми модными фичами, но нет, будем использовать шарп для говнодесктопов и не менее говнистых игр на юнити, при этом не зарабатывая нихуя. И да, из крупных работодателей есть только Озон, и, наверное, все. Яндекс, Мейл, Сбер, ВТБ, Райф, Дойче, Тинькофф сидят преимущественно на java/golang, лишь изредка там в паре отделов что-то крутится легасное на шарпе. Вот почему так блять? Я не хочу писать на джаве, это сломанный язык, но везде, где есть хоть какое-то подобие адекватной деятельности и где ты будешь уверен, что твоя контора не закроется от очередных многоходовочек правительства и что тебе не будут задерживать зарплату, все на джаве нахуй. Это только у нас в РФ такой рыночек, или где-нибудь в Европе можно комфортно писать на последнем шарпе с .NET 5, не продираясь сквозь кучу десктопных вакансий?
Быстрый вопрос: 22-я студия уже норм или лучше пока ставить 19-ю?
Мне только общественный функционал, тупо хочу одну фигнюшку под .NET 5.0 собрать и попробовать на линухе запустить.
Казалось бы, возьми да поставь, но в прошлый раз когда я "просто решил посмотреть че там", я попал на четыре часа ебли с установщиком, испортившим вообще нахуй все, а не только новую установку.
Ставиться в обязательном порядке на системный диск? Ну да, что может быть солиднее. Нахера мне там это говно? Я специально для проектов пятисотгиговый ссдшник воткнул, а на системном у меня СИСТЕМА, которой не нужны лишние обращения когда я компелирую.
Чет, короче, муть какая-то. Новый проект под 5.0 создать можно, а старому целевую платформу на 5.0. изменить нельзя. Бля, ну почему все всегда так сложно с этими петухами...
Господи, мне теперь всегда диалогом публикации придется пользоваться? Просто скажите что можно по Ctrl+b собирать сразу self-contained single file приложение под целевую ось/архитектуру, я уж потом найду как это сделать.
>>2157334 >Ну и что блять не так с этим рынком? Не знаю в какой ты мухосране смотришь. Открываю первые вакансии на помидора с опытом 5+ лет: - стандартный веб стек + авс, хотят асп кор - на солюшен велосипедостроителя хотят докеры, микросервисы и вообще перечислили все возможное говно (грпц, гцп, графана, элк, кафка...) - хотят вообще опыт .net6 и winui3, поехавшие - кор и блейзор Большинство вакансий на удаленку.
Только что это показывает? Что я работу не смогу найти на новых технологиях или вообще хотя бы на дотнете?
>>2157458 Лучше бы утвердился простым ответом на вопрос, а то ведь ответа нет, только гонор селюковский. Так что, как собрать (не опубликовать) приложение в один файл под целевую платформу, отличающуюся от платформы разработки?
Смешно слышать от клоуна, так и не давшего внятного ответа на поставленный вопрос. Про гугле любой пиздеть горазд, да.
> про политику.
При чем здесь политика? Я реально с украины и у меня реально забанен гугол. Хотели забанить яндекс но немного промахнулись, видимо. Вот ща впна нет, спасибо макака хоть отдельный шлюз для нас сделал.
>>2157454 Ты еще скажи у тебя есть объективные причины на такую упаковку. >>2157452 >> Я испанского не знаю, >> То, что ты не имеешь в испанский, твоя проблема Плохая аналогия как котенок с дверцей. В твоем случае было так > Как говорить по-испански? Почему так сложно с этими петухами...
>>2157455 >Только что это показывает? Что ты ищешь работу на зарубежном рынке, а не на рынке РФ? У нас с локальным рынком пизда полная в мире дотнета. Мало того, что вакансий мало, почти как на С++ или чуть больше чем на Го, так еще и платят натурально по хуйне + засилье десктопа. Всякие джависты и жсники смеются с наших зп, а часть проектов и вовсе уходит на жабу, так как на дотнете тяжело найти человека, который умеет хорошо в бекенд, а не в формочки.
>>2157473 Не, на это мне похуй. Мне всего-то надо было "спасибо" по-испански сказать, а ты ради прикрытия своей несумевшей доставить ответ жопы все повернул так, как будто я пытаюсь в разговорный испанский вкатиться. Ну обосрался и обосрался, со всеми бывает, не так вопрос прочитал, но зачем ты продолжаешь жрать говно?
>>2157458 >Утверждаюсь на таких как ты, которые сперва делают, а потом думают.
Ты сам-то хоть секунду подумал перед тем как ответить? Собрать приложение в один файл под произвольную платформу в студии нельзя. Либо консоль, либо диалог публикации.
>>2157490 C# Memory Model (или как оно у вас правильно называется), где рассказано про happens-before, synchronization order, memory order, ну короче как здесь
>>2157379 Ставь райдер / vscode с плогинами. Никто студию ставить не вынуждает, билдить давно через сонсоль можно. Ну и студия всегда так и жрала, она в виндовые и пользовательские каталоги прописывается.
(Бтв ты можешь поставить, а потом вырезать на диск и хардлинков накидать на другой диск. Я так кэши у браузеров переносил)
Нигде не описывается это, помню были какие-то упоминания в книге Албахари. Если ты понимаешь как работает это на C++, то на C# все тоже самое, но с ограничениями. Например на C# есть только full fence. Есть конечно еще вариант почитать ECMA-335 1.12.6.
Сап двач, начал тут новый проект суть которого быть максимально легким, что бы даже можно было запустить чуть ли не на калькуляторе. Логично я пришел в итоге к блазору и вебасембли так как вся логика будет выполниться на стороне клиента, к тому же я решил использовать liteDB
когда-то я уже использовал эту малышку в качестве легковесного решения для простеньких лендингов с возможностью регистрации Но я сразу же напорлся на проблему.. лайт дб наотрез отказалось создавать файл базы перестал работать даже базовый код из самой документации https://www.litedb.org/docs/getting-started/ Это связано с тем что поскольку вебасембли исполняет код на клиенте то и базу он хочет создавать у клиента и это совершенно не то что я хочу, можно ли заюзать вебасебли но в определенных случаях заставить его выполнять код на сервере? я ньюфег ни блазора ни тем более вебасембли не знаю но выглядят они очень привлекательно!
Собираешь .NET 4.* - все работает. Собираешь 5.0 - валится строка за строкой по причине от вашего объекта уже избавились. Ну как так-то, ну е-мое, ну где эта ваша обратная совместимость? Гейтс, все-таки, хоть и пидор, но даже свои знаменитые недокументированные возможности до последнего тащил, а эти... эх.
>>2157476 На hh.ru: 1 034 вакансии «asp.net core» против 1 051 вакансия «spring java 11»
Как раньше вакансий на Java было в два раза больше, так и сейчас точно так же. Только хуйня смотреть на эти числа, один сбербанк сколько вакансий кинул. Сайт не позволяет показать сколько мест на одну вакансию (есть галерки, которые никогда не закрывают вакансию), не количество вакансий за все время.
>>2157169 Блин. Няша. Половина твоих ответов - это ответы на риторические вопросы. Я про то что в классической 3-4 уровневой модели приложения - бизнес изолирован и ему таки до пизды логика UI или любого другого интерфейса который пытается до него достучаться. Если декомпозиция проведена нормально, ты можешь одну и ту же бизнес-логику в 95% случаев просто засунуть в библиотеку и хоть дергать ее на запросы через http/rpc, хоть в WPF, хоть в консоль, хоть в небо, хоть в Аллаха засунуть. Пример с документом это как-бы показывает наглядно. И да, то что там фризить будет что-то это не проблема бизнес-логики, это другой уровень приложения и на этом уровне об этом и нужно думать.
>>2157677 >java 11 Очень много контор не указывают версию жабы, либо сидят на восьмой. На восьмерке (которая в 2014 году вышла) до сих пор половина рынка сидит, если что.
>>2157691 >Я мидл. Моя после всех налогов 47к с копейками Ну йоба на!!! Только собрал жопу в кулак и решил плотно заняться кодингом для переката с опостылевшей стройки, как ты просто на корню все желание срезал.. У меня 75к после налохов за вахту в 15 дней. За 47 придется на жопе сидеть 5/2 и отращивать геморрой?
>>2157722 Да я просто хуйло на самом деле, няша. Меня-то и мидлом сделали просто из-за того что 2 года сижу-работаю и как-то некруто что работаю как-бы не вчера, а плотили 20к. По уровню знаний я стажер с синдромом дауна. Даже не так, нехорошо обижать даунов, сравнивая их с моим тупоумием. Короче, к чему я. К тому, что я просто лох по жизни и вообще конч, который нихуя не умеет и который, по хорошему, должен был бы в поле ебашить от рассвета до заката, но с какого-то хуя приперся кодить. Пойду, поплачу немного.
>>2157680 Проблема в том, что этому нигде не учат и не объясняют нормально. Вы накинулись на меня за то, что я чего-то не знаю, а откуда я это должен узнать? Где про это написано? В книгах по WPF пишут про кнопочки, а как организовать большое приложение под WPF - нет.
>>2157769 Уже спрашивали про это. В книгах по WPF пишут про WPF. В других книгах пишут как писать код. Какие конкретно книги стоит читать уже холивар, книги друг другу противоречат.
А что думаете про книгу Флёнова - Библия C#? Там даже относительно свежее издание вышло за 2020. Автор русский, поэтому можно читать в оригинале без переводчиков.
>>2157778 >Чтобы сэкономить место, я убрал комментарии, но в них всего лишь было написано, что перед нами входная точка приложения. А мы уже и без комментариев знаем, что метод Main() всегда вызывается первым при запуске приложения. Но давайте все по порядку.
>Файл Program.cs нужен только в качестве заглушки, в которой объявлен класс с методом Main(). Он не несет в себе никакой логики, кроме создания приложения и отображения главного окна программы. Чаще всего в этот файл вы заглядывать не будете, но знать о его существовании желательно.
>>2157792 Бтв 2020 говоришь. Давно забыл, что когда-то так выглядело окно создания проекта. Какой еще .NET Framework 2.0 в 2020? Какой OleDbConnection? Windows 7, ахахаха. Он наверное еще из своей книги не удалил некоторые брекин ченжы, которые давно затерли новые версии фреймворка, если он вообще про них знал.
>>2157815 Справедливости ради - я хочу обратно это окно. Уебищно нынешнее выглядит. Хуй знает зачем они удобное и практичное поменяли на какое-то говно. Можно было просто чутка освежить, нет, блядь, нужно было сделать будто студию на планшете кто-то собирается запускать. Пиздец короче.
>>2157844 И чем консоль плоха? Если человек в состоянии в ней сделать хотя бы текстовый редактор с поддержкой базовых операций типа copy-paset undo-redo open saveAs, и какую-нибудь подсветку синтаксиса может в ней сделать - такому человеку вообще не составит труда с графикой работать. Другое дело когда чел прочитал как на форму накидать кнопок и хуячит обработчики в духе: OnButton1Clicked со всей логикой в них.
>>2157919 >Как насчёт dotnet new чмохи? Хуя ты крут. Если бы я использовал dotnet new или окна студии/райдера, не смог бы проворачивать тот изврат выше по треду.
>консолебоги традиционно обоссали событийночмох Сам себя обоссал. Ахахаха.
>>2157874 Такой текстовый редактор - уже графическое приложение (пусть там даже текстовый видеорежим используется). Стандартная консоль - буфер на 300 символов.
Аноны у меня нетривиальная задача, нужно написать сайт в котором будет рисоваться план кафе и пользователь сможет кликать по столикам и бронировать их. Я понятия не иммеют даже с чего начинать, где делать, есть тут сеньоры помидоры которые направят на путь истинный?
>>2158240 Важное уточнение план должен создаваться автоматически, есть таблица с координатами стем столиков и тп согласно плану, это надо перерисовывать в браузере
>>2158240 > с чего начинать Ну например на овощебазу грузчиком можно пойти. Или в Пятёрочку кассиром. С гугла, блять, начинать. Гуглишь, на чём сайты делаются. Потом гуглишь как делать кастомные кнопки со своей пикчей.
>>2158241 Ты тредом ошибся, у тебя на шарпе будет только запись/чтение из бд, остальное жс. Можешь спрайт на канвас кинуть, а можешь полигоны рисовать, вон как лого двача.
>>2158267 я бы планирую использовать джс, по возможности я бы хотел использовать блазор и кресты для рендеринга, но вот как это сделать уже совершенно другой вопрос
>>2158277 >не кликабельный Ого, в тясячах жс играх на канвасе оказывается кликать нельзя. Или боишься не осилишь формулу пересчета координат? Там же аж вычитать придется! >>2158279 >блазор сможет работать с свг? Главное, что браузер умеет в свг.
>Ого, в тясячах жс играх на канвасе оказывается кликать нельзя. Или боишься не осилишь формулу пересчета координат? Там же аж вычитать придется! Если честно и правда страшно, а то добавят мне в тз еще фичи мол цвет меняется на ховер, всякие менюшки, все-таки анимации и мне этот канвас еще так аукнется, а то что тз будут менять я уверен
>>2158373 А ты сам предложи, превентивно. Но вообще-то что-то меняться действительно должно: цвет, свечение вокруг элемента, какая-то анимашка появляться. Иначе будет не понятно куда тыкать можно, куда нет, когда уже довел до элемента, когжв
>>2158438 я так чисто для примера сказал, первое что в голову пришло, но я думаю понятно о чем я, кликабельные канвасы не очень то легкие для развития и дальнейшей поддержки
>>2158473 У чела кресты для рендера и нулевое понимание. О чем ты? Пусть на канвасе делает и не выебывается, в пятерочку ему уже предлагали. Вылез тут со своим тривиальным жабаскриптом.
>>2158240 Набросай примеры конфигов и примерный результат в пейнте. И кинь таску фрилансерам на создание канвас движка для этого. Ну или погугли, может какие-то наброски уже есть.
У меня есть некоторое непонимание относительно архитектуры.
Вот смотрите. Допустим я придумал охуенный протокол для чата. По этому протоколу - первым сообщением пользователь шлет информацию о себе, затем может начать общаться с другими пользователями которые в данный момент зашли в чатик. Так вот. Собственно в чем сложность. Вот допустим - есть два TCP-соединения. Оба, примерно одновременно подключаются, я лезу в базу, проверить есть ли такой пользователь, если нужно - зарегистрировать. Собственно. В чем трабла. Из-за всей этой многопоточной мути - я вот за что не понимаю. Допустим - два таких вошли. Такого пользователя - не было. Первый начал регистрацию, пока шла регистрация - второй уже получил из кеша данные, они примерно одновременно завершили регистрацию. Собственно случается конфуз, два TCP-соединения активны, оба имеют идентичные ClientInfo. Как такое нужно разрешать и вообще? Я вот подумывал о том, что делать у сервера какой-то пул активных клиентов, затем просто наполнять его и биндить последнее TCP-соединение, все что незабиндины - переодически чистить. Но вот мне это кажется какой-то хурмой. А как иначе делать - я не придумал.
Двач, вопрос по EF. Имея две связанные сущности (скажем: сущность А содержит в себе первичный ключ сущности Б); при удалении второй из них, как правильно и где подчищать? (удаляя сущность Б, как реализовать удаление/или обнуление нужного поля в сущности А?) Используя CRUD, как это оформить красиво?
Забегают ли в тред синьоры или байтоёбы? Насколько безопасен код на пикриле? Мы создаём Span<T> на участок массива, а массив при этом объявляется и инициализируется внутри отдельного метода. Затем этот метод возвращает этот Span. Затем идёт куча операций по выделению памяти и работе GC. А затем мы читаем значение из Span'а. Вопрос - гарантировано ли, что там будет исходное значение или же оно затрётся мусором, т.к. GC ведь хранит только управляемые объекты, а внутри Span'а хранится просто указатель и GC о нём не знает. Я подумал, что Span внутри может хранить ссылку на исходный массив, но на самом деле нет, Span во всех случает хранит внутри только дот.нетовскую обёртку вокруг указателя (ref struct ByReference<T>). См. https://source.dot.net/#System.Private.CoreLib/Span.cs Т.е. по существу оба приведённых ниже конструктора Span'а работают одинаково: public Span(T[]? array) public unsafe Span(void* pointer, int length) В обоих случаях в спане сохраняется просто указатель, обёрнутый в ByReference<T>. Или же GC управляет и всеми такими указателями? Тогда однако не понятно, почему вот этот код работает явно с багом, но никакого исключения и никаких видимых проблем нет: public static void Main(string[] args) { Span<int> s = Get_span(); Console.WriteLine(s[0]); Console.ReadLine(); } public static unsafe Span<int> Get_span() { int x = -1; Span<int> s = new(&x, 1); return s; }
В общем не могу понять, как будет себя вести Span<T>, когда возможно, что время жизни массива, фрагмент которого взят в Span, будет меньше времени жизни этого спана. Есть ли возможность, что внутри будет мусор, или же GC аккуратно учтёт такой Span?
>>2158651 Вот это подстава! И как теперь вкатываться в ОйТи!? Я думал, что буду уникальным спецом по МАУИ и меня завалят предложениями: 300к/с, 500к/с, 1кк/с... Эх!
>>2158834 >что-нибудь почитать по авалонии Доки. Художественной литературы по ней не завезли. >>2158749 Интересный вопрос, найдешь ответ - отпишись. Memory, например хранит в себе ссылку на сурс. А еще, если нужен кусок массива, то есть ArraySegment. >>2158713 >удаляя сущность Б, как реализовать удаление/или обнуление нужного поля в сущности А Поведение настраивается в модельбилдере через метод OnDelete.
>>2158749 Нашел такое https://adamsitnik.com/Span/ пишет >The new GC knows how to deal with Span, the reference and byteOffset fields got merged into an interior pointer. New GC is aware of the fact that it’s merged reference and it has the native support for updating this reference when it’s needed during the Compact phase of the garbage collection (when the underlying object like array is moved, the reference needs to be updated, the offset needs to remain untouched). Так что должно работать. Ну а в случае с ансейф и указателем, вся работа ложится на тебя, надо запинить кусок памяти или как оно там делается.
>>2158865 Тебя вообще метод Page_Render не смущает? в аспе страница рендериться полностью на сервере, ты хотя бы в документацию заглянул бы, если не понимаешь нихера тогда хуле тут петушишся? тебе делать что ли нечего?
Я заебался делат в каждом публичном методе проверки. Суть, хочу запилить вот такую хуйню: void SellBeer([NotNull, Requeir(age>21)]User user)
Ну, т.е. вы поняли как оно должно работать я думаю. Так вот. В .net есть ValidationAttribute но с ним есть проблема. Чтобы проверить что пришедший объект - валиден, я должен буду таки вызвать метод Validate. Т.е. все равно каждый публичный метод нужно будет этим говном засорять. Собственно. Вопрос к гуру. Есть ли в .net какой-то способ перехватить вызов метода провалидировать на мои атрибуты и затем либо кинуть ошибку с указанием места где вызывался метод до перехвата, либо - продолжить выполнение уже зная что объект валиден?
Пишу ради обучения рендер движок, цель познать "глубину" шарпа и научится писать высокопроизводительный код поэтому весь смысл именно в перформансе. Сейчас хочу прикрутить многопоточное исполнение и встал вопрос как это лучше сделать, к примеру есть десяток модулей которые что-то там считают, но никак друг другу не мешаю, самый тупой способ это в Task их засунуть и погнали, работает, считает, но ведь при 100 фпс, это 1000 Task объектов которые затем утилизируются GC и не говоря уже о времени создании объекта и прочих накладных расходах которые я и хочу избежать. Вот и встает вопрос как это сделать? Написать собственный модуль на Thread? Может кто подкинет референсы или примеры подобных реализации чтобы не городить с нуля велосипед, а просто его "перебрать".
>>2159361 - во-первых, как ты собрался валидировать сложные случаи, такие как совпадение пароля или уникальность имени? - ты засоряешь класс валидационными атрибутами - против notnull есть Nullable в csproj
Есть FluentValidation. На асп не надо вызывать метод Validate, а проверку результата валидации можно запихнуть в глобальный IActionFilter и убрать дублирование.
>>2159383 DirectX 11 пока, дальше попробую перейти на вулкан, я уже пробовал его, но с ним возникли проблемы, на моем компе отлично работает, а на ноуте тупо черный экран поэтому решил идти от малого. Меня не интересует пока многопоточный рендер, я хочу пока понять как лучше исполнять логику по которой уже идет рендер. К примеру жму на кнопочку и добавляется 1000 объектов, так вот для них надо просчитать различные параметры которые считаются в модулях друг за другом сейчас в одном потоке, а я хочу делать так чтобы они параллельно считались и при конкретном количестве потоков который я укажу. Все это можно сделать через таски и обычную логику if, но таски же не бесплатные особенно если дергать их тысячу раз в секунду. Вот я и думаю как грамотно реализовать логику расчетов без лишнего оверхеда.
>>2159380 Ты очевидно хуево изучил матчасть. Тут проблема далеко не в нагрузке на GC и тасках. Это раз. Два. Рендер-движок на шарпе. Ну охуеть, блядь. Бери плюсы и не еби мозг ни себе, ни людям.
>>2159415 Кек. Еще и таски для CPU-bound собрался использовать. Говорю, иди курить матчасть. Небось и расчеты проводишь на CPU а в железяку только результат посылаешь. Кекус. Да, я говорю про курение матчасти, потому что это не то что парой ответов можно объяснить.
>>2158676 Ну так а как ты юзеров различаешь-то, по какому признаку? Создай в базе уникальный констрейт на это тпризнак да и все. Что-то ты там мутишь, ну или я не понял что ты делаешь.
>>2159561 Ну, пользователей-то я отличаю по логину, для входа используется логин-пароль. Пакет протокола выглядит как: [длина(4байта),тип_cобщения(1 байт),[тело](0-2 147 483 646 байт)] для наглядности логин: [длина,тип_cобщения,[логин]/0[пароль]/0] В случае если не было такого сообщения первым доставлено - мы на другие валидные сообщения просто отдаем [0,0,0,0x02,0xFF,КодОшибки] Но если два соединения присылают одинаковый пакет - я не знаю на каком из уровней и как я должен отфутболить одного из. Ведь как оно выглядит с точки зрения алгоритма: Сервер ждет подключения -> подключение получено -> создали сокет -> сконфигурировали объект сессии -> запустили sessionLoop -> при получении очередного валидного сообщения - отдаем диспечеру, он там в зависимости от типа пакета - отдает обработчикам, те формируют пакет для отпраки. Эти обработчики ничего не знают о самом сервере, плюс если бы знали - нет гарантии все равно что сессия почти одновременно несколько TCP-соединений не залогинятся(т.е. на момент когда они пришли в обработчик-сервер еще не знает что это вот этот хуй, а к моменту как вышли - они имеют одинаковых пользователей) Может быть стало понятнее.
Знаю базовую хуйню типа условий, функций, ООП. Не более. Недавно сделал прогу в WPF которая автоматизирует перевод текста с использованием апишек.
Задачки по учебникам мне кажутся пиздец какими примитивными, хочу на реальных задачах скилл надрачивать. Посоветуйте чего-нибудь пожалуйста, только не слишком сложного
>>2159790 Я бы посоветовал развивать имеющуюся программу. Тогда, когда она будет расти, ту увидишь насколько криво она сделана и как тяжело в нее добавлять/изменять функционал. Для начала, если еще не сделано, добавь выбор языка, поддержку разных переводчиков, перевод текста из файла, добавь визуальных прибамбасов (анимации, темы), добавь поддержку разных языков интерфейса и т.д. и т.п.
>>2160031 >ПХП гораздо лучше вашего АСП Хуйню не неси, няша. Даже обмазавшись фреймворками ПХП просасывает тому что АСП делает из коробки, пусть это тоже фреймворку. Другое дело что у майков ебанутое стремление захватить весь мир и не меньше. Блядь, уже, С++ кажется легковеснее и проще в понимании чем все обилее того говна что наделали майки. Тут тебе и сам .net который нужно понимать, иначе ты прострелишь себе колени. И десктоп. И хамарин купили. И пытаются мобилки теребить. И облака. И вообще, скоро порог входа будет такой, что джуны будут думать: Нахуй это говно... И проблема-то в том, что когда ищут .net-чика, от него начинают требовать все это говно. Хорошо людям которые как я - застали времена когда был ASP и формы и ничего больше не было и можно было постепенно учиться, накопив опыт, понимать полет мысли мелкомягких становится легче. Но я представляю, что начни я знакомство даже с текущего состояния - я бы просто пошел как раз какой-нибудь ПХП или питухон учить.
Во что лучше вкатиться студентоте 2го курса: шарп или плюсы? Опыт работы нулевой, но знаю основы и шарпа и плюсов. Прочекав вакансии на хх, я так и не понял что всё таки будет перспективнее в плане трудоустройства и зп. Помогите пожалуйста не проебаться с выбором
>>2160145 Я просто не хочу остаться с нихуя за спиной к концу 4 курса, ибо потом придётся в попыхах что-то искать и учить. Да и обучение у меня чиловое, хоть и не совсем шаражный вуз
>>2160145 Нахер программисту диплом в 2к21 году, тем более средневуза, тем более вероятно не по прямой специальности? Ему всю оставшуюся жизнь либо кнопки двигать, либо Manager'ов от Person'ов наследовать и Order'ы Customer'ам добавлять. Для этого 5 лет учиться не нужно. Свежий диплом даёт +5% к вероятности трудоустройства на первую работу. Свежий диплом по специальности обычновуза даст ну может быть +20%. Но это просто значит, что меньше собеседований придётся пройти, чтобы устроиться. Так-то и михалычи с заводов и мутные челы вообще без ВО спокойно также будут вкатываться после курсов или домашнего обучения. С опытом работы 1+ год коммерческой разработки, значимость диплома становится строго нулевой. Нет, всегда будут заводы и гос. конторы, где не пропустят без диплома, но ты и сам туда не пойдёшь.
>>2160401 1000-й пост в треде, но все сидят лапки кверху. Этот тред отлично показывает отличие шарпистов от программистов на других языках. Возьмите питониста, или программиста на go. Это же почти всегда кабанистые пробивные ребята, живчики, бодряки, которые не могут сидеть на месте, которые всегда активны, открыты, пассионарны. Как можно допустить, чтобы их дело, в которое они вложили время и частичку себя в свои посты, чтобы оно начало тонуть и покрываться илом? Нет. Возьмите плюсовика. Да он себе на уме, он замкнут в своём мире, он интроверт, но у него всё налажено будет и настроено как часы. Тред чуть ли не сам будет перекатываться. Плюсовик чувствует своё превосходство над остальными. Зачастую обоснованное. И не допустит, чтобы что-то могло набросить тень на это дело. Но шарписты - это всегда пассивы, они так и не выросли из под опеки матери, они привыкли, что за них всё решают. Препятствие, проблема, неудобство? Надо просто подождать, потерпеть, там же видят, что я страдаю, там разберутся. Шарп отлично сочетается с русским вековым глубинным менталитетом, с незримым, но живущим в сердцах имманентным господским сапогом, который тут принято тихо и про себя винить за все проблемы и целовать и благодарить за любое достижение, но главное, пока сапог не поддавит, пока не подпнёт, лучше не высовываться.
>>2160401 Ну хуй знает. Я вот с дипломом не проходил никаких многих собеседований. Откликался, приходил, меня спрашивали: когда готов выходить работать. Диплом МухГу по ПРИКЛАДНОЙ ИНФОРМАТИКЕ, лол, кому расскажешь - все думают что там учат в 1С отчеты составлять, хотя лично у нас там были шарпы, статистика и мат. моделирование, а на старших курсах всякая хитрая хуйня по оптимизации запросов. Так вот. На начальном этапе - просто сам факт диплома - пиздец как облегчил выбор первой работы и вместо того чтобы идти куда возьмут и ПОЛУЧАТЬ КОМЕРЧЕСКИЙ ОПЫТ, можно было выбрать место где получше, там таки получить этот злоебучий опыт, а потом уже этот про этот опыт на других собесах рассказывать. Ну и да, лично я сколько видел людей что устраиваются: те кто даже хуевую вышку не получил - страдают какой-то хуйней на работе: Я не умею работать с этим стеком, но вместо того чтобы разобраться пока идет испытательный срок - буду ходить-бродить, страдать хуйней и на весь оффис обсуждать по телефону, на что же я первую свою программисткую ЗП потрачу; буду задавать тупые вопросы, отвлекая тех кто работает, даже не потратив минуту на гугление; буду жаловаться что не знаю как студию установить или докер, хотя тебе, блядь, скинули давно составленный мануал, который вот из-за подобных дебилов пришлось составить и там буквально по шагам написано что делать нужно; ну и т.д. Челы с дипломом такой хуйне почему-то меньше подвержены.
>>2160615 >были шарпы Ты даже представить не можешь, насколько нелепо это звучит. Что было-то 1 семестр, где дед раз в неделю читал лекцию вперемешку с историями из жизни? Где был 1 семинар в неделю с домашками уровня школьных домашек из 7 класса по сортировке пузырьками? Даже если я десятикратно утрировал, то всё равно это нихуя не имеет отношения к коммерческим навыкам. И по сути своими 4-6 годами просиживания штанов, единственное, что ты доказал работодателю, что тебе интересно айти, что ты будешь пытаться, что ты не вкатыш, который может через неделю свалить обратно на завод.
>можно было выбрать место где получше Что-то я не понял, ты в фаанге что ли работаешь? Или всё таки на заводе местного пединороса? Чем это место выгодно отличалось от других, и почему там не драли тебя на собесе во все дыры, чтобы из 200 человек на место выбрать лучшего?
>факт диплома - пиздец как облегчил выбор первой работы Тебе наверное просто повезло, а так ты говоришь странные вещи. Для работодателя - ты просто джун в любом случае. Никто тебе не доверит писать что-то сложное и хитрое. Ты можешь прийти с дипломом, где ты написал компилятор для камон лиспа с виртуальной машиной. Но бизнесу надо кнопку подвинуть и новый столбец в базу добавить. А тем, кто занимается реальным RnD, им нах не нужен среднетроечниr из МухГУ, они возьмут челиков с PhD с 10+ опытом или со своими популярными опенсорс проектами на тему. Ты сам наверное уже понимаешь, чем айти конторы занимаются, сам-то подумай, нах им твоя вышка, это не навык. Ну этот как на вакансии грузчика отдавать предпочтение качку. Вроде как он сильный и лучше будет грузить. Ну как бы там ещё и выносливость нужна, и в газель надо втроем помещаться, и со стропами надо уметь работать, и шкаф надо уметь разбирать и диван, и пленкой всё обматывать, и задачу тетриса решать с большими коробками внутри кузова газели. И вполне тщедушный колдырь или кабанистый таджик окажутся лучше качка.
>Я не умею работать с этим стеком Такие вещи обычно на собеседовании спрашивают. Как можно нанять водителя мотоцикла на автобус или бульдозер? Бред какой-то.
>не знаю как студию установить Чувак, ты похоже фантазируешь, и нигде ты в жизни не работал.
>>2160624 В питоне пишешь насколько я помню просто Input("Введите сюда свою хуйню") И он выведет текст внутри скобок как приглашение к вводу, а можно и пустым это поле просто оставить. То есть всё компактно и в одной строке
Есть тут кабанчики, которые работают с микросервисной архитектурой? Интересует вопрос контейнеризации и настройки локальной среды под дебаг компонентов, как единого целого. Docker как я понимаю, самый популярный, но он активно абузиться коллегами из соседних цехов, что насчет мелкомягкого стэка? Или возможно можете дать общие советы - env variables конфиг, что угодно. Если что, работаю с Azure
>>2160746 >PaaS ветвь эволюции. В кровавом тырпрайзе проекты динамично развиваются и распухают со скоростью света (особенно, если над проектом 30+ девов сидят) >>2160751 видосики, эх. Я бы лучше почитал чего нибудь. Так или иначе, спасибо
>>2160809 >уметь в IL Конечно должен. Как диды завещали - начинать с низкоуровневых и переходить к высокоуровневым. Когда хотя бы ИМ на IL напишешь, переходи к решетками. И не забудь в резюме указать, что знаешь IL (можешь написать, что assembler). Каждый раз проигрываю, когда вижу в резюме джунов знанение ASM и с подливой, когда у мидла
>>2160809 > Должен ли C# кодер уметь в IL? Должен знать, как именно в IL разворачиваются те или иные блоки кода на шарпе, чтобы мочь грамотно оптимизировать свой код. > Можно ли вообще на нём писать и компилировать это? Разумеется нет, не можно и не нужно. Для сравнения приведу тебе в пример машину с коробкой-механикой. Педали газа и сцепления, ручка переключения передач - это шарп. Ты сидишь в салоне и управляешь машиной, кодя на шарпе. Шестерни, шкворни и сухари внизу - это IL, он работает сам, принимая твои сигналы, которые ты в шарпе накодил, тебе лезть туда не нужно. Твоя задача - выжать педаль сцепления до упора перед переключением передачи, плавно отпустить, одновременно подгазовывая второй ногой. Ты же задаёшь вопрос > как бы мне залезть руками в коробку и пальцами передвигать шестерни?
>>2160809 >Должен ли C# кодер уметь в IL? Читать минимально бывает полезно, чтобы не удивляться тому, как происходит lowering исходного кода при избавлении от синтаксического сахара при компиляции. Ну и знать, когда неявные аллокации происходят, но тут есть куча разных статических анализаторов, которые сами тебе подсветят все такие места.
>Можно ли вообще на нём писать и компилировать это? можно, например, через Reflection.Emit, но это ебучий хардкор и нужно только для reflection-heavy либ типа всяких сериализаторов, моков и прочего. Да и с развитием api Linq.Expressions и недавним появлением source generators надобность ещё сильнее снизилась.
>Есть ли какие-то годные гайды? едва ли, слишком нишевая херня.
>>2161087 В резюме просто язык пишет только домашний комнатный растительный укатыш, которому ничего не светит. В резюме нужно указывать пруф, что ты знаешь этот язык. Самый понятный пруф - это реальный предыдущий опыт коммерческой разработки. Либо же у тебя есть пет-проект на этом языке, со ссылкой на то, где его можно посмотреть живьём или хотя бы на гит. Может быть ссылку на именной профиль на фриланс бирже с отзывами, рейтингом, портфолио. Ну или хотя бы сертификат о прохождении курса. Если ничего этого нет, то для работодателя ты не знаешь язык. Если ты налепил языков без подобных пруфов, то скорее всего тебя сразу в корзину отправят, как дауна.
>>2161150 >пет-проект >сертификат о прохождении курса >всратая пикча из говнокурсов такое ощущение, что в сисярп треде прямиком из /b/ идут потоки разумистов. Проигрываю каждый раз с подливой от таких постов
>>2161237 циннаризин перед употреблением проконсультируйтесь с врачом >>2161453 Чего блять? Нахрена эти ссылки, думаешь кто-то будет лапатить эти тысячи строк? >Кококонпелятор какую-то хуйню пишет, заебал уже. Научись читать, и сможешь большую часть ошибок исправить сам.
>>2161489 >Нахрена эти ссылки Чтобы вы поколупались, и поняли что оно делает, и как его грамотно пришпандорить. Сорец же открыт. >думаешь кто-то будет лапатить эти тысячи строк? А хуле? Кому делать нехуй - добро пожаловать. Алсо, могу проплатить ваш говнокодинг - криптой.
>Научись читать, и сможешь большую часть ошибок исправить сам. Он меня уже заебал этот конпелятор. Одну ошибку исправляешь, другая вылазит, потом треться, пятая, стопятсотпятидесятая. Куча вкладок по каждой хуйне открывать - проц не выдерживает, начинает свистеть, и ноут вырубается в такую жару. Браузер жрёт 3 гига оперативы, из-за моего гуглежа. А на самом деле, там походу пару строк надо вхуярить годно, и заебись. Ну так хули я ебусь, блядь?!
>>2160085 >с плюсами только на завод/геймдев Как минимум еще есть касперский, хуавей и куча других контор, которые занимаются системщиной/безопасностью/сетями/видеонаблюдением. И еще есть компиляторы в том же Intel/Samsung/Huawei/МЦСТ/ИСП РАН. И еще есть HFT. Если чел скилловый и учится в годном вузе, то лучше попытаться в системщину вкатываться, у них с ростом опыта задачи становятся гораздо интереснее в отличие от грузчиков джейсонов.
>>2160652 >Выпускник вуза без опыта работы мин в год это уже старородящий В нормальном вузе, когда на 3-4 курсе идет именно обучение по специальности и преподы хоть чему-то пытаются учить, ты быстро нахватаешься долгов и отправишься в академ или вовсе отчислишься. Вообще совмещать работу и учебу крайне тяжело и скорее даже невозможно. Пойдешь на работу, кабан будет требовать делать таски хотя бы 30 часов в неделю, а у тебя в шараге семинары, контрольные, лабы, курсачи. И при этом пары каждый день в разное время могут быть поставлены. Как ты собираешься работать в таком режиме?
>>2161511 > именно обучение по специальности и преподы хоть чему-то пытаются учить
= старые пердуны-неудачники только в лаба5 доходят до циклов.
И нахуй этот ВУЗ вообще нужон? В идеале, конечно КРУТИТЬСЯ, подкармливать преподов и таки получить говнобумажку. Благо, даже 500 джуновских баксов ЗП в месяц хватит, чтобы накормить почти все предметы.
>>2161519 >даже 500 джуновских баксов ЗП в месяц хватит, чтобы накормить почти все предметы Ты в какой-то параше учился, да? У нас за попытку подкормить препода ты нахуй улетишь без права восстановления, лол.
>>2161511 >кабан будет требовать делать таски хотя бы 30 часов в неделю Да, это минимум, иначе какой вообще смысл давать тебе какие-то задачи. Когда они сделаны будут? А ведь ты ещё и джун, которого надо учить, и который не факт что даже самые простые таски сможет сделать.
>>2161519 Вот этот >>2161524 конечно долбоёб. Но надо уметь давать, просто так, если ты суешь деньгу и говоришь: "тут 10к, поставьте тройку", то конечно шансов нет. Но и 500 баксов едва ли хватит чтобы даже один предмет закрыть. Может в мухосранях другие цены, но в ДС есть 2 схемы. Либо ты берешь штучно, но сразу огромным куском, обычно это 2-3 тыс. баксов и больше. В принципе подъёмная сумма даже для семей со средним достатком для разового спасения долбоеба от отчисления и армейки. Либо же берут по 15-30 тыс. рублей, но подаётся это как репетиторство. Туда в принципе может и полгруппы ходить. Брать маленькие суммы разово - просто бессмыслица, это того не стоит. Брать копейки массово - это просто стрёмно и совсем зашквар, коллеги будут шлюхой считать.
Народ что делать если программирование интересно но лень что то смотреть и читать ? Как себя перебороть на то что " нужно учить читать и писать код " ??? Я хочу делать игры но когда начинаю смотреть видосы на Ютубе уроки по шарпу то становится скучно и максимум можно так посмотреть пару видосы . Что делать ?
>>2161886 В русскоязычном сегментет трубы есть только один достойный канал о программммировании эхтримкодетв. >>2161875 Давай вместе делать попенсорсную имиджборду inb4: что такое имиджборда нового поколения (медленная, тяжеловесная, работающая неизвестно как с кривой архитектурой и тысячей багов), у меня уже даже базовая конструкция есть. А в гейдеве на шарпе тебе кроме мобильных дрочилен ничего не светит.
>>2161875 Хочется ответить тебе "нитвае". Но ты конечно и ебу дал, с видосов на ютубе начинать. Сейчас все так "стартуют"? Понятно, почему жунов отпинывают тогда.
Выглядит так, как буд-то тебе только геймдизайн инетресен, а не погроммирование. Ну так и двигайся в направлении геймдизайна, если уверен в себе. Хотя думаю крудошлепом работу намного легче найти, но ты ведь действительно хочешь связать свою жизнь с лутбоксами автокликерами играми?
>>2160077 ебать выдул подсос мелкомягких. Расталкую на пальцах, почему пыха (а конкретней фрейморки Yi/lara) ссут на ебало всему тырпрайзу мелкософта: 1. Интерпритируемый язык. Никаких компиляций, работает в 10 раз быстрее MSIL компилированного говна; 2. Рынок. Тренды говорят, что пыха проседает, это делеко не так. # сосут полувялого у всех подряд - часть на десктопе плавает и не тонет, там же и xamarin и кусочек веба в виде ASP (ныне Core). Даже какой-то тухлый геймдев затисался по созданию игр для детей По итогу рынок веба все еще держит пыха; 3. Порог вхождения. Твои слезы тому подтверждения; 4. Зарплатный уровень - веб богам платят больше, чем десктоп/мобайл обезьянам; 5. Пыху не преподают в шарагах и универах, это символ того, что язык не скатился в кал Я бы и дальше раскатал сисярп гибонов по перфомансу и бенчмаркам, но хули толку, все равно хуй кто поймет
>>2162407 даб даб да. Всегда выбираю пхп для перфоманса. Вчера посоветовал пыху для ебмедеда, так железячники втолкнули всю логику еще и в качестве истер егг и игру "чисти вилкой говно". Работы так много, что ее даже делать не надо. Приходишь в первый раб день, а тебе тимлид говорит: "ты сходи лучше кофе попей, все равно на вордпрессе все есть" Слишком толсто. Пробуй тоньше%
>>2162583 Двачую. Шарп становится этаким швейцарским ножом. Хорошо иметь в хозяйстве и побаловаться на досуге. Но это хомяковая поделка, а не профессиональный инструмент. Всего понемногу. Но своей ниши нет. Ентерпрайз - отсос у жабы. Геймдев - отсос у С++. Мобилки - отсос у колтина. Веб - ну ты понял. Отличный язык для преподавания студентам и выполнения лаб. Но не лучший выбор для работы или для бизнеса.
>>2163301 > Но не лучший выбор для работы или для бизнеса. Вынужден с тобою согласиться. Джве недели пилил пет-прожект на этом вашем шарпе. До этого джва года выбирал ЮИ-фреймворк, потому что дефолтные поддерживаемые МС фреймворки, формы и ВПФ - не кроссплатформа. Три раза начинал пилить и спотыкался об непреодолимые (в рамках выбранной либы) препятствия. Вот недавно выбрал Eto.Forms и тоже наткнулся на несколько подводных камней.
Начинаю всерьёз задумываться о возвращении на лазарус-фрипаскаль с его отточенной до мелочей и обладающей кучей мокрописек (в отм числе портированных с дельфи ильхама), но блять, настолько неудобно будет в этом говне мамонта после лямбд, анонимных методов, линка. Сука.
>>2162560 >>2162582 два сисярп гибона пытаются процеровать манямир на реальность. Хочу вас огорчить - вы закончите свою шарагу и нахуй никому не будете нужны. Факт. Потом поплачете пару месяцев в бугурт треде, продолжая поедать родительские харчи и попиздуете в мак/сервисный центр крутить винтики и чистить пыль в ноутах (в лучшем случае). Если будет хоть капля мозгов - начнете учить технологию, за которую можно зарабатывать копейку. Хотя по сабжу вы просто тупорылые и не понимаете, что в треде 99% вкатышей и таких же как и вы студентов, которые мечтают о кровавом интерпрайзе и 300к
>>2163394 сынок, ты можешь сколь угодно рисовать хуйню из своего маня-мирка, но от правды и от headhunter не убежишь. Ваш мелкософтовский сисярп уже 10 лет сосет бибу и вот вот выстрелит. Уже и опенсоурс и линух поддерживает, и в IDE решарп реализовали, все никак не выстреливает. Ибо никому это говно не нужно. И можешь не оправдываться лишний раз, мы оба знаем правду
>Ентерпрайз - отсос у жабы. На C# можно использовать абсолютно любую технологию, которую используют на Java. И абсолютно похуй на чем она написана, Java, Go, Python, да хоть NodeJS.
>Геймдев - отсос у С++. Движки пишут только студенты, но даже здесь много низкоуровневых либ портировали на C#. Любой популярный движок поддерживает C#. Как раз на С++ желания писать игры вообще нет, из-за чего популярен так C# или тот же Lua. В геймдеве вообще все равно на каком языке писать скрипты, лишь бы язык не ебал мозг.
>Мобилки - отсос у колтина. Давно на Kotlin научились делать игры? Или писать под iOS? Причем различия минимальные в разработке обычных приложений, так как SDK общее. Или вы пилите, скажем AR на Kotlin, а потом нанимаете того, кто перепишет на Swift/Objective-C?
>Отличный язык для преподавания студентам и выполнения лаб. В вузах моего города преподают на Python. C#/Java только как дополнительное направление по желанию.
>Но не лучший выбор для работы или для бизнеса. Для работы годится даже Python, какой бы он дырявый и тормозной не был.
>>2163521 Если длина числовой части всегда одинаковая, то через сабстринг. Если разная, то считаешь сколько цифр в начале через char.IsDigit, а потом снова через сабстринг.
Собираюсь вкатываться. Понимание программирования есть, так что не полный 0. Посоветуйте книгу на русском для вката. Слышал про троелсена и "Библия С#", что думаете насчет этих книг?
>>2163912 >Слышал про А посмотреть в начало треда никак? Особенно интересен пост №2. Да и в треде есть упоминание обеих. А еще, внезапно, ты можешь попробовать и ту и другую.
>>2163929 Я чекнул что пишут в треде насчет этих книг. Хотелось бы получить краткий ответ "Такая -то книга норм, а это вот говно потому то". >можешь попробовать Хочется точно быть уверенным что источник нормальный и без нервов изучать его.
Вопрос : как я могу задавать контексту какую конкретно строку подключения я хочу использовать
Дано : У меня есть ентити фреймворк и скл-лайт, в скл-лайт у меня токены и строки подключения к удалёнными базам данных, их тысячи и они могут добавляться, изменятся и удалятся, схемы удаленных баз идентичны, данные разные
Пример задачи: администратор с своим токеном определенного помещения удалил пользователя, я по токену беру соответственную строки подключения до соответственной базы данных и удаляю из нее пользователю.
>>2136888 Пиши на WinForms или WPF. Если хочешь окно для вывода какой-то кастомной графики, подключи DirectX или OpenGL (для openGL есть обёртка на C# - OpenTK). Ты как-то детальнее задачу опиши что ли.
>>2164022 у меня в общем-то так же я только не понимаю как именно мне передать строк? и что значит пересоздавать контекст? так же как я выше делал ты это иммеешь ввиду?
>>2164034 По изначальному коду нефига непонятно. В конструктор контекста добавь строку, сохрани результат в переменную класса и используй в том методе.
Что программировать то еб вашу мать? Услышал где-то про парня который год читал книги по программированию и даже иде не открывал. У меня конечно не такой запущенный случай, но я не знаю как практиковаться. Есть допустим две области в которых я хотел бы что-то поделать - геймдев и бекенд, но как я могу просто открыть юнити и начать что-то делать? Это же всё пиздец комплексно и сложно
>>2164250 >геймдев Т.к. ты спрашиваешь как программист, а не геймдизайнер Изи: Качаешь юньку и пробуешь по урокам делать платформер/таврдефенс/три в ряд Нормал: берешь sdl/sfml и пытаешься сделать платфромер/таврдифенс/три в ряд Хард: берешь директикс/вулкан/опенгл и хуячишь 3д шутер от первого лица
>бекенд изи: делаешь менеджер задач(туду лист, но с пользователями и возможностью не просто поставить задчу, но и даты там проставить, может быть вложения какие-то,), чтобы усложнить - делаешь какие-нибудь уведомления, допустим на почту пусть приходит сообщение что вот, сука такая, тебе завтра к врачу
нормал: делаешь бекенд для абстрактного интернет магазина(товары, категории, теги, купоны, промокоды, заказы и это вот все, плюс пользователи, которым можно отправлять уведомления о том что какие-то товары сейчас со скидкой), чтобы усложнить чутка - свою CRM и сбор статистики
хард: то же что и нормал - но на микросервисах(хотя бы 3-4 выдели) с балансировщиками нагрузки, автоподнятием новых сервисов при больших нагрузках, распределенными бд их репликацией и т.д.
>>2164250 Хм. Я тут подумал что может быть дал лихо даже с изи в плане бекенда. Там так-то изначально хорошо-бы написать свой простой консольный чатик на сокетах, чтобы банально понимать как оно работает. Ну, собственно что тебе нужно: придумать протокол прикладного уровня, почитать про сокеты, сделать на основе предыдущих шагов клиент и сервер.
>>2164295 > изи: > делаешь менеджер задач О, я как раз делаю КРУД-приложуху, типа такого. Менеджер ключевых документов, токенов и прочей криптоинфраструктуры. В планах наполеоновских, чтобы там значит вести учёт всего этого и распечатывать журналы по утверждённым ФСБКГБ формам. Джва месяца делаю. Заебался. Но буст скилла прям уверенный. мимо
Задача: нужно сделать парсер, который ищет файлы на компьютере по ключевым словам и выводит в таблицу из следующих столбцов: название файла, язык, айди, поисковое слово, описание.
Еще можно отмечать фильтр "по слову, по фразе, полное совпадение". Файлы могут лежать в разных папках, но "корневая" директория у них одна.
Насчет разбиения по столбцам попробую сам допереть, у меня основной вопрос: как сделать этот злоебучий поиск, и желательно чтобы он был быстрый? Ведь это не по имени файла поиск, а именно сука по ключевым фразам внутри этого файла. Есть может гайды какие похожие? Помогите пожалуйста!
>>2165609 Если ключевое слово может быть любым то в любом случае придется все проверять. Ищи алгоритмы для быстрого поиска подстроки и вперед, тестируй. Еще можно попробовать определять является файл текстовым, но из описания не понятно, на до ли искать слова бинарниках например.
Объясните как тупому. Возьмем классический пример сайт-блог с постами и комментами. И добавим туда юзеров, модеров да гостей с автором до кучи. Так вот у всех у них при заходе на страницу поста немного разный интерфейс: у кого то есть кнопка редактирования, у когото - нет, у кто-то может банить, удалять, кто-то нет. и т.д. Очевидно каждый раз генерировать страницу разором с дрочкой БД и прочего не круто. В связи с этим вопрос как это орканизуют сеньоры? ЖС-ом добавлять нужные контролы на стороне клиента? А если у него NoJS ему бибу сосать?
>>2165712 Для этого и придумали MVVM. Есть несколько видов, есть модель и есть вид-модель, которая организует выдачу видов по разным критериям и увязку с моделью.
>>2165788 Не понимат. В АСП же МВЦ, где контроллер выбирает вид, кстати, ни разу не слышал, чтобы в мввм вм выбирала вью, это как вообще? Это раз. А во-вторых как это решает проблему? Для каждого юзера свой кэш? Так лучше уж каждый раз генерировать ответ заново тогда. Вот возьмем двач, он вообще отдает статичные хтмл-страницы, но ведь у модеров есть кнопки удаления/бана, показ айпишников и т.д. Для них серв генерирует другие ответы?
>>2165808 В мвц ты можешь или проверять роль по условию и рендерить нужный компонент, или использовать разное view в зависимости от роли на сервере, или при большой разнице использовать разные контроллеры. Кешировать данные можешь отдельно от view.
>>2165808 Шо ты блядь такое несешь? У тебя в запросе кука/токен/иной способ идентификации. Сервер просто спарсил куку/токен/мать твю понял что ты за хуй и зароутил тебя куда надо на основе настроек сервера, отдал тебе нужную страничку. Это в классическом примере. В современных реалиях, когда все уже на стороне JS делается - уже клиент смотрит, понимает что за юзер и рисует для разных типов юзеров разное. Все.
Препод предложил работу на Java, стоит ли перекатываться и получать первый опыт? В городе по C# работы нет от словы совсем, пару вакансий по Java проплывают и то на мидла, а тут коммерческий опыт + будет платить, как от part-time джуна (я так понял в районе 15-20к). Что скажете?
>>2166505 >>2166361 вопрос к тому, что по C# работы я вообще не вижу (по крайней мере на данный момент), а вот в Java успею вкатиться, т.к. вакансии есть, хоть и не Junior. У нас просто на потоке все или в Python или в NodeJs катят, никому Java и C# не интересны, я пожалуй единственный, кто хоть как-то разбирается. Спрашивал у препода насчет работы на C# - он говорит, что или Java или второй раз не предлогаю. Обидно то, что уже несколько пет проектов на C# и потратил время, чтобы по итогу уйти в другую технологию, после которой уже не будет пути назад
>>2166947 Ну смотри, свичнуться с джавы в шарпы - легко. С шарпов в джаву - сложнее, но можно. Если в твоем регионе нет вакансий на шарп - то зачем вообще думать? Бери что дают. Получай опыт реальной работы. В любом случае через годика 2-3 если у тебя нормальные проекты на джаве будут и внезапно возникнет на горизонте вакансия на шарпах, то в 95% случаев никто не будет против того что ты с джавы на шарп перешел. По крайней мере если это вакансия в крупную контору. Потому что опыт программиста далеко не на стеке технологий завязан. Он строится на понимании общих принципов построения приложения, а они мало зависят от языка. Конечно, есть нюансы, есть подводные камни, но если мы поднимаемся на уровень архитектуры - там вообще не важно, на каком там конкрентом языке и какими технологиями что реализовано, просто их выбор идет из соображений на чем проще эту хуйню сделать в данном кейсе, вот и все.
>>2167473 Уже начал разбираться с Java, все не так плохо, как писали в треде. И врядли уже вернусь, если вкачусь в Full-Time (о чем уже думаю). Единственное, о чем жалею, что потратил около 2 лет на изучение C#, хотя мог бы начать не с интерна, а с джуна