Программирование

Ответить в тред Ответить в тред
Check this out!
C#/Сишарп/.NET Тред #24 /csharp/ Аноним 15/01/21 Птн 00:20:11 19103241
logo.png 100Кб, 941x1025
941x1025
154278534.png 217Кб, 1104x598
1104x598
1543856903426.jpg 105Кб, 376x926
376x926
Прошлый тред: >>1870468 (OP)

Литература вторым постом

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
Аноним 15/01/21 Птн 00:20:48 19103262
7. Что почитать?
The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.

8. Более хардкорный материал
CLR via C# (Jeffrey Richter) — это классика, это знать надо.
C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.

9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)

11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.

12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)

13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

14. Разработка игр
Unity-тред в /gd/

15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".

16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.

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
Аноним 15/01/21 Птн 15:59:34 19107373
Бэки/фуллстаки кто работает, расскажите у вас у кого нибудь wpf требуют знать? Бля буду не хочу с ui дела иметь, есть меня опция его скипнуть и не понюхать хуй? Я в курсе что wpf по сути вообще отношения к бэку не имеет но работать я не работал, всю внутреннюю кухню могу только представить, может сейчас тенденция из бэков швейцарские ножи делать ТЭНКС
Аноним 15/01/21 Птн 16:14:55 19107494
Недавно решил попробовать вкатиться в веб разработку. Изучал основы c#, LINQ, SQL, Entity Framework Core ну и конечно HTML и CSS пощупал. Все довольно неплохо шло, очень радовал мой прогресс в понимании того, как это работает. Решил что я готов к более серьезным действиям и пошел на MSDN изучать ASP.NET Core. И знаете что? Я вообще нихуя не понимаю как это все изнутри работает, всякие конфигурации, Generic Host. Это такой темный лес, что просто пиздец. Я смотрю на генерируемый код при создании шаблона, и вообще нихуя не понимаю. Не, ну я конечно могу добавить БД по гайдам и даже изменить отображаемый контент пользователю, но как все это работает изнутри я вообще совершенно не понимаю.
А у вас как было, когда вы вкатывались? Склоняюсь к мнению, что мне стоит почитать общую информацию о работе браузеров и сетях.
Аноним 15/01/21 Птн 16:27:06 19107615
>>1910749
У тебя есть несколько вариантов на мой взгляд. Спиздить курсы где рассказывают все рассказывают досконально как будто душевно больным itvdn например либо рекурсией гуглить самому едва ли не каждое слово а затем непонятные слова которые видишь в процессе гугления. Ну либо книги тут в шапке есть, правда сам с ними дел не имел, ничего сказать не могу.
Аноним 15/01/21 Птн 17:40:46 19108516
>>1910737
Если тебя веб-разработка интересует (а другой мало), то не нужно знать.
Аноним 15/01/21 Птн 17:42:19 19108537
>>1910749
Некоторое время были непонятки, но решая вопросики все прояснилось.
Аноним 15/01/21 Птн 18:56:29 19109418
>>1910737
Че там, блядь, знать-то? XAML - обычный xml, по сути, под копотом оно тебе в объектики собирается, охуеть как сложно, биндинги, ну биндинги и хули, что отписываться нужно если решил INotifyPropertyChanged, ну, блядь, это банальность же.
Я вообще не понимаю, что современные вкатыши хотят делать-то на работе и что думают ты там делать будешь. Тебе скажут - ты программист - бери в руки ассемблер и пиздуй вилкой ковырять регистры - пойдешь как миленький, никуда не денешься, а не пойдешь - ну, отправишься на улицу.
Программист, это в первую очередь - инженер, а инженер - это тот, кто не знает фраз: не могу, не знаю, не хочу. Это, считай, твоя должностная обязанность: по первому зову все что скажут делать: скажут верстать - будешь, скажут алгоритм для вычисления оптимального пути придумать и чтобы был круче существующих на 20% - придумаешь, а скажут - пили 5 лет круды - будешь пилить круды. Такая судьба у инженера, который не хочет быть кабанчиком.
Аноним 15/01/21 Птн 19:03:39 19109509
.jpg 3972Кб, 3000x2002
3000x2002
>>1910749
1. Нужно было не просто учить, а пробовать писать. До аналога хоста я к 5й лабе в вузе дошел, когда заебался каждый раз кучу одинаковых хуевин делать чтобы графика была на сишечке.
2. Нужно было про паттерны читать, неткор решил наконец хоть немного стать похожим на что-то удобное для разработки.
3. Коды открыты, нихуя там сложного нет.
4. Как программиста - тебя ебать это не должно. Ты же не думаешь в момент написания программы, что там под каптом электрончики транзисторы теребят, тебе до пизды это, как до пизды в 99,(9) случаев во что там с точки зрения машинных команд собирается твой код, как до пизды большинству что под капотом у листа или как так получается что html написанный буквами в браузере превращается в пямоугольники, таблички, списки и вообще всеми цветами переливается.
Аноним 15/01/21 Птн 19:15:23 191096310
>>1910749
> А у вас как было, когда вы вкатывались?
Только на первых курсах, пока не осознал, что программист работает с абстракциями. Конечно, базу знать хорошо бы, но, по факту, не это важно в программировании. Ты, блин, свой-то код через полгода-год не будешь узнавать и не сможешь с ходу сказать как он работает, если там хотя бы 20к строк уже набралось.
Аноним 15/01/21 Птн 19:27:12 191097311
>>1910941
Дядь, расслабься пожалуйста, я не ворочу еблом. Я знаю слово "надо", и если надо учить но выучу. Просто мне больше по кайфу в шестеренках ковырять нежели рисовать йоба-дизайн, и поэтому уточняю у тех кто хорошо знаком с внутренней кухней, насколько мое " по кайфу" сопоставляется с нынешними реалиями веб дева. Может у многих компаний есть флешмоб поддрачивать бэков лепить какие нибудь приложухи для внутренних задач, откуда я это узнаю если не у того кто собаку схавал в этом дерьме. Домой аригато.
Аноним 15/01/21 Птн 19:29:29 191097812
>>1910973
Домо* т9 сука бля сука
Аноним 15/01/21 Птн 19:35:11 191098313
>>1910973
Лол, видели бы люди со стороны как дизайн 99% внутряка выглядит: табличка-табличка-поле-поле-кнопочка-лейбл и это все стандартом абсолютным и срать все хотели на разные разрешения, красивости, анимации и прочее, это внутряк, он должен какую-то внутреннюю задачу решать даже на баги некретичные похуй, все свои, обматерят в курилке, да попросят что-то в следующей сборке поправить.
А сделать таки заставить могут, если задача такая стоять будет и нет тех кто с этим лучше справится. Просто, блин, УЧИТЬ? Ты берешь, гуглишь, 2 вечера читаешь доки - делаешь, что там учить-то?
Аноним 15/01/21 Птн 20:29:13 191107114
>>1910983
Большое спасибо за вменяемый ответ!
Аноним 15/01/21 Птн 20:59:06 191111415
>>1910749
Забей хуй на то, как это работает, тебе выше правильно сказали аноны. Просто делай и все. Когда привыкнешь к тому, как ASP работает, как на нем что-то базовое и не только делать - тогда уже можно лезть в пизду и пытаться вникнуть, что за черная магия происходит под капотом, и то при необходимости.
Я лично неделю уже уделяю несколько часов в день на изучение ASPа по книге Фримана. Первые несколько дней хватался за голову от того, как все сложно, непонятно и что за черная блядь магия в каждой строчке происходит. Сейчас уже попривык ко всякой ебале. Копипасчу все из книги нещадно, но хотя бы начинаю понимать, что я копипасчу. Сегодня вот даже смог написать свою первую полностью самостоятельную строчку кода - вроде мелочь, а по сравнению с тихим ужасом от первого взгляда на ASP - ебать прогресс.
мимо вкатун
Аноним 15/01/21 Птн 22:44:00 191126416
Аноним 15/01/21 Птн 22:57:25 191127917
>>1911264
Ну хотя бы типизацией.
Аноним 15/01/21 Птн 22:58:17 191128018
Есть аналоги CLR via C#, только новее?
Аноним 15/01/21 Птн 23:57:21 191133319
>>1911280
А то ну основы, конечно, не изменились, но все-таки хочется освежить знания
Аноним 16/01/21 Суб 10:16:31 191151320
>>1910324 (OP)
Эх, вот бы сразу на удаленочку вкотиться а пока резюме даже не смотрят
Аноним 16/01/21 Суб 10:24:37 191151821
Анон, поясни такую штуку пожалуйста:
Вот есть стандартный способ как поменять две переменных местами с помощью третьей:

int c = a;
a = b;
b = c;

в CIL он выглядит вот так:

IL_0022: ldloc.0
IL_0023: stloc.2
IL_0024: ldloc.1
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Ок. Все понятно.
------
Теперь берем метод через деконструкцию кортежа:

(a, b) = (b, a);

Смотрим в дамп, а там практически то же самое, только чуть в другом порядке:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.2
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Почему так? По логике деконструкции он же должен взять два значения, закинуть их в стек, а потом просто забрать их оттуда в обратном порядке, т.е. вот так:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.1
IL_0025: stloc.0

Зачем он во втором способе заводит лишнюю переменную? Или эта херня уже дальше потом оптимизируется при конечной компиляции?
Аноним 16/01/21 Суб 12:03:39 191156422
Безымянный.png 22Кб, 685x147
685x147
>>1911518
> Или эта херня уже дальше потом оптимизируется при конечной компиляции?

Да. После компиляции у тебя пикрил получается.
Аноним 16/01/21 Суб 15:56:16 191183323
>>1910941
Ебать жалко тебя. Ты судя по всему ни разу в достойной компании не работал, где знают про зоны ответственности работников
Аноним 16/01/21 Суб 19:44:57 191210124
Аноним 16/01/21 Суб 20:09:09 191212925
>>1912101
Берешь винформс и делаешь. Что конкретно тебе не понятно? Если хочешь готовый код, то заходишь на гитхаб и вбиваешь в поиск notifier и фильтруешь результаты по сишарпу
Аноним 16/01/21 Суб 20:29:40 191215026
>>1912101
Изучи класс TimeSpan и его свойства.
Аноним 17/01/21 Вск 23:53:05 191361227
image.png 408Кб, 1281x589
1281x589
Здарова всем! Подскажите, как без сторонних библиотек от васянов запилить такое уведомление в WPF?
Аноним 17/01/21 Вск 23:53:54 191361428
Аноним 18/01/21 Пнд 16:51:59 191417029
здравствуйте, извините за тупой вопрос.
у меня много где написан код вида
T[] array;
for (int i = 0; i < array.Length; i++) {
int nextIndex = i + 1;
if(nextIndex == array.Length) nextIndex = 0;
}

подскажите изящный способ без if получать 0 на последней итерации.
Аноним 18/01/21 Пнд 17:06:11 191418530
>>1914170
Написать сразу после тела for - nextIndex = 0 ?
Аноним 18/01/21 Пнд 17:06:17 191418631
>>1914170
Добавляй в конец массива первый элемент этого массива, в итоге получится:

for (int i = 0; i < array.Length - 1; i ++) {
int nextIndex = i + 1;
}
Аноним 18/01/21 Пнд 17:19:05 191420032
а ладно. посидел, чаёчку попил. можно же написать
int nextIndex = (i + 1) % array.Length;
и получить всё как надо
>>1914185
wut?

>>1914186
совсем говноспособ же.
Аноним 18/01/21 Пнд 20:12:29 191446233
>>1914200
>совсем говноспособ же.

Почему ты так решил? Говноспособ или нет, но работать будет быстрее чем деление по модулю при каждой итерации.
Аноним 18/01/21 Пнд 20:35:10 191448734
>>1914462
так делают только дегенеративные личности. ты любитель наступать на грабли? подкидывать себе какашки в песочницу?

через пол года эта логическая лапша прокиснет. открываешь код а потом думаешь "а почему тут лишний индекс. а почему в него чтото суётся".
или дальше код пишешь и забываешь что тебе надо копировать лол первый индекс в последний при повторной подобной итерации.
нельзя использовать Length/Count как указатель количества элементов. надо вычитать единичку!
ну и наконец случаи когда надо написать просто нормальную библиотечную функцию у которой инпут и аутпут без выебонов.
итд

код надо писать так чтобы ты мог потом в него заглянуть и прочесть не хватаясь за голову. нашел, блядь, что обменивать. читаемость всего связанного куска кода на разницу между делением по модулю и его отсутствием.
Аноним 18/01/21 Пнд 21:11:18 191454935
Извините за тупой вопрос.
WPF, есть одна кнопка в гриде, в одной колонке. Могу ли я во view model кодом растянуть эту кнопку на несколько колонок?
Аноним 19/01/21 Втр 00:32:16 191468336
>>1914549
Ну запили свойство во виeв модели, ButtonColumnSpan, потом в кнопке в xaml Grid.ColumnSpan="{Binding ButtonColumnSpan}".
Аноним 19/01/21 Втр 01:35:01 191472437
Посоны, вот такой код:
async ValueTask foo(){
if(isConfigured) {.....}
isConfigured = true;
....
}
является потоко безопасным или нет? Подозреваю что нет. А как его по нормальному переписать? Шарп ругается на локи в асинке, а плодить таску семафором через semaphore.waitasync, ради такой простой фигни, как-то не хочется.
Аноним 19/01/21 Втр 02:25:54 191474938
>>1914724
Делай через Interlocked.CompareExchange, только придётся либо в int переводить и обуславливаться тем что 1 это true, а 0 это false, либо боксить булево значение в объект.
Аноним 19/01/21 Втр 06:45:24 191477939
>>1914724
Что-то вроде такого, предполагаю, прокатит https://pastebin.com/ApGKuZQV. Но в некоторых случаях double-checked locking считается антипаттерном.
Аноним 19/01/21 Втр 06:46:00 191478040
Аноним 19/01/21 Втр 15:54:29 191527341
>>1914749
Спасибо, перевел бул в инт просто.

Алсо, вопрос по этим мутексам и семафорам. Правильно ли я понимаю, что когда пишу sem.Wait() или lock(), то поток становится залоченым и просто ждет, когда нужный ресурс освободится? И в это время ничто в программе не может использовать этот поток?
Почему тогда в стандартную либу не добавили асинхронные мутексы, локи и тд?
Аноним 19/01/21 Втр 15:58:56 191527442
>>1910324 (OP)
Все таки убрали из шапки про "язык богов".
Аноним 19/01/21 Втр 16:02:07 191527543
>>1915274
Лол, тоже заметил. Да судя по рыночку шарпеев уже меньше пхпшников осталось)
мимо
Аноним 19/01/21 Втр 16:56:22 191530244
>>1915273
Для асинхронного лока есть SempahorSlim с его WaitAsync. Переписывать старое просто нет смысла.
Аноним 19/01/21 Втр 20:19:48 191557145
>>1915274
решили не позорится
>>1915275
их всегда было меньше (причем в разы)

мимо
Аноним 19/01/21 Втр 20:30:07 191558146
аноны, пилил игоры на юнити 4 года
заебало - постоянные, бесконечный спринты, ебля с юаем и, вообще говоря, история далекая от настоящего проганья
в общем, знаю юнитишные си шарп и питон (довольно много на нем пиходилось писать)
Куда можно вкатиться с такими знаниями без потери в зп? (была 80, тк контора очень мелкая) В бекенд реально?
Аноним 19/01/21 Втр 20:45:08 191559447
>>1915581
Реально только в другую бнити контору, иначе охуеешь от того сколько всего нужно знать. Помимо бекенд фреймворков вида асп.нет и сигналР, нужно еще SQL щнаит на уровне не хуже шарповского. Дополняется это всё знанием JS и базовым знанием html+css. Если уверен, что сможешь всё это освоить и не потерять в зп, то дерзай. Но я бы лучше в текущей сфере развивался, благо юнити не теряет в популярности.
Аноним 19/01/21 Втр 20:55:18 191561048
>>1915594
ну бля, хуево
а сколько у вас джуны получают?
Аноним 19/01/21 Втр 21:08:51 191562749
>>1915610
У нас их нет, у нас все фуллстеки с зп от 100-140, при этом нанимают только если у тебя уже был опыт работы во фронте.
Аноним 19/01/21 Втр 21:23:22 191565250
>>1915627
епт, серьезно что ли?
Аноним 19/01/21 Втр 21:32:33 191566251
>>1915652
Да, открой hh.ru, там картина примерно такая же.
Аноним 19/01/21 Втр 21:46:16 191567552
>>1915581
кек. а кодзимой то стал? разбогател? игру мечты выпустил? есть что показать?!
мимо пилю велосипеды на юнити 6 лет
Аноним 19/01/21 Втр 21:55:23 191569153
>>1915675
да не, у нас там именно софт промышленный
управление дронами
Аноним 19/01/21 Втр 22:01:42 191570254
>>1915691
наверно интересно. мне вот не повезло ничего такого. хотя я не очень искал. в итоге все шесть пилил велосипеды для проекта мечты.
а какие скиллы нужны то чтобы дронами в промышленности управлять?
Аноним 20/01/21 Срд 02:55:38 191595755
>>1915702
Ох, братиш
Ну, в целом то, дохуя. Но смотря что
У нас был стартап, поэтому область отвественности была довольно обширная
Ну понятно, что на юнити висит юай и логика - тут все мало чем у игроделов отличается
Помимо проганья нужен матан и знание основ теории управления (но я этого касался поверхностно, другие ребята занимались управлением).
Я сам сперва, помимо самого юнити, в соляну, потом уже с тимой пилил зрение - обработку облаков точек с ргбд камеры (ну тут был питон).
Короче зависит от размера команды: если мелкая, как у нас, то нужно много чего знать. Если штат крупный, то у каждого будет четко ограниченная роль и необходимый набор скилов. К слову, мы потом набирали людей на юнити именно геймдевных - для всяких оптимизация и прочего, требующего хороших знаний специфики юнити
Аноним 20/01/21 Срд 04:41:51 191602456
>>1910324 (OP)
Всегда ловил лютый криндж с языков типа Java и C#, точнее не с самих языков, а инфраструктуры и специфики разрабов. Всё такое официальное, стандартизирован каждый пук, тысяча уровней абстракции с модными билдерами, фабриками, фабриками билдеров, билдерами визитёров стейта стратегии фабрик и т.д. Ещё очень угараю всегда с сертификаций всяких майкрософтов. В итоге все это вместе всегда вызывало чувство некоей КОЛХОЗНОСТИ происходящего.

Это все так на самом деле? Или мое впечатление ложное и обстановка кодоебов на шарпе такая же приятная, как и кодоебов на всяких Го/Питонах и т.д.? Или реально всё так официально-деловито? Если что не траллинг, прост рил интересно.
Аноним 20/01/21 Срд 04:44:54 191602757
Door.webm 5436Кб, 1152x576, 00:00:25
1152x576
U - RVO6.webm 16045Кб, 1128x738, 00:00:50
1128x738
изображение.png 6715Кб, 3360x880
3360x880
>>1915957
а вообще не так и много и довольно размыто. разве что теорию управления я как что-то целостное никогда не изучал, но учитывая что меня обычно звали в проекты делать ИИ, то наверно я знаю больше нуля. и анализ облака точек для меня не кажется таким уж сложным учитывая что мой первый крупный самостоятельный проект был это был навмеш собранный на коленке. пикрелейтед. видеорелейтед.

а че там ещё нужно? вычислительные шейдоры? новомодная хуйня вроде DOTS?
Аноним 20/01/21 Срд 04:56:54 191603458
>>1916024
Паттерны проектирования не только в C#/Java применяются. И применения паттернов позволяет писать безопасный код, который устойчив к изменению и расширению. При этом сами языки не требуют от программиста управления памятью. Что в целом делают эти языки отличным выбором для крупных компаний с большой кодовой базой.
Аноним 20/01/21 Срд 07:57:55 191607459
Пытаюсь добавить нугет MySql.Data, но вижак срет ошибкой и ничего не устанавливает

Restoring packages for E:\хуйпизда.csproj...
GET https://api.nuget.org/v3-flatcontainer/mysql.data/index.json
Unable to load the service index for source https://dotnet.myget.org/F/roslyn/api/v3/index.json.
Response status code does not indicate success: 404 (Feed does not exist.).
Time Elapsed: 00:00:01.1212230
========== Finished ==========

Это у меня какая-то хуйня с вижаком, или в майкрософте где-то обосрались?
Аноним 20/01/21 Срд 09:44:36 191609160
>>1916074
По второй ссылке действительно нихуя нету.
Аноним 20/01/21 Срд 09:55:25 191609661
>>1916091
Да, но почему он вообще в неё ломится?
Аноним 20/01/21 Срд 10:50:37 191611962
>>1916027
да я не пытаюсь тебя как-то отпугнуть типа "смотри как я крутой, я облака точек знаю как обрабатывать"
типа камон, мне до мудрых дядек, знающих все еще хуячить и хуячить
Да и задачи были не самые сложные - классика робототехники: найти объект в облаке, движение по траектории (ну тут, правда, все чисто на RGB + D канале)
просто я к тому, что чистым кодингом тут не отделаешься, скорее всего, нужно знать еще что-нибудь из роботоетехнической области
шейдоров каких-то сложных у нас не было
У тебя, кстати, интересный опыт, как мне кажется
расскажи вообще, что за проекты с ИИ (Примерно)? навмеш на колентке это просто пет проект? Ты работаешь именно с юнити?
Просто у меня вот этап смены работы и я прям парюсь: валить ли с юнити или оставаться
Буду рад, если ответишь)
Аноним 20/01/21 Срд 11:06:49 191613163
>>1916034
Вопрос вообще не об этом.
Аноним 20/01/21 Срд 12:48:51 191617264
>>1916074
Короче хрень какая-то была. Я поудалял из инсталлера ненужные компоненты, обновил вижак до самой последней версии, сделал ему "восстановление", и оно всё равно после этого не работало. Ну думаю, пиздос, придется писать им куда-нибудь. Нажал Install ещё раз чисто чтобы скопировать текст ошибки, а оно взяло и установилось.
Аноним 20/01/21 Срд 13:00:37 191618065
PathDeltaCost.webm 7069Кб, 1152x800, 00:00:37
1152x800
P11.png 46Кб, 721x739
721x739
P6.png 1828Кб, 1680x1984
1680x1984
123.png 25Кб, 274x400
274x400
>>1916119
да не мне так интересно какой вообще минимальный набор скиллов требуется за пределами гейдева. что-то такое поверхностное то на юнити ебошить то много знать не надо. а то открываешь порой требования для обычных погромистов а там список всяких интересных требований. открываешь к юнити а там можно сформулировать как "не быть говноделом" и "знать какую-то узкоспециализированную хуйню"

>расскажи вообще, что за проекты с ИИ (Примерно)?
всякие. пару раз делал и доделывал ИИ для стратегии, для РПГ одной делал, для хуевого шутана. ничего такого чем я бы гордился. обычно задача ставится "чтобы расширять можно было не через жопу и без моей помощи", а не какие-то интересные решения чтобы принимало. чтобы интересные решения принимало это надо обычно в проект нанимать отдельного человека у которого там своя атмосфера в проекте.

