Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1. Ресурсы:
— https://dotnet.microsoft.com/learn
— https://docs.microsoft.com/ru-ru/dotnet/csharp/
— https://metanit.com/
2. Онлайн-компиляторы:
— https://ideone.com/
— https://dotnetfiddle.net/
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, но функциональность там достаточно сильно урезана.
6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin
Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
Текст шапки: https://pastebin.com/pbK8CGqw
— 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.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
— 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.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
У Рихтера много информации уже неактуально. Сборка (assembly) - это ехе или dll файл, одна штука. PDB - можешь удалить, там отладочная инфа для дебагера. config - твой App.config - не часть сборки.
та я понимаю, что exe файл мой это сборка, я вот не понял типа - вот все классы и формы у меня находятся в сборке, то бишь в exe файле, то есть сборка состоит не из 1 файла, а у него написано что только из 1 может состоять (если компиляция в вижуал студио). Значит это неактуальная инфа прост (про колво файлов в сборке)?
>Значит это неактуальная инфа прост (про колво файлов в сборке)?
Актуальная, у тебя один файл после компиляции.
И ты билдишь с /t:module? Он просто на выходе создаст exe и netmodule, которые задашь в /out.
csc.exe/al.exe - неактуально.
Если книга вышла до 2019, то уже не актуальна. Я сам наступил на грабли, когда пытался учиться по книге 2018 года. Там даже примеры уже не компилируются, потому что всё поменялось.
Это хитрые барыги наверное переиздают несколько раз книгу с новой датой.
Настраиваешь свой ci/cd с блекджеком и шлюхами. Один из билд степов делаешь для накатки дб миграций. Забываешь про кнопки rebuild/build в ide. Сиквел хранишь в сиквел файлах, оф коз.
Вебформы не скомпилить в актуальной иде, пруф ми ронг.
Падажи, миграции блять, ci/cd блять. Вот надо мне выполнить context.Govnos.FromSqlRaw(srting), какие мои деqствия?
Я тебе предложил из говна сделать говно в красивой обертке. От миграций ты все равно не избавишься. Начни с чтения sql файла, добавь миграции, добавь билд тулз (Cake/Nuke), добавь билд агента, добавь деплой на свой энв.
В 2017 иной менеджер создания проекта и саму начинку проектов перепилили под Core. Новичок в этом не разбирается и ошибочно создаст проект с Core, где ничего нет, вместо старого, но рабочего .Net Framework 4.7.
Понятно, что опытный разработчики вручную может подшаманить проект, но ему-то как раз не нужно читать книги для новичков.
> От миграций ты все равно не избавишься.
Почему? А если я даппером тяну из базы, которая вообще к моему проекту отношения не имеет? Миграции к моему вопросу не пришей кобыле хвост.
>чтения sql файла
Ну допустим. Засуну я их в ресурсы приложения, а писать-то как, в студии ни автодополнений, ни форматирования и ебля с экранированием.
>добавь миграции, добавь билд тулз (Cake/Nuke), добавь билд агента, добавь деплой на свой энв.
Подвернуть штаны и налить смузи не надо? Все эти вещи ортоганальны тому о чем я спрашиваю.
>А если я даппером тяну из базы, которая вообще к моему проекту отношения не имеет?
Это ты нарушаешь S в SOLID? Какой смысл тогда писать sql запросы, если они к проекту не имеют отношение?
>>096695
Пиши в dbeaver и сохраняй в виде sql файла сразу в нужную папку.
>>096695
>Подвернуть штаны и налить смузи не надо?
Один, пожалуйста.
>Это ты нарушаешь S в SOLID? Какой смысл тогда писать sql запросы, если они к проекту не имеют отношение?
Ты дурак? Сделать выборку из базы, которую не я создавал, у меня нет миграций. Ей занимаются люди в другой стране и пИшут на T-SQL без миграций. А мне надо хитрым запросом вытянуть данные и это запрос занимает несколько экранов. Вопрос как можно удобно писать эти sql запросы в студии и как их хранить не сраной огромной строкой. И отдельный вопрос пи чем тут вообще dependecy inversion?
Я думаю у тебя там дураки работают, и сам ты дурак, раз пользуешься прямым доступом к бд. Про DI я ничего не говорил, где ты это увидел?
>Я думаю у тебя там дураки работают, и сам ты дурак
Один ты красивый в белом платье
>прямым доступом к бд
А каким доступом мне пользоваться? Моя программа апишка для клиентов. Они мне запрос я им данные из базы.
>Про DI я ничего не говорил, где ты это увидел?
Ок. К концу дня уже глаза замылились. Ну а единственная ответственность при чем тут. Есть класс который берет из базы данные где здесь много ответственностей и на что это разбить по-твоему можно?
>А каким доступом мне пользоваться?
Заставляй этих ленивых хуев предоставить тебе апи, раз дата леер не часть твоего проекта, а не прямой доступ к бд. Прямой доступ к бд - это пушка.
Дебил, сука.
Domain Driven Development. Например https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice
Чтива дохулион на дохулион ресурсах
На восьмерке тоже поддерживается.
Не привязано к языку. Но нужна статическая типизация или хоть какая валидация типов.
При том, что тег стоит.
Тут два варианта. Или борда еблан, или оп еблан. Склоняюсь к последнему.
Уже не в первый раз. Смысл котить, если человек-снежинка.
Ну можешь сделать EF + Linq2Sql и будут у тебя всякие запросы вида
GetTable()
.Where(x => x.Id == y)
.OrderBy(z => z.Field)
Я просто не понимаю.
Ну, т.е. в теории-то нет проблем пока это первые три. Но потом чтобы оно работало вместе - пиздец типа 4 выходит. У меня горит с того как это некрасиво. Хочу красиво. А красиво не выходит(((
Попробуй F#.
Ну смотри. Я открываю ссылку с каталогом, которую кинули. И вижу, что у всех тредов тег подсвечен другим цветом, а у C# треда #27 нет. Очевидно предположить, тег написан в заголовке треда, а не в нужной филде для тега, при создании.
Да еб вашу мать. Вы читать не умеете или троллируете меня? Оно умеет в оконные функции, cte? А cross apply делать научили или так и генерирует адовые джойны? Да и один хрен сложный запрос сгенерированный автоматически будет в разы медленней. И вопрос был не про это, совсем.
Использовал EF и недоволен. Я тебе сразу написал в том треде, что используют ADO.NET. EF годится разве для стартапа, а потом в мусорку.
И вот ты похоже подбираешься к пониманию моего вопроса из первого поста:
>Как вы пишите и храните sql запросы? Я сейчас пишу сaм запрос в dbeaver, потом копирую в notepad++ там через замену экранирую кавычки и уже копирую в студию. Мне кажется я где-то повернул не туда.
Если прочесть не жопой, то тут нет ничего про еф, а как раз про чистый sql. Да-да тот самый select x from y...
Unity - это как из пушки по воробьям. У меня обычное десктопное приложение, но с прямоугольной областью, где выводятся пиксели. Я слышал, что WPF работает сразу с DirectX напрямую, а программист пишет приложение даже не задумываясь как это всё выводится там на низком уровне.
Заметь, я тебе предложил вызвать роу квери. Ты потом радостно кому-то ответил, что использовал valuegeneratedonadd.
Потом, я тебе не просто так предлагаю использовать миграции. Ты нарушаешь принцип единственной ответственности и кривовато все:
1. У тебя код решает как доставать данные. Эту ответственность необходимо делегировать или в паттерн спецификация, или в отдельный слой.
2. Ты смешиваешь два разных языка в одном файле: C# и сиквел. Нормальным решением выделить сиквел в отдельный файл и сделать в виде хранимки. Редактируй и тестируй с помощью дбивера, студия для этого плохо подходит. В C# коде просто вызывать хранимку по имени, не надо никакие файлы загружать в строку в однострочник.
3. Ты гвоздями прибил запрос к базе данных к компиляции проекта. Если тебе надо что-то поменять в запросе, тебе надо перекомпилировать проект.
4. Ты прибил настройку окружения к рантайму проекта. Каждый раз, когда ты запускаешь запрос, я с огромной вероятностью уверен, что ты передаешь разные строки на сервер бд. Еще и нехера непонятно, правильно ли ты вообще запрос написал, может ты допустил какую-то мелкую опечатку, но узнаешь об этом только в рантайме. + Невозможно отслеживать историю изменений в твоем запросе-однострочнике, так как, рано или поздно, будет размазано по файлам. Правильным решением будет разделить билд проекта на два степа: настройка окружения (ака создание хранимок, упадут, если что-то не ок) и билд самого проекта апишки. Следующий шаг - миграции, потому что хуевая идея для настройки окружения чистить всю бд, более оптимально накатить диф ченж.
Чем тебе обычный SFLM не угодил-то?
>Unity - это как из пушки по воробьям.
Ну хз, из пушки по воробьям - использовать библиотеки типа SFLM, Tao, SharpDX, SlimDX... Слишком низкоуровневое, не факт, что будет эффективно, высокий риск сделать что-то неправильно. В WPF и в WinForms можно сделать хост, на котором рисовать с помощью любой либы.
> Редактируй и тестируй с помощью дбивера, студия для этого плохо подходит.
Аллилуйя. Про это и был вопрос. Нет так нет. Я до сих пор не знаю к чему было все остальное.
1. Обязательно ли иметь пет-проджект чтобы на собесе его показывать?(если да, то какой посоветуете)
2. Стоит ли удалять всякое говно типо какой-то игры на юнити которую пилил в универе, задачки на уровне кодварс и тд? Или чем больше тем лучше?
Зависит от тараканов у ревьювера.
1. Не надейся, что кто-то его будет смотреть. Накидай пару проектов не уровня хелоу ворлд для виду.
2. Оставь код, который не стыдно показать.
Всем похуй на твой гитхаб, просто штурмуй стажировки во всяких тырпрайзах и галерах, там обычно на еду накинут.
Либо штурмуй стартапы и подвалы, но там придется работать за ценный опыт, идею и коробку печенек
А ты не боишься, что твой украдут и будут на нём зарабатывать, а с тобой делиться не будут?
> вшивость кода
Ну смотри, мой код:
1. Соблюдает конвенции имён, заранее оговоренные с командой.
2. Соответствует модным у нюфагов солидам и киссам.
Что может пойти не так?
Тогда все заебок.
Нашел на ютубе пару курсов на русском, цель - хотя бы понять, что из себя представляет язык и среда разработки. Какие подводные камни? Мне кажется, на английском смотреть не обязательно
Будешь один час (в лучшем случае) смотреть как создать новый проект в визуал студио под пердящий тихий микрофон.
Это старые видео и там скорей всего старый .Net. Я всегда ищу с пометкой "за этот год", чтобы получать актуальную инфу, а не протухшую.
Да никаких, кроме того, что ты получишь довольно поверхностное понимание чо и как работает.
Если есть опыт в других ЯП, то можно попробовать найти курсы с diff'ом, если нет, то ты только синтаксис и увидишь.
Ну и про IDE надо понимать, что сейчас есть не только VS
Ну например какой нибудь виртуальный монитор создать и с него делать скриншоты.
Где то читал статью что нельзя. Но мб можно все таки?
Чё? Ничего не понял. Вот есть пример https://github.com/ShareX/ShareX
Что только не умеет делать с скриншотами.
Мне нужно узнать можно ли делать скриншоты не выводя картинку на экран.
Вообще нельзя.
Например если окно свернуто то получить с него скриншот не получится.
Но возможно можно сделать виртуальный монитор на него вывести картинку и там сделать скриншот.
А ты извращенец. Попробуй это https://spazzarama.com/2009/02/12/screen-capture-with-vista-dwm/ может поможет.
А есть почитать что-нибудь новичку (я про сайты какие-нибудь) кроме хабра и метанита?
да не похуй ли?
Да.
О, спасибо за годноту
Я и раньше иногда писал отдельный консольный проект на шарпе для генерации кучи шаблонного кода, который просто заменял код в отдельных файлах основного проекта на сгенерированный. При этом я имел доступ к рефлексии в основном проекте, т.к. подключал его как референс проект, и скажем при ренейминге в основном проекте, в генераторе это учитывалось.
В чем преимущество того сорсгена, что появился в шарпе 9-м, по сравнению с моим колхозом? Как минимум там вроде один прямо радикальный недостаток, как пишут люди, что нельзя прямо посмотреть сгенерированный файл.
>The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
Где можно скачать?
>У Рихтера много информации уже неактуально.
>Если книга вышла до 2019, то уже не актуальна
безпруфная петушня в треде
>>096654
в .sql файлах и накатываю через dacpac
>>096839
>TcpClient
студентота тоже в треде
>как бороться
выпилиться
>>097052
вкатыши тоже на месте.
Тред укомплектован. Дальше тошнит читать. Можно вайпать нахуй
Нужно просто не бросаться перекатывать сразу после лимита, а сидеть до двух тысяч постов как жаба деды. Тогда залетышей не будет
Сорян за кривую формулировку, но иначе не знаю, как спросить.
Нытик, спокуха
Goвно не сдувается
Kotlin не сдувается
Java энтерпрайз нисколько не сдувается
Rust не сдувается
C/C++ не сдувается в узких областях по типу компьютерной графики
Python не сдувается
Сдувается как раз шарпик со своей экосистемой, которая изначально была рождена как замена дельфи только с java-like языком без очевидных недостатков самой джавы. Все было бы хорошо, но майкрософт проебался в следующих пунктах
1. Зачем писать свой аналог JVM в лице CLR, если изначально не предполагалось, что шарпик будет работать где-либо, кроме винды. Идея JVM состояла как раз в том, чтобы запустить жабу на любой платформе, хоть на винде, хоть на кофеварке, хоть на огромном сервере. И с этой задачей она справилась, жаба популярна на серверах, популярна на мобилках, как сейчас, в связке с котлином на андроиде, так и 15 лет назад на J2ME мобилках. А что шарпик? Жалкие потуги в мобилки на windows phone смартфонах и на winrt планшетах, которые так и не нашли популярности, а винфон и вовсе сдох. Xamarin все.
2. MS хотела создать язык, похожий на дельфи, но при этом сама не заметила, как дельфи сдох. Шарпик не крутился на серверах, его уделом были десктопные приложухи на винформах и wpf. С появлением движка V8 и HTML5 шарповские построения интерфейсов оказались не нужны. Сверстать страничку, добавить js код и запустить все это дело хоть в браузере, хоть на десктопе оказывается куда удобнее, чем ставить .NET Framework и мучиться с винформами. А учитывая, что сейчас все пилится под веб, а точнее под мобилки, то десктопные программы и вовсе стали не нужны.
Сдувается или не сдувается это похуй.
На наш век хватит.
Вкатывальщик в любом случае не проиграет если будет шарпы учить.
>На наш век хватит
Дельфисты и значительная часть плюсистов так же думали. И где они теперь? Многим из них пришлось в спешке учить джаву/джаваскрипт/питон/го, чтобы найти работу джуном на совершенно новом стеке.
Тем же пхпшникам сейчас приходится в спешке учить го, так как многие пхп поделия переписывают на го или питон. Все не так однозначно, есть конечно технологии вроде джавы, которые являются абсолютными лидерами в своих отраслях, но их мало.
> пришлось в спешке учить ... чтобы найти работу джуном на совершенно новом стеке.
Если для тебя это проблема - то мне вас жаль (с).
В языках программирования всё одинаково: переменные, циклы, типы. Нужно только приложить минимальное телодвижение по изучению, как оно тут в новом языке. Выучил один - выучишь остальные на изиче. Этот пост отличает джуна от сеньора. Джун кинется обеснять как я неправ. Сеньор скажет пикрелейтед.
>Goвно не сдувается
Если честно, он толком и не выстрелил.
>Kotlin не сдувается
Он и не надулся, кроме телефонов нигде о нем почти не слышу (да и зачем сразу два языка изучать). Это как с ts, типа круто, но js знать все равно нужен.
Прокси языки, это какая-то херня.
>Java энтерпрайз нисколько не сдувается
Кобол тоже до сих пор в тырпрайзе.
>Rust не сдувается
Не верю что на нем можно писать большие и сложные системы. Ну, конечно, одаренные может что-то и напишут, но по ресурсам на сопровождение, это будет скорее всего жесть (имхо).
>C/C++ не сдувается
Это был язык король в свое время (в те года когда многие тут еще не родились), но сейчас его вытеснили отовсюду. Единственный вменяемый системный язык и из-за того что он востребован в узких местах, заменить его невозможно.
Единственный жирнейший пирог где он остался - это разработка игр. Почему никто не нацеливается именно на этот рынок я хз (выпусти новый язык с движком фоваритом и греби бабло лапатой, но нет, мы будем делать переусложненный хруст, никому-ненужный дибиль и другие псевдо заменители).
>Python не сдувается
Пранк который вышел из под контроля. Зарабатывают на нем все, кроме самих питон программистов (потому что их очень много на место). То есть, бабло рубят ютуберы, курсы за тонну бабла, книго-писатели, в общем все, кроме самих питонистов.
История успеха проста, в отличие от какого-нибудь С++, где надо учить матчасть месяцами, можно сразу в пару строк продемонстрировать очередному вкатывальщику результат.
Хочешь сайт за две строки, хочешь нейроночку с котятами...
Язык успех, язык бущущее, язык наеб (ибо нехрена на динамике без потоков что напишешь, с дикими тормозами)
Да, шарп тоже ненужное говно. Ибо тупо клон джавы, который долго пересидел на одной платформе.
В шарпе же виртуальная машина быстро транслирует байт-код в реальный машинный код и поэтому шустрее, чем жава.
Лол, еще один сектант из серии - сейчас я выучу типы и числа (алгоритмы) и буду вкатываться во все языки. Нет, те фундаментальные знания это 1-2% от всех реальных знаний. Дальше идет инфраструктура языка и у каждого она своя. Своя стандартная библиотека, свои фреймворки, даже свои ОРМ с тонной нюансов и подводных. Все свое, даже конфиги, порой, имеют свои параметры и стиль написания.
Правильно делают люди, которые пытаются выбрать язык с учетом на будущее, где они смогут погрузиться во все детали до уровня спеца и правильная их мысль что легко ты сразу не прыгнешь в другие языки, даже если ты знаешь числа и типы и прочитал книгу кнута.
Если вдруг на реальных тестах померить JIT этих языков, шарп пососет (и даже не спорь, я знаю что у сектантов готовы на этот случай свои ссылки на свои тесты, но это подкрутка). Но стоит отметить то, что в реальности шарп пососет настолько мало, что это вообще не критично и тем более не имеет смысл об этом спорить (ибо всегда можно найти такую тырпрайз либу жабы, которая уронит перформанс до питона и это не шутка).
Суть. Есть сущность User. И есть сущность UserSession. Так вот. UserSession - сессия пользователя на сервере. User - сущность из БД. Ну, я этого User - как свойство User из БД сделал. Думал как: Ну, удобно же. Но сейчас чет мне кажется что хуйню сделал.
Какие потенциальные проблемы от этого могут быть? И стоит ли заменить это поле на UserDto, который не будет напрямую к БД отношение иметь?
"Язык программирования" знает сейчас любой васян. На самом деле вышка в любом техническом вузе по стандартам образования в РФ ещё с 90-х требует, чтобы студенты изучали программирование и сдавали экзамен.
Так что как минимум паскаль, а значит и переменные, циклы, типы, алгоритмы, знают практически все. Имеют ли их навыки в таком виде самостоятельную ценность на рынке труда? Нет.
Она, потенциально, работает везде где есть JVM. А вот есть ли JVM на гейоси - вроде нет.
Генерить однотипный код без рефлексии, в отличии от т4, только шарп, даже не фшарп. Генератор не умеет изменять существующий код, только дополнять через partial или создавать новые сущности по любому правилу. Должен находиться в отдельной либе и надо перезагружать Visual Studio из-за кеширования. Посмотреть сгенерированный код можно через навигацию к определению, в некст версии вроде хотят сгенерированный код класть в папку obj.
>>098304
Глянь исходники сущности и найди перегрузку оператора +.
>>098442
Приведи пример, что не работает. У методов почти одинаковая сигнатура. Только от вб не советуют напрямую использовать.
>>098454
Не думаю, книгу почитай и сделай свой конспект. Толку мало от чего-то типа https://hackr.io/blog/c-sharp-cheat-sheet
На плюсах пишут embedded, самое популярное.
Между жабой и шарпом много схожего. Выучил одно, выучил другое. Много технологий не привязано к языку, например сваггер. Много портов с жабу на шарп, например хибернейт. Только шарп пытается усесться на большем числе стульев.
Мне не нравится, что в жабе многое сделано поверх виртуальной машины, например женерики. Еще эта странная любовь к все есть объект. Другое стороны хорошо, что нет всяких спанов, меньше шансов прострелить себе ногу.
Ну как минимум знать фреймворк, с помощью которого можно будет поднять хттп сервер с настроенным роутингом и кэшироваинем страниц. Знать SQL и ORM для нужного языка программирования, уметь это дело настраивать. Это самый минимум на стажера, который только-только из вуза выпустился или заканчивает.
А так еще нужно знать как работать с потоками, про синхронизацию потоков, отлично знать про коллекции, в том числе какая у них временная сложность. А эти вещи, внезапно, разнятся от языку к языку программирования. Уметь в тестирование, систему сборки. Важно хорошо знать стандартную библиотеку, чтобы не обсираться при выборе класса Date или не писать свой собственный велосипед для парсинга csv, если он уже и так есть в либе. Аналогично про джейсоны/xml.
Также в разных языках есть разные фичи из асинхронности и функциональщины. И все это уже далеко не уровень циклов, функций и переменных, которые должны уже знать 15 летние дети, которые сдают экзамен в 9 классе.
Современное программирование - это нагромождение абстракций, с использованием огромного числа готовых либ и инструментов, а не какое-то решение задачек по типу литкода/кодварса с использованием циклов и условий.
Смысл тогда писать, что жаба работает на кофеварке, если даже гейось не поддерживает?
Не помню в каком треде писали, но и для ведройда жаба не нативный язык, в том плане, что жни ведь плюсы юзает.
Зря ты это. Сейчас призовешь любителей анально сношаться с красно-голубыми деревьями.
>он толком и не выстрелил
В озоне и авито его уже вовсю в проде используют. Как и в компаниях поменьше. Кстати, озон, по слухам, чуть ли не 200к готов платить джунам, у них сейчас там сильный дефицит гоферов.
>Он и не надулся, кроме телефонов нигде о нем почти не слышу
Ну да, на нем кроме телефонов ничего толком и не пишут. Хотя в последнее время стал просачиваться и в мир серверов. У каждого языка своя ниша.
>Кобол тоже до сих пор в тырпрайзе.
Кобол уже давным давно не развивается, и вообще он был популярен только в США лет 50 назад. Сейчас для него нет ни IDE, и отладчиков, ничего. В то время как инфраструктуры вокруг джавы выстроена вполне солидная, да и саму джаву стараются развивать.
>Не верю что на нем можно писать большие и сложные системы.
На расте вполне себе пишут огромное количество криптохуйни. Почти любой криптостартап использует у себя раст. Хотя да, язык получился довольно сложным и монструозным.
>но сейчас его вытеснили отовсюду
Графику, не только в играх, пишут на плюсах. Всякие рендеры карт, движки геометрии для CAD/CAM - все пишется на плюсах и никогда с них не уйдет, ибо количество легаси просто огромное. Но вообще еще внезапно есть хайлоад, распределенные системы и HFT, где без плюсов просто никуда. СУБД пишутся на плюсах, тот же йоба кликхаус от яндекса, не говоря уже о mysql/postgres. Во всяких фаангах, где сидят дяди с зп 200-300к+ долларов в год, без плюсов никуда. В последнее время идут подвижки к тому, чтобы писать хайлоад на го, но пока что результатов немного. Сишка так вообще никогда не умрет, пока есть ембеддед.
>История успеха проста, в отличие от какого-нибудь С++, где надо учить матчасть месяцами, можно сразу в пару строк продемонстрировать очередному вкатывальщику результат.
Хочешь сайт за две строки, хочешь нейроночку с котятами...
Язык успех, язык бущущее, язык наеб (ибо нехрена на динамике без потоков что напишешь, с дикими тормозами)
И внезапно, сайтики на питоне пишутся вполне успешно. Далеко не всегда нужна многопоточность, она, скорее, даже не нужна в большинстве сценариев. Джаваскрипт в V8 работает по сути в однопоточном режиме, однако популярность у него огромная. И, как оказалось, на динамике без потоков вполне нормально писать.
>он толком и не выстрелил
В озоне и авито его уже вовсю в проде используют. Как и в компаниях поменьше. Кстати, озон, по слухам, чуть ли не 200к готов платить джунам, у них сейчас там сильный дефицит гоферов.
>Он и не надулся, кроме телефонов нигде о нем почти не слышу
Ну да, на нем кроме телефонов ничего толком и не пишут. Хотя в последнее время стал просачиваться и в мир серверов. У каждого языка своя ниша.
>Кобол тоже до сих пор в тырпрайзе.
Кобол уже давным давно не развивается, и вообще он был популярен только в США лет 50 назад. Сейчас для него нет ни IDE, и отладчиков, ничего. В то время как инфраструктуры вокруг джавы выстроена вполне солидная, да и саму джаву стараются развивать.
>Не верю что на нем можно писать большие и сложные системы.
На расте вполне себе пишут огромное количество криптохуйни. Почти любой криптостартап использует у себя раст. Хотя да, язык получился довольно сложным и монструозным.
>но сейчас его вытеснили отовсюду
Графику, не только в играх, пишут на плюсах. Всякие рендеры карт, движки геометрии для CAD/CAM - все пишется на плюсах и никогда с них не уйдет, ибо количество легаси просто огромное. Но вообще еще внезапно есть хайлоад, распределенные системы и HFT, где без плюсов просто никуда. СУБД пишутся на плюсах, тот же йоба кликхаус от яндекса, не говоря уже о mysql/postgres. Во всяких фаангах, где сидят дяди с зп 200-300к+ долларов в год, без плюсов никуда. В последнее время идут подвижки к тому, чтобы писать хайлоад на го, но пока что результатов немного. Сишка так вообще никогда не умрет, пока есть ембеддед.
>История успеха проста, в отличие от какого-нибудь С++, где надо учить матчасть месяцами, можно сразу в пару строк продемонстрировать очередному вкатывальщику результат.
Хочешь сайт за две строки, хочешь нейроночку с котятами...
Язык успех, язык бущущее, язык наеб (ибо нехрена на динамике без потоков что напишешь, с дикими тормозами)
И внезапно, сайтики на питоне пишутся вполне успешно. Далеко не всегда нужна многопоточность, она, скорее, даже не нужна в большинстве сценариев. Джаваскрипт в V8 работает по сути в однопоточном режиме, однако популярность у него огромная. И, как оказалось, на динамике без потоков вполне нормально писать.
Я сам бесоёбил в прошлом году. Почти везде на собесах спрашивали про знание js или python. В итоге перешел на веб и работаю уже чуть больше полугода.
>Хотя да, язык получился довольно сложным и монструозным.
Как по мне, веселый язык. Подкупает его зиро абстракции. Все остальное, вроде, попытки улучшить плюсы, мув вместо копи например.
У меня в отдел много новеньких каждый месяц приходят. В веб ясное дело. Нехуя не знают. Проходят какую-то программу обучения, решая какие-то не совсем типичные задачи. Я так понимаю, фирме выгодно взять кого-то не совсем отбитого с улицы и за свой счет сделать из него прогера. Хз как они покрывают расходы, если новенький через год свалит.
На макоси - да. На iOS - нет, так как эпл запретила жабу на своих телефончиках, так как у них свой свифт есть.
>>098640
>Смысл тогда писать, что жаба работает на кофеварке, если даже гейось не поддерживает?
Жаба заработает на кофеварке, если на этой кофеварке можно запустить виртуальную машину. Как и шарп/питон/js/etc. Если производитель кофеварки явно запретил виртуальную машину, то откуда же она возьмется?
>>098640
>Не помню в каком треде писали, но и для ведройда жаба не нативный язык, в том плане, что жни ведь плюсы юзает.
Жаба и не может быть нативным языком, она ведь не компилируется в машинный код. Андроид - это по сути система с модифицированным ядром линукса с кучей патчей, графическим интерфейсом и драйверами от производителя телефона. На самом андроиде установлена виртуальная машина Dalvik, которая как раз и запускает джава код.
>>098620
>Мне не нравится, что в жабе многое сделано поверх виртуальной машины, например женерики
Да, тут вышел серьезный проеб от дизайнеров языка. Дженерики добавили в жабу только в 5 версии, и чтобы не ломать обратную совместимость, решили их сделать стираемыми на этапе компиляции. В шарпе этот момент, к счастью учли и сделали нормально.
>эпл запретила жабу на своих телефончиках
Почему тогда замарин и мауи позволяют?
>Жаба и не может быть нативным языком
Я к тому как это преподносят. Про то как оно устроено, я знаю. У меня есть серт из универа вахьё или как его там, хуй знает.
>замарин
Скорее всего там стоит компилятор, который транслирует код из шарпа в Objective-C, а код в Objective-C считается нативным для iOS и может спокойно запускаться на ней.
Вот есть у меня 2 сущности к примеру
User
int id
int Name
Age age
Age
int id
int UseId
int age
Добавляю я юзеров
Наме = Вася, Аге =18
Наме = Петя, Аге =20
Наме = Саша, Аге =19
Наме = Гена, Аге =20
Наме = Коля, Аге =20
Сколько будет у меня сущностей Age? 5?
А если Age будет такая
Age
int id
int age
То будет 3 сущности? Я так понимаю при таком варианте размер бд будет меньше. Но что я потеряю? Ну да если бд сложнее я не смогу делать выборки но тут вроде же ничего не теряю, я точ также смогу сделать выборку людей которым к примеру 20 лет
Лучше не создавай отдельную таблицу для возраста, непонятно какую ты цель преследующей. Я бы еще понял, если бы ты для пола таблицу отдельную сделал. Количество сущностей зависит от орм и ее настроек, если орм вообще используется. С твоего примера непонятно как ты возраст указываешь, если без айдишника, должно создать на каждого юзвера по возрасту, тем более ты сам написал, связь один к одному, но ожидаешь один ко многим.
>В озоне и авито его уже вовсю в проде используют.
>Кстати, озон, по слухам, чуть ли не 200к готов платить джунам, у них сейчас там сильный дефицит гоферов.
Гуманитарный программист ликует, управляющая структура и весь бизнес в акуе, что им за этот пердеж теперь требуется нубам 200к отваливать.
Запомни, бизнес продвигает технологии и с точки зрения бизнеса это величайший фейл ну и -1 к карме того "спеца" хипстера, который в компашку это притащил
Не знаю толком как код весь предоставить. В общем я маюсь херней с кодом вида
this.field_names = (string[])Utils.CopyArray((Array)this.field_names, new string[j + 1]);
Почему я маюсь фигней? Мне нужно портировать этот код работающий с SQLite на чистый C# с использованием стандартных библиотек, иначе мне с моим парком машин хана.
мимо админ
Вот этот формально прав. Просто реальная ситуация на рынке такова, что наибольшие требования среди всех соискателей предъявляют к залётным джунам, потому что желающих работать программистами людей без опыта - просто немеряно, а вакансий джуновских в десятки раз меньше.
Но как только ты прошел фильтр, как только у тебя появляется реальный опыт работы, вдруг оказывается, что ты можешь себе позволить не решать тестовые, не знать алгоритмы, да и язык-то сам знать с трудом, и всё равно будет куча контор, которые тебя возьмут.
Тут почитаешь, и создастся впечатление, что программисты - интеллектуальная элита, в головы которых влезает столько всего, пока ты только сам по себе язык уже второй год учишь, и пока ещё чувствуешь, что не готов. На самом деле большинство профессиональных программистов - такие же ленивые и тупые, как и во всех других сферах, их фактические знания - на 90% тупое повторение за старшим товарищем, который в процессе обучения на них орал, возможно даже бил, пока не удалось научить макаку повторять увиденное.
По моим наблюдениям:
- 30% профессиональных программистов не напишут реверс строки без создания промежуточного буфера.
- 60% не напишут quicksort за любое разумное время без ошибок даже в IDE без хотя бы пары прогонов.
- 80% не понимают, как на самом деле работает INNER JOIN и почему иногда результаты отличаются от ожидаемых (строки повторяются или вовсе отсутствуют), что уж говорить про более сложные JOINы. Что уж говорить про, например, рекурсивные запросы, которые кстати охуенны, но которые никто никогда не использует, кроме возможно разового экспериментального кода, который потом всё равно перепишут в более понятный среднему программисту вид.
- 90% не знают, как работает словарь, а даже если им кажется, что знают, то они всё равно не смогут написать свою реализацию.
- 100% программистов забывают то, что не используют в практике. Если ты джуном знал дохуя всего, сеньором ты можешь оставаться крутым профессионалом, но обосраться на задаче, где важен не опыт, а быстрые мозги, где тебя размажет любой студент.
В общем опять таки всё это не значит, что эти люди чем-то ущербны, нет, они обычно профессионалы в своей области и эффективно решают поставленные задачи, просто многие "программерские" вещи им не нужны уже очень давно.
Вот этот формально прав. Просто реальная ситуация на рынке такова, что наибольшие требования среди всех соискателей предъявляют к залётным джунам, потому что желающих работать программистами людей без опыта - просто немеряно, а вакансий джуновских в десятки раз меньше.
Но как только ты прошел фильтр, как только у тебя появляется реальный опыт работы, вдруг оказывается, что ты можешь себе позволить не решать тестовые, не знать алгоритмы, да и язык-то сам знать с трудом, и всё равно будет куча контор, которые тебя возьмут.
Тут почитаешь, и создастся впечатление, что программисты - интеллектуальная элита, в головы которых влезает столько всего, пока ты только сам по себе язык уже второй год учишь, и пока ещё чувствуешь, что не готов. На самом деле большинство профессиональных программистов - такие же ленивые и тупые, как и во всех других сферах, их фактические знания - на 90% тупое повторение за старшим товарищем, который в процессе обучения на них орал, возможно даже бил, пока не удалось научить макаку повторять увиденное.
По моим наблюдениям:
- 30% профессиональных программистов не напишут реверс строки без создания промежуточного буфера.
- 60% не напишут quicksort за любое разумное время без ошибок даже в IDE без хотя бы пары прогонов.
- 80% не понимают, как на самом деле работает INNER JOIN и почему иногда результаты отличаются от ожидаемых (строки повторяются или вовсе отсутствуют), что уж говорить про более сложные JOINы. Что уж говорить про, например, рекурсивные запросы, которые кстати охуенны, но которые никто никогда не использует, кроме возможно разового экспериментального кода, который потом всё равно перепишут в более понятный среднему программисту вид.
- 90% не знают, как работает словарь, а даже если им кажется, что знают, то они всё равно не смогут написать свою реализацию.
- 100% программистов забывают то, что не используют в практике. Если ты джуном знал дохуя всего, сеньором ты можешь оставаться крутым профессионалом, но обосраться на задаче, где важен не опыт, а быстрые мозги, где тебя размажет любой студент.
В общем опять таки всё это не значит, что эти люди чем-то ущербны, нет, они обычно профессионалы в своей области и эффективно решают поставленные задачи, просто многие "программерские" вещи им не нужны уже очень давно.
Я бы фшарпик по продвигал. Но 100% найдутся нытики, которые не захотят его учить. Не для всего кода оф коз.
Это для примера просто что бы быстрее писать.
На самом деле я буду писать инфо и юзере который зашел на сайт.
И сам я хотел делать просто поля и в них записывать данные типо 1 модель и все.
Но вот у такой же софтины сделаны отдельные сущности под каждое поле.
Профит я вижу в том что бд не будет разостаться. В этих доп таблицах только 2 поля id и value, юзер агент достаточной длинный, и с учетом того что программа предназначена для обработки тысяч юзеров в сутки то писать каждый юзерагент не имеет смысла.
>он был популярен только в США лет 50 назад
Зумерье кричит голословно про тырпрайз, совершенно не зная что это такое.
https://www.cnews.ru/news/top/2020-04-07_ssha_izza_koronavirusa_ponadobilis
>И внезапно, сайтики на питоне пишутся вполне успешно
>Далеко не всегда нужна многопоточность
Говорит про веб, который по природе многопоточный и тут же говорит что далеко не везде она нужна. Это какая-то клиника в мире программирования или просто некомпитентность?
Именно в вебе многопоточность и нужна как воздух. Раскидывать запросы по процессом, это древнейший костыль со всеми вытекающими.
>фшарпик
Он специфичен, как и все фп и поэтому нравится не всем. Такая судьба у него быть в андеграунде и в этом ничего плохого нет.
Ого, странно, что админа заставляют код писать на шарпе. Набросал пример с самой более частой перегрузкой метода https://dotnetfiddle.net/8ROsMa
>без хотя бы пары прогонов.
Ну охуеть. Может быть мне на реальных проектах - ничего не проверять? Хуйнул за 2 минуты - PR и пошел пить смузи?
Я вот напишу квиксорт по памяти, потому что в олимпиадках участвовал и помню его, но все равно раз 10 прогоню, прежде чем считать что точно все учел.
> рекурсивные запросы
Ну, я использовал, допустим, когда нужно было иерархические данные отдавать. Только вот никто не понимал как оно работает, людям что со мной рядом сидели - проще было написать хранимку с курсором. Ну, их дело.
> не смогут написать свою реализацию
Ты переоцениваешь сложность словаря. Если мы не говорим про многопоточные словари - там ничего сложного нет. Вся сложность как раз в многопотоке.
мимо хуй с ВО
Ты же понимаешь, что обычно память и производительность две разные стороны весов? Т.е. для обработки огромного числа юзверов придумали разделять базу данных для записи и для чтения. Причем в бд для чтения дублировать данные в форме, нужной юайке. Но начинают с ухудшения нормальной формы базы данных, чтобы на выходе получить, например, одну супер таблицу.
Производительность - в смысле, скорость выполнения. А то сейчас набегут программисты-анальники.
Если твоя бд постгрес, то нет. Локи делаются, например, через изоляцию транзакции.
>>098752
Ну я хз. ПО этому и спрашиваю
Мне бы было удобнее все в одну таблицу запихать.
Но мне важна скорость выполнения.
Ну мне скорее важно что бы ресурсов меньше жрали запросы цп и рам.
Просто подумал не спроста же там так сделанно, хотя знаю еще одну такую программу там sqllite и там все в одной таблице.
Напиши по красоте с хотя бы третьей нормальной формой и сделай замеры. Преждевременная оптимизация звучит не очень.
Я в олимпиадах участвовал, но всегда использовал qsort или std::sort. Квиксорт я на 1 курсе универа писал, но в итоге написать без багов так и не смог, пришлось скопипастить код из википедии, а потом показывать бабке, которая лабы принимала. Да и бинпоиск сомневаюсь, что кто-то без багов напишет сходу.
>Может быть мне на реальных проектах - ничего не проверять?
Есть такой весьма распространённый и даже кстати весьма эффективный способ программирования, когда ты по существу практически нихуя не понимаешь, как всё работает, но можешь запустить, свериться с правильным ответом, и знаешь место, где скорее всего надо что-то поправить. Поэтому возможность неограниченного прогона тестов как бы снижает уверенность в том, что ты на самом деле понимаешь, что ты написал.
>Только вот никто не понимал как оно работает
Проблема тут ещё и в том, что и ты сам через пол года скорее всего не поймёшь как это работает. Со мной так было, во всяком случае.
Двачую, хоть и понимаешь, как это всё работает, но вот правильно написать где надо строгое или не строгое равенство у меня например постоянно вызывало проблемы.
>Поэтому возможность неограниченного прогона тестов как бы снижает уверенность в том, что ты на самом деле понимаешь, что ты написал
Ну как. Допустим у меня довольно здоровое приложение. Я понимаю что делает этот кусок, но я не могу быть уверен, что он не повлияет на то что я писал, допустим, полгода назад.
Вот из моей практики: требование рвать соединения для устройств, которые не присылали сообщений в течении установленного интервала активности. Ну, я сделал один метод, передаю его в OnHeartbeat, ок, да, но оказывается, что при разрыве соединения нужно было в базу писать, и раньше соединения рвались только при отваливании сокета, в итоге куча одновременно порвавшихся соединения - куча попыток апдейта в базу, что вело к деградации перформанса в моменты разрыва соединения и "подвисаниям". Как я мог помнить без прогона-то?
>Зумерье кричит голословно про тырпрайз, совершенно не зная что это такое.
Почему зумерье? Он же на рынок СНГ ориентируется. Тут COBOL никому нахуй не сдался. Даже в твоем примере - единичный случай.
В России нет ни одной системы, написанной на старых языках (Delphi не в счет - он не настолько стар).
Спасибо, обязательно попробую. Сам шарп запускается не в виде бинарника а через powershell с использованием командлета Add-Type
Есть ли что-то в чтобы не прописывать миллиноы классов которые нужно добавить к сервисам?
Ну, вот допустим, у меня есть некий IHostedService, у него миллион зависимостей передающихся в конструкторе и он - пишет в файлик раз в секунду: Ты пидор.
Так вот, мне не хочется все эти зависимости прописывать. Я могу, конечно рефлексией все достать и зарегистрировать, но не хочу пока что так делать. Может быть я не знаю о какой-нибудь библиотечке, с помощью которой я бы мог только основные классы указать, а она бы добавила зависимости?
Компилятор его в Concat превращает. Исходники смотреть надо, а не доку https://sourceroslyn.io/#Microsoft.CodeAnalysis.CSharp/Lowering/LocalRewriter/LocalRewriter_StringConcat.cs,36
>- 30% профессиональных программистов не напишут реверс строки без создания промежуточного буфера.
Так что ли
>String.Concat("yoba".Reverse())
?
Заебно, если будешь использовать DateTime, + будет погрешность в любом случае.
Нет.
А "проще" никак?
Я читаю книжку по шарпу, заинтересовался разницей struct и класс, stack, heap, value и ref типами, стал гуглить, почитал одно-другое, заглянул в CLR via C# и у него там был пример, связанный с конкатенацией:
int a = 1;
object o = a;
Console.WriteLine(int + string + (int)o);
И он пишет, что строка из аргумента получается через метод String.Concat(object, object, object).
Эмоции, которые я испытал, даже передать не смогу - я думал, что я что-то понимаю, а оказывается нихуя.
Неужели единственный способ понять, как это работает, залезть в https://sourceroslyn.io/#Microsoft.CodeAnalysis.CSharp/Lowering/LocalRewriter/LocalRewriter_StringConcat.cs,36 ?
Если хочешь понять как что-то работает, то надо лезть в исходники компилятора или в саму сборку. И к C# 10 предлагают нахер переделать string провайдер из твоего примера.
Чем-то похож.
Вазген ты? Когда 10 косарей вернешь, гнида? Я же говорил, что курсы по решеткам нихуя не дадут
Код педалю.
Ну, студия показывает 92 в индексе удобства поддерживания. Мне кажется норм.
Да и суть. Это моя библиотека. Мне она нравится. Я буду допиливать и использовать. Та же NetCoreServer - неудобна, потому что заставляет меня ебаться с буфферами и все то же самое, что и с TCP-клиентом проделывать. В моей задумке - описал протокол, описал контекст - и пользуйся хоть на стороне сервера, хоть клиента.
Если есть что-то похожее - я с радостью брошу и буду использовать готовое.
720x1280, 0:03
>ты знаешь что такое рекурсия?
>Знаю. Только при чем здесь while(true)?
Вся суть треда сисярпа. Удали нахуй парень, программирование - не твое
Ты троллишь тупостью или что? Я не понимаю просто. Каким, блядь, боком ты рекурсию приплел к while(true)? Или ты итеративное выполнение кода называешь рекурсией? Ну, тогда - иди почитай книжек, чтобы в треминах не путаться.
Чуваки, я тут, короче, немного, попилил нанобордочку,
и принёс вам покушать - шифрохендлер с Diffie-Hellman-Key-Exchange и AES.
Вот он, во всей своей красе, многострочной:
https://github.com/username1565/nanoboard/commit/b37d98bde5b675d53d21ab60082c0e820ea5e6cf
Тест тут: https://github.com/username1565/nanoboard/blob/dev/pages/DHAES_test.html
Скрипт - тут: https://github.com/username1565/nanoboard/blob/dev/scripts/DHAES.js
Серверная сторона - в DbApiHandler.cs
Не знаю, можно ли было сделать это попроще, но можете глянуть открытый код общественного достояния сего,
и наномизировать, весь этот код, кто знает CSharp и JavaScript.
Break уже отменили?
Плюс есть случаи когда нужен именно бесконечный цикл, но там шарп вряд-ли будут использовать.
Условие выхода может быть сложным и зависеть, к примеру, от действий пользователя. Не всегда такое можно запихать в условие самого цикла. Поэтому вполне можно писать:
while(true) {
//вычисляем сложную логику
if(получаем условие выхода) {
break;
}
}
И что, блядь, в этом плохого-то?
ты понимаешь, что ты пишешь телу, которое в метод main прокидывает loop с whilte(true)? Уже отбросим детали, что это студ. проект с Tcp клиентом
кто его предлогал заменить на рекурсию? Я пишу, что это рекурсивный вызов и этот долбоеб будет все время получать true
> в метод main прокидывает loop с whilte(true)
Ты можешь, блядь, не хуйней маяться, а сказать, что с этим не так? Давай, я жду.
Еще раз. Иди учить терминологию, блядь. Ты не знаешь значения слов, которые используешь, блядь.
в app конфиге добавлял всякое типа transport или даже httpsBinding - не фурычит
Я за WCF не шарю, но вот ссылка на сайт майков. Даю ее потому что ты ничего про сертификаты не сказал.
https://docs.microsoft.com/ru-ru/dotnet/framework/wcf/feature-details/how-to-configure-an-iis-hosted-wcf-service-with-ssl
В таких случаях принято использовать стейтмашину.
var state = "running";
while (state != "exiting") {
//вычисляем сложную логику
if(получаем условие выхода) {
state = "exiting";
}
}
В отличие от while(true) ты сможешь менять множество состояний, а не только тру/фолс. Состояниями выхода могут быть разные константы и программа сможет по разному выходить.
Но воще, пиши, как хочешь.
мимо
Эм, чтоб не доебались к стрингам - стринги чисто ради примера, состояния можешь и целочисленными константами расписать.
спасибо, проблема в том что у меня это всё крутится как funcional app в azure - и я не уверен что лично у меня права есть чтобы там добавлять какие то сертификаты.
Предполагаешь что не робит потому что нет сертификата в ажуре?
сейчас я ошибки не могу запостить, но вкратце смысл такой что чужой серв, что предоставляет сервис посредством wsdl файла - теперь говорит что невозможно установить соеднение и оно было абортировано (если же оставлять конфиги как при http, когда работало - то ошибка говорит о том что был получен ответ вида text/html, хотя ожидали xml, т.е. с определенной даты интересующий меня сервис не поддерживает http)
Почитал статейку, вроде немного разобрался. Это просто большая точность, и как я понял соответственно больше чисел после запятой сможет вместить запись с double?
Короче это просто определяет сколько будет выделено места в памяти под число?
В общем мне наверное пока я новичок особо не стоит сейчас углубляться в это
Предположим есть данные текст/картинка/тупо байты не важно, но для примера возьмем текст.
Он огромный, целая книга, в ней есть абзац, мне нужно в этой книге находить где находится этот абзац (предположим 300 страница), книга проходит итерации и со временем может изменяться, абзац может сменить страницу, он может поменять до половины своего содержания или одновременно и то и другое, мне все равно надо как-то находить этот абзац, либо выдавать список абзацев которые похожи на тот что я ищу.
Единственное условие что этот самый абзац между итерациями обычно не сильно меняется, 10-20%, максимум 50%.
> Короче это просто определяет сколько будет выделено места в памяти под число?
Ну типа да.
> В общем мне наверное пока я новичок особо не стоит сейчас углубляться в это
Как раз наоборот. Знаешь сколько хуйни было из-за этой плавающей запятой? Именно потому нужно как можно раньше разобраться и понять ограничения. Банально чтобы ты не делал деньги double/float.
Всмысле нет? Открываешь студию, клацаешь: добавить nuget и хоть жопой жуй почти на любой случай жизни.
Не понял немного куда кликать. Nuget я нашел и установил, но не понимаю куда кликать чтобы его добавить. Потому что сейчас он ничего не находит с твоих пиков
А как в студии включить, чтобы также имена аргументов прописывались? Или это решарпер для состоятельных контор?
На папку проекта правой кнопкой, и там Nuget Manager, если не ошибаюсь
Мимо, не шарпер, но нагеты подключал
С нынешней студии это вот тут делается
Tools - nuget manager - manage packages
если надо еще - в том же браузере пакетов - package source
Если ты установил пакет в проект, он автоматом добавляется к зависимостям. Дальше - просто using в файлике прописываешь и можешь использовать.
private static void SetFilterColumn(this DataGridViewColumn[] columns, int columnIndex)
{ columns[columnIndex].HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(columns[columnIndex].HeaderCell) {FilteringEnabled = true}; }
Для впфа - несколько готовых либ.
Молю тебя анон, помоги мне, я нихуя не понимаю
Я как-то пытался сделать ECDH по этому гайду: https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.ecdiffiehellmancng?view=net-5.0
пишет указанный алгоритм не поддерживается на данной платформе (.NET 4.0).
А тут всё так охуенно, BigInteger, большие числа в генераторах что в комменте к коммиту. Целая криптосистема. Охуенно. Теперь, наноборда это не просто стеганографическая борда, это целая криптоборда, гы-гы. Можно сервера поднимать в разных точках планеты и синхронить базы зашифрованным трафиком, и никакие снифферы не спиздят данные, не зная ключей.
Вижу что предыдущий коммит реализовал бинарные хендлеры, а до этого только строчки можно было принимат на методы DbApiHandler.cs. Шифр же байтами гонится, какраз на бинарный хендлер. Круто!
SELECT (ID+1) FROM table AS t1
LEFT JOIN table as t2
ON t1.ID+1 = t2.ID
WHERE t2.ID IS NULL
Просто запрос который генерит ЕФ уже на 5к записях в таблице оч уж медленно работает, а подобная няшка - на 100к записях выполняется мгновенно. Но в проекте - EF, а потому не хочется в одном, но критически важном и тормозном месте - отходить от EF
Не можешь уничтожить? - Возглавь!
Потому что в мухосранях шарпы деды брали на замену дульфи, ну вот с тех времен артефакты остались
У меня сейчас появилась задачка, где как раз такое пригодилось бы. У микрософтов я такое видел один раз в: ListView.RetrieveVirtualItem
Так вот, как к такому относитесь? Есть ли у вас другие примеры, когда через ивенты возвращаются какие-то значения?
Вроде как это нарушает принципы СОЛИД, но не уверен.
Ну ебни FromSqlRaw
Странный запрос какой-то, 'WHERE t2.ID IS NULL" - на твоем запросе оно только нулы возвращать должно.
> 80% не понимают, как на самом деле работает INNER JOIN и почему иногда результаты отличаются от ожидаемых (строки повторяются или вовсе отсутствуют)
Нипонел. Поясни где трики случаи-то с INNER JOIN -то?
Бекенд, софт под винду, мобильные игры на юнити.
Я был перекатился, а потом назад выкатился, ну его нахуй.
Сторонные либы в том числе майковские используют нютонсофт. Какие-то банальные, как казалось, вещи не реализованы или реализованы странно. Да и нахуй надо
Странно, что они нютонсофт не купили. У них же денег дохуя.
Кстати, может глупый вопрос, но я именно с индустрией айти знаком не сильно. Что вообще такой этот энтерпрайз? Этим мловом обозначают все крупные компании и софт для них? То есть энтерпрайз веб это веб для крупной компании?
Типа того. Но в целом это то самое "работа на дядю" - хуй знает кому это надо и на выходе как и на входе говно, но все делают умное лицо и раздувают бюджеты.
Давайте лучше ЗОДАЧКИ НА СОБЕСЕДОВАНИЯ, а я на них обосрусь, но гуглить не буду сначала.
>на твоем запросе оно только нулы возвращать должно
Внимательнее смотри. По сути это запрос на поиск первого свободного ID. Да, оно не вернет если удаляли в начале последовательности, но эт не критично.
Ты джугало что ли, на тётю работаешь?
А что вообще по работе есть кроме галер и говно-энтерпрайза? Есть хорошие места вообще или все так или иначе говно и работа на дядю?
Сейчас в app.xaml'e юзаю try/catch на весь мейн и также подписан на AppDomian.CurrentDomain.UnhandledException, DispatcherUnhandledException, TaskScheduler.UnobservedTaskException, но у меня все равно приложение периодически тупо закрывается и в лог ничего не пишется. Алсо, на App_OnExit в лог пишется что приложение закрыто, но при невидимых эксепшнах тоже нихуя не пишется.
Не знаю, я только на галерах был мне норм
Ну, говорят, есть хорошие стартапчики, и даже платют иногда больше чем галеры, но может то все легенды.
С какого хуя нищий стартап будет платить больше? Блять, откуда столько порриджей навылазило, каникулы что ли.
Ебало на офф, поридж.
Вапервых, я же сказал, что только "слышал"
Вавтарых, кто сказал, что он нищий? Стартапам по началу инвесторы бабла отгружают больше, чем можно освоить, вот поэтому им и надо бустить и брать людей способных, соответственно и ЗП.
Втрети, иди нахуй.
Это не шутка, тупой ты пидор мечтающий о сочном хуе ДЯДИ.
>>101098
Осваивают бабло в гос конторах, ебанько. И не ты, а толстые ДЯДИ.
Никакие сверхспособности в стартапах не нужны от слова совсем. Скорее даже наоборот, лишь бы побыстрее на коленках сделать что-то рабочее. Соовтетствено можно нанять кодеров подешевле.
Ключевое в стартапе это идея из-за которой тысячи быдла залипнут на твой проект и она с программированием вообще слабо связано (кодинг лишь её имплементация). Идею эту придумывает пресловутый ДЯДЯ, поясни, зачем ему платить наемным кодерам за тривиальную реализацию его идее больше срынка???
Вы двое больше похожи на малолетних дебилов считающих что в программировании деньги бесплатно разадают. Шли бы вы лучше вюристы или экономисты, вам не место в нашей индустрии.
>Это не шутка
Тогда поясни.
но ты просто склочный пездюк (как минимум ментально) так что можешь сразу нахуй идти
И стартапы разные бывают, если тебя берут только на такие как ты описал еще ничего не значит. В продукте и стартапе можно зарабатывать больше, чем в тырпрайзе.
Мне до сих пор кажется, что требования в вакансиях - это троллинг и те специалисты, что у них сейчас есть, сами не соответствуют этим требованиям.
Не хотелось бы брать условного Шилда и тратить время на перечитывание уже знакомой инфы.
Повторение - мать учения!
А если 1С БУХГАЛТЕРИЯ, то это финтех стартап
У Шилда самая свежая книга по 4 версии, что уже морально устарело. Ищи что-нибудь посвежее за 2019-2021. Лучше C#9, хотя скорей всего вышли книги только по C#8.
Благодарю
Почему? Он не столько язык описывает, как базовые вещи.
Вот я уже достаточно не молодой сотрудник (хотя по критериям ВОЗ молодой), работал в совсем не IT сфере, дослужился до неплохих должностей. Но тут моя компания начинает умирать, а также эта сфера меня немного подзаебала, хочу перекатиться в программач. В принципе если в IT не найду варик, то смогу вернуться, но хотелось бы попытаться. Не с нуля решил, как хобби занимаюсь этим лет 8, делал небольшие проектики для себя и своей конторы, писал достаточно амбициозную игру (но не дописал, в итоге слишком амбициозно вышло, показать есть что, и демку и код).
В целом готов на вакансии джуна на годик, что б стаж специфический появился, хотя думаю что мои знания и на мидла тянут. Что скажете, реально?
Блин, сорян, не в том треде написал..
Программирование загибается. Уже сейчас программисты не нужны. Вкатываться нет смысла.
Мне непонятно как ты свой уровень на мидла оценил, если ты без опыта в ит.
линкпад
>Мне непонятно как ты свой уровень на мидла оценил, если ты без опыта в ит.
Ну это не предмет спора, согласен всё очень субъективно, готов на работу джуна для начала. Единственное хотелось бы в контору где возможен рост или реальный опыт работы хотя бы, а не просто странички-визитки клепать.
>>101425
А куда имеет смысл вопрос риторический, отвечать не требуется?
P.S.
В целом считаю что могу написать практически любую программу - ворд, калькулятор, эксель, веб-магазин, базу данных, не требовательную к хай энд графике игру и т.д, приложение на мобилку, соцсеть, криптовалюту (не форк, с нуля)
Не смогу операционку и не вдавался в нейросети.
>Не смогу операционку и не вдавался в нейросети.
Та прочитай описание на вики и добавляй в портфолио "я могу" тоже.
Конторки и кастомеры заинтересованы в росте, но им еще хочется, чтобы все были сразу сеньерами-помидорами. Будут пытаться на тебя повесить как можно больше допзадач: менторство, шаринг знаний, скилапы, треннинги, экспертиза. Если не чувствуешь роста, можешь свалить, опыт-то уже будет.
>>101446
Без опыта все равно максимум джун. Еще на испыталке знания проверят.
Да меня скорее другой момент интересует. Вообще как рассказывать про прошлое своё. Говорить что работал, но не в IT? Или вообще про прошлую работу не упоминать, просто сказать что я десяток с лишним лет после универа фрилансил?
Фриланс - это опыт, если программирование. Другой язык программирования - опыт, никто не мешает перекатиться из другого языка. Универ по специальности - тоже опыт, но могут навешать лапши на уши.
Лучше идти по такому плану:
1. платный курс по C# с гарантированным трудоустройством
2. стажёр от 1 года для получения опыта реальной разработки
3. джун на стабильную зп от 15к с соц. пакетом
Можно наложить на него сверху полупрозрачную картинку и отрабатывать нажатия по ней.
Вапервых, хуки бывают не глобальные, ты можешь передать дескриптор.
Вавтарых, ты не сказал, что надо использовать OnMouseDown.
Втретье, ты можешь просто добавить проверку в начало ивента.
1) Ну так говорю гемор с указателями и прочим.
2) Так другого нет, события мыши с Handled вроде только у некоторых контролов
3) Так уже поздно на момент наступления любого события мыши базовая часть контрола свои дела отрабатывает, например меняет выбранный элемент.
По сути он хочет отменить функциональность контроллера. Что б эвент работал, но анимация нажатия не обрабатывалсь, пока програмно не разрешится. Думаю это никак не сделать, только писать свой контроллер. Или пользовать костыли, типа другой полупрозрачный контроллер сверху.
Ну да, только костыли.
Ага, по твоему события с аргументом Handled отменяют функциональность контроллера?
Нет, хэндлед не отменяет анимацию контроллера. Просто не даёт вызываться другим событиям. Короче даже если бы в mousedown был бы хэндлед, то это бы ничего не изменило.
Можно проверить на WPF, но мне лень. Но в WPF можно настраивать машрутизацию ивентов, что вообще избавляет от всяких ухищрений.
Кто сказал что надо задавить анимацию? Мне ровно это и надо что бы остальные события обрубались как будто клика не было. Или хотя бы поймать момент до смены элемента, это точно в контролах с поддержкой Handled работало.
>>101576
А че сразу не на android? В wpf понятно что этого не потребовалось бы.
Не понятно, короче, что тебе надо.
В целом, можно ловить событие клика мыши по форме, потом проверять находится ли контроллер на элементе, делать твою проверку и если прошла, то имитировать нажатие мыши. Ну или предварительно ловить события mouseenter mouseleave, что б не высчитывать событие мыши.
*высчитывать положение мыши
Так в том и дело что ВСЕ события мыши приходят уже после того как клик обработан контролом, а аналога preview событий как для клавы у мыши нет.
Вроде решил путем переопределения WndProc и ловли клика там по коду. Процедура окна похоже первой его принимает.
Все меседжи в винде в ивент лупе. Если напихаешь говна в WndProc, тебе это аукнется.
Ну так все верно, wndproc контрола будет вызван только если по этому контролу кликнут. Ровно то что надо.
Надо работу искать а я хз бля походу синдром вечного студента.
Вакансии в городе только мидл, вот думаю просто слать резюме на почту ашеру.
Норм идея? Напишу Мол О привет я хотел бы у вас работать джуном за еду, если че пишите.
Чому ты так решил? Для людей без вышки это единственный реальный путь войти в ойти, если нет знакомых сеньеров-помидоров.
Фокус в том, что если у контрола не будет привязанного ивента, то и ничего не будет обрабатыватся.
Но вообще лучше всего сделать контрол из метки, у которой нет никакой анимации и допилить свою. Анимация клика очень легко делается - или смена цвета, или изменение размера. И напилить можно что угодно
Заебись гайд.
Щас запишусь на курсы в ШАГ, всего лишь 2.5 года обучения и я специалист широкого профиля.
Ты собес не пройдёшь даже со своими вышками. Всем нужен готовый специалист, который прям завтра будет приносить прибыль фирме.
После шага из тебя хуевый специалист получится. На твоей пикче вообще кора нет, зато есть WinForms, WPF и WCF отдельными пунктами. C BCL в 2к21 поржал.
С недоверием отношусь к советам людей, которые говорят "нет, это невозможно, бросай". Даже не выслушав аргументы.
Я не считаю что меня нужно учить. Ну да, какую то базу в виде принятой у них культуры написания кода, ознакомление с имеющимся кодом, возможно какой то фреймворк специфический придётся подучить. Но в целом я готов писать рабочий код. И готов предлагать свои идеи, если нужны.
Ты не доверяешь бывшему одногруппнику, но решил спросить совета у рандомного хуя на анонимной борде? Ну не знаю.
Браток. Смотри. У меня на работе тестировщики лютуют. Говорят - 400МБ на 2.5к коннектов+логгирование+запись в базу - много. В общем, давай так, я - как мидл+ - могу твое резюме подкинуть нашему тимлиду и ты уже через 2 дня сможешь работать, только поясни, как, блядь, меньше-то сделать? Я уже до ебанутого дошел - таски диспозю. Все им не нравится, говорят - много, вдруг же будет 250к коннектов и учитывая что потребление памяти линейно растет - это уже ~40000 гигов нужно будет, а це много, ну, по их словам, я им говорю, что для сервера эт не много, они на свой i5 с 16 гигами тыкают и говорят что на нем уйдет в файл подкачки и тогда пизда. Короче, помоги, братуха, и будет тебе чики-брики, 50к первые три месяца, потом, через год и сотка будет, потом - мож сам решишь куда съебать, тут к этому нормально относятся.
Непонятно только чего, кек.
Ну блин. Там как-бы не только сокет. Там каждый пакет - логгируем в базу(требование). Каждому клиенту - выделяется еще и серверный соккет(требование, чтобы можно было через сервер "напрямую" подключиться к клиенту). Плюс - шифрование(каждому клиенту уникальный ключ и чтобы постоянно не лазить в базу - кеширую ключ и привязываю к сессии, если отвалится - освобождаю). Плюс пинги переодически. Короче, там много всякой залупы. Плюс как-бы сессии долгоживущие, это не просто запрос - обработали и убили клиента, не, нужно держать соединение месяцами. Короче, я уже не представляю, что можно еще делать.
>В комментах идут жаркие споры о теории множеств и уникальности. Очень интересно, много нового узнал, спасибо
Дальше не читал.
он пару лет назад перестал писать на C#, сказал работы не было и пришлось перейти на другую технологию, поэтому он мне и советует не вкладывать в нее время. Я подумал, раз тут люди сидят, значит что-то пишут? Или тут одни студенты? Если есть те, кто уже работают, подскажите какое направление выбирать или какой лучше язык учить?
Лично я пишу для себя эмулятор 8-разрядной ЭВМ, потому что на С++ нет годных библиотек для графики.
>пишу для себя
>поскорее вкатится и начать зарабатывать
свистелки-перделки не интересно писать
>Есть базовые знания верстки и javascript
>чтобы поскорее вкатится и начать зарабатывать
Читаешь про реакт/ангуляр/вью. Делаешь на каждом ToDo-list. Выбираешь тот что тебе нравится больше. Начинаешь углубленно изучать. Читаешь про флексы, гриды и сразу забываешь, потому что сразу за этим читаешь про кроссбраузерную верстку и понимаешь что до сих пор нужно 11EE поддерживать. Читаешь про CSS, адаптивную верстку, анимацию на голом CSS, ну и желательно препроцессор какой-нибудь(SASS,LESS). Осваиваешь какой-нибудь NPM/YARN Дальше - делаешь пару проектов с апи, ролями, админкой. Парралельно ноду изучаешь и на ней делаешь простенький бекенд. Да, не забудь хотя бы базовый SQL, ну простенький джоин, знать про индексы, чтобы бекендеру с умным видом рассказывать что они есть(типа он тупой - не знает). Да, немного функциональщины чтобы использовать map и reduce с умным видом и пояснять за монады.
Сверху - делаешь ни гитхабе свою страничку с портфолио на Github Pages.
Собственно, все, начинаешь бомбить всех подряд. Все что я написал - учится за месяц, по 2-3 часа в день. Изи-бризи. По собесам будешь дольше ходить, но это просто потому что конторы хотят: ВЫБОР иметь и смотрят в первую очередь что ты няшный и НЕТОКСИЧНЫЙ, что поделать - вкатывальщиков дохуя. Но этот набор скиллов - на самом деле то что тебе нужно для работы.
кстати я вспомнил, одногруппник про node js говорит, что C# хуже его. Спасибо за совет, буду пробовать. И кстати да, зачем писать тогда на C#, если на нем нет работы? Писать всякие свестелки-перделки? Я думаю их можно и на другом языке писать
Потому что шарп выбирают ДЛЯ ДУШИ. Это реально приятный язык, с которым одно удовольствие работать. Я еще не встречал более приятного. Ну, т.е. да, есть неплохие, но это все не то.
Хотя плюсы, если все фичи что там понаобещали - нормально реализуют - будут вторым моим любимчиком. Но это извращенная любовь, просто плюсы столько моей крови в универе попили, но при этом столько радости доставляли, когда таки что-то получалось. Короче, типичные абьюзерские отношения. Шарп - няшечка, что любит тебя и ласкает, помогает и всячески поддерживает. Плюсы - сука что ебет тебя и постоянно вредничает, пилит мозг, но дает то что шарп не может дать - ощущение что ты превозмог и эта сука теперь делает что ты хочешь.
Определяй что реально из одного коннекта нужно то и храни в оперативе, а что не очень - то в отдельную бд. Это раз. Во вторых, все клиенты одну и ту же задачу решают? Если разные, то может на микросервисы поделить? Удобная штука и в отладке.
Есть шанс на такую вакансию вкатывальщику попасть?
Есть, судя по всему это какая-то говнопарсилка и нормальные люди туда хпазы дрочить не пойдут.
Ну да, ты прав. Вакансия на написание парсеров.
Собственно она меня очень интересует так как люблю разного рода парсеры регеры чекеры.
Ну тогда "звезды сошлись". Иди, в принципе, там тоже могут быть интересные таски, всякие боты-ноды и т.д. Но ты, скорее всего регекспы и хпазы дрочить после изменения исходников.
нет более страшной и бесполезной штуки чем регексы
>нет более страшной и бесполезной штуки чем регексы
Моя любимая вещь.
Вот эти все хпасы и селекторы сложно и не понятно пиздец, то ли дело регулярочки, хуяк хуяк и все готово.
Правда мне сказали если регулярками парсить хтмл страницу то нормальные пацаны перестанут руку жать.
> Ботоферма какая-то?
Та не.
Хуйня для поддержания соединения с датчиками с нестабильным каналом связи, например - GSM Ну, допустим стоит какая-то хуевина в поле и потребление воды измеряет, давление в трубах, еще что-то. Купить и воткнуть в нее симку - недорого, но вот купить еще статический IP - уже дорого в большинстве случаев(куче железок-то он нужен будет). Ну, собственно, хуевина подключается к серваку и можно что-то считать или послать команду уже через сервак, чтоб оператор не рубил соединение - периодически пингуем друг-друга, пакеты шифруем, чтобы знать что железка сдохла - все логгируем и можем, если надо - владельцу на почту/смс/куда-нибудь еще скинуть уведомление, потому что железка может сообщить на сервак о каком-то вмешательстве перед тем как пропадет соединение, плюс чтобы не дрочить саму железку по пустякам - часть инфы храним в базе и если клиент сверху хочет какие-то архивные данные - отдаем из базы, плюс это аудит, чтобы можно было сверить и легко задетектить вмешательство.
>если регулярками парсить хтмл страницу то нормальные пацаны перестанут руку жать
Хуйня это все. Хпасы и прочие ДОМ-выебоны - это удел веб-макак. Если можно вытащить регуляркой, надо тащить регуляркой. Если ты можешь себе позволить без напряга тащить деревом, то у тебя не парсер а говна кусок, обрабатывающий два с половиной документа в час.
Прикол с макаками в том, что у них
а) хуевые регекспы, которые еще и писать сложно
б) они не умеют их готовить, поэтому искренне полагают что регэкспы - это медленно
Лошары, хуле.
Проблемы регекспов в том что их читать невозможно(етественно мы говорим про сложные регекспы). И если ты видишь его в коде - ты либо должен просто поверить что человек который это писал - знал что делает, либо проверять на куче данных.
Няш, ты же сам понимаешь, что час программиста стоит недешево.
Тут как со сторями про кодинг под в-вами. Написать ты вполне можешь и оно, возможно, даже будет работать охуенно, только вот ты потом хуй разберешься как, а уж кто-то другой - так вообще не разберется.
> Куча бесполезной хуйни и стили для свистелок
> Немного СКЛ по остаточному принципу
Охуенный, блядь, совет. Заебись программист вырастет.
Потому что это работа фронтендера, няша. Фронтендер так-то не программист вообще. Это сорт оф промежуточное звено между дизайнером, браузером и программистами.
>Проблемы регекспов в том что их читать невозможно(етественно мы говорим про сложные регекспы).
Ну так пиши простые регекспы, епт. Можно подумать если человек дебил, то он для древа не сможет писать вырвиглазное трехэтажное говно. Молодой еще, расцвет моды на XSLT не застал, да?
Ну и нахуя ты советуешь ему идти в макаки если он сам этого не просил? У него сейчас есть макачьи навыки, советуй ему дельную хуйню, а не это говно. И, блядь, если уж на то пошло, нахуя макаке вообще скл? Ради строчки в резюме? Так это верный путь попасть в потогонку где каждый занимается всем. Нахуй надо. Не тяни молодых за собою на дно.
> Сейчас даже на джуна не берут, а предлагают бесплатно работать стажёром
Это потому что у тебя местом рождения указан Киев, а ты приперся на собеседование в ООО "КрымНаш".
> Ну и нахуя ты советуешь ему идти в макаки если он сам этого не просил
У него есть базовые навыки и при этом он хочет побыстрее ВКАТИТЬСЯ.
Перечитай пост.
> нахуя макаке вообще скл
Ну, вот требуют сейчас от них хотя бы базового. Я вот тоже до конца не понимаю, но я не так сильно в это дело вникал, я же таки бекендер.
Ну так пусть ВКАТЫВАЕТСЯ хотя бы в пэхопэ. Куда ж быстрее? Ты ему че накидал это ни разу не 1-2 месяц, не пизди. Одна адаптивная )и семантическая, конечно же) верстка в нормальном извозе займет тот же месяц. СКЛ даже по мелочи С НУЛЯ - это еще минимум месяц без сложных запросов. Идея твоя понятна, но реализация не соответствует ни ТЗ, ни авторской декларации.
>APM и EAP
Дед, у тебя деменция с галлюцинациями уже.
>наложив при этом ограничений и одновременно не потребовав лишних строк
Каких блять ограничений? Ты в штаны себе только "наложив". То, что тебе GetAwaiter().GetResult() надо в своем некроговне ебнуть, что бы библиотечка заработала или return Task.FromResult чтобы свое некроговно подкостылить?
>Вижу в присылаемом соискателями коде async/await - закрываю не глядя. Формоклепы (к тому же тупые) не нужны.
Ебанутся, и вот представьте как с таких додиком работать?
Это околофутболзавод? Нахуй вам тогда требования по перфомансу такие, если у вас нагрузка планируется на 100% и пиков быть не должно. Дешевле, безопасней и баглесс будет оперативки до 64гигов раздрючить.
>тебе GetAwaiter().GetResult() надо в своем некроговне ебнуть
Да иди ты нахуй, пес!
>Ебанутся, и вот представьте как с таких додиком работать?
Ну так они и не работают. Пусть к тебе идут, индусы ебаные.
>>тебе GetAwaiter().GetResult() надо в своем некроговне ебнуть
>Да иди ты нахуй, пес!
И что не так-то? Ну GetAwaiter().GetResult(фолсе)
Ты начал срать, что
" реально ради нихуя либо писать килограммы оборачивающего кода"
И что, когда, какой лишний код тебе писать надо-то?
Я предположил самые частые костыли в некроговне.
Речь не о замещении. Если ты не понимаешь моей боли, значит ты никогда не сопрягал нормальную асинхронную архитектуру с клиентом, написанным под это говно. Бля, лень даже объяснять. Я просто зашел высрать накопившуюся за день ненависть к этой бесполезной поебени.
Ты бы лучше привел пример когда это действительно удобнее чем TAP. С TAP - у тебя линейный код, если что-то нужно здесь - ты просто подождал - получил значение и пошел дальше.
Давай, просто для сравнения. Мне в этом методе нужно сделать два асинхронных запроса на чтение из двух файлов что-то с этим сделать и опять же асинхронно записать в третий файл.
С TAP я пишу:
async Task Foo(){
var data1 = await MyReadDataTask1();
var data2 = await MyReadDataTask2();
await MyWriteTask(data1,data2);
}
Теперь покажи как ты это же напишешь. Я засьтал APM и EAP и оба этих куска кода - превращают код в ебучий нечитаемый ужас, в котором даже те кто писал - разобраться не в состоянии уже через месяц.
Я понимаю если бы ты про перформанс или память рассказывал, да, с этим у TAP - хуевенько, но ты сморозил хуйню про то что EAP и APM - удобнее в плане написания кода, что просто на шизу похоже.
Идёт сопоставление по количеству и именам переменных. Но это мутный подход, лучше конкретно указывать метод.
>С TAP я пишу:
> MyReadDataTask1
> MyReadDataTask2
> MyReadDataTask10
Не, ну с таким подходом базара ноль.
> async Task Foo()
А вызываешь ты свой супер-метод тоже по статике и только из потока интерфейса?
>>102084
>Так может это в клиенте нормальная архитектура, а не в твоем некроговне?
Я бы и рад согласиться, но APM - не моя архитектура.
Искал графическую библиотеку, но ничего не нашёл. Поэтому решил изучать C# и WPF.
Учи Ерланг, базарю ещё захочешь.
У меня энтерпрайз, нахуя засорять память такой бесполезной инфой? Просто берешь пиратский ключик от энтера и все.
Меня скорее интересует вопрос - какие возможности платных выпусков полезны. Ведь код полноценно можно писать и на комьюнити. Да что там, в блокноте можно, но в комьюнити есть автодополнение, подсветка синтаксиса, пошаговая отладка, уведомление об ошибках, автоматизированная установка пакетов, шаблоны... А что такого есть в топовых пакетах (профессионал, энетерпрайз - не важно), что б имело смысл в этом разбираться
Из того, что может реально использоваться, в тырпрайзе анализ дампа памяти, генерация фейков для тестов (антипаттерн), генерация диаграммы зависимостей. Между комунити и про вроде нет разницы, раньше плагины нельзя было ставить.
Для кода может хоть бесплатный VS Code использовать, заодно поймешь в чем разница между IDE и блокнотом, который притворяется IDE.
Это еще форматер хмл, между прочем.
На Java есть InteliJ IDEA и Eclipse
В том-то и дело, что в книгах хуйня какая-то. Многое упирается в устаревший интерфейс программ.
Документация от майков бывает хороша, а бывает ниачем. Да и там разбросанные клиповые топики. Книга таки лучше, потом, если есть время - пробежись и по докам для закрепления и "о, в ниге такое читал, но тут еще такая вот перегрузка есть"\
>>102569
>Многое упирается в устаревший интерфейс программ.
Лол. Что ты там читаешь, гайд с кортинками какие кнопки жать, чтоб проводник открыть?
>то мне надо пройти по ссылке https://docs.microsoft.com/ru-ru/dotnet/csharp/
Только на ру-ру там такой пиздец бывает, будто промт из нулевых переводил.
Так где я мог?
TcpListener - принимает TcpClient, я создаю объект ChatUser(TcpClient tcpClient, Func<ChatUser, ChatMessage task> onMessage). Сохраняю клиента как поле и сразу достаю NetworkStream. ну и коллбек сохраняю.
У клиента метод void Run(CancellationToken); В этом методе буквально:
void Run(CancellationToken)
{
if(!_running)
{
running = true;
_receiveDataTask = RunReceive(CancellationToken);
}
}
В RunReceive(CancellationToken) -
while(!CancellationToken.IsCancellationRequested )
{
byte[] buffer = new byte[1024];
int len = await _networkStream(buffer,CancellationToken);
if(TryParse(buffer[..len], out ChatMessage message)
{
await _onMessageCallback(this, message);
}
}
И вот по всему пути - NetworkStream - нормальный, но когда я собираюсь отправить ответ - ObjectDisposedException(((
При этом я клиентов перед тем как вызвать метод Run - сохраняю в лист, чтобы можно было рассылку делать. Я же ничего не диспозю нигде, нигде using не использую, а cancellationToken - сервер при отключении через CancellationTokenSource активирует, но он не активирует его тут. А вот эта хрень происходит. Почему так-то?
И при этом всем - оно именно активно проявляется в случае если проект ASP.Net. Я просто его использую, чтобы можно было смотреть число активных подключений и прочую биллиберду.
Так где я мог?
TcpListener - принимает TcpClient, я создаю объект ChatUser(TcpClient tcpClient, Func<ChatUser, ChatMessage task> onMessage). Сохраняю клиента как поле и сразу достаю NetworkStream. ну и коллбек сохраняю.
У клиента метод void Run(CancellationToken); В этом методе буквально:
void Run(CancellationToken)
{
if(!_running)
{
running = true;
_receiveDataTask = RunReceive(CancellationToken);
}
}
В RunReceive(CancellationToken) -
while(!CancellationToken.IsCancellationRequested )
{
byte[] buffer = new byte[1024];
int len = await _networkStream(buffer,CancellationToken);
if(TryParse(buffer[..len], out ChatMessage message)
{
await _onMessageCallback(this, message);
}
}
И вот по всему пути - NetworkStream - нормальный, но когда я собираюсь отправить ответ - ObjectDisposedException(((
При этом я клиентов перед тем как вызвать метод Run - сохраняю в лист, чтобы можно было рассылку делать. Я же ничего не диспозю нигде, нигде using не использую, а cancellationToken - сервер при отключении через CancellationTokenSource активирует, но он не активирует его тут. А вот эта хрень происходит. Почему так-то?
И при этом всем - оно именно активно проявляется в случае если проект ASP.Net. Я просто его использую, чтобы можно было смотреть число активных подключений и прочую биллиберду.
Ну, вот большая часть клиента. Парсинг пакета не думаю что мог вызвать исключение, потому что там вообще стрим не трогается.
Ну, а текст коллбека:
(u, m) =>
{
Console.WriteLine($"{u} accept {m}");
return _controller.HandleMessage();
}
принимаю клиенты вот так:
while(!_cts.Token.IsCancellationRequested)
{
var client = await _listener.AcceptTcpClientAsync()
var chatUser = new ChatUser(client, _callback);
_users.Add(chatUser);
chatUser.Run(_cts.Token);
}
Ну, думаю понятно что текстом без студии имена и аргументы в коллбеке проебал, но суть уловить можно.
Дальше я так понимаю будут вводить класс "Islam"?
Ну хз тут ничего не видно. У тебя конечно будут проблемы с получением сообщения, когда ты запустишь не на локалхосте а в реальной сети, но к этому эксепшону это отношения не имеет. Если выложишь проект на гит, я бы мог у себя запустить и посмотреть.
И чем им джоны доу не угодили.
>>103068
штук 20 встроенных всего
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/built-in-types
Ну ебош var или вообще dynamic лол.
Я вот изучил типы переменных, массивы и циклы, но мне сказали, что это всё фигня и даже за еду не возьмут работать. Надо быть ходячей энциклопедией, чтобы взяли. Только чувствую, что их сотрудники сами ни черта этого не знают, а просто на собесах выделываются.
Это не самое страшное, я вот до этого питон изучал, прочитал целую книгу, изучил тоже все эти циклы, переменные, выполнял задание с книги и по итогу понял что нихуя сделать не могу с этими знаниями. Просто не могу ничего написать и всё. В итоге с горя забросил всё, а спустя время побольше узнал про c# и решил его изучать, так как он мне интереснее показался
>их сотрудники сами ни черта этого не знают, а просто на собесах выделываются.
Так и есть. Когда человек нужен для работы, его берут даже если он ни на один "умный" вопрос не ответил. Любой опытный наниматель понимает что обучение и погружение неизбежны. Общая вменяемость соискателя намного важнее конкретных знаний. Случалось брать людей которые даже про алгоритмическую сложность не знали, чисто думалкой выбирали лучшие варианты, ни разу для себя даже не формализовав вопрос. Один раз пнул, дал учебник, все, человек все понял и дальше уже не косячил. А когда тебя гоняют о всякой хуйне на собеседовании, это значит работа будет стопудово говно. Хотя бы потому что твоим начальником будет дебил, сам не понимающий зачем ему в команде люди и как они на самом деле устроены. Конечно, мои слова не утешат джунов и на них сагрятся швабробляди, отсидевшие по пять интервью на позицию сраной удаленной макаки в модной западной конторе, но с опытом ты придешь к пониманию что я прав. Если есть возможность не бросаться на хуи дрочены из-за голодухи, то воспользуйся этим знанием уже сейчас и огради себя от говноконтор.
>В питоне вообще явно указывать их не надо
Поэтому питон и говно для всякой мелкой наколенной хуйни.
Вот у меня есть команда doc.execCommand("Bold", false, null) - жирность текста меняется противоположному текущему значению, а как сделать так чтобы жирность всегда убиралась? Навскидку присвоение третьему параметру false нихуя не изменило поведение.
inb4: ремувь теги.
Как я понял, подписка/отписка каждый раз создаёт новый объект Delegate?
Ты про дефолтные ивенты лучше забудь.
>Как я понял, подписка/отписка каждый раз создаёт новый объект Delegate?
Нет, конструкция лямбды выделяет память на объект с полями, которые попали в замыкание. Лямбды можно закешировать или закомпилировать. Выделяют ли память сами операции += и -= - в душе не ебу.
Мб книжка или сайт с задачами какой.
Движок для игры.
Серьезно.
Банально: рендерер софтверный, звуковой движок, сетевой движок, интерпретатор для своего скриптового языка, ввод-вывод, управление ресурсами.
Базарю. Попрактикуешься охуенно. Как раз к концу лета закончишь, сможешь говорить что не зря лето проебал.
Ну блядь, игровой движок состоит из модулей, которые в свою очередь тоже обычно называются движками.
Не я придумывал терминологию.
Лол. Для этого необходимо знать html/css, js (+ стандартный стек) и БД - это МИНИМУМ. Какая нахуй копия двача?
Немного похожий вопрос. Что можно поделать, с чем поиграться, пока ты ничего особо не знаешь и только учишься?
Пасиб, я в гугле нашел еще вот https://github.com/wangkanai/Detection#aspnet-core-detection-with-responsive-view
хз наверное буду ее юзать
Попробуй сделать текстовую РПГ. Тут-то и знать нужно: ввод-вывод, ветвление, если сильно уж хочешь заморочиться и показать что ты не хуй с горы, а ПРОГРАММИСТ - придумай свой формат для хранения твоего текста и логики игровой, а сама программа - просто парсит его, ну и ведет подсчет характеристик всяких.
Как мне не проебатся с лицензией на эти библиотеки? Мб есть у кого табличка где указанно что позволяет лицензия. А то вдруг я добавлю в проект что то, а потом захочу донаты собрать а лицензия той библиотеки не позволит.
https://habr.com/ru/post/243091/
На хабре есть статья но МНАГАБУКАВ, мб есть что попроще?
Видишь МИТ, значит можно использовать. Если либа с двойным лицензированием или платная для коммерции, ты это увидишь.
Напиши эмулятор ZX Spectrum, а потом для Спектрума упрощенную CLR и компилятор C#.
Дегенератушка, если анон будет способен сделать копию двача своими силами, то НАХУЯ ЕМУ ВООБЩЕ В ЧЕМ-ТО ПРАКТИКОВАТЬСЯ? Он уже мидлом работать должен.
Пиздец, какие же здесь шизоиды сидят.
Начинаешь делать копию двоча, и понимаешь что не знаешь как сделать что либо, идешь читаешь а потом делаешь.
Так на много легче определить своё незнание.
codewars.com
Вот пример задач:
Конвертировать число в римскую систему счисления.
Преобразовать секунды в строку, по типу: "2 day, 3 hours and 20 seconds".
Разложить число на простые множители.
> И чем им джоны доу не угодили.
Белые. Цисгендерные. Угнетательные. ВЕКА РАБСТВА! ВЕКА РАБСТВА ОХОСПАДЕ! ЗАПРЕТИТЬ! ЗАПРЕТИТЬ!!!!
enterprize fizzbuzz
group = db.Groups.Include(u => u.Flows).OrderByDescending(i => i.Identifier).Where(x => x.Id == id).FirstOrDefault();
Ребяты почему так не работает?
У меня в Identifier лежит число 1,2,3 и тд.
Но мне не сортирует по этому числу. Один хуй что OrderBy что OrderByDescending.
Во вью у меня просто @foreach (Flow fl in Model.Flows)
двачую за копию харкача. Я один из первых проектов писал на WPF парсер контента который на пайтоне пишется в 4 строчки. С призм по MVVM, многопоточкой и прочей хуйней. Мне понравилось.
Ты про статью-то?
Когда БД спроектирована корректно, очень сложно накосячить с джойнами.
Но когда БД - это несколько наспех наколхоженных таблиц, которые тебе надо обработать, то здесь нужно очень хорошо понимать, что и как на самом деле делают джойны.
Например то, что в копию харкача входит копия куклоскрипта, переделанная, чтобы выкинуть оттуда хохлоблокировки. А куклоскрипт ты так просто не повторишь.
А что должно сортироваться, если ты выбираешь конкретный элемент по ID?
>Where(x => x.Id == id)
По умолчанию как на втором, такое в подавляющем большинстве проектов.А когда будешь писать для дяди, то там уже всё за тебя будет решено.
Кстати, сейчас подумал, что Шилдт, возможно, выбрал такой стиль, чтобы книга не распухала - каждая страница это минус бабки издателя (для печатной версии офк).
Ну нужно отсортировать список List<Flow> который есть в Модели которую я беру
Identifier это чьё свойство, пот твоему коду - группы. Если тебе нужен только один флоу для каждой группы, то так и пиши:
groups.Select(g=>new {Group = g, FirstFlow = g.Flows.OrderBy().FirstOrDefault()})
если надо установить этот один флоу в group.flows, что выглядит нелогичным (тогда уж лучше тянуть флоу и делать инклюд групы), то делай это на стороне клиент, а не бд. Include тебе вытащит все записи.
Или ты можешь получить все флоу и отсортеровать на клиенте иди загрузить флоу отдельным запросом с нужной сортировкой. Ты очень непонятно описал задачу.
Почитай про современный Coding Conventions. У приватных переменных всегда используют префикс '_'. Всегда ставят фигурные скобки { } и т.п.
Ага, еще венгерскую нотацию ему предложи.
Круто. Раньше (вроде даже core 3) нельзя было ничего делать в инклюде, а теперь попробовал, даже можно даже Skip/Take делать. Время переходить на Net5.
Что-то оптимизируют для пагинации. Было так интересно, что я аж забыл.
https://youtu.be/rrlRydqJbv0
Я так понял что это ты присваиваешь переменную string и какой-то ее модуль Empty берешь? Если так, то зачем? Судя по названию он сделает переменную пустой, но какой в этом смысл если есть null переменные уже.
В общем я вообще запутался
Короче, суть. Под капотом там примерно прикриплейд.
Зачем так делать? Чтобы ты мог быстро проверить что тебе пришла пустышка и в зависимости от твоей логики что-то делать.
Банально. Вот ты делаешь метод T Find<T>. Не найти там то что ожидают - нормально, потому кидать исключение - не оч хочется. Вернуть null клиенту - тоже не хочешь, потому что сигнатура такова, что клиент ожидает что-то получить и возможно не будет проверять на null. Напоминаю, что ? для ссылочных типов появился относительно недавно. Вот и считалось хорошим тоном - вернуть пустышку. Я сам - не оч люблю это, потому что клиент может и на пустышку не проверить и начать дальше тянуть данные, хотя должен был как-то это обрабатывать. Но вот так вот делали довольно долго.
>что это за string.Empty?
Пустая строка. Она же строка из нуля символов.
>какой-то ее модуль
Что за модлуль, ты что там куришь?
> зачем?
Пустая строка - обычная срока. А налл это ссылка в никуда, и при попытке вызвать какие-то методы ты получишь NRE.
да
Вопрос прямиком из середины 90-х?
В 2к21 каждый пишет как ему нравится. Потом линтер всё приведёт к единому стандарту.
>У приватных переменных всегда используют префикс '_'.
Для совместимости с visual basic, который не различает заглавные и прописные буквы?
Я так делал всегда исключительно из-за того что студия сразу дает список полей и можно стрелочка выбирать.
alt+f
> сканирование на принтере
Нет, принтеры не умеют сканировать.
А так хули нет то? Бери и делай.
Просто я вообще не понимаю куда копать надо чтобы узнать как это сделать. В винде есть утилита встроенная для копирования, но я не представляю вообще как к ней доступ получить из своей программы
Часть из них инициализируется в специальном методе, который вызывается из конструктора.
Анализатор студии подчёркивает конструктор и выдает предупреждение что такие-то ненуллябельные поля должны быть инициализированы в конструкторе.
Как правильно подсказать анализатору, что пусть позырит в такой-то метод, там всё инициализируется.
Этот вкатышь порвался от базвордов, несите следующего.
Только если есть похожий опыт.
Все что в том посте есть - ты должен был изучить пока учил язык, лол.
Ну серьезно, как ты мог про LOH ни разу не слышать, если читал про GC? Или как можно было про GC не слышать, если ты, блядь, ручками ничего не освобождаешь? Как по твоему оно удаляется-то? Ну или IL - это вообще вводная любой книги по шарпам.
Короче, я надеюсь чел либо вообще ничего не учил, либо имел хитрый план как студент - ебланить семестр и за неделю до экзамена все выучить.
Суть, за неделю - нельзя, но если есть опыт в программировании - за две - вполне. Если нет опыта - за полгодика как раз в размеренном темпе и выучишь.
Сейчас же лето. Как раз наполучали дипломов "осторожно, специалист!" и ищут куда вкатиться.
Вот серьезно. на кой хуй делать:
IFactory<T>{ T Build(); } и инжектить эту поебень в конструкторе, если можно сделать вот так:
MyClass(Func<SomeRequiredClass> factory)?
Это же намного удобнее, не плодит кучу классов.
Что такое лямбда?
Вопрос уровня зачем передавать object, когда можно передать void*, как диды передавали.
Делегаты - это удобно, но это не ООП. В той же Джаве, которая является золотым стандартом отрасли, делегатов нет, и не будет.
Грустно
Вот зачем превращать язык в набор малопонятных закорючек? Так и скатиться до уровня Perl не долго.
Охлади свое траханье. Пока лямбды не такие как на плюсах, но в некст версии предлагают это исправить.
Как писать кроссплатформенные приложения на Core с WPF?
Потому что про WPF .Net всё уже написано, а WPF .Core, как я понимаю, нихуя никому не нужен и не работает толком.
В ноябре будет MAUI, потыкать в него палкой давно можно. Может быть выстрелит. WPF - виндовс онли, похуй, кор, не кор.
Прошел 8 собеседований (те, на которые пригласили). ЗП - 35к на испытательном. Место действия - ДС. Возраст - 24 лвл. Промышленное предприятие.
Удивляют меня такие посты, потому что реально знаю людей, которые вышли на 200к через год-два после вката.
Сам планирую вкат.
Ну видимо действительно, первый год для трудовой стоит поработать за еду и в процессе постоянно искать норм варик.
Удивляют меня такие посты, нехуя не знаешь, но хочешь 200к через год-два, будучи вкатышем.
Про трудовую даже как-то смешно.
Так хули ты хотел. Мало того, что сейчас тонны вкатунов, так C# - это худший язык для вката (на собственном опыте, как говорится). Половина группы вкатилась фронт и бэк на php, пока я с шарпом ебал себе мозги почти весь год.
Трудовая это образно, понятно что бы просто показать где и над чем ты работал.
>>107075
Для вката во фронт ещё нужно иметь какое то художественное видение, как сделать красиво. У меня вот с этим беда. А писать код на пхп, зная шарп, вообще не представляет каких то трудностей. Достаточно пары дней чтения гайдов.
А мог не дрочить на красивый синтаксис (хотя с последними версиями тут спорно), а вкатиться в жабу
P.S. Я так чуть джуном на питоне не устроился. День почитал туториал, потом прошёл собеседование первый этап и дали тестовое на второй. В принципе мог сделать, но особо не хотелось питоном заниматься.
>Удивляют меня такие посты, нехуя не знаешь, но хочешь 200к через год-два, будучи вкатышем.
Такие зп в отрасли.
Думаешь другие дохуя знают?
Демпинговать - это худшее, что можно сделать.
Зп зеленого джуна после книги Рихтера и одного пет-проекта - минимум 80к. Это нормально. Но 35к? Кассиры больше получают.
>Зп зеленого джуна после книги Рихтера и одного пет-проекта - минимум 80к
АХАХАХАХАХАХАХАХАХАХАХ.
Сколько мы ни набирали джунов в наш богомерзкий банк, НИКОГДА таких ЗП не предлагали. Даже задротам такие деньги не платили.
Опыт есть? Тогда другой разговор. Но 80к ДЖУНУ на ШАРПЕ, БЛЯДЬ - это что-то за гранью фантастики.
Ну как бы смысл идти в программисты на зп меньше 1к баксов в ДС? Что это за мазохизм? Ладно я понимаю, если речь про явный испытательный срок, типа погоди 3 месяца, сырых вкатунов много, если всё ок, то потом будет норм зп, сразу пересмотрим.
Но если речь о том, что берём на джуна на 35к, а там ПРОЯВИ СЕБЯ, через год два вернёмся к вопросу ПО РЕЗУЛЬТАТАМ ОЦЕНКИ ДЕЯТЕЛЬНОСТИ, то это как бы сразу нахуй.
Ведь кто идёт в кодеры? Либо это студенты, зачастую с серьезной мат. подготовкой. И вот ты такой ебашил 5-6 лет в ВУЗике, а тут хуяк, и тебе предлагают зп уровня как джамбулату из соседнего магнита, который мешки на складе двигает.
Либо же ты зрелый вкатыш из какой-то другой профессии. НО КАКОЙ? Нет такого дна в ДС, из которого ты ушел бы на 35к, потому что везде уже на входе платят больше. Курьеры 50к получают при нормальной пятидневке.
Или это дотнет такое особое болото? Но почему тогда так сложилось?
Потому что программисты сейчас не нужны. И уровень зп это наглядно демонстрирует. Вкатыши - это баласт, который лишь через 1-2 года сможет приносить прибыль. Зачем ему вообще платить деньги, чтобы он за счёт фирмы научился, потом пошёл к конкуренту на более высокую зп? По идее 35к должен джун платить фирме за то, что получает опыт (учиться).
>Ну как бы смысл идти в программисты на зп меньше 1к баксов в ДС?
>>107196
>Либо же ты зрелый вкатыш из какой-то другой профессии
"Зрелый вкатыш" идёт строго нахуй: https://insights.stackoverflow.com/survey/2019#developer-profile-_-age
В моём мухосранске даже 35к - это дофига какие деньги, но вот берут ли вкатыша на удаленку?
Мужик, ты вообще вакансии открывал? 2010-2015 года прошли. Сейчас за знание базовых вещей никто платить большие деньги не будет.
Главное, чтобы работала и можно было писать реально кроссплатформенные приложения.
Вообще удивительно, что у Net сходная технология с Java, но до сих пор она платформозависима.
>вот берут ли вкатыша на удаленку?
В 99% случаев нет. Никто в здравом уме не возьмет вкатуна на удаленку. Это потеря денег, времени и, возможно, проблемы с продуктом в перспективе.
На сколько я знаю, MAUI - это ребрендинг Xamarin, который позволяет еще делать декстоп, не только мобилки. Так что довольно высокий шанс, что теха не сдохнет как Silverlight.
>Net сходная технология с Java, но до сих пор она платформозависима
Такое себе сравнение. На Java декстоп пилят только извращенцы. Гейось не поддерживает. Тырпрайз на шарпе кроссплатформенный.
У меня нет гейоси, я бедный гейчик(
Это РФ в целом, не ДС.
В Сызрани, Магнитогорске, Североуральске и Ростове зп ниже в 1.5-2 раза минимум, во всех сферах. Так что и кодеры местные страдают.
>>107217
Написать в тексте вакансии можно всё что угодно. Но я регулярно слышу истории о том, как чуваки с абсолютно нулёвыми знаниями скачут с по должностям и компаниям с повышением зп. Это не значит, что речь про дебилов, нет это разговорчивые поцики, которые всегда на месте найдут того, кто расскажет и покажет, а они уже въедут. Но суть в том, что даже дочитыванием рихтера хотя бы до середины там и не пахнет. Просто язык подвешенный, умеет быть дружелюбным, производить впечатление.
Просто даже если ты солидный молодой мужчина ростом под 190 с поставленной речью и одетый с иголочки, опрятно брит и стрижен, умеешь себя подать, но шаришь реально хуёво, то скорее всего возьмут тебя, чем какого-то вонючего мелкого задрота с писклявым голосом в мятой футболке, который шарит на уровне синьора-архитектора. Потому что в первом случае спишут на волнение, но видно, что умный, а во втором случае - задрот натаскивался к собесу, пытался нас наебать, но мы его разоблачили.
>Это РФ в целом, не ДС.
В ДС и ДС2 большинство вакансий стажеров/джунов, так что это именно про ДС
>Но я регулярно слышу истории
- Доктор, вот уже пять лет, как я не сплю с женой.
- А сколько вам лет?
- 65.
- Это возраст, батенька, возраст.
- А вот соседу 75, он говорит, что ежедневно...
- Ну, и вы говорите.
>- Ну, и вы говорите.
Ну как бы я сейчас работаю в НИИ-параше и готовлюсь ко вкату.
Так вот что я тебе могу сказать. Если прочитать требования к кандидату на какую-нибудь должность ведущего специалиста у нас в конторе, то окажется, что и половине этих требований реально не соответствует вообще никто из тех, кто там работает, а по стране таких найдётся может быть несколько десятков. Более того, среднетипового сотрудника (уставшего от жизни предпенсионера или бойкую тётку 40-ка лет) на самом деле легко можно заменить 20-летним пацаном на энтузиазме вообще без ВО, которого за 2-3 дня можно было бы ввести в курс дела, показать как и что делается, и он делал бы работу этих опытных сотрудников с не меньшим качеством, но в разы быстрее.
Я не думаю, что в программировании должно быть всё устроено принципиально иначе.
С одной стороны, компилятор может понять, что структура иммутабельна и всё оптимизировать?
С другой стороны, компилятор может напряться, что ему надо гарантировать неизменность, и везде будет ебашить кучу копий структуры, чтобы уж наверняка?
>Ну как бы я сейчас работаю в НИИ-параше и готовлюсь ко вкату.
В этом твоя главная проблема. В айти тебя пошлют нахуй в первую неделю испытательного срока, если ты не соответствуешь требованиям.
Ты забыл самую главную причину, почему программистам платят зарплату - они приносят деньги бизнесу. А твое НИИ никому деньги не приносит кроме тех, кто там работает и пилит.
Готовься к тому, что твой манямирок треснет, когда перекатишься в айти.
Перекат: https://2ch.hk/pr/res/2107311.html (М)
Перекат: https://2ch.hk/pr/res/2107311.html (М)
Перекат: https://2ch.hk/pr/res/2107311.html (М)
Перекат: https://2ch.hk/pr/res/2107311.html (М)
Пошел на хуй.
> Под капотом
под каким нахуй капотом? Я не вижу пояснений, что нельзя на ссылку из стэка присвоить другую ссылку (причем на стринг пул).
>что тебе пришла пустышка
обработка null происходит на клиенте, никому нахуй твои пустые модели не нужны.
>сигнатура такова
сигнатура чего?
>относительно недавно
2 года, да-да, недавно
Я не знаю, что за хуету невнятную я прочитал, мог бы еще обоссать по скрину (по первым строчкам с string.Emtpy и int = 0 понятно, что за овощь пишет), но чего-то влень
>>105049
смотри вакансии в своем городе и решай
>>105278
>пишет как ему нравится
вот это поворот
>>105600
вопросы уровня: "C# тред"
>>106365
>базвордов
Хуя жирнота. По сабжу - пусть лучше сразу рвуться, чем задают вопросы, высранные выше
>>106482
на самом деле, вкатыши, которые суют нос из JS не хотят ни в чем разбираться. Даже смотря на коллег, которым тупо похуй на базовые вещи, на которых можно утонуть на первом собесе
>>106464
>запускаю IIS express с дефолтными настройками в VS
он локально разворачивается на выбранном порте
>выставляю свою пекарню на весь интернет?
читай, как из пекарни делать хостинг, потыкай, поиграйся с DNS, походу поймешь
>>106697
подрастешь, поймешь как писать абстракцию, изменишь свое мнение. За лямбду в конструкторе на первом ревью ссут на голову
>>107075
двачую этого
>>107083
>мог не дрочить на красивый синтаксис
долбоебики, которые кроме решеток в жизни ничего не видели, думают, что тут самый лучший синтаксис нет. На вкус и цвет
>>107198
рынок вкатыши прогнули так, что жуки-плавунцы поработав 2-3 месяца пиздуют крутить баранку в яндекс-такси с зп в 3 раза выше
> Под капотом
под каким нахуй капотом? Я не вижу пояснений, что нельзя на ссылку из стэка присвоить другую ссылку (причем на стринг пул).
>что тебе пришла пустышка
обработка null происходит на клиенте, никому нахуй твои пустые модели не нужны.
>сигнатура такова
сигнатура чего?
>относительно недавно
2 года, да-да, недавно
Я не знаю, что за хуету невнятную я прочитал, мог бы еще обоссать по скрину (по первым строчкам с string.Emtpy и int = 0 понятно, что за овощь пишет), но чего-то влень
>>105049
смотри вакансии в своем городе и решай
>>105278
>пишет как ему нравится
вот это поворот
>>105600
вопросы уровня: "C# тред"
>>106365
>базвордов
Хуя жирнота. По сабжу - пусть лучше сразу рвуться, чем задают вопросы, высранные выше
>>106482
на самом деле, вкатыши, которые суют нос из JS не хотят ни в чем разбираться. Даже смотря на коллег, которым тупо похуй на базовые вещи, на которых можно утонуть на первом собесе
>>106464
>запускаю IIS express с дефолтными настройками в VS
он локально разворачивается на выбранном порте
>выставляю свою пекарню на весь интернет?
читай, как из пекарни делать хостинг, потыкай, поиграйся с DNS, походу поймешь
>>106697
подрастешь, поймешь как писать абстракцию, изменишь свое мнение. За лямбду в конструкторе на первом ревью ссут на голову
>>107075
двачую этого
>>107083
>мог не дрочить на красивый синтаксис
долбоебики, которые кроме решеток в жизни ничего не видели, думают, что тут самый лучший синтаксис нет. На вкус и цвет
>>107198
рынок вкатыши прогнули так, что жуки-плавунцы поработав 2-3 месяца пиздуют крутить баранку в яндекс-такси с зп в 3 раза выше
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.