Это копия, сохраненная 22 июня 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
https://www.youtube.com/watch?v=H6-KYZGSLmk&list=PLvb7ivodu7oQH4vm3zn7fxld3EWMw4Gcc
Писать ли что ты раньше работал на заводе и паралельно занимался хуету на подобии создание говносайтов сео хуео?
Двачую. Есть возможность заниматься кодингом по 3 часа каждый день. Сколько при таком режиме уйдет времени на вкат. И не перспективнее ли в плане трудоустройства вкатиться в java/kothlen
Никто тебе не подскажет за сколько что ты сможешь освоить, все от тебя самого зависит
По поводу переспективней или нет, тупо смотришь есть ли вакансии по языку-нейм в твоем городе.
Хочу так же дома сделать, но не могу найти ту менюшку где включается.
Кто-нибудь знает?
>не надрываться и не геройствовать?
Что это значит? Очень странный вопрос. Если интереса нет - ни сколько, нахуй оно тебе надо? Если интерес есть - такой вопрос бы не задавал. Лучше даже не начинай
>>07211
>Сколько при таком режиме уйдет времени на вкат
зависит от степени понимания, вовлеченности. Если полный ноль - думаю минимум месяцев 6 после написания пары +- маленьких пет проектов
>вкатиться в java/kothlen kotlin
гугли предложения на рыночке и смотри. Java все еще на голову выше решеток в плане спроса, зависит от локации, какие стэки на локальном рынке. Не смотри на то, что .NET типо под все, это далеко не так. .NET это только веб и unity, за все остальное забудь, оно мертво
Пиши, в нормальных местах на это похуй, главное каким-либо образом убедить, что ты адекватный/обучаемый за собеседование, тогда будет глубоко похуй где ты начинал и работал
Если есть мозги и IT-бэкграунд (универ, например), то месяца 3-4 регулярной дрочки, если нет, то года пол, но мозги все равно желательны.
>>07211
Джавы больше, джава дороже. В среднем. Но в целом всегда есть опция переката Java <--> C#. Работает правда от мидлов и выше и далеко не во всех компаниях.
Есть ли еще какие-то другие способы? А то гугол не выдает то, что нужно.
Я указываю в моделе
[Key]
public int UserId;
А мне пишет хуй вам.
The entity type 'User' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'.
Почему не работает?
Миграция всмысле не происходит.
Ну, не совсем ясно что подразумевается под нельзя использовать библиотеки.
А так - ну бери винапи, хуяч. Вот ссылка https://docs.microsoft.com/en-us/windows/win32/api/_coreaudio
When you primary key does not follow that convention you can use the [Key] to indicate what propierty is you entity key
У меня указан кей.
Это консольное приложение.
Нету. Ивент textpreview и регулярка.
var posts = context.Blogs.Where(b => ...).Select(b => b.Posts.Take(2).ToArray()).ToArray();
то генерируется запос с outer apply, который не поддерживает SQLite. Если написать так:
var posts = context.Blogs.Where(b => ...).Select(b => b.Posts.Take(2)).ToArray();,
то все работает, но запрос идет через patrition row number, что делает запрос невероятно медленным. Как можно сделать, что бы это рабтало нормаьно, например через обычный подзапрос (select .... limit N)? Ну или еще как.
>Что это значит?
Я имею в виду, что куча залетных пишет мол: "уволюсь с работы, готов сидеть по 16 часов в день, смогу за 2 месяца вкатиться?" - понятно, что это хуета, нужен более продолжительный срок. Это как научиться водить, за неделю не получится, даже если 16 часов в день ездить. Вот я спрашиваю, сколько времени займет, если учиться "адекватно": 4-5 часов кодинга + 3-4 часа "вокруг" (на просмотр видосов, чтение книг, статей, документации, повторения пройденного и т.д.) ежедневно?
>>07524
>Если есть мозги
Закончил физмат класс топ школы региона, одной из топ-10 РФ, отучился на инженера, несколько лет работал конструктором. Щас уволился и сел на толстую родительскую шею, начинаю вкатываться. Больше года не хочу сидеть вот и спрашиваю.
Что-то типа:
var posts = ctx.Posts.Where(p=> p.BlogId == id).OrderByDescending(p=>p.PostedDt).Take(n).ToArray();
А как выбрать последний введённый символ в textbox? Мне нужно проверить последний символ, чтобы нельзя было вводить более одного ,+-/* подряд.
Не то. Мне надо для нескольких блогов, а так я получу знаменитый n+1 запрос.
Не понял что я не так спросил.
Если непонятно:
Вот у меня консольное приложение.
Вот есть веб-приложение, которое отдает свое апи в формате OpenAPI.
Я посылаю запрос из консольного приложение, получаю json в котором описаны пути, параметры, схема и т.д.
Теперь я хочу то что получил использовать. Допустим я узнал что api/v1/Users должен вернуть коллекцию пользователей в виде: [{userName:string, email:string},...] ну, собственно я это делаю и получаю эту коллекцию, при этом я не создавал своих классов для описания полученного результата или запросов. А сделал что-то типа:
OpenApiClient client = new OpenApiClien(openApiDocument);
var response = await clien.Send(webAppAddress,"api/v1/Users");
Ну, т.е. чтобы было понятно. Что-то вот типа прикриплейд мне нужно, но не написанное не за 5 минут, а нормально и нормальными людьми, которые побольше меня в этом разбираются.
Сохранить предыдущее значение и если новое значение изменилось не после последнего символа - возвращать предыдущее.
Что-то типа:
public string GetStringValue(string oldValue, string newValue)
{
return newValue.StartsWith(oldValue) ? newValue : oldValue;
}
Да, сразу уточню, это решение не сработает, если будешь удалять символы.
Если их нужно удалять, то это будет что-то типа:
public string GetStringValue(string oldValue, string newValue)
{
if(newValue.Length<oldValue.Length) return newValue;
return newValue.StartsWith(oldValue) ? newValue : oldValue;
}
Bump. Я не хочу запрос через оконную функцию, который отрабатывает ~700ms, хочу как на пике, который отрабатывает за ~9ms. Неужели EF настолько хуевый?
А пик-то забыл
Да, хуевый. Бери адонет и пиши нативные запросы.
Спасибо, помогла строка
tbPositionCursor.Select(tbPositionCursor.Text.Length, 0);
Но как отключить отображение курсора в textbox? Именно чтобы мигающий курсор вообще никак и никогда видно в текстбоксе не было.
Можете, пж, вкратце пояснить различие между разработкой на дотнет и дотнет кор? Или асп нет и асп нет кор. Там прям какие-то концептуальные различия есть? Или я просто учу дотнет и асп нет, а затем осваиваю особенности разработки на кор?
Блатные, не судите по закону ментовскому, а раскидайте по укладу впфскому, почему шквартися метод, возвращая Null, если в хате MainWindow.MainFrame есть блатной с погонялом "Browser", на второй маляве видно. Почему авторитетов не видит и не боится шкварится?
Немного поменялись интерфейсы. Немного изменились зависимости. Неткор пытается в солид, в то время как старый дотнет делался по принципу: Ну, хуячим функционал, и похуй что у нас 10 разных колоров, поинтов и брашей.
Ну, т.е. прям принципиальной разницы на деле нет - большая часть основных классов те же и работают примерно так же. Если ты писал на дотнете - перейти на кор - не составит особого труда, концепции конкретных штук старались оставить теми же.
Проблемы будут с миграцией обычного дотнет приложения на неткор, потому что из-за смены интерфейсов и выпила некоторых классов - придется много чего переделывать.
Порешал епты бля этого фраерка, по району двигался не правильно и базару не умел вести - ведь всем известно, что страницы - петушинная забава, поэтому без нее нужно своц базар нести.
каждый раз, когда захожу в этот тред проигрываю с подливой. Отчасти от того, что месят глину в том, что мертво, отчасти, что контингент валенков. И кто сказал, что между Java и сисярпом есть легкий переход? По синтаксису разве что, но это пыть.
Я бы посмотрел, как такие перекатятся в Java со своим сисярпом и десктопными причудами, а есть то все равно захочеться...
Бамп! Ну, помогите.
Потому что нужно руками заинитить браузер?
Такая же тема, отучился на ПГСе, устроился конструктором, но там такая хуйня прокнула, что применительно к строительной проге начал скрипты писать сначала на питоне, а потом на шарпы пересел, по итогу пару небольших пет проектов вебовских замутил, уже чувствую силы устроиться на какую-нибудь галеру шарповскую. На всё про всё ушло чуть больше года, но я особо и не гнал как ебанутый. Была возможность просто совмещать это с работой, хоть и по сути не айтишной. Важно понимать, что между устройством на первую работу в айти и началом пути находится не только сам язык, придется потрогать базу данных как минимум, кое-какие моменты типа общих практик(паттерны основные, SOLID и т.д.), мб даже базово js понимать(в большинстве вакансий на хх наблюдаю такую картину - C#+JS). В общем без хуйни с нуля это плюс минус год для чела со средней обучаемостью.
Есть одно wpf приложение у которого есть файл настроек типа "settings.xml" которое создаётся и хранится вместе с екзешником (по задумке). Также это приложение умеет открывать файлы определенного формата.
Проблема начинается когда в шинде 10 тыкнуть галку открывать моим приложением эти файлы по дефолту - приложение начинает создавать файл настроек не в директории с екзешником, а в директории с открываемым файлом. Есть идеи как фиксить это говно кроме того как выносить настройки в папку с документами?
И кто щупал Скита? Стоит ли платить за эту книге деньги?
Я с какого-то седьмого облизываюсь на неё и хочу обмазаться, а они всё хуярят и хуярят.
Что самое интересное, один из первых моих айтишных кирпичей в нулевых был как раз её первое издание руснявое.
Хули все так с lock(this) - бомбят? Вот мне нужен именно List<T> потокобезопасный. Читать из него все равно пока я ищу там элемент для удаления - нельзя, чет удалять, пока я перебираю все элементы - тоже нельзя, да и вообще как-то модифицировать его нельзя. Ну введу я объект который буду для синхронизации использовать вместо lock(this), ну и что поменяется-то?
> как такие перекатятся в Java со своим сисярпом
Перекатился за месяц без особых проблем. Поработал на джаве год, проблевался и вернулся обратно. В хуй не уперлась эта джава. Единственное что мне в джаве нравилось, так это охуенные Enum, в то время как в шарпе хуевый enum. В остальном - джава та еще параша, а кодят на ней в массе те еще мудаки.
Че?
Quartz.Net
Засунь бутоны себе в задницу и скинь в тред фото
Потом может чего и подскажем
Алсо, почитай может про Regexp если с вводом работаешь
>Перекатился за месяц т.к. ПМ сказал, что или я иду Java богам баги фиксиль или иду нахуй
>Поработал на джаве месяц, пока не нашли настоящего джависта и вернулся обратно
пофиксил
>джава та еще параша, а кодят на ней в массе те еще мудаки
Так про любой язык можно сказать тащем-то. Но на жабе рынок ожидаемо больше в крупных городах, чем на шарпе.
А в шарпе нет конкурентных коллекций, как в джаве например? Шобы под капотом уже было лок фри на атомиках или что-то в этом духе.
Есть словарь конкурентный, очередь, стек, bag и блокинг коллекш. Но нет листа, дескать все эти пиздец какие охуенные, а лист так с локфри - хуй сделаешь, а потому либо бери что есть. А мне именно нужна хуйня которая по интерфейсу - лист, но потокобезопасный. Я конечно могу одну из этих обернуть и заебись типа, но проще локать лист.
Разобрался.
Но вот поясните зачем ввели db.SaveChanges(); ?
Почему бы сразу не вносить изменения?
Опа, а может известно кто будет и будет ли переводить на могучий?
Решил что для начала это будет что то не сложное, например вытягивание инфы о железе. Так вот, с чего начать? Хочу своё приложение сделать мульти-платформенным, это как то будет влиять на то, как нужно будет строить консольное приложение?
Может подкините идей на тему какого нибудь кроссплатформенного консольного приложения?
ТГ клиент в консоле.
Бля ребят, эта такая хуйня творится в интерпрайзе?
Как в таком пиздеце можно разобратся то?
Я даже не могу найти где там контролер который обрабатывает запрос первый(
Отформатируй код и приведи к нормальному стилю.
Что хочу сделать - есть DataGrid с данными. Я хочу сделать поле, где вводишь название улицы, и оно сразу же находит нужную строчку
Вообщем-то сделал. Список улиц в combobox. Сначала сделал чтобы при вводе каждой буквы оно выполняло поиск... Все зависает, нажмешь клавишу и оно думает по полминуты (но работает)
Начал разбираться. Убрал реакцию на событие клавиш, сделал по другому - теперь оно должно искать нужную строчку либо при выборе элемента из списка улиц мышкой (SelectStreets_SelectionChanged), либо при нажатии enter (SelectStreets_KeyDown)
Но с enter также потребовалась еще одна задача, чтобы при нажатии enter не просто выделяло эту строчку, а фокусировалось на ней (в результате теперь будет работать навигация без всяких щелчков мыши) - короче код в 13-14 строках.
И все равно оно проперживается. Что тут можно сделать? У меня мало опыта..
Делаешь обычный текстбокс где будет строка по которой искать будешь
Коллекцию, которую вяжешь к датагриду оборачиваешь в CollectionView.
Прикручиваешь к CollectionView экземпляр делегата на фильтр.
Фильтрация будет делаться на лету отфильтровывая лишнее.
Почитать можно тут
https://www.wpftutorial.net/DataViews.html
Ну зависит от вакансий
У меня на работе спец образование, только у меня и есть из всех программистов.
И что вы там программируете?
>2 пик
Годная книженция для начинающих или нет? А то я сдуру купил ее на озоне за 350р, может зря?
Но в комбобокс очень удобно подставляется название улицы - я ввожу первые буквы, а оно сразу подставляет близкое... или в текстбоксе тоже можно такое сделать?
(после нескольких тестов я понял что проблема вообще магическая - когда запускаю и ввожу руками название - быстро находит. Но стоит нажать раскрытие списка комбобокса, вот после этого любым способом тормозит)
Она же из начала нулевых, там всё поменялось сто раз за это время.
Резюме писать на англицком?
Денег осталось хуй да нихуя.
Надо уже начать вкатываться только вот хуй знает как.
Читаю описание вакансий ну и что то знаю что то не очень знаю. Пробую вот это вот все sql asp net linq ef, но бля все на уровне хелоуворлдов. Я просто не могу это узнать на хорошем уровне без практики написания кода, я пишу там типо взять юзеров из бд, записать юзеров в бд, в циклах все это, смотрю сколько времени занимает запись и чтение, корочи хуйней занимаюсь. Надо какой то проект делать а я хуй знает что делать.
Корочи в ближайшее время планирую спарсить мейлы всех ит и около-ит компаний и проспамить им свое резюме с пометкой возьмите на работку позязя junior net developer фио. Вот только хз правильно ли так сделать, если вдруг хуй кто ответит что тогда? Ждать пол года, обновлять резюме и снова писать?
Как обстоя дела с вкатом в Украине? Сам то я из Беларуси но если бы был вариант работы в Киеве то изи бы поехал.У меня просто тут очень высокие шансы присесть на бутылку.
>возьмите на работку позязя
не катит. Сколько лет ком. опыта? Если 0, то у меня для тебя плохие новости
>Как обстоя дела с вкатом в Украине?
хуево. На джуна нужно 0.5-1 год комерческого опыта с канбанами/скрамом/ватерфлоу и нужно весь бизнес флоу знать
>Резюме писать на англицком?
английский B1/2+ кста. Без ангельского ты нахуй никому не нужен
>хуево. На джуна нужно 0.5-1 год комерческого опыта с канбанами/скрамом/ватерфлоу и нужно весь бизнес флоу знать
А новые джуны с опытом берутся откуда?
>А новые джуны с опытом берутся откуда?
Из стажеров, либо из ниоткуда. Рыночек шарпа потихоньку сдувается последние несколько лет, по крайней мере в РФ так.
ну дак а я и не про рф то спрашиваю, либо РБ но лучше Украина.
В Беларуси например больше net вакансий чем java.
Нахуй ваще писать про рф на не рф борде?
Ну если нравится комбокс можно то же самое но с ним сделать.
Подвязав текст комбобокса к свойству вью модели и на изменении вызывать фильтрацию CollectionView
Ну и нахуя ставить _ для private readonly? Вы чё там ахуели?
Я понимаю в питоне ставить _ или __ потому что нормальное ООП и типы не завезли, но в C# - это шизо, от которого я устал.
>>13767-анон
> .NET с классами по 3-7к строк, где уже непонятно что к чёму относится,
Жизнено
Работаю с таким дедом
Ваяет только такие классы, наполненные статическими методами, в которых только он может разобраться.
Когда спрашиваю хули ты так делаешь ответ всегда один МНЕ ТАК ПРОЩЕ.
Джун с опытом 1 года должен стать мидлом или выкатываться нахуй из айти.
Джуны с опытом берутся из стажировок/галер/практик, больше неоткуда.
>>13563
Рынок себя неплохо чувствует, спасибо
Просто последний год у стажеров/интернов/джунов проблемы с трудоустройством еще сильнее чем обычно по понятным причинам
>Джуны с опытом берутся из стажировок/галер/практик, больше неоткуда.
Ну вот вопрос то и был как правильно нужно устраиваться на галеры.
Ищешь тырпрайз в своем городе, ищешь стажировки/практики/вакансии младших без опыта, там даже платят. Иногда.
Подаешь во все сразу
Проходишь пару собесов
В мухосрансках с этим проблемы
В миллионниках реально
Если тырпрайзов нет, то ищи галеры. Там скорее всего будут мемы вида: сынок, у тебя испытательный срок три месяца без бабла и оформления, потом три месяца без бабла, но с оформлением. Потом тебя нахуй пошлют с очень пиздатой вероятностью или возьмут на ЗП уборщика, но свои полгода опыта ты получишь и сможешь вкатиться в место поприличнее.
Стоит ли пробовать в вкатываться на дикое легаси ради опыта? Или забить хуй и сразу пытаться в .net core?
мимо
Та вот я собираюсь уволиться, правда собираюсь уже довольно давно.
До этого на другом проекте работал, там было все ок.
Тут еще проблема в том, что я не веб-разработчик, поэтому вакнасий в десятки раз меньше
Но они все-такие есть, так как живу в большом городе.
Net.core тоже легасаи, уже .NET 5 есть :)
Лучше вкатываться в новье, но поверь, в тырпрайзах не любой мидол понимает разницу между всем этим.
Лучше вкатиться хоть куда, потом уже будет боярином с тырпрайз опытом и сможешь выбирать куда хочешь.
Вот этот боярин правильно говорить, вкатываться надо хоть куда-то.
Мимо вкатился в адовое легаси на пыхе, спустя год перекатился на нормальную работу не-на-пыхе
Чтобы не писать this. Что ты как тупой? Если ты начал с this - чисто по кодстайлам - ты должен теперь везде хуячить this. Эта залупень - раздражает, проще для полей - добавлять _. Даже мелкомягкие в своих современных гайдлайнах прогнулись и так же советуют писать, просто зайди и посмотри их гитхаб.
716x720, 0:07
IServiceProvider.Get<T>();
А как называть интерфейс, через который можно задать эти сервисы? Так норм:
IServiceContainer.Add<T>(T instance);
>Если ты начал с this - чисто по кодстайлам - ты должен теперь везде хуячить this
Кек, это вообще пушка. Использую this исключительно где требуется.
Кроме конструктора this нигде писать не нужно, в случае оверлапов, а вот если у тебя везде происходят оверлапы и нужно постоянно прописывать this - то наверно это у тебя хуевый дизайн класса получился.
>Даже мелкомягкие в своих современных гайдлайнах прогнулись и так же советуют писать, просто зайди и посмотри их гитхаб.
Ясно, я хоть и .NET девелопер, и вижу что Майки делают дохуя хорошего, .NET5.0 или F# например, но тем не менее нужно относиться критично и не жрать всё говно подряд.
>Если ты начал с this - чисто по кодстайлам - ты должен теперь везде хуячить this
Ну ещё раз добавлю, это вообще пиздец.
Не делай такой хуйни.
Сделай метод расширения и назови его как-то связанно с областью которую решаешь и просто используй его.
Допустим, у тебя есть есть охуенный формат: zalupа. Это специальный формат данных, который только ты знаешь как сериализовать-десериализовать. Допустим, тебе в каком-то классе надо сериализатор иметь, а в каком-то десериализатор.Так вот. Ты делаешь метод расширения UseZalupa(), в нем уже все что надо прописываешь и в нужных сервисах достаешь IZalupaSerializer.
> Кроме конструктора this нигде писать не нужно, в случае оверлапов, а вот если у тебя везде происходят оверлапы и нужно постоянно прописывать this - то наверно это у тебя хуевый дизайн класса получился.
Вот у тебя класс. Point описывающий в двумерное положение точки в декартовой системе координат.
Есть метод SetPoint(int x, int y), просто потому что иногда удобнее сразу две точки сразу задать.
Давай сравним
void SetPoint(int x, int y)
{
this.x = x;
this.y = y;
}
void SetPoint(int x, int y)
{
_x = x;
_y = y;
}
Давай, начин охуенные истории рассказывать, что пргументы нужно передавать заглавными, либо что метод не нужен, либо что хуево спроектирован класс. Это просто удобство.
> Кек, это вообще пушка
Значит ты либо дебил, либо у тебя ноль опыта коммерческой разработки. Код должен быть однородным. Если ты используешь this - пожалуйста, но используй его везде. Если ты используешь венгерскую нотацию - на здоровье, но ты так же должен использовать ее везде. Это просто, сука ты тупая, облегчает понимание твоего говнокода другими людьми. Когда еблан решает что тут я буду писать так, там так, а здесь вот так захотелось - такой еблан на кодревью заворачивается. И так делается везде, где нет жесткого гайдлайна по написанию кода, если он есть - тебя, еблана, просто за то что ты нарушаешь принятый стиль - попрут нахуй, если ты не понимаешь с первого раза.
Да блядь, попробуй коммит сделать не по гайдлайнам в ветку core мелкомягких. Тебя пошлют. Даже если там будет полезный фикс. Я понимаю, что местные чмони-вкатывальщики в жизни ничего сложнее хелловорлда не писали, а коммерческий опыт им только снится, но если однажды ты, по воле случая, попадешь в реальную разработку - поймешь, какую же несусветную хуету ты сейчас несешь.
Мудло, в твоем примере у тебя будет:
public int X { get ; private set; }
public int Y { get ; private set; }
void SetPoint(int x, int y)
{
X = x;
Y = y;
}
И никакого this нигде не появляется, а уж тем более богомерзкого подчеркивания.
То есть _ дебилы даже property не умеют юзать в классах, что и требовалось доказать.
В примере не было проперти. Ты, дебила кусок, изменил интерфейс класса.
Ну, что говорить - еблан, что привык только хелловорды у себя дома. То что этим ты мог сломать код коллег в 90000000 мест - тебя, еблана не волнует, ведь сложнее хелловрлда ты ничего не писал.
Попробуй, блядь, хотя бы в опенсорс проекте поучаствоват, мудень, вместо того чтобы срать про то что тебе какой-то кодстайл не нравится. Принят и принят. Удобен? Да. Иначе бы он давно помер, как венгерская нотация.
Ладно, но я правильно понимаю что _ фанатики, пускай и в лице мелкомягких, считают что ambiguous cases как в твоем примере и подобные лучше решать с помощью naming conventions по типу питоновских, чем через this компилятора?
Да, потому что это лучше чем было раньше, когда писали вот так:
m_FieldName
p_PrivatePropertyName
Уж лучше просто _ будет. А, как я уже скаазал, если ты начал this использовать - будь добр использовать везде, чтобы не было разночтений и человеку не приходилось водить мышкой чтобы узнать это поле или переменная.
Более того, naming conventions от microsoft не покрывают _ vs this вопрос, так что не надо пиздеть, что это стандарт. Так что давай ссылку от мягких где покрывается этот вопрос.
И да, в стандартах проекта dotnet действительно юзают _. Но у майкрософта не один проект dotnet на C#.
>Уж лучше просто _ будет.
Да, я с этим согласен. Ну я считаю что _ - это тоже всё оттуда идёт.
>А, как я уже скаазал, если ты начал this использовать - будь добр использовать везде,
Я использую this только в конструкторах. Никогда в других методах я не делаю название аргументов одинаковым с названием fields, поэтому у меня и не возникает таких проблем.
Пример с point притянут за уши, так как это изначально кейс где имена филдов состоят из одной буквы.
> naming conventions от microsoft
https://github.com/ktaranov/naming-convention/blob/master/C# Coding Standards and Naming Conventions.md#c-coding-standards-and-naming-conventions
Да, там не говорится, что обязательно именно так писать, но это же просто вопрос удобства. Вот серьезно. Что тебе проще в иде _ написать и увидеть все поля или писать this? Плюс, с _ код получается единообразный, в отличии от того что ты вот тут this пишешь, там не пишешь; когда у тебя класс в котором пара методов в 3к строк - держать в голове все поля так себе получается(ыыыы, плохой код, ну да, но что поделать - писал не ты, тебе нужно поддерживать, хули поделать?) и хорошо бы их визуально отличать, this в данном случае проигрывает просто потому что он длиннее и просто отнимает полезное место монитора.
>пара методов в 3к строк
Ясно. Ну я так и думал, поэтому переобуюсь в воздухе - _ действительно решает проблему non-SOLID говнокода в пару тысяч строк.
Алсо, стандарты это палках о двух хуях.
Например, майки пишут в пункте 27:
>// Avoid
>DoSomething("someString", 1);
>// Correct
>DoSomething(foo: "someString", bar: 1);
Когда по факту нигде такой конвенции кроме где есть optional arguments нет.
Хотя мне лень выяснять это методичка от майков или нет. Но вот аргументация
>Why: consistent with the Microsoft's .NET Framework and easy to read. In Named Arguments, we do not need to pass the parameters in order as defined on method definition, so we can pass the arguments in any order on method calling.
Щас бы в 2к21 фреймфорку энтерпрайзному следовать и аргументы миксовать где не нужно.
ХЗ. Вроде как в своих гайдлайнах, когда я читал, они писали что наоборот вся эта хуйня с именованными аргументами была придумана исключительно для COM-объектов, когда там может быть дохуища параметров, половина из которых - необязательный.
с трейни
>>13556
не поверишь, но есть джуны и с 5-6 годами опыта
>>14131
лолкекчебурек. Вообще похуй, что там у вас. Я говорю, как есть. На одно место трейни 30 человек, сито очень жесткое. Выше писали про стэк требований на джуна с GC, b-tree и хотя бы одним фреймворком - это чистой воды правда. Будут песочить на собесе так, что из жопы кефир полезит, ибо рыночек не резиновый, а желающих много
Покажите примеры того, чем вы занимаетесь на работах с C#
Над чем работаете, сколько пишите в день кода, и как происходит процесс. Хочу вкатится в офисную работу.
Но у самого за плечами 10 лет разработки всякого говна за стабильные 1-1.5к баксов в месяц, в самых разных областях но по мелочи. Ну как по мелочи, были проекты и на пол года, и на год, и на вечер, и на месяц. Решал самые разные задачи, но не на С#, а комбинацией из того, что было, для достижения необходимого результата, но так получилось, что об вашем "ойти" нихуя не знаю.
Чем вы вообще занимаетесь на работах с точки зрения занятий.
Ну вот у тебя работа с 10 утра, до 18:00. С обедом.
Как происходит ваш день?
Можете поэтапно расписать?
Типа:
10:00 пришел на работу, у нас планерка
нам объясняют что мы сегодня должны делать
нам дают задания, задания выглядят вот приблизительно так (желательно пример).
Это я должен сделать. Если не сделаю, то... Если сделаю все задания раньше, то...
Дальше я сижу пержу в гугле, и в доках, и пытаюсь наскребать по сусекам один экран кода в фунции. Вот уже и обед.
После обеда допиливаю свой метод, класс, похуй что.
Иду домой. Дома допиливаю ещё до нужной кондиции.
Прихожу на следующий день. Каким образом вы отчитываетесь о проделанной работе?
Как считается ваша оплата труда?
При этом сколько реально вы ебашите в месяц часов?
Сколько +- строк\экранов кода пишите в месяц?
Вот у меня был проект на пол года, около 2к строк кода написал.
Это если поделить грубо на дни, получится около 10-20 строк кода в день ебашил. Ну фунцию какую-нить, либо в дебагере сидел, либо что-то нахуярил прям быстро быстро, потом переписал.
Как у вас происходит разработка?
И чем она отличается от фриланса?
(опыт фриланса имеется).
Просто я вот понимаю, когда я лично разговариваю с заказчиком.
Типа : "привет хуй, я хочу сделать ХХ, за УУ времени, у меня есть ЗЗЗ хуйня"
- "ок, дай посмотрю что можно сделать, скажу что можно предпринять". "Ок, посмотрел я, короче хуй знает сколько по времени, но смогу сделать, за ХХХ прайс"
И погнал ебошить работу и частенько возвращаться к заказчику с результатами и приемом предложений пожеланий по улучшению продукции.
У меня нет "менеджеров" хуенеджеров, договоров, и так далее.
А вы там чем занимаетесь?
Если допустим вы в интерпрайсе, допустим вы ебанный аутсорс, нихуя своего по всей видимости не производите. Но при этом вы саппортите какой-то крупный проект? Или как? Или есть мелкие проектики? Или есть дохуя мелких проектов и кто-то за чем-то закреплен?
Короче меня интересуют бытовые, организационные вопросы того, что вы блядь конкретно делаете конкретно на вашем примере без: "нууу может быть и по другому".
Спасибо.
И о каких framework вы говорите?
О глобальных .net, xamarin, и для веба?
Или о чем-то другом о чем я блядь не слышал?
Короче ответьте. Спасибо!
Покажите примеры того, чем вы занимаетесь на работах с C#
Над чем работаете, сколько пишите в день кода, и как происходит процесс. Хочу вкатится в офисную работу.
Но у самого за плечами 10 лет разработки всякого говна за стабильные 1-1.5к баксов в месяц, в самых разных областях но по мелочи. Ну как по мелочи, были проекты и на пол года, и на год, и на вечер, и на месяц. Решал самые разные задачи, но не на С#, а комбинацией из того, что было, для достижения необходимого результата, но так получилось, что об вашем "ойти" нихуя не знаю.
Чем вы вообще занимаетесь на работах с точки зрения занятий.
Ну вот у тебя работа с 10 утра, до 18:00. С обедом.
Как происходит ваш день?
Можете поэтапно расписать?
Типа:
10:00 пришел на работу, у нас планерка
нам объясняют что мы сегодня должны делать
нам дают задания, задания выглядят вот приблизительно так (желательно пример).
Это я должен сделать. Если не сделаю, то... Если сделаю все задания раньше, то...
Дальше я сижу пержу в гугле, и в доках, и пытаюсь наскребать по сусекам один экран кода в фунции. Вот уже и обед.
После обеда допиливаю свой метод, класс, похуй что.
Иду домой. Дома допиливаю ещё до нужной кондиции.
Прихожу на следующий день. Каким образом вы отчитываетесь о проделанной работе?
Как считается ваша оплата труда?
При этом сколько реально вы ебашите в месяц часов?
Сколько +- строк\экранов кода пишите в месяц?
Вот у меня был проект на пол года, около 2к строк кода написал.
Это если поделить грубо на дни, получится около 10-20 строк кода в день ебашил. Ну фунцию какую-нить, либо в дебагере сидел, либо что-то нахуярил прям быстро быстро, потом переписал.
Как у вас происходит разработка?
И чем она отличается от фриланса?
(опыт фриланса имеется).
Просто я вот понимаю, когда я лично разговариваю с заказчиком.
Типа : "привет хуй, я хочу сделать ХХ, за УУ времени, у меня есть ЗЗЗ хуйня"
- "ок, дай посмотрю что можно сделать, скажу что можно предпринять". "Ок, посмотрел я, короче хуй знает сколько по времени, но смогу сделать, за ХХХ прайс"
И погнал ебошить работу и частенько возвращаться к заказчику с результатами и приемом предложений пожеланий по улучшению продукции.
У меня нет "менеджеров" хуенеджеров, договоров, и так далее.
А вы там чем занимаетесь?
Если допустим вы в интерпрайсе, допустим вы ебанный аутсорс, нихуя своего по всей видимости не производите. Но при этом вы саппортите какой-то крупный проект? Или как? Или есть мелкие проектики? Или есть дохуя мелких проектов и кто-то за чем-то закреплен?
Короче меня интересуют бытовые, организационные вопросы того, что вы блядь конкретно делаете конкретно на вашем примере без: "нууу может быть и по другому".
Спасибо.
И о каких framework вы говорите?
О глобальных .net, xamarin, и для веба?
Или о чем-то другом о чем я блядь не слышал?
Короче ответьте. Спасибо!
примеры блядь покажи, у меня есть опыт разработки.
Но я не работал на кого-то, на дядю за оф. зарплату в офисе.
Я не знаю как это вообще. Я спрашиваю эти детали.
Когда я ебусь во фрилансе, у меня никто не спрашивает о моих скилах, они видят результаты моей работы, и обращаются ко мне самостоятельно, а там я уже отвечаю - смогу не смогу.
При этом меня не пугает проект, если я на него согласился.
Так как я уверен в себе, что я его завершу..
Но блядь, когда я открываю требования к разрабам - это же какой-то ебанный ад. Нахуя все эти требования? Что это блядь вообще такое? Кто им блядь нужен?
Нахуя им паттерны проектирования и алгоритмы, если эти долбоебы делают обычные сайтики, и по всей видимости 24\7 сидят в гугле.
Нахуя они требуют от разраба полное знание инструмента на память с чем разраб работает, вместо подглядывания либо использования различных автокомплитов и IDE?
Меня напрягает эта часть.
Я хочу через годик вкатится, посмотреть че да как, да вот не знаю, а нужно ли оно мне.
Так как я часто сталкиваюсь с проектами после "контор" которым отдавали что-то на разработку, и я в полном ахуе от того, что пишут и делают, и как за это могут вообще бабки брать.
Я не говорю ни о чем серьезном, а о мелких либо средних проектиках из моей узкой направленности.
Что у вас вообще происходит в IT?
Вы там ебанулись нахуй?
Сука, меня уже трясёт. Какого хуя? Он траллит? С & тоже не работает, блять.
Возможно нет доступа и запрос возвращает пустой ответ, в котором всё фальсе и он радостно сообщает, что хиддэн фальсе. Хотя должен выкидывать исключение, что нет доступа. Проверь.
И вообще нахуя в моделе автосвойства?
Ну да можно делать проверку веденых данных, но вот такие пустые свойства ваще нихуя не делают, что они есть что их нет один хуй.
>что они есть что их нет один хуй.
Ну нет. Вон у тебя код не работает из-за того, что ты автосвойства не использовал. И 99% фреймворков, который используют рефлексию будут работать именно со свойствами.
вернуть налл или использовать bool TryGet(out). Какой выбрать? Казалось бы TryGet лучше, но меня смущает то, что от TryGet обычно ожидают, что он не бросает исключения, а я не хочу скрывать исключения, если там что с бд или еще какой эксепшн вылетит.
Потому что фреймыворку нужны эти проперти чтобы замапить данные из бд к твоей модели.
Не хочешь делать их - форкни фреймворк и мапь как-то иначе либо хуяч нативные запросы и делай все ручками.
> Покажите примеры того, чем вы занимаетесь на работах с C#
Ну, если как пример, то пик. Если именно что там в конкретных App1,App2 - что скажут, то и делаю. Вот, блядь, не устроил кролик чем-то нашего тимлида - пилил свою, очередь сообщений. Одного из коллег на прошлой неделе - заставили пилить сервис что должен был по SOAP - команды из старых клиентов конвертировать в рест и передавать куда нужно, ну и прочая залупистика.
> Чем вы вообще занимаетесь на работах с точки зрения занятий.
Ну, опишу день. Пришел в оффис. Врубил ПК, проверил почту и меседжер. Открыл студию, первым делом прошелся по TODO что вчера оставил, потом полез в файлик с TODO где лежит глобальный список фич которые еще не допилил. К обеду - делаю пул-реквест, на обеде - либо статьи читаю, либо книжки. Потом - если нет никаких совещаний/митингов/митапов - допиливаю что успею. Иду домой.
Обычно у нас какой процесс работы: конец месяца - смотрим что из глобального готово, что нет, что успеваем, что нет, в зависимости от этого на людей вешаются задачи. Контроль за выполнением идет в своем трекере задач, задача считается выполненной, если тимлид - принал пул-реквест. Если не принял - он пишет замечания и ты допиливаешь пока не примет.
Как-то так.
А вы чтоли жирой какой-нибудь не пользуетесь?
Я просто по жире тупо делаю задачи на версию, а потом иногда занимаюсь рефакторингом или читаю всякое.
Не пользуемся. В этой конторе вообще только в этом году на гит перешли, до этого в SVN все пилилось. Вместо жиры - самописный трекер задач, но он такой кривой, что его только для глобального трекинга используют, чтобы менеджеры какое-то представление имели, обычные задачи, которые разделены между несколькими кодерами - проще выходит самим порешать кто что когда пилит.
То есть возможно ли вот в фигурных скобках указать содержимое грида?
Пора бы уже знать что первична задача и под нее выбирают язык.
https://www.codewars.com/
https://www.codingame.com/start
На данных сайтах есть только проверка синтаксиса языков.
https://phpqt.ru/ И на php можно писать программы с графическими интерфейсами но надо ли ?
Вобщем определись зачем писать код а потом уже выбирай язык.
То есть мне интересно было обучаться. Сейчас, когда столкнулся с реальными проектами (опенсорс + задания), вдруг понял, что просто ненавижу ебанную верстку. Ебал в рот эти html, css, bootstrap и т.д. Ненавижу клепать ебанные сайты. Я думал, что этим будут заниматься верстальщики. А сейчас всем нужен фуллстэк. И еще ненавижу ебанный линукс.
Поэтому возник вопрос: что из себя представляет работа на C#? Да, я знаю, есть статьи, но они нихуя не раскрывают сути.
Дополню, что у меня нулевые знания математики, потому что в школьные годы забил хуй из-за постоянных драк. IQ 127 по Менсу.
Как отследить где затык происходит?
Еще может быть мб винда не дает изменять файлы? Как запусить проект от имени администратора?
ulearn.me
Пошел на хуй отсюда, чмо.
Чтоб я тебя больше здесь не видел, псина химкинская!
двачую адеквата, шлю нахуй вронтенд макаку
сам проиграл с дауна
Вот можно в студии создать проект с реактом. Там будут пикрилы, и всё будет работать заебись, можно будет на фронте писать fetch('/api/...') без всяких локалхостов и т.д. Если сделать просто обычный бэкенд без этого всего, и обращаться к серваку с фронта, то повылезает всякое говно типа CORS.
И вот вопросы, можно ли например в докере соединить отдельный фронт и отдельный бек, чтобы он работал так же как шаблон студии? Или это нахуй не надо и все в реале делают UseSpa? В гугле видел всякие реверс прокси через nginx, а как я понял nginx нахуй не нужен, у нас есть kestrel, и видел собственно когда UseSpa юзают и все на этом. Ну или соответственно подрубают CORS, но я думал без него обойтись...
Поясните короче за best practice.
150 Кандидатов, 10 человек выберут по результатам тестов, из них после стажировки на джуна берут только 3.
150 - 3. Соискателей в 50 раз больше, чем рабочих мест. На двух других вакансиях даже рассматривать не стали, сказали, что уже набрали штат.
от безысходности аж два раза написал
150 человек - это еще по-божески. Почитай блог Яндекса, где они из 1600 человек взяли 7 джунов.
Аноны кто знает openGL? Есть проблема со stencil. Есть пирамида, которая вращается в ней нужно цилиндром вырезать отверстие. Отверстие вырезал, но получается следующее.
Код: https://pastebin.com/7piKW6kG
1. Джуны никуда не дергаются в течение 1 - 1.5 лет.
2. Джунам можно платить копейки.
3. Человек, который вырос как программист в среде компании, будет намного полезнее, чем более опытный человек, пришедший с другим коммерческим опытом.
4. Джуны - своеобразная подушка безопасности. Этот пункт вытекает из твоего очка первого пункта. Если миддлы съебутся, то джуны будут сидеть на своих местах дольше.
5. На джунов можно переложить много рутинных задач. Повышается качество работы у миддлов.
6. Джуны, в целом - это лояльные КАЛЛЕГИ.
Такие дела.
Если с юнити - то совместимы.
90% заданий на фрилансе, не касающихся вебдева - это написать парсер/постер/заливщик/автоматизатор, как правило под винду и с гуём. C# идеально подходит для этих целей.
Бест практис - nginx как риверс-прокси, фронт - в своем контейнере с еще одним nginx'ом, апи в своем уже с кестрелом.
В реале - никто не делает UseSpa в проектах которые минимально рассчитаны на масштабирование.
Оно норм, когда ты монолит хуячишь или только учишься, но сейчас почти все отказываются от монолитов. Для изучения - норм, но хуйня в том что если ты решаешь поправить апи, то начинается хуета с развертыванием фронта, что замедляет сборку.
В общем, я бы советовал прочитать про докер и как им пользоваться. Разверни пару контейнеров, настрой сетку между ними нормально.
Есть где-то норм open-source GUI редактор SQLite БД на шарпе, чтобы просто работал с либой System.Data.SQLite.dll и не ебал мне больше мозги?
Еще раз попытаешься так обмануть пользователей ресурса "2ch", и тебя ждет плохой конец.
Wpf зелень на связи.
Как можно на уровне кода дать программе возможность взаимодействовать с формой (допустим TabItem), через событие Click MenuItem'а ContextMenu, который принадлежит данной форме. В моем случае по нажатию правой кнопкой мыши по элементу, вылазит контекстное меню, где есть вкладка "удалить" и по нажатию на этот айтем, элемент, владеющий данным ContextMenu должен удаляться.
Помогите пажаласта, вот пытался так, но я думаю это неправильно, тк наверное необходимо задавать вручную свойство Parent?
Починил, мб кому интересно:
Блять, нахуй нужна эта ваша 22 студия, почините ебучий нугет, это просто пиздец - полезешь туда что-то ставить/менять - 95% что-то пизданется/отвалится/не станет.
разве джуны через год-два не должны ставать мидлами?
еще пять лет назад джунов было жопой жуй, значит сейчас должна быть ухева туча мидлов а в реальности мидлов почему-то только меньше, какого хера? куда джуны деваются, хуле они в мидлов не превращаются?
Ставь rider и .net sdk версии, совпадающей с версией проект.
Потому что на C# минимум работы на фрилансе. Повезет, если ты найдешь постоянного заказчика. Это не считая того, что на шарпе даже в офисах работы меньше - в 2-3 раза меньше, чем на Java и в 3-5 раз меньше, чем на JS.
Если ты выбрал C#, то ты выбрал язык для души. У меня все знакомые перекатились на JS или Java, потому что заебались доедать последний хуй с солью.
А что самое забавное, к C# (со стандартным стеком) тебе в обязательном порядке нужны еще какие-то языки и технологии - как правило, это SQL, JS, React, Redux, ts и т.д.
И возникает вопрос: нахуя вообще этот C# нужен, если какая-то рандомная веб-макака зарабатывает в 2 раза больше, затрачивая при этом в несколько раз меньше сил?
Напрашивается очевидный ответ (как и писал выше) - для души. Если хочешь зарабатывать - выбирай другое направление.
Шарп дешевше для РАБотодателя..
Насчет ЗП кстати не сказал бы что разница есть особая. Но список технологий который нужно знать, чтобы вкоиться - действительно больше.
Другое дело - шарп же охуенен. Просто божественен. Я не понимаю как можно попробовав шарп - всерьез выбирать что-то кроме плюсов.
>Насчет ЗП кстати не сказал бы что разница есть особая
Учитывая количество технологий, разница большая - ебать себе мозги приходится в несколько раз больше. Не считая того, что вкатиться на шарпе сложнее (это еще мягко сказано). В вроттендеры (или даже фуллстекеры) можно условно за полгода вкатиться. С C# такая хуйня не пройдет.
>Я не понимаю как можно попробовав шарп - всерьез выбирать что-то кроме плюсов.
Ну вот это и есть "для души". По правде сказать, нахуй бы забыл про перехайпленный среди погромиздов линукс-хуинукс, если бы этого не требовал кабанчик (хули, стек слишком большой).
ок, допустим другая функция не может видеть что внутри другой функции, тогда мне лучше выше мейна это запихнуть всё, а в мейне только результат функции?
Потому что часть джунов тупые
Потому что часть джунов получают 80-100к и им норм
Потому что часть джунов перекатывается в тестирование/аналитику/etc
Потому что рынок растет адскими темпами и скорость пережевывания мидлов выше, чем скорость их появления
Этот шарит. Ещё куча джунов перегорает, и никакие деньги в перспективе им не интересны. Это не считая того, что в данном моменте они получают копейки.
> SQL, JS, React, Redux, ts и т.д.
Кроме решеток знаю только СУБД и не сказать, что как бог.
Проблем с поиском нет.
>>20720
> В вроттендеры (или даже фуллстекеры) можно условно за полгода вкатиться. С C# такая хуйня не пройдет.
Вкатился за месяца три без особого напряжения.
Но доля правды есть, на джаве сейчас в любой помойке пишут.
Сярпы более ограниченны в РФ по кол-ву работодателей
>Вкатился за месяца три без особого напряжения.
А до этого работал дворником и компьютеры в глаза не видел. Все очень просто: учишь и получаешь работу через 3 месяца! Забудьте сказки, что нужен какой-то технический бэкграунд - это всё в прошлом. Покупайте любой курс и вкатывайтесь за один семестр!
300кк/наносек ждут вас!
Ну ответь честно: способен ли новичок, который не имел никакого опыта в программировании, вкатиться в C# за 3 месяца и найти работу? У кого еще из нас хуйня в голове?
Да в тырпрайзе ты будешь JSON-ы между апи перекладывать, всем похуй на алгоритмы, если это не узкоспециализированная хуита типа поиска, распознания, ну или какого-нибудь хуйлоада
Лол. С таким же бэкграундом технарь в 2 раза быстрее вкатится в веб. И не пизди, что это не так.
В приложении есть 2 варианта подключения к базам, либо sqlite либо mysql. Можно ли использовать как нибудь один и тот же ентити контекст, т.е. по входящей строке определить передавать в base SQLiteConnection или MySqlConnection чтобы не плодить контексты и код?
А ты что думол. Если ты хочешь вкатиться в C# ДЖУНОМ, то вообще забудь. Потратишь минимум 1,5-2 года на вкат. По сути шарпист-джун чаще всего это Junior+. То есть должен иметь опыт в 3-6 месяцев.
>пыхпых, или вронтенд?
Ты сам ответил на вопрос. Это очевидные варианты. Вакансий в 5 раз больше, ЗП выше, стек требуется меньше, полно работы на фрилансе.
вронтенд, по-моему хуй влезешь, овердохуя желающих, но js в любом случае требуется
Смотри, вот БД test.sqlite3, есть .NET Framework 4.0, и есть System.Data.SQLite.dll
Как с ней работать-то, чтобы было попроще?
Нарыл вот такое вот API: https://github.com/donet5/SqliteSugar
Вроде робит.
Кто-нить сможет пришпандорить его в наноборду? А то я ваще рукожоп.
На старте да,
через полгода они почему-то начинают хотеть деняг и некоторые даже начинают получать
А тупойй джун, это какой?
как это читать? куча нелепых картинок, куча каких-то человечков с предложениями в облачках, нет ничего по этой теме написанного в более строгом стиле?
Бамп
>разве джуны через год-два не должны ставать мидлами?
А каким образом джуны должны становиться мидлами, когда они вообще ничему не учатся? Местные двачеры доказали, что они могут 3.5 года джейсоны перекладывать и считать себя при этом синьорами, которые обсираются от двух алгоритмических задачек. Зато гонору, ебать, "бизнес-задачи" ("Вань, надо прототип написать, сделой!" (делает в конце спринта за пять минут и потом ещё месяц ковыряется в носу без дела, воображая себе что это и есть карьерный рост)).
Я писал про Adam Freeman - Pro Asp Net Core 3, ты видимо что-то другое нашел
Блин, чел, вот ты прям мне настроение поднял.Всю неделю бомблю с того что у меня говнокод, но посмотрел на твой и сразу легче на душе стало. Спасибо.
Если ты под одним контекстом подразумеваешь один и тот же класс - да, можно. Делается это с помощью DbContext(DbContextOptions) в опциях задаешь провайдера. Если ты хочешь у уже созданного объекта менять провайдера, считай что нельзя.
Чтобы было проще пользоваться - сделай себе класс фабрику для контекстов.
Можно так. Например.
Можешь написать парсер(скорее пару регулярок, лол) который по строке догадается какой правайдер нужен.
МСДНом заполируй и норм будет.
Кури CLR via C#. Эта хуйня - обязательна. Попадешь на мой собес и хотя бы один раз запутаешься в кишочках - затроллирую до смерти.
понял, принял
Он не нужен
.net 4.5.2, wpf, в окне есть винформ хост с датагридом (больше нихуя нету с винформ). Ловлю пикрил эксепшн при, внимание, попытке заскринить окно шиндоусом (win+shift+s). Ловлю из-за датагрида (в эксепшене пишет что он приходит с system.windows.forms).
Там на датагриде какие-то дефолтные хоткеи есть или что?
>>22882
>>22892
>что тебя конкретно интересует?
Конкретно, интересует то, как работать с базой данных с через этот System.Data.SQLite.dll, и как вообще его юзать на шарпе.
Пример работы с базой, короче, нужен, рабочий.
Надо какое-то апи или класс для него написать, отдельно, чтобы попроще всё это было там,
и чтобы там были простые методы были для работы с данными.
Ну там, создание/переименование/удаление таблицы, добавление/изменение/удаление поля, перестановка полей местами в таблице,
добавление строки, изменение ячейки в строке, обновление строки, обновление ячейки,
поиск по таблице, SQL-запросы всякие, удаление данных, изменение типов данных в столбцах,
работа с разными типами, возврат текста строкой, возврат блоба в виде байт,
возврат строки списком значений столбцов,
возврат таблицы или Dictionary, из view'a скажем, или в результате SQL-запроса, где возвращается таблица,
переиндексация таблиц в бд и бд вцелом, возврат схемы базы данных,
создание view'а с SQL-запросом, короче вот это вот всё,
чтобы было отдельными методами, возвращающими соответствующие значения,
и чтобы записывались они, в результате формирования ACID-транзакции,
помещаясь сначала в очередь, а затем одной транзой, хуякс и либо вписываются, либо не вписываются.
Потому что одновременное чтение там есть, а одновременная записи нет, и надо повторять каждый раз, пока не запишется,
проще одной транзакцией записать, которая либо запишется, либо не запишется и повторится через время.
И чтобы не городить каждый раз конструкции с using, и чтобы не открывать каждый раз соединение с базой данных этой, для каждого действия.
И чтобы Vacuum там был и backup и repair, и вся хуйня эта вот, для полноценной работы,
а то я ебу как юзать эту System.Data.SQLite.dll, просто длл-ка какая-то, а что там внутри - хз, непонятно нихуя, оно какие-то кракозябры в блокноте показывает.
Я вот написал когда только пришел на работу решение. Оно работает, оно всех устраивает и его пустили в прод. Суть дела была в том, чтобы запилить телекоммуникационный сервер. Ну так вот, тогда я нахуячил на TcpListener-TcpClient. Ну так вот, прошел год, я посмотрел и охуел с того что за говно написал. И втихаря переписал, беря за основу архтектуру кестрелла, потому что мне понравилось в свое время то как там вся эта хуйня сделана. Тимлид увидел и сказал, что я хуйней маюсь, дескать работает - и заебись, нихуй лезть, ну и откатил все что я там неделю втихаря лил. И с какой-то стороны он же прав, типа никто не жаловался и работает нормально. Но бля, почему-то же сами майки не на основе TcpListener-TcpClient решили хуячить. А может они просто так же хуйней страдают. Я не знаю, но чувствую себя все время говном.
>прошел год
>И втихаря переписал
Какой же ты дегенерат, господи Иисусе. Я бы на месте тимлида просто к хуям тебя уволил в тот же день. Не захотел бы увольняться по соглашению сторон - нашел бы регламент на согласование изменений и вписал бы нарушение в твою ебанную трудовую книжку.
Как же мне горит с таких ПЕРФЕКЦИАНИСТАФФ))00))-ебланов.
А с чего у тебя горит-то, лол? Тот проект я делал соло. Оценивали мою работу по факту того, что оно делает то что от этой хуйни ожидают, не падает, не проседает по перформансу и не течет как сука. И никто, кроме меня, не знает как оно работает. Я переписал, почитав умных книжек, разбил на слои, убрал синглтоны со статикой, добавил тестов и вообще сделав все как книжках советуют. Для потребителя - ничего не поменялось внешне - оно так же работает и делает все то же самое, внещшний апи, поменялась внутренняя часть.
> А с чего у тебя горит-то, лол?
Ты мог бы круто подставить всю контору, если бы твоя новая перфекционистская версия забаговала бы. Ведь ты в тихаря лил в прод неоттестированнй код. Втихаря. В прод.
мимо другой анон, тоже уволил бы тебя нахуй, вредитель-неадекват, иди лечись в дурке, перфекционист, бля
И кстати, твой сегодняшний код через год тебе тоже говном покажется.
Еблан ты тупой, потому что ты наемный рабочий, который выполняет задачи бизнеса. Выполнил задачу? Все работает? Все довольны? Не трогай, блядь! Из-за одного такого же дегенерата нашему отделу пришлось слышать ор директора, которого выебал в жопу недовольный заказчик, поймавший баги в "ОПТИМИЗИРОВАННОМ КОДЕ".
Хочешь свободы и творчества? Пиздуй в свободное плавание и пили свои проекты.
Если ты за годы работы так и не осознал, что ты в первую очередь решаешь проблемы бизнеса, то ты не просто еблан, ты великовозрастный долбаеб, который смотрит на мир глазами 15-летнего ребенка.
Я завидую терпению твоего тимлида. Представляю, как у него сгорела жопа.
>>23458
АХАХАХАХ. Анон, я очень надеюсь, что это жирный вброс, иначе я потеряю верю в циничных двачеров. Но ЕСЛИ это все же правда и произошло недавно, то извинись перед тл и скажи, что осознал свою ошибку - скажи, что посмотрел на ситуацию со стороны. По крайней мере, хоть ультрадураком в глазах тл перестаешь быть.
>>23487
>>23490
Очевидные вещи пишите, анончики.
>>23490
Я не лил в прод, лол. Я же не совсем дебил. У нас просто есть репозиторий для промежуточных версий, в который я и лил, потом, если поступает требования запилить новую полноценную версию, оно допиливается и эти промежуточные версии переносятся в альфу, альфу отдают на внутренние тесты отделу тестирования, когда внутренние тесты прошли - отправляют лояльным заказчикам на бета-тесты, в прод льется только когда все замечания бета-теста исправлены, и в прод идет только то что все это прошло и замечания устранены.
Да и не забаговало бы, я первым делом сделал тесты и покрыл ими весь код что собирался менять.
>И втихаря переписал
Я заскриню этот пост, чтобы показывать неофитам на работе, как делать не надо. Как тебе это вообще могло в голову прийти?
Очевидно как. Я работал над другим проектом. Мне все нравилось. В один из дней на обеде решил сравнить с тем как писал раньше. Охуел и решил переписать.
Ты болен.
Блядь, так никто и не ответил. Что-то вроде такой вот хуйни https://github.com/jlsbollman/SQLiteHelper/blob/master/SQLite3Database.cs только более функциональное, есть?
Имеет ли смысл закрывать соединение с базой каждый раз и открывать ег снова, при каждом действии, или однин раз открыть его и оставить его открытым, пока работает прога?
Смотри как решают похожие задачи другие и перенимай опыт.
Чтобы высирать решения быстро - нужно опыт иметь.
Допустим, я вот упарывался олимпиадами еще со школы, и верчу алгоритмы на хую, но когда меня просили в качестве тестового - запилить консольное приложение, что должно файл по рестапи отправлять, я бсод поймал и начал с написания реализации HTTP, все по спецификации, хуячил с сокетов, в итоге таки за неделю нахуячил отправку файла, а мне сказали - что я хуйню сделал и нужно было просто взять HttpClient и отправить ебучий файл по апи. Ну или другой пример подобного бсода - попросили сделать для крестиков-ноликов серверную часть, ну, я-то у мамы умный - одномерный массив для хранения состояний, хуяк-хуяк и готово за полчаса, и меня послали, дескать - а вот мы захотим делать трехмерные крестики-нолики или вдруг нужно не поле 3x3 использовать, а 10x10, а у тебя там все гвоздями приколочено. В общем, я много раз обсирался, прежде чем первую работу нашел, и просто после фейла - лез смотреть как подобное нормальные люди делают, ну и таки в определенный момент решил не выебываться и таки начать читать книжки типа Совершенный код и прочую, казалось бы, залупистику, которая почти не поясняет за технологии, а скорее философией является.
Короче, к чему я. Опыта набирайся. Смотри как другие люди решают задачи, не копируй их решение, а попытайся понять, почему они так сделали, какие минусы и плюсы такого подхода, что тебе в нем нравится, а что - нет. Если само решение не понимаешь - трать время на наращивание базы.
Ну и да, порешай на кодфорсе-кодварсе-литкоде задачки, пользы коммерческой не особо много, но там много интересных задачек, над которыми можно посидеть-подумать, плюс ты делаешь свое, потом можешь посмотреть как другие делают и спиздить понравившиеся техники, ну или сравнить со своим решением и потешить чсв, что ты сделал пизже.
спасибо пчелик, попытаюсь щас по твоей инструкций сделать, как рас много времени имею, выходные + в понедельник не надо на работу , если получится что нибудь отпишу в тредисе
Тебе что бы вкатится и фреймворка 2.0 хватит
Да. У меня 3/4 собесов были как раз на вакансиях с 1-3 годами опыта на хх. И все 4 джунские. На стажёров или сразу отказы или после тестового в виде теста/расскажи о себе, хуй знает почему.
В резюме все честно - "без опыта". Но есть вышка кста, если это роляет.
я правильно понял, без опыта, подавался, на вакансий с требованием 1-3 года опыта работы?
думаю сишарп, ну мб и что другое, поэтому и интересуюсь
спасибо за ответ, буду знать
Возможно не туда пишу, но как мне авторизоваться в аккаунте телеграм, используя файлы? C#
Вот какую шнягу нашёл: https://github.com/Tuahaca/SQLite_Connector/blob/master/DataAccess.cs
Вроде робит, но этого мало. Это что, всё руками хуярить, блядь?
Как бы это все привести к единому стилю?
В плане именования методов. Думаю, их нужно все привести к виду "SendЧто-тоТам".
OnGetCoinsFromCoinPack -> SendCoinsGotFromCoinPack
OnBuyChargesPack -> SendPurchasedChargesPack
Зачем тебе такой толстый интерфейс? Ты уверен, что его нельзя разбить на более мелкие?
Чисто попытка на кофейной гуще гадать.
Ну, банально, вот то что ты в region вынес - вынести в отдельные интерфейсы.
Потом. Я вот вижу, что сигнатура методов OnBuyCoinViaXXX отличается только наличием Signature. Эта сигнатура всегда разная и ее нельзя как поле/свойство класса GoogleCoinBuyer хранить?
Просто мое видение всего этого монстра заключается таки в том, что тебе нужно сделать флюент-билдер в нем собирать нужный для конкретной платформы сервис аналитики.
Что-то типа:
IAnalyticService service = AnalyticServiceBuilder
.SetUserId(id)
.UseGoogleBehaviour()//тут бы бы выставлялся IGoogleAnalyticService
.SetSignature()
.Build();
Ну и дальше - с экономикой, тоже как-то странно. Я бы вынес в интерфейс:
IResourceAnalytic<TResoirce, TSource> в котором был бы однин метод OnGet(int amount). PackId бы билдером задовал в случаях, где он нужен, как и остальные штуки.
В общем. Я бы как-то так сделал:
IBuyResourceAnalyticSerice<TResource>{ void OnBuy<TResurce>(string packId);}
IEconomyAnalyticService<TResource,TSource>{ void OnGet<TResource,TSource>(int mount);}
IGameSender<TEventType>{ void Send(); }
Затем пара фабрик, пара билдеров и если уж так нужно такой вот интерфейс иметь - фассадированием это все делать.
нет
>Думаю, их нужно все привести к виду "SendЧто-тоТам".
Для eventHandlers я лично всегда пишу приставку On*. Но как анон выше сказал я бы разбил интерфейс на несколько исходя из регионов.
В целом - энтерпрайзом запахло.
Каким образом класс, который должен предоставить handlers к каждому отдельному eventу будет делать маппинг к твоим generic'ам, когда интерфейс в данном случае нужен чтобы убедиться что класс который его имлементирует предоставляет handlers для каждого и каждого event'a игры/движка?
То есть если у тебя 350 event'ов в игре, через твой дизайн у тебя будет в фулл классе 350 наследований и ебанутый поток факторис.
> Каким образом класс, который должен предоставить handlers к каждому отдельному eventу будет делать маппинг к твоим generic'ам, когда интерфейс в данном случае нужен чтобы убедиться что класс который его имлементирует предоставляет handlers для каждого и каждого event'a игры/движка?
Примерно так же как у тебя мапятся запросы к контроллерам в случае работы ASP.Net (core).
Я бы сделал атрибут который бы описывал, за какой эвент отвечает конкретный хендлер. Что-то типа EventTypeAttribute. Затем бы класс EventHandlersMapper, который бы собирал из сборки все обработчики, у которых есть конструктор принимающий 1 аргумент типа EventContext из этого бы составлялся словарь вида: <EventType, Func<EventContex, EventHandlerBase>>, и затем в зависимости от евента - проверял бы наличие нужного хнедлера и создавал инстанс, в случае наличия, ну а обработчики бы наследовались от какого-нибудь абстрактного EventHandlerBase, который принимает в конструкторе EventContext в котором уже все что нужно для обработки любого возможного эевента находилось. В общем как-то так.
> То есть если у тебя 350 event'ов в игре, через твой дизайн у тебя будет в фулл классе 350 наследований и ебанутый поток факторис.
С чего? Зависимости - может быть, а наследования тут каким местом? И это при том что такой класс нужен только в случае если вот такой вот фассад действительно нужен, иначе - нахуй его.
Ну и да, сам подумай, вот у него будет 350 эвентов, все это в одном монструозном файле, а скорее всего это будет какая-то ЙОБА с partial, когда ты нихуя не понимаешь и боишься просто тронуть чтобы не сломать, и потом у тебя в логике обработки какая-то ошибка, ты не знаешь, можешь ли трогать этот метод или нет.
Может быть я не прав. Какое ты бы решение предложил?
Да, моя хуйня не учитывает возможность передать хендлерам параметры в конструкторе. Но я не это решение за 5 минут накидал.
Алсо, еще удивило обилие вакансий фуллстеков с шарпом на бэке. Почему так? Наверное, делит первенство с нодой и пыхой. Джавы там меньше, например. Шарп не настолько энтерпрайзнутый исторически и больше используется в малых/средних проектах с вебом?
Без опыта то, конечно, можно.
Возникла потребность обеспечить коллег одной своей прогой, а оказалось, что рантайма .Net 5 нихуя ни у кого не установлен ни в Вин10, ни в Вин7, и админских прав ни у кого нет, и оказалось, дотнетовский екзешник ни у кого не работает, кроме меня.
Только Net Framework 4.8.
Есть ли в студии опция автоматически даунгрейдить весь код с нет5 в фреймворк 4.8? Весь код мой. Либ, кроме стандартных, не использую.
И когда кстати Вин10 у всех автоматически проапгрейдятся с добавлением свежего рантайма?
Коллеги кто по професси? Если программисты, то сразу посылай нахуй, а лучше сам иди в пизду оттуда.
А если они нормичи, то измени в .csproj TargetFramework с net5.0 на net48.
А ещё лучше, измени TargetFramework на <TargetFrameworks>net48;net5.0</TargetFrameworks>, и быдлу скидывай 4.8.
Более того, при чём тут кроссплатформенность если речь про отсутствие нужной версии на машине.
поставь Self-contained в настройках деплоя
Нет, он врёт, но конечно в .NET oche много говна.
Например я на работе до сих пор разгребаю легаси WinForms 2003 года. Много всякого bloat'a и старья в экосистеме накопилось, например ебаные ASP NET WebForms, который иногда тоже нужно поддерживать.
Но с другой стороны, мне удалось одурманить кабанов и пропихнуть F# в энтерпрайз, а это вин я щитаю, учитывая что в моем городе НИ РАЗУ не было замечено ФП вакансий, разве что Scala проскакивала, да F# не взлетел у масс, и вряд ли появится что-нибудь.
Тут же .NET5.0/.NET6.0 пилю, которые наконец решают многие проблемы экосистемы.
По десктопному UI есть WPF для небыдла, который я тоже юзаю. Потом в MAUI буду смотреть.
В целом, я думаю 5/10 вакансий - легаси, 4/10 - бэк или фулл-стэк, что неплохой вариант, 1/10 - как у меня, где в принципе есть всё со своими минусами и плюсами ЗАТО ШВАБОДА.
Джаву не юзал почти, но осуждаю.
Кароче если хочешь нормальный .NET - сразу смотри чтобы в вакансии было мало десктопного говна/.NET Framework'а.
.NET Core/.NET5.0 + Linux - детектор небыдла/хипстеров в мире .NET, эти ребята шарят. Умеют выжимать из Майков хорошие соки, а мусор, которого много, оставлять на свалке. И что сука характерно, не платить ни бакса Майкам.
Гнилой энтерпрайз такой стэк себе не поставит, не осилят.
обычно с .NET в java перекатываются, ты видимо исключение. Не смотри на вот таких долбоебов, как >>26828
>Нет, он врёт
>Джаву не юзал почти, но осуждаю.
>на работе до сих пор разгребаю легаси WinForms 2003 года
>пропихнуть F# в энтерпрайз
Они тебе тут расскажут, что на .NET можно в космос улететь. Смотри вакансии в своем регионе и смело дели .NET на 3, если не хочешь говно жрать с юзлес парашей, как ПОЦиент выше.
Не хочу разводить холиваров насчет .NET vs Java, но java - это как стандарт качества. Все остальное - завидный пердежь со стороны параши.
Напиши препроцессор, компилятор и линковщик си на шарпе. Базарю, и про деревья выражений и делегаты и линк с потоками узнаешь.
И что-что WinForms? На жабе там говна ещё больше легаси говна поддерживать, а .NET5.0 - пофикшенный дот-нет, это наше всё.
>но java - это как стандарт качества
Хаха, пиздос, java на 5 лет отстает от отсталого C#. Более того, со Скалой то чмони обосрались, никому она нахуй не нужна, а F# в своей нише живет и спокойно соседствует с C#-легаси в продакшене.
>обычно с .NET в java перекатываются
Ещё раз, ты долбаеб в любом случае, ибо Java и C# - это легаси ебаное, поэтому только долбаебы в Java перекатываются в 2к21, C# туда же.
Выбрал c#, т.к. интересно работать с десктоп + есть опыт в вебе, если что, туда скакну.
Выбрал книгу - Язык программирования C# 7 и платформы .NET и .NET Core Троелсен, Джепикс. Что можете о ней сказать?
И ещё, в 26 лет вкатываться поздно или нет?
Я пока что зеленый, настолкьо, что CLR не прокурена, лишь пара-тройка уроков с ютуба + фундаментальные знания с шараги.
Не думаю, что такая работа сейчас мне по плечу
Вкатываться никогда не поздно, друг-анон, главное - упорный труд и мой тебе совет - обучение возможно лишь при выходе из зоны комфорта, поэтому ты свернешь все горы, если поставишь цель, удачи)
Та там нет ничего сложного на самом деле. Простую версию ты бы, я думаю, просто прочитав спецификацию языка - смог бы запилить без особых проблем.
Ну да ладно. Тогда вот тебе другой советик: иди на CodeWars и решай задачки оттуда, но чтобы усложнить задачу - делай к задачкам гуй простой, например на формах или ВПФ.
>И что-что WinForms?
есть ли смысл дальше спорить с этим? Ладно, сегодня хорошее настроение
>java на 5 лет отстает
иследование анонов с 2ch?
>F# в своей нише живет
3% - F#, 97% - python. Зафиксировали нишу
>в Java перекатываются в 2к21
А кто говорил, что нужно в Java перекатываться? Сейчас есть по перфомансу и спросу лучше языки, поэтому их спрос и падает
>>26955
>интересно работать с десктоп
он мертв, забудь
>>26960
сто раз задумайся, прежде чем слушать двачера. Тут зеленых 90% сидит, они тебе еще не такого насоветуют. А копни глубже - сидит 16 летняя чмоня, которую в шараге деды дрочат низкоуровневые реализации воплощать в жизни. Проскроль выше, там и TCP свои пишут и колеса изобретают
WinForms - умирающее говно, но которое до сих пор встречается на проектах просто потому что оно было популярно и активно юзалось. И я сказал, что точно так же в жабовской экосистеме. Новые проекты на формах уже никто не делает, да и в основном новое сейчас пишут на линуксе для веба на .NET5.0.
Лучше объясни мне почему ваше говно-поделие жрет ресурсов в 10х нет кора, а перфоманс средненький то, и не дотягивает до майков.
А зачем тогда щас шарп нужен? Для веба? А какую роль он в вебе играет? Есть же php, python, go
Потому что нихуя больше нет.
Самый топ - это Go.
После него NET Core / NET5.0.
Всё остальное моча.
>php, python
Я лучше на Java буду писать, чем на этих двух говнах.
Ладно, дам Java/Scala третье место, ок, не говномоча.
Итого: Go > .NET > Java/Scala > говномоча > всё остальное.
Ну нахуй ваше го с его кодами ошибок. Говно мамонта какое-то.
Все просто. Попробовав писать для веба на шарпе - ни один здоровый на голову человек - не захочет писать на ПХП, а уж тем более питоне или го.
Собственно - вся суть. Шарп - охуенен в плане ощущений от написания на нем кода. Все удобно, все отлично, и перформанс и безопасность и инфраструктура.
Долгое время единственное что останавливало кабанов от использования шарпа - ебля с запуском на линуксах и вся эта хуйня что тянулась вместе с шарпом, но, к счастью, с появлением core - это перестало быть проблемой.
Для структур, чтоб не писать бойлерплейт. Сам же сказал.
1С
В том, что выставляя наружу поле - ты открываешь реализацию класса. Это, как минимум, небезопасно. К тому же - внутренняя структура класса - может меняться довольно активно, в то время как интерфейс должен оставаться неизменным. Если, допустим, ты вынес возраст в публичное поле - ты, по идее - не должен иметь возможности потом заменить его на свойство, а если ты не можешь заменить его на свойство, то ты не имеешь возможности затем добавить банальную валидацию в муттаторе, в итоге - долбоеб-вредитель возьмет и укажет возраст человека отрицательный, у тебя какая-то остальная логика, что завязана на возрасте пойдет по пизде и потом ты заебешься это все искать и править.
Это не говоря о том, что у тебя может быть так, что наружу торчит одно, а не деле там какая-то хитрая логика.
Standard ML
1. Из .NET только # (спрашивать по F или десктоп - имо тупо, т.к. проект на MVC/Core);
2. Моя часть - только #, но нужны вопросы глубокие, на уровне CLR/CLS с MSIL (только не вопросы по командам IL, это тупо);
3. Чем свежее, тем лучше. Спрашивать по асинхронным паттернам .NET 3.5 тоже не торт.
У меня в мыслях - это любимая асинхронщина с TAP паттерном, рефлексия в рамках рантайма приложения и какой ни будь вопрос по созданию своего Value type.
Подкиньте самые каверзные вопросы, которые вам задавали студентота и джуны лесом
Попроси его сложить два числа и начни его хуярить, что неправильно делает.
Если сломается - нахуй таких слабых.
Ну, для примера, спроси его про финализаторы. Можешь хоть в лоб: почему при создании своего финализатора - время на создание объекта увеличивается в разы, как избежать, что происходит. Можешь этот вопрос завуалировать.
А вообще - если вам он не нужен как сеньер - так и скажи: нам нужен крепкий мидл на такую-то вилку. Пытаться как-то там принизить, а в результате попасться на какого-то задрота, который действительно тебя опустит - тебе же хуже, потому что ты себя чмом как в его глазах, так и своих выставишь, это не говоря о коллегах, которые будут видеть, что ты срешь себе в штаны, а в конце весь обосранный говоришь, что человек не подходит.
>про финализаторы
полу сеньера собесить будем, а не джуна, чтобы такое спрашивать
>так и скажи
я ничего говорить не буду, кто нам нужен. Для этого есть ПМ и HR, мое дело - отсобесить. Сказали придет сильный чел из известной конторы, нужно спросить "что нужно". В том то и проблема, что я не могу спросить какую то дичь из спецификаций, нужно брать что то из жизни. Но твой вопрос с GC в диспоузе натолкнул на хорошую мыль - спросить по marshal class - для чего, зачем? InteropService в целом, как оборачивать management в unmanagement. Вопрос по structLayoutAttribute тоже пойдет. На закуску будут лики - чем и как ловить, что создает. Как раз есть блоки Unmanagement кода на проекте, пусть скажет, как с ними работать.
Какого говняка еще подкинете?
Чел, извини, но мне кажется он тебя в говно размажет судя по твоим познаниям .NET и того что ты на дваче спрашиваешь советов. Отдай собес людям более опытным.
Если задача - чтоб чел не пошел к вам на работу - спрашивай IL парашу, которую ты и хотел спрашивать. Нормальные люди увидят такое собеседование и сами скажут "спасибо, пошли вы нахуй".
Более того, я таких говен нахавал с интеропом, что мне хочеться просто взять и уебать, и если ты несёшь интероп в продакшн в 2к21 - поздравляю - ты джун энтерпрайзный. Не позорься.
А вообще, у дотнетчиков энтерпрайза очень много?
>>26300
Напряги извилины и дай ему алгоритмическую задачу на листке бумаги , все остальное - вода.
Попроси его написать на листке бумаги колоночную СУБД. Дай ручку без чернил и каждые 30 секунд хмыкай и делай недовольное лицо. Базарю, так ты сразу попустишь зазнавшегося и покажешь его место.
Если челик шарит в high-perfomant .NET, то по .NET его подъебать будет очень сложно, скорее он себе ещё десятку зелени накинет, если прощупает незнание со стороны кампании.
>>27164
в чтение умеешь? >>27093
>Из .NET только #
>>27181
как и другие мывамперезвоним, которые перданули выше
>студентота и джуны лесом
>>27193
его будет по архитектуре сложно подъебать или по каким ни будь высокоуровневым конструкциям, поэтому я за говняк по собесам и спрашивал
>десятку зелени накинет
>незнание со стороны кампании
какой еще "кампании"? Я выше писал, как будет собес проходить. И про какую десятку речь? Ты вилки мидла-сеньера не знаешь?
Пиздец тут комьюнити сидит.
Всем идиотам с инкрементом хромосомы - вы сути собеса не понимаете или никогда не собесили. Если человека приглашают пособеседоватся - это повод, что нужен человек и его хотят взять на работу. Я и сам иногда прохожу собесы, чтобы узнать, что могут интересного спросить или предложить.
Всем обиженным, которые не прошли на место из N человек - оставьте свои всхлипы при себе.
Отвечать на подобного рода посты не вижу больше смысла, если подкинете чего годного и интересного - буду благодарен.
Когда ты собеседуешь - ты и есть представитель всего хорошего и плохого что есть в кампании. А почему 10к тебя удивляют? Senior .NET 5+ лет работы - уже человек вполне может за бугор работать, а там спокойно 30-70k$/year вилка, особенно для как ты сказал из известной конторы. Конечно, если ты не из ДС, то извини.
Уже не говоря что в ДС зарплат сеньйоров меньше 25k$/year ПРОСТО НЕТ.
Как скомпилировать это https://github.com/moneymanagerex/System.Data.SQLite/tree/master/SQLite.Interop
в System.Data.SQLite.dll (содержащий SQLite.Interop.dll внутри себя),
производя компиляцию на linux, с помощью mono xbuild/msbuild ,
и сделать это так, чтобы на выходе, была windows-длл-ка,
первые байты которых, начинаются с MZђ , а не с ELF ???
Этот файл: https://github.com/moneymanagerex/System.Data.SQLite/blob/master/Setup/compile-interop-assembly-release.sh
выдаёт ELF, под названием SQLite.Interop.dll
Но это не виндовая либа System.Data.SQLite.dll (с SQLite.Interop.dll внутри),
которая генерится на windows, cmd-файлом:
>set fdir=%WINDIR%\Microsoft.NET\Framework
>set msbuild=%fdir%\v4.0.30319\msbuild.exe
>%msbuild% System.Data.SQLite\System.Data.SQLite.Module.2010.csproj
>%msbuild% SQLite.Interop\SQLite.Interop.2010.vcxproj
>pause
Хочу, чтобы mono выдало мне именно этот файл System.Data.SQLite.dll который многовесный, и который с интеропом этим, внутри, и чтобы win32 он был.
Какие флаги задать нужно? Или может что-то поставить нужно в линуксе, дополнительно?
> В том, что выставляя наружу поле - ты открываешь реализацию класса
А когда я пишу {get; set} я не открываю реализацию класса? Вредитель всё ещё может поменять его.
> ты, по идее - не должен иметь возможности потом заменить его на свойство
Почему? Что это за ментальная гимнастика?
Есть код - шифратор Цезаря из файла.
Как мне записать полученное слово в новый файл допустим, "4.txt"?
Пробовал через СтримВрайт, но так и не понял, как он работает
Сам код
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int n =1, key = 1;
string s = @"C:\Users\user\Desktop\1.txt"; var arr File. ReadA11Text(s); Console.WriteLine("Введите ключ:"); key - Convert. ToInt32(Console.ReadLine());
string s1 ="";
string alfphabet - "абвгдежзийклмнопрстуфхцчщъыььюя";
int m = alfphabet.Length;
for (int i =0; i arn. Length; i++)
for (int j = 0; alphabet.Length; j++)
if (arr = alphabet
1)
int temp = j * n+ key;
while (temp temp >=
m)
temp -=m;
s1 - s1 alphabet[temp];
Console.WriteLine("Зашифрованное слово:" s1);
Console. ReadLine();
Есть код - шифратор Цезаря из файла.
Как мне записать полученное слово в новый файл допустим, "4.txt"?
Пробовал через СтримВрайт, но так и не понял, как он работает
Сам код
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int n =1, key = 1;
string s = @"C:\Users\user\Desktop\1.txt"; var arr File. ReadA11Text(s); Console.WriteLine("Введите ключ:"); key - Convert. ToInt32(Console.ReadLine());
string s1 ="";
string alfphabet - "абвгдежзийклмнопрстуфхцчщъыььюя";
int m = alfphabet.Length;
for (int i =0; i arn. Length; i++)
for (int j = 0; alphabet.Length; j++)
if (arr = alphabet
1)
int temp = j * n+ key;
while (temp temp >=
m)
temp -=m;
s1 - s1 alphabet[temp];
Console.WriteLine("Зашифрованное слово:" s1);
Console. ReadLine();
ну можно с помощью ксмл но там ведь больше еботни будет, чем тебе байты не нравятся?
Ты взят на java.lang.org.pring.КАРАНДАШ(), будь осторожен!
>А когда я пишу {get; set} я не открываю реализацию класса? Вредитель всё ещё может поменять его.
Ну так сделай валидации в сеттере или вообще сделай его приватным, доступ через методы.
Ну и опять же, что там у тебя в get; set; только ты знаешь, может у тебя там динамика какая-то или генерация на лету например, так что про реализацию ни слова - только контракт
Спасибо (как?).
Правду указывать.
>Всем идиотам с инкрементом хромосомы - вы сути собеса не понимаете или никогда не собесили.
Расскажи о сути собесов, мне интересно тебя послушать.
Короче, блядь. Как же я наебался с этим сиквелайтом. Вот нормаьный сорец с ентити, блекджеком и шлюхами: https://github.com/username1565/System.Data.SQLite
А тот full-сорец отсюда: https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
какой-то неполный, ошибки бьёт, блядь.
mono так и не разбрался, но dll-ка System.Data.SQLite.dll и её сорец есть уже.
Можно пришпандорить всю эту поебнятину в наноборду, терь.
Всё заебало, пришел в айти отдел, поставил виртуалку с виндой и человеческой студией. Нахуй нам маки закупили? Пиздец блять.
У меня всё.
>.Net 4.5, но это не поддерживается для XP
>бла-бла-бла
Значит не обратно-совместимое говно копирастическое, которое только x64 чтобы специальные процы покупать для этого, и чтобы кейгены и кряки не работали.
Как вам там живется, в прошлом тысячелетии?
Ну так юзай райдер.
>Нахуй нам маки закупили? Пиздец блять.
Дык владелец галеры-то не виноват, что вы, макаки, к шиндовсу пришиты яйцами.
Конструкция вида
> using var client = new HttpClient();
Я думал using это аналог import из других языков, ну типа подключать пакеты сторонние.
using - это обертка для автоматического disposal of unmanaged resource после того как CLR поймет что объект больше не нужен.
Другое вариант - это определить scope такого объекта используя using { }.
Третий вариант - это не использовать using, а в ручную прописывать client.Dispose(), после того как тебе он не нужен.
В случае неиспользования using и отсутствия вызова Dispose(): объект остается в памяти и его ресурсы будут очищены только при вызове фаналайзера, если он определен, но существуют много причин по которым фаналайзер не будет вызван и ресурсы объекта будут сидеть в памяти до конца жизни процесса.
то же самое что и пикрелейтед
Учусь уже много не мало - год, но знаю чистые фундаменталы и во многом виню себя, что мало знаю.
Сам сижу на видеоуроках + метаните, но пока что мой максимум это Linq/Делегаты/обобщение + работа с разметкой нахуй никому не нужной xaml, и тд.
Что порекомендуешь в такой ситуации? Хочу курить классику CLR VIA C#, думаю смогу осилить.
Алсо пилите сторисы, как вас учили в шараге, если такое было.
Алсо, посоветуйте что-нибудь по бдшке пожалуйста, желательно легонькое на MySQL
using (BInaryWriter название = New BinaryWriter(File.Open(ваш_путь, FileMode.(тут специфично, ide подскажет какой тебе нужно)))
{
название.Write(Твоя стринговая переменная с шифром)
}
Эт всё, чтобы считать файл юзай следующее
using (BinaryReader название = New BinaryReader (File.Open(ваш_путь, FileMode.(тут специфично, ide подскажет какой тебе нужно)))
While(reader.Peekchar()>-1) // <- Тип берет последний символ после позиции считывания, если конец файла, то выходи из цикла
{
var Stroka = Reader.ReadString()
}
А при чём тут мак-то, маня? Это мс выкупила замарин студию и перестала её развивать, чтобы не выпускать тебя из анального рабства шиндовса.
Хотя учитывая твою спермоворскую фиксацию на студии понятно, что ты из этого рабства выходить и не хочешь. Жидбраинсу надо было назвать райдер жид-студией — чтобы мартышки видели заветное слово.
Заебался зависеть от украинских быдлокодеров, хочу сам навернуть говнеца с кодом.
Короче, проще считать, что using - контекстуально зависим.
Когда эта хуйня перед/внутри неймспейса, это аналог import, когда эта хуйня внутри метода - это значит: вызови Dispose когда я выйдешь из скопа.
На деле, там просто разделяется деректива using и инструкция.Директива - импортирует, инструкция - указывает на то что объекту нужно вызвать Dispose. Почему они не сделали 2 слова - я хуй знает, видимо боялись что если будет import что-то - слишком на жаву будет похоже.
Самый лучший способ научиться - начать что-то пилить свое. Банально, сделай себе на шарпах блог с комментариями и авторизацией через гугл. Из менее банального - сделай движок для 2д игры со своей физикой. Если хочешь более тырпрайзное - сделай свой сериализатор какого-нибудь SOAP, чтобы по тестам показывал сравнительный перформанс и фич было не меньше чем у уже существующих решений, ну и на его базе сделай простенький сервер отчетов с прикрученной БД, естественно серверную часть сам реализуй, а не бери готовый движок, начинай с сокетов, типа тебе клиент шлет запрос: сформируй отчет такого вида - ты формируешь и отдаешь ему в сериализованном виде.
Потому что перегрузка функции, которую ты хочешь вызвать имеет 4 аргумента, а не 3.
В твоем коде ты вызываешь эту хуйню: https://docs.microsoft.com/en-us/dotnet/api/system.string.replace?view=net-5.0#System_String_Replace_System_String_System_String_System_StringComparison_
Сам шарп учить - неделю. Там всего десяток ключевых слов.
Гораздо дольше научиться мыслить программистски. На это нужны годы. Без этого у тебя будет лагучее говно.
Понял, спасибо
Звучит как нечто ахуительное.
Впф быдло не осилило, поэтому многие на формах сидят. Лучше вообще в десктоп не вкатывайся.
Удвачиваю. Быдлу надо штоб компоненты, как в дельфи Ильхама Зюлькорнеева. Вёрстка хамлом их вводит в ступор.
Ну, допустим, вот мне не нравится писать DateTime.Now. Разумно ли будет запилить интерфейс вида:
ITimeProvider
{
DateTime Now{get;}
}
и единственную реальную имплементацию:
TimeProvider
{
DateTime Now => DateTime.Now;
}
?
Ну, просто с одной стороны - да, вроде выглядит как ненужная хуйня. НО ВДРУГ Я КОГДА-НИБУДЬ БУДУ ТАКИ ПИСАТЬ ТЕСТЫ? И тут можно будет замокать этот вот провайдер и получать одно и то же время. Ну и вообще, разве не лучше что это отдельный объект а не непонятная статика?
В общем. Смотрите, хочу свой логгер. Проблема существующих - уровни логгирования прибиты насмерть. Везде это: Trace,Debug,Info,Warn,Error,Critical. А я вот хочу: Trash, Trash2, SomUserTrash, Wow, BadThingHappened, Dead. Ну, это как пример. Суть я думаю вы уловили.
Ну так вот, я как думал-то: просто хуячим поток, хуячим очередь, метод Log - просто в очередь кидает то что просят залоггировать, поток смотрит в очереди что есть - достает и хуячит все что в ней в писак, писаки - уже знают: в консоль, в файл или еще куда. Ну и тут загвоздка случилась. Если я делаю Thread.Sleep(1) после того как очередь очистил - и хуячу бесконечный цикл записи в лог - очередь оч быстро заполняется. Пиздец как быстро. За пару секунд у меня студия показала что 16 гигов выделелось. Это как-то не круто.
Ну, я убрал очередь, Но тут проблема - тогда получается что если какой-то из писак дюже медленный или кидает исключения - то логирование будут тормозить все это дело.
Помогите баке пожалуйста. Что я делаю не так? Ну, т.е. да, в реальных условиях не будет такой вот хуйни с бесконечным циклом, но все равно эти выделения памяти смущают, а как без них - я хз.
У тебя есть три стула:
1) писать без очереди, но это чревато охуительными тормозами во время вызовов логирования
2) иметь бесконечную очередь и оптимизировать производительность логирования (батчинг-хуятчинг, например)
3) иметь кольцевой или другой буффер ограниченной вместимости и при переполнении буффера терять логи
Что именно выбрать - зависит от тебя.
Разница в том, что конструктор вызывается после инициализации полей. В остальном однохуйственно. Что использовать зависит от стиля кода проекта.
Классика, как мокать DateTime.Now
Ответ - принимать везде где можно уже сконструированный DateTime
Ты пойми. Книги это не путеводитель. Там не будут разжевывать тебе темы по правильному порядку. Скачай какой-нибудь курс скиллбокса в интернете, для нуфагов самое то. Но там знаний как таковых недостаточно для трудоустройства, поэтому потом уже подключишь книги и справочники
>А как же философия микросервисов? Можно же логер сделать как микросервис и он не будет влиять на производительность основного проекта
В сферическом вакууме может быть и не будет. На практике - если ты каждый вызов логгера превращаешь в сетевой вызов - это пиздец сколько ресурсных затрат: установка соединения, аунтификация, сериализация лога, шифрование, тупо время на то чтоб электрончики дошли до места назначения, десериализация на стороне микросервиса, отправка ответа микросервиса и т.д..
К тому же доступ к сетевому ресурсу на порядки медленнее записи в память. Из-за этого тебе с вероятностью 98% придется делать батчинг и очереди (чтоб логгер не захлёбывался от нагрузки), что ведет тебя обратно к той же проблеме, что у тебя была изначально.
Микросервисы это инструмент. Другое дело, что они решают проблему, которой на самом деле в вашем проекте нету. При этом они добавляют кучу головной боли в виде поддержки инфраструктуры.
sed
ах ну да, нужно же обязательно все в память а то вдруг логгер запишет лог на 5 наносек, это же катастрофа, поэтому лучше все фигачить в асинхронную очередь и забивать озу что бы администратор на 5 наносек быстрее увидел лог а то все рассыпется,
а если я серьёзно логер вполне можно сделать микросервисом, много крупных сервисом таким как гугл или микрософты так и делают и вообще это звучит абсурдно когда джуны задвигают что-то про оптимизацию, латентность и при это совершают элементарные алгоритмические ошибки отправляю поток в дедлок например обобравшись с логикой синхронных очередей
>>29553
что бы ты понимал микросервисы это вообще сейчас мета, все эти кремневые хипстеры фигачат сейчас все что попало на микросервисах, это конечно тоже перегиб, но говорить что такой мощный инструмент это кал может либо супер сеньор с синдромом утенка коим ты не являешься ибо тупой либо полный нуб коим ты являешься но еще умудряешься и носом воротить
Вот именно для логгера микросервисы хорошо подходят
Вот именно для логгера микросервисы хорошо подходят,
требований к латентности нет поэтому ок,
автономность есть, нет привязки к главному сервису и даже если он упадет логер продолжить работу
можно подключить эти вот ваши всякие модные дашборды,
логер часто масштабируется и изменяется и как микросервис его развернуть и масштабировать гораздо проще, а про какие-то электронны я вообще не понял, микросервес же можно развернуть на локальном хосте
Просто ты ебанько начитавшееся хипстерской хуеты. Микросервисы это кал и всегда им был.
В текущем контексте применительно к микросервисами философия архитектуры проектов которая сейчас считается заслужено мейнстримом, ибо микросервисы хорошо себя показывают, и вообще будущее за интернетом вещей поэтому даже вебмакака которая умеет в микромервисы в прекрастном сша будуйщего не останется без работы
О чем ты вякнуть хотел
Они хорошо себя показывают только в плане продаж книжек или курсов авторов индусской националльности для ЦА в виде дебилов, т.к. это действительно всего лишь философия, т.е. пиздёж ГСМ дебилов ни о чем.
Логгер где-то в сети - уже давно попробованный варинат. Логстеш с эластиком и кибаной - стандартная технология уже лет 10 как. В реальных проектах ты его юзать будешь именно так: через внутренний логгер, который поддерживает батчинг, с очередями и прочими перделками. Иначе производительность решения падает раз в 10 если не больше, вплоть до того, что им становится невозможно пользоваться.
Уже пройдено всё это, и не по разу. И да, иди нахуй со своими переходами на личность.
Ну вот допустим мне нужно чтобы приложение работало как в облаке, так и на железке китайской за 50рублей и флешкой на 2 гига, которая вообще не знает что такое интернет.
Для этого я и придумал всю ту хуйню с пистелями: захотим - будем на другой сервис срать, захотим - в базу будем хуячить, а захотим - в консоль или файл.
Вся -то хуйня в том, что классический логгер что ILogger - не поддерживает кастомные логи со своими уровнями и прочим.
Вот в железке - линуксом настроено: папка Trace - чистится когда в папке больше 100МБ. А вот папка - Errors - не чистится, специально чтобы если все пошло по пизде - можно было отследить ошибки, но в контексте Error - нужны отдельные уровни: Ожидаемые ошибки; непредвиденные; системные, которые не относятся к работе этого приложения. Вот и ILogger не позволяет такие вот уровни сделать и возможность это нормально фильтровать после - ебись с тем что есть, либо все в один уровень хуяч, а потом разбирайся.
Вся же проблема - в том что если использовать очередь без ограничений - вся оперативная память железки засирается в случае если мы без остановки хуячим в лог.
ILogger поддерживает EventID, в которые ты можешь класть что угодно: хоть твою мамашу, хоть небо, хоть аллаха.
Поддерживает, но я не могу написать так: Logger[Errors].MinimumLevel = SystemErrors; и при этом Logger[Trace].MinimumLevel = Information. А я пиздец как хочу. Просто не представляешь.
Что надо знать по авторизации, чтобы сделать сервер для сайта с регистрацией и личным кабинетом?
Всякие там basic HTTP autentification, Sessions, Cookies, HTTPListener. TCPListener, GET-POST, и вот это вот всё.
Заебало гуглить уже, есть примеры?
Что это за хуйня: https://github.com/microsoft/referencesource/blob/5697c29004a34d80acdaf5742d7e699022c64ecd/System/net/System/Net/HttpListener.cs#L862
выдаёт throw, с этим кодом:
https://docs.microsoft.com/en-us/dotnet/api/system.net.httplistener?view=net-5.0
Мол файл занят другим процессом,
когда запускается
>listener.Start();
Какого хуя, там, внутри, добавляются префиксы эти ебучие,
если префиксы добавлены в коде ещё до вызова .Start() , из кода во второй ссылке,
и ещё и добавляются они - как-то криво:
>AddAllPrefixes();
Как эту парашню вызвать, чтобы не было всякой забагованности?
Или это и есть баг? Я так понимаю, эта хуйня в самой либе, и надо переконпелировать какую-то dll-ку ебучую?!!
Пиздец просто, какой-то ёбанный ад блядь. HTTPServer не работает нихуя, кучу серверов перепробовал,
в итоге запилил кривой HTTPServer на TCPListener,
и хуй знает как туда теперь пришпандорить сессии-хуессии и куки-хуюки, чтобы эту регистрационную форму блядскую, конями ебанную, вкодить уже нах, безо всей этой мозгоебли придурошной.
Конкурентам, не знаю, не важно, в чем смысл вообще опенсорса для дотнеткора?
Исходники у них будут только если вы предоставите их. Декомпилировать можно, но это полная неподдерживаемая хуета получится. Если вы очень анальные, можете обфускатор заюзать.
Проблема стара как мир - любой жбапидор с такой херней сталкивается. Решение простое: продавайте не только программу, но и сервис.
Так если дотнет и линукс опенсорсные разве у них не будет открытого исходного кода? а на линуксе вообще можно запускать скомпилированные проекты? я думал на линуксе только опенсорс работает, чем он тогда глобально отличается от то же винды за исключением того что он бесплатный и у него нет поддержки
Можно запускать что угодно. У дистрибутивов линукса как раз есть поддержка, и она часто платная
Так если линукс создается сообществом тогда кто поддерживает?
и в чем тогда разница от винды? винда же во всем будет лучше тогда
1) работники из больших компаний (интел, хуявей, нвидия, гугл и т.д.)
2) сотрудники компаний, ответственных за конкретный дистрибутив
3) энтузиасты
При чем энтузиастов мало, процентов 6-10 от всех контрибуторов.
Разница от винды в том, что линукс бесплатен для пользования, и в том, что в случае чего ты можешь допилить его напильником так, как тебе надо. В это же время за серверную винду надо платить очень много денег. К примеру, лицензия на двухпроцессорный сервер на AMD Epyc gen 2 на винде выйдет тебе в 40-50к зелени.
>>30097
>>30450
Блядь, глядя на этот вот код:
https://github.com/username1565/nanoboard/blob/8f0edd8d02b9f680f7ce1f70ddd29b8f7c367110/nanodb.exe-source/Server/HttpServer.cs#L47
очевидно, что здесь запускается TCPServer, который работает через TCPListener, а не через HTTPListener.
Он принимает байты, HttpServer трансформирует их в HTTPRequest,
затем выдаёт какой-то HTTPResponce, и отправляет в виде байт на TCPServer, клиенту подключённому.
А как, блядь, прихуярить во всю эту конструкцию, ебучие куки-хуюки и сессии-хуессии, ваще не ебу.
HTTPListener же, нихуя не пашет, но даже если бы и пахал - хз, как туда авторизацию приебенить, блядь.
Сколько уже накачал говнокода с гитхаба, нихуя не пашет, но иногда конпелируются какие-то длл-ки,
а как их юзать и затестить - не пойму нихуя, пиздос какой-то.
Судя по гуглу, можно как-то, но там какие-то System.Web, ASP, SDK, хуй знает что ещё,
всякие слова непонятные, капирастические, корпоратокративные и проприетарные пиздец какие.
Ебать копать. С куками-пиздЮками вроде разобрался https://developer.mozilla.org/ru/docs/Web/HTTP/Cookies
Осталось теперь навернуть чё нить про сессии-пердессии. Чё посоветуете?
Угу.
Ну давай на секунду я опишу тебе сценарий использования.
Нужна возможность удаленно - отключить какой-то из логгеров, добавить во время выполнения нового писателя, причем добавление должно происходить просто добавлением нужной dll, нужна возможность вывести по коду лога и уровню записи из диапазона, при этом, мать твою, логгер - на железке что где-то в сиббири находится и канал связи там - компорт, а памяти - 128МБ, а потому основной логгер - должен хуячить байтиками.
Да, я понимаю, что кому-то может показаться странным, но сейчас во встройках, для всякого некретичного ПО вполне себе используют шарпы.
Что из этого невозможно сделать с дефолтными логгерами и логгер провайдерами?
return sharedData;
Похоже вот так можно. Но нахуй надо.
Как сделать нечто подобное,
https://phppot.com/jquery/live-username-availability-check-using-php-and-jquery-ajax/
но на шарпеге?
Чтобы когда вводишь посимвольно, в регистрационную форму, имя пользователя - чтобы оно проверялось на уникальность тут же, после ввода каждого символа.
В зависимости от того какие технологии ты применяешь
Но общая суть. На беке у тебя просто есть метод:
[HttpPost(nameof(IsUsernameAvailable))]IsUsernameAvailable(string username){...}
он лезет в базу и проверяет, отвечает да или нет в зависимости от доступности. На фронте - при снятии фокуса с ввода - отсылаешь запрос на это апи, в зависимости от результата что-то там делаешь.
Насчет посимвольно - все то же самое, но остылаешь запрос при каждом изменении, дропаешь ожидание если строка изменилась.
А, всё, понял.
Там надо было просто вот так сделать:
>oninput="checkAvailability()"
чтобы при вводе КАЖДОГО СИМВОЛА,
отправлялся POST-запрос аяксом,
на специальный проверочный URL.
Когда этот URL детектится в запросе, на беке,
формируется ответ (заголовки, плюс строчка для генерации которой - запускается метод, проверяющий наличие юзера по базе и возвращающий строчку эту, которая затем, на клиенской стороне, принимаясь аяксом - просто лезет в div.
nullable<T> = boolean ? T : null;
Пишет, что работает только начиная с 9.0
>nullable<T> = boolean ? T : null;
Ясно. Надо, блять, тип прописывать.
nullable<T> = boolean ? T : (T?)null;
Опять я взъебу вас, ёба-авторизацией.
Как реализовать это:
https://www.cyberforum.ru/php-network/thread786824.html
?
>Клиенту вместе с формой логина/пароля отправляется одноразовый ключ, который запоминается на сервере в сессии.
>который запоминается на сервере в сессии.
Именно в этом месте, нихуя не понятно как сделать.
Что если это браузер, стучится на сервер, как TcpClient, на TCPServer, ведь HTTPServer работает на TcpListener,
какие могут быть сессии-хуессии, блядь, в TCP-соединении,
если каждый раз, при обновлении страницы, шлётся новый запрос на серв, и каждый раз, с новым запросом - тупо срабатывает AcceptTcpClient()?
Это ж блядь, что получается? Надо в куки-хуюки прописать ебучий - одноразовый ключ, штоле? Чтобы по этим кукам его брать извнутри самого запроса?
А если его спиздят из кук? И как его запомнить, на бекенде? Как его к клиенту привязать, блядь?
Сервер отправляет клиенту случайный, сгенерированный ключ.
Нужно запомнить этот ключ на сервере, и связать его с конкретным клиентом.
Проблема в том, что для каждого запроса, создаётся новый клиент,
и когда клиент отправит форму - это уже будет новый клиент, а не тот.
Как сделать норм эту хуйню - хз.
>>31962
А надо просто для каждого нового клиента,
на бекенде - сгенерировать новый ключ,
отправить его в ответе с формой входа,
затем добавить ключ в массив.
Клиент, отправляет логин, хэш пароля с ключем, и внезапно - сам ключ.
Сервер, принимая запрос от нового клиента, видит там ключ,
ищет его в массиве,
если он есть - удаляет (потому что он одноразовый) из массива и тут же использует для проверки.
Если ключа нет в массиве - возврат ошибки. То же самое, если ключ перехвачен и производится попытка использовать его второй раз.
Профит.
Модели используются только для связи с бд?
Например есть модель User и мне в представлении надо вывести юзера, можно ли использовать эту модель в представлении или создать ViewUserModel и в ней продублировать поля?
Пиздец как воду льют.
Хотя все воду льют.
Просто найди себе канал/книгу/курс/сайт/статьи/ментора/2ch.hk/pr и изучай в своё удовольствие.
Вот например на ютабе есть лысый хуй который записал часовые видосы и пиздит там про C#, меня например пиздец как бесит такая подача, но люди смотрят, им нравится. А я не могу, мне очень медленно.
Пытаюсь устроиться в ДС. Везде посылают на хуй. Никому чистый C# не нужен. В половине случаев просят js. Там, где не нужны другие языки, просят Unity. А мне он нахуй не сдался. В последнем месте попросили js, ts, html/css.
Прояви фантазии, возможно судьба дала по яйцам для того, чтобы ты щас начал свои скиллы юзать правильно. Есть пути легальные, серые, нелегальные. Ты же литерально можешь любую хуйню написать на кудахтер. Просто пораскинь мозгами.
Понимаю. Ну, что поделать, тут выше чел писал, что шарпы - для души.
Иди на завод, там от шарпанов только шарпы просят, базарю.
Пилю кросс-читалку на мобилку, с локальными книжками разобрался, а вот из интернета нет. Собственно, а как мне из интернета их брать. Была мысль, взять парсер и из условной флибусты книги брать, но есть ли альтернативные варианты?
Ну, если сайт не дает тебе открытый апи чтобы получить книжку, то только парсить. Можешь правда свой сайт поднять, но с этим гемора выше крыше, тем более из-за правовых вопросов, ведь я не думаю что ты только книжки без правообладателей туда выложить бы хотел.
насчет "правовых вопросов" пофиг, ибо это обычный курсач и одновременно для личного пользования, пускать в открытый доступ не планирую
Можешь просто сделать поиск по той же флибусте/либгену. Еще я помню в нескольких читалках на iOS был какой-то свой протокол для общения с серверами с книгами, хз как назывался и чет не гуглится уже.
аноны, спасибо!
Ну не только коробки, а вообще любых курсов. Там же наебки одни.
Не вредно. В таких курсах в массе пересказывают документацию и то что гуглится по Язык нейм для новичков.
Другое дело что пользы особой нет. Всю эту хуету можно освоить за неделю. Чтобы ее закрепить - пойти на какой-нибудь кодварс и решать задачки до посинения.
А вот когда начнется продвинутый уровень - там у таких вот кренделелй - действительно все плохо, потому что большая часть лекторов - максимум преподы из вуза, а зачастую даже не они, а какие-то хуи, что чуть кодить умеют, т.е. реально полезные фишки, объяснение что как почему так - хуй кто даст, перескажут доки, перескажут пару туториалов - все, продвинутый, беги стучаться во все двери.
Для крудов - просто разоровские контроллеры нахуяч автогенерацией.
Ты-то кто такой, чтобы мне говорить съебать? Нечего сказать - просто проходи мимо. Нет, блядь, уебище, которое даже не может предложить как логгер для контроллера реализовать более оптимально - будет мне тут пиздеть что-то. Пиздец, нахуй. Тфу, блядь. Никчемный хуесос. Злости на таких вот уебков не хватает.
288x164, 0:03
телега @bitardenka133
Да. Лол. Я. Ну как, у меня был опыт в плюсах хреновенький но был, ну, база в общем: основные конструкции, ООП, шаблоны, это вот. Ну, я решил реализовать modbus. Начал на плюсах, заебался с указателями(это не сложно, но когда ты кодишь, что говорится, без плана, просто вот представляешь примерно что надо, но нет четкого понимания как это делать - ты постоянно же что-то меняешь, а потом - блядь, забыл освободить память, эта хуйня висит в памяти и ты замечаешь это когда уже перешел куда-то дальше и забыл где ты там не освободил указатель), психанул, взял шарпы, за неделю сделал, понял что люблю шарпы, после этого написал простенький веб-сервер ну и т.д. только когда начал искать работу - стал смотреть книжки и всякие туториалы, до этого - только справочку на MSDN читал.
Ну и по поводу этого вот метода. Не самый эффективный на самом деле. Т.к. некоторые вещи неочевидны. Вот например - я бы без книжек - сам бы до солида хуй дошел, я про использование событий, делегатов, методов расширения и прочие штуки - узнал уже после того как начал пытаться искать работу и попадался на этой хуйне на собесах. Так что советовал бы таки каких-нибудь книжек - почитать, как минимум про всякие паттерны, солиды и это вот.
Ты заебал со воим логгером бегать тут как опущенный, эмбед и управляемые среды вещи не совместимые. Если бы ты не был малолетним деюилом тебе бы и в голову такое спиздануть не пришло, так как даже не являясь спецом в этой области можно догадаться по общим вводным.
спасибо анон
Я конечно же имел в виду асинхронное программирование, но суть ты понял не понимаю зачем к словам придираться, а вообще если есть что по факту сказать то говори, нет? Тогда сам все понимаешь
Да, конечно, прочитай что-нибудь про асинхронщиу за последние лет десять, а не из прошлого века.
Тогда сам все понимаешь
Может быть, спасибо я почитаю об этом
> Task'и и async/await
Ебучая хуйня, так и не понял их, сколько не пытался. По старинке юзаю класс Thread, мьютексы и лок, если нужно какие-то действия параллельно запустить.
Но я не программист и не собираюсь, мне простительно. Хотя, может кто подкинет статейку какую-нибудь, где всё максимально разжёвано. Хочу ещё разок попытаться понять.
> эмбед и управляемые среды вещи не совместимые
Диван, успокойся. Сейчас не 90е. У нас в девайсах аппач был до недавнего времени, сейчас на nginx переходим постепенно, вебморда у девайса - на ебучем реакте. В планах было даже в новую линейку запихнуть полноценный постгрес, но из-за скачка цен на всю электронику - решили сэкономить на памяти. А ты мне рассказываешь про то что управляемая среда - несовместима со встройками. Охуеть можно. В 2015 значит писали себе нормально на джаве, а теперь вдруг с дотнетом стало нельзя.
Можно ли форичем итерироваться по "строкам" 2д-массива? Хау ту?
Как правильно сравнить массивы без SequenceEqual? мне просто до сих пор не понятно в каких случаях появляется эта еботня с ссылками
>Как гуглить алгоритмы без линкью?
А нахуя собственно?
Впрочем, тогда надо не гуглить, а читать всякие классические книжки по алгоритмам, там дохуя примеров на все случаи жизни.
>Хау ту?
Например так, если правильно тебя понял
> нахуя
Так повелевает тикет.
> читать
Логично + справедливо. Еще периодически литкод открывать. Но я просто ленивая жопа и шарпы не мой праймари лангуаге не то, чтобы хоть какой-нибудь из яп был моим основным, хочу копипастнуть код и не морочить голову себе оптимальным подходом.
> например так
Бля, а если у меня int[,] a = { {1,2}, {3,4} } ?
у джетбрейнс есть иде для шарпов?
https://pastebin.com/DaReXnrr
>у джетбрейнс есть иде для шарпов?
Ну ты попробуй погугли, вдруг найдешь
да есть, блять
>int[,] a = { {1,2}, {3,4} }
Тогда пиши for, foreach пройдет по нему последовательно просто.
Вторая глава(первая введение). Буквально первая же строка по тексту:
>Базовым строительным блоком программы являются инструкции (statement).
Но так уж получилось что у меня перед глазами есть книжка албахари и там цитирую
>Фундаментальным строительным блоком в c# является инкапсулированная единица данных и функций называющаяся типом.
И дальше что шарп имеет унифицированную систему типов и все типы в конечном счёте разделяют базовый тип. примитивные или бизнес объекты разделяют базовый набор функциональности.
Ну окей я подумал еще, мало ли может это ДРУГОЕ
Но буквально через одну страницу(статью) речь заходит о литералах и он их называет:
>Литералы представляют неизменяемые значения (иногда их еще называют константами)
В то время как албахари пишет:
>Литералы это элементарные порции данных, лексически встраиваемые в программу
Т.е просто числа. И я в принципе понимаю как дошло до того что метанит назвал их константами видимо рассуждая на уровне что 1 это 1 и это не поменять поэтому это постоянное значение. Но называть это константами когда в языке и так существуют КОНСТАНТЫ. Это по моему тупость какая-то, не?
Речь о промышленных разработках а не любительских или никому не нужных проектах на коленках.
Я на заводе работаю. Ну да ладненько, спорить с людьми, которые про встройки знают только то что там байтики перекладывают, я не особо хочу.
List<Vector3> positions = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}};
List<Vector3> positions = new()//если у тебя 9 версия, иначе new List<Vector3>()
{
new Vector(0,0,0),
new Vector(0,0,0),
new Vector(0,0,0)
};
шарп не умеет инферрить, сочувствую
Касательно первого пункта это действительно ДРУГОЕ, в метаните идет речь про лексическое строение исходного кода, а Албахари говорит про структуры данных, которыми оперирует C# и которые существуют в рантайме, тобишь типы.
По второму пункту метанит дает хуевое определение, знающему конечно понятно о чем идет речь, но новичка это действительно может ввести в заблуждение, у Албахари правильнее сказано.
В шарпе, по факту, нет констант. То что пишется как const float Pi = 3.14159 - именованный литерал.
PostgreSQL БД в ней таблицы пикрил1
А вот такие модели мне создало Scaffold-DbContext
public partial class Cat
{
public string Name { get; set; }
public int? TailLength { get; set; }
public int? WhiskersLength { get; set; }
}
public partial class CatsStat
{
public decimal? TailLengthMean { get; set; }
public decimal? TailLengthMedian { get; set; }
public int[] TailLengthMode { get; set; }
public decimal? WhiskersLengthMean { get; set; }
public decimal? WhiskersLengthMedian { get; set; }
public int[] WhiskersLengthMode { get; set; }
}
public partial class CatColorsInfo
{
public int? Count { get; set; }
}
И вот такой контекст https://pastebin.com/MzfTENDE
И чета меня терзают смутные сомнения что мне создало шота не то. Загвоздка в енум типо в пикрил2 я не понимаю как его юзать.
В MSSQL енум это NVARCHAR, а в постгрес как? В модели катКолорсИнфо мне не создало еще одно поле хотя оно есть.
И как вообще будет взаимодействие? так типо db.CatColorsInfo.Where(x=>x.color == "black").ToList(); ?
PostgreSQL БД в ней таблицы пикрил1
А вот такие модели мне создало Scaffold-DbContext
public partial class Cat
{
public string Name { get; set; }
public int? TailLength { get; set; }
public int? WhiskersLength { get; set; }
}
public partial class CatsStat
{
public decimal? TailLengthMean { get; set; }
public decimal? TailLengthMedian { get; set; }
public int[] TailLengthMode { get; set; }
public decimal? WhiskersLengthMean { get; set; }
public decimal? WhiskersLengthMedian { get; set; }
public int[] WhiskersLengthMode { get; set; }
}
public partial class CatColorsInfo
{
public int? Count { get; set; }
}
И вот такой контекст https://pastebin.com/MzfTENDE
И чета меня терзают смутные сомнения что мне создало шота не то. Загвоздка в енум типо в пикрил2 я не понимаю как его юзать.
В MSSQL енум это NVARCHAR, а в постгрес как? В модели катКолорсИнфо мне не создало еще одно поле хотя оно есть.
И как вообще будет взаимодействие? так типо db.CatColorsInfo.Where(x=>x.color == "black").ToList(); ?
Так у тебя в классе Cat нет свойства Color, как ты будешь цвета считать и записывать в CatColorsInfo. У каждого кота должен быть указан его цвет.
Так же в CatColorsInfo должно быть 2 свойства: Color и Count.
какие можно объективные аргументы предъявить в доказательство того что я мидл
о опыте работы прошу не писать, счас бы на полном серьезе уравнять год сидения и ковыряния в носе отлынивая от работы и год упорной работы и саморазвития
>Интерфейсы что такое мидол?
Пытаюсь разобраться с вашим C# после небольшого опыта с С и микроконтроллерами. Какая-то антинаучная хуйня. Нихуя непонятно. В треде какие-то названия нечеловеческие. Брошу я это дело наверное.
Ну бля ООП это ж совсем другая парадигма, я когда только начинал программирование изучать тоже долгое время не понимал что это за параша и интерфэйсы энти ваши нам нахой не нужны.
Тем что получает ЗП мидла.
По факту основное требование к мидлу - способность самостоятельно делать типовые/несложные задачи, либо сложные под присмотром синьеров/лидов.
Если ты работаешь в одного и все еще джун, то либо ваш проект по сложности, как крестики нолики, либо твои господа не хотят плотить тебе деньги.
Самый простой способ чекнуть так это или нет - сходить на пару собесов на мидла и посмотреть, что тебе скажут и какие деньги предложат.
>Самый простой способ чекнуть так это или нет - сходить на пару собесов на мидла и посмотреть, что тебе скажут и какие деньги предложат.
не уволившись? как-то не порядочно за спиной ходить по собесам всяким, и вообще получается что я буду просто тратить время рекрутеров так как у меня нет намерения поменять работу, а ходить с таким намерением.. ну это такое, получается что я заблаговременно был готов подставить коллектив, старших программистов, я же один проектом занимаюсь, в нем будет сложно разобраться после моего ухода не хочу подложить такие подлянки
Ну так скажи руководству прямо что либо пересматриваем зарплату либо я ухожу.
>не уволившись?
Так половина айти ходит, если что.
>вообще получается что я буду просто тратить время рекрутеров так как у меня нет намерения поменять работу
У них работа такая + твоя цель не поменять работу, а понять свой уровень и примерную зп по рыночку.
И даже если ты никуда ливать не хочешь, то наличие оффера на больше денег всегда сильно упрощает финансовый рост на текущем месте.
>я же один проектом занимаюсь, в нем будет сложно разобраться после моего ухода не хочу подложить такие подлянки
Ты менеджер/CEO/держатель акций?
Почему это тебя ебет?
То что у фирмы на каком-то проекте сидит один человек, которого тяжело заменить на нищенской зп -- не тови проблемы.
Да и почему ты собственно считаешь справедливым, что тебя не апают, но считаешь не справедливыми шаги с твоей стороны по апу своего положения за рамками текущего места.
>Да и почему ты собственно считаешь справедливым, что тебя не апают, но считаешь не справедливыми шаги с твоей стороны по апу своего положения за рамками текущего места.
я не считаю справедливим что меня не апают, поэтмоу я и написал, но вот кидать обидки тоже не хочу, в конце концов я подставлю не директора, ему то убдет пофиг, а своих колег программистов потому что он просто скинет работу на них а они буудт потом с этим ебаться и вспоминать меня плохим именем каждый раз когда что-то у них убдет не работать
>Да и почему ты собственно считаешь справедливым, что тебя не апают, но считаешь не справедливыми шаги с твоей стороны по апу своего положения за рамками текущего места.
я не считаю справедливым что меня не апают, поэтому я и написал, но вот кидать обидки тоже не хочу, в конце концов я подставлю не директора, ему то будет пофиг, а своих коллег программистов потому что он просто скинет работу на них а они будут потом с этим ебаться и вспоминать меня плохим именем каждый раз когда что-то у них будет не работать
Вот сколько люди не уходили, никогда обид не держал, наоборот радовался, что челы дальше идут или расстраивался, потому что пиздатые чуваки ливают.
Алсо, если люди дают в себя впихивать невпихуемое - то это их выбор
В этой конторе есть вакансии в моем городе, вот думаю туда отправить резюме что бы вкатится.
Но вот меня пиздец как смутила эта статья. 28к бакинских за
мобильную приложуху и сайт и 3 года разработки. А по факту вышло 56к бакинских за нихуя.
И вот хотелось бы спросить, часто ли находятся такие ебланы которые платят такие деньги?
Я хз че там на рыночке конечно но бля 56к ебаны рот. Я думал ну за 56к можно заказать разработку ну к примеру почтового сервиса ну или сайт сервис типо diagrams.net или гугл таблиц. Да и то хуй знает 56к это 56к.
Просто не укладывается в голове как так то нахуй. Интересно было бы посмотреть сколько строк кода ему дали, что бы посмотреть сколько в день писали.
Ну вот у меня вопрос, неужели это типичные задачи на галерах? Сделать сайт говностартапу за 56к, и 10 человек 3 дня обсуждают контролер, потом 1 день пишут один экшен, потом день они проводят код ревью а потом начинаю писать его [HttpPost] версию? Так штоле?
Я так то думал что будут задачи ну скажем систем учета водителей где нибудь, где нужно оперативно обрабатывать запросы, стремится что бы не было задержек. Или писать бекенд сервисы где пользователь загружает свои данные, сервис данные обрабатывает и выдает пользователю результат, где задача стоит в том что бы найти компромисс между скоростью и затратами ресурсов на задачу.
Ну или на крайний случай сайт который делает мир лучше, например сайт приюта для животных, где за донат можно с котами поиграть лазарной указкой онлайн. Сайт+ардуино+конструкция в помещении.
Корочи пиздец, я не хочу писать контролеры которые выдают на страницу инфу о какое сегодня число(
Как вкодить сессию на HTTP-сервере,
если он использует TcpListener,
а потом парсит байты запроса?
Если генерировать идентификатор для каждого TcpClient,
то при каждом запросе будет новый идентификатор,
даже когда загружается favicon.ico
Из-за этого число клиентов равно числу запросов, блядь.
Я знаю, что в PHP есть PHPSESSID хранящаяся в куках на клиенте и в суперглобальной переменной $_SESSION на сервере.
Хотелось бы, чтобы не для каждого запроса, а для каждого уникального клиента был один ключ. Как это сделать?
Желательно ещё и секретный ключ, потому что куки могут перехватить и если по кукам входить в аккаунт на сервере, то перехват кук может дать возможность залогиниться, не зная пароля, при вводе которого, эти куки генерируются.
> Ну вот у меня вопрос, неужели это типичные задачи на галерах? Сделать сайт говностартапу за 56к, и 10 человек 3 дня обсуждают контролер, потом 1 день пишут один экшен, потом день они проводят код ревью а потом начинаю писать его [HttpPost] версию? Так штоле?
Не так. Сроки так затягиваются, когда ни команда ни закзчик не понимает что нужно сделать, а менеджеру похуй и он решает подоить клиента.
Вторая причина - делают сайт не 10 человек, а один джун который работает за опыт и паралельно ищет куда бы съебаться и таки съебывает, ищут другого и он еще хуевее первого и так же работает за опыт.
Ну а типичная галера - это место по продаже своих сотрудников: у нас есть спец, сеньер-сеньер на самом деле джун, у вас есть работа, мы вам сеньера, вы нам деньги, только сеньеру не довайте, он от них дристать начинает, давайте нам, а мы ему кофе с печеньками купим.
И последнее, оперативная обработка и низкие задержки это не то что нужно стартапу на начальном этапе, это задача которая появляется после того как был получен пруф оф ворк, привлечены иневесторы и получена клиентская база. На начальных этапах важно наращивание функционала, похуй как, похуй что кривовато, нужно просто проверить, что оно вообще кому-то нужно и будет приносить в дальнейшем прибыль, потому если галера имеет дело со стартапом, там обычно спринтами по 2 недели хуячат пачку фич, потом заказчик это аппробирует, присылает правки, замечания, аналитику и хучячат дальше. В случае с челом, очевидно, что он считал что ему просто сделают заебись, не мог нормально пояснить что хочет, что нужно, а контора решила его подоить.
Да, на всякий. Похуй и подоить это то что сейчас называется: Клиентоориентированность, когда клиент не понимает что хочет, просто приходит и говорит: хочу вот это; через неделю: не хочу, хочу то, а менеджер вместо того чтобы ткнуть носом в ТЗ, пояснить, что план работ уже назначен и вообще это будет сдвигать сроки - улыбается и просто наваливает работу кодерам: платят и заебись, это приводит к тому, что решения заложенные прошлой хотелкой могут довольно сильно конфликтовать с новой, но менеджеру-то похуй, его цель - не клиенту сделать основу для его охуитительного бизнеса, а на своей работе показать что деньги заказчик приносит.
Я вкатывальщик, вот написал хуету что бы было хоть что то на гитхабе что бы показать.
На фронтенд внимания не обращайте, я хочу вкатится в бек, от фронта просто тошнит.
https://github.com/Datakda/CatalogFilms_test
Я бы вынес логику из контроллеров, у тебя там и бизнес и работа с БД и авторизация - в тырпрайзах для всего этого делают отдельные слои, кода становиться больше, но в случае изменения работы с БД ты будешь править только один слой, а не разматывать весь свой код
Ну еще очень_старнный_нейминг_неймспейсов
А можно пример как куда выносить?
Создать папку Servise и там уже создать классы с методами?
Просто я ваще не представляю как это сделать.
К примеру вот метод из пикрила.
Если так сходу посмотреть то я могу придумать создать класс с меттодом который бы проверял является ли юзер овнером фильма или нет.
И метод который бы создавал ВьюМодел фильма принимая id фильма.
Правильно мыслю?
Погугли слоистую/луковую архитектуру.
Смысл в том, что у тебя есть несколько слоев (кол-во и разнесение зависит от тебя), но в целом это будет выглядеть как пикрил.
Разнесение может быть сделано по разному: от простого раскидывания по классам и создания зависимостей, до подключения других слоев, как либ/нугетов/апи.
Т.е. грубо говоря, задача контролла вернуть вьюху, он для этого идет в какой-то бизнес сервис, который крутит логику, н-р делает чт-то с фильмам, при этом сам бизнес сервис напрямую в БД тоже не ходит, а идет за этим в следующий слой.
Собственно, если ты попробуешь покрыть все это тестами, то очень быстро поймешь насколько хуево будет покрываться ими твой текущий код, и насколько проще это все делать, если ты разнесешь логику. Ну и заменять компоненты тоже станет сильно проще.
Единственное и важное: это все провоцирует появление тонн бойлерплейтов и фубаров, так что надо четко понимать нахуя и что ты делаешь.
Если это приложение-однодневка, mvp, то похуй вообще. Если это что-то, что будет поддерживаться, то лучше потратить немного времени и вложится в зачатки архитектуры.
>Если это приложение-однодневка, mvp, то похуй вообще. Если это что-то, что будет
Ну это мне для того что бы показать потенциальному работодателю.
Просто если сейчас начну переделывать еще месяц колупаться буду.
Мне это все трудно для понимания.
Так то я думаю что вот по ТЗ я выполнил задачу. Ну типо джун так и должен делать, он хуй знает в ваши архитектуры и как их строить. Я понимаю что лучше бы все сделать грамотно но бля я уже пол года дрочу хуй, надо уже пытаться устроится куда то.
Ну смотри сам, для вкатыша норм, но я бы наверное все равно начал бы дрочить тебя на тему того, а как лучше сделать/какие недостатки есть в этом коде.
Да и вкатышей сейчас овердохуя и больше.
Хочешь даром поРАБотать с реальным проектом в качестве стажёра?
Будет что нормальное показать работодателям, а не эти вот твои формоТаски, формошлепством сейчас никого не удивить, формошлепством может и вордпрессочервь заниматься а я подкину задачек по алгоритмам
Ну да есть такое желание.
Я правда не обещаю что впрягусь и буду как бык тянуть но взял бы не сложную таску которая не горит. Я не спал уже сутки, хочу снова войти в график человеческий и начать спать ночью а не днем.
телега напиши плиз https://t.me/dddd1233324 или свою скинь
А про NAN +-бесконечность -0 int.maxvalue и другие видимо нужно забыть? Уволились еще вчера?
А то что хранятся все эти литералы(по сути переменные со значениями) что так легко записали в константы хранятся в стеке в то время как константы находятся в куче тоже забыть нужно?
System.Net.WebException: "Удаленный сервер возвратил ошибку: (403) Запрещено."
Я пытался добавлять Headers. Добавлял пароль и логин. Ни то, ни то не помогло. Что нахуй не так? Почему я не могу загрузить ебаное изображение?
Оки.
Контроллер Account
1. Используешь else
2. Ненужные комментарии
3. Сама аутентификация должна происходить в отдельном сервисе
4. Поля которые не планируешь изменять должны быть readonly
5. Форматирование
Контроллер Films:
1. Используешь var там, где тип неочевиден.
2. Инициализация через
obj.PropertyName = propertyValue;
вместо
ObjectType obj = new ObjectType {PropertyName = propertyValue}
3. Короткие атрибуты лучше объединять в один
4. Форматирование.
5. Синхронные методы для IO-операций
6. Конкатенация строк. Вот этого вообще не понял. Работает медленно, плюс создаешь кучу строк.
7. В If засовываешь длиннющий код, вместо того чтобы в if засунуть короткий код а дальше идти без него
8. Куча повторяющегося кода, который можно было бы вынести в отдельный метод
9. Используешь строковые литералы в коде, вместо того чтобы делать nameof или хотя бы константы
10. В контроллере указываешь размер страницы
11. Вся логика работы с базой должна быть вынесена в репозиторий
12. Поля которые не планируешь изменять должны быть readonly
Контроллер Home
1. Смешивание стилей
2. Создание IndexHomeModel лучше вынести в отдельный класс фабрику и инжектить ее в конструкторе
3. Передаешь логер которым не пользуешься
Вьюмодели
1. После "Пожалуйста" - нужна запятая.
Startup - почти не трогал как я погляжу.
Форматирование конечно пиздец. Что тебе мешает автоформатирование на сохранение сделать, если сам не хочешь красивенько делать? И настроить правила именования для полей, чтобы оно ошибкой подсвечивалось.
В общем. Обычный код человека что по туториалам делает и делает недавно.
Оки.
Контроллер Account
1. Используешь else
2. Ненужные комментарии
3. Сама аутентификация должна происходить в отдельном сервисе
4. Поля которые не планируешь изменять должны быть readonly
5. Форматирование
Контроллер Films:
1. Используешь var там, где тип неочевиден.
2. Инициализация через
obj.PropertyName = propertyValue;
вместо
ObjectType obj = new ObjectType {PropertyName = propertyValue}
3. Короткие атрибуты лучше объединять в один
4. Форматирование.
5. Синхронные методы для IO-операций
6. Конкатенация строк. Вот этого вообще не понял. Работает медленно, плюс создаешь кучу строк.
7. В If засовываешь длиннющий код, вместо того чтобы в if засунуть короткий код а дальше идти без него
8. Куча повторяющегося кода, который можно было бы вынести в отдельный метод
9. Используешь строковые литералы в коде, вместо того чтобы делать nameof или хотя бы константы
10. В контроллере указываешь размер страницы
11. Вся логика работы с базой должна быть вынесена в репозиторий
12. Поля которые не планируешь изменять должны быть readonly
Контроллер Home
1. Смешивание стилей
2. Создание IndexHomeModel лучше вынести в отдельный класс фабрику и инжектить ее в конструкторе
3. Передаешь логер которым не пользуешься
Вьюмодели
1. После "Пожалуйста" - нужна запятая.
Startup - почти не трогал как я погляжу.
Форматирование конечно пиздец. Что тебе мешает автоформатирование на сохранение сделать, если сам не хочешь красивенько делать? И настроить правила именования для полей, чтобы оно ошибкой подсвечивалось.
В общем. Обычный код человека что по туториалам делает и делает недавно.
bump
Смотрите. Есть три сущности. По сути они на данный момент отличаются только тем из какой таблицы взять данные и что сделать после выполнения некой общей логики. Ну так вот, стоит ли действительно выделять это в три разных сущности? Ведь в теории в будущем логика может начать отличаться более значимо. С другой стороны на данный момент создается впечатление, что проще сделать просто делегат Completed и передавать туда что делать в зависимости от того какую "сущность" хотят вызвать.
Чтобы было понятно. У меня есть класс: рассылатель. Есть рассылатель, который умеет рассылать по СМС, есть который по мылу, есть, который рассылает пуш уведомления, конфигурирование происходит из базы каждому своя таблица, но логика составления сообщения - одна, ну а сам алгоритм рассылки у меня передается в виде стретегии. Вот и получается, что алгоритмы идентичны, но тут я беру из таблицы А, тут из таблицы Б, потом использую какой-то канал рассылки, но все остальное - одно и то же. Не знаю как сделать более правильно.
>Чтобы было понятно
Может я конечно не так понял из написанного, но у меня сложилось впечатление будто ты про интерфейсы и не слыхивал никогда.
токен мб ожидает в хедере
И как я массивы через словарь определю? С простыми свойствами как раз понятно, массивы составных структур надо компактно определить.
- Friended: игрок в друзьях у текущего игрока
- Ignored: игрок добавлен в черный список
- Invited: текущий игрок отправил приглашение в друзья
- И 4-е состояние: игрок отправил запрос на дружбу с текущим игрок
Ты учти, что там вагончик субъективщины был
Ба-бамп.
Хуле UTF-8 херово декодируется, а latin-1 норм? https://rextester.com/XGAT98683
Думал байты строкой на сервер отправить, а они хуёво декодируются потом, если утфом декодить.
И ещё какие-то кракозябры выдают в консоли, какие-то бубны, сердечки, пики и смайлы и оно начинает пищать динамик какого-то хуя.
Почему тогда гугля я вижу велосипеды вида:
public override int ReadInt32()
{
var data = base.ReadBytes(4);
Array.Reverse(data);
return BitConverter.ToInt32(data, 0);
}
?
Или всякие шаманства с битовыми сдвигами. Да и на сайте майков написано что нужно проверять какая архитектура, чтобы в случае чего - развернуть. А вот решения вида: ReadInt32(endian.Big) - не вижу что-то.
А, ты про это (я думал мемористрим не смог в памяти развернуть и засунуть в ридер).
Лол, да, лет 15 назад я тоже ёбся с этим, в дот нете походу все эти остроконечности не определены и зависят от железки. В итоге плюнул и оставил по умолчанию, все равно там платформ были вин 32 да CE, можно один раз отладить и забыть, всё равно архитектура не поменяется. Ну щас разве что андроид добавился, но там тоже конечность такая же.
Потому что changeEntity переменная это просто ссылка на объект, вначале она указывает на объект в таблице, а после присвоения ей person она стала указывать на переданный в метод объект person. Объект в таблице при этом ни как не изменился.
Ну, просто у меня есть протокол, в котором передаются данные в смешанном формате: что-то в big, что-то в little и мне казалось что нагляднее будет не брать массивчик байт и разворачивать, а использовать BinaryReader/BinaryWriter. Видимо придется хардкодом байты доставать.
А ведь он вероятно где-то работает. И даже говорит что знает ООП и что такое полиморфное поведение
BinaryPrimitives мб попробуй
>лучше самому корпеть над учебниками?
В 100 раз лучше. И нужно не просто повторять примеры из учебников, но и импровизировать. Для самых новичков пикрелейтед лучшая книга, но её можно достать только с рук, примерно за 1к.
> Skillfactory
Ну анон, ты чего? Даже распоследний школьник сейчас знает, что скиллфактори и подобные курсы - объёб на деньги. Т.е. они тебя конечно чему-то научат, но за дичайший оверпрайс и по бесплатным материалам, которых в интернете тонна, и которые ты можешь взять и учить сам.
На пикче упрощённый пример структуры, которую я использую.
Я добавил ей интерфейс перечисления.
Но C# считает недопустимым использование unsafe в итераторе, и выдаёт ошибку.
>unsafe code may not appears in iterator
Вопрос №1. Почему? Чем ему любой unsafe не угодил? Почему везде в принципе можно, а именно в итераторе нельзя?
Я бы на этом и остановился, не очень то и нужен этот IEnumerable. Но самое ужасное в данной ситуации то, что если я перепишу проблемный код, и сделаю вместо вот этого:
>yield return raw_values;
вот это (т.е. буду обращаться к буферу не напрямую, а через индексатор):
>yield return this;
то всё работает, всё компилируется.
И вот теперь я не понимаю, стоит ли бояться некорректной работы программы? Вдруг просто компилятору не удалось отследить ошибку из-за опосредованного обращения к ансейфу, но делать так всё равно не стоит?
Вопрос №2. Можно ли оставить вариант с return this и не бояться трудно уловимого бага?
На первый вопрос вот ответ
https://docs.microsoft.com/en-us/archive/blogs/ericlippert/iterator-blocks-part-six-why-no-unsafe-code
Вкратце, использовать unsafe вместе с итераторами это хуевая практика и поэтому ребятам было впадлу допиливать компилятор чтоб он всё корректно делал в unsafe контексте.
Интерфейс == контракт, который указывает что у класса есть методы с данной сигнатурой и что эти методы у него корректно должны работать. Если кто-то начинает всякую хуергу с ним творить - это не твои проблемы.
Если в реализации у тебя обычная коллекция, при этом она наружу не торчит, то опять же не твоя проблема что кто-то что-то там не так делает, если со стороны это все равно выглядит как IReadOnlyList.
Ошибкой это не считается. Это как: я явно указал что ожидаю объект типа Item, а мне какой-то еблан впихнул null или какого-то кривого наследника, который кладет хуй на LSP. Ты не можешь и не должен засирать свой код проверкой всего и вся, не можешь и не должен все возможные кейсы покрыть, твой метод в данном случае должен работать в ситуации, если контракт соблюдается и с расчетом что клиент не еблан, который подкидывает реализацию, которая хуй пойми как работает.
если ты возвращаешь IReadOnlyList, то это просто вариант явно сказать "не мутируйте возвращаемый список по ссылке, блядь". То, что ты там делаешь с инкапсулированными данными внутри класса перед тем как его вернуть никого не должно волновать. Если только на вход метода тоже не было IReadOnlyList (но это выглядит максимально тупо)
Хотел бы кинуть скрин, да только деанон-травля.
bmp
Всмысле по другому? От версии к версии мало что меняются не особо критические вещи что бы не заработал код.
Консолье врите лайн, консоле реад лайн, юзинк стрим врайт, юзингк стрим врид консоль врителайн.
Давай метадичку, посмотрим шо там.
Язык отличный, тоже люблю всей душой. Но вот ушел я в ПМы, и теперь проектом на голанге рулю. И рядом с шарпом не стояло по языковым фишкам.
КАК СУКА!?
это что так сложно что передачу данных из модели в форму для поста надо делать через дикие костили как скрытые инпуты? как блять сделать это без костылей?
mvc, я в модель передаю ид елемента с которым работаю, а потом в форме данные но не могу передать это айди которое я получаю с модели , по крайней мере без костылей вроде скрытого импута, но для меня это не надежный вариант так как я работаю с деньгами и отправляю формой данные пользователя, скрытый ипут что бы передать идентификатор пользователя это абсурд но ничего лучше я не нашел, был еще вариант с returnurl но это вообще пиздец
Пожди. Ты про веб-хуйню? Зачем тебе вообще скрытый инупт? Смотришь клеймы, достаешь оттуда id пользователя, используешь.
Так мне же наджо не по айди пользователя а по айди штуки пользователя
Вопрос: могу ли я захостить как-то свой кастомный датагридвью унаследованный от винформовского?
Спасибо анончик, мне нужно было RenderOptions.BitmapScalingMode="HighQuality". Почему майки поставили говеное качество по дефолту?
У кнопки FlatAppearance.BorderSize = 0
FlatStyle = FlatStyle.Flat
событие MouseMove пустое
UPD, долго над этим сидел, не мог понять. Отчаялся и решил попросить помощи тут, и почти сразу же нашёл решение сам. Крч, эти белые полосы - та часть кнопки, которая не занята пикчей. Пофиксил тем, что поставил цвет фона кнопки такой же, какой у фона формы, а не траспарент. Тогда полосы при наведении исчезли, но появлялись при нажатии. Пофиксил включением Stretch вместо Zoom
Пысы, я нихуя без опыта, это усложняет всё. Ну хотелось бы знать, как смотрят на это в серьезных компаниях. А то глядишь, даже стажёром не возьмут, при прочих равных.
Еще и это говно на самом деле не в состоянии точно следить за временем запуска, оно считает что важнее исполнить задачу, чем исполнить тогда когда сказали(кажется неважно, н допустим если задача - синхронизация времени устройств - проебанная минута накапливается на задержки по сети и время исполнения команды устройством, а все эти протоколы по выставлению устройству времени принимают отклонение эталона от того что отправило устройство), мой велосипед, который был до - с точностью до милесекунды триггерился, если не совсем пиздец с нагрузкой был.
Грузишь данные асинхронно, заполняешь по мере поступления.
Если грузишь в фоновом потоке, запускаешь в главном потоке через Dispatcher.Application.Invoke тот код который заполняет интерфейсную часть.
Если это данные в какой-то грид, то нужно подумать про пагинацию, а не грузить все скопом.
>>43812
Эм, странный вопрос, у нас на 30+ человек со мной в отделе работает из них из того же города, да еще и с пропиской только я и еще человека 3.
Никогда не слышал чтобы это было проблемой.
Привет, погромисты.
Кто-нибудь интегрировал в приложение winForms или WPF окно консоли?
То есть чтобы как в ИДЕ каком-нибудь у тебя прям внутри программы был терминал.
Я нагуглил ConsoleControl, это чувак напердолил поверх RichTextBOx обёртку и получился контрольный элемент, имитирующий cmd, но там пиздец как много проблем, а больше ничего нагуглить не получается.
Может я опять что-то упускаю и какими-то не теми словами гуглю.
Если тебе просто для дебага консоль нужна - можешь просто в дебаг-сборке собирать как консольное приложение и туда все что нужно выводить. Если хочешь таки на формах/впф - то просто стилизуй текстбокс/ричтекстбокс.
2044289 дело говорит
Приложение ориентировано на Windows. Может быть когда-нибудь портирую его на Linux (это несложно).
Что использовать? WPF (и ждать MAUI) или сразу пытаться на MAUI?
"Universal" сразу мимо, это говно какое-то.
Приложение будет бесплатным с открытым кодом — гуишная обёртка над бесплатной консольной утилитой. Нужен будет выбор папок/файлов, поэтому не хочу делать GUI через сайт
Если тебе просто быстро накидать и не принципиальна кроссплатформенность - бери формы. Лучше - ничего не придумали, по сути. Быстро, просто, куча готовой хуйни. Да, так красивенько как в WPF не сделаешь, но если это утилитарная вещь, еще и с открытым исходным кодом - то, ИМХО, формы самое то.
Сейчас хочу написать бота для телеги на ASP, посмотреть хоть что это.
Как мне задеплоить сервер на Azure, чтобы он реагировал на GET/POST запросы? Как это хотя бы называется? VPS? Виртуальный хостинг?
Может смутить каких-нибудь долбоёбов из крупных компаний с большим количеством низкооплачиваемых должностей (всякие гипермаркеты, заводы, логистика).
Там IT исключительно обслуживает бизнес, но проверки для всех сотрудников одинаковые.
Чисто айтишным компаниям наплевать абсолютно.
Пока я думаю просто передавать ссылку на object, а внутри делать проверку, как на пик2.
https://metanit.com/sharp/aspnet5/15.1.php
Круд пиши сам по образу и подобию.
тут ещё вопрос: рейзор или React.JS + JSON API
Если не заморачиваться с кроссплатформенностью, делай на аналоге WPF - наиболее гибко и удобно: AvaloniaUI Есть баги и прочие детские неожиданности, но вцелом работает.
Хочется реальной кроссплатформенности - Electron.NET и поверх него Angular, но тут на любителя - веб все же.
Блять, ну загугли, я же тебе тонко намекнул.
WPF.
Есть Listbox, хранящий в себе исключительно объекты типа object, которым в форме присваивается карточка с изменяемым Template.
Есть какие-нибудь способы записать все элементы с формы в бинарный файл? Тип, вот будет у меня 5 карточек в listbox, нужно записать в файл его данные или разметку, чтобы из считывания после можно было восстановить форму.
Всё, разобрался
var correctAmount = amount;
получается?
Зависит от парадигмы в которой ты хуйню делаешь.
Я бы просто кидал исключение. Но я вообще на каждый чих люблю кидать исключения так-то.
При клике на другую кнопку, она должна присваивать код xaml кнопки с другим цветом(очень важно делать это именно через присваивание xaml, просто так надо и всё).
Но при клике, как она была фиолетовая, так и остается, но если выводить через MessageBox ее Background, то он принимает значение Aquamarine. Как починить так, чтобы кнопка поменяла цвет не только "логически", но и видимо, на форме?
https://ideone.com/bWKA7b
Бля, как смешно. Я обосрался от смеха, прочитав твой ответ. Серьёзно. Ты в дотнет-разработку, случайно, не из стендапа вкатился?
Да только там интернет эксплорер 7.0, который не способен открыть панель тензорборда.
Ну я уже присмотрел CEFsharp.
делал как на пикрилах хочу с сервера что-то отправить пользователю возвращает Clients is null
А КАКОГО ХРЕНА?
Когда я тригерю те же методы из клиента тогда они уже не нулл, какая-то односторонняя хуйня получается этот сигналР, совершенно не юзабельная так как с клиента сервер можно затригерить и обычным ажаксом, нахуя он вообще тогда нужен хз
Можно переименовать свойство в IsLoggedIn, а события назвать LoggedIn и LoggedOut. Но хз.
Аригато, шарпист-сама! Яростно благодарю тебя за ответ!
В общем я прочитал весь Player's Guide и у меня большое желание трогать web. Пока только простенькие игры в Unity делал и консольные задания из книги. Скажите куда мне дальше копать.
А и ещё в компании есть возможность перекатиться в C# как определить что мне уже не стыдно стучать на собеседование. А то приду такой бе-ме я там книжечку прочитал и вот у меня квадратики в Unity двигались возьмите за еду работать пожалуйста я больше не хочу бухгалтерии. Скажут ещё, что я дебил и надо минимум 2-4 года опыта, а мне там ещё работать. Стыдно же будет
Нихуя не понял. Ты хочешь в свою же компанию собес пройти, но на сисярп-девочку? И боишься, что тебе откажут и назовут дебилом, пушто у них (у вас) берут с опытом от 2-4 лет?
1. Почему тогда не чекнешь открытые вакансии компании, чтобы посмотреть какие там требования?
2. У вас есть ресурсный менеджер? Есть контакт с кем-то из шарпистов в компании? Если да, то обкашляй этот вопрос сначала с ними. на крайняк хрюше напиши, что хочешь съебаться со своей хуйни на другую хуйню
Я в свою компанию пришел питонистом, но по факту нюхал csv и yaml файлы дрочил. Через 4 месяца написал ресурснику, что это все хуйня и я хочу либо выучиться на новую технологию и проект сменить (если на пистоне нет и не предвидится), либо съебать с компании до окончания контракта. Вот так перекатился на дотнет.
>Ты хочешь в свою же компанию собес пройти, но на сисярп-девочку?
Да
>И боишься, что тебе откажут и назовут дебилом, пушто у них (у вас) берут с опытом от 2-4 лет?
Да
>1. Почему тогда не чекнешь открытые вакансии компании, чтобы посмотреть какие там требования?
Я чекнул требования охуевшие типо 2-4 года мидл опыт разработки знание PHP, HTML JAVA других языков программирования и т д.
Поэтому спрашиваю какие в целом предъявляют требования чтобы вкатиться в +/- нормальную контору. Может мне стоит менять компанию раз такие дела. 2 Года разработки с нихуя не появляются.
>У вас есть ресурсный менеджер?
Они говорят сейчас на должность ученика вакансий нет. Я такой ага это типо я должен сидеть тупить и ждать вакансию? Нет уж спасибо сам учиться буду лучше съебусь от вас если что.
Мысли примерно такие.
>Есть контакт с кем-то из шарпистов в компании?
Нету и они не особо общительны, но в теории могу любому руководителю группы на почту написать типо так и так вам дурочок в команду не нужен, но я стесняюсь как-то.
Пишу читалку на мобилку на Xamarin. И вот столкнулся с бедой :(
Нужно через приложение открывать нужный файл(книгу), но в xamarin нет встроенного OpenFileDialog, что подскажете аноны?
У кого-нибудь было похожее?
for(int i = 0; i < array.Length-1; i++)
{
for(int j = i+1; i < array.Length; j++)
if(array>array[j])
{
var temp = array;
array = array[j];
array[j] = temp;
}
}
Держи. Можешь не благодарить.
блядь, ебучий спеллчекер спрятал во втором цикле ошибку. Там должно быть j < array.Length
Плюс еще я еблан в свапе забыл дописать. Пиздец. Как представлю что на собесе нужно будет на листочке это писать.
В пизду такие собесы.
Чет он, правда, весит дохуя.
Ебать ты неофит, это совсем платина которая уже была понятна где-то 1947 года (если я не проебался с последней цифрой).
необходимо знать и уметь копошиться в проприетарном говне(t-sql/ms sql server)
*вакансий на чистом .NET вообще около нихуя
Подумой анончик, оно тебе надо?
Но если ты молодой и шутливый то можешь учиться играя в новый Gmod2 на Source 2 https://sbox.facepunch.com/about/
Хули ты название своего говносайта скрыл?
Касательно языка: сорт ов говна. Пара первых вакансий в java тоже не блещут креативностью: андроид параша, легаси код, ноджс, спринг.
А что ты хочешь единственный тред где в шапка оправдание.
>4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
>Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
Похуй с чего, если вообще не кодил. На таком этапе главное закрепить основы: работа с переменными, циклами, массивами, потоками, создание методов(функций). Когда это уже освоил - гуглишь ООП, паттерны и солид. Потом шлефуешь это многопоточностью, асинхронностью, LINQ. После этого - пробуешь что-то свое начать пилить, не сильно большое, хватит 10к строк. Когда запилишь - можешь пытаться искать работу.
> После этого - пробуешь что-то свое начать пилить, не сильно большое, хватит 10к строк.
Калькулятор. Как раз в десяточку уместится.
Та я в курсе за роадмэп. Ладно понял, посмотрю шевчука...
Я калькулятор на основе обратной польской и интерфейсом на формочках в 900 строк уместил в свое время. Поддерживал все стандартные операции(плюс-минус-умножить-разделить, скобочки, возведение в степень), работу с дробными и отрицательными числами. ХЗ что нужно чтобы оно в 10к строк вылилось.
Ну на удаленке понятно, как просто проебланили в рабочее время. А офлайн как? Часто ходите?
Болеем и ходим
Пацаны, сегодня у меня личные дела в городе в середине/конце дня, буду недоступен с XX на три часа.
Я несколько раз просто запирался в переговорке с ноутом и все. Потом просто говорил, что собеседовался. Всем похуй.
> знать и уметь копошиться в устаревшем UI говне(winforms/wpf)
Что там знать и уметь, дегрод?
>>52947
>на чистом .NET вообще около нихуя
ЧТо значит "на чистом дотнет"?
Вообще очень странно выглядит, что человек влетает в тред про одну технологию, странным путём сравнивая её с другой и отговаривая вкатываться.
Ты дотнет-стажёр, который хочет себе конкуренцию снизить?
Как же я вас блять всех ненавижу читайте книжки.
Учитесь переваривать информацию, да 90% решений на проблемы с которыми ты столкнешься в жизни можно найти в интернете, но и головой тоже иногда думать надо.
Придумай сам практическую полезную задачу и решай её, используя имеющиеся теоретические знания. В чём проблема? Ты думаешь, если "сырая" теория тебе не помогла, тебе поможет сырая практика в виде создания нахуй тебе не упавших змеек?
Во время привязки может возникнуть конфликт. Например, я хочу привязать Фейсбук, но он уже привязан к другому аккаунту. Для разрешения конфликта пользователь должен выбрать с каким аккаунтом он хочет работать. Я ему должен показать информацию об обоих аккаунтах и далее он нажимает кнопку: хочу тот, хочу этот. И происходит перепривязка.
И тут вопрос, как реализовать работу с конфликтом в API? Хотелось бы скрыть какие-то детали внутри класса.
public enum LinkLoginResult { Failure, Success, Conflict }
void LinkFacebookLogin(Action<LinkLoginResult> callback);
void KeepCurrentAccount(Action<bool> callback);
void SwitchToConflictAccount(Action<bool> callback);
Вот думаю, может вместо enum возвращать ещё и всю информацию о конфликте? И там же объявить методы для решения конфликта, а не хранить их в общем интерфейсе:
public class LinkLoginResult
{
public LinkLoginStatus Status { get; }
public LinkLoginConflict Conflict { get; }
}
public class LinkLoginConflict
{
public UserData CurrentAccount { get; }
public UserData ConflictAccount { get; }
void KeepCurrentAccount(Action<bool> callback);
void SwitchToConflictAccount(Action<bool> callback);
}
void LinkFacebookLogin(Action<LinkLoginResult> callback);
Во время привязки может возникнуть конфликт. Например, я хочу привязать Фейсбук, но он уже привязан к другому аккаунту. Для разрешения конфликта пользователь должен выбрать с каким аккаунтом он хочет работать. Я ему должен показать информацию об обоих аккаунтах и далее он нажимает кнопку: хочу тот, хочу этот. И происходит перепривязка.
И тут вопрос, как реализовать работу с конфликтом в API? Хотелось бы скрыть какие-то детали внутри класса.
public enum LinkLoginResult { Failure, Success, Conflict }
void LinkFacebookLogin(Action<LinkLoginResult> callback);
void KeepCurrentAccount(Action<bool> callback);
void SwitchToConflictAccount(Action<bool> callback);
Вот думаю, может вместо enum возвращать ещё и всю информацию о конфликте? И там же объявить методы для решения конфликта, а не хранить их в общем интерфейсе:
public class LinkLoginResult
{
public LinkLoginStatus Status { get; }
public LinkLoginConflict Conflict { get; }
}
public class LinkLoginConflict
{
public UserData CurrentAccount { get; }
public UserData ConflictAccount { get; }
void KeepCurrentAccount(Action<bool> callback);
void SwitchToConflictAccount(Action<bool> callback);
}
void LinkFacebookLogin(Action<LinkLoginResult> callback);
Открой на ютубе любое видео аля пишет флапи бердс на шетемеле. И уже через 10 минут ты нихуя не поймешь что тебе говорят.
Читай книги/статьи, решай примитивные задачи.
Ну, вот допустим - везде берут и просто в цикле принимают соединения. Почему-бы не сделать несколько потоков которые бы пытались бы принять и начать обрабатывать соединение? Плсю, нигде не показано, как нормально остановить сервер, просто в консольном приложении жмакаем кнопочку, ну, слушателя мы убиваем, а что там с теми кто уже принят будет? Как их-то теперь убить, если, допустим, у меня приложение на формах и я хочу иметь возможность перезапустить сервер или остановить его, что-то еще поделать и запустить заново.
Короче, где посмотреть нормальные примеры этого вот, а не хелловорлды наколеночные.
>Как же я вас блять всех ненавижу читайте книжки.
На говно ты исходит можешь, а подсказать кто лучше метанит или Троелсен нет. Ясно
Кто-нить подскажет, как сбилдить это https://github.com/haf/System.Data.SQLite/blob/master/SQLite.Interop/SQLite.Interop.2010.vcxproj в mono на linux?
select ID +1 From Table t1
where not exists (select * from Table t2 where t1.id +1 = t2.id);
С С++ я вкатывался 2 месяца. В С++ два года
из-под винды есть Console.Beep(); Бери текст в бинарное виде и засовывай туда
pro asp net core 2
Двачую, так и вкатился. Конечно не работа моей мечты - занимаюсь улучшением нашей BPM, сайтами, которые на php + laravel в которых я мало чего понимаю (ну ничего, разберусь). Но для первой работы в IT сойдет, каждый день узнаю что-то новое, и главное набираюсь опыта. Если пройду испытательный поработаю тут еще годик и съебусь куда получше.
MSTests, NUnit, xUnit - библиотеки для создания любых видов тестов.
Unit tests переводится как модульные тесты, это только одна из разновидностей тестов.
>>56706
https://pastebin.com/nYADuHUz
>>55483
>все примеры это какая-то наколеночная хуета
TCP - это низкоуровневая хуета, которую можно использовать как вздумается. Если тебе надо несколько потоков, то например мне только 1 с очередью сообщений.
>Почему-бы не сделать несколько потоков которые бы пытались бы принять и начать обрабатывать соединение?
API позволяет принять только один. Принимай асинхронно.
>как нормально остановить сервер
Сделай обертку над соединениями и реализуй IAsyncDisposable. Потом создай volatile bool и завершай цикл по ней. После цикла убивай соединения как хочешь, отправь им "пока" например. В конце выкинь все и перепиши как надо.
>возможность перезапустить сервер
Нужен объект синхронизации. Начни с мьютекса.
>где посмотреть нормальные примеры
Нигде, слишком ситуативная реализация, примеры будут древнее говна мамонта и дырявее твоих носков.
>>55174
>callback
Ты из жс вылез? Даже там такой хуйни не пишут. И с хренали он bool принимает? На кой хрен в классе свойства? Failure - не объясняет причину ошибки. Пусть фронт зовет другое API с намерением заменить аккаунт и передает временный токен нового аккаунта, используя авторизацию фейсбука.
double.TryParse("3.14", out double newValue)
у меня оно возвращает 0. И стало работать "как задумано" только когда я написал 3,14 и возвращает оно соответственно 3,14. Но ведь там по правилам должна быть точка, а не запятая не?
По правилам используется дефолтная локаль системы и загоняется в статический класс треда/треда юи.
Плюс, т.к. метод статичный - тебе не нужен экземпляр. Но т.к. ты не пометил его паблик - он не будет виден.
Тьфу! Всё, не надо, сам разобрался.
Ты перенес тестируемый класс внутрь проекта с тестами. Оно должно быть отдельно. Ну и раз объявил переменные - используй их, а не руками вбивай.
Да, На случай если ты не знаешь как добавить ссылку на проект
Потому что там неймспейс вида:
ABC - тестируемый класс
ABC.Test - тестирующий
Так вообще неймспейсы устроены: ты можешь обращаться к элементам неймспейса более высокого уровня из низкого, но не наоборот. Т.е. если у тебя будет нейсмпейс Data.Db - ты сможешь без юзингов из Data.Db обратиться к элементам Data, но чтобы обратиться к Data.Db из неймспейса Data - нужно будет таки using использовать.
Так вот, у тебя тестирующий класс находится в другом неймспейсе. Потому либо измени его, либо используй using/
Почему-то у меня то же самое не прокатывает с "Библиотекой классов". Просто не видит Program, хоть убейся. И ссылку подключал, и юсинг не помогает, ничё не помогает. Выбираю проект как на картинке, в душе не ебу, что выбирает автор видео.
Ты не понимая базы, полез в тесты.
1. Для тестов нужны публичные или дружественные классы/интерфейсы/... с публичными методами.
2. К статическому методу можно обратиться через имя класса. К не статическому, через экземпляр класса.
3. В консольном проекте обязан быть статический метод Main. Может быть хоть в классе ВасяПупкин. В библиотеке метод Main не нужен.
Спасиьр, я понял. Создал в Main переменную типа Program и всё получилось.
А при наличии более одного тестов, который успешно проходят, зелёная галка так и должна быть с единицей? Количество успешных тестов надо узнавать только по консоли снизу?
Число показывает количество тестов в группе. Если хотя бы один тест упадет, то галка поменяется на крест. Обычно генерируют цветастые html репорты + % покрытия тестами.
А почему у меня 1/2 в галке?
Ладно, я потыкал кнопки и разобрался. Метод теста не добавился почему-то.
На 17 строчке перепутан return с result и какого-то фига на 20 строчке выводится Nums, а не result.
>>59305
Ты его и спрашиваешь в треде непонятно:
Если архитектурное разделение UI говна от логики, то MVC, MVP, MVVM, MVU.
Если ты пытаешься глобально разделить говнокод, то 3-tier architecture, onion, ddd и так далее к еще большему пиздецу человеческой мысли по типу акторов.
Если ты пытаешься изменить UI говно из другого потока, то это всякие BeginInvoke, диспетчеры или банальный async-await.
Так тут вроде почти только ньюфаги и сидят и друг другу вопросы задают и друг другу отвечают.
var x = a[0..k];
Если не скомпилируется, значит ты используешь старый C#.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version#defaults
Если твоя IDE не старье, открой в редакторе csproj и вставь тег LangVersion с значением 8.0, по ссылке пример как выглядеть должно.
Или перепиши создание x на более старый C#. Этот оператор тупо создает массив размером k и копирует все значения от 0 до k-1 из массива a.
В сущности, вижу ровно два направления.
1.Core 5. Тут все просто: энтерпайз, перспективная технология.
2. Unity3d. Геймдев. Может быть даже запилю свою фирму в будущем (работал юристом,умею немного в бизнес, умею в рисунок немного, в свое время написал нон-фикшн книгу и хочу попробовать себя в художественной прозе).
Какое из направлений предподчительнее? Геймдев дыра или нет?
Геймдев дыра. Либо ты вкатываешься в безденежные инди стартапы и сосёшь хуи в нищете, либо ты вкатываешься в мобилопарашу и перестаёшь себя уважать в принципе, либо ты уже опытный юнитиразраб и в таком случае у тебя есть какие-то перспективы, но это не твой случай.
Плюс в юнити практически не используются возможности самого шарпа, ты редко будешь использовать какие-то крутые фишки языка, тот же асинк в юнити бесполезен.
Я бы рекомендовал-таки энтерпрайз на дотнет 5 (и 6, когда выйдет).
тырпрайз, попасть ещё надо
У твоего проекта файл с расширением csproj. Раз не можешь найти, значит переписывай строку на старье C# 7.3.
Ничего не мешает. Делают. Реально.
Почему не популярно? Потому что производителям это не нужно. В чём им профит ставить палки в колёса гуглу и самим ебаться со сборкой и последующим апгрейдом собственных версий андроида? Это нужно всяким помешанным на анонимности и приватности красноглазикам, которые собственно этим и занимаются, пиля собственные прошивки.
>Или есть форум какой-то где мне более детально пояснят
4pda
>вот блекбери так делает, у них на каждую новую генерацию телефонов новая ось, и ничего вроде, живут
Ты сейчас про какой блекбери говоришь? Последние модели на почти стоковом андроиде, у них изменений не больше, чем у других производителей, в основном просто предустановленный софт.
Среда: Нет 5
Ну так не модно почему-то, раньше иметь свою ос была престижно и почетно, хвалились еще тем какие у них ос безопасные, но это желание везде присобачить кнопочки все нивелировало а потом выкатили андроид и сдохли вообще нахрен, а ведь когда-то под 20% рынка держали
Ну так это всё взаимосвязано. Раньше нужно было тратить ресурсы на разраотку и поддержку своей ОС, а теперь то всё можно свалить на гугл с его андроидом и заниматься тем, что приносить прибыль.
Что этот код вообще делать должен? Что лежит в onceGoogleAuthCode? Зачем ты это переприсваиваешь другой переменной и вручную обнуляешь первую (у тебя сборщик мусора есть, если что).
Давай пояснение своего кода, потому что сейчас я не вижу причин, почему нельзя написать просто callback(onceGoogleAuthCode);
Есть ли смысл пилить индипарашу для души в свободное время, или за рамки хобби это не выйдет?
Даже если не выйдет за рамки хобби, то это всё равно имеет смысл.
Можно на английском но лучше на русском, можно не совсем для начинающего в программировании но лучше для начинающего.
Конкретно книг не припомню, но существует полно сайтов с заданиями разного уровня сложности.
Есть смысл пилить мобилки. Одна мобилка может приносить больше, чем ты заработаешь на топовой позиции в Москве.
Спасибо
Проверь руками есть ли база.
благодарю
Я тебе говорил как лучше: вынеси специфичное поведение в стратегию и при билде под разные ос фабрикой/билдером получать нужное. Нет, не хотим, хотим нахуячить деректив, регионов, а интерфейс сделать толстым как жопу мамаши. Охуенное ООП, товарищи. Просто 11/10.
Ты посмотри что за хуйня там выше. Это же пиздец. Я понимаю, если #if используют когда нужно обеспечить поддержку легаси-фреймворка, моно, это вот, но блядь, в юнити опредеять андроид или айос. Пиздец.
Ладно, не буду никого учить. Хотите жрать говно - ваше дело. Когда половина кода будет состоять из деректив, будто вы в ебучем си и вас заебет эта хуйня - сами дойдете до этого, если больше одной извилины имеете.
Формулы и свои наработки прикрепляю
https://pastebin.com/Y9pgrkqR
Спасибо за ранее.
Стоит ли выносить приложение в отдельный контейнер и настраивать между ними нетворк?
Как скаффолдить контроллеры, если у меня mysql только в докере? при генерации контроллера, который with Entity Framework пишет, что не найден MySql nuget пакет pomelo mysql установлен в обоих проектах
Работал на заводе, учил шарпы. На вакансиях где чисто веб разработка на шарпах в моем мухосранске требования высокие, я даже не пытался. Но я стал ходить по другим собеседованиям, где стек отличается. Даже к 1Сникам заглянул, дали тестовое я попробовал сделать, не понравилось вообще и сказал что доделывать не буду. В итоге нашел себе вакансию разработки под CRM, плюс у них кучу сервисов на шарпах написано и на пыхе всякого дерьма много. Туда и вкатился, со временем конечно собираюсь перейти на полноценные шарпы, но для первой работы в IITи так сойдет
Прочитай, блядь, как работает докер.
Охуеть, блядь. Ну серьезно, это во второй статье на сайте самого докера рассматривается. Я понимаю, когда ты погуглил, потыкался, и что-то неясно начинать спрашивать, но это же основа. Давай, спроси как переменную объявить.
Чел ты. Тыкни на ту самую "вторую" статью на сайте докера, потому что я перечитал документацию и, не поверишь, потыкался самостоятельно, прежде чем вопрос тут задавать
В контексте всех этих IOC- плохо ли делать что-то типа:
class Notifier<TType>
{
public event EventHandler EventName;
public void PingEventEventName(object sender, EventArgs e);
}
?
Ну, допустим, у меня есть куча каких-то короткоживущих объектов, в них могут нужные события происходить, я, допустим, хочу при их срабатывании что-то во многих местах делать. Делаю этого Notifier - синглтоном, те кто хотят сообщить о событии - вызывают метод, в нем просто кидается эвент. Те кто хотят послушать - подписываются уже на эвент из этого Notifier.
Ну, банально, вот в у меня есть мобы, я хочу чтобы при событии СМЕРТЬ - игрок получал опыт, спавнилка понимала что нужно нового моба заспавнить через n секунд, а компаньон говорил: Да, так их. Игрок, спавнилка и компаньон - будут жить долго, скорее всего будут синглтонами, а вот мобы возможно будут жить всего пару секунд, если не меньше.
В общем. Не знаю. Как лучше-то прокидывать события между объектами, чтобы не создавать лишней взаимосвязи.
Используй entity component system. Синглтонами он собрался хуярить.
>На 17 строчке перепутан return с result и какого-то фига на 20 строчке выводится Nums, а не result.
сяп за ответ, жаль народу на доске мало и я и сам уже успеваю написать код ещё рас и обдувать что бы вышло без ошибокм чем кто то ответит
тогда что, нужен перекот?
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="MyLogFile."/>
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date"/>
<datePattern value=".yyyy.MM.dd_hh.mm.lo\g" />
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
Можно как-то сделать, чтобы в имя файла писалось utcdate, а не время на компьютере? Или только кастомный аппендер писать?
Сап.
Кто-нибудь реализовывал интеграцию cmd внутрь WinForms или WPF или находил такие реализации?
Нашёл сторонний контрол https://github.com/dwmkerr/consolecontrol но он жутко кривой: если запустить что-то по-сложнее стандртной команды cmd, аутпут ломается к хуям.
Пишу консольное приложение, которые использует другие dll. Подключаются через
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
И вот когда у меня выполнение программы доходит до return, то она продолжает висеть в процессах.
Как можно отследить (ProcessExplorer не дает нужной инфы), что где еще выполняется, чтобы убить потоки, которые продолжают где-то висеть.
Была попытка просто топорным способом сделать System.Diagnostics.Process.GetCurrentProcess().Kill(); и да, программа завершилась и все круто. Но в таком случае другая программа, которая ждет завершение работы моей программы получает код завершения (-1 если не ошибаюсь), который мне не нужен. Пошуршав немного интернеты в поисках как изменить этот статус ответа на нужный мне через kill() не нашел.
Аноны, какие есть идеи и предложения?
Что блядь?
Пробовал, но не помогло. Но направление думаю правильное, нужно капать дальше там.
lock(_locker)
{
db.Set<DbItem>().Add(item);
db.SaveChanges();
}
работает в разы быстрее чем:
while(concurrentQueue.TryDequeue(out var item))
{
db.Set<DbItem>().Add(item);
db.SaveChanges();
}
?
Я вот не понимаю. Вроде же все эти конкурентные штуки с локфри должны быть быстрее по перформансу. Просто поясню проблему. В БД - есть поле, которое должно быть без пропусков, при этом логику выдачи поля нельзя на базу перекладывать, потому нужно как-то на уровне приложения проверить пропуски и если есть - заполнить поле пропущенным значением. Так вот, я думал - ну, локфри, вся хуйня, сделаю очередь на добавление, там просто буду в бесконечном цикле, пока программа не завершится доставать и будет заебись, а потом запустил - и хуйня какая-то. Ок, пробуем с lock - все на несколько порядков быстрее, да, какое-то время появляется скачок по нагрузке на проц, но потом он не такой страшный.
Короче, что я не знаю-то? Почему так происходит? Что я как программист должен с этой хуйней делать?
Как передать datetime пост запросом в контролер net5 mvc ?
Вот вью
<div>
<label asp-for="FirstDate"></label><br />
<input type="datetime-local" asp-for="FirstDate" />
<span asp-validation-for="FirstDate"></span>
</div>
В контролер приходит 01.01.0001 0:00:00
Как пофиксить?
Какое вообще основное отличие .net 6 от .net 5?
Думал, стоит ли перенести пет проект на нет6, но что-то вообще не пойму, какие там преимущества?
Однако, помимо такой гарантии, аргумент, помеченный "in" передаётся по ссылке.
Могут ли с этим быть проблемы производительности, если помечать так примитивные типы, например int, float, double?
https://habr.com/ru/company/microsoft/blog/543564/
Ну бля таких что бы пиздец каких основных нету.
Просто доработки что бы быть в тренде.
Да будут проблемы.
Передача через in эффективна только для структур больше определенного размера, цифру не подскажу так как наизусть не помню, а еще там вроде от ЦП зависит.
Плюс передача через in не readonly структуры создает копию структуры для безопасности от чего ты только теряешь.
Но если ты передаешь readonly через in и при этом еще создаешь ее в момент вызова, а затем нигде не хранишь и она ниже Х размера, то это разгружает GC так как все это дело живет только на стэке.
Для большего понимания читай Pro .NET Memory Management от Konrad Kokosa
Что означает символ @ перед строкой, в CSharp?
Вижу, что строка изменяется.
Как её назад декодировать, в прежнюю?
Можно как-то сделать такое же, и конечно - обратное преобразование в JavaScript?
Как на шарпе унескапнуть вербатим стринг
чтобы было заебись но не только для '\n' а для всех эскапнутых вербатимумом символов?
>Console.WriteLine((@"Hello,\n World!" == "Hello,\\n World!")+",\n"+@"Hello,\n World!".Replace("\\n","\n")); //try to unescape
Там не все символы есть: https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.escape?view=net-5.0
Нету '\r', '\n', '\b' и так далее, из всего того, что гуглится по запросу Escape Sequence.
Как эскапнуть этим вербатимумом (@) - ёбанные двойные кавычки?!?!!!?!?!
>Console.WriteLine(@("\b\f\n\r\t\"\\".Replace("\"", "\"\""))); //При использовании verbatim, " надо заменить на ""
выбивает какую-то хуйню по-английскому.
>передача через in не readonly структуры создает копию структуры
Передача не readonly структуры и без in создаёт её копию, так-то.
Правда, хрен поймёшь, что ещё эскапает этот регесп, помимо всего прочего. Походу, надо просто цепь из реплейсов написать, и не ебать мозг.
>Правда, хрен поймёшь, что ещё эскапает этот регесп, помимо всего прочего.
А вот же: >>66803
>Походу, надо просто цепь из реплейсов написать, и не ебать мозг.
Там всего 7 символов надо проэкранировать.
Должно бы работать: https://rextester.com/KYACNF79246
А, теперь бамплимит 500 постов? Понятно.
НОРМАЛЬНЫЙ ПЕРЕКАТ С ТЕГОМ
НОРМАЛЬНЫЙ ПЕРЕКАТ С ТЕГОМ
>>2067562 (OP)
>>2067562 (OP)
>>2067562 (OP)
ulearn.me
Это копия, сохраненная 22 июня 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.