>навмеш на колентке это просто пет проект? Ты работаешь именно с юнити?
юнити просто знаю лучше всего. так то и в некоторых других движках кнопки найти смогу если что. навмеш скорее мой основной проект в портфолио и проект над которым я работаю дольше всего. когда начинал над ним работу у юнити вместо навмеша был пиздец который билдился только в эдиторе, а я хотел именно процедурные уровни. были конечно другие решения для навигации но они мне все не нравились и я стал ебошить своё. в итоге лол юнитеки допилили себе навмеш до того состояния который мне был нужен ранее, но к тому моменту я запилил уже своё получше. вообще навигация конечно мегаважна в ИИ, так как позволяет решать какие-то пространственные задачи. например в той РПГ мне дали задачу научить ИИ использовать предметы в запертых комнатах лол. то есть ИИ должен был построить путь в запертую комнату(уже интересное начало), в этом пути должен был содержатся флажок "тут заперто", вернуть ИИ информацию где находится ключик от комнаты и сказать чтобы он пиздовал туда где ключик, взял ключик, вернулся к запертой двери, отпер дверь, наконец применил предмет в запертой комнате. вроде тривиальная задача, а чем больше информации доступно изначально тем проще её решить. идеально если она доступна сразу вся чтобы поток думалки не лез лишний раз в поток навигации. а ведь задача может усложнится! когда например от комнаты нужно два ключика и один из них у патрулирующего стражника, тогда надо ещё знать какой из ключиков ближе учитывая расстояние хождения.
ну а могущество залезть в генерацию навмеша и какую-то свою хуйню сделать это конечно замечательно. например лол вон у меня есть генерация зон доступных только "присев" где соответственно сложней передвигаться. что-то такое в стандартном навмеше сделать несколько проблемно. или вон та информация о "укрытиях" тоже результат генерации. не руками же такое расставлять!

ну а так то разумеется не один навмеш я умею. умею вычислительные шейдоры, обычные шейдоры, всякую геометрическую хуйню, допиливать функционал самого юнити. это наверно чаще всего просят. ну и по мелочи. вообще я могу тут весь тред засрать всякими интересными картинками и видосиками.

>Просто у меня вот этап смены работы и я прям парюсь: валить ли с юнити или оставаться
с одной стороны на юнити самый наверно повышенный спрос, а с другой стороны много просят тривиальную хуйню а платят за неё мало. но это я сужу с точки зрения гейдева. а тут управление дронами охуеть.
Аноним 20/01/21 Срд 13:02:16 191618266
out123.webm 34279Кб, 1140x950, 00:01:05
1140x950
P25.png 1726Кб, 1678x875
1678x875
>>1916180
наверно ещё это покажу. один из моих любимых проектов.
Аноним 20/01/21 Срд 13:05:54 191618567
Анончики подскажите такую штуку.
Как в SeleniumWebDriver делать прокрутку страницы ?
Именно что бы страничка неспеша так скролила вниз?
А то что то не выходит найти инфы.

Или все делать через JSExecutor ?
Аноним 20/01/21 Срд 13:29:36 191620168
>>1916182
блин, вообще прикольно
а если не секрет, тебе сколько лет? Ты работаешь юнити прогером сейчас? или только проектные истории?
Аноним 20/01/21 Срд 13:47:04 191621469
U11.webm 24580Кб, 1680x966, 00:00:15
1680x966
>>1916201
уравнение навье стокса вообще клево! смотришь на такое и техномагия какая-то! жаль довольно поверхностно знаю. то на что можно убить пару лет и не заметить. и мало практического применения имеет, не пропорционально тому времени которое требуется на него.
мне тридцатник уже. вкатывался в погромирование лет 8 назад без каких либо скиллов на энтузиазме. сейчас я не работаю, скорее возвращаюсь к погромированию после продолжительной хандры от навалившихся проблем.
надо наверно доделать уже пару фич для навмеша, подучить пару вещей, да завести свой проект.
Аноним 20/01/21 Срд 14:08:21 191623770
>>1916214
а, типа хобби
ну прикольно
Аноним 20/01/21 Срд 16:56:34 191638771
>>1916180
>otdatgribi
>vernutsavderevnu

Я так понимаю "не быть говноделом" это не про тебя.
Аноним 20/01/21 Срд 16:57:36 191638872
>>1916214
Почему пикрил не использовать как карту высот для симуляции воды? Пробовал так делать? Или слишком медленно вычисляется?
Аноним 20/01/21 Срд 20:18:07 191658373
Сап систерс. Пишу сайтец на асп коре и пришло время забацать регистрацию пользователей, буду использовать очевидный айдентити. Cтандартный IdentityUser<T> предоставляет набор членов за щеку, половина из которых мне нахой не нужны. Вопрос стоит ли пилить кастомный UserStore или пусть болтаются пустые колонки в бд?
Аноним 20/01/21 Срд 20:21:35 191658874
И еще вопрос вдогонку, почему стандартные IdentityUser/IdentityRole используют в качестве ключа строку, а не int/guid? В этом есть какой-то сакральный смысл? Случиться ли что-нибудь плохое, если в качестве айди я поставлю инт с автоинкрементом?
Аноним 20/01/21 Срд 21:20:59 191663875
>>1914683
Еще раз извиняюсь - а какой тип свойства/поля в вм мне юзать?
Аноним 20/01/21 Срд 22:19:02 191671276
А, все - интеджер, пиздец я туплю.
Аноним 20/01/21 Срд 22:40:37 191672977
Сап, в вузе учусь на 2 курсе, у нас с# преподают (ща прошли делегаты события асинхронные функции и потоки (ну как прошли, так не глубоко))
В итоге решил вкатиться полностью в с#, поясните насколько он перспективен если сейчас учить - смогу я норм работу найти - чтобы при этом не скучную? (как я понял самое скучное это легаси поддерживать - на сколько в с# плохо с этим?)
И еще пытался вкатиться в frontend - не зашло, но что-то как я понял если в с# вкатываться то все равно в итоге придется скорее фулстеком быть??
Аноним 21/01/21 Чтв 01:47:45 191678278
Аноним 21/01/21 Чтв 02:42:00 191678879
>>1916729
>на сколько в с# плохо с этим?
Всё плохо, особенно если попадешь на проект который писался на винформс. При этом сам язык и платформа хорошо развиваются, ты смотришь на эти отчеты об улучшениях и облизываешься, потому что на работе у тебя .Net Core и пахнуть не будет, если попадешь на 4.5 фреймворк - считай повезло.
>вкатываться то все равно в итоге придется скорее фулстеком быть??

Так и есть. Если хочешь работать с современным шапром, то должен шарить в JS + HTML + Angular/React в качестве фрона и ASP NET, EF, SQL, Identity, SignalR в качестве бэкенда. Можешь всё перечисленное прям сейчас уже учить, упор делай на SQL и ASP NET.
Аноним 21/01/21 Чтв 04:38:39 191681280
U - Sand.webm 31845Кб, 1680x966, 00:01:14
1680x966
>>1916387
кекеке. вообще я делал это на стриме, так что особо не заморачивался с именами. хотел чтобы ИИ ходил в лес за грибами! если интересно, но непонятно то на скриншоте в целом тот-же сорт ИИ как в FEAR. довольно клёвый планировщик. https://en.wikipedia.org/wiki/Stanford_Research_Institute_Problem_Solver состояние мира описывается как набор bool, каждое действие имеет прекондицию и то как оно меняет флаги в состоянии мира. а поиск заключается в изменении представления состояния мира пока оно не достигнет целевого.
хорош тогда когда пулл действий должен быть максимально динамичным, так как связи между действиями описаны в прекондициях к ним. можно вешать пулл действий прямо на предметы в мире, например. а в качестве целевого сосотояния использовать какую-нибудь эристику. как в симсах например. хочет срать - роется в планировщике в поиске способа посрать.

>>1916388
карту высот? имеешь в виду что красное = количество воды? так себе идея. между водичкой сверху и газиками снизу есть разница в способе перемещения их. водичка перемещается вариацией https://en.wikipedia.org/wiki/Shallow_water_equations там есть интересный шаг который исключает "потерю" воды при перемещении так как перемещаться она может только в соседние клетки. там где красный дым там просто берётся отрицательный вектор движения для текущего пикселя и смотрит чё там с помощью билинейной интерполяции. синее это очень сильно увеличенная зона где "длина" векторов различается и соответствует повышенному давлению (там есть пониженное, просто оно не отображается тут), зелёное это то где направление различается и оно делает завитушки. изначально хотел сделать такое в несколько слоев и использовать для атмосферной симуляции. чтобы облака были похожи на настоящие! но немного не оценил масштабы проекта. там где водичка землю размывает кстати применяется комбинация обоих методов. эрозия размягченной земли перемещается как красный дым. эрозия под действием гравитации это уже вода где не сохраняется инерция. видеорелейтед.

ну а производительность то что. оно на гпу обрабатывается же целиком. это шейдор. верней конкретно это вычислительный шейдор. https://docs.unity3d.com/520/Documentation/Manual/ComputeShaders.html с клевым API. гпу такое проглатывает и даже кулерами гудеть не начинает.
Аноним 21/01/21 Чтв 11:34:23 191699881
>>1910324 (OP)
Есть ли какой-то символ, который выглядит похоже на косую черту типа "/", но на самом деле ей не является и допустим для использования в именах переменных и т.п. Мне нужно не расстраивающее мои чувства о прекрасном написание в енумах вещей типа kg/m3, например kg⳺m3 (не работает, т.к. не допустимый символ).
Аноним 21/01/21 Чтв 12:05:08 191701082
>>1916788
Это похоже какая-то проблема исключительно шарпистов, потому что к бэкендерам на других языках таких требований не предъявляют.
Аноним 21/01/21 Чтв 12:13:26 191701583
>>1917010
Пчел, я пыхо-джун и на работке заставили реакт с тайпскриптом учить. А вообще на западе фулстек это тренд уже пару лет как, вакансий чистых бэк/фронт у них все меньше становится.
мимо
Аноним 21/01/21 Чтв 13:12:39 191704084
>>1916998
Вот что нашел: Ⳇ и ⳇ. Это коптский алфавит.
kgⳆm3 - валидный енум.
Аноним 21/01/21 Чтв 13:20:22 191704785
>>1916812
> карта высот
Не, имею в виду, что красное - это высота. Естественно я не о полной симуляции воды, я больше про волны, например от интерации с персонажем.
Аноним 21/01/21 Чтв 14:12:47 191708786
>>1916172
Кастомные nuget каналы устанавливал? Можно проверить в nuget.exe sources, удалить лишнее
Аноним 21/01/21 Чтв 15:46:56 191717087
Screenshot 2021[...].png 81Кб, 2050x622
2050x622
>>1917087
Хмм, а действительно, нашел в AppData\Roaming\NuGet в конфиге ссылку на этот рослин.
Я когда-то ставил опции для разработки расширений для вижуал студии, видимо они туда этим насрали.
Аноним 21/01/21 Чтв 19:49:18 191743588
Я с нуля, скачал visual studio, смотрю видео уроки, как подсказки (интелселс?) На русском сделать? И как посмотреть на какой платформе создал проект? На видео там видно как выбрать можно, но там 2017 года VS, а у меня 2019, ничего не видно, не было выбора, сразу автоматом прошло
Аноним 21/01/21 Чтв 22:09:38 191755789
>>1916998
>>1917040
Еблан, ты о других людях подумай, которые твой код потом будут поддерживать. Не все, блядь, в студии кодят, не все используют всякие приблуды при написании кода, та и тупо при сохранении твоего кода в ASCII-кодировку пизда прийдет твоим символам.
Как человек пиши: kgPerCubicMetre, это и набирается легко и найти легко и запомнить легко и выглядит отпрятно. Нет, сука, нужно извратиться, чтобы потом никто нахуй не мог, если ему нужно, найти то что ему нужно.
Давай, ебани еще иероглифов в код, хули, шарп-то позволяет на любом языке писать. А для пущего эффекта - называй классы на русском, чтобы все знали какой ты молодец и постоянно раскладку меняли.
Отвратительно, нахуй. Пидорасу неприятно, а тем кто потом будет 3 часа нужную переменную напечатать - будет охуеть как приятно.
Аноним 21/01/21 Чтв 22:58:29 191758590
Практическая20р[...].png 98Кб, 2985x2285
2985x2285
>>1917557
Я ожидал такую реакцию, и я понимаю её, как программист, если оторваться от предметной области.
Я попытаюсь объяснить свою позицию, и хотел бы услышать мнения на этот счёт.
Для читаемости кода, краткость и лаконичность, а также привычное написание известных физических и математических сущностей - превыше всего.
kgPerCubicMetre - это очень длинно. А ведь есть ещё кг/м/с2 или Дж/К/моль. Это ещё длинней придётся так писать. Если таких вещей полно, это абсолютно нечитаемо.
Я ведь есть ещё физические формулы. P = ρ g H - это понятно, легко и читаемо. А вот это: pressure = density accelerationOfGravity height уже в таком простом примере читается тяжело. А если формулы длинные? Намного более длинные? А если код целиком состоит из обилия формул? Мне кажется любители латиницы и длинных верблюжьих названий не писали физических и инженерных приложений, иначе бы они так не думали. И да, есть некоторые термины, которые применяются в российской инженерной практике, которым нет прямого эквивалента на английском. В результате этого одно и тоже понятие в коде разных авторов называется совершенно по разному (в меру знаний английского и понимая предметной области теми или иными кодерами). В таких случаях я также настаиваю на написании имён переменных именно русскими буквами, именно так, как она называется в пост-СССР. Я кстати видел код своих немецких коллег, так вот у них использование немецких названий переменных немецким алфавитом - это норма, подозреваю, по тем же причинам.
Очень печально, что С# не имеет отдельного оператора для возведения в степень.
Аноним 21/01/21 Чтв 23:07:42 191759091
>>1917585
все идентификаторы должны быть однобўквенными.
каждая бўква - отдельный идентификатор.
зачем вообще многобўквенные идентификаторы?
как бўдто бўквов мало, полный юникод бўквов.
а кому мало бўквов, тот может юзать эмодзи.
Аноним 21/01/21 Чтв 23:16:53 191759792
>>1917585
Лол, няша. Программисту это удобнее для чтения. Потому что программисту - собственно похуй что за этим стоит, он на тестах проверит, что результат тот что нужно. Важно чтобы эта переменная легко запоминалась. И как раз kgPerCubicMeter - запоминается легко, а имя достаточно уникально, чтобы сразу найти место где оно используется.
Программисту до пизды что там за предметная область, какие законы там стоят и прочее - для него это просто данные в памяти, байтики, нахуй, ему нужно их посчитать, передать куда-то еще, потом сохранить или показать результат. Важно, чтобы можно было нажать ctrl+f и сразу найти то что нужно тебе, а не еабться с тем что формула красиво выглядит, до пизды как выглядит в тексте программы, тем более что программист это в первую очередь тот кто программу пишет, а не тот кому есть какое-то дело до предметной области, на фронте уже нарисуют как надо тем кто этим пользоваться будет. Тебе важно, чтобы в 100500к строках кода - ты без труда мог нати то что тебе нужно, для этого и придуманы стандартные нотации, для этого и придуманы стандартные структуры файлов, для этого и пишется velocity = velocityPrevious + (acceleration time); вместо v=v0+at, чтобы ты не зная что, блядь, за v - мог понять что это такое, Тебе завтра скажут вместо физических величин - писть ПО для банка, послезавтра - для роботов, а потом - для самолетов, и ты должен писать быстро, иметь возможность найти то что нужно, ты не на уроке, блядь, где вы зазубрили формулы и дрочите задачки, ты, сука, программист, нахуй, эксперт во всем, и чем меньше ты создаешь сложностей себе и коллегам - тем тебе проще.
Аноним 21/01/21 Чтв 23:28:27 191760293
>>1917597
>найти место где оно используется
Вот тут не очень понял в чём сложность. Если используешь студию, то она сама всё подсветит, или ты о том, чтобы просто найти все переменные во всём проекте, имеющие подобное название? Но тогда не понятно, зачем это. Если не используешь студию, ну ты сам себе злобный буратино.

>чтобы ты не зная что, блядь, за v - мог понять что это такое
Для такого существует ридми, документация, на худой конец в заголовке файла в комменте освятить основные сокращения, например.

>завтра скажут вместо физических величин - писть ПО для банка, послезавтра - для роботов, а потом - для самолетов
Ну это уже макакинг. Там где предметная область не нужна для таких кодеров будет внешний рафинированный интерфейс, за который ему и лезть не стоит.
Аноним 21/01/21 Чтв 23:51:30 191764394
>>1917602
> Вот тут не очень понял в чём сложность
Допустим, у тебя проект чуть до среднего не дотягивает, скажем 60к строк. Ты только пришел, тебе говорят: Скорость неправильно считается, пофиксь, пожалуйста. Как думаешь, вот лично тебе будет интересно ковыряться в 60к строках кода в поиске места где твоя переменная находится, ведь нормальным поиском - ты не можешь ее найти, т.к. v не такая и редкая буква, а где что лежит - не знаешь, ты же только на проект пришел. Думаешь тебе кто-то специально в ридми напишет: "Мы рассчитываем скорость в таком-то файлике на такой-то строке"? Да нихуя. И как раз если бы оно нормально называлось - ты просто жмакаешь ctrl+f и пишешь velocity - все, ты нашел все места где оно встречается, за 10 минут прошелся - нашел баг, пофиксил, пошел пить кофе и мацать за жопу практикантку, которая очень хочет научиться программировать и просит тебя, скиллового чела, что баг за 10 минут пофиксил - после работы научить примудростям, а если в проекте используется всякая хуета вида v=a+b+c - ты будешь неделю только вникать где что лежит и как сделать так, чтобы нахуй не поломалось все.
> Для такого существует ридми, документация, на худой конец в заголовке файла в комменте освятить основные сокращения, например.
Да, ты ведь каждую переменную в ридми записываешь, а внутри метода каждую строчку сопровождаешь комментарием, когда тебе нужно за день 10 тасков закрыть, конечно, заняться больше нечем. Действительно, зачем написать название переменной, которое всем понятно - если можно высрать комментарии. 11/10 решение, ничего не скажешь.
> Ну это уже макакинг.
Это обычная такая реальность разработки. Вы - крутые спецы, клиенты знают что вы делаете быстро и качественно, а берете меньше чем в европах/сша кодеры, сегодня к вам клиника стамоталогическая обратилась, нужно софт для ведения карточек пациентов сделать, чтобы в них хранились 3d сканы челюсти и было удобное мобильное приложение, чтобы можно было эксперту скинуть и он удаленно мог провести диагностику; завтра фирме грузоперевозок понадобилось программу, которая будет считать время водителей в пути и прокладывать оптимальный маршрут с интеграцией со всякими картами, местными сервисами и т.д. Сидеть и дрочить одну специфическую область программисты даже в конторах которые занимаются продуктом не могут: тут конкуренты прикрутили стриминг - нужно и нам скорее; появилась охуенная платежная система - скорее нужно и нам; менеджеры по продажам говорят что мобилки рулят - нужно скорее наш софт на мобилки переносить; нам срочно нужно CI/CD организовать и теперь все dev's внезпрно превратились в devops'ов. Кучу хуйни приходится учить ежедневно, куча хуйни меняется, выходят еще и новые технологии, которые ты должен учить, чтобы быть крутым спецом и запоминать как в предметной области X называется какой-то термин, тем более через, допустим, 2 года - ебантизм, ты не всю жизнь будешь вот эту вот хуету писать.
Аноним 22/01/21 Птн 06:42:52 191779795
>>1910326
Как вывести 500кк $ через битки в валюту в расии?
Аноним 22/01/21 Птн 08:54:22 191783696
water.webm 4095Кб, 1680x966, 00:00:31
1680x966
>>1917047
вопрос масштабов же. можно же например как в fishing north atlantic просто бултыхать водичку рядом не меняя её реальный уровень.
вообще опять же метод с газиками годится больше для газиков. так как само перемещение векторов там происходит за счет зон давления, которые чтобы получить надо много итераций (на том видео кажется 30). если давление не нужно то и сам метод не нужен.
для водички как например на этом видео достаточно 2. одну чтобы посчитать статическое давление, приплюсовать энерцию и сколько максимально воды может переместится из клетки. а вторую чтобы посмотреть сколько воды переместилось в эту клетку. если хочется почитать то я ориентировался в основном на этот текст. https://hal.inria.fr/inria-00402079/document "Fast Hydraulic Erosion Simulation and Visualization on GPU"
помню натыкался на более крупный текст про водичку в играх вообще... а во. https://trepo.tuni.fi/bitstream/handle/10024/115052/kellomaki_1354.pdf "Large-Scale Water Simulation in Games" там уже больше методов рассматривается.

хотя вообще всё это в играх конечно имеет довольно маленькое применение. наверно только в From Dust это было главным элементом геймплея.
Аноним 22/01/21 Птн 11:56:41 191792097
>>1917015
Одно дело, когда на работке заставили учить, другое - когда изначально требуют все.
Аноним 22/01/21 Птн 14:00:50 191801898
Вопрос от вкатуна говорю сразу.
Где вообще брать задания на этапе изучения синтаксиса? Когда я учил Пайтон по книге Гэддиса и Java по Эккелю, там для каждой главы были задания, благодаря чему я мог глубже осваивать материал.
Есть какие-то ресурсы или книги для вот такого вот комплексного изучения языка?
Аноним 22/01/21 Птн 14:04:09 191802199
>>1918018
Т-есть само изучение понятно - доки, книги разные, курсы. А задачки, по типу лаб из универе для закрепления тем, где брать?
Аноним 22/01/21 Птн 19:03:46 1918262100
>>1918021
Я какое-то время смотрел сайт с олимпиадными задачками. Сортировал их в порядке, начиная от задач для дебилов. Там реально простенькое было, но не привязанное к языку.
А вообще, если ты где-то работаешь, лучше находи проблемы из своей практики, пусть даже мелкие совсем, и для них что-то пили.
Я вот на зеленом старте пилил себе формочку с БД для вноса ежедневных трат по категориям и с возможностью вывода статистики по различным временным периодам.
Аноним 22/01/21 Птн 19:55:05 1918311101
>>1918018
Берешь кодфорс или кодворс или любой другой ресурс, где задачки можно решать, решаешь, закрепляя таким образом синтаксис.
Другое дело, нахуя тебе разные книги по разным языкам читать, блядь? Ты смотришь вакухи - смотришь что надо для работы - дрочишь за месяц и идешь работать. Все, блядь. Я хуею. Я вот ебалн из универа, нам дали базу на первом курсе, но прогать на чем-то кроме ассемблера, С и С++ не давали осбо. Ну и хули, я смотрю, нет вакух по С и С++, потом смотрю в карманы, денег нет, а тяночка хочет жрать, хочет шмотье, ну и хули, пробегаюсь по джаве и через месяц я уже - на испытательном сроке, через 2 недели - в штате и работаю, потихоньку приношу пользу, через год меня заебала джава и я так же с СРешоткой поступил, но сразу на мидла заскочил.
Я хуй знает че вы там учите с синтаксисом эти, 99% языков - сиподобные, тебе просто нужно знать что к тут чтобы получить доступ к члену класса - ты используешь . тут ->, все, блядь, дальше просто пишешь алгоритмы, гугля иногда инструментарий что есть в языке, ну и пишешь так чтобы твой код другие люди понимали. Все, нахуй.
Опять же, ХЗ, может быть я какой-то аурой обладаю, но ни разу меня на собесах целенаправленно не валили, ни разу не ебали кишочками, чтобы прямо знал как там в память все укладывается, ни разу не ебали сверх меры алгоритмами, просто пришел, показал диплом, показал регалии(ыыыы, ездел в Испанию на стажировку, брал места на олимпиадах, дипломчик красненький, статьи - цитируют): Можешь сделать? Могу! Покажи гит - показал, оки-доки, мы пока доки подготовим, используем то-то и то в разработке, поддрочи чтобы как вышел - работать нормально мог. Все, блядь. Иду - дрочу, потом работаю. Короче, хз в чем у людей сложности.
Аноним 22/01/21 Птн 20:20:39 1918332102
Почему в WPF'e MediaElement может не показывать видео? Никакого ексепшена, просто ничего. Пробовал avi/mp4.
Код:
MediaElement.Source = new Uri("pack://application:,,,/папканейм/1.avi");
MediaElement.Play();

В xaml'e пробовал ковырять LoadedBehavior, тоже ничего не дало.
Аноним 22/01/21 Птн 20:41:34 1918353103
А, все, я нашел что он не выбрасывает эксепшн, а есть MediaFailed. Там он мне написал что он не сапортит ресурсы с билда, а только реальные файлы.
Аноним 22/01/21 Птн 23:57:51 1918575104
>>1918311
>просто пришел, показал диплом, показал регалии(ыыыы, ездел в Испанию на стажировку, брал места на олимпиадах, дипломчик красненький, статьи - цитируют): Можешь сделать? Могу! Покажи гит - показал, оки-доки, мы пока доки подготовим, используем то-то и то в разработке, поддрочи чтобы как вышел - работать нормально мог. Все, блядь.

