3. WinForms или WPF? Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
5. Какую IDE выбрать? Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS. Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ). Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ). Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.
7. Что почитать? — The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода. — C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь. — C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. — C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой. — Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал — CLR via C# (Jeffrey Richter) — это классика, это знать надо. — C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются. — Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF — Pro WPF 4.5 in C# (Matthew MacDonald) — Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET — Pro ASP.NET Core 3 (Adam Freeman) — Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму — Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции. — Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная. — Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке — Creating Mobile Apps with Xamarin.Forms (Charles Petzold) — Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes) — Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению — Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов. — Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать? На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду? — Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper. — Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов. — GitHub — issues, пулл-реквесты, теги, релизы, Actions. — Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках. — Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы. — Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue). — Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
Рихтер пишет, что с помощью вижуал студио нельзя создать сборку с несколькими файлами, а только с помощью csc.exe/AL.exe. Ну вот возьму я ВинФорм приложение, напихаю туда форм и отдельных классов.cs, скомпилирую в приложение Program1.exe - это разве не будет сборка, состоящая из нескольких файлов?
>>2096551 У Рихтера много информации уже неактуально. Сборка (assembly) - это ехе или dll файл, одна штука. PDB - можешь удалить, там отладочная инфа для дебагера. config - твой App.config - не часть сборки.
>>2096556 та я понимаю, что exe файл мой это сборка, я вот не понял типа - вот все классы и формы у меня находятся в сборке, то бишь в exe файле, то есть сборка состоит не из 1 файла, а у него написано что только из 1 может состоять (если компиляция в вижуал студио). Значит это неактуальная инфа прост (про колво файлов в сборке)?
>>2096551 Если книга вышла до 2019, то уже не актуальна. Я сам наступил на грабли, когда пытался учиться по книге 2018 года. Там даже примеры уже не компилируются, потому что всё поменялось.
Как вы пишите и храните sql запросы? Я сейчас пишу сaм запрос в dbeaver, потом копирую в notepad++ там через замену экранирую кавычки и уже копирую в студию. Мне кажется я где-то повернул не туда.
>>2096654 Настраиваешь свой ci/cd с блекджеком и шлюхами. Один из билд степов делаешь для накатки дб миграций. Забываешь про кнопки rebuild/build в ide. Сиквел хранишь в сиквел файлах, оф коз.
>>2096680 Я тебе предложил из говна сделать говно в красивой обертке. От миграций ты все равно не избавишься. Начни с чтения sql файла, добавь миграции, добавь билд тулз (Cake/Nuke), добавь билд агента, добавь деплой на свой энв.
>>2096655 В 2017 иной менеджер создания проекта и саму начинку проектов перепилили под Core. Новичок в этом не разбирается и ошибочно создаст проект с Core, где ничего нет, вместо старого, но рабочего .Net Framework 4.7. Понятно, что опытный разработчики вручную может подшаманить проект, но ему-то как раз не нужно читать книги для новичков.
>>2096686 > От миграций ты все равно не избавишься. Почему? А если я даппером тяну из базы, которая вообще к моему проекту отношения не имеет? Миграции к моему вопросу не пришей кобыле хвост. >чтения sql файла Ну допустим. Засуну я их в ресурсы приложения, а писать-то как, в студии ни автодополнений, ни форматирования и ебля с экранированием. >добавь миграции, добавь билд тулз (Cake/Nuke), добавь билд агента, добавь деплой на свой энв. Подвернуть штаны и налить смузи не надо? Все эти вещи ортоганальны тому о чем я спрашиваю.
>>2096695 >А если я даппером тяну из базы, которая вообще к моему проекту отношения не имеет? Это ты нарушаешь S в SOLID? Какой смысл тогда писать sql запросы, если они к проекту не имеют отношение?
>>2096695 Пиши в dbeaver и сохраняй в виде sql файла сразу в нужную папку.
>>2096695 >Подвернуть штаны и налить смузи не надо? Один, пожалуйста.
>>2096700 >Это ты нарушаешь S в SOLID? Какой смысл тогда писать sql запросы, если они к проекту не имеют отношение? Ты дурак? Сделать выборку из базы, которую не я создавал, у меня нет миграций. Ей занимаются люди в другой стране и пИшут на T-SQL без миграций. А мне надо хитрым запросом вытянуть данные и это запрос занимает несколько экранов. Вопрос как можно удобно писать эти sql запросы в студии и как их хранить не сраной огромной строкой. И отдельный вопрос пи чем тут вообще dependecy inversion?
>>2096707 >Я думаю у тебя там дураки работают, и сам ты дурак Один ты красивый в белом платье >прямым доступом к бд А каким доступом мне пользоваться? Моя программа апишка для клиентов. Они мне запрос я им данные из базы. >Про DI я ничего не говорил, где ты это увидел? Ок. К концу дня уже глаза замылились. Ну а единственная ответственность при чем тут. Есть класс который берет из базы данные где здесь много ответственностей и на что это разбить по-твоему можно?
>>2096720 >А каким доступом мне пользоваться? Заставляй этих ленивых хуев предоставить тебе апи, раз дата леер не часть твоего проекта, а не прямой доступ к бд. Прямой доступ к бд - это пушка.
Вот как бороться с таким вот пиздецом? Я просто не понимаю. Ну, т.е. в теории-то нет проблем пока это первые три. Но потом чтобы оно работало вместе - пиздец типа 4 выходит. У меня горит с того как это некрасиво. Хочу красиво. А красиво не выходит(((
Стоит ли вкатываться из C++ в C#? Сильно ли я проиграю в скорости программ из-за того, что программы будут выполняться на виртуальной машине, а не на настоящем процессоре?
>>2096848 Ну смотри. Я открываю ссылку с каталогом, которую кинули. И вижу, что у всех тредов тег подсвечен другим цветом, а у C# треда #27 нет. Очевидно предположить, тег написан в заголовке треда, а не в нужной филде для тега, при создании.
>>2096803 Да еб вашу мать. Вы читать не умеете или троллируете меня? Оно умеет в оконные функции, cte? А cross apply делать научили или так и генерирует адовые джойны? Да и один хрен сложный запрос сгенерированный автоматически будет в разы медленней. И вопрос был не про это, совсем.
>>2096858 И вот ты похоже подбираешься к пониманию моего вопроса из первого поста: >Как вы пишите и храните sql запросы? Я сейчас пишу сaм запрос в dbeaver, потом копирую в notepad++ там через замену экранирую кавычки и уже копирую в студию. Мне кажется я где-то повернул не туда. Если прочесть не жопой, то тут нет ничего про еф, а как раз про чистый sql. Да-да тот самый select x from y...
>>2096861 Unity - это как из пушки по воробьям. У меня обычное десктопное приложение, но с прямоугольной областью, где выводятся пиксели. Я слышал, что WPF работает сразу с DirectX напрямую, а программист пишет приложение даже не задумываясь как это всё выводится там на низком уровне.
>>2096878 Заметь, я тебе предложил вызвать роу квери. Ты потом радостно кому-то ответил, что использовал valuegeneratedonadd.
Потом, я тебе не просто так предлагаю использовать миграции. Ты нарушаешь принцип единственной ответственности и кривовато все: 1. У тебя код решает как доставать данные. Эту ответственность необходимо делегировать или в паттерн спецификация, или в отдельный слой. 2. Ты смешиваешь два разных языка в одном файле: C# и сиквел. Нормальным решением выделить сиквел в отдельный файл и сделать в виде хранимки. Редактируй и тестируй с помощью дбивера, студия для этого плохо подходит. В C# коде просто вызывать хранимку по имени, не надо никакие файлы загружать в строку в однострочник. 3. Ты гвоздями прибил запрос к базе данных к компиляции проекта. Если тебе надо что-то поменять в запросе, тебе надо перекомпилировать проект. 4. Ты прибил настройку окружения к рантайму проекта. Каждый раз, когда ты запускаешь запрос, я с огромной вероятностью уверен, что ты передаешь разные строки на сервер бд. Еще и нехера непонятно, правильно ли ты вообще запрос написал, может ты допустил какую-то мелкую опечатку, но узнаешь об этом только в рантайме. + Невозможно отслеживать историю изменений в твоем запросе-однострочнике, так как, рано или поздно, будет размазано по файлам. Правильным решением будет разделить билд проекта на два степа: настройка окружения (ака создание хранимок, упадут, если что-то не ок) и билд самого проекта апишки. Следующий шаг - миграции, потому что хуевая идея для настройки окружения чистить всю бд, более оптимально накатить диф ченж.
>>2096880 >Unity - это как из пушки по воробьям. Ну хз, из пушки по воробьям - использовать библиотеки типа SFLM, Tao, SharpDX, SlimDX... Слишком низкоуровневое, не факт, что будет эффективно, высокий риск сделать что-то неправильно. В WPF и в WinForms можно сделать хост, на котором рисовать с помощью любой либы.
>>2096890 > Редактируй и тестируй с помощью дбивера, студия для этого плохо подходит. Аллилуйя. Про это и был вопрос. Нет так нет. Я до сих пор не знаю к чему было все остальное.
Как должен выглядеть мой гитхаб если хочу устроится джуном за еду?(опыта нет) 1. Обязательно ли иметь пет-проджект чтобы на собесе его показывать?(если да, то какой посоветуете) 2. Стоит ли удалять всякое говно типо какой-то игры на юнити которую пилил в универе, задачки на уровне кодварс и тд? Или чем больше тем лучше?
>>2097052 Зависит от тараканов у ревьювера. 1. Не надейся, что кто-то его будет смотреть. Накидай пару проектов не уровня хелоу ворлд для виду. 2. Оставь код, который не стыдно показать.
>>2097052 Всем похуй на твой гитхаб, просто штурмуй стажировки во всяких тырпрайзах и галерах, там обычно на еду накинут. Либо штурмуй стартапы и подвалы, но там придется работать за ценный опыт, идею и коробку печенек
>>2096462 (OP) Нашел на ютубе пару курсов на русском, цель - хотя бы понять, что из себя представляет язык и среда разработки. Какие подводные камни? Мне кажется, на английском смотреть не обязательно
>>2097257 Да никаких, кроме того, что ты получишь довольно поверхностное понимание чо и как работает. Если есть опыт в других ЯП, то можно попробовать найти курсы с diff'ом, если нет, то ты только синтаксис и увидишь.
Ну и про IDE надо понимать, что сейчас есть не только VS
Можно как нибудь делать скриншоты не выводя картинку на экран? Ну например какой нибудь виртуальный монитор создать и с него делать скриншоты. Где то читал статью что нельзя. Но мб можно все таки?
>>2097439 Мне нужно узнать можно ли делать скриншоты не выводя картинку на экран. Вообще нельзя. Например если окно свернуто то получить с него скриншот не получится. Но возможно можно сделать виртуальный монитор на него вывести картинку и там сделать скриншот.
Аноны, объясните, в чём смысл source generator'а? Я и раньше иногда писал отдельный консольный проект на шарпе для генерации кучи шаблонного кода, который просто заменял код в отдельных файлах основного проекта на сгенерированный. При этом я имел доступ к рефлексии в основном проекте, т.к. подключал его как референс проект, и скажем при ренейминге в основном проекте, в генераторе это учитывалось. В чем преимущество того сорсгена, что появился в шарпе 9-м, по сравнению с моим колхозом? Как минимум там вроде один прямо радикальный недостаток, как пишут люди, что нельзя прямо посмотреть сгенерированный файл.
>>2096462 (OP) >The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
>>2096556 >У Рихтера много информации уже неактуально. >Если книга вышла до 2019, то уже не актуальна безпруфная петушня в треде >>2096654 в .sql файлах и накатываю через dacpac >>2096839 >TcpClient студентота тоже в треде >как бороться выпилиться >>2097052 вкатыши тоже на месте.
Тред укомплектован. Дальше тошнит читать. Можно вайпать нахуй
>>2098343 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 и мучиться с винформами. А учитывая, что сейчас все пилится под веб, а точнее под мобилки, то десктопные программы и вовсе стали не нужны.
>>2098385 >На наш век хватит Дельфисты и значительная часть плюсистов так же думали. И где они теперь? Многим из них пришлось в спешке учить джаву/джаваскрипт/питон/го, чтобы найти работу джуном на совершенно новом стеке. Тем же пхпшникам сейчас приходится в спешке учить го, так как многие пхп поделия переписывают на го или питон. Все не так однозначно, есть конечно технологии вроде джавы, которые являются абсолютными лидерами в своих отраслях, но их мало.
Сап, аноны. Переделываю чужой старый код и вижу там Utils.CopyArray. Мне необходимо избавиться от зависимости с Microsoft.VisualBasic.CompilerServices и следовательно заменить его на Array.Copy но не могу понять как заменить его правильно чтобы код работал. Гугление не помогло
>>2098388 > пришлось в спешке учить ... чтобы найти работу джуном на совершенно новом стеке. Если для тебя это проблема - то мне вас жаль (с). В языках программирования всё одинаково: переменные, циклы, типы. Нужно только приложить минимальное телодвижение по изучению, как оно тут в новом языке. Выучил один - выучишь остальные на изиче. Этот пост отличает джуна от сеньора. Джун кинется обеснять как я неправ. Сеньор скажет пикрелейтед.
>>2098379 >Goвно не сдувается Если честно, он толком и не выстрелил.
>Kotlin не сдувается Он и не надулся, кроме телефонов нигде о нем почти не слышу (да и зачем сразу два языка изучать). Это как с ts, типа круто, но js знать все равно нужен. Прокси языки, это какая-то херня.
>Java энтерпрайз нисколько не сдувается Кобол тоже до сих пор в тырпрайзе.
>Rust не сдувается Не верю что на нем можно писать большие и сложные системы. Ну, конечно, одаренные может что-то и напишут, но по ресурсам на сопровождение, это будет скорее всего жесть (имхо).
>C/C++ не сдувается Это был язык король в свое время (в те года когда многие тут еще не родились), но сейчас его вытеснили отовсюду. Единственный вменяемый системный язык и из-за того что он востребован в узких местах, заменить его невозможно. Единственный жирнейший пирог где он остался - это разработка игр. Почему никто не нацеливается именно на этот рынок я хз (выпусти новый язык с движком фоваритом и греби бабло лапатой, но нет, мы будем делать переусложненный хруст, никому-ненужный дибиль и другие псевдо заменители).
>Python не сдувается Пранк который вышел из под контроля. Зарабатывают на нем все, кроме самих питон программистов (потому что их очень много на место). То есть, бабло рубят ютуберы, курсы за тонну бабла, книго-писатели, в общем все, кроме самих питонистов. История успеха проста, в отличие от какого-нибудь С++, где надо учить матчасть месяцами, можно сразу в пару строк продемонстрировать очередному вкатывальщику результат. Хочешь сайт за две строки, хочешь нейроночку с котятами... Язык успех, язык бущущее, язык наеб (ибо нехрена на динамике без потоков что напишешь, с дикими тормозами)
>>2098453 Лол, еще один сектант из серии - сейчас я выучу типы и числа (алгоритмы) и буду вкатываться во все языки. Нет, те фундаментальные знания это 1-2% от всех реальных знаний. Дальше идет инфраструктура языка и у каждого она своя. Своя стандартная библиотека, свои фреймворки, даже свои ОРМ с тонной нюансов и подводных. Все свое, даже конфиги, порой, имеют свои параметры и стиль написания.
Правильно делают люди, которые пытаются выбрать язык с учетом на будущее, где они смогут погрузиться во все детали до уровня спеца и правильная их мысль что легко ты сразу не прыгнешь в другие языки, даже если ты знаешь числа и типы и прочитал книгу кнута.
>>2098486 Если вдруг на реальных тестах померить JIT этих языков, шарп пососет (и даже не спорь, я знаю что у сектантов готовы на этот случай свои ссылки на свои тесты, но это подкрутка). Но стоит отметить то, что в реальности шарп пососет настолько мало, что это вообще не критично и тем более не имеет смысл об этом спорить (ибо всегда можно найти такую тырпрайз либу жабы, которая уронит перформанс до питона и это не шутка).
Я кажется совершил оч большую глупость при проектировании. Суть. Есть сущность User. И есть сущность UserSession. Так вот. UserSession - сессия пользователя на сервере. User - сущность из БД. Ну, я этого User - как свойство User из БД сделал. Думал как: Ну, удобно же. Но сейчас чет мне кажется что хуйню сделал. Какие потенциальные проблемы от этого могут быть? И стоит ли заменить это поле на UserDto, который не будет напрямую к БД отношение иметь?
>>2098453 "Язык программирования" знает сейчас любой васян. На самом деле вышка в любом техническом вузе по стандартам образования в РФ ещё с 90-х требует, чтобы студенты изучали программирование и сдавали экзамен. Так что как минимум паскаль, а значит и переменные, циклы, типы, алгоритмы, знают практически все. Имеют ли их навыки в таком виде самостоятельную ценность на рынке труда? Нет.
>>2098023 Генерить однотипный код без рефлексии, в отличии от т4, только шарп, даже не фшарп. Генератор не умеет изменять существующий код, только дополнять через partial или создавать новые сущности по любому правилу. Должен находиться в отдельной либе и надо перезагружать Visual Studio из-за кеширования. Посмотреть сгенерированный код можно через навигацию к определению, в некст версии вроде хотят сгенерированный код класть в папку obj.
>>2098304 Глянь исходники сущности и найди перегрузку оператора +.
>>2098442 Приведи пример, что не работает. У методов почти одинаковая сигнатура. Только от вб не советуют напрямую использовать.
>>2098488 Между жабой и шарпом много схожего. Выучил одно, выучил другое. Много технологий не привязано к языку, например сваггер. Много портов с жабу на шарп, например хибернейт. Только шарп пытается усесться на большем числе стульев.
>>2098491 Мне не нравится, что в жабе многое сделано поверх виртуальной машины, например женерики. Еще эта странная любовь к все есть объект. Другое стороны хорошо, что нет всяких спанов, меньше шансов прострелить себе ногу.
>>2098593 Ну как минимум знать фреймворк, с помощью которого можно будет поднять хттп сервер с настроенным роутингом и кэшироваинем страниц. Знать SQL и ORM для нужного языка программирования, уметь это дело настраивать. Это самый минимум на стажера, который только-только из вуза выпустился или заканчивает. А так еще нужно знать как работать с потоками, про синхронизацию потоков, отлично знать про коллекции, в том числе какая у них временная сложность. А эти вещи, внезапно, разнятся от языку к языку программирования. Уметь в тестирование, систему сборки. Важно хорошо знать стандартную библиотеку, чтобы не обсираться при выборе класса Date или не писать свой собственный велосипед для парсинга csv, если он уже и так есть в либе. Аналогично про джейсоны/xml. Также в разных языках есть разные фичи из асинхронности и функциональщины. И все это уже далеко не уровень циклов, функций и переменных, которые должны уже знать 15 летние дети, которые сдают экзамен в 9 классе. Современное программирование - это нагромождение абстракций, с использованием огромного числа готовых либ и инструментов, а не какое-то решение задачек по типу литкода/кодварса с использованием циклов и условий.
>>2098472 >он толком и не выстрелил В озоне и авито его уже вовсю в проде используют. Как и в компаниях поменьше. Кстати, озон, по слухам, чуть ли не 200к готов платить джунам, у них сейчас там сильный дефицит гоферов.
>Он и не надулся, кроме телефонов нигде о нем почти не слышу Ну да, на нем кроме телефонов ничего толком и не пишут. Хотя в последнее время стал просачиваться и в мир серверов. У каждого языка своя ниша.
>Кобол тоже до сих пор в тырпрайзе. Кобол уже давным давно не развивается, и вообще он был популярен только в США лет 50 назад. Сейчас для него нет ни IDE, и отладчиков, ничего. В то время как инфраструктуры вокруг джавы выстроена вполне солидная, да и саму джаву стараются развивать.
>Не верю что на нем можно писать большие и сложные системы. На расте вполне себе пишут огромное количество криптохуйни. Почти любой криптостартап использует у себя раст. Хотя да, язык получился довольно сложным и монструозным.
>но сейчас его вытеснили отовсюду Графику, не только в играх, пишут на плюсах. Всякие рендеры карт, движки геометрии для CAD/CAM - все пишется на плюсах и никогда с них не уйдет, ибо количество легаси просто огромное. Но вообще еще внезапно есть хайлоад, распределенные системы и HFT, где без плюсов просто никуда. СУБД пишутся на плюсах, тот же йоба кликхаус от яндекса, не говоря уже о mysql/postgres. Во всяких фаангах, где сидят дяди с зп 200-300к+ долларов в год, без плюсов никуда. В последнее время идут подвижки к тому, чтобы писать хайлоад на го, но пока что результатов немного. Сишка так вообще никогда не умрет, пока есть ембеддед.
>История успеха проста, в отличие от какого-нибудь С++, где надо учить матчасть месяцами, можно сразу в пару строк продемонстрировать очередному вкатывальщику результат. Хочешь сайт за две строки, хочешь нейроночку с котятами... Язык успех, язык бущущее, язык наеб (ибо нехрена на динамике без потоков что напишешь, с дикими тормозами)
И внезапно, сайтики на питоне пишутся вполне успешно. Далеко не всегда нужна многопоточность, она, скорее, даже не нужна в большинстве сценариев. Джаваскрипт в V8 работает по сути в однопоточном режиме, однако популярность у него огромная. И, как оказалось, на динамике без потоков вполне нормально писать.
>>2098664 >Хотя да, язык получился довольно сложным и монструозным. Как по мне, веселый язык. Подкупает его зиро абстракции. Все остальное, вроде, попытки улучшить плюсы, мув вместо копи например.
>>2098668 У меня в отдел много новеньких каждый месяц приходят. В веб ясное дело. Нехуя не знают. Проходят какую-то программу обучения, решая какие-то не совсем типичные задачи. Я так понимаю, фирме выгодно взять кого-то не совсем отбитого с улицы и за свой счет сделать из него прогера. Хз как они покрывают расходы, если новенький через год свалит.
>>2098573 На макоси - да. На iOS - нет, так как эпл запретила жабу на своих телефончиках, так как у них свой свифт есть.
>>2098640 >Смысл тогда писать, что жаба работает на кофеварке, если даже гейось не поддерживает? Жаба заработает на кофеварке, если на этой кофеварке можно запустить виртуальную машину. Как и шарп/питон/js/etc. Если производитель кофеварки явно запретил виртуальную машину, то откуда же она возьмется?
>>2098640 >Не помню в каком треде писали, но и для ведройда жаба не нативный язык, в том плане, что жни ведь плюсы юзает.
Жаба и не может быть нативным языком, она ведь не компилируется в машинный код. Андроид - это по сути система с модифицированным ядром линукса с кучей патчей, графическим интерфейсом и драйверами от производителя телефона. На самом андроиде установлена виртуальная машина Dalvik, которая как раз и запускает джава код.
>>2098620 >Мне не нравится, что в жабе многое сделано поверх виртуальной машины, например женерики Да, тут вышел серьезный проеб от дизайнеров языка. Дженерики добавили в жабу только в 5 версии, и чтобы не ломать обратную совместимость, решили их сделать стираемыми на этапе компиляции. В шарпе этот момент, к счастью учли и сделали нормально.
>>2098678 >эпл запретила жабу на своих телефончиках Почему тогда замарин и мауи позволяют?
>Жаба и не может быть нативным языком Я к тому как это преподносят. Про то как оно устроено, я знаю. У меня есть серт из универа вахьё или как его там, хуй знает.
>>2098684 >замарин Скорее всего там стоит компилятор, который транслирует код из шарпа в Objective-C, а код в Objective-C считается нативным для iOS и может спокойно запускаться на ней.
Сколько будет у меня сущностей Age? 5? А если Age будет такая Age int id int age То будет 3 сущности? Я так понимаю при таком варианте размер бд будет меньше. Но что я потеряю? Ну да если бд сложнее я не смогу делать выборки но тут вроде же ничего не теряю, я точ также смогу сделать выборку людей которым к примеру 20 лет
>>2098705 Лучше не создавай отдельную таблицу для возраста, непонятно какую ты цель преследующей. Я бы еще понял, если бы ты для пола таблицу отдельную сделал. Количество сущностей зависит от орм и ее настроек, если орм вообще используется. С твоего примера непонятно как ты возраст указываешь, если без айдишника, должно создать на каждого юзвера по возрасту, тем более ты сам написал, связь один к одному, но ожидаешь один ко многим.
>>2098664 >В озоне и авито его уже вовсю в проде используют. >Кстати, озон, по слухам, чуть ли не 200к готов платить джунам, у них сейчас там сильный дефицит гоферов.
Гуманитарный программист ликует, управляющая структура и весь бизнес в акуе, что им за этот пердеж теперь требуется нубам 200к отваливать.
Запомни, бизнес продвигает технологии и с точки зрения бизнеса это величайший фейл ну и -1 к карме того "спеца" хипстера, который в компашку это притащил
>>2098597 Не знаю толком как код весь предоставить. В общем я маюсь херней с кодом вида this.field_names = (string[])Utils.CopyArray((Array)this.field_names, new string[j + 1]);
Почему я маюсь фигней? Мне нужно портировать этот код работающий с SQLite на чистый C# с использованием стандартных библиотек, иначе мне с моим парком машин хана.
>>2098631 Вот этот формально прав. Просто реальная ситуация на рынке такова, что наибольшие требования среди всех соискателей предъявляют к залётным джунам, потому что желающих работать программистами людей без опыта - просто немеряно, а вакансий джуновских в десятки раз меньше. Но как только ты прошел фильтр, как только у тебя появляется реальный опыт работы, вдруг оказывается, что ты можешь себе позволить не решать тестовые, не знать алгоритмы, да и язык-то сам знать с трудом, и всё равно будет куча контор, которые тебя возьмут. Тут почитаешь, и создастся впечатление, что программисты - интеллектуальная элита, в головы которых влезает столько всего, пока ты только сам по себе язык уже второй год учишь, и пока ещё чувствуешь, что не готов. На самом деле большинство профессиональных программистов - такие же ленивые и тупые, как и во всех других сферах, их фактические знания - на 90% тупое повторение за старшим товарищем, который в процессе обучения на них орал, возможно даже бил, пока не удалось научить макаку повторять увиденное. По моим наблюдениям: - 30% профессиональных программистов не напишут реверс строки без создания промежуточного буфера. - 60% не напишут quicksort за любое разумное время без ошибок даже в IDE без хотя бы пары прогонов. - 80% не понимают, как на самом деле работает INNER JOIN и почему иногда результаты отличаются от ожидаемых (строки повторяются или вовсе отсутствуют), что уж говорить про более сложные JOINы. Что уж говорить про, например, рекурсивные запросы, которые кстати охуенны, но которые никто никогда не использует, кроме возможно разового экспериментального кода, который потом всё равно перепишут в более понятный среднему программисту вид. - 90% не знают, как работает словарь, а даже если им кажется, что знают, то они всё равно не смогут написать свою реализацию. - 100% программистов забывают то, что не используют в практике. Если ты джуном знал дохуя всего, сеньором ты можешь оставаться крутым профессионалом, но обосраться на задаче, где важен не опыт, а быстрые мозги, где тебя размажет любой студент. В общем опять таки всё это не значит, что эти люди чем-то ущербны, нет, они обычно профессионалы в своей области и эффективно решают поставленные задачи, просто многие "программерские" вещи им не нужны уже очень давно.
>>2098713 Это для примера просто что бы быстрее писать. На самом деле я буду писать инфо и юзере который зашел на сайт. И сам я хотел делать просто поля и в них записывать данные типо 1 модель и все. Но вот у такой же софтины сделаны отдельные сущности под каждое поле. Профит я вижу в том что бд не будет разостаться. В этих доп таблицах только 2 поля id и value, юзер агент достаточной длинный, и с учетом того что программа предназначена для обработки тысяч юзеров в сутки то писать каждый юзерагент не имеет смысла.
>И внезапно, сайтики на питоне пишутся вполне успешно >Далеко не всегда нужна многопоточность Говорит про веб, который по природе многопоточный и тут же говорит что далеко не везде она нужна. Это какая-то клиника в мире программирования или просто некомпитентность? Именно в вебе многопоточность и нужна как воздух. Раскидывать запросы по процессом, это древнейший костыль со всеми вытекающими.
>>2098723 >без хотя бы пары прогонов. Ну охуеть. Может быть мне на реальных проектах - ничего не проверять? Хуйнул за 2 минуты - PR и пошел пить смузи? Я вот напишу квиксорт по памяти, потому что в олимпиадках участвовал и помню его, но все равно раз 10 прогоню, прежде чем считать что точно все учел. > рекурсивные запросы Ну, я использовал, допустим, когда нужно было иерархические данные отдавать. Только вот никто не понимал как оно работает, людям что со мной рядом сидели - проще было написать хранимку с курсором. Ну, их дело. > не смогут написать свою реализацию Ты переоцениваешь сложность словаря. Если мы не говорим про многопоточные словари - там ничего сложного нет. Вся сложность как раз в многопотоке.
>>2098726 Ты же понимаешь, что обычно память и производительность две разные стороны весов? Т.е. для обработки огромного числа юзверов придумали разделять базу данных для записи и для чтения. Причем в бд для чтения дублировать данные в форме, нужной юайке. Но начинают с ухудшения нормальной формы базы данных, чтобы на выходе получить, например, одну супер таблицу.
>>2098751 >>2098752 Ну я хз. ПО этому и спрашиваю Мне бы было удобнее все в одну таблицу запихать. Но мне важна скорость выполнения. Ну мне скорее важно что бы ресурсов меньше жрали запросы цп и рам. Просто подумал не спроста же там так сделанно, хотя знаю еще одну такую программу там sqllite и там все в одной таблице.
>>2098742 Я в олимпиадах участвовал, но всегда использовал qsort или std::sort. Квиксорт я на 1 курсе универа писал, но в итоге написать без багов так и не смог, пришлось скопипастить код из википедии, а потом показывать бабке, которая лабы принимала. Да и бинпоиск сомневаюсь, что кто-то без багов напишет сходу.
>>2098742 >Может быть мне на реальных проектах - ничего не проверять? Есть такой весьма распространённый и даже кстати весьма эффективный способ программирования, когда ты по существу практически нихуя не понимаешь, как всё работает, но можешь запустить, свериться с правильным ответом, и знаешь место, где скорее всего надо что-то поправить. Поэтому возможность неограниченного прогона тестов как бы снижает уверенность в том, что ты на самом деле понимаешь, что ты написал.
>Только вот никто не понимал как оно работает Проблема тут ещё и в том, что и ты сам через пол года скорее всего не поймёшь как это работает. Со мной так было, во всяком случае.
>>2098794 Двачую, хоть и понимаешь, как это всё работает, но вот правильно написать где надо строгое или не строгое равенство у меня например постоянно вызывало проблемы.
>>2098796 >Поэтому возможность неограниченного прогона тестов как бы снижает уверенность в том, что ты на самом деле понимаешь, что ты написал Ну как. Допустим у меня довольно здоровое приложение. Я понимаю что делает этот кусок, но я не могу быть уверен, что он не повлияет на то что я писал, допустим, полгода назад. Вот из моей практики: требование рвать соединения для устройств, которые не присылали сообщений в течении установленного интервала активности. Ну, я сделал один метод, передаю его в OnHeartbeat, ок, да, но оказывается, что при разрыве соединения нужно было в базу писать, и раньше соединения рвались только при отваливании сокета, в итоге куча одновременно порвавшихся соединения - куча попыток апдейта в базу, что вело к деградации перформанса в моменты разрыва соединения и "подвисаниям". Как я мог помнить без прогона-то?
>>2098728 >Зумерье кричит голословно про тырпрайз, совершенно не зная что это такое. Почему зумерье? Он же на рынок СНГ ориентируется. Тут COBOL никому нахуй не сдался. Даже в твоем примере - единичный случай.
В России нет ни одной системы, написанной на старых языках (Delphi не в счет - он не настолько стар).
Хм. Есть ли что-то в чтобы не прописывать миллиноы классов которые нужно добавить к сервисам? Ну, вот допустим, у меня есть некий IHostedService, у него миллион зависимостей передающихся в конструкторе и он - пишет в файлик раз в секунду: Ты пидор. Так вот, мне не хочется все эти зависимости прописывать. Я могу, конечно рефлексией все достать и зарегистрировать, но не хочу пока что так делать. Может быть я не знаю о какой-нибудь библиотечке, с помощью которой я бы мог только основные классы указать, а она бы добавила зависимости?
>>2098723 >- 30% профессиональных программистов не напишут реверс строки без создания промежуточного буфера. Так что ли >String.Concat("yoba".Reverse()) ?
>>2098925 А "проще" никак? Я читаю книжку по шарпу, заинтересовался разницей 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 ?
>>2098954 Если хочешь понять как что-то работает, то надо лезть в исходники компилятора или в саму сборку. И к C# 10 предлагают нахер переделать string провайдер из твоего примера.
>>2099021 Ну, студия показывает 92 в индексе удобства поддерживания. Мне кажется норм. Да и суть. Это моя библиотека. Мне она нравится. Я буду допиливать и использовать. Та же NetCoreServer - неудобна, потому что заставляет меня ебаться с буфферами и все то же самое, что и с TCP-клиентом проделывать. В моей задумке - описал протокол, описал контекст - и пользуйся хоть на стороне сервера, хоть клиента. Если есть что-то похожее - я с радостью брошу и буду использовать готовое.
>>2099053 >ты знаешь что такое рекурсия? >Знаю. Только при чем здесь while(true)? Вся суть треда сисярпа. Удали нахуй парень, программирование - не твое
>>2099074 Ты троллишь тупостью или что? Я не понимаю просто. Каким, блядь, боком ты рекурсию приплел к while(true)? Или ты итеративное выполнение кода называешь рекурсией? Ну, тогда - иди почитай книжек, чтобы в треминах не путаться.
>>2099166 Условие выхода может быть сложным и зависеть, к примеру, от действий пользователя. Не всегда такое можно запихать в условие самого цикла. Поэтому вполне можно писать: while(true) { //вычисляем сложную логику if(получаем условие выхода) { break; } }
>>2099166 ты понимаешь, что ты пишешь телу, которое в метод main прокидывает loop с whilte(true)? Уже отбросим детали, что это студ. проект с Tcp клиентом
У меня в проекте используется wcf - как сделать так, чтобы к сервису было обращение по https? в app конфиге добавлял всякое типа transport или даже httpsBinding - не фурычит
>>2099244 В таких случаях принято использовать стейтмашину. var state = "running"; while (state != "exiting") { //вычисляем сложную логику if(получаем условие выхода) { state = "exiting"; } } В отличие от while(true) ты сможешь менять множество состояний, а не только тру/фолс. Состояниями выхода могут быть разные константы и программа сможет по разному выходить. Но воще, пиши, как хочешь. мимо
>>2099487 спасибо, проблема в том что у меня это всё крутится как funcional app в azure - и я не уверен что лично у меня права есть чтобы там добавлять какие то сертификаты. Предполагаешь что не робит потому что нет сертификата в ажуре?
сейчас я ошибки не могу запостить, но вкратце смысл такой что чужой серв, что предоставляет сервис посредством wsdl файла - теперь говорит что невозможно установить соеднение и оно было абортировано (если же оставлять конфиги как при http, когда работало - то ошибка говорит о том что был получен ответ вида text/html, хотя ожидали xml, т.е. с определенной даты интересующий меня сервис не поддерживает http)
>>2099659 Почитал статейку, вроде немного разобрался. Это просто большая точность, и как я понял соответственно больше чисел после запятой сможет вместить запись с double?
Короче это просто определяет сколько будет выделено места в памяти под число?
В общем мне наверное пока я новичок особо не стоит сейчас углубляться в это
Может кто подскажет готовое решение для моей задачи. Библиотеку или хотя бы статью где подобное решалось. Предположим есть данные текст/картинка/тупо байты не важно, но для примера возьмем текст. Он огромный, целая книга, в ней есть абзац, мне нужно в этой книге находить где находится этот абзац (предположим 300 страница), книга проходит итерации и со временем может изменяться, абзац может сменить страницу, он может поменять до половины своего содержания или одновременно и то и другое, мне все равно надо как-то находить этот абзац, либо выдавать список абзацев которые похожи на тот что я ищу. Единственное условие что этот самый абзац между итерациями обычно не сильно меняется, 10-20%, максимум 50%.
>>2099677 > Короче это просто определяет сколько будет выделено места в памяти под число? Ну типа да. > В общем мне наверное пока я новичок особо не стоит сейчас углубляться в это Как раз наоборот. Знаешь сколько хуйни было из-за этой плавающей запятой? Именно потому нужно как можно раньше разобраться и понять ограничения. Банально чтобы ты не делал деньги double/float.
Как в шарпе со сторонними библиотеками? Пытатлся нагуглить и только нахожу информацию про встроенные библиотеке. Я до этого немного в пайтоне ковырялся, и там было дохуя библиотек на каждый случай pillow, pygame,numpy и т.д. А в шарпе подобного нет что ли?
>>2099789 Не понял немного куда кликать. Nuget я нашел и установил, но не понимаю куда кликать чтобы его добавить. Потому что сейчас он ничего не находит с твоих пиков
>>2099885 Если ты установил пакет в проект, он автоматом добавляется к зависимостям. Дальше - просто using в файлике прописываешь и можешь использовать.
Какой механизм доступа к веб сервису (asmx) может быть, если данные передаются через узлы xml с атрибутами? Я сначала думал это обычный soap но там аргументы веб методов только через узлы передаются.
В Nullable ты типа резервируешь кусок памяти в 32 бита и там может быть информация любого размера которая может как полностью всё заполнить, так и вообще отсутствовать, но оставляя всю эту память себе все равно?
Сука, как в этой ебаной авалонии повесить фильтр на столбец? Для винформс есть: private static void SetFilterColumn(this DataGridViewColumn[] columns, int columnIndex) { columns[columnIndex].HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(columns[columnIndex].HeaderCell) {FilteringEnabled = true}; } Для впфа - несколько готовых либ. Молю тебя анон, помоги мне, я нихуя не понимаю
>>2099130 Я как-то пытался сделать ECDH по этому гайду: https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.ecdiffiehellmancng?view=net-5.0 пишет указанный алгоритм не поддерживается на данной платформе (.NET 4.0). А тут всё так охуенно, BigInteger, большие числа в генераторах что в комменте к коммиту. Целая криптосистема. Охуенно. Теперь, наноборда это не просто стеганографическая борда, это целая криптоборда, гы-гы. Можно сервера поднимать в разных точках планеты и синхронить базы зашифрованным трафиком, и никакие снифферы не спиздят данные, не зная ключей. Вижу что предыдущий коммит реализовал бинарные хендлеры, а до этого только строчки можно было принимат на методы DbApiHandler.cs. Шифр же байтами гонится, какраз на бинарный хендлер. Круто!
>>2100042 >>2100231 Я так понимаю, все эти альтернативы в шарпе (бывшие core) служат лишь одной цели, чтобы все оплювались и вернулись кодить в уютный швиндус? Таки удалось мягким поглотить часть попенсорс комьюнити?
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
Почему на шарпе нет нормальной работы? Каждая вакансия это ёбаный набор говнотехнологий, как у веб-петухов плюс зарплаты на фоне других языков низкие. В моей Мухосроани в лучшем случае 80-100к и при этом нужно уметь ВСЁ. Я что-то вообще разочарован, на текущей работе платят копейки, а её даже на на что поменять.
>>2098723 > 80% не понимают, как на самом деле работает INNER JOIN и почему иногда результаты отличаются от ожидаемых (строки повторяются или вовсе отсутствуют) Нипонел. Поясни где трики случаи-то с INNER JOIN -то?
>>2100831 Сторонные либы в том числе майковские используют нютонсофт. Какие-то банальные, как казалось, вещи не реализованы или реализованы странно. Да и нахуй надо
>>2100807 Кстати, может глупый вопрос, но я именно с индустрией айти знаком не сильно. Что вообще такой этот энтерпрайз? Этим мловом обозначают все крупные компании и софт для них? То есть энтерпрайз веб это веб для крупной компании?
>>2100869 Типа того. Но в целом это то самое "работа на дядю" - хуй знает кому это надо и на выходе как и на входе говно, но все делают умное лицо и раздувают бюджеты.
>>2100796 >на твоем запросе оно только нулы возвращать должно Внимательнее смотри. По сути это запрос на поиск первого свободного ID. Да, оно не вернет если удаляли в начале последовательности, но эт не критично.
Бывший одногруппник, который вкатился лет 5 назад всячески отговаривает вкатываться в C#. Ну как отговаривает, говорит, что потеряю время и работу не найду. Неужели все так плохо? И что посоветуете помимо C#, чтобы поскорее вкатится и начать зарабатывать? Есть базовые знания верстки и javascript
Как в впфе отловить все эксепшены? Сейчас в app.xaml'e юзаю try/catch на весь мейн и также подписан на AppDomian.CurrentDomain.UnhandledException, DispatcherUnhandledException, TaskScheduler.UnobservedTaskException, но у меня все равно приложение периодически тупо закрывается и в лог ничего не пишется. Алсо, на App_OnExit в лог пишется что приложение закрыто, но при невидимых эксепшнах тоже нихуя не пишется.
>>2100981 Не знаю, я только на галерах был мне норм Ну, говорят, есть хорошие стартапчики, и даже платют иногда больше чем галеры, но может то все легенды.
>>2101093 Ебало на офф, поридж. Вапервых, я же сказал, что только "слышал" Вавтарых, кто сказал, что он нищий? Стартапам по началу инвесторы бабла отгружают больше, чем можно освоить, вот поэтому им и надо бустить и брать людей способных, соответственно и ЗП. Втрети, иди нахуй.
>>2101095 Это не шутка, тупой ты пидор мечтающий о сочном хуе ДЯДИ.
>>2101098 Осваивают бабло в гос конторах, ебанько. И не ты, а толстые ДЯДИ. Никакие сверхспособности в стартапах не нужны от слова совсем. Скорее даже наоборот, лишь бы побыстрее на коленках сделать что-то рабочее. Соовтетствено можно нанять кодеров подешевле. Ключевое в стартапе это идея из-за которой тысячи быдла залипнут на твой проект и она с программированием вообще слабо связано (кодинг лишь её имплементация). Идею эту придумывает пресловутый ДЯДЯ, поясни, зачем ему платить наемным кодерам за тривиальную реализацию его идее больше срынка???
Вы двое больше похожи на малолетних дебилов считающих что в программировании деньги бесплатно разадают. Шли бы вы лучше вюристы или экономисты, вам не место в нашей индустрии.
>>2101115 >Это не шутка Тогда поясни. но ты просто склочный пездюк (как минимум ментально) так что можешь сразу нахуй идти
И стартапы разные бывают, если тебя берут только на такие как ты описал еще ничего не значит. В продукте и стартапе можно зарабатывать больше, чем в тырпрайзе.
>>2100695 Мне до сих пор кажется, что требования в вакансиях - это троллинг и те специалисты, что у них сейчас есть, сами не соответствуют этим требованиям.
>>2101190 У Шилда самая свежая книга по 4 версии, что уже морально устарело. Ищи что-нибудь посвежее за 2019-2021. Лучше C#9, хотя скорей всего вышли книги только по C#8.
Аноны, как считаете, на сколько сложно перекатиться в IT с другой работы? Вот я уже достаточно не молодой сотрудник (хотя по критериям ВОЗ молодой), работал в совсем не IT сфере, дослужился до неплохих должностей. Но тут моя компания начинает умирать, а также эта сфера меня немного подзаебала, хочу перекатиться в программач. В принципе если в IT не найду варик, то смогу вернуться, но хотелось бы попытаться. Не с нуля решил, как хобби занимаюсь этим лет 8, делал небольшие проектики для себя и своей конторы, писал достаточно амбициозную игру (но не дописал, в итоге слишком амбициозно вышло, показать есть что, и демку и код). В целом готов на вакансии джуна на годик, что б стаж специфический появился, хотя думаю что мои знания и на мидла тянут. Что скажете, реально?
>>2101426 >Мне непонятно как ты свой уровень на мидла оценил, если ты без опыта в ит. Ну это не предмет спора, согласен всё очень субъективно, готов на работу джуна для начала. Единственное хотелось бы в контору где возможен рост или реальный опыт работы хотя бы, а не просто странички-визитки клепать. >>2101425 А куда имеет смысл вопрос риторический, отвечать не требуется?
>>2101426 P.S. В целом считаю что могу написать практически любую программу - ворд, калькулятор, эксель, веб-магазин, базу данных, не требовательную к хай энд графике игру и т.д, приложение на мобилку, соцсеть, криптовалюту (не форк, с нуля) Не смогу операционку и не вдавался в нейросети.
>>2101439 Конторки и кастомеры заинтересованы в росте, но им еще хочется, чтобы все были сразу сеньерами-помидорами. Будут пытаться на тебя повесить как можно больше допзадач: менторство, шаринг знаний, скилапы, треннинги, экспертиза. Если не чувствуешь роста, можешь свалить, опыт-то уже будет.
>>2101446 Без опыта все равно максимум джун. Еще на испыталке знания проверят.
>>2101464 Да меня скорее другой момент интересует. Вообще как рассказывать про прошлое своё. Говорить что работал, но не в IT? Или вообще про прошлую работу не упоминать, просто сказать что я десяток с лишним лет после универа фрилансил?
>>2101472 Фриланс - это опыт, если программирование. Другой язык программирования - опыт, никто не мешает перекатиться из другого языка. Универ по специальности - тоже опыт, но могут навешать лапши на уши.
>>2101472 Лучше идти по такому плану: 1. платный курс по C# с гарантированным трудоустройством 2. стажёр от 1 года для получения опыта реальной разработки 3. джун на стабильную зп от 15к с соц. пакетом
Как в winforms у контрола перехватить нажатие мыши до его обработки базовой частью контрола? Пробовал всякие mouse down, но там уже походу всеравно успевает куча всего отработаь, в частности выбранный элемент меняется.
>>2101520 Handled у void OnMouseDown(MouseEventArgs e) нету.
>>2101521 А легального пути нет что ли? Мне в принципе даже отменять его не надо, просто есть пара проверок с действиями на стороне завязанных на геометрию и текущий элемент списка.
>>2101526 Вапервых, хуки бывают не глобальные, ты можешь передать дескриптор. Вавтарых, ты не сказал, что надо использовать OnMouseDown. Втретье, ты можешь просто добавить проверку в начало ивента.
>>2101547 1) Ну так говорю гемор с указателями и прочим. 2) Так другого нет, события мыши с Handled вроде только у некоторых контролов 3) Так уже поздно на момент наступления любого события мыши базовая часть контрола свои дела отрабатывает, например меняет выбранный элемент.
>>2101547 По сути он хочет отменить функциональность контроллера. Что б эвент работал, но анимация нажатия не обрабатывалсь, пока програмно не разрешится. Думаю это никак не сделать, только писать свой контроллер. Или пользовать костыли, типа другой полупрозрачный контроллер сверху.
>>2101569 Нет, хэндлед не отменяет анимацию контроллера. Просто не даёт вызываться другим событиям. Короче даже если бы в mousedown был бы хэндлед, то это бы ничего не изменило.
>>2101572 Кто сказал что надо задавить анимацию? Мне ровно это и надо что бы остальные события обрубались как будто клика не было. Или хотя бы поймать момент до смены элемента, это точно в контролах с поддержкой Handled работало.
>>2101576 А че сразу не на android? В wpf понятно что этого не потребовалось бы.
>>2101582 Не понятно, короче, что тебе надо. В целом, можно ловить событие клика мыши по форме, потом проверять находится ли контроллер на элементе, делать твою проверку и если прошла, то имитировать нажатие мыши. Ну или предварительно ловить события mouseenter mouseleave, что б не высчитывать событие мыши.
>>2101615 Так в том и дело что ВСЕ события мыши приходят уже после того как клик обработан контролом, а аналога preview событий как для клавы у мыши нет. Вроде решил путем переопределения WndProc и ловли клика там по коду. Процедура окна похоже первой его принимает.
Бля поцоны, сижу и хуй дрочу. Надо работу искать а я хз бля походу синдром вечного студента. Вакансии в городе только мидл, вот думаю просто слать резюме на почту ашеру. Норм идея? Напишу Мол О привет я хотел бы у вас работать джуном за еду, если че пишите.
>>2101638 Фокус в том, что если у контрола не будет привязанного ивента, то и ничего не будет обрабатыватся. Но вообще лучше всего сделать контрол из метки, у которой нет никакой анимации и допилить свою. Анимация клика очень легко делается - или смена цвета, или изменение размера. И напилить можно что угодно
>>2101740 После шага из тебя хуевый специалист получится. На твоей пикче вообще кора нет, зато есть WinForms, WPF и WCF отдельными пунктами. C BCL в 2к21 поржал.
>>2101753 С недоверием отношусь к советам людей, которые говорят "нет, это невозможно, бросай". Даже не выслушав аргументы. Я не считаю что меня нужно учить. Ну да, какую то базу в виде принятой у них культуры написания кода, ознакомление с имеющимся кодом, возможно какой то фреймворк специфический придётся подучить. Но в целом я готов писать рабочий код. И готов предлагать свои идеи, если нужны.
>>2101771 Браток. Смотри. У меня на работе тестировщики лютуют. Говорят - 400МБ на 2.5к коннектов+логгирование+запись в базу - много. В общем, давай так, я - как мидл+ - могу твое резюме подкинуть нашему тимлиду и ты уже через 2 дня сможешь работать, только поясни, как, блядь, меньше-то сделать? Я уже до ебанутого дошел - таски диспозю. Все им не нравится, говорят - много, вдруг же будет 250к коннектов и учитывая что потребление памяти линейно растет - это уже ~40000 гигов нужно будет, а це много, ну, по их словам, я им говорю, что для сервера эт не много, они на свой i5 с 16 гигами тыкают и говорят что на нем уйдет в файл подкачки и тогда пизда. Короче, помоги, братуха, и будет тебе чики-брики, 50к первые три месяца, потом, через год и сотка будет, потом - мож сам решишь куда съебать, тут к этому нормально относятся.
>>2101822 Ну блин. Там как-бы не только сокет. Там каждый пакет - логгируем в базу(требование). Каждому клиенту - выделяется еще и серверный соккет(требование, чтобы можно было через сервер "напрямую" подключиться к клиенту). Плюс - шифрование(каждому клиенту уникальный ключ и чтобы постоянно не лазить в базу - кеширую ключ и привязываю к сессии, если отвалится - освобождаю). Плюс пинги переодически. Короче, там много всякой залупы. Плюс как-бы сессии долгоживущие, это не просто запрос - обработали и убили клиента, не, нужно держать соединение месяцами. Короче, я уже не представляю, что можно еще делать.
>>2101798 он пару лет назад перестал писать на C#, сказал работы не было и пришлось перейти на другую технологию, поэтому он мне и советует не вкладывать в нее время. Я подумал, раз тут люди сидят, значит что-то пишут? Или тут одни студенты? Если есть те, кто уже работают, подскажите какое направление выбирать или какой лучше язык учить?
>>2101010 >Есть базовые знания верстки и javascript >чтобы поскорее вкатится и начать зарабатывать Читаешь про реакт/ангуляр/вью. Делаешь на каждом ToDo-list. Выбираешь тот что тебе нравится больше. Начинаешь углубленно изучать. Читаешь про флексы, гриды и сразу забываешь, потому что сразу за этим читаешь про кроссбраузерную верстку и понимаешь что до сих пор нужно 11EE поддерживать. Читаешь про CSS, адаптивную верстку, анимацию на голом CSS, ну и желательно препроцессор какой-нибудь(SASS,LESS). Осваиваешь какой-нибудь NPM/YARN Дальше - делаешь пару проектов с апи, ролями, админкой. Парралельно ноду изучаешь и на ней делаешь простенький бекенд. Да, не забудь хотя бы базовый SQL, ну простенький джоин, знать про индексы, чтобы бекендеру с умным видом рассказывать что они есть(типа он тупой - не знает). Да, немного функциональщины чтобы использовать map и reduce с умным видом и пояснять за монады. Сверху - делаешь ни гитхабе свою страничку с портфолио на Github Pages. Собственно, все, начинаешь бомбить всех подряд. Все что я написал - учится за месяц, по 2-3 часа в день. Изи-бризи. По собесам будешь дольше ходить, но это просто потому что конторы хотят: ВЫБОР иметь и смотрят в первую очередь что ты няшный и НЕТОКСИЧНЫЙ, что поделать - вкатывальщиков дохуя. Но этот набор скиллов - на самом деле то что тебе нужно для работы.
>>2101940 кстати я вспомнил, одногруппник про node js говорит, что C# хуже его. Спасибо за совет, буду пробовать. И кстати да, зачем писать тогда на C#, если на нем нет работы? Писать всякие свестелки-перделки? Я думаю их можно и на другом языке писать
>>2101949 Потому что шарп выбирают ДЛЯ ДУШИ. Это реально приятный язык, с которым одно удовольствие работать. Я еще не встречал более приятного. Ну, т.е. да, есть неплохие, но это все не то. Хотя плюсы, если все фичи что там понаобещали - нормально реализуют - будут вторым моим любимчиком. Но это извращенная любовь, просто плюсы столько моей крови в универе попили, но при этом столько радости доставляли, когда таки что-то получалось. Короче, типичные абьюзерские отношения. Шарп - няшечка, что любит тебя и ласкает, помогает и всячески поддерживает. Плюсы - сука что ебет тебя и постоянно вредничает, пилит мозг, но дает то что шарп не может дать - ощущение что ты превозмог и эта сука теперь делает что ты хочешь.
>>2101809 Определяй что реально из одного коннекта нужно то и храни в оперативе, а что не очень - то в отдельную бд. Это раз. Во вторых, все клиенты одну и ту же задачу решают? Если разные, то может на микросервисы поделить? Удобная штука и в отладке.
>>2102006 Ну тогда "звезды сошлись". Иди, в принципе, там тоже могут быть интересные таски, всякие боты-ноды и т.д. Но ты, скорее всего регекспы и хпазы дрочить после изменения исходников. нет более страшной и бесполезной штуки чем регексы
>>2102016 >нет более страшной и бесполезной штуки чем регексы Моя любимая вещь. Вот эти все хпасы и селекторы сложно и не понятно пиздец, то ли дело регулярочки, хуяк хуяк и все готово. Правда мне сказали если регулярками парсить хтмл страницу то нормальные пацаны перестанут руку жать.
Блядь, TAP - самая дегенеративная хуйня, которую микрософтовские индусы выкатили за это десятилетие. Уебищное зафоршенное говно, ломающее через колено сложившиеся веками APM и EAP, заставляющее реально ради нихуя либо писать килограммы оборачивающего кода, либо подгонять архитектуру под решение. Я не видел еще ни одного нормального примера, где эта хуйня реально взлетела бы, не наложив при этом ограничений и одновременно не потребовав лишних строк, а наоборот, реально сократив объем кода. Бесполезное говно, решающее одну единственную задачу - сбивание зарплатных ожиданий нубов на собеседовании. В рот ебал. Вижу в присылаемом соискателями коде async/await - закрываю не глядя. Формоклепы (к тому же тупые) не нужны.
>>2101996 > Ботоферма какая-то? Та не. Хуйня для поддержания соединения с датчиками с нестабильным каналом связи, например - GSM Ну, допустим стоит какая-то хуевина в поле и потребление воды измеряет, давление в трубах, еще что-то. Купить и воткнуть в нее симку - недорого, но вот купить еще статический IP - уже дорого в большинстве случаев(куче железок-то он нужен будет). Ну, собственно, хуевина подключается к серваку и можно что-то считать или послать команду уже через сервак, чтоб оператор не рубил соединение - периодически пингуем друг-друга, пакеты шифруем, чтобы знать что железка сдохла - все логгируем и можем, если надо - владельцу на почту/смс/куда-нибудь еще скинуть уведомление, потому что железка может сообщить на сервак о каком-то вмешательстве перед тем как пропадет соединение, плюс чтобы не дрочить саму железку по пустякам - часть инфы храним в базе и если клиент сверху хочет какие-то архивные данные - отдаем из базы, плюс это аудит, чтобы можно было сверить и легко задетектить вмешательство.
>>2102027 >если регулярками парсить хтмл страницу то нормальные пацаны перестанут руку жать Хуйня это все. Хпасы и прочие ДОМ-выебоны - это удел веб-макак. Если можно вытащить регуляркой, надо тащить регуляркой. Если ты можешь себе позволить без напряга тащить деревом, то у тебя не парсер а говна кусок, обрабатывающий два с половиной документа в час. Прикол с макаками в том, что у них а) хуевые регекспы, которые еще и писать сложно б) они не умеют их готовить, поэтому искренне полагают что регэкспы - это медленно Лошары, хуле.
>>2102038 Проблемы регекспов в том что их читать невозможно(етественно мы говорим про сложные регекспы). И если ты видишь его в коде - ты либо должен просто поверить что человек который это писал - знал что делает, либо проверять на куче данных. Няш, ты же сам понимаешь, что час программиста стоит недешево.
Тут как со сторями про кодинг под в-вами. Написать ты вполне можешь и оно, возможно, даже будет работать охуенно, только вот ты потом хуй разберешься как, а уж кто-то другой - так вообще не разберется.
>>2102048 Потому что это работа фронтендера, няша. Фронтендер так-то не программист вообще. Это сорт оф промежуточное звено между дизайнером, браузером и программистами.
>>2102047 >Проблемы регекспов в том что их читать невозможно(етественно мы говорим про сложные регекспы).
Ну так пиши простые регекспы, епт. Можно подумать если человек дебил, то он для древа не сможет писать вырвиглазное трехэтажное говно. Молодой еще, расцвет моды на XSLT не застал, да?
>>2102049 Ну и нахуя ты советуешь ему идти в макаки если он сам этого не просил? У него сейчас есть макачьи навыки, советуй ему дельную хуйню, а не это говно. И, блядь, если уж на то пошло, нахуя макаке вообще скл? Ради строчки в резюме? Так это верный путь попасть в потогонку где каждый занимается всем. Нахуй надо. Не тяни молодых за собою на дно.
>>2102054 > Ну и нахуя ты советуешь ему идти в макаки если он сам этого не просил У него есть базовые навыки и при этом он хочет побыстрее ВКАТИТЬСЯ. Перечитай пост. > нахуя макаке вообще скл Ну, вот требуют сейчас от них хотя бы базового. Я вот тоже до конца не понимаю, но я не так сильно в это дело вникал, я же таки бекендер.
>>2102061 Ну так пусть ВКАТЫВАЕТСЯ хотя бы в пэхопэ. Куда ж быстрее? Ты ему че накидал это ни разу не 1-2 месяц, не пизди. Одна адаптивная )и семантическая, конечно же) верстка в нормальном извозе займет тот же месяц. СКЛ даже по мелочи С НУЛЯ - это еще минимум месяц без сложных запросов. Идея твоя понятна, но реализация не соответствует ни ТЗ, ни авторской декларации.
>>2102033 >APM и EAP Дед, у тебя деменция с галлюцинациями уже. >наложив при этом ограничений и одновременно не потребовав лишних строк Каких блять ограничений? Ты в штаны себе только "наложив". То, что тебе GetAwaiter().GetResult() надо в своем некроговне ебнуть, что бы библиотечка заработала или return Task.FromResult чтобы свое некроговно подкостылить?
>Вижу в присылаемом соискателями коде async/await - закрываю не глядя. Формоклепы (к тому же тупые) не нужны. Ебанутся, и вот представьте как с таких додиком работать?
>>2102036 Это околофутболзавод? Нахуй вам тогда требования по перфомансу такие, если у вас нагрузка планируется на 100% и пиков быть не должно. Дешевле, безопасней и баглесс будет оперативки до 64гигов раздрючить.
>>2102073 Ты начал срать, что " реально ради нихуя либо писать килограммы оборачивающего кода" И что, когда, какой лишний код тебе писать надо-то? Я предположил самые частые костыли в некроговне.
>>2102074 Речь не о замещении. Если ты не понимаешь моей боли, значит ты никогда не сопрягал нормальную асинхронную архитектуру с клиентом, написанным под это говно. Бля, лень даже объяснять. Я просто зашел высрать накопившуюся за день ненависть к этой бесполезной поебени.
>>2102033 Ты бы лучше привел пример когда это действительно удобнее чем TAP. С TAP - у тебя линейный код, если что-то нужно здесь - ты просто подождал - получил значение и пошел дальше. Давай, просто для сравнения. Мне в этом методе нужно сделать два асинхронных запроса на чтение из двух файлов что-то с этим сделать и опять же асинхронно записать в третий файл. С TAP я пишу: async Task Foo(){ var data1 = await MyReadDataTask1(); var data2 = await MyReadDataTask2(); await MyWriteTask(data1,data2); } Теперь покажи как ты это же напишешь. Я засьтал APM и EAP и оба этих куска кода - превращают код в ебучий нечитаемый ужас, в котором даже те кто писал - разобраться не в состоянии уже через месяц. Я понимаю если бы ты про перформанс или память рассказывал, да, с этим у TAP - хуевенько, но ты сморозил хуйню про то что EAP и APM - удобнее в плане написания кода, что просто на шизу похоже.
Как эта хуйня работает? Я же нигде явно не указываю, что нужно выполнить метод на добавление. Файл называется Index.cshtml. Почему вызывается именно метод Create?
>>2102236 Меня скорее интересует вопрос - какие возможности платных выпусков полезны. Ведь код полноценно можно писать и на комьюнити. Да что там, в блокноте можно, но в комьюнити есть автодополнение, подсветка синтаксиса, пошаговая отладка, уведомление об ошибках, автоматизированная установка пакетов, шаблоны... А что такого есть в топовых пакетах (профессионал, энетерпрайз - не важно), что б имело смысл в этом разбираться
>>2102282 Из того, что может реально использоваться, в тырпрайзе анализ дампа памяти, генерация фейков для тестов (антипаттерн), генерация диаграммы зависимостей. Между комунити и про вроде нет разницы, раньше плагины нельзя было ставить.
Для кода может хоть бесплатный VS Code использовать, заодно поймешь в чем разница между IDE и блокнотом, который притворяется IDE.
Анон, я правильно понимаю, что если я хочу научиться писать на шапре без всякой залупы и хуйни, то мне надо пройти по ссылке https://docs.microsoft.com/ru-ru/dotnet/csharp/ и двигаться по меню слева?
>>2102566 Документация от майков бывает хороша, а бывает ниачем. Да и там разбросанные клиповые топики. Книга таки лучше, потом, если есть время - пробежись и по докам для закрепления и "о, в ниге такое читал, но тут еще такая вот перегрузка есть"\ >>2102569 >Многое упирается в устаревший интерфейс программ. Лол. Что ты там читаешь, гайд с кортинками какие кнопки жать, чтоб проводник открыть?
Что за хрень? Делаю чатик по гайдам от метанита. Сделал класс - пользователь, кладу туда TcpClient. Получил данные, извелек команду(4 команды: шепнуть, отключиться, получить статистику и по-умолчанию всем разослать). До момента обработки все хорошо, когда решаю ответить - ObjectDisposedException. Прохожу по каждому шагу - NetworkStream - все время нормальный, но в методе Task Send(ChatMessage) почему-то уже Disposed. Что за фигня? Как фиксить?
Господа, есть вопрос по CancellationToken. Если я запускаю таск и передаю туда токен отмены, программа сначала проверяет этот самый токен перед запуском таска, если он false, то запускает его. А как остановить таск с помощью токена, когда он уже запущен? Try catch юзать и ловить CancellationExeption? Или это возможно только ручками проверять в теле таска?
>>2102877 Так где я мог? 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. Я просто его использую, чтобы можно было смотреть число активных подключений и прочую биллиберду.
>>2102956 Ну, вот большая часть клиента. Парсинг пакета не думаю что мог вызвать исключение, потому что там вообще стрим не трогается. Ну, а текст коллбека: (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); }
>>2102974 Ну хз тут ничего не видно. У тебя конечно будут проблемы с получением сообщения, когда ты запустишь не на локалхосте а в реальной сети, но к этому эксепшону это отношения не имеет. Если выложишь проект на гит, я бы мог у себя запустить и посмотреть.
>>2103068 Я вот изучил типы переменных, массивы и циклы, но мне сказали, что это всё фигня и даже за еду не возьмут работать. Надо быть ходячей энциклопедией, чтобы взяли. Только чувствую, что их сотрудники сами ни черта этого не знают, а просто на собесах выделываются.
>>2103189 Это не самое страшное, я вот до этого питон изучал, прочитал целую книгу, изучил тоже все эти циклы, переменные, выполнял задание с книги и по итогу понял что нихуя сделать не могу с этими знаниями. Просто не могу ничего написать и всё. В итоге с горя забросил всё, а спустя время побольше узнал про c# и решил его изучать, так как он мне интереснее показался
>>2103189 >их сотрудники сами ни черта этого не знают, а просто на собесах выделываются.
Так и есть. Когда человек нужен для работы, его берут даже если он ни на один "умный" вопрос не ответил. Любой опытный наниматель понимает что обучение и погружение неизбежны. Общая вменяемость соискателя намного важнее конкретных знаний. Случалось брать людей которые даже про алгоритмическую сложность не знали, чисто думалкой выбирали лучшие варианты, ни разу для себя даже не формализовав вопрос. Один раз пнул, дал учебник, все, человек все понял и дальше уже не косячил. А когда тебя гоняют о всякой хуйне на собеседовании, это значит работа будет стопудово говно. Хотя бы потому что твоим начальником будет дебил, сам не понимающий зачем ему в команде люди и как они на самом деле устроены. Конечно, мои слова не утешат джунов и на них сагрятся швабробляди, отсидевшие по пять интервью на позицию сраной удаленной макаки в модной западной конторе, но с опытом ты придешь к пониманию что я прав. Если есть возможность не бросаться на хуи дрочены из-за голодухи, то воспользуйся этим знанием уже сейчас и огради себя от говноконтор.
Есть кто работал с htmlagilitypack? Где можно почитать документацию по HTMLDocument.execCommand()? В гугле что-то нихуя. Вот у меня есть команда doc.execCommand("Bold", false, null) - жирность текста меняется противоположному текущему значению, а как сделать так чтобы жирность всегда убиралась? Навскидку присвоение третьему параметру false нихуя не изменило поведение. inb4: ремувь теги.
>Как я понял, подписка/отписка каждый раз создаёт новый объект Delegate? Нет, конструкция лямбды выделяет память на объект с полями, которые попали в замыкание. Лямбды можно закешировать или закомпилировать. Выделяют ли память сами операции += и -= - в душе не ебу.
>>2103755 Движок для игры. Серьезно. Банально: рендерер софтверный, звуковой движок, сетевой движок, интерпретатор для своего скриптового языка, ввод-вывод, управление ресурсами. Базарю. Попрактикуешься охуенно. Как раз к концу лета закончишь, сможешь говорить что не зря лето проебал.
>>2103865 Попробуй сделать текстовую РПГ. Тут-то и знать нужно: ввод-вывод, ветвление, если сильно уж хочешь заморочиться и показать что ты не хуй с горы, а ПРОГРАММИСТ - придумай свой формат для хранения твоего текста и логики игровой, а сама программа - просто парсит его, ну и ведет подсчет характеристик всяких.
Посоны, вот я делаю софт и в процессе понимаю что буду юзать сторонние библиотеки. Софт опенсоурс. Ну так для практики. Как мне не проебатся с лицензией на эти библиотеки? Мб есть у кого табличка где указанно что позволяет лицензия. А то вдруг я добавлю в проект что то, а потом захочу донаты собрать а лицензия той библиотеки не позволит. https://habr.com/ru/post/243091/ На хабре есть статья но МНАГАБУКАВ, мб есть что попроще?
>>2103840 Дегенератушка, если анон будет способен сделать копию двача своими силами, то НАХУЯ ЕМУ ВООБЩЕ В ЧЕМ-ТО ПРАКТИКОВАТЬСЯ? Он уже мидлом работать должен.
>>2103915 Начинаешь делать копию двоча, и понимаешь что не знаешь как сделать что либо, идешь читаешь а потом делаешь. Так на много легче определить своё незнание.
Вот пример задач: Конвертировать число в римскую систему счисления. Преобразовать секунды в строку, по типу: "2 day, 3 hours and 20 seconds". Разложить число на простые множители.
Group group = new Group(); 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)
>>2103915 двачую за копию харкача. Я один из первых проектов писал на WPF парсер контента который на пайтоне пишется в 4 строчки. С призм по MVVM, многопоточкой и прочей хуйней. Мне понравилось.
>>2101988 Ты про статью-то? Когда БД спроектирована корректно, очень сложно накосячить с джойнами. Но когда БД - это несколько наспех наколхоженных таблиц, которые тебе надо обработать, то здесь нужно очень хорошо понимать, что и как на самом деле делают джойны.
>>2103984 Например то, что в копию харкача входит копия куклоскрипта, переделанная, чтобы выкинуть оттуда хохлоблокировки. А куклоскрипт ты так просто не повторишь.
>>2104182 Кстати, сейчас подумал, что Шилдт, возможно, выбрал такой стиль, чтобы книга не распухала - каждая страница это минус бабки издателя (для печатной версии офк).
>>2104271 Identifier это чьё свойство, пот твоему коду - группы. Если тебе нужен только один флоу для каждой группы, то так и пиши: groups.Select(g=>new {Group = g, FirstFlow = g.Flows.OrderBy().FirstOrDefault()}) если надо установить этот один флоу в group.flows, что выглядит нелогичным (тогда уж лучше тянуть флоу и делать инклюд групы), то делай это на стороне клиент, а не бд. Include тебе вытащит все записи.
>>2104271 Или ты можешь получить все флоу и отсортеровать на клиенте иди загрузить флоу отдельным запросом с нужной сортировкой. Ты очень непонятно описал задачу.
>>2104313 >>2104316 group = db.Groups.Include(u => u.Flows.OrderByDescending(i=>i.Identifier)).Where(x => x.Id == id).FirstOrDefault(); Да разобрался уже. Нужно было инкклюдить уже сортированный список. Просто иногда команды кажутся мне не очень логичными.
>>2104323 Круто. Раньше (вроде даже core 3) нельзя было ничего делать в инклюде, а теперь попробовал, даже можно даже Skip/Take делать. Время переходить на Net5.
Блять, думал чего у меня не совпадает кое что в ide с уроками, оказывается я скачал visual studio code вместо просто visual studio, при этом я знал что мне именно IDE нужна, и был свято уверен что именно она у меня стоит, но оказалось что нет. А я ломал голову какого хуя у меня нет solution explorer как в уроках
Короче. Случайно наткнулся на ютубчике. ХЗ почему оно нахуй никому не всралось, но как по мне хорошая серия видяшек. Еще и сильно похоже на хуйню что я пытался делать. https://youtu.be/rrlRydqJbv0
Что-то понять немного не могу этот момент. Прохожу null переменные, вот включил я их в проекте, с первой строкой всё понятно, я поставил ? и обозначил что это null может быть, а что это за string.Empty? Я так понял что это ты присваиваешь переменную string и какой-то ее модуль Empty берешь? Если так, то зачем? Судя по названию он сделает переменную пустой, но какой в этом смысл если есть null переменные уже. В общем я вообще запутался
>>2104998 Короче, суть. Под капотом там примерно прикриплейд. Зачем так делать? Чтобы ты мог быстро проверить что тебе пришла пустышка и в зависимости от твоей логики что-то делать.
Банально. Вот ты делаешь метод T Find<T>. Не найти там то что ожидают - нормально, потому кидать исключение - не оч хочется. Вернуть null клиенту - тоже не хочешь, потому что сигнатура такова, что клиент ожидает что-то получить и возможно не будет проверять на null. Напоминаю, что ? для ссылочных типов появился относительно недавно. Вот и считалось хорошим тоном - вернуть пустышку. Я сам - не оч люблю это, потому что клиент может и на пустышку не проверить и начать дальше тянуть данные, хотя должен был как-то это обрабатывать. Но вот так вот делали довольно долго.
>>2104998 >что это за string.Empty? Пустая строка. Она же строка из нуля символов. >какой-то ее модуль Что за модлуль, ты что там куришь? > зачем? Пустая строка - обычная срока. А налл это ссылка в никуда, и при попытке вызвать какие-то методы ты получишь NRE.
>>2105625 Просто я вообще не понимаю куда копать надо чтобы узнать как это сделать. В винде есть утилита встроенная для копирования, но я не представляю вообще как к ней доступ получить из своей программы
У меня есть класс с not nullable reference полями. Часть из них инициализируется в специальном методе, который вызывается из конструктора. Анализатор студии подчёркивает конструктор и выдает предупреждение что такие-то ненуллябельные поля должны быть инициализированы в конструкторе. Как правильно подсказать анализатору, что пусть позырит в такой-то метод, там всё инициализируется.
Анон, есть виндовое приложение которое запускается под моно на линуксе, есть дллки из которых мы тащим и используем функции, такие же библиотеки есть под лунтикс(.so). Как мне без распиливания класса надвое вшарашить обе библиотеки в зависимости от среды?
Посоны, проясните момент. Что вообще происходит, когда я запускаю IIS express с дефолтными настройками в VS? Я так понимаю, создается некий сервер, на котором крутится мой код? Это все на локалхосте или я выставляю свою пекарню на весь интернет? Я уже обгуглился, нихуя не понятно.
>>2106389 Все что в том посте есть - ты должен был изучить пока учил язык, лол. Ну серьезно, как ты мог про LOH ни разу не слышать, если читал про GC? Или как можно было про GC не слышать, если ты, блядь, ручками ничего не освобождаешь? Как по твоему оно удаляется-то? Ну или IL - это вообще вводная любой книги по шарпам. Короче, я надеюсь чел либо вообще ничего не учил, либо имел хитрый план как студент - ебланить семестр и за неделю до экзамена все выучить. Суть, за неделю - нельзя, но если есть опыт в программировании - за две - вполне. Если нет опыта - за полгодика как раз в размеренном темпе и выучишь.
Почему многие боятся использовать в своем коде лямбды и делегаты и только если сторонний код требует их наличия - используют сами. Вот серьезно. на кой хуй делать: IFactory<T>{ T Build(); } и инжектить эту поебень в конструкторе, если можно сделать вот так: MyClass(Func<SomeRequiredClass> factory)? Это же намного удобнее, не плодит кучу классов.
>>2106697 Вопрос уровня зачем передавать object, когда можно передать void*, как диды передавали. Делегаты - это удобно, но это не ООП. В той же Джаве, которая является золотым стандартом отрасли, делегатов нет, и не будет.
Наконец-то вкатился. Пытался вкатиться с декабря прошлого года. Даже на фрилансе успел выполнить несколько заказов. В итоге вкатился в стек C#, SQL и чуток плюсов (часть кода).
Прошел 8 собеседований (те, на которые пригласили). ЗП - 35к на испытательном. Место действия - ДС. Возраст - 24 лвл. Промышленное предприятие.
>>2107054 Удивляют меня такие посты, потому что реально знаю людей, которые вышли на 200к через год-два после вката. Сам планирую вкат. Ну видимо действительно, первый год для трудовой стоит поработать за еду и в процессе постоянно искать норм варик.
>>2107064 Так хули ты хотел. Мало того, что сейчас тонны вкатунов, так C# - это худший язык для вката (на собственном опыте, как говорится). Половина группы вкатилась фронт и бэк на php, пока я с шарпом ебал себе мозги почти весь год.
>>2107071 Трудовая это образно, понятно что бы просто показать где и над чем ты работал. >>2107075 Для вката во фронт ещё нужно иметь какое то художественное видение, как сделать красиво. У меня вот с этим беда. А писать код на пхп, зная шарп, вообще не представляет каких то трудностей. Достаточно пары дней чтения гайдов.
>>2107080 P.S. Я так чуть джуном на питоне не устроился. День почитал туториал, потом прошёл собеседование первый этап и дали тестовое на второй. В принципе мог сделать, но особо не хотелось питоном заниматься.
>>2107054 >Удивляют меня такие посты, нехуя не знаешь, но хочешь 200к через год-два, будучи вкатышем. Такие зп в отрасли. Думаешь другие дохуя знают? Демпинговать - это худшее, что можно сделать. Зп зеленого джуна после книги Рихтера и одного пет-проекта - минимум 80к. Это нормально. Но 35к? Кассиры больше получают.
>>2107188 Ну как бы смысл идти в программисты на зп меньше 1к баксов в ДС? Что это за мазохизм? Ладно я понимаю, если речь про явный испытательный срок, типа погоди 3 месяца, сырых вкатунов много, если всё ок, то потом будет норм зп, сразу пересмотрим. Но если речь о том, что берём на джуна на 35к, а там ПРОЯВИ СЕБЯ, через год два вернёмся к вопросу ПО РЕЗУЛЬТАТАМ ОЦЕНКИ ДЕЯТЕЛЬНОСТИ, то это как бы сразу нахуй. Ведь кто идёт в кодеры? Либо это студенты, зачастую с серьезной мат. подготовкой. И вот ты такой ебашил 5-6 лет в ВУЗике, а тут хуяк, и тебе предлагают зп уровня как джамбулату из соседнего магнита, который мешки на складе двигает. Либо же ты зрелый вкатыш из какой-то другой профессии. НО КАКОЙ? Нет такого дна в ДС, из которого ты ушел бы на 35к, потому что везде уже на входе платят больше. Курьеры 50к получают при нормальной пятидневке. Или это дотнет такое особое болото? Но почему тогда так сложилось?
>>2107198 Потому что программисты сейчас не нужны. И уровень зп это наглядно демонстрирует. Вкатыши - это баласт, который лишь через 1-2 года сможет приносить прибыль. Зачем ему вообще платить деньги, чтобы он за счёт фирмы научился, потом пошёл к конкуренту на более высокую зп? По идее 35к должен джун платить фирме за то, что получает опыт (учиться).
>>2107210 Главное, чтобы работала и можно было писать реально кроссплатформенные приложения. Вообще удивительно, что у Net сходная технология с Java, но до сих пор она платформозависима.
>>2107215 >вот берут ли вкатыша на удаленку? В 99% случаев нет. Никто в здравом уме не возьмет вкатуна на удаленку. Это потеря денег, времени и, возможно, проблемы с продуктом в перспективе.
>>2107219 На сколько я знаю, MAUI - это ребрендинг Xamarin, который позволяет еще делать декстоп, не только мобилки. Так что довольно высокий шанс, что теха не сдохнет как Silverlight.
>Net сходная технология с Java, но до сих пор она платформозависима Такое себе сравнение. На Java декстоп пилят только извращенцы. Гейось не поддерживает. Тырпрайз на шарпе кроссплатформенный.
>>2107196 Это РФ в целом, не ДС. В Сызрани, Магнитогорске, Североуральске и Ростове зп ниже в 1.5-2 раза минимум, во всех сферах. Так что и кодеры местные страдают.
>>2107217 Написать в тексте вакансии можно всё что угодно. Но я регулярно слышу истории о том, как чуваки с абсолютно нулёвыми знаниями скачут с по должностям и компаниям с повышением зп. Это не значит, что речь про дебилов, нет это разговорчивые поцики, которые всегда на месте найдут того, кто расскажет и покажет, а они уже въедут. Но суть в том, что даже дочитыванием рихтера хотя бы до середины там и не пахнет. Просто язык подвешенный, умеет быть дружелюбным, производить впечатление. Просто даже если ты солидный молодой мужчина ростом под 190 с поставленной речью и одетый с иголочки, опрятно брит и стрижен, умеешь себя подать, но шаришь реально хуёво, то скорее всего возьмут тебя, чем какого-то вонючего мелкого задрота с писклявым голосом в мятой футболке, который шарит на уровне синьора-архитектора. Потому что в первом случае спишут на волнение, но видно, что умный, а во втором случае - задрот натаскивался к собесу, пытался нас наебать, но мы его разоблачили.
>>2107251 >Это РФ в целом, не ДС. В ДС и ДС2 большинство вакансий стажеров/джунов, так что это именно про ДС
>Но я регулярно слышу истории - Доктор, вот уже пять лет, как я не сплю с женой. - А сколько вам лет? - 65. - Это возраст, батенька, возраст. - А вот соседу 75, он говорит, что ежедневно... - Ну, и вы говорите.
>>2107266 >- Ну, и вы говорите. Ну как бы я сейчас работаю в НИИ-параше и готовлюсь ко вкату. Так вот что я тебе могу сказать. Если прочитать требования к кандидату на какую-нибудь должность ведущего специалиста у нас в конторе, то окажется, что и половине этих требований реально не соответствует вообще никто из тех, кто там работает, а по стране таких найдётся может быть несколько десятков. Более того, среднетипового сотрудника (уставшего от жизни предпенсионера или бойкую тётку 40-ка лет) на самом деле легко можно заменить 20-летним пацаном на энтузиазме вообще без ВО, которого за 2-3 дня можно было бы ввести в курс дела, показать как и что делается, и он делал бы работу этих опытных сотрудников с не меньшим качеством, но в разы быстрее. Я не думаю, что в программировании должно быть всё устроено принципиально иначе.
Какие преимущества использовать readonly struct вместо обычных struct? С одной стороны, компилятор может понять, что структура иммутабельна и всё оптимизировать? С другой стороны, компилятор может напряться, что ему надо гарантировать неизменность, и везде будет ебашить кучу копий структуры, чтобы уж наверняка?
>>2107275 >Ну как бы я сейчас работаю в НИИ-параше и готовлюсь ко вкату. В этом твоя главная проблема. В айти тебя пошлют нахуй в первую неделю испытательного срока, если ты не соответствуешь требованиям.
Ты забыл самую главную причину, почему программистам платят зарплату - они приносят деньги бизнесу. А твое НИИ никому деньги не приносит кроме тех, кто там работает и пилит.
Готовься к тому, что твой манямирок треснет, когда перекатишься в айти.
>>2105002 > Под капотом под каким нахуй капотом? Я не вижу пояснений, что нельзя на ссылку из стэка присвоить другую ссылку (причем на стринг пул). >что тебе пришла пустышка обработка null происходит на клиенте, никому нахуй твои пустые модели не нужны. >сигнатура такова сигнатура чего? >относительно недавно 2 года, да-да, недавно Я не знаю, что за хуету невнятную я прочитал, мог бы еще обоссать по скрину (по первым строчкам с string.Emtpy и int = 0 понятно, что за овощь пишет), но чего-то влень >>2105049 смотри вакансии в своем городе и решай >>2105278 >пишет как ему нравится вот это поворот >>2105600 вопросы уровня: "C# тред" >>2106365 >базвордов Хуя жирнота. По сабжу - пусть лучше сразу рвуться, чем задают вопросы, высранные выше >>2106482 на самом деле, вкатыши, которые суют нос из JS не хотят ни в чем разбираться. Даже смотря на коллег, которым тупо похуй на базовые вещи, на которых можно утонуть на первом собесе >>2106464 >запускаю IIS express с дефолтными настройками в VS он локально разворачивается на выбранном порте >выставляю свою пекарню на весь интернет? читай, как из пекарни делать хостинг, потыкай, поиграйся с DNS, походу поймешь >>2106697 подрастешь, поймешь как писать абстракцию, изменишь свое мнение. За лямбду в конструкторе на первом ревью ссут на голову >>2107075 двачую этого >>2107083 >мог не дрочить на красивый синтаксис долбоебики, которые кроме решеток в жизни ничего не видели, думают, что тут самый лучший синтаксис нет. На вкус и цвет >>2107198 рынок вкатыши прогнули так, что жуки-плавунцы поработав 2-3 месяца пиздуют крутить баранку в яндекс-такси с зп в 3 раза выше