Ты же понимаешь, что тебя легко берут как раз за это? У тебя есть вышка, петпродежкты, стажировка не в СНГ. Этого почти ни у кого нет, максимум вышка задрищенского политеха и скудные знания.
Аноним 23/01/21 Суб 00:03:52 1918587105
>>1918575
Хз как вообще работу без стажировки найти можно. Даже как на ебаную стажировку записаться не понятно, если на .Net, три стажировки на весь dou
Аноним 23/01/21 Суб 00:22:05 1918628106
>>1917170
ну теперь через nuget.exe (вроде ещё через командную строку разработчика) удаляй.
Вообще нугет в этом плане странная штука, если он не может получить пакет в одном сурсе, в другой он не ломится
Аноним 23/01/21 Суб 00:29:23 1918637107
>>1918311
>смотрю в карманы, денег нет, а тяночка хочет жрать, хочет шмотье
блеванул с бетабаксера
Аноним 23/01/21 Суб 12:00:22 1918943108
Аноним 23/01/21 Суб 12:42:31 1918964109
.jpg 912Кб, 2132x1600
2132x1600
Тупой вопрос.
Смотрите, у меня есть контроллер апишный, в него должно постучаться устройство со статическим IP, я должен сохранить информацию и IP с которого стучались, потом переодически что-то с этим делать, например смотреть не отклоняется ли время устройства сильнее чем должно и корректировать, если отклонилось.
Так вот, в чем хуйня. Я думал просто брать IP с помощью context.HttpContext.Connection.RemoteIpAddress, но хуйня в том, что таким вот макаром на моем ПК откуда-то берется IPv6 адрес, который, как я понимаю там где-то маршрутизаторами получается(я не настолько хорошо за сеть шарю пока что, но я знаю точно адрес устройства и он в формате IPv4), а на другом компьютере IPv4, но внутри локальной сети, а не тот что реальный и как-бы доступен всем. Я посмотрел с помощью Dns.GetHostAddresses() адреса и среди них есть тот, который я заведомо знаю что устройству принадлежит, только вот как быть уверенным какой брать? Вдруг в следующий раз нужный адрес будет 6м?
Вообще, кто-нибудь с такой вот хуйней сталкивался? Как это работать должно? Может быть сохранять все адреса разом и по ним простукивать?
Аноним 23/01/21 Суб 12:50:10 1918971110
Шарпач, прости, я понимаю,- вопрос идиотский. Я даже синтаксиса толком еще не знаю, но я уже два дня туплю над методами. Как и куда уходит Ruturn метода? Как достать то его, как вызвать? Смотрел в книги, увидел фиги. Как передать в метод что-то я вроде понял, но полученный ретурн то как в мейн вписать?
Например:

Static string ОдинПлюсДва (_первое, _второе)

return _первое + _второе;


Static void main

a = 2;
b = 2;

ОдинПлюсДва(a , b) //Я ведь правильно передаю параметры в метод?

Консоль.показать(???) Как мне результат то где взять что? Мне ruturn метода ОдинПлюсДва сюда надо. Где значение того что вернулось то взять?
Аноним 23/01/21 Суб 13:07:11 1918983111
>>1918971
Смотри, для начала можно думать так: Когда ты вызываешь метод, компилятор на самом деле - подставляет туда, откуда ты его вызываешь весь метод. Вот. Таким образом, допустим, твой метод:

string Combine(string a, string b) => a+b;

это все равно что если бы ты вместо метода везде писал то что в нем происходит.

Чтобы получить результат, ты, в зависимости от того что метод возвращает, используешь переменную.

Т.е. в твоем примере ты должен был бы так вот сделать:

int c = ОдинПлюсДва(a , b)
Аноним 23/01/21 Суб 13:11:38 1918988112
>>1918971
Да, насчет последнего. Не всегда обязательно явно переменную использовать чтобы результат использовать.
В твоем примере ты мог бы делать и вот так, например:
a = 2;
b = 2;
Консоль.показать(ОдинПлюсДва(a , b));

Так делать нехорошо, конечно, но когда дойдешь до Linq и Fluid'ов то там, в принципе так вот и делается зачастую.
Аноним 23/01/21 Суб 13:15:49 1918991113
>>1918983
Да, тут не int нужен для сохранения результата, а string, просто не обратил внимание на сигнатуру. Думаю это и так понятно, но на всякий случай уточнил.
Аноним 23/01/21 Суб 13:57:05 1919016114
336725290011201[...].jpg 329Кб, 2896x2896
2896x2896
>>1918983
>>1918988
Пасиба, ананасик. Вроде яснее стало.
Я не понимал, что получение результата метода происходит в момент когда ты передаёшь методу параметры (а из метода мейн в _первое в метод ОдинПлюсДва и б из мейн во _второе в метод ОдинПлюсДва. Потом тут же отдаёт результат.
Как на твоём примере с переменной, новый метод при вызове из mein сразу получает параметры, сразу их считает/выполняет код и сразу возвращает, присваивая их в переменную "int c".
Надеюсь я правильно представляю всё это. Во всех мануалах это подается как само собой разумеющееся.

У меня почему-то изначально всё представлялось как по строкам кода. Сверху вниз

Отдали параметры. Результат посчитался;
//
они где-то там висят в памяти* в какой-то несуществующей переменной куда их записал return
Обращаемся когда захотим к результату;
Задаём другие параметры если надо.

Не пришло в голову, что результат нужно где-то хранить самому и самому объявлять где.
Спасибо еще раз.
Аноним 23/01/21 Суб 13:57:55 1919018115
>>1919016
Даже тут проебался с разметкой, извиняюсь
Аноним 23/01/21 Суб 14:16:11 1919035116
251[1].gif 57Кб, 2421x1700
2421x1700
>>1917643
>вот лично тебе будет интересно ковыряться в 60к строках кода в поиске места где твоя переменная находится, ведь нормальным поиском - ты не можешь ее найти
Краткие обозначения используются внутри методов. Классы и методы конечно должны иметь самодокументирующие названия.
Ну и твой пример скорее в мою пользу. Если скорость неправильно считается, но считается она сложно, то когда формулы записаны символьно, ты хотя бы можешь их прочесть, сверить с исходниками (статьи, учебники, тех. документация) и увидеть ошибку. Если же формулы записаны по-программистски (с длинными именами переменных, и выносом каждого микровычисления в отдельный метод), то ты никогда в этом не разберёшься, только заново переписать все вычисления.

>Да, ты ведь каждую переменную в ридми записываешь
Ну ты перегибаешь. Комментарии почти всегда нужны, в любом коде.

>Это обычная такая реальность разработки.
Обычная практика такова, что все более менее крупные специализированные компании (банки, нефтяники, медики, с очень узкой специализацией от разновидностей стоматологов до хирургов, военные и т.п.), которым нужен свой софт, БД или автоматизации, имеют своих программистов, которые либо пришли из математиков и АСУ ТП в предметную область, либо наоборот, дополнили предметные знания навыками кодинга. А то, о чём ты говоришь - это сайтошлёпство и обезьяний бигдата+машоб на корзину для пускания пыли в глаза акционерам.
Аноним 23/01/21 Суб 18:39:02 1919288117
1.jpg 93Кб, 800x790
800x790
2.jpg 90Кб, 1000x699
1000x699
Дурак спрашивающий выше про методы, репортинг ин свой новый затуп. (Решение своего затупа тоже рапорчу).
Хотел тут спросить, но пока спрашивал сам допёр.

Вот из-за этой херни целых джва часа тупил тормозил. Метод возвращал Int вместо Int[], пиздосье. Массив интов и инты, это оказывается разные типа. Я весь гугл излазил, не понимая в чём дело.
Аноним 23/01/21 Суб 18:55:31 1919291118
>>1919288
Малорик, так держать!
Аноним 23/01/21 Суб 22:56:02 1919446119
>>1919288
Такие сильные затупы гугл не решает. Читай внимательнее матчасть.
Аноним 23/01/21 Суб 23:19:51 1919487120
>>1919446
C# Player's guide из шапки довольно плохо объясняет в этом плане, учусь по нему.
Думаю его сначала проглотить, даже если что-то не пойму и не смогу задания выполнить. Потом уже к мелкомягким за сухими мануалами полезу
Аноним 23/01/21 Суб 23:21:27 1919492121
Ребят, как запилить, чтоб во фрейме при переходе между страницами значок загрузки был, пока расчеты производятся?
Аноним 23/01/21 Суб 23:35:52 1919510122
.png 14Кб, 498x330
498x330
>>1919288
Вообще, конечно наверное не обязательно тебя таким сейчас заебывать, но я бы советовал как-то так вот читать пользовательский ввод. Все же лучше, чем рассчитывать, что пользователь все правильно введет сразу, даже если этот пользователь ты.
Аноним 24/01/21 Вск 00:17:43 1919587123
Подскажите как реализовать такое:
Есть while(true){} в котором работает основная логика хочу в нее что-то типа менеджера задач чтобы в каждой итерации проходила работа по всем задачам, НО вот тут начинается загвоздка, я хочу иметь возможность в задаче написать что-то типа
stopwatch.Elapsed > 10 sec остановись и дай поработать другим, а на следующей итерации продолжишь.
И все это работает в 1 потоке.
Вот в остановись и дай поработать другим, а на следующей итерации продолжишь. у меня проблема, не понимаю как это вообще релизовать. Так же хотелось бы не просто говорить на следующей итерации, а типа жди Х события или Х секунд или пока тебя не запустят.
Аноним 24/01/21 Вск 00:43:49 1919618124
Аноним 24/01/21 Вск 00:51:48 1919623125
>>1919618
Пытался разобраться с этим, но не понял как это сделать.
Вот есть у меня 10 задач на парсинг чего-то огромного что займет по часу времени, плюс надо постепенно закидывать мелкие задачи чтобы они тоже отрабатывали как это на авэйте сделать?
И мне именно надо на 1 потоке, потому что крутить программу я хочу на мелком сервере и занимать на нем ровно 1 поток чтобы остальное что на нем крутится не тормозило.
Аноним 24/01/21 Вск 00:51:54 1919624126
>>1910324 (OP)
Анон, есть пара вопросов по github-репозитариям.

Вот, значит, на github'e, там - есть репозитарии всякие,
например этот https://github.com/JamesNK/Newtonsoft.Json
и там, в Releases - https://github.com/JamesNK/Newtonsoft.Json/releases
есть версии различные, и можно скачать их код в zip-архивах,
например, эта версия, которая успешно компилируется в Visual Studio 2010: https://github.com/JamesNK/Newtonsoft.Json/releases/tag/7.0.1
Там, внизу, есть ссылка: https://github.com/JamesNK/Newtonsoft.Json/archive/7.0.1.zip
И если кликнуть на тег, можно видеть этот вот код: https://github.com/JamesNK/Newtonsoft.Json/tree/7.0.1
с последним коммитом 20cc266, то есть 20cc266712a3b361358e1e35ae87518ecf8e0dfd .
Если кликнуть на Branches, то такого бранча, v7.0.1 нет, но рядом есть вкладка Tags, и там эта версия есть, и код доступен - по тегу.

Пусть теперь, я хочу качнуть код именно этой версии. Как это сделать?

И ещё...
Пусть есть репозитарий, в котором этот код является подмодулем.
Как в .gitmodules включить именно версию v7.0.1, чтобы не качать весь исходник и не заливать его снова. Там около 1000 файлов, блядь, не хотелось бы раздувать репу. Может можно как-то попроще, что-то вроде:

>[submodule "имя"]
> path = папка
> url = https://github.com/user/repo.git@версияЕбать.
Аноним 24/01/21 Вск 00:54:44 1919625127
>>1919624
И ещё, можно ли как-то форкнуть репу с определённой версии, чтобы на форк сослаться в .gitmodules, а не на основную репу, где продолжаются изменения???
Аноним 24/01/21 Вск 01:15:31 1919631128
.png 7Кб, 365x288
365x288
.png 13Кб, 397x350
397x350
>>1919587
Ыыыыы))))
Тока эта, ты там вместо такого вот - проверки делай своего времени и сбрасывай таймер после yield, вот.
Ну или можешь погрузиться в прекрасный мир прерываний, тоже тема.
Аноним 24/01/21 Вск 01:23:21 1919632129
>>1919624
По-мойму, через две точки, после URL, надо указать то ли версию, то ли огрызок хэша коммита. Но это не точно.
Аноним 24/01/21 Вск 01:49:15 1919634130
>>1919631
Окей, тогда как теперь решить вопрос с try-catch ?
Можно конечно же писать их между yield, но это же пиздец АД.
Плюс слышал что так делать нельзя, типа антипаттерн использовать yield для такого.
Аноним 24/01/21 Вск 02:09:35 1919641131
>>1919510
Ага. Спасибо. Я остальное то вроде усвоил. Дальше только зажать нос и нырять в раздел книжки ООП.
Там у меня чисто для себя чтоб понять методы образец. Я просто не понимал почему ретюрн отказывается возвращать. Пытался и его как-то конвертировать, думал может каждый индекс массива нужно отдельно доставать в новую переменную, а потом обратно собирать в массив.
Там у меня в посте было просто максимально коротко чтоб ясно изложить свой затуп.
Там у меня требуется ввести количество элементов в массиве.
Можно запрос на ввод и в методе организовать наверное. Хотел себе позже много-много методов сковать и в каждом каждый запросить. Чтоб прям стресс тест себе устроить.
Надо конечно наверное сразу приучать себя проверять ввод на правильный возврат с консоли. Но я слишком начинающий еще, едва только циклы усвоил. Если сущностей наплодю потом, то конечно более подробно буду описывать вызов и консолей и исключения обрабатывать.
Спасибо за совет
Аноним 24/01/21 Вск 04:36:16 1919683132
Аноны, У меня есть страница, с путем ""Account/OnPostRegisterAsync", при вызове должна регистрировать пользователя, я скопировал этот код в другой проект и там он не работает с атрибутом [ValidateAntiForgeryToken] jquery подключен, в чем может быть дело?
Аноним 24/01/21 Вск 11:11:57 1919810133
пример.jpg 164Кб, 1591x584
1591x584
Работаю с Excel через C#. В связи с этим возникает вопрос, как правильно работать с COM-объектами из C#?
Почему C# сам не может нормально собирать COM-мусор, и мне приходится на кучу промежуточных объектов вызывать Marshal.ReleaseComObject(obj) ???
Самое простое известное правило - не использовать два оператора точки в одном выражении при работе с COM-объектами. Вот например, такая штука обычно оставит висячие ссылки на КОМ-объекты: Excel.Sheets sheets = app.Workbooks[1].Worksheets; .
Но и использование этого правила помогает далеко не всегда.

Вот например код из приложенной картинки без вызова Marshal.ReleaseComObject(books) оставляет висеть в диспетчере задач процесс Excel после закрытия приложения и всего, что с ним связанного. Хотя казалось бы, почему я тут должен маршала просить релизнуть объект?

Вызывать Marshal.ReleaseComObject() на всё подряд также нельзя. Вот почему:
Excel.Workbook b1 = app.Workbooks[1];
Excel.Workbook b2 = b1;
Инициализация переменной b1, а точнее, вероятно, вызов app.Workbooks[1], увеличивает счётчик ссылок на возвращаемый Workbook на 1. Но вот эта операция b2 = b1 не увеличивает счётчик ссылок. Поэтому если после того как b2 станет не нужна, если я сделаю Marshal.ReleaseComObject(b2), то b1 тоже будет освобождена и перестанет работать.

Конечно из всего этого можно примерно догадаться, как всё это работает. Но только догадаться.

По существу, я не могу надежно понять, когда счётчик ссылок на КОМ-объект:
1. приращивается автоматически?
2. когда он автоматически уменьшается? В норме релизить через маршал нужно далеко не всё.
3. когда он автоматически НЕ уменьшается после присвоения объекту обёртке значения null, и, возможно, отработки GC.
4. как узнать текущее значение счётчика ссылок на КОМ-объект?
Аноним 24/01/21 Вск 12:29:30 1919862134
>>1919810
>Работаю с Excel через C#.
используйте Delphi.
оно умеет прозрачно работать с COM еще с 90-х годов.
Аноним 24/01/21 Вск 14:13:52 1919934135
Скопировал первый пример 1 в 1 отсюда:
https://docs.microsoft.com/en-us/dotnet/api/system.object.finalize?view=net-5.0

Выводиться должно что-то типа этого:
> The example displays output like the following:
> Instantiated object
> This instance of ExampleClass has been in existence for 00:00:00.0011060
> Finalizing object
> This instance of ExampleClass has been in existence for 00:00:00.0036294

У меня же до Finalizing object не доходит и не выводится в консоль. Даже если ставлю точку останова в финализаторе, до неё не доходит. Почему так?
Аноним 24/01/21 Вск 17:04:30 1920050136
>>1919862
Хуя советчик нарисовался. А денех на дельфи дашь?
Аноним 24/01/21 Вск 17:42:59 1920081137
D15nDdIXQAARONJ[...].jpg 51Кб, 543x364
543x364
>>1919934
У меня всё работает, попробуй переустановить шиндоус.
Аноним 24/01/21 Вск 17:50:17 1920093138
>>1919810
Я никогда не работал с COM через C#. Но потребляю .NET код через COM в С++.

Допустим у нас есть COM visible класс типа Human в C# , при использование в С++, класс можно будет юзать через Human или HumanPtr, так вот HumanPtr - это смарт COM поинтеры, которые очищаются автоматически, а вот если юзать Human - то он останется висеть в памяти и чистеть надо вилкой. Как это разделение будет выглядеть через C# код - наоборот - не знаю.

Теперь, допустим у нас есть массив, какой массив у нас есть в COM? Я лично использую и знаю про SAFEARRAY. Так вот, даже SAFEARRAY наполнен объектами типа HumanPtr - он автоматически не обрабытвается, и нужно вызывать SafeArrayDestroy().

Так что, как мне представляется, твои books - являются SAFEARRAY объектами, которые не обрабатываются, и в C++ коде нужно было бы вызывать SafeArrayDestroy(books). Почему - не знаю, но я хорошо в лужу сел, когда выяснил что у меня память проливается c SAFEARRAY.
Аноним 24/01/21 Вск 17:52:34 1920097139
>>1920093
В рот ебал эту разметку.
Аноним 24/01/21 Вск 17:58:32 1920106140
>>1919810
А готовые библиотеки тебе религия использовать не позволяет?
Аноним 24/01/21 Вск 19:21:23 1920217141
Посоветуйте самый годный видеокурс на русском
Аноним 24/01/21 Вск 20:08:26 1920262142
Какую структуру использовать для поиска нужной ноды в дереве? Сейчас юзаю List с FirstOrDefault. Очевидно, что для такой хуйни лучше всего подходит Dictionary, но как у него с памятью?
У меня будет очень много словарей, у каждом из которых будет по несколько элементов чаще всего 1-3, но в некоторых может быть до ста где-то, подойдет ли для этого Dictionary?

гонять бенчмарки впадлу, да и с листом все норм работает, просто спрашиваю вашего мнения
Аноним 24/01/21 Вск 20:10:59 1920267143
>>1920262
Зависит от данных. Может у тебя там префиксное дерево можно использовать, а ты словари с листами хуяришь.
Аноним 24/01/21 Вск 20:16:05 1920272144
>>1920267
Я его и реализовал. Вопрос как раз в том, что использовать для хранения потомков.
[
Аноним 24/01/21 Вск 23:17:14 1920413145
Аноним 24/01/21 Вск 23:55:55 1920473146
>>1920413
А чем словарь хуже? В теории, он должен быть быстрее при поиске и добавлении опредленного слова.
Алсо, никто не знает оверхед словаря на перечисление всех key-value pair? На сколько он в этом плане медленнее листа? и медленнее ли
Аноним 25/01/21 Пнд 02:31:34 1920638147
Что думаете по поводу вката через OpenSource проекты или через
фриланс/аутстафф? Не хочу за бесплатно работать на конвеерной галере и слушать выебоны какого то прыщавого инфантильного долбоеба. Что имеется:
1. Опыт писания кода на # (около 2 лет) - ASP.NET MVC, Core (за WPF молчу - мервое говно);
2. Английский уровня B2+ (Общение, чтение);
3. Опыт в фронте (такой себе, но ковырял React, могу сверстать под адаптив или поправить, чтобы не наебнулось);
4. Нелюбимая, в тоже время не напряжная РАБотка под $800, на которой стал мертвым грузом и хочу перемен.
Реально залететь на проект и хотя бы за 300-400 американский рупий перенять опыт, носмотреть что и как с upwork или freelancer.com?
Делитесь опытом, кто через это прошел.
Аноним 25/01/21 Пнд 15:26:08 1921191148
>>1910324 (OP)
А как можно инжектить длл-ки в процесс с помощью шарпа? Есть какие-нибудь гайды нормальные?
Аноним 25/01/21 Пнд 15:48:04 1921223149
>>1920638
На проектах, с которыми удалось поработать, да и в смежных тоже, я какого-то засилия C# не увидел. В довольно крупной конторе, где я сейчас как контрактор работаю, от силы два три репа на C# из 200+. Язык хороший, инфраструктура тоже сейчас отличная стала (я имею в виду поддержку кросс-платформенности), только вот работы интересной походу нет нихуя.
Аноним 25/01/21 Пнд 16:03:17 1921251150
Я вот написал интерфейс для шахмат, лол, хочу запилить онлайн. Можно ли высрать сервак, на котором будет сайт с, например, регистрацией и ссылкой на скачивание, и который одновременно будет работать для передачи данных между игроками? И в какую сторону копать, чтобы заебись было как в нормальной разработке делают и максимально апнуть скиллы?
Аноним 25/01/21 Пнд 16:09:53 1921260151
image.png 39Кб, 1200x503
1200x503
Сап, двач. Поясните кое-что. Зачем нужна Иудей-Компиляция в C#
Я не троллю, я не тролль-джавист, я рил спрашиваю. Без наебала.

Тип зырьте, в чём вообще преимущество виртуальной машины над конпиляцией. Это кроссплатформенность. Один раз скомпилил, запустил где угодно.

C# это на 80% веб-петушня, круды-хуюды и прочий фуллстек анал.
За вычетом юнити девелоперов все пишут под винду и в visual studio. К чему вообще эта кроссплатформенность? На линуксе хоть и есть моно, но кривое и никто с linux сервером не будет бэк ебошить на C# когда есть Java.

Мобильная разработка мертва. Ксамарин мёртв. Universal Windows Platform мёртв. C# это язык для крудов. К чему эта кроссплатформенность? Просто чтоб какуджавы?

Аноним 25/01/21 Пнд 16:11:32 1921262152
>>1921251
>ссылкой на скачивание

Это шутка такая или ты правда думаешь, что в 2к21 кто-то будет качать дерьмо по ссылке?

>как в нормальной разработке делают

Вот так: https://lichess.org/source
Аноним 25/01/21 Пнд 16:15:09 1921263153
>>1921260
> Это кроссплатформенность

Это отсутствие необходимости управлять памятью в ручном режиме.

>Один раз скомпилил, запустил где угодно

Ну да, скомпилировал под 32 битные ARM системы, запускаешь на 64 битных Intel. Всё так.
Аноним 25/01/21 Пнд 16:17:51 1921266154
>>1921263
>Это отсутствие необходимости управлять памятью в ручном режиме.

Паясни. Разве ГК это только с виртуалкой бывает? Разве в ПЩ нет ГК?

> Ну да, скомпилировал под 32 битные ARM системы, запускаешь на 64 битных Intel. Всё так.

Нак нахуя? Ты же это всё равно будешь компилить под одну и ту же архитектуру винсервера?
Аноним 25/01/21 Пнд 18:47:20 1921482155
>>1920638
Думаю что хуйня.
Плюс, на сишарпе не так много вакансий, при этом в вузах его учат, т.е. ежегодно выпускается насколько тысяч студентов, среди которых многие довольно хорошо знают шарп, умеют кодить и при этом как раз готовы идти работать за еду первые пару лет.
Я эт к чему. А вот к чему: Либо переставай из себя целку строить и иди работать как есть, все равно в конечном-то итоге ЗП поднимут; либо вкатывайся в JS, там хоть конкуренция и больше, но средний уровень вкатышей наоборот ниже и если ты осилил шарпы, то уж как-нибудь, да справишься с тем, чтобы с вебпаком каким-нибудь разобраться да npm, а дальше будешь делать кнопочки да посылать запросики.
Аноним 25/01/21 Пнд 20:21:45 1921606156
>>1921260
Еще один чел, что в последний раз смотрел что такое шарп в 2005м?
Под линуксы уже давно есть неткор, а уже и нет5, весь бек шарповский сейчас пишут именно под него. Ну и довольно удобно, что код писать можешь на винде, а работать без какой либо ебли он будет одинаково и на линуксе.
Я даже малинку в качестве сервера для пет проектов использую и все работает.

А вот зачем его сделали на виртуалке в самом начале, в нулевых, когда он под был только под виндой, я понятия не имею. Мб просто хотели чтобы было как в модной на тот момент джаве.


> но кривое и никто с linux сервером не будет бэк ебошить на C# когда есть Java.
Хуя сказанул, на шарпе и пишут только потому что он лучше джавы. Если бы майки не протупили и сделали его сразу опенсорсным, вряд ли джаву вообще сейчас бы вспоминали.
Аноним 25/01/21 Пнд 20:30:36 1921618157
>>1921606
>на шарпе и пишут только потому что он лучше джавы

А в чем шарп существенно лучше джавы? Имхо, принципиальных отличий в лучшую сторону, кроме синтаксического сахара, почти нет. Ну дженерики сделаны по-человечески, да. И костылей меньше, работа с массивами, примитивами, коллекциями удобнее.

Но все это не так уж и критично на самом деле. Видимо поэтому вакансий на джаве больше аж в 2 раза в крупных городах.
Аноним 25/01/21 Пнд 21:12:52 1921680158
>>1921618
>Имхо, принципиальных отличий в лучшую сторону нет
А что это за такие принципиальные отличия? Шарп это не хаскель, а просто лучшая джава. Очевидно что в двух ооп языках, один из которых создавался как копия второго, много общего. Но писать то приятнее на шарпе и это факт. Не думаю что в джаве есть хорошие аналоги ef core, async/await или хотябы геттерам/сеттерам.
Код конечно и без этих вещей можно писать, но блять, кодить можно на любом тюринг полном языке и вопрос состоит лишь в том, где это делается приятно, быстро и удобно.
Аноним 25/01/21 Пнд 21:23:34 1921690159
>>1921680
Двачую этого Жака Фреско (кто понял - тот понял)
Аноним 25/01/21 Пнд 21:34:03 1921695160
A. Stellman, J.Greene - Head First C# 2020 года, как вводная книга по языку пойдёт? Мне Уитакера физически больно читать почему-то.
Аноним 25/01/21 Пнд 22:20:49 1921733161
Где ещё можно без SMS, регистрации, кармы и т.п., можно вот так просто, как тут задавать простые и тупые вопросы по шарпу?
Аноним 25/01/21 Пнд 22:42:20 1921754162
>>1921482
я писал на JS (react) - нормально, но без ООП это хуйня. Лучше уже жабу дрочить, если работу не найду. Так или иначе - C# мертв на всем, кроме веба, за бугром так то я вакансии видел, но н мидла требования конские, а джуны никому нахуй не нужны. Вот тебе и два стула.
По поводу работы на галере - это зашквар, ибо приходят готовые мидлы (возможно без опыта в интерпрайзе) и их мокают в говно первый год-два. У меня жопа бомбанет от такой хуйни.
Аноним 26/01/21 Втр 03:23:26 1921866163
Ананасы, накидайте гайдов каких нибудь по Xamarin
Аноним 26/01/21 Втр 08:53:02 1921929164
>>1910324 (OP)
Пацантре, у меня возник вопрос.
Предположим в у вас есть tabControl в котором 2 вкладки (tabPage). И вам нужно чтобы при открытии одной из вкладок информация на ней начинала периодически обновляться, а при закрытии вкладки нет.
Так вот, как сделать так, чтобы при открытии вкладки создавался таймер, а при закрытии вызывался его метод dispose?
Если создать таймер при евенте enter, то мы не сможем обратиться к нему из метода leave.
Единственный вариант создавать "глобальный" объект?
Аноним 26/01/21 Втр 10:35:51 1921967165
Как по конвенции принято называть классы "in-memory-storage" ?
Аноним 26/01/21 Втр 11:23:48 1922008166
https://github.com/jbogard/MediatR

при открытии в вижле разделяет тесты на .net2.0, .net3.1 и .net5.0. Как такое повторить? Тесты на Xunit написанны.
Аноним 26/01/21 Втр 11:29:21 1922010167
Аноним 26/01/21 Втр 11:54:31 1922023168
Аноним 26/01/21 Втр 12:10:14 1922043169
>>1920638
поддвачну пост и заодно задам вопрос: Тут есть те, кто реально работает на # (web)? Если да, то какой стэк, какая версия ASP.NET/.NET Core на проекте/проектах.
Аноним 26/01/21 Втр 14:14:09 1922181170
>>1922043
Разработка под Dynamics CRM считается? Помимо плагинов в ней куча приложений для сотрудников и апишек для интеграций.
Если да, то подавляющая часть сервисов на ASP.NET, .NET Framework 4.7.1, есть несколько на .NET Core 3.1, из фронта Angular
26/01/21 Втр 14:24:18 1922209171
Нахуя нужны эвенты и делегаты? Не понимаю практический их смысл. В курсе на счет того, что линк построен на делегатах, но как мне пригодятся делегаты и события
Аноним 26/01/21 Втр 14:35:29 1922228172
>>1922181
На бугор работаешь, в каком формате (аутстаф/продукт)? В офисе или удаленно? На WebApi пишешь? Фронта касаешься?
Аноним 26/01/21 Втр 16:38:21 1922348173
>>1922228
Аутстаф, на наших.
В условиях пандемии свободное посещение офиса, так в основном удалённо сижу. Апишки периодически клепаю. Фронт бывает, но не так часто, и огромное спасибо, что не ASP.NET MVC.
Аноним 26/01/21 Втр 17:00:50 1922363174
>>1922348
>на наших
сочувствую, я представляю днищенскую ЗП
На чем бэк написан? Апишки под микросервисную архитектуру? Тесты/бенчи? По эстимейтам ебут мозги или 5 минут делаешь и 2 часа хуй пинаешь?
Аноним 26/01/21 Втр 17:39:11 1922399175
>>1922363
ЗП на жизнь хватает, 140, ДС.
Бэк? В плане? Всё на шарпе пишем. Апишек куча старых, написанных как попало, новые да. Тесты почти никто не делает, я в своих проектах клепаю. По эстимейтам не парят, если задачи не очень важные, но задачи у меня, так уж получилось, есть всегда.
Аноним 26/01/21 Втр 18:01:48 1922423176
>>1922399
походу апихи с простой работой по get-post данных из БД, без особой логики? 140к (я хз, сколько это в $, около 2к походу) - не плохо, думал меньше.
Всегда поражаюсь опенсоурсу, где все обсосано, все по паттернам, дженерики-хуерики, абстракция, тесты. А по факту, с кем не общаюсь - все клепают, только эстимейт закрыть (это не камень в твой огород, просто суровая реальность).
>>1922008
как пример, хотел закинуть пул реквест, чтобы была галочка на CV на участие в проектах, но в нем только разбиратся нужно хуеву тучу времени.
Так или иначе - спасибо за отзыв
Аноним 26/01/21 Втр 18:22:54 1922449177
>>1922423
Не, простыми крудами тут и не пахнет, тут ты пишешь методы, делающие определенную бизнес-логику. Это сделано для того, чтобы соседние системы своими руками не лезли в наш процесс, а довольствовались лишь некоторыми методами, торчащими наружу. Иногда эта логика конфликтует с плагинами Dynamics, тогда приходится искать по цепочке вызовов, что же именно там происходит. В общем, достаточно весело, да и в бизнес-процессе клиента кое-что понимаю, это интересно.
По поводу быстрого закрытия тасок - тут уж как повезёт с загруженностью и с руководителями. Обмазываться абстракциями и паттернами никто не мешает, главное, чтобы люди после тебя могли доработать проект без особых проблем.
Сам чем занимаешься?
Аноним 26/01/21 Втр 18:43:09 1922468178
>>1922449
> с плагинами Dynamics
не понимаю, потом погуглю
>Сам чем занимаешься?
финансист/экономист/аналитик/хуй пойми кто
Я летом хотел перекатится - подготовился, CV, пет проекты, вся хуйня. По факту прошел 3 собеса, по одному предложили $200 (типо джун), по другому не прошел по софт скилам (Швейцарская компания), по третьему предложили за бесплатно стажером на 3 месяца.
Сам на решетках уже пишу хуй знает сколько, года 2-3 точно, начинал с WinForms, WPF, потом когда понял, что Desktop мертвый, начал корвырять ASP.NET MVC5, потом Core2.0 и т.д. Сейчас начал смотреть .NET5, по тому опенсоурсу, что скинул выше, что то пиздец, даже влень разбиратся, чтобы закрывать какие то таски в issues.
Планирую поковырять что ни будь, повспомнить, уже много чего из головы вылетело и пытаться вкатыватся, но уже делать ориентир на фриланс или буржуйский аутстаф (напрямую)
Аноним 26/01/21 Втр 19:04:23 1922483179
>>1921695
В общем такая же хуйня, но написано не двачером, а со смишнявками. В итоге взял Троелсона, полёт нормальный.
Аноним 26/01/21 Втр 19:08:05 1922487180
Короче, помогите разобраться.
Допустим у меня есть апач(чтобы фронт запускать), есть гейтвей, есть пара вебапишек. Все это в докере. Допустим я хочу иметь возможность одним из сервисов какой-то ip получить(чтобы добавить в ЧОРНЫЙ ЛИСТ). Я правильно понимаю что для этого я должен пошаманить с докером? Или можно как-то просто в гейтвее дописать заголовки? Просто я чет не ожидал что у такой вот фигни возникнут сложности, опять же вскрылось это только когда таки в докере запустил, до этого тестил так и нормально ip просто из контекста доставал - все работало, а тут, не то чтобы выжная функция, но раз уж сделал ее - хорошо бы разобраться почему в докере оно не работает. Вернее как, ip-то отпределяется, но видй 172.xxx.yyy.zzz эт сосвсем не тот что настоящий, я гуглил, это вроде как на ip что докер выдает при запуске контейнеров, но я опять же не настолько щарю, просто хотел разобраться как оно работает на самом деле и как надо делать.
Аноним 26/01/21 Втр 19:31:23 1922498181
>>1922487
X-Forwarded-For заголовок посмотри
Аноним 26/01/21 Втр 19:39:40 1922511182
11.jpg 137Кб, 1476x695
1476x695
22.jpg 131Кб, 1477x699
1477x699
https://www.codepile.net/pile/ADNVAPD8
Двощик, не бей лучше обоссы, но я совсем дурак и так и не могу понять методы.
Вот смотри, почему если убрать/заккоментить метод Reverse который переворачивает цифры в массиве задом наперед, то всё идёт нормально.
Но когда он выполняется, то он переворачивает и массив который должен оставаться неперевернутым?
Я ведь "создаю" две разных переменных с массивами? Или не "создаю"?

int [] numbers (Этот создаётся в методе GenerateNumbers)
и
int [] reversedNumbers (Этот создаётся путём переворачивания задом наперёд первого)

Или второй вообще не создаётся, а ссылается на первый или как понять?
Или нужно вызывать как-то метод в методе (или прям в Main вызывать метод в методе через метод чтобы было правильно?

Я хотел.

Создать массив от [0] "1" до, например, [4] "5".

Напечатать его,- 1,2,3,4,5

Напечатать его же но перевернутым 5,4,3,2,1

Почему переменная numbers то меняется?
Или мне дальше изучать, а там придёт? Инкапсуляции всякие и прочие приват, протектед нужны?
Аноним 26/01/21 Втр 19:45:51 1922517183
>>1922498
Да я гуглил же. Хотел посмотреть. И их у меня нет, кек. При том что в мидлваре - прописано все.
Вернее как, они есть, когда запрос идет от фронта или через гейтвей, но если напрямую в контейнер постучаться по тому порту что я ему в докере прописал - нету. А я как-бы исходя из того что каждый контейнер должен быть самостоятельным - хотел понять, почему так вот выходит.
Хотя ладно, наверное надо лучше погуглить. Хотя я вроде гуглил часа 4, на стековерфлоу тоже просто про X-Forwarded-For пишут, на сайте майков так же, на гитхабе видел ишью как раз по поводу того что не удается узнать верно ip клиента из докера, но не стал вникать, оно вроде закрыто было, а значит если это баг, то должны были пофиксить, а если не баг, то хз, я там беглым взглядом не нашел решения проблемы, может жопой читал.
Аноним 26/01/21 Втр 20:03:07 1922533184
.png 18Кб, 654x434
654x434
>>1922511
Из-за соображений, почти все, в шарпе являются ссылками(есть еще типы значений).
Когда ты пишешь, что
int[] newArr = arr - ты считай создал ярлычек на рабочем столе. Ты можешь создать много таких, но вести они будут к одному файлику и если ты его удалишь, как-то изменишь или что-то еще, то когда ты будешь пытаться по ярлычку кликнуть - тебе будет выдано то что стало с настоящим файлом.
Аналогия конечно, но для того чтобы суть понять я думаю сойдет.
Так вот, массив - ссылочный тип. Всякие int,double и структуры - значения, они копируются при передачи в метод или при присвоении.
Т.е. чтобы не происходило изменений с исходным объектом - ты должен скопировать его, либо как в прикриплейде - создать новый массив и заполнить его самостоятельно.
Аноним 26/01/21 Втр 20:23:50 1922551185
ruluJhL[1].jpg 114Кб, 960x893
960x893
>>1922533
Пасиба огромное. Стало понятней.
Побаловался с копированием массива и созданием через метод GenerateNumbers, всё стало чуть ясней.
Аноним 26/01/21 Втр 20:37:28 1922559186
>>1922511
А вообще, ты молодец что стал разбивать на методы. На начальных этапах многим это кажется не оч полезным, но потом такая боль, когда на реальной работе приходится приучать себя к этому. Лучше это делать сразу, а то как я будешь: 400 строк метод - хех, ну не 600 же; 600 строк метод, ну, бывало и хуже; 2к строк метод - ай, потом отрефакторю.
Аноним 26/01/21 Втр 20:42:07 1922566187
Анонче, есть у тебя какой то код с использованием интерфейсов и без?
Ну к примеру код выполняет одну и тоже задачу. И на примере его описания видна польза интерфейса.
Типо вот тот не юзаем интерфейс и получается хуйня а тут юзаем и получается как в сказке.
Аноним 26/01/21 Втр 20:58:25 1922584188
>>1922566
Погугли паттерн стратегия и DI/IoC.
Интерфейсы нужны для них, в основном.
Аноним 26/01/21 Втр 21:02:31 1922587189
>>1922566
Интерфейсы нужны как абстракция. У тебя есть тип, реализующий контракт. Как он будет это делать- второй вопрос, инкапсуляция жи.
Аноним 26/01/21 Втр 22:48:06 1922691190
>>1922587
Для этого есть модификаторы доступа.
27/01/21 Срд 00:42:46 1922798191
>>1910324 (OP)
Я в рот ебал советующих изучить английский.
Аноним 27/01/21 Срд 07:35:09 1922952192
Аноним 27/01/21 Срд 09:59:31 1922984193
Ебаный рот этой студии.
Вверху на тулбаре был комбобокс в котором можно было выбрать какой проект запустить для отладки и сегодня он куда-то взял и проебался. Как его добавить назад?
Аноним 27/01/21 Срд 10:06:29 1922986194
Блять. Нашел - пкм-настроить-команды-панель инструментов-начальные проекты. В настройках он отображается как будто он тулбаре есть, но его нихуя нету. Охуено!
Аноним 27/01/21 Срд 10:06:42 1922987195
>>1910324 (OP)
Пацаны.
Есть такая проблема.
Есть объекты класса. Нужно, чтобы изменение в этом объекте приводили к изменению в control'ах (textBox например), причём нужно, чтобы изменение в разных объектах приводили к изменению в разных контролах.
Как это сделать? Про эвенты я знаю, но как сделать так, чтобы при обработке эневна изменялось свойство нужного мне контрола?
Аноним 27/01/21 Срд 10:07:59 1922988196
Перезагрузил студию - появился. Держу вкурс.
Аноним 27/01/21 Срд 15:36:13 1923287197
>>1922987
в WPF биндинги из коробки
в WF радость ручного биндинга
Аноним 27/01/21 Срд 15:45:57 1923307198
>>1922691
Модификаиоры это инкапсуляция а не абстракция
Аноним 27/01/21 Срд 16:47:55 1923419199
image.png 134Кб, 598x645
598x645
Помогите, я тупой и не могу понять как работает switch, покажите например по этому примеру как я могу поправить свичем это безобразие?

Мой говнокод здеся:
https://pastebin.pl/view/c495c232
Аноним 27/01/21 Срд 17:00:42 1923446200
Как >>1923287
>в WF радость ручного биндинга
В какую сторону гуглить подскажи.
Аноним 27/01/21 Срд 17:07:11 1923457201
>>1923419
Свитч по дикшинари нейм сделай, в кейсах пиши что надо вызвать, ты вообще читал туториалы хотя бы? И dictionary пишется с t
Аноним 27/01/21 Срд 17:10:56 1923467202
>>1923457
типу так

switch (dictionaryName)
{
case "parameter1" : Function1();
}

??
Аноним 27/01/21 Срд 17:15:59 1923477203
>>1923446
Ни в какую
Пишешь код который ловит события изменений и обновляешь контролы
Аноним 27/01/21 Срд 17:40:10 1923506204
>>1923419
Тебе свитч не нужен, тебе нужен Dictionary<string, Action>();

Создаешь его и в методе у тебя будет:

myDict[dictionaryName]();
Аноним 27/01/21 Срд 18:28:44 1923558205
Блядь, почему так сложно-то начать с нуля новый проект, даже если все знаешь как делать?
Вот, блядь, я наговнокодил штуку. Она работает, клиенты довольны, но там реальный пиздец. Думаю: Проще переписать, чем пытаться рефакторить. Создаю новый проект и часа 2 просто сижу - туплю, думаю о том что и как лучше сделать, а потом удаляю проект и начинаю делать задачи которые стоят. Говнокод копится, рефакторить не хочется, потому что кажется что проще новый сделать. Так уже 3й год идет.
Аноним 27/01/21 Срд 19:05:11 1923603206
.jpg 141Кб, 1106x859
1106x859
>>1923506
Хм. А я бы так вот сделал, кек.
Аноним 27/01/21 Срд 19:06:07 1923604207
Waw meme.mp4 306Кб, 1280x720, 00:00:01
1280x720
Аноним 27/01/21 Срд 19:30:57 1923627208
Анонче таки вопрос.
Есть какой либо способ верификации приложения?
Возможно не правильно сформулировал вопрос, объясню на примере.
К примеру есть телеграм бот код которого выложен на гитхаб. Есть какой нибудь способ сделать так что бы юзер мог узнать когда будет писать в этого телеграм бота что код этого бота не менялся.
Понимаю что скорее всего нет но все же решил уточнить.
Аноним 27/01/21 Срд 19:35:03 1923631209
>>1923627
Есть, называется хэш-сумма. Если код меняется, то меняется и хэш-сумма.
Аноним 27/01/21 Срд 19:35:30 1923633210
>>1923627
Проверить id коммита?
Аноним 27/01/21 Срд 19:38:18 1923639211
>>1923631
Ну так то
return "hash"; который должен вернутся если код не меняли. И как узнать что мне бот мне не написал заранее заготовленую строку а не хеш исполняймого файла?

>>1923633
Я не в курсе про что ты, я вкатывальщик)
Аноним 27/01/21 Срд 20:14:37 1923666212
>>1923639
Я тоже вкатывальщик. Посмотри какой-то базовый видос про гитхаб на тытрубе где рассказывают про базовые понятия гита.
Аноним 27/01/21 Срд 20:16:05 1923670213
>>1923666
Дак а причем тут гит?
Есть какой то апи который может верефицировать запускаемое приложение?
Аноним 27/01/21 Срд 20:20:11 1923675214
>>1923670
Тебе же блин сказали: Хеш.
Смотришь оригинальное приложение, обычно там и так лежит файлик с хеш-суммой, либо рассчитываешь его. Затем рассчитываешь хеш для приложения что у тебя. Если отличаются - значит поменялось. Что сложного-то?
Аноним 27/01/21 Срд 20:20:34 1923677215
>>1923670
> код которого выложен на гитхаб
> Дак а причем тут гит?
...
> Есть какой то апи который может верефицировать запускаемое приложение?
Нету. Зато есть системы контроля версий.
Блять, короче. Если ты менял код делаешь коммит (точка сохранения). У этого коммита есть id, вот этот id ты можешь цеплять и сравнивать.
Аноним 27/01/21 Срд 20:28:14 1923683216
>>1923675
>>1923677
Да вы не поняли просто что нужно.
Еще раз повторю.
Есть к римеру бот на гитхабе. Ну к примеру мне нужно гарантировать что именно бот который я выложил будет запускать юзер.
Но юзер может его скачать и модифицировать, и просто подсовывать нужный хеш.
А мне нужно как то гарантировать что код запущенного бота это код на гитхабе. В частности бот не должен сохранять ни каких данных о пользователе который ему пишет. Но как я могу подтвердить что мой бот не сохраняет данные? Только выложить бота на гитхаб. А как пользователь может проверить вдруг на гитхабе один бот а запущен у меня другой?
Аноним 27/01/21 Срд 21:00:45 1923713217
>>1923683
> Но юзер может его скачать и модифицировать
Niqaque
27/01/21 Срд 21:47:55 1923773218
>>1923683
Первое правило веба — никому не говорить не доверять клиентским данным. Вообще никогда.
Аноним 28/01/21 Чтв 16:05:14 1924372219
Делаю проект ASP.NET Core MVC+Entity framework. Мне нужно чтобы пользователь мог добавить в БД данные, которые имеют одно из нескольких определенных заранее значений? Как это реализовать?
Аноним 28/01/21 Чтв 17:50:00 1924462220
>>1924372
Вроде разобрался, с помощью атрибута [Remote].
Аноним 28/01/21 Чтв 18:27:39 1924501221
Хм. Тупой вопрос.
Смотрите, допустим есть некая база. В ней есть довольно общая сущность, допустим это товар. У нее есть связанная таблица атрибутов, в зависимосмти от типов товара - там разные могут быть атрибуты, они привязаны через доп-таблицу: ТоварАтрибут
Так вот. Суть в чем. На клиенте для разных типов товара должны быть разные вьюшки. Ну, типа: Технические характеристики, размеры для товаров что имеют эти характеристики, поддерживаемые интерфейсы для товаров у которых есть уже эти вот характеристики.
Ну, собвственно, мне интересно, как это было бы лучше реализовать. Пока что я думаю о том, чтобы просто добавить поле группа для таблички атрибут, ну, соответственно фронту будут отдаваться данные в сгруппированном виде и на нем можно будет просто отрисовать.
Может быть есть какие-то более изящные решения?
Ну, да, чому в шарпотреде - потому что я шарпоняша и это все на шарпах пишется.
Аноним 28/01/21 Чтв 18:51:20 1924529222
>>1924501
Ну если группировка не изящное решение, то я даже и не знаю, какое изящное.
Аноним 29/01/21 Птн 01:30:47 1924843223
мне нужен c# для использования в ZennoPoster. Он по сути тот же там использеутся, что и в книгах в шапке? А то там какие-то wpf, .net , я не ебу что это все такое, я просто хочу писать c# сниппеты на зенке без всяких там вот этих
Аноним 29/01/21 Птн 06:29:41 1924887224
Аноним 29/01/21 Птн 08:39:37 1924915225
>>1910324 (OP)
Йоу, пацантре.
Такой вопрос. Есть WPF приложение. Нужно периодически проверят коннект с сервером и отображать это. Есть самодельный класс, который отвечает за запись и чтения с сервера. Собна каким образом всё это можно сделать?
Таймер для этого нормально или есть какие-то более современные и нормальные подходы?
Аноним 29/01/21 Птн 09:30:36 1924930226
>>1924915
Стопвотч и не выебуйся
Аноним 29/01/21 Птн 10:18:24 1924949227
Аноним 29/01/21 Птн 15:36:31 1925217228
Помогите с выбором. Появилось желание заняться программингом для себя. Вопрос не про трудоустройство. Допустим, я хочу склепать пару мобильных приложений и игрушек (могу 100 раз обосраться и передумать, это понятно). Как понял, есть два стула: Java и C#. Склоняюсь к шарпу из того, что читанул:

1. Сейчас адекватные мобильные игры на джаве не пишут. Используют шарп.

2. Сейчас мобильные приложения пишут на Kotlin. Не на шарпе.

Вопрос: вне контекста трудоустройства, мешает ли мне что-то клепать приложения на шарпе? Просто геймдев у шарпа, как я понял, гораздо лучше чем в джаве. Но и мобильные приложения тоже есть идейки. Подойдет ли шарп и для этого?
Аноним 29/01/21 Птн 15:40:57 1925218229
>>1925217
Xamarin для приложений (и простых игр)
Unity для игр.
Смысл есть, особенно если будешь крутиться исключительно в .core и mono
Аноним 29/01/21 Птн 16:29:34 1925270230
До этого пытался вкатиться в ASP.NET, но все каким-то убогим и нагроможденным казалось, поэтому забил. Сейчас нашел очень годный курс, связка .NET API и Angular. Так вот, если я буду разрабатывать сайты по этой методе, через API, это мое преимущество или недостаток? Уж очень такой метод показался удобным и лаконичным.
Аноним 29/01/21 Птн 18:03:07 1925371231
Привет добрые анончики, я образа.сь к тем кто знает что такое абстракции и конструктор, потому что я не знаю как такое юзать в моем коде https://pastebin.pl/view/a87ddb29
вот у меня пример моего говнокода который где много раз повторяются похожие функциии и методы, они работают так же единственное что отиличается так это тип данных, как мне фиксить такое и вместо 20 одинаковых функций под каждый тип данных сделать одну под все без ифов форов и медленных проверок?
Аноним 29/01/21 Птн 18:20:21 1925386232
>>1925270
> но все каким-то убогим и нагроможденным казалось
Можешь навести пример не убогого фреймворка? Я прост только асп знаю, интересно чем он плох.
Аноним 29/01/21 Птн 18:31:37 1925400233
>>1925386
Я на C# вообще не гоню, меня все устраивает, так как я смотрел разные фреймворки, ларавел и тому подобное, и там только на одних миграциях можно голову сломать
Аноним 29/01/21 Птн 19:05:51 1925443234
>>1925371
>конструктор
Дружище, у тебя статический класс.
>абстракции
Опять же, статический класс.
>много раз повторяются похожие функциии и методы, они работают так же единственное что отиличается так это тип данных, как мне фиксить такое и вместо 20 одинаковых функций под каждый тип данных сделать одну под все
Загугли дженерик классы и дженерики вообще. Они для этого и нужны.
И вообще. Не используй слово static без четкого понимания, зачем оно нужно. Статические классы только в соснольке с сотней строк кода удобно использовать, в чем-то мало-мальски серьезном ты только говна поешь, пытаясь понатыкать лишних статиков.
Аноним 29/01/21 Птн 19:33:49 1925473235
>>1925443
А каким образом я могу реализовать концепцию inMemoryDatabase без статического класса в котором хранятся данные?
Аноним 29/01/21 Птн 19:50:28 1925497236
>>1925473
Ну как, нестатическим классом например???
Аноним 29/01/21 Птн 19:54:40 1925503237
>>1925497
так ведь для использования например не статических классов я должен буду создавать новый экземпляр класса каждый раз когда я хочу его использовать, учитывая что у меня будет много пользователей и много данных мне никакой памяти не хватит что бы хранить все эти экземпляры отдельно
Аноним 29/01/21 Птн 20:01:02 1925506238
Какие есть годные гайды по asp?
Аноним 29/01/21 Птн 20:02:11 1925508239
Аноним 29/01/21 Птн 20:09:25 1925512240
>>1925503
В зависимости от связанности твоих "пользователей" (а я не уверен, что ты имеешь в виду) применяется Dependency Inversion или синглтоны.
Аноним 29/01/21 Птн 20:49:54 1925535241
>>1925512
нет, сингелтон точно не используется, потому что дб может изменять свое состояния и кешировать данные динамически, сингелтон это вообще про другое, насчет Dependency Inversion я не совсем понимаю к чему ты это, это просто паттерн, и да я спросил именно про то какие образом можно реализовать такой патерн в концепции inMemoryDataBase
Аноним 29/01/21 Птн 21:16:13 1925555242
>>1925535
>я спросил именно про то какие образом можно реализовать такой патерн в концепции inMemoryDataBase
1. Убираешь статики
2. Делаешь класс дженериком и сокращаешь с помощью этого код
3. Делаешь для класса интерфейс и наследуешь его классом
4. Используешь DI-фреймворк/пилишь DI вручную (по сути хуячишь инстанс своего класса в ~мейне и прокидываешь этот инстанс через конструкторы или методы к классам, где он нужен)
Аноним 30/01/21 Суб 01:26:03 1925699243
Seemann-DI-HI.png 38Кб, 360x452
360x452
>>1925535
Ты троллишь, что ли, блять? Памяти у него не хватит, видите ли, если создавать объекты. Профилировал уже?

Пиздуй пикрелейтед читать.
Аноним 30/01/21 Суб 02:00:56 1925721244
Чё скажите за блазор?
Какие у него жирные недостатки перед js?
Аноним 30/01/21 Суб 09:25:39 1925787245
>>1924915
Ну, блин. Зависит от архитектуры приложения.
Но самый простой способ - берешь таймер из класса Timers.
Аноним 30/01/21 Суб 11:37:17 1925859246
>>1925503
> ведь для использования например не статических классов я должен буду создавать новый экземпляр класса каждый раз когда я хочу его использовать
С хуя, лол?
Вот серьезно, с какого хуя-то? Ты можешь создать один экземпляр и передавать его сколько хочешь кому хочешь. Можешь ебануть синглтон и закрыв конструктор получать один и тот же экземпляр откуда угодно.
30/01/21 Суб 13:33:14 1925941247
>>1925859
По ходу дела желаю всем уебанам, вручную имплементирующим синглтоны, всю жизнь писать для них юнит тесты.
Аноним 30/01/21 Суб 13:42:50 1925955248
>>1925535
>я должен буду создавать новый экземпляр класса каждый
>насчет Dependency Inversion я не совсем понимаю к чему ты это, это просто паттерн
На пальцах.
1 изначально дергаем статик класс зависимость или синглтон зависимость прямо из класса. Работает, но все прибито гвоздями и невозможно ни нормально тестировать, ни подменить реализацию
2 Вносим Dependency Inversion - не лезем к зависимостям сами, а получаем их через конструктор. Тестируется на отлично и подменяются реализации. Но как результат - нужно создавать экземпляры
3 И если у нас экземпляры, то как же синглтоны? Решение простое - прокидывать всем один и тот же экземпляр зависимости.
4 И тут на сцену выходят IoC контейнеры (которые суть автофабрики, которые рантайм просто пишет за нас) и в них декларативно задается время жизни зависимости в рамках контейнера.
И поскольку все создается с помощью IoC контейнера, то он позаботится о том чтобы все получили один и тот же экземпляр "синглтона"
Аноним 30/01/21 Суб 14:18:09 1926010249
>>1925555
Я уже писал, синглтон не применим ни в коем случае, МНЕ НУЖНЫ РАЗНЫЕ ЕКЗЕМПЛЯРЫ а не один и тот же
Аноним 30/01/21 Суб 14:30:11 1926028250
>>1926010
любой, кто увидел static, разумно делает предположение, что нужен синглтон
ведь для этого static и применяется - не создавать экземпляры.

и реализовать опять же очень просто - нужные разные экземпляры...так создавай разные экземпляры там, где они нужны разные.
Проблемы то нет
Аноним 30/01/21 Суб 14:32:04 1926030251
>>1925955
>Решение простое - прокидывать всем один и тот же экземпляр зависимости.
не валидно

судя по постоянными переложениям юзать синглтон я понял что никто не читал код который я выложил поэтому объясню на пальцах

для каждой сущности (продукты, счета, и тп) данных свой класс, а для каждого пользователя свой экземпляр с ЕГО сущностями

сейчас работает так, 20 классов которые возвращают из физической базы и кешируют в память свои сущности, они биндятся в 20 словарей под каждую сущность, ключем является пользователь, данные обновляются реальном времени, а если пользователя нет/сесия пользователя нет, то и данных нет/данные удаляются

и очевидно что все словари с данными должны ДОЛЖНЫ быть статическими, и их должно быть 20 по каждому на сущность, другой вопрос нужно ли мне 20 статических классов которые возвращают каждый сво сущность или это можно сделать умнее
Аноним 30/01/21 Суб 14:32:08 1926032252
>>1926010
Значит используй моностейт, а не синглтон.
Аноним 30/01/21 Суб 14:34:19 1926035253
>>1926028
Я класс inMemoryDB со всеми вложенными статическими классами инициализирую при старте сервиса если ты об этом, а классы которые возвращают данные из физической дб в inMemoryDB в синглтонах не нуждаются
Аноним 30/01/21 Суб 15:06:40 1926078254
>>1926030
конечно не читал. никто не понял зачем нужен этот инмеморидб и что он делает
а когда увидел множество "new Thread()" то тут аж сердце прихватывает от такого

А "20 классов" - ты тут криво описал нечто похожее на обычные repository с кешированием внутри себя.

>не валидно
конечно не валидно. ведь это середина истории. А самая суть под пунктом 4

>что все словари с данными должны ДОЛЖНЫ быть статическими
ты путаешь понятие "статический" и "один для всех". Для "один на всех" не нужно быть статическим - достаточно сделать так, чтобы был один инстанс для всех

Тебе нужно понять концепт

Задача разбивается на ответственности. Затем, в соответствии с SRP, реализуешь классы, где каждый класс отвечает за свое.
Далее из этих классов (как из кубиков) собираешь граф объектов с зависимостями.
Ну а потом просто пнуть его и оно заработает.

И вот тут при создании графа ты и решаешь что должно быть в 1 экземпляре, а что создаваться каждый раз. А еще есть скоупы, где экземпляр переиспользуется в рамках скоупа.

Вот эту концепцию вкури, а "статики/синглтоны для того чтобы он был один" забудь как страшный сон

Можешь не любить IoC, а написать код инстанцирования руками (IoC просто генерит тот же код за нас, позволяя нам декларативно задавать).
Статики/синглтоны - зло
Экземпляры, но гарантирована1 штука - добро.

У тебя класс inMemoryDB, у тебя 20 классов реп, которые читают из бд. Каждый из них может кешировать тупо в словарих внутри себя. А может быть у них общий кеш - тогда еще один класс. И все это НЕ-статическое.
А что из них создается каждый раз, а кто один раз - решит тот, кто собирает граф.
Аноним 30/01/21 Суб 15:17:06 1926099255
>>1926078
ну смотри, предположим у меня 10 пользователей, они будут получать данные по своему айди но данные у них одинаковые, тот же набор продуктов и тп, правильно я понимаю что с нестатическими классами они все забиндуют в словарь 10 одних и тех же копий тех же данных, но в разных потоках которые не будут иметь отношения друг к другу? потому что мне кажется что именно так и будет и это уже не похоже на базу данных в памяти, это просто кеширование,
Аноним 30/01/21 Суб 15:17:08 1926100256
14284256959995.jpg 36Кб, 960x960
960x960
> new Dictionary
> new Thread
Аноним 30/01/21 Суб 15:21:47 1926112257
>>1926100
Словарь так то только при инициализации создается, а про тред я вообще не понял в чем претензия
Аноним 30/01/21 Суб 15:24:39 1926120258
>>1926112
я мимокрок
претензия в том, что
а) он не нужен
б) не используется ThreadPool
Аноним 30/01/21 Суб 15:28:07 1926125259
>>1926120
А он обязательно нужен, что бы создать новый поток?
Аноним 30/01/21 Суб 15:28:44 1926126260
>>1926099
То, что ты описал это называется Identity map - кеш загруженных сущностей.
А значит каждый из твоих 20 классов получит ссылку на общий экземпляр такого кеша, где они и будут спрашивать "не загружено ли"
Аноним 30/01/21 Суб 15:30:17 1926128261
>>1926125
он как раз нужен чтобы НЕ создавать новый поток, а взять уже созданный из пула. Это экономит и время и ресурсы.
поэтому минимум Task.Run() вместо new Thread()
если оно вообще нужно конечно - ибо ты обращается к I/O
Аноним 30/01/21 Суб 15:34:34 1926140262
Аноним 30/01/21 Суб 15:35:09 1926141263
>>1926126
об этом тоже почитаю
Аноним 30/01/21 Суб 15:42:06 1926152264
>>1926010
Ты же понимаешь, что я описал DI-реализацию ТВОЕГО кода с ТЕМ ЖЕ функционалом? Где вместо статика (который по определению является одним инстансом) мы используем один инстанс? Пиздец у тебя каша в голове.
А по факту делается это так:
1. Добавляешь в интерфейс строку
static void GetInstance() => throw new NotImplementedException();
2. Добавляешь в класс строку
static void GetInstance() => new inMemoryDB();
3. Вместо имеющегося инстанса кидаешь в конструкторы _instance.GetInstance()

А по факту это не делается, а используются DI-фреймворки, которые делают все вышеперечисленное вместо тебя, а тебе нужно написать одну строку. И ты бы быстро нашел этот функционал в любом из них, потрать ты хоть секунду на изучение темы, а не беги на двачик с вопросом, который при твоем непонимании статиков объяснить примерно нереально.
30/01/21 Суб 17:15:33 1926249265
>>1926112
Словарь не потокобезопасен, и не надо мне про тот лок говорить только.
Аноним 30/01/21 Суб 17:21:14 1926254266
>>1926249
А в чем проблема лока кроме того что он статический? и что в данном случае можно использовать кроме сторонних фремворков?которые типа "написал строку и ок" а в реальности "написал строчку и там выполняется полная каша которая делает код процентов на 200 медленнее как например с ЕФ
30/01/21 Суб 17:35:06 1926270267
>>1926254
Можно, например, использовать ConcurrentDictionary. Тогда, может, кому-то и захочется читать ту простыню.

На Энтити гон абсолютно необоснованный, он генерирует запросы, которые от рукописных отличаются только переименованием полей. В два раза медленнее он, потому что вместо тебя реализует вот это кеширование, транзакции и другое.
Аноним 30/01/21 Суб 18:26:51 1926354268
image.png 68Кб, 637x337
637x337
Аноны, поясните что за UK? Не британия же
Аноним 30/01/21 Суб 18:27:52 1926355269
Аноним 30/01/21 Суб 18:31:56 1926358270
>>1926354
Тебя в яндекс-переводчике забанили? Зачем ты пытаешься понять смысл предложения только по двум словам?
Аноним 30/01/21 Суб 18:33:40 1926361271
>>1926354
Конечно, она самая. Автор говорит, что формат даты будет у тебя другой, потому что ToString по дефолту форматирует для текущей локали.
Аноним 30/01/21 Суб 22:06:28 1926574272
Аноним 31/01/21 Вск 11:14:19 1926791273
Знатоки и мастера синтаксиса. Вот возникло у меня жгучее желание заиметь словарь, в котором значением будет другой словарь.
Так вот, когда я пробовал вот так вот
Dictionary<string, Dictionary> - студия меня матом послала, дескать нужно указать типы для ключа и значения. Но ведь в том и суть что мне нужно чтобы словари что являются значением - могли быть любыми. При этом хотелось бы чтобы тип был виден нормально и не нужно было преобразования эти делать.
Есть хак какой-нибудь, кроме как: Dictionary<string,Dictionary<object,object>>?
Аноним 31/01/21 Вск 13:04:44 1926890274
>>1926791
>могли быть любыми. При этом хотелось бы чтобы тип был виден нормально
нужно подключить библиотеку libastral в проект и это станет возможным.
Аноним 31/01/21 Вск 13:13:54 1926897275
uAdWsol[1].png 4Кб, 384x52
384x52
0L6H15X[1].png 5Кб, 394x103
394x103
Делаю проект на ASP.NET Core MVC. Реализую проверку ввода строки с помощью атрибута [Remote]. Одним из условий проверки является проверка на ввод пустой строки. Решил это реализовать используя string.IsNullOrEmpty(). Но оно не работает! Я как мог сохранить данные с пустой строкой, так и могу. В чем может быть проблема?
Аноним 31/01/21 Вск 13:29:26 1926911276
>>1926791
data Yoba a b = Dictionary<string, Dictionary<a, b>> (с точностью до синтаксиса)
Аноним 31/01/21 Вск 13:51:14 1926921277
>>1926791
Dictionary<string, Dictionary<dynamic, dynamic>>
Аноним 31/01/21 Вск 14:19:09 1926948278
>>1919641
анончик, а давай вместе вкатываться. Я немного дальше тебя в изучении C# прошел, но думаю все равно обоим будет полезно.
@SpaceCowBoy2176
Аноним 31/01/21 Вск 16:20:21 1927084279
>>1926911
Хаскеллист в треде?
Аноним 31/01/21 Вск 16:42:37 1927095280
Почему в .Net backend разработчик сайтов называется Software Engineer, или этот стек не веб? Объясните. Похоже больше на веб, с SignalR и JS.

Experience with ADO.Net, MVC, WebAPI, SignalR
Experience with Lucene.NET
Knowledge of JavaScript, TypeScript
Knowledge of xUnit, MsTest, Moq
Experience with SQL (Microsoft SQL Server)
Familiarity with Agile process, Scrum, Git
Аноним 31/01/21 Вск 16:50:52 1927108281
>>1926791
Можно завернуть Dictionary<object, object> в класс Yoba и прописать проперти Type - будешь хоть как-то видеть тип. Или завернуть Dictionary<string, Dictionary<object, object>> в класс Yoba и прописать свистоперделки для удобства. А так - только Dictionary<object, object>, динамическая типизация не предусмотрена, так что придется иначе ставить задачу или терпеть неудобства.
>>1926921
Так можно сделать, но по сути это то же самое, что Dictionary<object, object>, только без предохранения от Студии и компилятора. Любой обосрамс в коде ебанет только в рантайме, и местами выявить проблему очень непросто. Лучше писать эксплицитно Dictionary<object, object> - меньше вероятность выстрелить себе в ногу, хоть и придется везде прописывать приведение вручную.
Аноним 31/01/21 Вск 20:05:10 1927290282
2021 год, статическая типизация, даункасты от обджекта. Хуею с этих ваших промышленных стандартов разработки.
Аноним 31/01/21 Вск 20:26:25 1927313283
>>1927290
задачи разные бывают
Аноним 31/01/21 Вск 20:44:36 1927328284
Всем привет. Вот какой вопрос.
Два года назад стал разработчиком. Писал на C#, в основном на фреймворке Террасофта (бэк на C#, фронт на их специфическом JS).
Сейчас у компании свой новый проект на Java, без Гибернейта и Спринга.
В каком направлении развиваться. Я работал немного с Java в своё время, он показался мне всратым по сравнению с дотнетом. Но вопрос в рынке труда и перспективах.
Плюс, на изучении чего сосредоточиться, какие вопросы нужно хорошо знать, а что можно подглядеть по ходу работы?
Аноним 31/01/21 Вск 20:46:21 1927330285
>>1927328
Также, стоит ли концентрироваться на .Net Framework 4.8, или в нынешних реалиях это легаси? Перекатываются ли все массово на Core на .Net 5?
Аноним 31/01/21 Вск 23:13:49 1927437286
>>1927330
>в нынешних реалиях это легаси
Да
>Перекатываются ли все массово на Core на .Net 5?
Да (кроме закоренелого легаси, по очевидным причинам)
Аноним 01/02/21 Пнд 12:06:44 1927688287
Аноним 01/02/21 Пнд 13:20:45 1927752288
>>1927688
ну так напиши сам код который будет транслировать твои <Underline> в правильный Inlines, а не тот ужас что по ссылке
Аноним 01/02/21 Пнд 13:30:43 1927776289
>>1910324 (OP)
Когда вас спрашивают кем вы работаете - вы скрываете, что пишите на C#? Это ведь зашквар.
Аноним 01/02/21 Пнд 13:34:23 1927783290
>>1927776
не такой зашквар как писать на питоне php
Аноним 01/02/21 Пнд 13:34:52 1927784291
>>1927776
Меня на фронт перевели, а я и не против. но петпрожект на решетке допилю, лень на электрон переписывать
Аноним 01/02/21 Пнд 13:37:43 1927789292
Аноним 01/02/21 Пнд 13:38:28 1927794293
>>1927783

Хз, питонер или пхпшник купит себе макбук, а у тебя будет винда(
Аноним 01/02/21 Пнд 13:39:48 1927797294
>>1927794
Core мультиплатформенная среда, какой хочешь такой покупай
Аноним 01/02/21 Пнд 13:44:04 1927805295
>>1927797
Ну и сколько челиков в тренде пишет на чем-то кроме винды? Понимаешь, на php тоже можно писать в винде. Но неудобно.
Аноним 01/02/21 Пнд 13:45:47 1927810296
Аноним 01/02/21 Пнд 13:49:49 1927815297
>>1927805
Зачем вообще на винде писать?
Работаю под линуксом, весь продакшен на линуксовых серверах, докер образы под кубером.
мимо .net core бэкендер
Аноним 01/02/21 Пнд 13:49:58 1927816298
Аноним 01/02/21 Пнд 15:06:30 1927935299
image.png 157Кб, 320x218
320x218
Аноним 01/02/21 Пнд 15:07:31 1927938300
>>1927437
Короче, сяду за новый пет-проект на .Net 5.
Но вопрос ещё и вот в чём: стоит ли смотреть в сторону Java?
Она мне кажется совершенно всратой. Плюс, шарп я люблю за то, что можно смотреть в сторону геймдева на Юнити.
Аноним 01/02/21 Пнд 21:59:17 1928409301
>>1927805
Не понял что ты спросил.
Пишу на винде, потому что студия тупо удобнее чем все всякие vsCode и дргуие говноредакторы, типа райдера. И попробуй пусть хоть один пидорас скажет, что студия неудобна, почти каждый плсюовик - в ней кодит, хоть и не все признаются. Просто вот так уж вышло, что по факту - лучше студии и нет ничего для разработки. Разве что в нишах всяких, типа под яблоко - лучше их xcode (или что там у яблочников сейчас, я давно не следил), под андроид - андроидстудия; но если смотреть в общем - студия все еще остается лучшей иде, если ты на плюсах или языке из .net кодишь.
А то что пишу сейчас - запускают как на линуксах, так и на винде.
Аноним 02/02/21 Втр 00:31:21 1928485302
>>1925721
ну епта, вы чего
Я думал это революционный фреймворк, в вы чета заигнорили вопрос, не знаком чтоли никто
Аноним 02/02/21 Втр 00:41:15 1928491303
>>1928409
Главная проблема студии (помимо кривого перегруженного неинтуитвного интерфейса, в котором все свалено в одну кучу) - её громоздкость. Т.е. либо она у тебя будет отжирать половину ssd, либо грузиться по пол часа.
Аноним 02/02/21 Втр 05:04:00 1928549304
>>1928491
когда с программистской зарплаты не можешь купить ссд на 128гб и айпять десятилетней давности?
Аноним 02/02/21 Втр 12:01:38 1928695305
>>1928549
ну ты даешь, Яблочники уже всю всю зарплату потратили на оверпрайснутый еир, на подписку АЙтюнс, на АЙклоуд, откуда у них деньги еще и на ссд, да и нету слотов расширения у епловых поделок
Аноним 02/02/21 Втр 12:21:44 1928714306
16118685511560.jpg 126Кб, 660x440
660x440
Сап шарп. Нужна архитектурная помощь неофиту. Есть декстопная впф апликуха для прохождения тестов. У нее есть локальный (файл) sqlite. У теста есть n вопросов, нужно реализовать "сохранение" теста при прохождении если по каким-то причинам приложение будет неожиданно закрыто.
В базе уже есть таблица с результатами, только они сохраняются в конце. Я хочу переписать так чтобы запись апдейтилась после каждого вопроса. В таблице есть поле - перечисление ответов, туда запихивается сериализируемый list<answer>.
Дальше у меня начинаются вопросы. При загрузке теста нужно определить есть ли запись или нужно начинать новый тест. В начале я подумал что нужно доставть тот лист и смотреть сходятся ли каунт листа и каунт вопросов, но это мне не совсем подходит. Дальше я подумал что мне нужно добавить флаг - пройден ли тест, но добавить поле в таблицу не совсем правильно т.к. у меня шифрование/безопасность и юзверь может залезть в файл бд и поменять флаг. Дальше я подумал что нужно этот флаг засунуть в само поле ответов, т.е. в лист, но лист это перечисление ответов, а мне нужно записать как-то поверх него вот этот стейт. Подумал записывать в поле словарь, но у меня не соблюдается уникальный ключ, т.е. ответы могут быть идентичными. Короче как это правильнее реализовать? Или можно как-то юзать словарь без уникального ключа?
Аноним 02/02/21 Втр 12:53:59 1928741307
Или лучше сделать таблицу типа unfinishedTests и туда делать запись по айдишнику?
Аноним 03/02/21 Срд 00:47:01 1929330308
>>1928714
Так и не понял в чем проблема еще одну таблицу создать и что там у тебя шифруется и почему новая таблица не будет шифроваться.

У тебя ответы в ОЗУ "шифруются"? В чем проблема юзеру сейчас "залезть в файл бд и поменять" что-то?

Хуй знает. Непонятно что там у тебя накостылено. Нарисуй на бумажке нормализированную схему БД типа: Test (Id, IsCompleted), AnwerFact (Id, QuestionId,...) и подумай, сможешь ли ты осилить рефактор нормальный.
Аноним 03/02/21 Срд 01:10:57 1929340309
>>1925270
Оно оба ASP.NET
Но вот именно ASP.NET MVC со всякими рейзорами я уже года три нигде не видел.
Так что не преимущество, но скорее всего и не большой пробел. Иногда на собесах и за рейзор спросить могут.
Аноним 03/02/21 Срд 08:29:55 1929439310
>>1910324 (OP)
Подскажите куда смотреть. Нужно получить доступ к скроллу другого приложения.
Что для этого надо?
Аноним 03/02/21 Срд 11:20:26 1929509311
>>1910324 (OP)
Где можно почитать что у синьёра на собеседовании обычно спрашивают? Интересующий стек ASP.NET MVC/Web Api + вопросы по самому шарпу.
Аноним 03/02/21 Срд 12:12:32 1929536312
>>1929509
про предыдущие проекты спрашивают
Аноним 03/02/21 Срд 12:33:32 1929546313
>>1929536
Плохо, придется архитектуру проектов повспоминать, а то я уже на автомате бизнеслогику меняю.
Аноним 03/02/21 Срд 17:49:47 1929811314
Почему вывод в файл, быстрее, чем вывод в консоль?
Аноним 03/02/21 Срд 19:29:44 1929899315
>>1929811
let me google for you
https://stackoverflow.com/questions/5272177/console-writeline-slow

Why Console is slow:

Console output is actually an IO stream that's managed by your operating system. Most IO classes (like FileStream) have async methods but the Console class was never updated so it always blocks the thread when writing.

Console.WriteLine is backed by SyncTextWriter which uses a global lock to prevent multiple threads from writing partial lines. This is a major bottleneck that forces all threads to wait for each other to finish the write.

If the console window is visible on screen then there can be significant slowdown because the window needs to be redrawn before the console output is considered flushed.
Аноним 03/02/21 Срд 20:16:00 1929951316
>>1929899
>let me google for you
Андрей, ты?
Аноним 03/02/21 Срд 21:02:19 1929973317
Аноним 04/02/21 Чтв 10:28:58 1930221318
>>1910324 (OP)
Что почитать по azure?
Приложение на asp накидал(простенькое говно), подумал что стоит повоевать и в ту сторону.
Аноним 04/02/21 Чтв 11:18:50 1930242319
Если на компе запустить сервер на сокетах, то как к нему с андройда через мобильный инет подключиться?
Аноним 04/02/21 Чтв 13:38:11 1930352320
Анонче помоги.
Я хз с чего как найти то что надо мне.
Вопрос такой. Есть такая игра path of exile, для нее есть сторонний софт который по нажатию клавиш получает данные о предмете из игры. И вот вопрос как он получает данные из игры ?
Вот пример такой программы. Она сильно сложная для меня. Хотелось бы сделать что то похожее но вот не могу понять как программа получает данные о предмете, на сайте игры ничего нет такова(

https://github.com/domialex/Sidekick
Аноним 04/02/21 Чтв 14:02:44 1930369321
>>1930352
>получает данные из игры ?
Очевидно из памяти считывает
Аноним 04/02/21 Чтв 14:03:53 1930371322
>>1930369
Это предположение?
Просто так то из памяти я думаю запрещено в память игры внедрятся.
Аноним 04/02/21 Чтв 14:22:14 1930391323
>>1930369
>>1930371
Оказалось что в самой игре есть фича, при нажатии кнтр+ц игра копирует данные о предмете, софт обрабатывает инфу с буфера обмена и отправляет на сайт.
Аноним 04/02/21 Чтв 16:48:29 1930564324
Всем привет!
Скажите, насколько реально ньюфагу сейчас джуном на юнити вкатиться? Интересны разработки всякие под ВиаР.
Аноним 04/02/21 Чтв 17:06:46 1930576325
Блять, Двач, ну это же пиздец какой-то.
Есть один паттерн для написания приложение на WPF под названием MVVM. Узнал об этом паттерне несколько лет назад, за это время успел выучить Python на нормальном уровне, но ебучий MVVM так и не освоил.
Я могу без проблем передать свойства объекта из View в Model, вернуть их, отобразить, с этой частью проблем нет.
Но ебучее нажатие на кнопку реализовать - это же тотальный пиздец. Какие-то нахуй ICommand айхуйкомманд, RelayCommand на несколько десятков строк, да это, ебись оно в рот, не стоит того ради выполнения пары строк кода для изменения интерфейса.
А когда начинается открытие дополнительных окон в приложение то всё нахуй, дальше пешком быстрее будет.
Есть какой-то нормальный аналог этому паттерну? Я с этим говном заебался возится. Костыль на костыле, блять, и никто этого не видит.
Аноним 04/02/21 Чтв 17:20:37 1930589326
>>1930576
>успел выучить Python на нормальном уровне
>MVVM так и не освоил
Петухон можно выучить до "нормально уровня" за 15-20 минут? Ровно столько нужно, чтобы разобратся в таком элементарном паттерне
Аноним 04/02/21 Чтв 17:27:35 1930597327
>>1930589
Может, я тупой? Объясни мне нормальный способ вызвать процедуру нажатия кнопки сквозь ViewModel.
Аноним 04/02/21 Чтв 19:01:48 1930660328
>>1930576
Справедливости ради - сам-то паттерн понять не проблема.
Хуйня в том, что он не нужон и вообще больше проблем вызывает, особенно в контексте WPF. Ыыыы, как весело сидеть с профиллировщиком и искать где же ты от INotifyPropertyChanged забыл отписаться.
А вообще, большей справедливости ради - WPF - говно. Серьезно. Лучше чем формы не придумали еще. Вот это как раз охуенная штука была: пишется легко, работает быстро, куча вещей прямо из коробки, еще и не нужно эту залупу XML'нуй под названием ЗАМЛ использовать. Если бы я все еще писал под десктоп, тем более виндовый - то брал бы формы, охуенная штука была, однако.
Аноним 04/02/21 Чтв 19:06:10 1930665329
>>1930576
> Есть какой-то нормальный аналог этому паттерну?
А, ну да. MVC - если ты так уж аналога хочешь. Удобно и просто.
Аноним 04/02/21 Чтв 19:27:59 1930695330
>>1930371
>Просто так то из памяти я думаю запрещено в память игры внедрятся.
А как же тогда артманя работала?
Аноним 04/02/21 Чтв 19:29:51 1930699331
>>1930576
>Но ебучее нажатие на кнопку реализовать - это же тотальный пиздец. Какие-то нахуй ICommand айхуйкомманд, RelayCommand на несколько десятков строк, да это, ебись оно в рот, не стоит того ради выполнения пары строк кода для изменения интерфейса.
Ну, раньше как было? Нажал на кнопку, сработало событие, которое вызвало нужный метод. А ща нажал на копку, сработало событие, которое вызвало команду, которая вызвала метод, который на нее подписан
Аноним 04/02/21 Чтв 19:56:23 1930725332
Сап.
Прошел 40 уровней джавы, начал переводить один исходничек на джаву, который был только на пайтоне, да так там всё охуенно, что я на 3 месяца в пайтон перекатился и прошел лэтпай. Но сейчас понимаю, что пора бы и честь знать, надо взрослый компилируемый язык учить. Свёлся к шарпам... но ссука открываю это после 3 месяцев питона и плакать хочется, как не хочется опять в эту джаву. Уговорите меня, пожалуйста, парни. Дайте леща, что бы я с питона слез. Как мне обмануть мой мозг? Чем питон хуже сишных? Ведь там, где я два дня матерился в джаве, в питоне я просто пару строк практически наугад написал и оно заработало.
Аноним 04/02/21 Чтв 19:58:38 1930728333
>>1930725
>компилируемый язык
>шарп

Проиграл с дебила.
Аноним 04/02/21 Чтв 20:05:36 1930739334
>>1930728
Ты какой то странный.
а ну, вот эта штучка как называется на вскидку?
scs.exe
Аноним 04/02/21 Чтв 20:08:23 1930742335
>>1930739
>scs.exe
Какой-то вирус.
Аноним 04/02/21 Чтв 20:10:17 1930746336
>>1930742
Интересно. Я тут не местный. А адекваты в этом треде есть вообще?
Аноним 04/02/21 Чтв 21:41:35 1930833337
>>1930564
Лучше в unreal+кресты+3дмакс/блендер/збраш посмотри.
Аноним 04/02/21 Чтв 22:38:48 1930851338
Аноним 05/02/21 Птн 01:07:48 1930912339
>>1930725
Ну так шарп не джава, а язык в котором можно умереть от сахарного диабета. Думаю, код на нем лаконичнее чем на питоне.
> Ведь там, где я два дня матерился в джаве, в питоне я просто пару строк практически наугад написал и оно заработало.
Наведи пример задачи плез.
Аноним 05/02/21 Птн 01:41:59 1930922340
>>1930725
У меня ситуация обратная. Я блять искренне не понимаю людей добровольно идущих на питон после джавы/шарпа/плюсов(особенно после плюсов), это же конченная песочница в которой буквально все сделано за тебя и ты как макака импортишь модулей 20 и пишешь 3 строки кода. Да я js уважать стал, когда увидел что творится на питоне.
Аноним 05/02/21 Птн 02:11:58 1930942341
>>1930922
Я просто не понимаю вообще, как можно писать на игрушечной залупе, когда есть С++ или Шарпы (пишу и на том и на том).

Особенно динамически типизированной.
Аноним 05/02/21 Птн 04:33:15 1930984342
>>1930942
Шарп это такая же игрушечная залупа как и жаба, только вместо жим у неё цлр
Аноним 05/02/21 Птн 05:15:32 1930988343
>>1930984
то есть ну вот оно же быстрей жабы? и не требует кучи говнообразных jre за собой тянуть.
Аноним 05/02/21 Птн 09:42:46 1931035344
>>1930988
Требует. Принцип работы у них одинаковый, разница только в разрабе и в том что под цлр не только на шарпе писать можно
Аноним 05/02/21 Птн 11:56:05 1931133345
>>1930739
Ты случайно не про cl.exe?
Аноним 05/02/21 Птн 12:37:23 1931175346
>>1931133
>>1930739
Вы случайно не про csc (c sharp compiler), поехавшие?
Аноним 05/02/21 Птн 13:36:41 1931227347
>>1930922
>и ты как макака импортишь модулей 20 и пишешь 3 строки кода
То ли дело в шарпе, который в своем хваленом wpf графики из коробки рисовать не умеет
Аноним 05/02/21 Птн 13:49:01 1931238348
>>1931227
>wpf графики из коробки рисовать не умеет
а почему он должен это уметь?
Аноним 05/02/21 Птн 14:00:41 1931257349
>>1931238
А почему формы умеют? Может WPF еще и в кнопки уметь не будет и надо свой контрол писать?
Аноним 05/02/21 Птн 14:06:09 1931264350
>>1931257
>А почему формы умеют
а кто сказал что такой подход правильный

>Может WPF еще и в кнопки уметь не будет и надо свой контрол писать?
Кнопки это базовый функционал и нужны каждому. Более того, они нужны как "кнопки разве что с разным внешним видом" в отличие от графиков, где каждому нужно свое
Аноним 05/02/21 Птн 14:52:49 1931322351
вы че, бомжи обосанные на питон пиздите - охуенный язык
или вам так хочется велосипеды писать? Может тогда уже на ассемблере начнем писать? охуено же
Аноним 05/02/21 Птн 15:18:28 1931356352
Изучаю сишарп по слитому курсу скиллбокса. Помидоры не кидайте, как база очень даже ничего. 22 года сейчас. Есть вообще шансы вкатиться на десктоп бэкенд? При условии конечно что буду вьебывать
Аноним 05/02/21 Птн 15:33:06 1931371353
>>1931356
я понимаю, что ты хочешь услышать слова поддержки
но твой вопрос звучит так
"я вот хочу заниматься футболом, у меня получился, если я буду упорно тренироваться каждый день?"
Аноним 05/02/21 Птн 16:04:29 1931393354
>>1931356
>десктоп бэкенд
Это вообще как
Аноним 05/02/21 Птн 16:25:30 1931407355
>>1931322
>на питон пиздите - охуенный язык
вот только подходит не везде. забавно смотреть на пляски с мультипроцессностью вместо того чтобы взять любой язык без GIL
Аноним 05/02/21 Птн 16:28:53 1931411356
>>1931407
ну вот ГИЛ да - полностью согласен
Аноним 05/02/21 Птн 16:58:27 1931450357
>>1931035
да нет, ты обосрался, достаточно NETStandard.Library 2 размром пару мегабайт, без установки говнообразных 300 метровых JRE
Аноним 05/02/21 Птн 17:50:53 1931499358
Аноним 05/02/21 Птн 17:51:19 1931500359
>>1931371
У меня синдром дефицита внимания, мне сложно концентрироваться долго на определенных вещах, собственно я невнимательны и расссеяный но это касается только мелких вещей, забыл кому поставить, забыл букву написать, пропустил слово на диктанте и тп, но я слышал что в современных программах для писания кода все так умно что программа сама подсказивает тебе что писать, что забыл написать и где программист допустил.
Так какой шанс вкатиться в программирования?
Аноним 05/02/21 Птн 18:07:54 1931521360
>>1931499
стандартная поставка со всеми дистрибутивами винды, и как было сказано, один маленький файл netstandart.dll решает все проблемы, все таки dll это самостоятельная сущность, в отличие от class файлов.
Аноним 05/02/21 Птн 18:20:27 1931530361
>>1931499
Через синглфайл паблиш с триммингом он сожмёт дотнет до 10 мб и впердолит в экзешник, даже ставить ничего не надо. Это же не джавапараша, где открываешь jar-файлы рантаймом как в питоне pyc.
Аноним 05/02/21 Птн 18:46:36 1931545362
>>1931500
как человек с таким же расстройством могу сказать, что все ок
это как с нервным тиком - постарайся забыть, что он есть и перестань пропуск запятой сливать на диагноз
и все должно быть нормально
Аноним 05/02/21 Птн 18:48:07 1931547363
>>1931500
тут и не такие дауны работают
Аноним 05/02/21 Птн 20:04:31 1931611364
Всем, кто тут страдает синдромом самозванца: проведите несколько собесов, и как рукой снимет.
Аноним 05/02/21 Птн 23:21:08 1931775365
>>1931393
полагаю только впф
Аноним 05/02/21 Птн 23:56:13 1931794366
image.png 18Кб, 228x762
228x762
Сори за зелёный вопрос.
Возможно ли в .Net сделать структуру как для каждого скрипта на Питоне(пик), или для каждой программы надо делать новый проект(мейн один рабочий на проект)?
Аноним 06/02/21 Суб 07:59:53 1931961367
>>1926948
Я б с радостью, дружочек-пирожочек, но я до лета перекинулся на дроч егэ.

Нет, я не школьник, мне 30. Ага..

Взял 5 доп. предметов для сдачи на егэ. Хочется сдать хотя бы 2 + рус.мат. Я ебанутый немного,- жить не хочется ну, чуть больше чем обычно уже спустя неделю подготовки. Помогает, разве что, что мне кроме этого и работы ничего делать не нужно т.к друзей нет, растительности нет, населена фаготами.

Но будет интересно посмотреть чего ты достигнешь. Напишу через год, постараюсь не забыть.
Аноним 06/02/21 Суб 08:15:29 1931967368
Аноним 06/02/21 Суб 08:17:00 1931969369
>>1931521
>>1931530
Суть в том, что там такая же среда выполнения как и у жабы.
Аноним 06/02/21 Суб 10:24:16 1932001370
.png 33Кб, 534x660
534x660
Анон, вот смотри, есть два класса, которые почти одинаковы, но у них есть различия.
Допустим, вот пример на пике это как раз та хуйня о которой я говорю.
Так вот, допустим мне хочется чтобы в наследниках я мог получить явный тип, а не интерфейc. При этом мне не нравится вот эта вот залупистика с дженериками.
Есть ли какой-то более изящный способ получить подобное поведение?

Может быть тут непонятно. Но вот реальный пример. У меня есть TCP-сервер на сокетах. На одном порту слушаются и обрабатываются одни сообщения, на другом - другие, на третьем третьи и т.д.. Я хочу иметь возможность получить явно тот тип сообщения и не париться с приведением типа. Потому я TCP серверу ебанул в параметрах женерика - тип сообщений, чтобы можно было прокинуть нужный парсер и обработчик. Но эти дженерики оч сильно раздувают код, оч тяжело читать, оч тяжело потом что-то изменять, мне хочется от них отказаться, а как - хз. Пока что я думаю о том, чтобы вообще просто уйти от наследования и просто сделать два несколько классов, которые просто повторяют частично логику друг друга, да будет копипаст, но будет и легче с этим вот работать, если что-то поменяется, я буду смогу меньше костылей использовать, потому что сейчас иногда выходят жуткие способы обойти наследование. Как второй вариант - я думаю о том, чтобы этот базовый класс уже превратить в сорт оф компонент и просто его передавать в конструкторе дочерним, а общение с ним на события повесить.
Аноним 06/02/21 Суб 10:42:20 1932006371
>>1932001
Что за говно написано? Пиши нормально блеать!
проперти -> private readonly field

По вопросу - не нравятся generic, не пиши.

По ООП:
RT rt = new AT();
Поля всегда берутся из rt, что имеется- определяет rt, а что исполняется AT.
Аноним 06/02/21 Суб 10:52:50 1932012372
Посмотрел исходники .net.
Объясните, зачем в рамках метода там часто делается что-то типа
{
TypeName foo = m_bar;
foo.Buzz();
}
Почем просто это m_bar не использовать? И должен ли я делать так в своем коде?
Аноним 06/02/21 Суб 10:57:44 1932013373
>>1931175
Да. Кто пишет на шарпах, тот знает свой компилятор.
Специально написал для того поехавшего
>на вскидку
что бы отсечь
Аноним 06/02/21 Суб 11:01:21 1932015374
Можно на ваших шарпах как-то в сишном стиле собирать код? Типа вот у меня файлики лежат, вот в той папочке - либы, я указал, слинковал и получил exe один, вместо этой кучи dll
Аноним 06/02/21 Суб 11:07:55 1932017375
>>1931794
АРРРЯРЯ мне не даёт покоя эта хуйня, не игнорите мой тупой вопрос. Я чисто из-за моего бзика пока порядка не будет с структурой не могу начать.
Аноним 06/02/21 Суб 11:28:29 1932026376
>>1930912
Вот примерно про это я писал:


import pyodbc

driver = 'SQL Server'
server = 'xxx.xxx.xxx.xxx'
database = 'Peoples'
uid = 'Кулхацкер'
pwd = 'pwd'

cnxn = pyodbc.connect('DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + uid + ';PWD=' + pwd)
cursor = cnxn.cursor()
cursor.execute("UPDATE Freaks set Huy = 'Pizda' WHERE Gender = Transgender")
cnxn.commit()
Аноним 06/02/21 Суб 11:30:13 1932027377
Аноним 06/02/21 Суб 11:33:00 1932028378
>>1930912
На самом деле я по началу в питоне охуевал от отсутствия жесткой типизации. Просто голова кругом идет. Но потом привыкаешь. Наверное мозг разглаживается лол
Аноним 06/02/21 Суб 11:37:14 1932029379
>>1930912
>>1932026
Т.е. понимаешь, да?
На питоне я ничего даже не написал. Просто настройки и собственно SQL запрос. У меня первая мысль была - а что тут учить то надо, какие библы импортировать штоле?

А шарпы с джавой я сравниваю чисто по синтаксису. Ну одно и то же ведь. Только на джаве я бы для этого неебическую портянку писал и еще оно бы не работало с полоборота, ебался бы два дня.
Аноним 06/02/21 Суб 12:20:57 1932057380
Сап аноны, у меня такая проблемка. Я использую в с# базы данных,
мне нужно вывести таблицу в datagridview с определенным значением, но проблема в том , что если переменная в sql запросе написана на английском, то он ее находит и выводит без проблем , а если на русском, но он нихуя не выводит, кто знает как это пофиксить?
Аноним 06/02/21 Суб 12:28:20 1932065381
>>1932017
>>1931794

Можно всё сделать через операции: прокидывать в args[] Main название операции и главу, например, Chapter_1, Exercize_8 кидаешь, все упражнения у тебя наследуются от абстрактного BaseExercize, где у тебя есть абстрактный (или виртуальный, тут как хочешь) метод Process

Отбираешь нужный класс
var operation =
Assembly.GetExecutingAssembly().GetTypes().Where(t => t.Name == args[1] && t.Namespace.Contains(args[0]) && !t.IsAbstract && t.IsSubclassOf(typeOf(BaseExercize))).Select(i => (BaseExercize)Activator.CreateInstance(i)).FirstOfDefault();

operation?.Process();

Всё это получается через рефлексию, хреново оптимизированно, но можно обойтись без кучи проектов
Ну и естественно аргументы - имя класса и неймспейс (или его часть)
Аноним 06/02/21 Суб 12:29:39 1932066382
>>1932012
Если у м_бар тип отличный от тайпнейм и базз виртуальный метод, то вызов без присваивания тайпнейм переменной будет отличаться
Аноним 06/02/21 Суб 12:45:37 1932101383
>>1932026
>сырой скл
>2к20
Ты сейчас серьезно? В шарпе конечно немножко больше надо ебаться - обьявить свои классы для модели, сделать свой контекст и указать какие в нем таблицы, но это же делается чисто для того, чтобы ты потом вместо
> UPDATE Freaks set Huy = 'Pizda' WHERE Gender = Transgender
Написал
>foreach (var freak in dbcontext.freaks.Where(t => gender == Transgender))
> freak.huy = "Pizda";
>database.SaveChanges()
И при этом шарп за тебя еще базу данных со всей моделлю, если ее нет, создаст. И при этом будет еще следить за изменением всех моделей, чтобы ты в одну консольную комманду мог синхронизировать бд модель с шарп моделью. И да, в 2к20 на шарпе даже скл можно не знать, ведь запросы пишутся на шарпе и юзают шарповые типы.
Но настройка это одноразовая, при создании проекта. В самом же коде тебе этот контекст даже создавать не нужно - просто передай его как аргумент в конструктор твоего класса-сервиса, и шарп сам создаст контекст.


А твой вариант подойдет разве что для одноразового скрипта к существующей базе данных. Но никак не к основному приложению, для которого создается бд.
Сравнение чисел из массива Husk3y 06/02/21 Суб 13:12:44 1932173384
Bia3.png 355Кб, 980x756
980x756
Вкатился в СиРешётка и решил проверить смогу ли сделать самый простой квест.
Условно есть параметр "удача на побег", обозначен массивом int[] luck = { 0, 0, 0, 5, 6 };, который в процессе игры может меняться каким либо предметом, повышая параметр.
Сам он работает так - бросается игровая кость АКА рандомное число переменной dice от 1 до 6, если значение из массива равно значению на игральной кости, то игрок сбегает.
Проблема: не могу понять как сравнить значения в массиве со значением переменной.
Пробовал через for (int i = 0; i < length; i++); { if (dice == luck; ... }, но значение i всегда было равно 0.
Сейчас сделал через сравнение каждой отдельной переменной в массиве - if (dice == luck [0] || dice == luck [1] || ... || dice == luck[5])
, но есть же по-любому способ компактнее это сделать
Аноним 06/02/21 Суб 13:23:51 1932191385
Аноним 06/02/21 Суб 13:24:29 1932195386
Аноним 06/02/21 Суб 15:23:22 1932291387
Аноним 06/02/21 Суб 16:01:50 1932321388
>>1910324 (OP)
Please help.
Если ли какой нибудь способ описать группу элементов на xaml, а потом в том же ксамле вставлять что-то типа <myGroup></myGroup> несколько раз
Аноним 06/02/21 Суб 16:09:43 1932326389
>>1932173
>for (int i = 0; i < length; i++); { if (dice == luck; ... }
Точка с запятой не нужна, т.к. это означает, что ты закончил описание цикла. То есть следующий блок кода в { } расценивается как отдельный блок со своей зоной видимости и не более.
В твоём случаи, можно сделать либо так:
for (int i = 0; i <luck.length; i++){
if(luck == dice){
//побег
}
}
Либо можно воспользоваться этим https://docs.microsoft.com/ru-ru/dotnet/api/system.array.exists?view=net-5.0

Но первый это самый очевидный способ и он не содержит в себе никаких недостатков, помимо того, что занимает 5 строки кода, место 2 или 1
Аноним 06/02/21 Суб 16:13:53 1932329390
>>1930739
Это называется исполняемым файлом. В случаи C# это сборка, которая без .net не запустится. А .net нужен как раз потому, что там интерпретируемый код.
Аноним 06/02/21 Суб 16:41:38 1932349391
Есть ли адекватный способ передать в partial свойство с метаданными? Поясню, например через Html.EditorFor(model=>stringProperty) в темплейте я могу использовать asp-for тэги, и все отобразится с учетом атрибутов повешенных на проперти во вьюмодели. Но если я такое сделаю с <partial model="stringProperty", то меня пошлют нахрен.
Аноним 06/02/21 Суб 16:54:19 1932355392
>>1932349
Отбой, надо сначала доки посмотреть, а потом уже на двач идти.
Аноним 06/02/21 Суб 17:23:36 1932382393
Аноним 06/02/21 Суб 17:28:49 1932388394
>>1932355
>>1932349
А нет, хоть используя <partial for="stringProperty"...> оно меня и не шлет нахер, но Display(Name="Foo") на проперти оно не учитывает.
Впизду это ваше программирование
Аноним 06/02/21 Суб 18:05:27 1932418395
Кто волокет в TCP и портах подскажите. Вот слушаю м пишу я сокетом в порт. Порт то мне для своей программы как выбрать? Тупой из головы любой? Но ведь он может быть занят уже другим приложением каким то, как тут быть, чот не одупляю совсем
Аноним 06/02/21 Суб 18:34:57 1932435396
>>1932418
Ну так тебе порт надо выбрать для сервера, на который будут стучаться клиенты. А сервер тебе подконтролен. Но очевидно не стоит выбирать порты, которые используют популярные приложения и системные (<1024).
Аноним 06/02/21 Суб 18:51:43 1932446397
>>1932329
О как.
Значит .net это, грубо, то же самое, что и джавовский jdk, а равно и сам собственно пайтон? Я сейчас в том смысле, что сначала на чужой комп надо поставить что то, что бы твоё творение там работало?
Аноним 06/02/21 Суб 18:52:26 1932449398
Аноним 06/02/21 Суб 19:00:18 1932453399
>>1932446
В коре можно компилировать в self-contained под конкретную платформу и тогда прога будет включать в себя и рантайм и сможет запускаться безо всего.
Аноним 06/02/21 Суб 19:18:32 1932486400
>>1932435
>А сервер тебе подконтролен
Но, на нем же дохуя всякого барахла еще крутится, мне у каждой проги гуглить, какой порт она юзает? А если я написал охуенное приложение, которое все покупают и используют? Тогда ведь их сервера мне не подконтрольны.
Аноним 06/02/21 Суб 19:31:36 1932521401
Аноним 06/02/21 Суб 20:01:37 1932568402
>>1932486
>на нем же дохуя всякого барахла еще крутится
Ну вбей в гугл 'check if port free %OS%' и проверь свободен прт или занят. Плюс можно на вики посмотреть
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2_TCP_%D0%B8_UDP
>А если я написал охуенное приложение, которое все покупают и используют?
Подай заявку в IANA https://www.iana.org/form/ports-services, и другие смогут нагуглить что этот порт использует hellowrd Пупкина.
>Тогда ведь их сервера мне не подконтрольны.
Но тогда и айпи тебе не подконтрольны, а значит надо клиенту где-то указывать IP, тогда там можно и порт попросить указать.
Аноним 06/02/21 Суб 20:13:04 1932577403
>>1932568
>а значит надо клиенту где-то указывать IP, тогда там можно и порт попросить указать.
Да, и вот потом клиенты будут в тп обрывать телефоны, какой порт писать. Почему 555 не работает, ряяяя.
Вот в промышленности проще с этим. 502 - modbus tcp и все. Хоть и можно порт указывать в программах, но никто этого не делает, есть уже выделенный
Аноним 06/02/21 Суб 20:29:10 1932589404
>>1932577
>Да, и вот потом клиенты будут в тп обрывать телефоны, какой порт писать. Почему 555 не работает, ряяяя.
Так это проеб админа, если у него серв слушает 15000 порт, а клиентам сказал подключаться на 17000. Тут уж какой не выберешь порт можно поломать. А вдруг ты выберешь порт ххх, а он у кого-то фаерволом заблочен? В общем ты пытаешься решить проблему, которой нет.
Аноним 06/02/21 Суб 21:10:32 1932638405
>>1932521
Но тогда получается, что существует только один высокоуровневый православный язык - дважды крест
Аноним 06/02/21 Суб 21:19:10 1932646406
>>1932638
Поучу ка я пока алгоритмы с паттернами по будням. И какой-нибудь godot по выходным. Не буду привязываться к синтаксисам пока, авось, кто то и захватит мир окончательно и бесповоротно. Плюсы учить нунахуй
Аноним 06/02/21 Суб 22:37:49 1932690407
>>1932638
Если ты про компилируемые, то как минимум go и rust ещё
Аноним 07/02/21 Вск 16:31:48 1933354408
Хочу начать изучение c#, но столкнулся с проблемой. Тут есть версии же, с какой начать изучение? А если будет легаси год, то придётся и старые версии знать? Может кто пояснить за версии. И вообще, как язык сам по себе: трудный, лёгкий? Сажусь за него онли ради бабок, т.к. на заводике нужен шарпист + ms sql разраб. Оклад ахуенный для моей мухосрани.
Аноним 07/02/21 Вск 17:07:35 1933391409
>>1933354
> шарпист + ms sql разраб
Не переживай, тебя всё равно не возьмут.
Аноним 07/02/21 Вск 17:08:05 1933392410
Аноним 07/02/21 Вск 17:09:39 1933394411
>>1933392
Кодить СУБД - это помимо шарпа нужно СУБД матчасть знать. Туда ты так легко не вкатишься. Это тебе не формошлёпство на ВПФ.
Аноним 07/02/21 Вск 17:17:35 1933404412
>>1933394
Так его же не на разработку аналоговнетной СУБД берут, а хранимки на 2.5 select писать
Аноним 07/02/21 Вск 17:20:10 1933409413
>>1933394
эта вакансия на производственном предприятии - на заводе)) ты думаешь, там будет овер ебейшая разработка блять?
Аноним 07/02/21 Вск 17:33:05 1933420414
>>1933354
>Тут есть версии же, с какой начать изучение?
Спроси у заводчан. Ты же, наверно, не единственный там программист (а если единственный - сочувствую). Какую версию дадут - такую и изучай. Если ты в свободном полете, то изучай сразу .NET 5.
На самом деле, с фреймворка на кор и обратно можно пересесть за неделю-две, они во многом похожи. А для дроча всяких циклов-ветвлений в процессе обучения разницы между ними вообще нет.
>И вообще, как язык сам по себе: трудный, лёгкий?
Примерно средний. Местами может быть не очень понятным (например, со ссылочностью типов), но когда начинаешь о языке иметь представление - он становится охуенно удобным и понятным.
Алсо, если нет опыта программирования - не рассчитывай, что даже через месяц интенсивной учебы сможешь писать хороший код. По-нормальному нужно уделять на учебу пару месяцев, и желательно еще ментора иметь хотя бы на работе, но я хз, как у тебя с этим дела обстоят.
Аноним 07/02/21 Вск 17:51:00 1933437415
>>1933409
> на заводе)) ты думаешь, там будет овер ебейшая разработка блять?
Ну сходи. Посмотрим как быстро скобачьки с твоей рожи слезут.
Аноним 07/02/21 Вск 18:18:47 1933473416
>>1933354
> с какой начать изучение?
С второй. Раз уж так о легаси волнуешься.
А вообще с любой на самом деле, разница там не так велика.
> А если будет легаси год, то придётся и старые версии знать?
Что это значит? Версии языка отличаются в основном тем что тут мы можем написать array[1..5] а там - не можем, тут у нас есть рекорды, а там - нету.
> Может кто пояснить за версии
https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-version-history
> И вообще, как язык сам по себе: трудный, лёгкий?
Если говорить о том, чтобы сесть и что-то работающее написать - легкий(я сравниваю с сишечкой и асмом, которые были в универе). Если начать копаться в кишочках, то любой язык - сложный.
Аноним 07/02/21 Вск 18:26:44 1933486417
>>1933437
Лол, ты серьезно думаешь, что на заводе, где ВЕДУЩИЙ ПРОГРАММИСТ, обычно получает что-то в районе 60к-80к - какой-то адовый отбор и дроч?
Я вот когда в вузе диплом писал, как раз проходил практику на заводе, так вот, за время практики на всего пришли 5 человек, 4 из которых впервые вообще ИДЕ видели и по образованию эт были прикладные математики, ну и хули, дали им книжку, интернет - за месяц изучите, через месяц мы вам придумаем какую-нибудь работу, справитесь - возьмем на постоянку. Никого, блядь, не отсеяли, даже тех кто не справился с элементарными задачками - послали в сисадмины, кек.
Аноним 07/02/21 Вск 18:43:18 1933499418
>>1933420
>Спроси у заводчан.
Я там ещё не работаю. Я пока планирую изучить C# потому что он там требуется, C/C++ как плюс, но не обязательно вообще. Просто знаю что там требуется такой чел, а в моей мухосрани людей, знающих, что такое C# максимально минимальное.
>>1933437
>Посмотрим как быстро скобачьки с твоей рожи слезут
А ты чего такой обиженный то? Опять дропнули на собеседовании из-за того, что ты не можешь жопку свою продать? Ну не расстраивайся, как через полгодика-год обучения шарпа, устроюсь на заводик, напишу тебе, будешь стажироваться у меня под столом.
Аноним 07/02/21 Вск 18:47:09 1933504419
>>1933486
Работал на крупном уральском медзаводике, чтобы твое резюме на разраба просто посмотрели нужно иметь профильную вышку и от двух лет опыта работы.
Аноним 07/02/21 Вск 18:58:34 1933511420
>>1933499
>через полгодика-год обучения шарпа, устроюсь на заводик, напишу тебе, будешь стажироваться у меня под столом

классные у тебя розовые очки
мимо чел
Аноним 07/02/21 Вск 19:03:45 1933519421
>>1933511
Это не у меня розовые очки. Это у тебя и таких, как ты - серые. Вы думаете, что надо хуеву гору времени потратить, чтобы найти нормальную работу.
На своём опыте убедился, что сами знания в программировании решают процентов на 25 при трудоустройстве. Остальное это наглость, уверенность, чувство юмора и умение найти и решить то, чего ты не знаешь и не понимаешь и самое главное понять, как это работает и запомнить. Всё.
Аноним 07/02/21 Вск 19:14:28 1933540422
>>1933519
>наглость, уверенность, чувство юмора
блин, такие каждый день приходят
а вот
>сами знания в программировании
не дождёшься

нахер не нужен чел, который "умеет найти"
есть задачи. и решать их надо вот сейчас.
Аноним 07/02/21 Вск 19:30:45 1933566423
>>1933519
>Вы думаете, что надо хуеву гору времени потратить, чтобы найти нормальную работу.
Для большинства людей так и есть. Каждый знает хотя бы одного человека, который с шутками-прибаутками, не зная совершенно нихуя, спокойно устраивается куда захочет. Проблема в том, что эта стратегия работает только у него, а всем остальным шутки на собесах ничего не дают. Там, где взяли одного шутника - завалили сотню не менее компетентных людей, которые не наглость и уверенность поможет, а только бог.
мимо
Аноним 07/02/21 Вск 21:24:23 1933657424
16110797950370.jpg 164Кб, 1200x675
1200x675
Сап шарп. Есть один екзешник на винформах, я его декомпильнул dotpeekером, но сами формы в проекте пустые, а в исходниках весь код не в дизайнере формы, а в самом конструкторе что то типа form.Add(button1).
Есть ли декомпиляторы которые сразу могут накидать дизайнер формы или какие-то инструменты скрипты которые могут это пофиксить?
Аноним 08/02/21 Пнд 10:20:23 1933967425
>>1933519
Молодец, первый этап с рекрутёршей пройдешь. Завалят на техсобесе и все по новой.
Аноним 08/02/21 Пнд 14:37:18 1934258426
>>1933519
Кстати у нас например если кандидат дохрена либиться таких даже не рассматривают, улыбнуться им в ответ и скажут мол "мы перезвоним", у хорошо программиста всегда ощущается проффДрифт на характере, самые охуенные програмисты нихуя не ладят с людьми, черты программиста отражаются на харатере и это уж точно не "умение шуточки шутить и либиться на все зубы" хочешь шуточки свои ебаные шутить пиздюй в бугалтерию к тете Любе
Аноним 08/02/21 Пнд 17:05:24 1934466427
Суууукааа.
Какой же ебанутый сатанист пидарас придумал ef дб контексты просто пиздец я ебал (ловлю дб лок при попытке создать контекст в контексте, как его обойти не ебу, т.к. у меня ебанутый код (но автор все равно гомосексуалист)).
Аноним 08/02/21 Пнд 17:19:34 1934487428
Посоветуйте не скучную WPF либу для фронта и дефолтных элементов.
Material design?
Аноним 08/02/21 Пнд 19:26:48 1934664429
Аноним 08/02/21 Пнд 19:49:32 1934685430
>>1934466
Покажи что ты и где пытаешься сделать. Нихуя непонятно.
Да и вообще, что в ЕФ-то может быть сложного? Прописал сеты, прописал как мапить. Все, пользуйся.
Аноним 08/02/21 Пнд 20:10:17 1934718431
public List<IncomeModel> PartsOfMhiAmount { get; }
public MhiPerIncome()
{
Remainder = 0;
IncomeAmount = 0;
PartsOfMhiAmount = new List<IncomeModel>();
}

Почему последняя строка нормально работает в VS 2015, а в старых версиях выдается ошибку "PartsOfMhiAmount is read-only" ?
Аноним 08/02/21 Пнд 23:07:56 1934906432
>>1934718
дэк у тебя только get; стоит, он только для чтения то и доступен
Аноним 09/02/21 Втр 00:27:25 1934966433
Поясните, я ничего не понимаю - есть WPF, я ставлю датагрид, делаю байндинг на дататейбл. И я хочу сделать чтобы можно было удалять выделенную строку или колонку. Как это сделать?
Я могу забайндить СелектедАйтем, потом найти его строку или колонку в дататейбле, а потом удалить их. Но это хуйня какая-то, совсем неэффективно, особенно если таблица большая. Если бы я мог сделать байндинг на номер колонки и строки например - все было бы намного проще, но я могу сделать бацндинг только на номер колонки - а на номер строки никак.
Аноним 09/02/21 Втр 09:49:12 1935055434
>>1932013
Ты из 3 букв 3 написал неправильно, чтоб кого-то там проверить?
Ты ебнутый
Аноним 09/02/21 Втр 09:57:04 1935057435
>>1932101
Ты тралишь? После таких как ты все говорят, что ЕФ тормозит
Аноним 09/02/21 Втр 12:59:11 1935145436
>>1934906
Так в конструкторе как раз вроде можно записывать значение в переменную для чтения
Аноним 09/02/21 Втр 14:15:08 1935258437
image.png 657Кб, 1280x720
1280x720
Почему статик плох если он занимает меньше места в памяти и времени процессора чем не статические члены и методы? почему не делать статиком все что можно?
Аноним 09/02/21 Втр 14:25:54 1935279438
>>1935258
Он не занимает меньше места, более того, если ты не всегда используешь статичный класс, то сделав его не статичным ты сэкономишь оперативную память.
>почему не делать статиком все что можно?
А если тебе нужно n экземпляров каждый из которых будет хранить своё состояние?
Аноним 09/02/21 Втр 14:30:41 1935286439
>>1935279
>Он не занимает меньше места
Он занимает столько же но не повторяется в отличии от не статиков

>А если тебе нужно n экземпляров каждый из которых будет хранить своё состояние?
это случай когда можно не использовать статический класс, ко всех
Аноним 09/02/21 Втр 14:59:01 1935318440
>>1935286
>Он занимает столько же но не повторяется в отличии от не статиков

Ну вот я тебе и привел пример в котором твой статик будет занимать больше места. Допустим у тебя в программе есть условие и выполняется оно раз в сутки, после выполнения идёт вызов метода класса. Ты этот класс сделал статичным, т. е. он у тебя занимает n места на протяжении работы программы. Кто-то его сделал не статичным и он у него занимает n места только один раз за сутки.
Теперь представь, что таких классов нужно не 1, а несколько тысяч. Если сделать их всех статичными, то тебе может не хватить места для того чтобы программа работала, при этом во втором случае достаточно распределить ресурсы оптимальным образом для того чтобы всё работало. И если даже тебе хватит места для хранения тысячи статичных классов, то все у тебя будут спрашивать, почему твой вариант с статичными классами постоянно жрёт несколько гигов оперативной памяти, а другой вариант без статичных классов потребляет в разы меньше в любой промежуток времени.
Аноним 09/02/21 Втр 15:15:41 1935349441
>>1910324 (OP)
Сап програмач. Только что не перезвонили после тестового. Сказали что по функционалу всё ОК, а арохитектура как у уебана.
Где можно щаблон проекта ASP,NET MVC Core красивый найти. Ну и что по архитектуре почитать?
Аноним 09/02/21 Втр 15:18:29 1935357442
>>1935349
По архитектуре любая книга Роберта Мартина. По шаблонам - гитхаб
Аноним 09/02/21 Втр 15:20:07 1935361443
>>1935357
>По шаблонам - гитхаб
Не посоветуешь годный какой? Не все же подряд перебирать.
Аноним 09/02/21 Втр 15:23:38 1935372444
>>1935357
И еще вопрос, у Мартина Песнь льда и пламени Чистый код почитать?
Аноним 09/02/21 Втр 15:23:41 1935373445
>>1935361
Лучший способ попросить ьу них ознакомиться с исходным кодом, потому что все зависити от того как ПРОЕКТИРУЮТ они, у меня часто бывало что прихожу мне говорили архитектура говно, делаю как у нас, начала делать, прошло время, прихожу к другим, то же самое, архитектура говно делай как у нас, у всех свои мерки, свои конвенции, поэтому изучи их код и подстройся к их конвенциям
Аноним 09/02/21 Втр 20:44:55 1935855446
>>1935258
Даже если бы статик в твоей программе давал буст по памяти/времени (которого обычно в лучшем случае нет, в худшем - от статика идет убыток), то ты бы все равно его не использовал, потому что если это так - то у тебя требования к производительности настолько дикие и код настолько низкоуровневый, что ты должен не статики хуячить, а unmanaged код.
А плох статик потому, что он с солидом не совместим от слова "совсем" и поощряет написание адского быдлокода, который невозможно ни поддерживать, ни расширять. Используй правильные скоупы в IoC-контейнере и не выебывайся.
Аноним 09/02/21 Втр 20:57:32 1935874447
>>1935373
Два чаю. В каждой конторе считают свой подход к проектированию самым правильным, остальные пишут говнокод
Аноним 09/02/21 Втр 22:17:24 1935980448
Аноним 09/02/21 Втр 22:22:20 1935984449
>>1935980
Чистый код подойдет, есть еще принципы и паттерны гибкой разработки там примеры кода прям на шарпе.
Аноним 10/02/21 Срд 11:29:22 1936360450
>>1935855
А чем плох низкоуровневый код, ведь если обработать логику кеширования и удаление не нужных статиков тогда это будет буст производительности на пордяки по сравнению с солидным кодом
Аноним 10/02/21 Срд 11:54:01 1936383451
image.png 63Кб, 1452x663
1452x663
Я все правильно сделал?
Аноним 10/02/21 Срд 12:00:34 1936392452
>>1935145
ебани private set и не еби мозг
Аноним 10/02/21 Срд 12:02:20 1936395453
>>1936360
>А чем плох низкоуровневый код
Ничем. Просто C# - язык высокоуровневый и применяется чаще всего именно для высокоуровневых задач. И если ты пишешь условное приложение для десктопа, оптимизируя каждый бит в памяти - ты хуйней занимаешься вместо разработки своего приложения. Реальность такова, что требуются фичи и багфиксы, а не оптимизация всего подряд.
Конечно, есть задачи, когда оптимизация кровь из носу как нужна, но даже там не пишут все через статики, ибо:
>удаление не нужных статиков
Ты как себе это представляешь? Статики по определению не могут наследовать IDisposable и потому статический инстанс не удаляется ни GC, ни руками. Про кеширование тоже непонятно - статик у тебя висит всю программу, от запуска до выхода. Че ты там кешировать собрался?
Короче, прочитай, что такое статики вообще, и вопросы отпадут. И бога ради, не превращай код в говнину лишними статиками. Если тебя волнуют вопросы оптимизации - всегда есть unmanaged код, который C# поддерживает.
Аноним 10/02/21 Срд 12:10:03 1936400454
>>1936395
>удаление не нужных статиков
просто удаляешь не нужные данные из класса и оставлфяешь статик пустым, все, он не занимает места, практически.
>требуются фичи и багфиксы
зачем фиксить если можно писать быстрый код без багов?
>не превращай код в говнину лишними статиками
какая разница что код не читабелен и выглядит как спагетии, главное что бы все работало быстро и что бы ты мог в этом ориентироваться, а если надо будет что-то дописивать, ну так пусть заплатят мне денешку а не будут искать какого-то говноджуна или прости господа индуса потмоу что они тупо не смогут понять что там написано
Аноним 10/02/21 Срд 12:19:12 1936406455
>>1915627
ересь, ты про rest api вообще слышал?
Аноним 10/02/21 Срд 12:29:08 1936416456
>>1936400
>просто удаляешь не нужные данные из класса и оставлфяешь статик пустым, все, он не занимает места, практически.
Ебнуться можно. Ты вообще представление о том, как в C# работает память, имеешь?
>зачем фиксить если можно писать быстрый код без багов?
Напиши 10к строк статиками, посмотрим, как мало у тебя будет багов.
>какая разница что код не читабелен и выглядит как спагетии
А такая, что если тебе понадобится кому-то код показать или посмотреть его самому спустя год - ты знатно охуеешь.
>главное что бы все работало быстро
Опять же, в лучше случае разницы с человеческим подходом не будет, в худшем (и самом распространенном) случае статики производительность отнимут.
>а не будут искать какого-то говноджуна или прости господа индуса
Ты случайно не помогал писать программу для голосования в Москве? А то звучишь как бюджетник с соответствующей квалификацией.

Заебал, короче. Если тебе реально интересно за производительность - читай Рихтера и MSDN, спойлер: статиков там нет. Если тебе хочется просто набыдлокодить максимально мерзкий код - вперед и с песней, сам же говна поешь за обе щеки из-за этого.
Аноним 10/02/21 Срд 12:34:26 1936424457
>>1936416
>Ебнуться можно. Ты вообще представление о том, как в C# работает память, имеешь?
ответь за вброс

все что ты написал не валидно и я уже на это отвечал
Аноним 10/02/21 Срд 13:03:21 1936487458
>>1936424
я мимокрок.
конечно можно обнулить поля в статик классе, только это будет уже говнокод.

даже в какой то книжке по чистому коду рекомендуется для задачи создать граф объектов и потом новый граф для нового случая, а старый позволить скушать GC, а не делать методы типа Init(newState) пытаясь сэкономить на "ну у нас же все уже есть, только немного подменить новыми данными".

Лично у меня такие статитки допустимы только в разном кешировании при кодогенерации, правда обнулять их нет смысла, ведь они кеш
Аноним 10/02/21 Срд 13:06:20 1936497459
>>1936487
а в чем выражается степень "говнокодства"? если это работает быстрее чем создание новых не статических екземпляров разве это можно считать говнокодом?
Аноним 10/02/21 Срд 13:12:20 1936512460
>>1936497
В возможном нарушении инвариантности класса, что нежелательное явление.

Конечно может работать без побочных эффектов - мы ведь знаем про "чего где когда вызываем обнуляем". Но и метод на 10к строк может работать идеаьно - однако это говнокод.

Код должен стараться быть стабильным по максимуму не заставляя тебя помнить про возможные побочки
Аноним 10/02/21 Срд 13:21:35 1936540461
Есть коллекция, тип - абстрактный класс. В коллекцию пихаю экземпляры классов-наследников. Сериализую в жсон.
Но десериализовать Newtonsoft Json не хочет по понятным причинам - у него нет сведений о том, куда запихивать элементы этой коллекции, а в абстрактный класс нельзя.
Есть два стула. 1) создать конвертер, который указывает каждому экземпляру его тип
2) использовать не List, a ArrayLIst.
Что выбрать?
Аноним 10/02/21 Срд 13:25:44 1936546462
image.png 268Кб, 817x382
817x382
>>1936512
что лучше, код который заставляет тебя писать документацию и описивать функционал но который работает быстрее и который требует от клиента что бы с ним работал только ты, или пикрил который работает медленно, который может написать даже дедушка с деменцией но зато все согласовано с современними подходами к программированию?
Аноним 10/02/21 Срд 13:26:14 1936549463
>>1936540
ну обычно если десериализатор видит IList<>, то он создаст List или что там у него задумано под этот случай
потому лучше конкретные типы в месте десериализации.
Вдруг сменишь жсон либу и будет ай
а конвертер для такого случая геморно писать
Аноним 10/02/21 Срд 13:29:33 1936553464
>>1936546
>но который работает быстрее
насколько быстрее? На 1% в лучшем случае? Насколько это оправдано?
Так что очевидно второе. Это и быстрее и в разы надежнее. И даже если вдруг нужно будет оптимизировать, то в 99.99999% случаев это будут не статики, которые не дадут ни капли в оптимизацию
Аноним 10/02/21 Срд 13:35:57 1936556465
>>1936546
> и который требует от клиента что бы с ним работал только ты
Вот это самое главное
Аноним 10/02/21 Срд 13:36:18 1936558466
>>1936553
для пользователя речь идет не о процентах, а о секундах, потому что там ответ на 1 процент быстрее, там один, там на процент быстрее, и в итоге это выливается в ответ конечному пользователю на милисекунды или даже для требовательных проектов и на секунды быстрее, про такие веди как тепловые и енергетические потери я вообще молчу, и это если предположить что реально на один процент, но в реальности будет от 0 до нескольких процентов быстрее, иногда и на порядок процетнов быстрее
Аноним 10/02/21 Срд 13:37:27 1936559467
>>1936556
Это тоже конечно очень важный фактор
Аноним 10/02/21 Срд 13:41:49 1936564468
>>1936558
ты же даже не знаешь как сборка мусора работает, как ты вообще можешь судить о производительности, шиз ебучий
Аноним 10/02/21 Срд 13:42:38 1936566469
>>1936558
обычно это выливается в конечному пользователю в "ваще не вижу разницы" (потому что статик vs не-статик никогда не было hotpath) и в колоссальную разницу в сопровождении проекта для любителя преждевременных оптимизаций и экономий на спичках.

Я не знаю какие нужно иметь кривые руки, чтобы перевод с инстансов на статики дал выигрыш в секунды. Тут 100% дело будет в другом, нежели в этом.

Аноним 10/02/21 Срд 13:47:25 1936573470
>>1936546
>пикрил
>браузер

Но ведь на твоём пикриле не браузер, а обычный говнокод который выводит в консоль текстовое представление страницы находящейся по адресу http://data.pr4e.org/page1.htm

Это хорошо отражает суть тех кто пишет на петухоне - они даже не понимают что конкретно делает их код.
Аноним 10/02/21 Срд 13:47:35 1936574471
>>1936566
пошли маняманевры
>"ваще не вижу разницы"
>какие нужно иметь кривые руки
> Тут 100% дело будет в другом, нежели в этом.

а
>колоссальную разницу в сопровождении проекта
ага, меньшие потери на харвере и большие зарплаты програмистам, вот жуть да?
Аноним 10/02/21 Срд 13:51:06 1936586472
>>1936573
Я это кинул именно как пример СОЛИД ПИТУХОВ, потому что этот код стандартам "высокоуровневых програмистов" верх совершенства, понаподключал библиотек, сделал инициализации, написал несколько рандомных кодов и бегут на борду мерятся у кого меньше строк получилось при это понятие не имея что там твориться внутри этих библиотек
Аноним 10/02/21 Срд 13:52:35 1936589473
>>1936586
Ты не понимаешь что такое СОЛИД.
Аноним 10/02/21 Срд 13:55:43 1936597474
>>1936589
я понимаю что такое солид, это солид питухи не понимают что такое солид, для них если "многа кода" ТО ЭТО СРАЗУ ГОВНОКОД
Аноним 10/02/21 Срд 14:03:36 1936624475
>>1936574
>пошли маняманевры
какие еще маняманевры

я задам прямой вопрос
ЗА СЧЕТ ЧЕГО БУДЕТ ВЫИГРЫШ В СТАТИКАХ?
GC можешь даже не упоминать - сразу разобью в хлам. Скорость поиска по таблице методов? - ну такое бывает с виртуальными с методами (небольшая разница).
Проблема поиска методов при дженериках (о которой знают вообще единицы) в данном случае одинакова для статиков и нет

так в чем выгода то? где ты секунду набираешь?

>меньшие потери на харвере
основную нагрузку делает выполняемый код, который что-то делает неоптимально (алгоритм не тот) или не очень эффективно (не продумали кеширование, оптимизацию выполнения и так далее)

и оптимизация пути выполнения дает много

но это не про статики

Аноним 10/02/21 Срд 14:11:07 1936645476
>>1936597
Ну так на твоём пике с браузером и есть говнокод. А солид как раз не обязательно приводит к уменьшению кода, а чаще наоборот, потому что его предназначение это облегчение поддержки, расширения и использования данного кода, а не сокращения количество написанных строк.
Аноним 10/02/21 Срд 14:27:11 1936682477
>>1936624
Тем что не надо каждый раз создавать новые екземпляры класса, ждать пока система зарезервирует место в памяти для них, ждать конструкторов и тп, ты заполняешь существуюзий и уже аллоцированый класс данними, и так же быстро их читаешь, разница конечно не секунда, но по ходу работы программы большой проект может обращаться к классам сотни и тысячи раз, и какждый раз будет ждать ответа пока не пойдет дальше, все эти потери будут сумироваться и в итоге выльются в ощутимие милисекунды,

>основную нагрузку делает выполняемый код, который что-то делает неоптимально
и что? нужно сделать алгоритм оптимальный и дальше заниматься архитектурними и системними оптимизациями, использовать низкоуровневый код где это возможно работать непосредственно с устройствами, а не использовать какие-либо универсальние библиотеки с кучей заплаток
Аноним 10/02/21 Срд 14:35:16 1936690478
>>1936682
>что не надо каждый раз создавать новые екземпляры класса
>ты заполняешь существуюзий и уже аллоцированый класс данними, и так же быстро их читаешь
Тут есть такая тонкость. Статические классы нельзя инстанцировать. Что ты будешь делать если тебе нужно будет 2 экземпляра твоего статического класса с разным внутренним содержимым?
А если у тебя статики только там где "гарантированно не нужно 2 инстанса" то чем такой статик отличается от такого же "создали 1 инстанс и юзаем получая все плюшки ООП и DI до кучи)????

Ну а так то - Если по какой то причине аллокация создает проблемы, то вводим кеширование ака "пул объектов". Но это уже оффтоп, потому что статик класс не может заменить то, где нужно 2+ инстансов единовременно.

>нужно сделать алгоритм оптимальный... где это возможно работать непосредственно с устройствами
так а статики тут причем вообще? Я вот активно использую Span, которые дают выигрыш, а вот статики нет - от них толку нет

Аноним 10/02/21 Срд 14:38:58 1936693479
.jpg 10Кб, 325x320
325x320
>>1936682
>ты заполняешь существуюзий и уже аллоцированый класс данними
DI аллоцирует класс в начале программы и заполняет его данными по мере использования, если че. Прям как статики
мимо
Аноним 10/02/21 Срд 14:55:19 1936713480
>>1936690
Изначально я просто спросил почему народ не использует статики там где можно, и не пойми меня не правильно я не считаю статик что это решение всех проблем,я просто пишу что по возможности код должен работать быстро настолько это возможно а не быть читабельным настолько что бы тебя мог заменить школьник который учил программирование на ютубчике, из за как мне кажется не верного подхода к программированию производительность кода постоянно уменьшается, и в сраном 2021 году на 16 ядерном проце жду 5-10 секунд пока откроектся ебучая фотография на этой ебучей десятке, я понимаю что расширения фотографий уже не то что было 10 лет назад, и все дела, но бля
Аноним 10/02/21 Срд 14:57:38 1936718481
>>1936713
Не бомби чел, сначала Гейтс должен проверить нет ли часом на пикче цп, а потом только тебе позволят самому посмотреть
Аноним 10/02/21 Срд 15:21:28 1936739482
>>1936713
>спросил почему народ не использует статики там где можно,
очевидно потому что статики ограничивают свободу. их нельзя создать 2 экземпляра, нельзя интерфейсы, нельзя нормально очистить просто забыв о них, нельзя замокать в тестах, нельзя заменить на другую реализацию
по факту "все статики" это процедурный подход в противовес которому и был рожден ООП со всеми его плюшками.

> и в сраном 2021 году на 16 ядерном проце жду
не буду спорить. сам в шоке от этого. потому что пишут "(матерится ж низзя) и в продакшен" для простых решений берут мегалибы. Только дело не в статиках же, а в засилье говнокодеров которым важно быстро написать и продать, и "пусть пользователь покупает новый девайс".
Аноним 10/02/21 Срд 15:28:24 1936747483
>>1936739
>очевидно потому что статики ограничивают свободу
Ответ который я ждал
>потому что пишут "(матерится ж низзя) и в продакшен
сейм
Аноним 10/02/21 Срд 21:14:00 1937039484
Платиновые вопросы:
1) Есть один проект который работает на локальной базе .db sqlite+ef. Могу ли я как-то на линуксе захостить саму базу, подключить к ней "клиент" и не ловить при этом database locked?
2) Какой сейчас на торрентах лучший обфускатор?
Аноним 10/02/21 Срд 21:19:08 1937046485
Аноним 10/02/21 Срд 21:38:08 1937068486
Зачем учить C#, если один ху*й потом JS дрочить придется?
Аноним 10/02/21 Срд 23:24:36 1937165487
>>1936383
Троллишь?
Во-первых. Нахуя тебе вложенные классы?
Во-вторых. Че ты там за хуйню наделал, что коструктор может вернуть null, Ты ебанутый?
В-третьих. Нахуя тебе массив как свойство? Вот серьезно.
В-четертых. За строку длиннее 100-120 символов - пиздят.
Аноним 10/02/21 Срд 23:39:34 1937177488
>>1935258
> почему не делать статиком все что можно?
Потому что такой код трудно расширять и поддерживать. При этом ты не можешь нормально его тестировать. Все вот так вот просто.
Вот давай представим. Тебе нужно сделать туду лист. Тебе изначально так задачу и поставили. Ты, допустим, таки сделал его для консоли. Тебе говорят - ты че, ебанутый, нужно ГУЙ. Ты делаешь гуй. Уже будут проблема со статикой, ну, допустим ты таки уже тут не понял, что затея провальна. Все всем нравится. Но пользователь А - хочет использовать SQLite, пользователь B - хочет чтобы оповещения были на почту, пользователь C - чтобы это все работало в браузере, а D - робко просит добавить возможность кастомизации гуя через CSS. Вот как думаешь, справишься с этими требованиями, если хучил статикой?
Я сам - пользую статику внутри библиотек, типа мне вот все еще кажется, что запилить свой ThrowIfNull - лучше, чем эти ?? ебашить везде. Ну и экстеншин методы без статики не сделаешь, а не всегда есть доступ к исходникам или не хочется делать обертку, ибо многословно выходит. Но все равно, зачастую статика влечет за собой код, который оч сложно поддерживать, он похож на спагетти, когда ты из рандомных мест дергаешь рандомные функции, когда ты не можешь нормально чет поменять, в одном месте не трогая в другом. Короче, статика, не для ютилити(и то в рамках библиотеки), констант и экстеншинов - такое себе.
Ну и самое главное. Нужно понимать, что программисту платят не из-за того что он может решить задачу здесь и сейчас, а за то что он может решить задачу так, чтобы в будующем другие программисты могли это дело расширять, дополнять функционал и поддерживать. Просто нахуячить решение и домохозяйка в состоянии, а сделать код пригодным к переиспользованию, расширению и модификации - уже нужно чуть больше чем освоить базовый синтаксис и быть способным в простейшую логику.
Аноним 10/02/21 Срд 23:48:45 1937182489
>>1934718
Потому что автосвойства появились позже, а старые версии не поддерживают последние версии шарпов. В 15, как я понимаю, ты уже не сможешь рекорда делать и просие штуки последних версий шарпов.
Аноним 11/02/21 Чтв 01:34:21 1937251490
Аноним 11/02/21 Чтв 07:20:41 1937291491
>>1937046
> 1) Да
Спасибо, а можешь подсказать в какую сторону гуглить?
Аноним 11/02/21 Чтв 10:15:10 1937347492
>>1937165
>Нахуя тебе вложенные классы?
А что нельзя?
>Че ты там за хуйню наделал, что коструктор может вернуть null, Ты ебанутый?
Так если нет в базе запрашиваемых данных что мне делать? не возвращать же пустой лист
>Нахуя тебе массив как свойство? Вот серьезно.
Ну а как мне массив биндить?
>За строку длиннее 100-120 символов - пиздят.
У нас так принято писать запросы в базу, нахрена разворачивать одну строчку на овер 100500 строчек если и так понятно что она делает и зачем нужна
Аноним 11/02/21 Чтв 12:19:11 1937431493
>>1937347
я другой анон
1 вложенные классы можно, но какова причина делать их вложенными...сразу и не видать
2 нигде и никогда доселе не видел чтобы кому то в голову пришла идея вернуть null из конструктора.
3 кидать NRE на null - ну да, пусть потом народ гадает че за NRE. и зачем тогда вообще нужна проверка на null
4 у ВАС так принято? ясно. И похер на рекомендации о чистоте кода. Ясно. И похер что читабельность адски страдает - ведь главное что ВАМ удобно
ясно
Аноним 11/02/21 Чтв 12:23:39 1937438494
>>1937347
>Так если нет в базе запрашиваемых данных что мне делать? не возвращать же пустой лист
Это от конвенции зависит. Я предпочитаю возвращать пустой лист, потому что тогда пользователю класса не понадобится делать null-check, и код типа такого будет работать:
foreach (var thing in list) thing?.DoSomething();
И такую хуйню чаще всего и пишут, не проверяя, является ли list - null. В новых версиях Шарпа можно и обозначить эксплицитно, что у тебя метод может возвращать null, что более-менее пофиксит главную проблему с возвращением null, но придется очень много всего переписывать.
мимо
Аноним 11/02/21 Чтв 12:33:29 1937453495
>>1937431
> у ВАС так принято? ясно. И похер на рекомендации о чистоте кода. Ясно. И похер что читабельность адски страдает - ведь главное что ВАМ удобно
Это по твоему нормально когда одна строка, функции и работа которой очевидны, занимает пол экрана скрывая при этом реально НУЖНЫЕ вещи от глаз. Не приятнее ли видеть все что нужно сразу, а не насиловать колесо мышь как не нормальный что бы посмотреть, а что же там внизу после этой очевидной строки происходит

>>1937431
>нигде и никогда доселе не видел чтобы кому то в голову пришла идея вернуть null из конструктора.
>>1937438
>Я предпочитаю возвращать пустой лист, потому что тогда пользователю класса не понадобится делать null-check, и код типа такого будет работать:
проверка на нулл происходит быстрее чем создание нового пустого листа который нужен просто что бы избежать исключения, если есть исключение об этом надо дать знать что бы была возможность его обработать а не создавать заплатки что бы скрыть его от глаз

>вложенные классы можно, но какова причина делать их вложенными...сразу и не видать
Что бы скрыть его от глаз? Этот клас является частью другого класса, не лучше его поместить внутрь что бы соблюдалась иерархия, а не создавать кашу из всех классов?


Аноним 11/02/21 Чтв 12:53:44 1937470496
>>1937453
>функции и работа которой очевидны
очевидны кому? писателю? это значит write-only код?
потому что любой читатель этого кода, который его не писал будет вынужден
а) прокрутить горизонтально
б) запомнить "чо тут нагородили" и держать это в памяти, чтобы не делать потом лишний раз пункт "а"

не говоря уже о том, что короткие строки читаются на порядок быстрее чем длинные.

>если есть исключение об этом надо дать знать что бы была возможность его обработать
ты говоришь с 2мя анонами, поэтому отвечу на свою часть
у тебя там 2 проблемы
1 проверка на нулл и сразу же NRE. зачем вообще проверять на нулл. Среда с радостью выкинет тебе тот же NRE без проверок
2 проверка на нулл + эксепшен нужна людям, чтобы заменить невразумительный NRE на что то более контекстное, которое явно поясняет че где когда - как минимум вменяемое сообщение в исключении, а то и свой тип исключения.

>Что бы скрыть его от глаз?
>не лучше его поместить внутрь что бы соблюдалась иерархия, а не создавать кашу из всех классов?
ну про "скрыть" мимо - они у тебя публичные, а про иерархию....ну тут спорить бесполезно. тут фломастеры, ведь у каждого свой взгляд на "нужно ли обязательно подчеркнуть что вот этот класс находится внутри другого и какой в этом смысл"
Аноним 11/02/21 Чтв 13:15:29 1937482497
>>1937470
>а то и свой тип исключения.
Собственно этот NRE я просто нахардкодил временно, потом я подключу нашу внутреннюю библиотеку исключений и пройдусь поиском везде, где встречается эти и другие типы исключений и заменю на те что в библиотеке

>ну про "скрыть" мимо - они у тебя публичные
Скрыть из списка, у меня конечно же будет доступ к этом классу, он должен быть, но что бы он не мельтешил в списке классов я поместил его туда, а что бы обратиться к нему надо обратиться к составному и потом к нему, так гораздо удобнее

>очевидны кому? писателю?
Это же гребаный линк, очевидно что он просто возвращает параметризованные данные из базы, он в принципе не может делать ничего другого, он не может вдруг сложить числа или вызвать другую функцию, он просто возвращает данные из базы, на всякий случай параметры в нем такие же как в методе, если у тебя метод называется GetAllItemsByCategoryId для тебя уже должно быть очевидно что линк будет возвращать все данные, где сюрприз categoryId == ParamCategoryId
Аноним 11/02/21 Чтв 14:03:34 1937525498
>>1937482
> если у тебя метод называется GetAllItemsByCategoryId
ты щас вообще о чем
посмотри на свой же скрин
Аноним 11/02/21 Чтв 14:18:03 1937535499
>>1937525
Я условно сказал, суть что работа строки с линком очевидна, в методе проверяется состояние колоны в таблице из дб, очевидно что линк подтянет строку с этой колонной из бд что бы прочитать состояние, не будет же он скажем удалять строку из дб в методе где он должен прочитать состояние, для этого будет вызван другой соответствующий метод по типу "RemoveItemByItemId(int itemId)" понимаешь? читать стоку линк это просто не нужно ее работа должна быть очевидной по методу, а если она не очевидна или делает что-то не очевидное то значит метод у тебя говно
Аноним 11/02/21 Чтв 14:26:17 1937542500
>>1937535
>Я условно сказал, суть что работа строки с линком очевидна
долой условности. смотри на реальность - на твой же скрин.

плевать линк там у тебя или что другое
никаких "очевидно" быть не должно.
Код должен быть ясным для чтения, а не "ну наверное там вот так, значит скролить не нужно"

>а если она не очевидна или делает что-то не очевидное то значит метод у тебя говно
ну значит ты в курсе что не так с кодом на твоем же скрине

Если я вижу строчку читая которую вижу там GetAllItemsByCategoryId, я могу допустить что я знаю что она делает. НО Я НЕ ЗНАЮ ЧТО ТАМ ДЕЛАЕТСЯ ДОПОЛНИТЕЛЬНО (и не знаю делается ли вообще) - и буду вынужден прочитать всю строку прокручивая ее горизонтально чтобы увидеть что там не навешано дополнительных условий.

ну и вообще говорить про GetAllItemsByCategoryId и при этом where(d=>d.ID==...&&d.USRID==) ну это как то. Диссонанса не возникает?
Аноним 11/02/21 Чтв 14:39:15 1937553501
>>1937542

>ну и вообще говорить про GetAllItemsByCategoryId и при этом where(d=>d.ID==...&&d.USRID==)

Так там и не GetAllItemsByCategoryId вот было бы ByCategoryId тогда линк был бы с where(d=>d.ID== catiId)

>НО Я НЕ ЗНАЮ ЧТО ТАМ ДЕ