Вы видите копию треда, сохраненную 27 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Литература вторым постом
1. Ресурсы:
— https://dotnet.microsoft.com/learn
— https://docs.microsoft.com/ru-ru/dotnet/csharp/
— https://metanit.com/
2. Онлайн-компиляторы:
— https://ideone.com/
— https://dotnetfiddle.net/
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.
6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin
Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
Текст шапки: https://pastebin.com/pbK8CGqw
— The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
— C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
— C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
— C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
— Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал
— CLR via C# (Jeffrey Richter) — это классика, это знать надо.
— C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
— Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр
Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
— The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
— C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
— C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
— C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
— Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал
— CLR via C# (Jeffrey Richter) — это классика, это знать надо.
— C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
— Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр
Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
Я хочу уже сегодня
У тебя наверное для рефакторинга всякие сторонние тулзы.
Это отваливающиеся ссылки, например, на файлы подключенных разделяемых проектов (но не только их). Отваливается гарантированно при переименовании члена внутри файла, иногда при переименовании самого файла.
Есть догадка что это как-то связано с тем, что студия не сохраняет файл самого разделяемого проекта, причем даже при явном "Сохранить все". При этом если отвалившийся подобным образом файл переименовать в проводнике студии, то на диске она его не трогает, но молча переименовывает в самом проекте, что предсказуемо выливается в ошибку и дальнейший пердолинг с повторным добавлением файла. И вся эта хуйня живет в подобном виде до закрытия/открытия решения, никакие сохранения/обновления/пересборы не помогают.
...ах да, отваливается не только сам файл в котором находился переименованный член, но по цепочке и все файлы в котором он используется.
¯\_(ツ)_/¯
Еще с вс 2017 существует сдк формат csproj. На него можно перевести легаси фреймворк-говно, при этом остаться на фреймворке. У нового формата все файлы по умолчанию включены. Если необходимо что-то исключить или иначе сбилдить, есть wildcard.
Студия вынуждала себя открывать/закрывать, только если между ветками с очень большим отличием переключаться, либо явно удалять bin/obj при переводе с одной версии проекта на другую, либо сорс генератор необходимо изменить. В райдере таких проблем нет. Что такое разделяемый проект я не знаю.
Девочки с хвостиками на твитче стримить-то хоть будут?
Протестировал с всеми типами проектов. Хуже только с WinForms, Wpf и Wcf. Все остальное лучше. Еще и по aws можно гулять. И анализ nodejs лучше.
Я руске термин не понимать.
Если в текущем решении есть несобирающийся из-за ошибок проект, от которого зависят другие проекты(?), попытка выгрузить этот проект приводит к зависанию студии (похоже на дедлок, т.к. гуй при этом живет но отказывается принимать фокус). То же самое может случиться при попытке закрыть решение с несохраненным несобирающимся проектом. Конечно же, студия в любом случае по старой доброй традиции убивает .vs.
Продолжаю мой список наблюдения, посмотрим че они в релизе закроют.
Ничего не закроют. Добавят новых багов. Кек.
Там указано время по часовому поясу белых людей (PT), для вас Мастурбеков это около 9 вечера по МСК. Правда ссылки вроде не сразу после старта ивента выкладывают, так что или ночью или завтра утром все будет.
Лол. У меня вчера такое же было, а сегодня я уже не помню как чинил.
Мужайтесь, нубы, это ваше будущее.
Ну вот так эта сжв контора ведет теперь дела. С нихуя мсбилд начинает переполнять стэк. Не могут часовой пояс правильно обработать.
> 2021
> в браузере объектов нельзя отфильтровать члены контейнера или пространства имен по уровню доступа
MAUI перенесли на второй квартал 2022 года.
объебался со знаками препинания
Бери да ковыряй себе АСП. По ходу дела гугли-изучай вопросы, которые у тебя появляются.
Это же веселей, когда у тебя хоть что-то работает уже.
Пусть немного поначалу и будет немного "магии" для тебя.
Ты прямой кандидат для вопросов: чем отличается 8 шарп от 10, что такое poh, абстрактный класс vs интерфейс.
>чем отличается 8 шарп от 10
Циферой
За 8 плотють 8 сотыг, за 10 - 10.
>poh
Хахаха мне ПОХ ))))))) Кому не ПОХ тот ЛОХ ))))
сам не знал, хуита какая-то для собесов зумеров
>абстрактный класс vs интерфейс
нима имплементации(((( Шо? Ну ладно, я на 8 шарп за 8 сотыг согласен.
Мне обязательно перезвонят.
>чем отличается 8 шарп от 10
Хуй знает. А зачем мне это?
> что такое poh
Водородный показатель.
> абстрактный класс vs интерфейс.
Заебали мамкины умники.
мимо-300ксеньор
>что ты будешь делать с этим кодом?
Выгорать. Очевидно же.
Выгорел пока читал кста.
ты использовал самые сложные слова, которые выучил, что ли?
Нет, только самую простую часть из увиденного пиздеца. Это все гуглится по первой же ссылке.
> В общем дайте прям список того, что я должен знать перед изучением например асп.нет именно в ванильном сишарпе.
Архитектуру айбиэм писи, ЦИСК-процессоров в целом и x86 в частности, основные типы данных .нет, сериализация, биндинги, многопоточность (сейчас еще всякое беззадачное говно типа TAP; даже если сам не будешь использовать то другие будут и придется марать об это руки) и общая эрудиция по содержимому пространства имен.
> во всех роадмапах написано
Своей головы нет? Игры тоже по гайдам с ютубы проходишь? Пиздец, как посрать-то без чужих советов ходить еще умудряетесь.
Когда сможешь написать консольный веб-сервер для хостинга асп-хуйни, тогда можешь переходить к асп. И да, асп как область специализации - полное говно. Туда идут дауны, не осилившие... нихуя.
> асп.нет именно в ванильном сишарпе.
Шарп такой же ванильный по отношению к асп, как диван мягок по отношению вон к тому кораблю.
>беззадачное говно типа TAP
Пояснить за базар сможешь?
>Когда сможешь написать консольный веб-сервер для хостинга асп-хуйни, тогда можешь переходить к асп. И да, асп как область специализации - полное говно. Туда идут дауны, не осилившие... нихуя.
Сам-то ты кто по жизни?
>Пояснить за базар сможешь?
У тебя спрашивалка не выросла.
>Сам-то ты кто по жизни?
Руководитель отдела кадров.
Руководитель код не пишет. Хули ты в треде забыл? Быстро себе срыгос из треда оформил!
Не надо устраивать перепись асп-дегенератов.
Пиздос.
А откуда у меня этот код взялся? Я сам его писал? Или мне его кто то дал? Или просто появился?
inb4: мелкомягкие
Там хэшмапа по идее с каким-то деревом связана, по крайней мере в моно было красно чёрное, которое они тыщу лет не могли на b поменять
Ну вот sorted вроде как использует bst обычный и у него сложность логарифмическая. А обычный словарь это именно хэш-таблица, в ней O(1).
Мой питон окончательно съела бигдата и машоб, а я в это говно не хочу залазить.
Придется учить ваш етот как его сишарп и перекатываться в польшу него
В чём я не прав? сделал как в алгоритме сказано, х неверный даёт, должен быть где-то 1/2 а не 0.9
https://pastebin.com/ieYbJRiy
1 / 2 - это целочисленное деление и даёт 0, а не 0.5.
Константы надо приводить к типу double, например так:
1.0 / 2.0
о, не знал, спасибо
>ваш етот как его сишарп
Ты просишь шарфик изучиться, но делаешь это без увожения...
иди на ГОвно
Opensource же, открой да посмотри
Вот теперь точно нет ошибок в коде, теперь отрицательное значение выдаётся
https://pastebin.com/AJNuPiZy
хеееелп
Напиши проектик на том и на другом.
Вакансии могут быть какой-то мобильной залупой на жаве так как и декстоп залупой на шарфике, определись с чем ты хочешь работать: мобилки, десктоп, веб и уже тогда вакухи сравнивай.
Нормальный проект на шарфике это почти всегда аутсорс/аутсаф на запад. Вот у нас жээва не сильно-то и отрывается от шарфика по вакухам.
Зашел к вам через тор (спасибо дядя вов), пиздец как у вас все круче с дотнетом. У нас даже в дс половина рынка дерьмище типа плагинов к crm365 или десктоп. По факту только в епам остается пробиваться
>мобилки
Мне всегда интересно было, что там такого пишут и что нужно уметь в этой области. На нативном xamarin'е пишут?
Сам работаю в конторе по мобильным играм, у нас свой движок на C# и там все абстракции вокруг ксамарина внутри движка спрятаны. По факту я мобильный разработчик, а про ксамарин нихуя не знаю.
https://pastebin.com/iXMtcQ3E
Только у меня с итерациями какая-то хрень вышла, там по заданию надо еще узнать точное кол-во итераций, а у меня сами задаются
А если честно то нахуй оно тебе надо?
Кол-во итераций
Будешь кланяться бандере и лизать сало.
Смотря зачем тебе нужен этот язык программирования. Если условные лабы делать - то вообще похуй, нормальный язык. Если игры делать - то выбрал то, что нужно, а если что-то другое - то да, объебался. Шарп настолько преисполнился синтаксическим сахарам и включением всех новых фич, нужных энтерпрайзу при условии необходимости сохранения обратной совместимости, тоже нужной энтерпрайзу, что превратился в кровавый пиздец, уступающий разве что плюсам. И не стоит забывать тенденцию движения современного софта в веб, когда большая часть десктопа и половина мобилок уже пилится через веб (на богомерзком электроне и аналогах), и дальше будет только хуже, что означает, что тебе все равно придется учить JS. Вот только у JS есть нода, которая пиздец набирает популярность, шарписты уже активно свичатся на нее, так что при любом раскладе (кроме игр) правильным выбором был бы именно JS.
Малолетний дебил с экстримкод чатика, плиз
Дак на JS уже не пишут, все пишут на TS. А там всякое говно с накатыванием менеджеров пакетов (определенной версии), библиотек, фреймворков и чтобы всё было совместимо друг с другом. А через месяц выходит обнова и у тебя всё ломается нафиг и надо по новой.
Зато по Java больше литературы. Кроме того есть замечательный двухтомник Хорстманна и только ради него я готов изучать Java, но ребята из треда меня отговаривают.
А по C# нет ничего столь же классного из книг.
Котики, бегом смотреть на новый дотнет! Больше нет причин не использовать шарфик для бэкенда.
https://youtu.be/oPyTZ-HGdn4
А есть перевод на русский?
Чёрные женщины умеют программировать?
Молчали бы лучше про MAUI. Позорники!
>>208085
>Стоит ли перекатываться в Java?
Прямо перекатываться с дотнета - особого смысла нет. Но если выбирать между дотнетом и джавой - все же лучше жаву, суть та же, но в постсовке она куда популярнее.
>>208093
>JS это кал, нахуй иди.
Да, да, кал, на котором программируют в 10 раз больше и быстрее, чем на шарпе.
>>208116
Ну да, дотнет в этом плане поприятнее. Но это в том числе означает, что у тебя есть эти самые библиотеки на любые самые извращенные порывы души, без необходимости писать велосипеды. Да и речь про первый язык для изучения шла.
И что такого в этом hot rebuild? Типа меньше кнопок нажимать? На деле проект также пересобирается и только в браузере автоматом страничка обновляется.
А с двача они не будут читать вопросы?
Гайдов про Блейзеру нет вообще. Поэтому никто его не использует.
Ну по скорости это разъеб конкурентов, осталось только принести пруфы кек
Hot reload - бесполезная фигня, лучше бы сосредоточились на MAUI
Перечисления говна:
>>208069 - неосилятор 3 фич "синтастического сахара в новом дотнете", не может теперь на собесе за "интерфейс вс асбрактый класс" пояснить и ноет тут. Какие-то влажные маняфантазии о ноде и ГЕЙдеве. Судя по всему, мыслительные ф-ции напрочь
>>208155 - уже дежурный шиз-малолетка со своими "книгами"
>>208283 - это тоже нюфаг, ни вкуса, ни юмора не имеет. какой же уебищный этот робочибик, ЧВ лучше
>>208301 - совсем свежий школошиз. Это язык для лендингов и инсталяторов с музыкой, знать надо.
>>me - хочу ныть
Ребятки, интерпрайз сила - декстоп могила (при всем увожении к дедам)
Блейзер выглядит круто, но я ничего не понял.
Сейчас всех берут на удаленку.
вместо значка шарфика вот этого вот чибика присобачить? >>208283
Комюнити просит.
Чего это она пересела со своего крутого макпука на шиндовский?
Как вообще она собирается что-то написать в этих 5 строчках? Экран просто засран лишними окошками и кода не видно.
F# разрабатывают диды, а десктоп - девочки
Ой вей
Получается F# - это убийца Perl?
Потому что он его жрёт...
>ищешь вакансии на c#
>берёшь любую вакансию
>помимо шарпа надо знать хтмл, цсс, жабий скрип, нод.жс, петухон, руби, с++, похопе
>зп 80к в Мухосрани для мидла
>150к потолок
Нахуй оно надо, ребята? Я сейчас пишу на впф и решил не обмазываться шарпом ещё сильнее, а перекатываться нахуй
Лучше Джаву учить?
Эх, то же самое, либо фулл-стеком идти, либо хай-лоад, куда меня не возьмут. Вот только проблема с фулл-стеком, что если от JS некуда не деться, то я лучшу буду фронт для крипта стартапа делать к смарт-контрактам, чем в .NET энтерпрайзе Ангуляр ковырять.
Потому что он позавчера появился. А даже по прошествию пары лет, либо в его маркетинг вольют килотонны нефти, либо будет рекурсивная проблема всех новых технологий — бизнесу нахуй не нужно потому что нет ни историй успеха, ни кучи готовых кадров, разбабам нахуй не нужно потому что не нужно бизнесу, и бизенсу их потом не откуда брать.
Нахуй он вообще нужен?
Аргумент "Сишарп девов загнать на фронт - хуита"
Ибо дальше от предметной области, а господа фулстеки уже выцчили ангуляры и им норм. Фронты же точно в позу встанут, похлеще, чем на тайпскрипт в свое время.
Я вот помню вебформс, и почему-то мне это напоминает.
Вы ебанулись? Сейчас кадровый голод. Вебмакакам с 5+ уже 3 сотыги как нехуй делать просить. Херки в очередь выстроятся.
Правда я не с россии.
Подсказка для залётных: это шиз из мвп треда. Тут такое в почёте.
>>209138
>Нахуй он вообще нужен?
Потому что микрософту денег некуда девать. И хаеп.
>Аргумент "Сишарп девов загнать на фронт - хуита"
Аргумент-то хуита, только вот идея заставить разрабов делать всё и сразу будоражить умы эффективных манагеров не перестанет.
>Я вот помню вебформс, и почему-то мне это напоминает.
Ну одна технология может в одно время быть никому нахуй не нужной, а в другое — ебать рынок. Те же нейронки придумали 40 или 50 лет назад, и всем было похуй до недавнего времени — тут примерно такая же логика, + нет вендорлока (правда поезд уехал, но кому какое дело) из-за которого все технологии м$ фейлились вне винды прошлом.
Govno[] GetGovnos(Expression<Func<Govno, bool>> selector)
и следоватеьлно мне нужно написать всзять с SO метод для маппинга экспершинов, правильно? Или я куда-то не туда повернул?
Хуй знает. Я думаю, что не туда, у тебя не только Govno ентити протекает, но ты и открываешь прямой доступ к квери.
На уровне сервиса точно не надо принимать экспрешены.
На уровне репы - тудискасс, но скорее всего тоже нет.
Если хочешь играться с експрешенами, то посмотри паттерн спецификация. Типа https://medium.com/@rudyzio92/net-core-using-the-specification-pattern-alongside-a-generic-repository-318cd4eea4aa
Хуй знает кароч.
Я для себя когда-то смотрел шо пишут умные дядьки по поводу генерик репы с методом с експрешеном - так однозначного ответа не увидел. Для себя решил - нет.
МНение помидоров приветсвуется.
Ладно, поясню ньюфагам:
Юзается ADO.NET/Dapper -> делается репозитори паттерн в качестве асбтракций, по факту имлементируете то, что идет из коробки от ORM, только под свои нужды и с перфомансом, ибо нехуй писать чистые SQL в разных местах.
Юзается EF/Linq2Db/%ormName% -> не выебуйтесь и не изобретайте свои костыли поверх уже существующих абстракций. LINQ не просто так создавался.
В году двенадцатом, в энтерпрайзе начался дикий форс этого паттерна, который был подхвачен инфоцыганами разных мастей, включая статейки от ЛЮБИМОЙ корпорации.
Другой пример инфоцыганства - это dependency injection в мире ООП, любимый паттерн долбаебов на собеседованиях. Почему долбаебов? Потому что приниципы композиции описываются на первых страницах любой книги по любому функциональному языку программирования, когда в мире тупых макаках ООП из этой простой техники слепили целую нахуй экосистему и терминологию, потом обмазываются ей дрочат ещё друг другу и позорятся выставляя в требованиях на работу. Господи.
Грязь.
>Юзается EF/Linq2Db/%ormName%
Несколько запросов надо оптимизировать вплоть до хранимки - ты обосрался.
Надо перешатать схему - ты обосрался.
...
Ты обосрался.
Ну так и не используй. Речь про использования ORM + написание ещё костылей ПОВЕРХ ORM.
Ага, в одном месте используй, в другом используй,а потом "мама чому я обосрался с чистотой кода, транзакциями и т.д"
Не буду с тобой спорить. Ты начитался других индусов, которые говорят "нинужна". Я видел как репо + юнит оф ворк помогает с кокретными кейсами и много оверхеда не несет.
>ньюфагам
Просто иди нахуй, говнокодер (2)
>позорятся выставляя в требованиях на работу
Любитель луковых вакансий на "трейни-" детектед.
>в одном месте используй, в другом используй
Ты тупой?
Если у тебя в одном проекте зоопарк из EF/ADO.NET/Dapper, то дебил здесь только ты.
Имелось в виду, в одном проекте - один DAL, и нужен ли самописный репозитори паттерн или нет зависит от конкретного случая.
Устроился?
>Микрософтам надо самим вкладываться в книги, иначе их платформа загнётся.
Кек пук, книги нужны только для долбоебов жабистов, которые никак не могут дропнуть обратную совместимость и потому перд-академик может выписывать индусам каждые пять лет обновленное издание своего фолианта из нулевых.
Джаваскрипт еще быстрее дотнета меняется, там книги устаревали до написания. Им это помешало? Нет.
нет. я на двачах лишь в /п сижу и пащу свои фотки, а из пр наверно тоько бугурт тред
Чё несёшь, шиз. Книг дохуя, а в с# после асинков только совсем сахар добавили так что по мсдн можно на ходу подхватить.
Ну допустим. А интерфейс спецификации должен быть закрыт типом Entity или DTO? Если энтити, то будет GovnoDto[] GetGovnos(ISpec<Govno> spec) т.е. мешанина из ентити и дто. А если ISpec<GovnoDTO> мне все равно маппить експрешены с типом GovnoDTO в экспрешены Govno. И разве IQueryable это не уже реализованный паттерн спецификация?
Я уже все книги почитал. Нет ни одной уровня Хорстманна по Java.
По фреймворкам ситуация ещё хуже, как правило там одна единственная книга какого-нибудь 2010-11 года.
Хорстман ничего особенного из себя не представляет, крутые мануалы по языку тебе уже советовали.
> По фреймворкам ситуация ещё хуже, как правило там одна единственная книга какого-нибудь 2010-11 года
С тех пор новых фреймворков под дотнетом не появилось, только xamarin разве что.
Да я уже изучил по имеющимся книгам, но послевкусие после них такое себе...
А вот Хорстманн стал для меня как глоток свежего воздуха. Я просто поразился - неужели можно писать тех. книги на таком уровне!? Книга просто великолепная.
>>210302
А Блейзор? Ни один автор про него не пишет. В книге Прайса есть заметка, что технология новая и поэтому про неё он писать не стал.
Это касается и адаптаций фреймворков под Core, т.к. они отличаются от Framework аналогов. Кто сейчас начинает изучать, то не сможет ни один пример откомпилировать из-за несовместимости.
Покажи список чего ты там изучил.
> Блейзор
Пфф, щас бы про каждый проект на гитхабе книжку писать.
Это будущее фронтенда! Или ты собираешься перекатываться на ЖС и ТС с этими ангулярами, реактами, нодами.жс?
Ничего из перечисленного тобой никогда не использовал и не использую. Вот когда будущее наступит, тогда и напишут, пока это очень специфические фреймворки.
>Это будущее фронтенда!
Нет.
Будущее фронтенда - JS, фреймворки и для сложных вычислений WebAssembly + Rust.
900 файлов. Ручками. Заменял. Три часа ебался.
Пожалейте меня.
Даже не знал про то что оно есть. Лол.
В следующий раз - попробую.
Спасибо, няша, возможно ты спас чьи-то 3 часа, которые он потратит в следующий раз на что-то более полезное.
Ну, у нас на работке харкачи в блок-листе, потому скорее я бы потратил время на то чтобы тестики написать (ну, тасок новых не было, потому и хуйней страдать приходится), может быть порефакторил бы нормально, а то недавно были: Нужно вчера, и местами количество говнокода немного увеличилось, нужно бы прибраться.
Постоянно подписываться-отписываться? Или всегда быть подписанным и игнорировать по необходимости?
Не использовать ивенты которые в шарпе.
А так - да, на стороне обработчика - проверять стейт таки нужно всегда, можешь если лень - запилить какой-нибудь пайплайн для обработки событий.
Не, ивенты это обобщённо.
Есть ГУИ, есть несколько контроллеров, которые по очереди общаются с ним коллбэками через обёртку.
Раньше просто чистил все коллбэки при смене контроллера, но потом понадобилось игнорировать некоторые коллбеки ещё до полной смены. Получилась мешанина и из проверки стейта, и из перезаписи коллбэков.
>запилить какой-нибудь пайплайн для обработки событий
Передавать события через что то ещё и там проверять стейт контроллера?
ДЕДЫ В ДЕЛЕ!
Звучит как пост для делфи треда
Когда я искал работу по WPF
Мне многие работадели прямым текстом говорили, что очень сложно найти WPF разработчика, они даже джуна готовы были броать лишь бы закрыть вакансию.
Как по мне отличный способ вкатиться, без особой конкуренции.
На WPF есть конторы где писали хай-лоад шиндовские приложения, например форексовые терминалы типа MetaTrading. Зп за сеньйора там могут доходить до 5-6к EUR чистыми.
Проблема в том, что конечно, в целом, это старое и бесперспективное направление.
Недавно собеседовался в одну неплохую продуктовку, заманили туда .NET5.0/Blazor в вакансии, ну сказали честно что ЭТА РЕСЕРЧ ПРОСТО, а в основном будет WPF, я сказал что не интересно направление и мы расстались. Вот щас думаю, что может это неплохой нишевый вариант, стабильно и ЗП будут расти из-за дефицита.
Spotware/MetaQuotes Software столько дают. Я же не говорил про РФ только. Конечно, в васянкском энтерпрайзе будут платить 95к рублей до вычета за WPF.
> Я же не говорил про РФ только.
Да это я сразу понял. На двачах есть только один народец не имеющей собственной денежной единицы.
> Конечно, в васянкском энтерпрайзе будут платить 95к рублей до вычета за WPF.
Про 17к в /pr язык не повернулся написать? Допиши еще что 95к это только в москве и только по знакомству.
Есть конечно. Сенiорам-понаехалам и меньше платят. Даже в москве. Даже по знакомству.
В моем городе ищут на хх: опыт 1-3 года, зп от 20 000 рублей. Вакансия висит уже второй месяц, пока никто не откликнулся. Вообще я заметил, что на шарповские вакансии у нас никто не откликается в принципе. Есть даже одна более менее хорошая, где: опыт 1-3 года, зп 30-50 000 рублей. Странно, неужели в моем миллионнике никто не учится на программиста?
Вот теперь думаю тоже вкатиться в этот ваш шарп. Сам пхпхер-битриксоид. Что думаете? Буду нарасхват наверное, раз ноль откликов на все вакансии? Или там работа сложная, не для хрупких мозгов битриксоида?
Нахера идти проггером с 1-3 годами опыта за 20К рублей, если в Москве (единственный город в РФ) кассир в Макдаке получает 50К?
Один из городов миллионников. Скажу больше - сдеанонят и начнётся командная травля, создание мемов с моим лицом. Я такого не приемлю в своей жизни, посему называть не стану. Суть ясна так или иначе: в провинции, где живу я, никто не занимается C#. Вижу, что откликаются только на QA и Frontend, даже на PHP никто не откликается месяцами. Ну и на стажерские вакансии откликаются, что вполне резонно.
Так что вкатываюсь к вам. Хотя я еще не решил, потому что язык выглядит сложнее, чем PHP. Боюсь не пойму, что такое делегаты и для чего вам множественное наследование... Завтра решу, что делать. А сейчас надо спать. Всем споки-ноки.
>Один из городов миллионников. Скажу больше - сдеанонят и начнётся командная травля, создание мемов с моим лицом
Буде тоби, Тарас, успокойся, никому это не надо. И город свой секретный с вакансиями по 20к за шарп не называй, и так все понятно. Давайте лучше новую студию обоссым.
Я вот че придумал.
Ну к примеру люди пишут слова и создают объекты People
В этих объектах 2 поля
Name
Count
И один метод который делает Count+1
Человек пишет к примеру Aby, в создается объект Pople с Name = Aby, через конструктор делается Count +1
Этот объект добавляется в List<People>, и потом если человек снова напишет какое то имя то будет чек в Листе есть ли объект с таким именем, если есть то будет вызван метод на этом объекте делающий Count +1, если нет то создается объект с новым именем.
Вроде рабочий варик, но мне кажется он костыльным.
Еще более костыльный это просто имена в список а потом считать сколько повторов есть.
Мб есть какое элегантное решение?
>опыт 1-3 года, зп от 20 000 рублей
>пока никто не откликнулся.
Да неужели...
Может расскажешь, откуда в твоем городе взять 1-3 года опыта на шарпе?
>в провинции, где живу
УдаленОчка.
СЕйчас же все там и поебать с какой ты мухосрани.
>>211438
>и для чего вам множественное наследование
Сук, тральнул (((.
Ну это нельзя назвать прям полноценным мнодественным наследованием.
>>211442
>Тарас
У тарасов у нас на удаленочке можно оче легко 3к рубить, при том не на декстоп говне. Если немного постараться, то 3+ года = >5к. Так что закрой пасть, по треду, как раз таки, у москалей с шарфиком туже
Не политота, а сравнение рыночков.
На всю страну даже 10 вакансий с чисто впф не наберётся, везде это просто приписка к ёбаной куче других технологий
Тоже охуеваю с шарповских вакансий в своей Мухосрани. Требования: нужно уметь и знать ВООБЩЕ ВСЁ, нахуй, связанное с шарпами, а ещё чуть-чуть c++ и жабий скрип. ЗП: 50к. Просто ебанись. Скоро погромисты станут обычными нищими рассенскими РАБотниками такими темпами
Двачаю, особенно хуево, что почти нет вакансий на джуна, везде ищут сеньеров или мидлл
Predicate<T> f2 = F; //норм
f1 = f2; //нельзя
f2 = f1; //нельзя
где мои алиасы и частичн специализация?
Потому что ФП в C# - это по сути костыли и обертки. Вот F# - это православно, хотя не уверен что там в IL в итоге будет.
А что ты хотел, малыш? Говорить на своей фене, верстать страницу и надувать щеки? Ты просто рабочий новой экономики. Пролетарий. Так что, не ты диктуешь сколько тебе будут платить, а тот, кто тебя нанимает.
Ну т.е. если я создам политику "kek" и хэндлер для реквайремента AuthorizationHandler<Ruquirement, Resource>, то я не смогу повесить на экшен [Authorize(Policy = "kek")]
Верно?
Везёт же! А у нас сплошь асп.нет или юнити
с установленный решарпером и dotPeek - да, из коробки - не уверен
Вся серия ин экшон пишеццо индусами и представляет собой копипасту с мсдн. Зачем тебе этот кал?
Я слышал, что эту книгу недавно перевели на русский и эта книга самая актуальная по ASP. Остальные - старье по Framework.
Я просто хочу, что бы вся авторизация работала через аттрибуты, а не дергать IAuthorizationSevice в контроллерах. Или дохуя хочу?
Ну или прочитать сначала боди запроса в мемористрим, потом подминить им оригинальный стрим (там вроде сеттер публичный, но не пробовал), потом прочитать жсон, проверить значения, сбросить позицию стрима (уже который мемори), и пустить это уже дальше на биндинг в мвц. Но это по-моему тяжелая наркомания и не факт что сработает. Вот.
Как вы думаете какое решение этой проблемы? Никогда не догадаетесь! Нужно создать новый проект, но не под Core, а под Framework. После этого кнопка волшебным образом появляется в обоих проектах.
Браво, разработчики!
гуманитарию не нужны, да и остальным в основном 2д, ну 3д для гейдева, ну 4д совсем редко для какой-нибудь экзотики, может 5д для каких нибудь хитрых вычислений. А так не нужны.
Я нагуглил ответ. Видимо проблема не только у меня возникла. В жизни бы не догадался о таком решении.
Я ставил через инсталлер, просто отмечая галочки на первой вкладке, на вторую даже не заглядывал.
if(flag.HasValue(flags.x))
..switch(enum)
....case enum.a: Foo(1);
....case enum.b: Foo(1,2);
....case enum.c: Foo(1,2,3);
if(flag.HasValue(flags.y))
..switch(enum)
....case enum.a: Bar(1);
....case enum.b: Bar(1,2);
....case enum.c: Bar(1,2,3);
выглядик как говно и я не могу придумать как это улучшить. Может кто увидит в этом намек на какой нибудь паттерн?
>>212690
Забейте. Я переписал Foo/Bar и получилось более менее сносно. Хотя если есть идеи по рефакторингу того говна с радостью послушаю.
>>212690
хз, я не придумал. Там суть в том, что флаг выбирает метод (foo/bar или оба), а енум выбирает перегрузку метода.
>>212687
В доках пишут зойчем
>The principal motivations for this feature are
>Default interface methods enable an API author to add methods to an interface in future versions without breaking source or binary compatibility with existing implementations of that interface.
>The feature enables C# to interoperate with APIs targeting Android (Java) and iOS (Swift), which support similar features.
>As it turns out, adding default interface implementations provides the elements of the "traits" language feature (https://en.wikipedia.org/wiki/Trait_(computer_programming)). Traits have proven to be a powerful programming technique (http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf).
Скорей всего для новичка лучше изучать Java, потому что там нет всего этого сахара и язык прост и логичен. Шарп засахарили и он уже стал приближаться к С++ по количество сложночитаемых конструкций.
Я не такой крутой как Вы.
Меня даже небом не назовёшь.
Я читаю справочник по C# Албахари.
Начал читать 3 главу
https://pastebin.com/E05HmpAF
SaveFile(string, byte[])
Что там еще может быть. Только ты не с того конца проектируешь, надо сначала определить апи, и под него уже делать реализацию.
Только потом не ной, что Котлин лучше Жабы и вспомни, что у шарпа сахара много как у плюсах. Жаба-макак память скорее всего отшибает нахуй.
Спасибо, наличие остального всякого смутило.
Понимаю, да. Это просто штыря реализация нужной штуки со стаковеофлов, потому так подгоняю
Еще и должен будешь.
Сделай тоже самое на онгуляре и 300к/digest cycle
Может, я не понял вопрос, но можешь же
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-6.0#apply-policies-to-mvc-controllers
>>212582
Да, вроде бы, можешь, та же линка https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-6.0#use-a-handler-for-multiple-requirements
>>212582
>но стрим не пожжерживает изменение позиции
Да, вро де бы, поддерживает
https://stackoverflow.com/questions/40494913/how-to-read-request-body-in-an-asp-net-core-webapi-controller
Хах, они еще смеют пиздеть, что в шарпе много сахара. Не считая пиздеца по типу анонимного класса или изврата в enum.
удали
>вроде бы, можешь
>но можешь же
Да у меня была проблема с получением данных из запроса до того как сработает мвц.
А вот за это спасибо! Проблема решилась
httpContext.Request.EnableBuffering();
//чтенме
httpContext.Request.Body.Position = 0;
Бамп вопросу
Старые поддерживают диды.
Новые никто не пишет, всё в облаке.
Десктоп умер.
Ради 2% пердунов отдельный интерфейс никто писать не будет.
А молодежь вообще удивляются монитору, почему они тыкают в экран, но ничего не происходит.
Ебучий джун ИТТ. Вопрос, что это за ебаная хуйня на пике? Это такой авто-тупл какой-то? Как такая нотация вообще называется чтобы про нее почитать?
Я хуею. Как вы устраиваетесь на работу с такими знаниями и неспособностью к поиску инфы?
ValueTuple
К примеру, сейчас в книге Петзольда встретил методы:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
а у меня в проекте
ApplicationConfiguration.Initialize();
И как это понимать? Что я должен делать, если у меня код совершенно другой?
Мне мама рассказывала, что у них на работе в начале 2000-х взяли тётку, которая даже не умела компьютер включать. Вот наверняка все местные олды, кто тогда вкатился, знали меньше нашего. А сейчас с умным видом: а чё это ты не знаешь того или этого? Сами-то вы знали это всё тогда?
Сегодня с утра открыл и опять та же история. Надо снова создать проект на .Net Framework и вернуться в этот, чтобы кнопка дизайнера появилась.
Создал новый проект в .Net Framework и открыл свой под Core. Кнопка опять волшебным образом появилась. Хотите сказать, это не баг, а я тупой!?
Вот доберусь до 2022 студии, и узнаем баг в студии или в пользователе). Кста, ты багрепорт уже отправил?
>Мое негодование вызвано нет тем, что кто-то чего-то не знает, а тем, что его взяли на работу, а меня такого умного берут только в пятерочку на кассу
Жуняка? Иди сразу мидлом лол.
>проблема с получением данных из запроса до того как сработает мвц
Как это? В воем запрсе был мвисишный атрибут.
МВЦ там уже поднято.
Это если бы ты в мидлвере был или типа того.
>А сейчас с умным видом: а чё это ты не знаешь того или этого? Сами-то вы знали это всё тогда?
Так тебя то не с ними тогдашними сравнивают, тебя сравнивают с другими текущими претендентами. Какая разница, что ты знаешь в 10 раз больше того, что они знали тогда, если рядом с твоим резюме лежит резюме чувака, который знает больше тебя? Да и вообще, не в шарповом треде подобные претензии озвучивать, ты бы ещё в тред по го пошёл и удивлялся бы, чего это так много знать требуют. А сколько требовать то должны, если шарпистов без опыта набирают по 20 человек в год на всю Россию, половина из которых - это епам по принципу "у кого тут мама работает - того и возьмем"?
>Как это?
Проблема уже решена. Но смотри как это было. Я вешаю на действие атрибут авторизации и указываю там политику. И вот приходит запрос к тому действию, срабатывает фильтр авторизации и дергает мой обработчик для реквайремента. В этом обработчике мне нужно знать значения, которые лежат в теле запроса. Биндинг мвц еще не отработал и единственный способ получить эти значения - это прочитать боди самому, но тогда на биндинг уже уходил прочитанный стрим и все биндилось в null, а попытка изменить позишн в стриме реквеста вываливалась с НотСаппортедЕксепшен. Но как оказалось все решалось методом EnableBuffering (главное на большом запросе его не вызвать, а то там если больше 30кб, то буффер отправляется на диск). Как-то так.
Пиздуй на стажировки в тырпрайзы, там за годик станешь мидлом и сможешь съебать куда захочешь за нормальный мабос
Аноны, подскажите как блять ПЕРЕСТАТЬ ТУПИТЬ. Устроился джуном 3 месяца назад web API + Angular, прошёл пробейшен с хорошими отзывами, но продолжаю совершать банальнейшие ошибки на уровне забыл вынести в константу, добавить атрибут, выбрать неправильное наименование для класса/переменной/роута. Я регулярно пересматриваю свои ПРы, стараюсь анализировать частые ошибки, держать в голове правила чистого кода, но всё равно из разу в раз у меня всё скатывается к одному. Конечно, я замечаю прогресс, что некоторые ошибки у меня начисто пропали, но меня просто из себя выворачивает от своей тупости. Неужели это всё приходит только с опытом? Поделитесь парочкой советов, как сами от подобного избавлялись
Никак.
Я серьезно, то что ты пишешь - это кодстайл. С ним залупаются абсолютно все + эти вещи меняются от проекта к проекту.
Да и в целом это постная хуйня, главное джосны перекладывай
Я откуда знаю? Не я разработчик. У меня такой баг присутствует. В интернете находил таких же горемык. Сами микрософты включают режим "дурачка" и не видят проблемы.
Ну посмотри какой тип у тебя в велью. СТринг? Ну ебни инт.Парс
Размерность массива еще в самом начале задай.
Одно говорит компилятору представить, что там инт, другое - делает инт из того, что есть.
>Я откуда знаю?
Ну ты говоришь повезло что бага нет, вот я и подумал что он не всегда багует.
> У меня такой баг присутствует.
Время переустанавливать шиндуз. У тебя 11? Я на 10 тестил.
>не видят проблемы.
Так и я у себя не вижу. Ты кляузу им писал?
>>215235
>В чём разница между (int) и Int.Parse?
Один кастит, другой парсит, очевидно же. кек
Держи, няша.
Это называется женерик. Имено так и произносится.
Суть. Это как темплейты в С++ только хуевые и не такие классные.
Что делают. Говорят компилятору, что у метода/класса может быть несколько реализаций под разные типы этих вот T. Тот в свою очередь при компиляции проходится по файликам и генерирует методы/классы с нужным типом, т.е. примерно то же что во времена сей было, когда чтобы получить модуль числа у тебя было несколько методов под разные типы данных(abs, dabs, fabs, etc), так вот, умные люди подумали-подумали, почисали репу и решили что программерам будет удобнее в таких вот моментах не думать о том что у какой-то логики должен быть определенный тип и сделали темплейты, потом другие люди не осилили темплейты и сделали хуевые женерики.
>хуевые женерики
А чем они хуевы? Ну, в джаве они действительно убоги, это факт, но там убогость получилась в результате погони за обратной совместимостью.
А в шарпе что плохого?
Ну, как минимум я не могу написать вот так:
T Add<T>(T a, T b) {return a+b;}
И нормальных методов сделать такую вот простую операцию - не завезли (собирались-собирались сделать хоть как-то в шестом, но перехало на следующий релиз, да и все равно что там предлагают намного более многословно чем выше)
Да, я понимаю что специфичный пример. Но блин, очевиднейшая же фигня, которая кажется тем что все ожидают. И да, я понимаю почему темплейтом это сделать изи-бризи, а с женериками вот так вот происходит. Просто когда в свое время у тебя были полностью развязаны руки и ты мог делать что душе угодно, а потом - хуяк, вот это можно, а то нельзя, а чисто по предназначению оно одинаково выглядит - как-то грустненько и вообще.
То что нужно вводить ограничения на тип T прежде чем использовать что-то внутри - очень даже хорошо, похуй что многословно. Жаль ток static abstract завезли только-только (.NET 6). В тех же плюсах альтернатива - концепты - все равно даст написать хрень типа вызова метода, которого нет у типа. Хотя это вроде можно избежать если нагородить cpo, но так оно еще более многословно, чем в шарпе.
Но генерики все равно хуйня
> при компиляции проходится по файликам и генерирует методы/классы с нужным типом
Сдается мне ты пиздишь. Разве женерики закрываются не в рантайме?
Нахуй ты пиздишь, тупой поридж, о чем представления не имеешь? Как раз в отличии от сишных генерики не при компиляции инстанцируются а в рантайме, собственно только в этом их отличие и почему тупые макаки вроде тебя смеют отркыввать свою вонючее ебало (правда ты настолько туп что даже этот пиздёш скопипастил не понимая о чем он).
Linq2db/Dapper, и нахуй выкидывается ваш энтерпрайзный мамбо-джамбо, вопросы будут? Следующий.
Даппер сложный.
> Просто когда в свое время у тебя были полностью развязаны руки и ты мог делать что душе угодно, а потом - хуяк, вот это можно, а то нельзя, а чисто по предназначению оно одинаково выглядит - как-то грустненько и вообще
Ты ебанько хоть бы бложики умных людей вроле Липперта почитал где все это разжевано. Генерик в c# по дизайну не типизированный макрос как на твоих ссях а штука имплементированная в CLR, он и к языку-то не привзяан.
И хуль с того что меньше, ещё раз для закрепления, генерик это не типизированный макрос, схуяли у него должны быть фичи (и недостатки) макроса?
> И хуль с того что меньше
ПРАЛЬНА НЕЧА ИМ СВАБОДУ ДАВАТЬ ИШЬ ЧЕ УДУМАЛИ БЛЯДЬ ПОГРОМИСТЫ ЕБАНЫЕ ВОТ ЭППЛ СВОИМ В ЖОПУ ХУЁВ НАСОВАЛИ И ВСЕ ДОВОЛЬНЫ БЛЯДЬ УХ БЛЯДЬ НАДО КАК У ГОЛАНГА ШОБ НИХУЯ НЕЛЬЗЯ СДЕЛАТЬ ВАЩЕ
ок, считай перешёл с императивного спп на императивный Шарп, нет шаблонов, как писать общий код - генерики. ну не макросы и что, область применения и синтаксис схожи, ток делать с ними можно только ограниченный круг задач, с "макросами" можно, а альтернатив нормальных нет
Если так нужны маросы тебе лучше на лисп перекатываться, ты походу с платформой ошибся.
Дома делай упраженение, пытайся представить как та или иная фича языка может быть реалиована, тогда многое станет понятным.
Няша, ты таблеточки попей, а то агрессивный дюже.
Я знаю как реализовано. И хули?
Суть в том, что шаблоны - мощнее. Да, может ебануть, но почему дизайн языка должен строиться на предположении, что кодеры - долбоебы с памятью золотой рыбки? Может быть на уровне трейни-джуна-начального мидла - это и полезно, чтоб не стрелял себе в колени, но когда у тебя опыт разработки 10+ лет эти вот костыли - просто заебывают.
Вот тебе аналогия относительно дизайна шарпов. Это будто велосипед с дополнительными колесиками, чтоб не ебнулся. Только вот когда ты научился ездить на велосипеде - ездить с такими колесикам, даже в каком-нибудь Тур де Франс - просто выглядит нелепо.
>РЯ! Я ПРОЕБАЛ 10 ЛЕТ ЖИЗНИ НА ДРОЧ ПЛЮСОВ И ВЫДОЛЖНЫ РЯЯЯЯ! МААААМ ПОЧЕМУ ОНИ ПИШУТ БЫСТРЕЕ И КАЧЕСТВЕННЕЕ У МЕН ЖЕ ТЕПЛЕЙТЫ
Там все не так просто, еще и поведение того как оно работает внутри зависит от того ссылочный тип или вэлью. И детально описание того как оно в шарпе работает для человека, который спрашивает что это вообще такое - было бы излишне.
Ну серьезно. Вы накинулись, будто не видя кому я отвечал.
>>215679
Тебе тоже таблеточек попить советую.
Я проебал 5 лет на плюсы и 8 на шарпы, няша.
Ну не знаю в чем преимущество дать неправильную инфу написав, что типы создаются во время компиляции вместо того чтобы написать, что типы создаются во время выполнения. Вне зависимости от уровня спрашивающего. Ну да пIхуй
Так а зачем тогда C++ с шаблонами нужен твой? Статика - это тоже тогда колёсики получается для детей, вон иди пиши на динамико-дрисне на джаваскрипте либо питоне, и дженерики не нужны будут, пускай будет совсем ШВАБОДНО дышать, пока благородные бояре будут использовать всю мощь Хиндли-Милнеровской системы типов для написания алго-трейдингового софта Jane Street Capital.
>но когда у тебя опыт разработки 10+ лет эти вот костыли - просто заебывают.
Пошёл вон. Тебе подпускать к разработке нельзя, если ты с синдром Дартаньяна так считаешь, ЧТО У МИНЯ НЕ УПАДЕТ, а с возрастом ещё и мозг перестает нормально работать.
По факту, все эти лоу-левельные фичи в С/C++ нужны для системного программирования, в домене бизнес приложений - это просто опасно, это понимать нужно после 10+ лет разработки.
Кхм. А я не говорил что 10+ лет я БИЗНЕС ПРИЛОЖЕНИЯ делал, няша. Я как раз - системный программист изначально.
и с шаблонами можно сделать типо trait'ов с помощью tag_invoke итп, так что сравнение с динамической типизацией херня. в шарпе некоторые недостатки и не пофиксить, разве что ждать .net 98 в котором введут очередной локальный синтаксис
>Я как раз - системный программист изначально
Тогда прими мои извинения и нижайший поклон Вашим трудам. Но надо было сразу сказать, что ты котлета и средства уже закончились, вот и пришёл-с милостыню просить.
>>216580
Ну и что, да я плевал на этих плеебев, и всех, кто не понимает, что .NET и C# - это на самом деле план корпорации по внедрению функционального программирования и семьи ML в мейнстрим через F#.
Будь как норм челик.
.net для доступа к сущностям из БД, работы с файлами, какой-то логики которую на фронт нельзя вынести. Фронт на жс на любимом фреймворке.
Фронт за каким-нибудь апачем/nginx.
Ну серьезно. Лично как по мне - такой сценарий - всем лучше. Овин, блазор и прочие поделки мелкомягких на поприще все и сразу в одном. Это конечно весело потрогать, но когда начинается реальный бизнес - ты сталкнешься с тем, что либо банальной таблички которую можно отсортировать и сгруппировать по нужному столбцу - либо нет, либо она за кучу денег. В то время как на жс - у тебя миллион и еще столько же - вариантов, плюс запилить свои компоненты на ЖС - проще, быстрее и удобнее, чем на том что мелкомягкие предлагают использовать.
>Фронт на жс на любимом фреймворке
Когда начинается реальный бизнес - ты сталкнешься с тем, что либо фронт будет билдиться полгода, либо увидишь undefined, либо не сможешь даже банальный utc.now получить, либо будешь использовать альфа версию пакета, либо будешь постоянно бороться с уязвимостями в пакетах, либо будешь дублировать бекенд и фронтенд код, либо будешь очень долго пытаться понять говнокод вротенд макаки по типу миллиарда хоков. Нужное подчеркнуть. Не говоря о выходе очередной версии чаще, чем переписывание на оную.
А то что-то ищу, большинство просмотренного просто не работает на core. Либо там нет авторизации.
Саму тему я так-то понял, но еще не могу сам с нуля, хочу взять полностью готовый классические TODO лист и переделать его под свои задачи
>я тупой, и в упор не понимаю
для таких есть метанит, понимания не добавится, но что-то сделать сможешь.
>Сколько контроллеров
Очевидно для учебного проекта пiхуй, главное в один все не скидывай, хотя если у тебя два экшена на все приложение...
>как их вешать
хз что это значит
>то за лейауты и как в них страницы встраивать
Грубо говоря шаблон общий для страниц. Если ты ничего не шаманил, то по-умолчанию для всех страниц береться из shared/_Layout.cshtml Если ты создал пустой проект, то нужно будет создать _ViewImport, где указать нужный _Layout. (Вроде так. В любом случае про это есть на метаните)
>куда пихать js
Если ты про сами жс файлы, то туда откуда их сможет получить юзер. Обычно это папка со скриптами внутри wwwroot (+ не забыть подкллючить мидлварю через app.UseStaticFiles())
>Так много вопросов
Если только начинаешь жто нормально
>так мало ответов
Неправда. Наврядли у тебя возникнет вопрос, на который в интернете уже нет ответа.
>>216727
>Либо там нет авторизации
возьми Identity, настраивается в пару десятков строк.
>возьми Identity, настраивается в пару десятков строк.
Я не понимаю как проверять.
Не, мне нужен boilerplate пример где бы все уже было понятно подключено.
Т.е. если взять первый попавшийся проект
https://github.com/nbarbettini/little-aspnetcore-todo
он не работает? Там максимум стартап поправить
>>216778
Кстати, посмотрел дам даже есть PR на апдейты до 3.1 и 5.
>>216777
>Я не понимаю как проверять.
Что проверять?>>216777
>Не, мне нужен boilerplate пример где бы все уже было понятно подключено.
Вот и бери Identity. Погугли, он тебе даже страницы дефолтные для логина/регистрации создать может.
Не работает - в репозитории древнее говно, оно не может подтянуть nuget либы. Переделал через новый проект - тупо крашится на какой-то хуите
Я и книгу эту кстати читал - по началу все хорошо, но потом дошел до главы с авторизацией, и автор там вообще нихера не объясняет - откуда-то код берется хуй знает откуда - он нигде не говорит...
>Что проверять?
Да блин, чтобы пользователь мог видеть только свои записи в тодо листе. Я не понимаю как из Identity получить айди пользователя чтобы его сохранить в базу с записью
Вот, я не понимаю что оно от меня хочет - это я скачал с репозитория
>Не работает - в репозитории древнее говно
Зайди в пул реквесты, дам есть готовый код с обновлением под 3,1 и под 5.
>подтянуть nuget либы
>новый проект - тупо крашится
Может тебе сначала основы подтянуть?
>откуда-то код берется хуй знает откуда
Код есть уже норм. Иди в гугл смотри что делают неизвестный тебе классы и методы.
>как из Identity получить айди
Вся информация по юзеру пихается в свойство User контроллера. Либо можешь вручную через IAuthenticationService.
Зайди в NuGet Manager и выбери новые версии пакетов. И напоминаю, что на гите уже есть код в котором всё обновлено.
Что бы понять почему та или иная фичи реализована как есть. Хотя для этого мозг нужен, тебе походу лучше даже не пытаться, 2+2 не сложишь.
>>216302
Если бы знал такой хуйни не писал бы. Сишные макросы-шаблоны не лучше, они другие, со своими недостатками. Ты еще поной почему на шарпе нетипованных макросов (в смысле # директив) как на сях нет или указателей.
> Там все не так просто, еще и поведение того как оно работает внутри зависит от того ссылочный тип или вэлью.
Тебя, дебила, хотя бы это не навело на мысль что прямое копирование с сей не канает? Иди книжки почитай, малограмотное ебанько, а потом уже рот разевай.
> опыт разработки 10+ лет эти вот костыли - просто заебывают.
У тебя не опыт а просиживание штанов в говноконторе с низким уровнем разработки иначе бы тебя выпиздили на мороз с таким уровнем понимания.
Он не обновляет, я даже вообще все удалил, начал заново добавлять именно новые - хуй, он все равно долбил этой ошибкой
>Может тебе сначала основы подтянуть?
Ну давай, расскажи что в этом потоке говна случилось
Я скачал код из пулреквеста под 5
>ет что надо удалить AspNetCore.All, читать умеешь?
Я все удалил
>>216794
>Что за item?
Вообщем тут крашится сторонняя либа Humanizer. Удалил, заработало.
Но проблема еще в том что там какой-то толи велосипед для авторизации, толи не знаю что - короче куча кода
https://github.com/nbarbettini/little-aspnetcore-todo/tree/master/AspNetCoreTodo/Models/AccountViewModels
https://github.com/nbarbettini/little-aspnetcore-todo/blob/master/AspNetCoreTodo/Controllers/AccountController.cs
и т.д.
В 5 и 6 asp такого нет - мне не нравится этот поток муссора
>мне не нравится этот поток муссора
Почему ты решил что это поток мусора? Это и есть код для авторизации.
Ты бы сначала потренировался на пустом проекте просто идентити прикрутить, чтобы лишнее не отвлекало. Ну и дальше уже подгонял под себя.
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-6.0&tabs=visual-studio#scaffold-identity-into-an-empty-project
Ну на метаните есть.
>>216806
Уже давно есть.
да, до последней версии
>>216805
>Это и есть код для авторизации.
Но почему если я создаю проект с авторизацией на 5-6 версии - никакого такого кода в проекте нет, а авторизация работает? Вот на пикче
Меня этот момент смущает - не будет ли проблем от этого велосипеда и того что есть в 5-6 версии?
Я про книги на русском, потому что по C# мало переводят книг, в отличии от Java.
> никакого такого кода в проекте нет
Вот тут написано как сделать чтобы страницы скопировались в твой проект.
https://stackoverflow.com/a/50805403
И кстати RazorPages и MCV немного разные вещи.
Так вот, че смог реализовать - программа считывает весь Json в переменную типа стринг. Далее реализовал класс заточенный под этот json, то есть провожу десериализацию строки с jsono'm в этот класс, ну а далее уже простой метод конверта и записи в csv файл.
Теперь по поводу того, что сделать не могу - понятное дело такой принцип работает только если заточить класс под конкретный json. Как это реализовать?
p.s нужно использовать System.Text.Json а не Newtonsoft
Так ты можешь через линк или циклом перебирать все значения из жсона и конвертировать все это говно в цсв.
Нет, здесь можно только пиздеть что ты сеньор+ и поливать всех говном. Добро пожаловать. Снова.
ну давай недостатки спп темплейтов перед генериками
генерики медленно - шаблоны разувают размер бинарника
давай дальше, гений умеющий складывать 2 и 2
А как мне эти самые значения из джисона получить то? Чтобы было что перебирать. Его либо нужно десериализовать а свой клас(что я и сделал собсно) либо десериализовать в jsonElement а в нем такой хуйни для взятия одного определенного объекта я не наблюдаю(может слепой хз, да и вообще я дохуя новичку во всем этом, учусь только) собсно поясню проще чё мне нужно, мне нужен универсальный тип данных, в который я смогу десериализовать жсон чтоб можно было вытаскивать объекты жсона по одному.
P.s я если честно хз я вообще в том направлении копаю? Как выше написал я нуб без опыта вообще.
P.s 2 у меня вышло реализовать это через жёсткие костыли со сторонними библиотеками newtonsoft.json и ещё какая-то опенсорс параша но мне кажется(уверен на 200%) что все это куда проще должно быть ибо тестовое задание даже не на Джуна, а ваще на стажировщика. И из требований там указано было только - чуть знать сишарп и немного платформу .net
Аноны ,извините ,что не по теме . Прошел собеседование и меня взяли , теперь мне стремно выходить на работу ,тк я ничего не знаю . Я хорошо отвечал на их вопросы ,но я все равно ничего не знаю . У кого было такое ?
https://pastebin.com/4zuQDp39
Если надо шапку первой строкой сделай. Тоже самое, только для одной строки и вместо Value Name.
>>217063
Эх, еще один вкатился. А я как сыч сижу на двощах.
>унаследованный метод
кто от кого метод унаследовал?
>поставлю ему модификатор static
для доступа к нестатичным методам(экземплярным) внезапно нужен экземпляр. Он у тебя есть?
>не видно за пределами класса
Видимость определяют модификаторы public/protected и т.д. От static зависит кому принадлежит метод: типу или экземпляру.
Почему бы тебе не заглянуть в первый пост и не выбрать подходящую книжечу?
System.InvalidOperationException: "The requested operation requires an element of type 'Array', but the target element has type 'Object'."
Выдает doc.RootElement.EnumerateArray()
Уже перечисленного тобой достаточно что бы оба подхода сосуществовали. Разве что "медленно" это слишком громко сказано, если ты под дотнетом то там повсеместно такие накладные расходы в рантайме, если ты его выбрал живи в его парадигме и не пизди. Все отличия генериков от шаблонов это лишь следствия сред (и требований (аксиом) которые к этим средам предъявляют).
> кто от кого метод унаследовал?
Абстрактный класс а с одним методом
обычный класс б наследует из абстрактного класса
Я пытаюсь вызвать в главном методе программы, унаследованный классом б метод. Вызвать пытаюсь через класс б.
> для доступа к нестатичным методам(экземплярным) внезапно нужен экземпляр. Он у тебя есть?
Нет, как его получить? Создать конструктор?
> Видимость определяют модификаторы public/protected и т.д. От static зависит кому принадлежит метод: типу или экземпляру.
У меня стоит public, но это не влияет на видимость. Ставлю static видно, убираю -- не видно.
Спасибо, за ответ.
>Нет, как его получить? Создать конструктор?
Конструктор уже есть по умолчанию. Экземпляр создается с помощью new
>У меня стоит public, но это не влияет на видимость
Влияет
>Ставлю static видно, убираю -- не видно.
Потому что ты вызываешь метод на типе, а не на экземпляре.
про книжку я не шутил
Для работы с JSON в .NET стандартная либа - это Newtonsoft. То что под System.Text.Json - это попытка заимлементить Newtonsoft в стандартной либе, Newtonsoft появился раньше почти на десять лет.
Так-с, до меня допёрло. Я создал экземпляр этого класса и через него вызвал унаследованный метод. Спасибо.
Прости, анон, но можно ещё два вопроса? А зачем вот оно нужно? Т.е. это нужно каждый раз создавать пустой объект, чтобы вызвать какой-либо метод?
А второй вопрос такой. Если я пытаюсь реализовать паттерн шаблонный метод, мне можно в абстрактном классе каждый этот общий виртуальный метод реализовать и, может быть, сделать статичным? Если классы унаследуют виртуальный метод из абстрактного класса, он будет же работать в контексте класса-потомка? Методы в паттерне обязательно должны быть абстрактными?
На страничке в википедии с этим паттерном -- то, что я не мог понять. Забавно.
Ещё раз большое спасибо.
т.е. накладные расходы на память это не хорошо, а на время выполнения похуй? а фичи чтобы код не дублировать никому не нужно видимо
Про память это был контраргумент якобы темплейт во всем лучше генерика.
Как я понял в дотнете ключевым требованием было что бы генерик был полноценным дот.нет объектом, соответсвенно все свойства темплейта которые трубуют что бы он был макросом отсекаются.
Выводы - явление генерика логично и обосновано, но я и чел выше, как я понимаю, просто жаловались на недостаток возможностей, ни больше ни меньше. имо введение static abstract очень приятно например.
Может быть я не прав? Поясните те кому это понравилось, в чем соль. Я действительно чувтсвую себя каким-то долбоебом. Не могли же майки просто говно без задач выкатить и пихать это как шаблон который увидит нюфаг, только что запустивший студию и создавший проект с апи.
Минапи убирается надобность медиатр. Вместо контроллеров делишь на эндпоинты по файлам.
Нет. В большинстве кейсов - наоборот.
Другое дело, что тут ты гарантированно не выйдешь за границы, не совершишь классическую ошибку на единицу и не нужно по разному перебирать разные типы коллекций.
Зачем для приватного value используется 64 битный long, если даже в комментарии к полю написано, что это Standard 32bit sRGB (ARGB)??? Почему бы не взять uint?
Причем лишние 4 байта в коде нигде не используются. Но зато есть отдельное поле short state и отдельное поле short knownColor, хотя они оба поместились бы в неиспользуемый хвост long value.
Особенно удивляет, что для каждой структуры они таскают вместе с ней и string? name, таскают 8 байт на ссылку, которые во множестве кейсов всегда будут null.
Структура Color занимает в памяти 24 байта! Вместо минимально необходимых и достаточных 4 байтов.
Даже беглый взгляд магического индуса на этот исходный код позволит понять, что все эти дополнительные поля в каждом экземпляре структуры легко можно (и нужно) заменить на несколько статических Dictionary от интового value.
Я хоть в чем-то прав, или я тупой трейни и просто не понял гениальности микрософтовского кармака?
Ну и да. Если тебе нужно быстро ходить по массиву туда-обратно, то "скорость" можешь повысить беря сразу кусок памяти с несколькими элементами за раз и делая что тебе там надо. Это и компилятор может тебе соптимизировать иногда, а иногда он не соптимизирует и лучше руками, а иногда - шарп выебнется и накинет дополнительную проверку того что ты не вышел за границы и тогда фор будет медленнее форича, потому нужно в конкретном методе смотреть, если тебе так уж важно эти наносекунды сэкономить.
Ни в чем не прав. И тут я полностью серьезен.
Я, блядь, из-за тебя полез даже смотреть код который там есть, и достаточно, блядь, перевести глаза на что-то кроме полей, как все, сука, понятно сразу, почему так сделано и для чего.
Если ты находишься на этапе освоения переменных и размеров типов данных, это еще не повод лезть в исходники и потом бежать показывать, какие у майкрософта дураки работают.
А если я напизжу, что сеньор + полью всех говном, а потом задам глупые вопросы, то сработает?
>Т.е. это нужно каждый раз создавать пустой объект, чтобы вызвать какой-либо метод?
Потому объекты обычно не пустые. Например тебе нужно 100 точек. Ты же не будешь писать 100 классов под каждую точку, можно написать класс точку и создать 100 экземпляров этого класса.
>в абстрактном классе каждый этот общий виртуальный метод реализовать
Не понимат. Потомок абстрактного класса обязан реализовать абстрактные методы родителя, если сам не является абстрактным классом.
>может быть, сделать статичным
Статичные методы не могут быть абстрактными/виртуальными
>классы унаследуют виртуальный метод из абстрактного класса, он будет же работать в контексте класса-потомка
Не понимат х2. Потомки наследуют все методы родителя.
Если ты в потомке переопределяешь методы базового класса, то будут вызываться переопределенные методы даже по ссылке типа базового класса.
>Методы в паттерне обязательно должны быть абстрактными?
Виртуальные тоже считаются.
По идее стек имеет высоту в зависимости от контента, в данном случае равную высоте лэйбла. Так что лэйбл находится по центру стека. Не думаю, что стек можно растянуть на весь экран, так что лучше использовать грид. С замарианом не работал, могу ошибаться.
>>217532
Да, но отрицательный.
>>217570
Попробуй.
Забавно.
Раньше форич всегда был медленнее.
Как же этот момент заебывает. Вот ты году в 2011 что-то узнал, работаешь себе кучу лет, потом втихаря мелкомягкие что-то поменяли и теперь твои знания потеряли актуальность и тебя уже какой-нибудь джун толковый может подловить на пиздеже, а ты ведь даже не пиздишь, просто информация неактуальна.
Проверь это на третьей версии шарпов.
Надо заставить всех программистов раз в полгода проходить аттестацию по тем вопросам, которые задают на собесах и по итогам снижать им зарплаты.
У тебя правильно. Согласно заметкам разработчиков for и foreach должны работать примерно одинаково для массива. Почему на моем процессоре foreach работает быстрее, а хрен его знает.
Эти микро бенчмарки все равно херня. Только использование какого-нибудь NBomber на реальной машине и реальном коде показывает реальную картину.
Куда мне снижать? Я и так работаю за 40к. 20к отдаю за квартиру. Тут чтоб ноутбук купить - пришлось кредит взять.
Тогда я не смогу за квартиру платить же и буду вынужден искать работу где платят больше.
Ну, максимальный кредит что мне готовы одобрить - 120к. Этого не хавтит чтоб свою купить.
Ты можешь смотреть IL/Compile/Asm на сайте sharplab.io
Можно написать плагин, он не сложно пишется. Если его еще не написали. Заодно напиши плагин на синтаксическое дерево.
>Не понимат. Потомок абстрактного класса обязан реализовать абстрактные методы родителя, если сам не является абстрактным классом.
Я неправильно выразился. Я хочу вынести общее поведение классов в абстрактный класс от которого они наследуют, но в самом паттерне написано, что это общее поведение нужно будет переписать в каждом классе. Почему тогда абстрактный класс, а не интерфейс, спрашивается... Если я вынесу общее, то это уже будет не паттерн, так?
Из этого следует второй вопрос, на который, ты уже ответил спасибо, но я всё равно уточню. Если я переопределил методы абстрактного класса и вызвал их через класс потомок, то это же будет метод класса потомка? Я не попаду на метод абстрактного класса?
А если я не переопределил?
То же самое касается полей. Поля которые унаследованы, они уже являются полями класса-потомка? Они же никак не связаны с такими же полями класса-родителя? То есть, это как если бы я объявил эти поля в классе-потомке?
Ещё раз спасибо.
Можешь войти в долю по покупке холодильника и забрать себе коробку
> но в самом паттерне написано, что это общее поведение нужно будет переписать в каждом классе
Абстрактный класс нужен для того, что бы иметь абстрактные методы (или по какой-то причине нужно запретить создание экземпляров базового типа, но шизоидные расстройства рассматривать не будем), а абстрактные методы не могут иметь реализацию. Т.е. базовый класс не знает как должен быть реализован некий метод, например возьмем класс Stream, у которого есть метод CopyTo, базовый класс знает как произвести копирование - прочитать из источника и записать в целевой стрим, а вот как производить чтение/запись решает уже потомок (файл/сеть/опрератива). Но для шаблонного метода абстрактный метод не обязателен, виртуальный метод тоже подходит: ToSting() - пример шаблонного метода.
>Почему тогда абстрактный класс, а не интерфейс, спрашивается
Во-первых, класс может реализовать тела некоторых методов (извращение в виде дефолтной реализации методов интерфейса рассматривать не будем), во-вторых иерархия: наследование говно это жесткая связь X является Y, а интерфейс контракт X может делать Y.
>то это же будет метод класса потомка?>
>А если я не переопределил?
>То же самое касается полей
Класс - это чертеж, по которому будут изготовлены его экземпляры. Даже экземпляры одного класса будут иметь каждый свой набор данных. Это касается нестатичных методов/полей. Для статичный тоже самое но на уровне типа а не экземпляра и там нет виртуальных/абстрактных членов.
Судя по твоим вопросам ты не понимаешь ни что такое наследование ни что такое классы а потому ИДИ ЧИТАЙ КНИКИ БЛЕАТЬ
Я просто хотел убедиться, что унаследованные поля не будут перекрывать поля другого класса. Я убедился, спасибо.
Я прочитал главу про наследование из "The C# Player's Guide". Узнал, что объект класса родителя можно инициализировать через конструктор потомка. Мощно.
>унаследованные поля не будут перекрывать поля другого класса
чего блять.жпг
>объект класса родителя можно инициализировать через конструктор потомка
Шта?.жпг
Ты точно что-то понял?
1) Ну так это c# это ж ссылочное что-то там.
2) Вот это:
Using Derived Classes
Derived classes are just like any other class, and can be used as a type just like any other class. From a
basic perspective, there’s nothing special about how you use them:
Polygon polygon = new Polygon(3); // a triangle
Square square = new Square(4.5f); // a square, which is a polygon with 4 sides of length 4.5.
But here’s the interesting thing. Because the computer knows that a Square is just a special type of
Polygon, you can actually use the Square type anywhere that you could use a Polygon type. After all, a
Square is a Polygon!
Polygon polygon = new Square(4.5f);
As the program is running, when we’re using the polygon variable, we only have access to the stuff that a
Polygon has. So we can check to see the NumberOfSides it has. But as the program is running, we can
only treat it as a Polygon. There’s a chance that it is a Square (or another derived class), but the computer
won’t assume it is. So we won’t be able to automatically use stuff created in the Square class in this
particular case. Because our variable uses the Polygon type, we can only work with the things the
Polygon type defines.
While we can put a Square in a variable with the Polygon type, you can’t go the other way around. You
can’t assign a Polygon object to a variable with the type Square, like this:
Square square = new Polygon(3); // Does not compile.
This is because while all squares are polygons, not all polygons are squares.
1) Шта?
2)Там говорится про тип переменной, а не объекта. Т.е. переменная типа Base может указывать на объtкт типа Derived.
Да, я дурак, в любом случае, спасибо.
алсо, вот, выучился пользоваться инструментом, синтаксис и все дела, но КАК его применять, что с этим делать? Помогите начинающему разрабу
Депрекейтед. Если надо это говно, можешь кроме впф посмотреть винуи и авалонию
Я раскрою тебе страшную тайну, только тссс. Если ты знаешь впф, то ты можешь писать на любой замл-подобной хуйне. Увп сдохло.
Вот есть некая таблица типов(классов) которые мы объявили. Класс это, по сути структуры со ссылками на функции которые можно использовать в контексте объекта плюс данными о переменных(полях), ну какие поля, как обозвали, размер и прочее, чтобы при очередном создании объекта - выделить нужный кусок памяти.
Когда мы создаем объект, на самом деле есть скрытый от глаз программиста механизм, который конструкцию MyClass myObject = new MyClass(a, b) развернет во что-то типа такого:
Object myObject = CreateInstance(Classes.MyClass, a, b);
А вызов метод myObject.Foo(); будет чем-то типа:
Call(Classes.MyClass, Foo, myObject)
Чи я не прав и совсем не понимаю как это концептуально работать должно?
Какое отношение ООП имеет к тому непонятному бреду про создание класса и вызов метода?
Ну, мне интересно именно как происходит это вот связывание куска памяти выделенного под объект с теми функциями и процедурами и как делается так, что мы можем получить именно те данные что у созданного объекта.
Вот давай представим, что ты решаешь писать это вот ООП на ассемблере/си. Как бы это должно было быть реализовано?
1. Объект может быть выделен в куче или стеке.
2. В куче может быть выделен 3 способами.
3. При вызове метода может произойти апкаст, зависит от принадлежности метода какому-то типу, скажи спасибо неявному имплиситу. Или результат композиции. Из-за разбросанных данных в куче существует техника хранить данные линейно, что к ООП не имеет вообще никакого отношения.
4. На C# нет процедур. Как работают функции я не знаю. Методы принадлежат к типу, причем статические и не статические отличаются.
>должно было быть реализовано
Как должно быть реализовано? В расте zero cost абстракции и нет хопов по виртуал коллам.
Вам на работе не ебут мозг, ЭТО МЕТОДЫ СУКА ФУКЦИИ В ПАСКАЛЕ?
А то мне на первой РАБотке после универа, это настолько вбили в голову, что теперь я сам дергаюсь когда джуны их функциями называют
Ну, я не называл методы функциями в посте выше. Т.к. что я говорил в контексте условных Си и как бы на нем реализовывлось ООП со связыванием адресов функций со структурой и данными в ней.
А так, я просто книжки читал, там использовали терминологию с методами, когда пришел на работу - все так же использовали такую же терминологию. Когда приходит условный студент - ему просто дается талмуд, в котором есть соглашение о терминах, стилях, именовании, плюс сразу для новичков пояснение где они могут на грабли наступить, чтобы как минимум знали, что можно сразу посмотреть готовый рецепт, если таки наступили, вместо того чтобы гуглить и копипастить непонятную хуету со SO.
>вы
В двух постах от одного и того же анона из 400+?
>ЭТО МЕТОДЫ СУКА ФУКЦИИ В ПАСКАЛЕ
Попаболь от паскаля? Функции есть на C++.
Функции и в шарпах есть.
Что по твоему это:
class A{
//метод
public void Foo(){
//функция
void Bar(){ Console.WriteLine("Im function!!!");}
Bar();
}
}
Это ты пост читаешь жопой.
С чем это связано? Я думал в качестве первого яп его поучить
>ну какие поля, как обозвали, размер и прочее
Это хранится в объекте типа.
>есть скрытый от глаз программиста механизм
Нет никакого скрытого механизма. В CLR есть опкод newobj.
>А вызов метод myObject.Foo(); будет чем-то типа:
>Call(Classes.MyClass, Foo, myObject)
Нет, это будет скорее
MyClass.Foo(myObject).
>совсем не понимаю
Рихтер CLR via C#
актуально
Пока сделал через Convert.ToInt32 енумов, но выглядит как костыль, тем более, что андерлаингТайп может быть не int32.
В самой энамке создай значение All = A | B | ..., а при проверке касти энамку в тип значения, по дефолту int.
>энамке создай значение All = A | B
Я пытаюсь сделать более менее общее решение, и во все флаговые енумы пихать все возможные сочетания не варик. Да и чем он будет тогда отличаться от не флагового.
>касти энамку в тип значения
Нельзя скастить T к инту, даже если стоит ограничение T : Enum
>по дефолту int.
А не по дефолту может прилететь long
Понимание чего? Может у тебя оно есть? Так-то я уже сделал, хоть получилось и многословно.
Хуевый код, но зато работает!
покажи
Блин. Делай сорт-оф органайзер на микросервисах.
Вот тебе в виде идеи.
Программа минимум:
Пользователь создает задачу, указывает время когда задача должна быть выполнена и в зависимости от настройки - ты ему на почту или пуш-уведомлением шлешь напоминалку.
Средний уровень:
Управление проектом.
Пользователь создает проект, может ставить в нем задачи и подзадачи, может назначать ответственных и следить за статусом выполнения проекта. Предупреждая о том, что вот подходит дедлайн а эти хуи еще не сделали.
Программа максимум:
К среднему уровню прикручиваешь управление бюджетом и ресурсами, всякие генерации отчетов, возможность обмена файлами, сбора всяких метрик по эффективности всяких сотрудников, возможность назаначать бонусы в зависимости от того насколько быстро выполнили задачу, строить диаграммы Ганта, ставить метки задачам и подсказывать управленцу на основе предыдущего опыта подобных задач - наиболее подходящих исполнителей в зависимости от загруженности других, сроков и предполагаемом бюджете на проект.
for (int count = 1; count <= 3; count++) {
muhstr = "test";
}
Console.WriteLine(muhstr);
Почему это не работает? На бесполезный цикл не смотрите - неумело переделал из другого примера, в котором за пределами цикла переменной присваивалась пустая строка, к которой уже в цикле добавлялось что-нибудь еще. Решил для интереса сделать только declaration за пределами цикла и initialization внутри него и получил "Use of unassigned local variable".
Компилятор исходит из того, что в общем случае цикл может выполниться ноль раз. И поэтому считает, что muhstr может быть не инициализирована. Сделай так
string muhstr = null;
Нет.
Возможно.
Не исключено.
Кто знает...
Её ещё не перевели. Читай по 7 версии пока.
Из последних перевели, но на торренты не выложили книгу "ASP.NET Core в действии". Вот её ждём. Остальные даже не переводятся судя по всему.
https://github.com/saifaustcse/dotnet-developer-roadmap
>>219355
>>219247
А знаете что еще переведено? Доки и туториалы на мсдн! Да, не всегда машинный перевод дает корректный результат, но зато самые актуальные данные и бесплатно!
Вот у меня есть FooController содержащий список овощей. Теперь пользователь щелкает по одному овощу и открывается страница с его детализацией.
В примере мсдн (а также если создавать crud контроллер через студию) - все это делается одним контроллером - то есть хотя там и есть то что мне надо - список сущностей, и возможность открыть любую из них (а также добавить, удалить, изменить) - но все это делается одним контроллером - это же блин само нарушение принципа MVC.
а вот найти пример как оно бы из FooController передавало выбранный фрукт в Foo2Controller - я пока не нашел.
Да, понимаю что можно банально редиректом site/Foo2/?: на html передав айдишник овоща... Но это же явно херня способ - любой "хакер" школьник просто подменит туда другой айдишник и украдет важные данные.
Наверняка же должен быть более адеквантый безопасный способ
И вообще где-нибудь есть наборы примеров по asp.net? А то как-то не густо в интернете - вроде и делаю базовые вещи, а найти примеры не могу
Спасибо анон, но я этот роадмап находил сам как раз. Тогда вот такой вопрос для того, чтобы претендовать на место джуна нужно пройти все красные флаги с этого роадмапа? Это вообще роадмап на джуна расчитан или уже углубленный?
Прост хуй знает, этот роадмап по моему хотя бы на 1к часов изучения расчитан(если еще и практику не брать) а это за два года можно осилить только и то с большой натяжкой и если заниматься хотя бы по часов 6 каждый день
Вообще кто может посоветовать куда дальше двигаться?
Вот знаю я к примеру основу с# понимаю основу ООП мне че дальше вообще учить то? В тырнетах нигде нихуя толком не сказано, роадмапы какие-то ниебических размеров на 2-4 года интенсива, совету уровня "смотри вакансии и учи стек который там" но вот по вакансиям я вообще хуй знает, везде разные требования да и даже основные требования хуй пойми как написаны. Вот на конкретный вопрос может кто ответить, что должен знать джун по умолчанию, то есть вот прям точно обязан знать что?
Это сферический роадмап в вакууме. В какой-то компании больше нужны одни скилы, в другой другие.
>чтобы претендовать на место джуна нужно пройти все красные флаги с этого роадмапа?
не обязательно. Если пойдешь на проект на впф, навряд ли тебе помогут знание web api (может как дергать, но ни как писать)
>на джуна расчитан или уже углубленный?
На джуна скорее, но это не значит, что ты должен все эти технологии знать в совершенстве
> это за два года можно осилить только и то с большой натяжкой и если заниматься хотя бы по часов 6 каждый день
ХЗ, но за 21 день программистом не станешь, если только плюсовиком
>с# понимаю основу ООП мне че дальше вообще учить то?
Запили свой проект, во-первых узнаешь что надо подтянуть, во-вторых будет что в резюме показать. А потом иди на собесы, там уже узнаешь чего не хватает для реальной работы
>на конкретный вопрос может кто ответить, что должен знать джун по умолчанию
никто. Компании берут человека для выполнения конкретных задач и они разные у разных компаний
>вот прям точно обязан знать что?
ну пожалуй красные флажки плюс-минус обязательный минимум и есть
>будет отвечать на вопросы(скорее всего дебильные для него) и тратить на это время.
Ну не за бесплатно же. А всяких онлайн площадок до жопы.
>банально редиректом site/Foo2/?: на html передав айдишник овоща...
именно так
>любой "хакер" школьник просто подменит туда другой айдишник и украдет важные данные.
если какие-то данные должны быть доступны только Васе, то надо использовать аутентификацию и авторизацию. Пллюс содержимое может генерироваться для каждого свое. Вот заходят на vk.com, но не читают же личку друг друга
>И вообще где-нибудь есть наборы примеров по asp.net?
На гитхабе на любой вкус
>не густо в интернете
>найти примеры не могу
тогда сначала научись пользоваться интернетом
Да хуй знает кто там в инетике под никами скрывается. Прост топ совет по любому запросу везде найти ментора.
Для тянок это реально работает.
Когда же такое советует парень - это не более чем вежливое "отъебись от меня, пошел нахуй, другого кого доебывай"
то что я прочитал на метаните это какая-то чушь вроде
если viewData = "оп хуй", тогда оп хуй!
чушь если честно, попробовал на реальном проекте затестить в реально важном таске, и он мне показывать мол нулл референс хотя если тестить все ручками никакого нулл референса даже теоретически быть не может. тесты эти какие то совершенно бесполезные. мне даже кажется что все эти юнит тесты это какой-то внутренний прикол что бы тролить ньюфегов, типа как в армейке " до 1000 посчитай!" а на вопрос нахрена это надо отвечают мол что бы дембелей повеселить!
С какого блядь хуя циклы - более читаемы чем линку?
Вот посмотри на прикриплейд. Тебе серьезно, вариант с циклами кажется более читаемым? А давай представим, что там ебейшие условия, нужно еще смапить что-то в новую сущность, произвести вычисления и еще что-то сделать.
Linq - это лучшее что произошло в плане читаемости кода в шарпе и оно в миллионы раз понятнее и удобнее для чтения чем ебатека с циклами. Про циклы в плане кода как раз нужно вспоминать, когда ты понимаешь, что можно, а главное НУЖНО сделать более оптимальное решение, чем то что будет с линку.
А про длинные выражения.
Если это действительно длинное выражение внутри лямбды(ну, допустим у тебя в Select должна хитрющая бизнес-логика происходить которая должна вернуть хитрющие штуки-дрюки), для читаемости - можешь вынести его как локальную функцию, обозвав ее так, чтобы было понятно что эта ебейшая лямбда бы делала.
Ты row+1 раз печатаешь звездочку.
Потом ты row раз печатаешь звездочку.
=> Т.е. всего ты 2*row + 1 раз печатаешь звездочку.
inb4 зочем погромисту матан, jezus
А ты можешь скинуть пдф этой книги если она у тебя есть конечно
Ну я имел ввиду более длинные Linq выражения с большими лямбдами, с вложенными Linq, и там мне не понятно как лямбды, аргументы и выражения выделять отступами, как скобки оставлять.
Вообще, почему закрывающие круглые скобки (в отличие от фигурных) оставляют на последней строке, а не кидают на следующие, делая им отступ как у соответствующих открывающих?
>>219931
Пожалуй буду выносить, да.
После хс чет везде linq и функции с "=>" тыкаю.
Складывать числа и матан с его интегралами или что там
>Может кто-то внятно пояснить за юнит тесты?
Короче, допустим ты делаешь сложную функцию вычисления смысла вселенной. Ты проверил что данная функция выдает верный ответ - каким-нибудь тестовым проектом - выводя в консольку
Теперь ты решаешь оптимизировать код этой функции, но ответ она должна выдавать тот же самый. Тебе нужно переписать код, и опять писать проверочный проект.
Потом ты снова решаешь ее оптимизировать, и снова надо писать проверочный проект.
А что если функция должна выдавать разные варианты в зависимости от разных входных данных? Это сколько разных проверок сделать...
А что если таких функций тысяча?
А самое главное - а у тебя будет время проверять все варианты на корректность? Ведь вокруг постоянные дедлайны и сорванные сроки - возможно ты просто в голове прикинешь и даже проверять не будешь подумав что вроде должно работать (а потом ракеты взрываются, людей смертельно облучает и т.д.)
Юнит тесты убирают этот момент - ты просто пишешь тесты для всех вариантов. Теперь хоть стопятсот раз изменяй код своих функций - эти тесты гарантируют что ты ничего не сломал (или сразу тебе скажут что ты все сломал и давай по новой делай)
То есть это банальная автоматизация тестирования кода - ты ведь тестируешь свой код?
(а вот методологию сначала писать тесты а потом код считаю тупой чсв дрочкой аутистов-максималистов)
Гладко стелишь, фраерок.
Да вот только все так красиво исключительно с чистыми методами.
В реальной жизни ты блядь проверяешь внутрянку и потом не рефактор, а жопа.
>мне даже кажется что все эти юнит тесты это какой-то внутренний прикол что бы тролить ньюфегов, типа как в армейке " до 1000 посчитай!" а на вопрос нахрена это надо отвечают мол что бы дембелей повеселить!
Хорого сазал. Так и есть. Веселить дембелей цифрой покрытия.
Юнит тесты- говно. Инткграционные- норм.
а можешь скинуть один какой-то тестовый проект веб страницы с юнит тестами, потому что не могу найти такие примеры и слабо представляю как такие тесты реализовывать
У меня есть некоторые сериализованные данные что-то вроде:
data{
type: string
params: object[]
count: uint
}
Где type просто отвечает за тип data, params это некоторые параметры, с которыми данные работают, они могут быть в принципе любые, но по типу есть спецификация, так, что под каждый тип свой набор валидных типов параметров, в принципе где-то их может и вовсе не быть. Count необязательное поле, которое отвечает за то, сколько раз конкретный data нужно обработать.
Поначалу я просто сделал enum DataTypes, где перечислил все возможные type у data. Дальше сам класс отвечающий за данные, который хранит поле DataTypes. И при обработке просто в switch чекал тип, закидывал по нему в определенную функцию конкретно под этот тип. Всё работало.
Я сразу понял, что сделал хуйню, поэтому задумался как можно было бы это исправить.
Сейчас у меня идея сделать под каждый тип данных (их около 7-8, но может стать больше) свой класс, сделать общий интерфейс и работать с коллекцией IData. В обработке просто сделать что-то вроде data_list.ForEach(x => x.Process());.
А за создание пусть отвечает какой-то отдельный класс, который по type будет создавать определенный класс и отдавать его в коллекцию интерфейсом.
Я паттерны почти не изучал ещё, возможно под мою задачу такой есть? И нормально ли под каждый тип данных делать отдельный класс в этом случае? Получится с десяток классов, где общие вещи будут в интерфейсе лежать, а отличаться они будут только процессом обработки.
Вот у меня есть TCP-сервер. Вот я хочу каждое сообщение логгировать в базу. Ок-да. Вот я беру и эмулирую дудос в 10к коннектов разом, которые друг-другу эхо-сообщения шлют. Ок-да.В итоге: The connection pool has been exhausted, either raise MaxPoolSize (currently 100) or Timeout (currently 15 seconds)
Судя по документации - такого вроде как быть не должно. Но вот, такая вот хрень. Как фиксить - я хрен знает.
При этом это именно когда 5к+ начинает проявляться, на 1к соединений которые так же дудосят - не проявляется. Все контексты - я так же диспозю сразу после использования(что по документации говорит о том, что в данном случае контекст будет положен обратно в пул).
Короче, что делать? Без бд - мой TCP-сервер летает, но нахуй он не нужен без БД.
Можно это условие ебанутое просто и можно не в рамках property?
https://dotnetfiddle.net/dFvtOE
Почему бы ее не заменить на цикл, если ты говоришь про неоптимальность по времени этой функции?
Он вот про что говорит.
Другое дело, что я не понимаю каким хуем это должно как-то повлиять на время. Ну да, так вроде как экономишь время на вызов, но в контексте сложности алгоритма - один хуй тебе нужно пройтись по всем "корбкам".
Ну а в контексте задачи, при условии что можно менять только свойство - я тоже не ебу каким боком можно ускорить. Если бы таки весь класс можно было трогать, то в конструкторе можно было бы считать и там даже рекурсии особой не было бы.
Да я понял, но у нас тут один ребенок только, а не лист. Я вообще вам могут скинуть ссылку на вакансию, это третий вопрос. Может я условию не так понял.
https://weworkremotely.com/remote-jobs/gembox-net-developer-1
Нажмите на Apply for this position и вас на тест закинет. Это если тест не рандомно генерится.
Кстати, 4-ю задачу я тоже не смог решить до конца лол, прошёл первый тест из 3, работает, а второй не проходит и хуй знает почему. Дальше я просто закрыл вкладку.
Попробуй своё решение в задаче #3, там тест на время в браузере есть.
Может считать через sizeof()? Функция вытащит размер экземпляра класса, следовательно, можно вычислить и число вложенных box.
Да, мне кажется это правильный ответ, по крайнее мере, единственный возможный вариант, который в теории должен сработать. В общем, я бы там не стал работать.
Говно без задач. очевидно же.
Ну вот допустим у меня есть два контроллера Foo1Controller и Foo2Controller
Есть модель FooData
Теперь я в Foo1Controller заполняю FooData и хочу передать эти данные в контроллер Foo2Controller (чтобы уже тот их отобразил на страничке).
Почему бы не получить эти данные сразу в Foo2Controller ? потому что читаю из базы данных, так получается что в Foo1Controller я могу сразу считать все нужные поля (там одна таблица), но страничке Foo1 не нужны все эти поля.
А вот в Foo2Controller они нужны - так теперь и там делать запрос к базе данных? Так это медленно и тормозно, постоянно дергать базу если можно было сразу за раз все прочесть и просто передать.
Тем более что навигация подразумевает переход из ..Foo1 в Foo2 (и никак иначе - в Foo1 общее описание, а в Foo2 - подробноая детализация и наоборот никак нельзя октрыть - это ошибка)
То есть как я вижу - считать все данные в Foo1Controller, передать на страницу Foo1 только нужные поля, затем когда пользователь щелкает на детализацию и переходит на Foo2 - отдать в Foo2Controller оставшиеся данные
>А как передать экземпляр модели из одного контроллера в другой?
Хуита.
Контроллер должен принять запрос решить что с ним делать о отдать бизнесу на обработку. Но ни как не дрочить другие контроллеры. Если нужна общая логика выноси в приватный метод (или публичный с аттрибутом [NotAction]) и дергай его из нескольких контроллеров.
Не логика, а как сделать общие данные для двух контроллеров... Но так чтобы разные пользователи имели свои копии общих данных
Нихуя не понятно, ибо хуйню творишь. Еще раз - контроллер для взаимодействия клиента с твоей прогой. Твоей проге не надо дергать свои же контроллеры чтобы что-то сделать. Аудиоплеер же для того чтобы сыграть следующий файл после того, как отыграет предыдущий, не берет же управление курсором чтобы жмякнуть себе кнопку next.
>Аудиоплеер
Аудиоплеер принадлежит одному пользователю или точнее одному процессу. В нем данные можно хоть в глобальных переменных, хоть в конфигах хранить - они все принадлежат текущему пользователю
asp - это как бы сервер, то есть если я например загружу данные для одного пользователя, то у другого пользователя который зайдет на сайт должны быть свои собственные данные, у третьего тоже свои и т.д.
Первоначально я не подумавши вообще сделал глобальные статик-переменные хранящие текущие данные.
>>221197
>Нихуя не понятно
Ну вот пример
У меня есть модель Book. Есть таблица в SQL dbo.Book
Пользователь заходит на страничку site/Index и вводит номер книги, оно ищет в базе в таблице нужную книгу и перекидывает пользователя на site/Foo1 - где выводит краткое описание книги и есть кнопка подробнее, нажав которую пользователь попадет на страницу site/Foo2 - где уже будут выводиться подробные описания
То есть получается что сначала я лезу в базу данных в Foo1Controller. А потом лезу в базу данных в Foo2Controller. То есть два запроса к базе данных.
НО в базе данных одна таблица dbo.Book в которое сразу и краткие и полные описания - ну так получилось, достались мне такие таблицы. Правильно-неправильно - а жить надо с этим
То есть по факту я могу сделать всего один запрос к базе данных, получить нужную строчку и просто использовать эти данные и в Foo1Controller и в Foo2Controller
И вот это я не понимаю как сделать
>>221220
>А ты что, данные в контроллерах хранишь?
Данные в контроллерах создаются - или как ты предлагаешь модель отправлять в представление? (ну ладно, по научному они могут создаваться в сервисах, которые вызываются из контроллера - но это сути не меняет - так как по итогу именно контроллер отправит данные в представление через return View(dataModel);
>принадлежит одному пользователю
В данном контексте похую, есть программа а есть пользователь
>они все принадлежат текущему пользователю
не роляет
>то у другого пользователя который зайдет на сайт должны быть свои собственные данные, у третьего тоже свои и т.д.
похуй, серверу-то они все доступны
>я не подумавши сделал глобальные статик-переменные
Я и говорю хуйню сотворил, а вместо исправления хочешь нагородить большую хуйню
>сначала я лезу в базу данных в Foo1Controller. А потом бла-бла-бля
>один запрос к базе данных
Ну так закешируй. MemoryCache в помощь: проверяешь наличие книги в кеше, нет - лезешь в бд и кладешь в кеш, есть - береьшь из кеше. И тебе будет похуй нажмет пользователь подробнее или не зайдет.
>НО в базе данных одна таблица dbo.Book в которое сразу и краткие и полные описания
К слову тебя никто не заставляет тянуть ненужные столбцы с бд
слово дня - хуй
Вот нихуя не могу понять.
Что значит в контролере не должно быть бизнес логики?
Ну типо все действия должны быть в других классах а в контролере только вызовы методов?
>шо такое бизнес логика?
Купить подешевле, продать подороже.
>то значит в контролере не должно быть бизнес логики?
То и значит. Задача контролера принять принять действие пользователя, провалидировать данные (ну или отдать на анализ валидатору, если логика более менее сложная) и отправить уже в бизнес на обработку.
Та тебя ебать не должно как и через что я хочу изучить язык , главное желание а все остальное будет
И нахуй тебе программирование? Пожелай просто миллиард долларов, хули.
Напиши сам такое приложение на xamarin
>Твой код говно.жпг
Если у тебя есть свойство ИзЭкспайред, которое по логике должно возвращать просрочен ли токен, зачем ты после его проверки еще сравниваешь даты, повторно проверяя не просрочен ли токен?
> повторно проверяя не просрочен ли токен?
это единственное замечание? никаких более валидных замечаний нет?
К тому же ты умудрился обосраться даже в своем сранном замечании так как там блять даже нет нигде
>if(true) {return true;}
else {return false;}
даун ты блять тупой, сьеби нахуй отсюда
>А КРОМЕ ФОРМАТИРОВАНИЯ
Это не форматирование, это запутывание логики, дублирование кода и прочие развлечения говнокодера.
>будет ли это работать
А F5 нажать никак? Ты же даже не сказал что эта хуйня делать должна. А разбирать этот код крайне неприятно по вышеизложенным причинам.
А это не цитата была, а классические говнопатерн. У тебя не ретурн, а присваивание. Но в приступе ярости это даже увидеть не можешь.
Это не форматирование, это запутывание логики, дублирование кода и прочие развлечения говнокодера.
конкретно тогда, адресно тыкни на запутывание логики
патерн тоже имхо, я Спросил где это может наебнутся, конкретный вопрос, и хочу услышать конкретный ответ
>адресно тыкни
Ты тупой знаю, что да? Твои подвыперды с ифами вместо того чтобы написать value = expression и есть запутывание.
> хочу услышать
Хоти. Но с таким отношением навряд ли дождешься. Тебе никто ничего не должен.
Чел.. не позорся блять, хули ты мне тут блять заливаешь чушь про ифы, берешь открываешь первую лучшую страницу документации коре 6 на мсдн и видишь код написанный в 100% идентичной манере, и тут блять тупой школьник с двача заливает мне что программисты в майкрософте говнокодеры, но свой супер пупер код он не покажет потому что он на компе в селе у бабшуки, ЛОЛ, сьеби нахуй отсюда ПЕТУХ БЛЯТЬ и на этот раз пожалуйста не возвращайся
Хватит позориться. Где на скрине мсдн дрочка переменной резалт? У тебя две переменные для резалта, 4+1 присвоений в ифах, которые абсолютно бессмысленны. Я понимаю, что ты еще зеленый и хуй от пальца не отличишь, но почему ты такой воинствующий в своем невежестве?
960x776, 0:02
Чел, конкретно на пикче только один резалт ДЛЯ ФУНКЦИИ зато по ретурну в каждом ифе, тоесть точно то же что ты напсиал здесь
>if(true) {return true;}
>else {return false;}
а теперь поменяк мой резалт на ретурны как в мсдн и тут уже твой сосбветнный пост становится не удобным.
Таких всратых маневрнов после которых собсвтенный посты становятся не удобними я еще не видел, я даже заскринил на будущее.
> один резалт ДЛЯ ФУНКЦИИ
А на пике мсдн 0
>то же что ты напсиал здесь
Вот именно. Только я это написал как пример говнокода. Но да, это так же как у тебя
>твой сосбветнный пост становится не удобным.
С чего же? В чем у тебя проблема переписать как на мсдн?
Хочешь оставаться тупым говнокодером - твоё право, но не думай, что кто-то будет разбираться за тебя в твоей поносине.
>А на пике мсдн 0
пиздешь! => пик 1
ты в глаза ебешься ?
>Вот именно. Только я это написал как пример говнокода
что ты написал как пример говнокода :
>if(true) {return true;}
>else {return false;}
это ровно то что написано в мсдн => пик 2
ты в глаза ебешься 2?
>С чего же? В чем у тебя проблема переписать как на мсдн?
код написан БУКВАЛЬНО под копирку с мсдн
ты в глаза ебешься 3?
буквально каждый твой высер противоречит реальнисти поэтому просто Иди нахуй дибил
Так вот, я при этом не хочу делать ебейшую обертку для каждого метода и там семафоры расставлять. Я хочу сделать свой класс: SharedContext<MyContext> у которого будет методы
Task<T> Execure<T>(Func<MyContext, Task<T>> toExecute)
Task Execure(Func<MyContext, Task> toExecute)
Так вот. Я не совсем понимаю, а как мне такие вот методы сделать, при условии что я для того чтобы избежать критических секций - решил ебнуть очередь и ее обрабатывать.
Пока что придумал только под капотом при вызове таки создавать худойСемафор и в дополнительно передавать объект для хранения результата, ну соответственно - так вот я буду получать результат в этом объекте и возвращаться. Но мне немного стремно, да и кажется что это может к проблемам с перформансом привести.
Шо делать-то? Как мне сделать с одной стороны как-бы асинхронно, с другой чтоб был один контекст?
Надеюсь ты троллишь. Человек не может быть таким тупым.
>я ебанутый и хочу один EF'ный контекст на все приложение использовать
Реально ебанутый. Еф спроектирован так, чтобы создавать много короткоживущих контекстов. Иначе тебе придется или отключать чейнджтрекер или ебаться с его ручной очисткой. Иначе со временем все начнет лагать шо пиздец.
Дальше тоже какой-то бред.
>с одной стороны как-бы асинхронно
Асинхронность есть в еф из коробки Async методы из IQueryable, и Async методы самого контекста.
> вызове таки создавать худойСемафор
Если ты хочешь лимитировать запросы к бд, то создавай сервис прослойку, в нем уже используй семафор.
Не лимитировать. Проблема в очередности. Есть запрос, который должен быть выполнен строго в одном экземпляре за раз. Если делать без очереди а обычным семафором, то при условных 10к клиентах, которые дергают этот запрос - процессор в 100% улетает. Собственно да. Я не представляю как это обойти на стороне приложения иначе.
> который должен быть выполнен строго в одном экземпляре за раз
Откуда взялось такое ограничение? Звучит как наркомания какая-то.
>процессор в 100% улетает
От чего и почему не улетит при одном контексте? Я не думаю что ГЦ так напряжет проц.
Может тебе нужон кэш, чтоб по 100 раз одни данные не тягать?
>Откуда взялось такое ограничение?
Ну, из специфики самого приложения.
Подключается клиент, Авторизуется, ему нужно выделить порт, при этом
1. Порт, не находящийся в бан-листе
2. Порт, который системой не занят
3. Порт, который при этом не не принадлежит для другому клиенту
4. Порты дожны идти последовательно и не должно быть дырок(т.е. если кого-то удалят из базы - нужно сдвинуть все остальные порты)
После этого подключившись к моей хуйне, можно по открытым портам с подключившимися клиентами коммутировать.
Ну, специфика, хули.
Ну типо юзер в админке делает задачу к примеру читать файл каждый час.
Как это будет реализовано? Есть этому какоето название?
Я вот так это вижу:
Делаем таск и запускаем его, в нем чекаем время типо если время 00 минут то выполняем действие в таске, и так пока юзер не отменит задание.
Только вот как чекать? Может же быть такое что нагрузка будет большая и целую минуту поток не доберется до чека таски и прочекает только в 01 минуту и тогда проеб.
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
-пожалста
Вот создаю пустой ASP net core 6 mvc сайт - включаю в нем через мастер создания поддержку индивидуальных учетных записей (ну эту самую готовую identity)
Сайт работает - но как только пытаюсь зарегистрировать пользователя - вылитает такая ошибка.
И вот не понимаю что ему надо. То есть пока работаю со своим кодом в IIS - все нормально, как только пытаюсь зарегистрироваться или залогинится через identity - ошибка.
Пока у меня две мысли - или я как-то не так подключаю базу данных. или в IIS надо что-то еще установить
Ну, как-как. Несколько путей.
1. Путь самурая: пилишь свой парсер крона, выделяешь задачи которые твой сервак может выполнять. Делаешь свой скедулер, выделив 2 сущности: Trigger(как раз твой самый крон или другое условие которое нужно будет выполнять) и Job(те задачи которые нужно выполнять, опционально с параметрами). В отдельном потоке, при старте своего сервака достаешь все триггеры и раз в нужный тебе интервал(может быть у тебя точность запланированных задач должна быть до секунды, а может быть тебе и 5 минут погрешность норм) - проверяешь все Trigger'ы на условие когда следующий старт, если текущее время больше чем время триггера - кидаешь в какую-нибудь очередь выполнения все задачи что привязаны к триггеру, а триггеру рассчитываешь время следующего старта и сохраняешь.
2. Путь нормального человека: берешь какой-нибудь Handfire или подобную срань, которые умеют с кронами работать. Ну а дальше - читаешь документацию и делаешь как там написано.
А то какая-то хуита - то есть в asp.net есть крутая фишка глобализации, но почему текст в Identity захардкорен прямо во фронт html страницы? или я чего не понимаю?
>1...2...3...4...
Ну допустим. А как это все связано с еф и ограничением на один контекст?
>>222536
>Базы 9 классов
Зависит. Куда-то нужен матан, куда-то нет. Но если ты учился в школе, где к 9 классу матан давали, то наверно для вката хватит. По срокам я бы сказал год+, если с нуля ну и не джуном а трейни, от джунов сейчас требуют 1+ года опыта работы. Но это всё индивидуально и для тебя все может отличаться в разы.
>>222592
Ты про что? Чтобы перевести ошибки можно подсунуть кастомный ErrorDescriber, в котором можно заюзать IStringLocalizer. Если пользуешься дефолтными страницами-заглушками, то навряд ли, хотя не уверен, не пользовался.
>Если пользуешься дефолтными страницами-заглушками
Именно эти страницы (ну типа страницы логин-страницы регистрации, страницы подтверждения и т.д.)- они что - предлагают руками их переводить?
Ну обычно они у каждого свои с учетом функционала и дизайна сайта.
А ведь казалось бы, полон чан сеньеров с перфет инглишь, работающих на забугор. Взяли бы да перевели каждый по 10 страниц.
Есть книги переведённые уже, но их почему-то не выкладывают в общий доступ. Я вот ищу книгу "ASP.NET Core в действии", но её нигде нет.
var img = Image.Load(stream);
var thumb = img.Clone(opt=>opt.Resise(...));
thumb.Save('fhu6rg');
И вроде работает. Но потом запускаю под дебагом и вижу ужас: Image.Load() и +300Мб. Картинка не маленькая, да, 1,5МБ и ~5000x3000, но 300 метров... Полез в интернет, пишут мол, используется пулл массивов, что б не нагружать GC. Ну ок. Загужаю еше картинку и еще +200Мб. Пять картинок и приложение отожрало ~1GB. Я понимаю, что свободная память - зря купленная памать, но я собираюсь запускать приложение на 1ГБ VPS и меня это как-то пугает.
Может есть библиотека которая кушает поменьше, а может это нормально и я зря парюсь? Какой у вас опыт создания превьюшек inb4никакого?
Да я находил MemoryAllocator в ImageSharp, но пока его ковыряние успеха не дало
А почему вы спрашиваете? У стрима есть ряд методов Can*, по идее должны устанавливаться в фолс, но нужно проверить. Ну и ObjectDisposedException тоже может помочь.
CanRead и прочие напрямую не зависят от статуса потока - бвывают же потоки только на чтение или только на запись.
Потребность по-моему легитимная, допустим поток в поле класса, и разные методы для работы с ним должны знать в каком он состоянии. Иначе придется параллельно хранить его статус, что еще больший антипаттерн.
Использовать ObjectDisposedException вроде антипаттерн, оно же сигнализирует катострофу и в продакшене недопустимо, типа сам не уследил что задисползил?
>А как это все связано с еф и ограничением на один контекст?
Ну а как я организую последовательное выделение портов, если у меня не будет какого-то ограничения чтобы за один раз этот запрос выполнялся единожды? Я пробовал ограничивать с помощью семафора, но это ведет к тому, что резкий скачек потребления процессора, из-за этого уже проверка эта вся начинает долго выполняться и клиенты по таймауту отключаются и потом заново регистрироваться пытаются.
Таки да, но если ты хочешь писануть в стрим, а он тебе говорит низзя, то ты же все равно не будешь писать независимо от того задиспожен он или просто ридонли.
>>222859
Ну эксепшены вообще стоит избегать, если можно без них. Как бе в большинстве случаев не надо диспозить то, что тебе не принадлежит, и диспозить все, что твое. И поэтому ситуация, когда пришло что-то задиспоженное это алярм и катастрофа и проверки на задиспоженность уже выглядят костыльно.
Я так щитаю.
>>222871
>уместно для переменной имя totalSecs
можно сократить до totalSex
>>222947
Ладно чел, все равно не понимаю связь между портами клиентов и запросами к бд. Сорян.
Подскажите пж сайт с бесплатными 2D и 3D моделями для юнити , буду очень благодарен
А в чем профиты?
А как ты его быстрее по времени сделаешь, остальной класс не трогая? Тебе так или иначе придётся идти вглубь и считать объекты. Или это бумерское "Ряяя! Мы в вашем возрасте экономили вызова методов, а вы тут рекурсию устраиваете, ряяя!"? Я не понимая, короче, что тут требуется.
Создал новый проект нет6, ебана упростили структура мейна, но бля как то не привычно стало.
Вы юзаете новый или старый?
Я все таки добавил мейн класс, так как то глазу лучше.
Работяги, вот создал я консоль апп нет6.
Добавил докер. И мне нужно ввести строку в консоль. Куда ее вводить то? В Отладка/Вывод ничего не выводит мне.
Идея в том что бы при запуске ввести апи ключи и потом все уже будет работать.
Опять все ни так как я думал.
Вот на линях я не помню как называется приложение но смысл такой. Типо вот запускаю какой то софт на сервере, и дальше я ввожу уже команды в этот софт. Я ставил приложение которое могло сворачивать работающие программы в фон. Вот я запустил, вписал типо свернуть и все работает.
Чет я думал на докере будет так же, пишу docker run, и мне открывается консолька моего приложения, а потом я просто могу свернуть контейнер и он будет в фоне работать. Но видать хуй там плавал?
Как мне корочи получить доступ к консоли приложения в докер контейнере?
>Да, понимаю что можно банально редиректом site/Foo2/?: на html передав айдишник овоща... Но это же явно херня способ - любой "хакер" школьник просто подменит туда другой айдишник и украдет важные данные.
Пусть попробует подменить guid, лол
Юнит тесты на круды вешать - это кринж, предется замокать все, включая небо и Аллаха. Хуярь интеграционные.
Скачал, посмотрел.
На дворе 2к22 год. А простыни кода в тексте книги до сих напечатаны монотонным черным шрифтом без подкраски синтаксиса.
Читать такое можно, но глазам, привыкшим к IDE, будет тяжело и скорость чтения просядет раза в 4.
Там кода-то по минимуму. Это учебник для студентов, потому что автор сам преподает шарп в универе.
[
{
"id":"01coin",
"symbol":"zoc",
"name":"01coin"
},
{
"id":"0-5x-long-algorand-token",
"symbol":"algohalf",
"name":"0.5X Long Algorand Token"
},
{
"id":"0-5x-long-altcoin-index-token",
"symbol":"althalf",
"name":"0.5X Long Altcoin Index Token"
},
{
"id":"0-5x-long-balancer-token",
"symbol":"balhalf",
"name":"0.5X Long Balancer Token"
},
{
"id":"0-5x-long-bitcoin-cash-token",
"symbol":"bchhalf",
"name":"0.5X Long Bitcoin Cash Token"
},
{
"id":"0-5x-long-bitcoin-sv-token",
"symbol":"bsvhalf",
"name":"0.5X Long Bitcoin SV Token"
}
]
Модель
public class Coin
{
[Column("id")]
public string Id { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("symbol")]
public string Symbol { get; set; }
}
Как я делаю
List<Coin> restoredPerson = JsonSerializer.Deserialize<List<Coin>>(responseBody);
Пикрил что получается
ССылка на жосн
https://api.coingecko.com/api/v3/coins/list
[
{
"id":"01coin",
"symbol":"zoc",
"name":"01coin"
},
{
"id":"0-5x-long-algorand-token",
"symbol":"algohalf",
"name":"0.5X Long Algorand Token"
},
{
"id":"0-5x-long-altcoin-index-token",
"symbol":"althalf",
"name":"0.5X Long Altcoin Index Token"
},
{
"id":"0-5x-long-balancer-token",
"symbol":"balhalf",
"name":"0.5X Long Balancer Token"
},
{
"id":"0-5x-long-bitcoin-cash-token",
"symbol":"bchhalf",
"name":"0.5X Long Bitcoin Cash Token"
},
{
"id":"0-5x-long-bitcoin-sv-token",
"symbol":"bsvhalf",
"name":"0.5X Long Bitcoin SV Token"
}
]
Модель
public class Coin
{
[Column("id")]
public string Id { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("symbol")]
public string Symbol { get; set; }
}
Как я делаю
List<Coin> restoredPerson = JsonSerializer.Deserialize<List<Coin>>(responseBody);
Пикрил что получается
ССылка на жосн
https://api.coingecko.com/api/v3/coins/list
Так же если есть советы какие, тоже буду благодарен.
Бери в зубы сокет и делай свой веб-сервер который хотя бы статику будет уметь отдавать.
Умник блять, когда я говорю что я 0 я имею ввиду что я 0. Я не ебу чё такое ipv6 и почему он именно 6, я не ебу чё такое протоколы, чё такое http и все вот это вот. Я конечно могу загуглить что такое сокет, начать читать о том, что он работает с каким-то там ipv6 протоколом оттуда гуглить уже эти протоколы и ТД. Проблема в том, что я хуй знает с чего мне начать изучать это все. Я же написал, мне бы литературу которая все это разбирает прям с озов и постепенно вверх. Подойдёт даже та, которая все это разбирать начинает с сетевой карты, а затем переходит на ее интерфейсы и прочее. Если там ещё и объясняется почему это так реализованно а не по другому было бы ещё лучше.
Мне проще когда все объясняется с низу вверх(с низкого уровня на верхний) а не как многим наоборот(с верхнего уровня и до низа) я когда с# учил, нихуя вразумить некоторые моменты не мог пока не начал разбираться как проц и память устроены. Так там сразу все на свои места вставать начало.
Да, у меня некоторые проблемы с этим. Мне трудно понять как что работает в стиле (вот эта хуйня работает так потому что так задуманно) мне проще понять когда (вот эта хуйня работает так, потому что эта хуйня зависит от той хуйни которая работает так, а она так работает потому что хуйня за счёт которой она работает работать может только так как она работает) те же сокеты на сколько я знаю всего лишь интерфейс для абстракции над сетевухой, то есть чтобы ПОНЯТЬ(не уметь использовать а именно понять) как они устроены нужно знать устройство сетевухи. Ты бы лучше посоветовал книгу какую-нибудь где разбирают устройство сетевух. Был бы благодарен.
P.s ну физика это прям слишком Лоу левел.
Или даже не устройство сетевхи, а что-то вроде основы основ работы серверов.
static void SubDirectories(string mainDirectorie)
{
string[] subDirectories = Directory.GetDirectories(mainDirectorie);
foreach(var a in subDirectories)
{
Console.WriteLine(a);
SubDirectories(a);
}
}
Не работает ебаная сериализация
Вроде все правильно же
Вот жосн
https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=ethereum&order=price_change_percentage_24h&per_page=100&page=1&sparkline=false&price_change_percentage=1h,24h,7d,
Вот класс с 3 полями
public class Token
{
public double price_change_percentage_1h_in_currency { get; set; }
public double price_change_percentage_24h_in_currency { get; set; }
public double price_change_percentage_7d_in_currency { get; set; }
}
Делаю
Token Token = JsonSerializer.Deserialize<Token>(responseTokenBody);
А мне пикрил
Все же вроде нормально
Можешь получить АксесДенаед если нарвешься на системный каталог и на который у тебя нет прав.
Так тебе апи выдает рут не JsonObject, a JsonArray. Поэтому и десериализовать надо Token[]
У тебя приходит массив, а ты пробуешь как один объект десериализовать
Сэнькью
Бери EF и просто бинди DBSet к своему датагриду.
Сгенерировать контекст и классы таблицы - так же можешь EF'ом, если у тебя подход Db-first
> Бери EF и просто бинди DBSet к своему датагриду.
Чел, я не знаю что такое EF и DBset лол, я совсем ньюфаг. Могу в циклы, массивы, классы и подключить файлик sqlite. На этом мои познания заканчиваются.
> Сгенерировать контекст и классы таблицы - так же можешь EF'ом, если у тебя подход Db-first
Ну плиз...
Ты тоже гуглить не хочешь, няша?
Ну смотри. EF(EntityFramework(core)) - это фреймворк для работы с базами данных, по сути он за тебя генерирует запросы и следит за изменениеями состояний объектов. Строится на базе паттерна Repository.
Так вот. ADO сейчас, использовать стоит либо в случаях обучения, чтобы понять как оно работает и что примерно происходит; либо когда тебя то что генерирует EF и для твоего приложения критичен тот оверхед который для всего этого трекинга и прочего сделан.
Вот тебе пример как с обычным датагридом это будет работать на впф:
https://docs.microsoft.com/ru-ru/ef/ef6/fundamentals/databinding/wpf
Благодарю.
Хочу я в докер все это запихнуть но не знаю как.
Что мне написать в Dockerfile что бы работало?
Бд лежит в корне, и создается если ее нет.
optionsBuilder.UseSqlite("Data Source=DbCoin.db");
Понятно что контейнер создается без бд а бд в нем создать не получается при запуске.
Как исправить то?
Ну, даппер я в реальных проектах не использовал, потому и не упоминаю его. На бумаге - прикольно и в качестве потыкать - было вполне норм, но как оно будет на реальном проекте я хз, на тех где я участвовал как раз EF не становился прям узким местом, а если нужно было дать пинок-ускоритель - можно было шаманить с тем что сам EF генерирует.
>когда тебя то что генерирует EF и для твоего приложения критичен тот оверхед который для всего этого трекинга и прочего сделан.
Или когда еф тебя пошлет нахер, например, потому что он может твой запрос только через cross apply составить, а sqlite не умеет в cross apply.
Да но в цитате было про генерирование кода еф'ом
На компе докер контейнер работает.
А на сервере закрывается сразу. И вот как понять в чем проблема то нахуй???11л
Логировать нужно нормально, желательно в файлик или в БД. Так бы сразу знал в чем причина.
А так, вангую, что какую-нибудь строку подключения к БД или подобное проебал.
Поебень корочи.
Просто завершается контейнер
Exited (0) 22 seconds ago
Типо как будто так и надо.
Но на компе все заебись рабоотает.
<div id="comment">
Получить этот текст
<div class="title">А этот не получать</div>
</div>
Я как ни стараюсь, как ни обращаюсь, на выходе получается "Получить этот текстА этот не получать"
Ахуительная кросплатформенность.
Я в документации не нашел этой хуйни.
Сколько еще такова7
Понемногу осваиваю С#, пилю всякое. Хочу почитать какую-нибудь книгу, документация поднадоела уже.
Имею опыт senior JS, junior Python, что лучше читать для продолжающих?
Приходи еще.
Ну типо запустил на пк и что бы он работал.
Ага спасибо нашел.
НАЧНИТЕ РАБОТАТЬ СУКИ ТУПЫЕ
Нахуя тебе System.Text.Json? Его еще лет 10 допиливать для использования в реальных проектах.
Ну мелкомягкие форсят, кидаются графиками с тестами, вот решил новый проект на 6 дотнете начать, а дебилы не могут не обосраться
Тестирую на одном компьютере - все работает.
Сделал публикацию, перенес ее на другой компьютер, развернул в IIS. Запускаю - работает все кроме создания (то есть я могу редактировать, могу просматривать, могу удалять записи из таблицы. Но создать не могу - вылетает ошибка)
В чем может быть проблема? Возможно в SQL Server у пользователя нет каких-то прав... Но почему я могу менять данные, могу их удалять, а добавлять не могу?
Всему надо знать меру!
Я вообще не понимаю, зачем это всё нужно. Раньше писали программы, используя только функцию и всё было нормально. А сейчас обязательно надо кучу классов, миллион интерфейсов, чтобы реализовать то, что можно сделать десятью функциями.
Да не об этом речь. Просто не всегда объект должен сам за себя отвечать, иногда надо пройти в ДТО.
Есть у кого пет проджект без тестов?
Могу попробовать его gjrhsnm тестами и вам заgekbnm
>Есть у кого пет проджект без тестов?
У меня даже рабочие без тестов. 250к внедрений, заказчик течет, брат доволен.
out говорит о том что в переменную нужно вернуть результат выполнения метода.
хуй знает зачем и почему просто return не устроил
Ну и in это передачи значения по ссылке только его нельзя поменять внутри метода.
Нет, я знаю, что такое in и out в параметрах метода, я спрашиваю об их назначении именно в дженерик параметрах. Т.е. почему у стандартного делегата типа пика в дефинишене in и out.
ковариантность/контрвариантность
Есть какие сообщества по мб сайтам или программам на шарпах?
Микрософты всё сломали или я тупой?
Ну, учитывая что у меня как на винде, так и на бубунте все работает - майкрософты не сломали ничего.
Та а я ебу, лол?
Ты уверен что все правильно установил?
Могу и на бубунте показать, если нужно.
Ты все по гайду делаешь?
Посмотри какие SDK https://docs.microsoft.com/ru-ru/dotnet/core/install/how-to-detect-installed-versions?pivots=os-linux у тебя установлены и какая версия проекта.
Почему мы можем написать:
object strangeVar = new int(); (int - является наследником object, так что объявляю переменную базового класса, а инициализирую наследником).
Это как вообще работает и почему? В тот момент strangeVar давнкастится до инта или что происходит? Просто для меня это выглядит немного дикостью.
randomPic
Справа создаётся экземпляр определённого типа, слева указывается тип указателя.
В памяти будет храниться тип именно потомка, но обращаться к нему можно как к родителю.
Можно же вообще написать
IAnus anus = new SpecificAnus();
в результате чего ты сможешь пользоваться анусом только в рамках интерфейса, независимо от того, какой именно анус ты создал.
Ты выбрал не очень хороший пример, потому что в твоем примере будет произведена упаковка инта и отправка его в кучу, и уже на этот упакованный инт будет ссылаться strangeVar.
Для программистов С/С++ тут всё очевидно. strangeVar - это указатель (переменная, которая хранит адрес определенной ячейки в памяти), поэтому он может ссылаться на что угодно.
>Для программистов С/С++ тут всё очевидно. strangeVar - это указатель
А что C/C++ думают про такое выражение?
int* strangeVar = &y;
Нужно пропарсить каждую колонку и найти в ней самый часто встречаемый бит, я чет туплю дико, как это красиво сделать.
Я чет подумал разделить каждую строку и добавлять их в свои списки и потом в каждом списке найти самый часто встречаемый бит, но нужно ли вообще это
И шо если я не хочу в коде прописывать для каждого бита (а их по 6) отдельный список, ибо это какой-то кринж.
Я вот играюсь и делаю всякуюж хуйню с httpclient.
Ну задаю вопрос по коду, и мне часто говорят что httpclient должен быть один на всю программу.
Но я обычно его юзаю в статик методах.
К примеру я запускаю несколько задач с одним объектом httpclient. Не случится ли так что будет принять ответ, а потом снова принят ответ и получается что 2 задачи обработают один ответ. Ну к примеру парсинг. Ведь наверное лучше на каждую таску свой httpclient ?
>При создании экземпляра класса HttpClient для каждого запроса будет исчерпано количество сокетов, доступных при высоких нагрузках. Это приведет к ошибкам SocketException. Ниже приведен пример, использующий HttpClient правильно.
>Не случится ли так что будет принять ответ,
Следующие методы являются потокобезопасными: CancelPendingRequests, DeleteAsync, GetAsync, GetByteArrayAsync, GetStreamAsync, GetStringAsync, PostAsync, PutAsync, SendAsync, PatchAsync
>Ведь наверное лучше на каждую таску свой httpclient
Нет не лучше.
Ты доку2 вообще смотрел?
>Ты доку2 вообще смотрел?
Ну я читал.
public static async Task<Token> GetTokenInfoAsync(string id)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync($"https://");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Token[] Token = JsonSerializer.Deserialize<Token[]>(responseBody);
return Token.FirstOrDefault();
}
}
Вот к примеру в таком методе будет всегда в responseBody правильный ответ.
Так что лучше его переделать что бы он принимал в конструкторе HttpClient client и его юзал? А надо ли его в юзинг оборачивать потом?
>будет всегда в responseBody правильный ответ
А почему нет?
> принимал в конструкторе HttpClient client и его юзал?
Ну тут сложно сказать как лучше в твоем случае. Если классов, содержащих метод GetTokenInfoAsync должно быть несколько, то передача через конструктор норм, но вопрос, нужны ли несколько его экземплров? Я хз.
>А надо ли его в юзинг оборачивать потом?
Ну, владелец хттпклиента должен реализовать свой диспоз, в котором вызовет диспоз хттпклиента. А когда это все диспозить пусть решает тот, кто это все создал.
itch.io ?
> проще ли просто вызвать мето
Классический пример: у тебя есть кнопка, по нажатию которой должно происходить действие. Что ты выберешь, писать для каждого действия свою кнопку или сделать общую кнопку, для которой можно указать действие? А?
посмотри паттерн "стратегия"
Так вот, я немного не понимаю как он, блядь, работает. Ну, типа где там, блядь, происходит момент с креплением кук к HTTPКонтексту, проверка токена-авторизации, каким, блядь, образом сокеты менаджатся и это все. Пиздец сложно. И многие вещи - вообще абскурная хуйня(взять хотя бы этот ебучий HttpApplication, да, я понимаю, что там билдится мидлваря, но как оно попадает-то к сокету - хуй знает, ему уже приходи requestDelegate). Ко всему, студия по какой-то охуенной причине даже не хочет подхватывать ссылки, чтобы хотя бы так можно было ориентироваться.
Так вот. Я почему полез в исходники. Суть, мне как тестовое задание дали описание протокола, описание уровня приложения. Сказали - месяц тебе, нужно чтоб 100к соединений держал и чтоб среднее RPS не меньше 100. Протокол - квазиVoIP'шный. Я могу просто ебнуть все это по принципу: Server-Client и просто хуйнуть примерно как в примере майков по асинхронному серверу сделать, но тогда класс клиента уже будет пиздец какой портянкой. Думал спиздить идеи из кестрела. Но видимо я туповат, чтобы понять весь гений челов из майкрософта.
Так вот, посоветуйте какие-нибудь книги по продвинутой архитектуре, а желательно по написанию фреймворков для сетевых приложений, желательно, конечно, на .net, но в принципе больше важна архитектура этого дела, потому можно абстрактный ООП-язык.
Ну, я может сейчас бред выдам, но как-бы я это делал.
Смотри, есть некая таблица типов. Типы в этой таблице хранят ссылку на родительский объект. Если родитель не указан - мы неявно вставляем туда ссылку на корневой объект(Object).
Что-то типа Map<Type,Type>
Так вот, зная тип - мы можем посчитать, сколько место понадобится для конкретного объекта. Ок, да. Ну а дальше, мы просто на уровне языка - разрешаем спокойно апкаст(потому что в данном случае ничего не может потеряться, т.к. наследник в любом случае содержит всю информацию родителя), а с даункастом - уже сложнее, мы должны будем проверить, что объект до которого мы даункастим - имеет все поля, свойства и ссылки на функции, которые должны быть у экземпляра, если они есть - мы спокойно даункастим, иначе - кидаем эксепшн.
С точки зрения реализации, скорее всего нет таблицы, а есть магией компилятора, там как раз создается объект родителя и ссылка на него помещается в экземпляр.
Но это может быть бред, потому что я - книжек не читал, просто пытаюсь придумать как бы я делал.
>скорее всего нет таблицы, а есть магией компилятора
Есть объекты типа, в которых есть вся информация по типам. Через них работает и рефлексия.
Пишу приложение на asp.net core, располагается на IIS. Компания хочет, что бы приложение было расположено внутри defaultwebsite, по псевдониму. То есть доступ к приложению был типа http://имя сервера/псевдоним/
Запустить так запустил, но все ссылки внутри не проходят, кидаются к корню сервера, псевдоним пропускают. Как сделать? Конечно можно прямо в коде прописать этот псевдоним, но я так не хочу, хочу что бы работало независимо от того, какой псевдоним назначат в IIS. При этом в Microsoft Edge, кстати, работает, а в остальных браузерах нет.
На РНР это всё элементарно делается, но супер-фреймворк АСП.НЕТ Коре так не может
Гуглишь утилиту для подсчёта строк cloc, ищешь репозиторий с морским боем и смотришь, сравниваешь.
Посмотреть количество строк в альтернативном решении, чтобы сравнить с количеством строк в своем.
Понял, спасибо
Я сделол
https://strawpoll.com/w4crg6d7k
ну, чисто семантически индексер это проперти, а проперти это вызов метода, а вызов метода по-идее идёт через точку (в f# кстати до недавнего времени синтаксис доступа по индексу был именно такой). Другое дело, что дефолтный вариант без точки уже стал стандартом во многих языках.
>Куда перекатываться с шарпа?
На Джаву конечно! Там дектопов нет если в жижбрейнз не устроишься.
на шарпе только десктоп пишут?
>Скорее всего не стоит. Шансы, что будет вакансия бод блазор минимальны.
А с самим asp.net core стоит разбираться? до этого вообще не имел с ним дела
Ну у тебя по сути два шарповских стула asp net core фуллстэк вэб (тот черный господин из оп-поста) или юнити.
Понял, спасибо большое
Нет.
> у тебя по сути два шарповских стула
А если я хочу сесть на поддержку десктоп приложения на винформс? Это хуи или пики?
Базовый функционал можно написать за неделю, но реализация всех свистелок-перделок может затянуться надолго.
НА просторах интернета можно найти много мелкоборд, которые создали программисты в одиночку. Правда там не шарп, а РНР или Го.
> Для джуна это скорее всего говноконтора и 20к деревянных
Где-то реально платят 20к, пусть даже максимально тупому джуну? Думал, что нет таких зарплат.
#intern #junior
C# Backend Developer в компанию CodeCave (https://companies.dev.by/codecave?utm\_source=tg&utm\_medium=msg&utm\_campaign=jobs\_dev\_by\_channel&utm\_term=vacancies&utm\_content=codecave?).
Опыт: Полгода
Уровень английского: Intermediate
Зарплата: $200—500
Требования:
— Опыт работы с Node.js или ASP.NET Core с поддержкой WebAPI backen.
— Git (GitHub) и basic GitFlow.
— Знакомство с JIRA, CI/CD инструментами.
— Знание SQL и реляционных баз данных (PostgreSQL/MySQL/MS SQL).
— Понимание HTTP протокола.
Читайте подробное описание вакансии. (https://jobs.dev.by/vacancies/24819?utm_source=tg&utm_medium=msg&utm_campaign=jobs_dev_by_channel&utm_term=vacancies&utm_content=24819)
Нет, это в EPAM
Надо следующее
If you are a full-stack:
♥️ 1-3 years of experience with Blazor / React or Vue.js
♥️ Understanding of Component-Based Design
♥️ Experience in any kind of UI toolkit (Tailwind, Foundation, Material, Bootstrap, Semantic etc)
Так вот, какую "архитектуру" я придумал:
TCPServer<TProtocol> - класс который принимает подключения, управляет ими(отключает, проверяет что истек таймаут удержания сессии и т.д.). Методы: Start(), Stop();
IConnectionFactory - чтобы оборачивать сокеты в наше соединение с дуплексным режимом передачи
метод :
IConnection CreateConnection(Socket, ConnectionSettings);
IConnection - абстракция над сокетом, чтоб скрыть всю ту сокетовскую фигню:
Методы:
void Start();
void Stop();
Свойства:
Guid Id {get;}
Stream Input { get; }
Stream Output { get; }
bool IsConnected { get; }
EndPoint LocalEndPoint {get;}
EndPoint RemoteEndPoint {get;}
ISessionContext<TProtocol> - некая абстрактная коммуникационная сессия, держит соединение, но имеет возможность его заменить, если с точки зрения приложения сессия продолжается, но возможно физическое соединение было потеряно и затем восстановлено, на уровне интерфейса имеет свойство Connection и метод Abort(ServerException), Abort - чтобы дропнуть соединение по причинам, которые указываются в исключении
IApplication<TContext, TProtocol> where TContxt : ISessionContext<TProtocol> - прикладной уровень, тут реализуется логика на уровне приложения.
Методы:
TContext CreateContext(IConnection) //вызывается после создания соединения
Task HandleContext(TContext, CancellationToken) - метод который должен будет обрабатывать соединение в соответствии с протоколом
Ну и сверху, чтобы не засирать IApplication<TContext, TProtocol> -
IApplicationPipeline<TContext, TProtocol> where TContxt : ISessionContext<TProtocol> - некий пайплайн обработки соединения, допустим сначала нужно спарсить пакет, потом - попробовать зароутить его к обработчику, затем сформировать ответ и отправить результат клиенту, а в промежуточные моменты - возможно прицепить что-то к контексту, либо залогировать что-то
метод:
Task Handle(TContext, CancllationToken)
IApplicationPiplineBuilder<TContext, TProtocol> where TContxt : ISessionContext<TProtocol>
с методами:
IPipleinBuilder<TContext, TProtocol> AddLast(Func<TContxt, CancellationToken, Task> handler);
IPipleinBuilder<TContext, TProtocol> AddFirst(Func<TContxt, CancellationToken, Task> handler);
IApplicationPipline<TContext, TProtocol> Build();
Так вот. Что я, не учел?
Так вот, какую "архитектуру" я придумал:
TCPServer<TProtocol> - класс который принимает подключения, управляет ими(отключает, проверяет что истек таймаут удержания сессии и т.д.). Методы: Start(), Stop();
IConnectionFactory - чтобы оборачивать сокеты в наше соединение с дуплексным режимом передачи
метод :
IConnection CreateConnection(Socket, ConnectionSettings);
IConnection - абстракция над сокетом, чтоб скрыть всю ту сокетовскую фигню:
Методы:
void Start();
void Stop();
Свойства:
Guid Id {get;}
Stream Input { get; }
Stream Output { get; }
bool IsConnected { get; }
EndPoint LocalEndPoint {get;}
EndPoint RemoteEndPoint {get;}
ISessionContext<TProtocol> - некая абстрактная коммуникационная сессия, держит соединение, но имеет возможность его заменить, если с точки зрения приложения сессия продолжается, но возможно физическое соединение было потеряно и затем восстановлено, на уровне интерфейса имеет свойство Connection и метод Abort(ServerException), Abort - чтобы дропнуть соединение по причинам, которые указываются в исключении
IApplication<TContext, TProtocol> where TContxt : ISessionContext<TProtocol> - прикладной уровень, тут реализуется логика на уровне приложения.
Методы:
TContext CreateContext(IConnection) //вызывается после создания соединения
Task HandleContext(TContext, CancellationToken) - метод который должен будет обрабатывать соединение в соответствии с протоколом
Ну и сверху, чтобы не засирать IApplication<TContext, TProtocol> -
IApplicationPipeline<TContext, TProtocol> where TContxt : ISessionContext<TProtocol> - некий пайплайн обработки соединения, допустим сначала нужно спарсить пакет, потом - попробовать зароутить его к обработчику, затем сформировать ответ и отправить результат клиенту, а в промежуточные моменты - возможно прицепить что-то к контексту, либо залогировать что-то
метод:
Task Handle(TContext, CancllationToken)
IApplicationPiplineBuilder<TContext, TProtocol> where TContxt : ISessionContext<TProtocol>
с методами:
IPipleinBuilder<TContext, TProtocol> AddLast(Func<TContxt, CancellationToken, Task> handler);
IPipleinBuilder<TContext, TProtocol> AddFirst(Func<TContxt, CancellationToken, Task> handler);
IApplicationPipline<TContext, TProtocol> Build();
Так вот. Что я, не учел?
C# синтаксис.
Если библиотека которую ты хочешь юзать поддерживает NET 5-6блять с названиями путаница пиздец, или net 3.0 ниже уже могут быть проблемы. Хотя хуй знает если нет вариантов то надо пробовать ниже.
Юзаешь .NET MAUI и все четко.
Хотя я уже осознал что C# это не про декстоп. Вот пиздецки как не удобно и сложно. Если надо что то декстопное сделать что то с гуито уж лучше asp net core и скомпилить его в один исполняемый файл.
Бота делал по кнопкам кляцать то просто консолькой.
Сервер для перехвата post get делал на asp net core с веб мордой статистики.
Юзай пугуй https://github.com/hoffstadt/DearPyGui
Если вот тебе чисто нужно декстоп приложуху сделать. Быстрее выучишь и проще делать.
Имхо корочи.
А не ставить на машину глобально.
А что десктоп? WinForms по-прежнему прекрасно справляется с созданием функционального гуя в 95% случаев. Если тебе нужны анимации или аппаратное ускорение рисования, и ты готов ради этого знатно потрахаться - есть решение для извращенцев, WPF. А более сложные или красивые вещи ты всё равно на шарпе делать не будешь, заебёшься вусмерть. Для полного отвала жопы используются Qt или электрон-подобные фреймворки, а не мелкомягкий гуиподобный продукт, к тому же намертво прибитый к винде.
Чем WPF хуже WinForms? Они же практически одинаковы, но у WPF преимущество в том, что формочку можно через xaml описать и всё работает через DirectX, а не GDI.
> Чем WPF хуже WinForms?
1. Тормоза. Если ты потестируешь скорость работы реального большого WPF-приложения (а не тестового проекта), ты заметишь, что оно ТОРМОЗИТ ЕБАТЬ КАК по сравнению с винформс. Страдает даже время отклика контролов - крайне заметно при вводе символов в текстбокс.
2. Внешний вид контролов и кастомизация. Если ты видел одно WPF-приложение, ты видел все. Мало того, что этот дизайн устарел давно (МС когда-то мечтали, что на это говно все перейдут), так его ещё и практически нельзя изменить. Как не ебись с XAML, уши стандартного WPF-дизайна родом из 2006 года будут торчать.
3. Переусложнённость для программиста. Тут вообще без комментариев. Некоторые вещи в WPF делаются примерно так же просто, как удаление зуба через анальное отверстие, хотя в винформс с этим проблем не было. Вдогонку ещё и кривой дизайнер в студии, который иногда обсирается и не может контролы положить так, как надо.
4. Сам факт того, что WPF был сделан не потому, что он нужен, а из-за свойственного мелкомягким NIH-синдрома, но позиционировался, как технология, которая должна была стать центральной в разработке приложений под Windows. Вышел провал: что WPF, что XAML - это велосипеды ненужные. Популярные приложения на WPF можно по пальцам пересчитать, потому что мелочь прекрасно пишется на винформс, а крупные сложные приложения делаются куда проще, быстрее, красивее и разнообразнее на Qt или с гуём на JS.
Вот и всё. WPF оказался нужным только корпоративным разрабам, которые клепают клиентики к БД и внутренние приложения типа "форма для внесения данных". МС провал признали, WPF перевели в режим поддержки практически без обновлений, вот и сказочке конец. Правда МС жизнь ничему не учит, чуть позже они точно так же серанули себе в штаны с UWP.
Это ж, что получается майки в последнее время гробят все к чему прикасаются? Хотя поработав с их докам по VBA, неудивительно. А что по хваленной кросс-платформенности в новом dotnet? Вся кросс-платформенность в консольке?
Только Java кроссплатформенна, а шарп чисто под винду. Core - это обрезанная версия Framework.
Ты смотришь слишком много аниме и из-за этого стал таким психованным
(int,int)[] или по другому в массив структуры у которой 2 int поля.
За кулисами я подобное делаю каждые 10 мс для ~1000 объектов с byte[] размером в районе 300-2000 байт.
Все это через обычный for и BitConvert.
И хотелось бы делать это оптимальнее так как по профайлеру это достаточно узкое место.
unsafe ptr cast?
>Core - это обрезанная версия Framework.
Пиздец ты клоун.
>>234463
>Вся кросс-платформенность в консольке?
Вся кроссплатформенность в CLR.
>>234503
Я не вникал, но такое ощущение, что ты городишь какие-то костыли. Зачем тебе пердолить что-то, а не взять уже напердоленное?
>>234524
>но практически нет инфы о его фреймворках.
Если говорить о "родных" фреймворках, то мало где ты найдешь доки лучше. Если о тхирд-парти, то тут как повезет, но по популярным инфы навалом.
Мне не паблиш с рантаймом нужен
Мне нужна возможность через dotnet restore НЕ УСТАНАВЛИЯ SDK НА УРОВНЕ МАШИНЫ (внезапно в нормальных языках это можно сделать) сделать билд
> Зачем тебе пердолить что-то, а не взять уже напердоленное
Протокол - проприетарный, единственная реализация - на плюсах от вендора, контора оч нелюбит плюсы и всячески пытается от низ избаваться(плюсовики в конторе охуели совсем, нихуя не делают, просят много денег и пугают тем, что уйдут, если им много денег не дадут). На джаве, есть Netty и Mina где большая часть того что я описал - есть и можно базовую логику протокла запихнуть в обычные обработчики и жить не тужить, но конторе нужен .NET, на дотнете, сколько не искал, нормальных аналогов Mina и Netty не нашел, есть для HTTP, если не HTTP - ебись либо с сокетами, либо с NetworkStream, которые те же сокеты. А мне намекнули, что этот протокол только один из тех которые в будующем предстоит начать поддерживать, вот я и решил свой костыльный фреймворк для сетевых приложений поверх TCP намутить.
Хочешь сказать, что Core не обрезанная? Тогда почему я не могу на линупсе создать десктопное приложение?
>Тогда почему я не могу на линупсе создать десктопное приложение?
Кто ж знает. Могу предположить, что ты пытаешься использовать гуй прибитый к винде, а не кроссплатформенный.
Фреймворк изначально был только под винду, а на маке и линупсе был Моно. Они выкупили Моно и переименовали его в Коре, но прикрутить десктоп не смогли.
>>234711
Ты предлагаешь использовать неуправляемый код в проекте? Зачем тогда нужна вся возня с этими виртуалками? Может проще сразу писать на C++ под Qt?
>предлагаешь использовать неуправляемый код в проекте?
Ни слова про неуправляемый код не было. Есть же авалония/замариан.формс/ето.формс или уно взять, даже под вэб ассембли соберет.
Книга имеет уже историческое значение, потому что описывает устаревшую платформу, которая уже выведена из эксплуатации. Книг по дотнету мало, да и те редко переводят. На русском издают в основном книги по Java.
>app.UseStaticFiles();
>app.UseStatusCodePagesWithReExecute("/error/HandleCode/{0}");
Если на странице есть ссылка на картинку, которой нет на сервере, то вместо пустого 404 сервер отдает всю страницу с наворотами из UseStatusCodePagesWithReExecute. А это лишняя инфа по сете + доп нагрузка на сервер. Как красиво сделать так, чтобы если 404 по пути /staticResources/xxx, то возвращался бы пустой 404? Я, конечно, могу вставить свою мидлварю между UseStaticFiles и UseStatusCodePagesWithReExecute, но может есть настройки из коробки для такого?
Анон, подскажи, какой способ лучший для избавления magic string-ов? Так чтобы собрать все (или большую часть) строк в одно место и во всех остальных дергать их оттуда.
Если у тебя не предполагается локализация этих строк, то простой статичный файл с константами. И да, майки сами так делают и ничего, норм, все живы.
Если у тебя строки это таки ресурс, то, внезапно - выноси как ресурс.
>Если у тебя не предполагается локализация этих строк,
Нет, просто хочу кучу однотипных строк из разных классов в одном месте собрать, чтобы при изменении какого-либо сообщения не приходилось весь код лопатить.
Я просто думал, вдруг под это дело какой-нибудь распространенный шаблон/паттерн есть, про который я не знаю.
>>235302
>Если у тебя строки это таки ресурс, то, внезапно - выноси как ресурс.
Чет, я про это почитал, слишком заморочено и не то, что мне нужно.
Есть иерархия коллекций с экземплярами нескольких классов:
class Pupa { string, int, datetime}
class Lupa { public ObservableCollection<Pupa> PupaList; ....}
class Zalupa { public ObservableCollection<Lupa> LupaList; ....}
и собственно коллекции с залупами.
Как мне объединить коллекции с залупами, чтобы все вложенные коллекции также объединялись без дубликатов? Нужно написать какие-то компараторы или оно и так должно работать? Ткните носом что читать
Distinct
>Книга
Какая, там две. Слышал, Рихтер все еще актуален и есть планы прочитать его а троелсена уже прочел
>Нашелся вот такой недурственный совет, благодаря которому выяснилось, что xlsx - не более чем структура из папок и xml, но как это все завернуть в один файл?
Не лезь в это говно, тебе совершенно не нужно знать, что там внутри.
Возьми пакет EPPlus там есть все что нужно.
Ты просто создаешь объект ExcelPackage
Далее добавляешь в него ExcelWorksheet, в который распихиваешь свою информацию по нужным тебе строкам, столбцам или клеткам.
Делаешь .SaveAs(file) на package и все.
Ну, как вкатились?
https://hh.ru/vacancy/49211222
>Москва
>до 15 000 руб. на руки
>Нагрузка 40 часов в неделю 5\2. Гибкий график аххаха блять
Для сравнения, в этой же фирме
https://hh.ru/vacancy/50347326
>Специалист контакт-центра (входящие звонки)
>до 50 000 руб. на руки
Домашнее задание для зумера, сколько через год будет получать разработчик на шарпе, а сколько оператор кал центра?
И что ты предлагаешь? Учить Джаву?
Не, половину Кажется, до главы про АДО включительно, Энтити уже не читал, дальше метанит и я не он, если че, не за один день прочел, лол, за пару месяцев
>Возьми пакет EPPlus там есть все что нужно
Спасибо, годный совет А че у них там с лицензиями? Кажется, нужно использовать 4.Х версию, 5.Х для фирм платная. Как вообще с этим дела в Раше?
Я консоль быстро освоил, а вот фреймворки не могу. Слишком не понятно написано. Если до этого шло подробное описание языка, то фреймворки - галопом по европам. Нормальных книг найти не могу.
Как их средствами Visual Studio или какого-нибудь экстеншена перенести в неймспейс AAA.DDD?
import requests
r = requests.get("https://jsonplaceholder.typicode.com/users").json()
r[0]["username"]
>> 'Bret'
r[2]["email"]
>> '
Natha:7!n ANUSyesen|c*ia PUNCTUMneYG*t '
Как сделать примерно тоже самое в c#? Вроде скопировал пример откуда-то, но ничего не работает
HttpClient req = new HttpClient();
var content = await req.GetAsync("https://jsonplaceholder.typicode.com/users");
var resp = await content.Content.ReadAsStreamAsync();
json = JsonSerializer.Serialize(resp); ???
Console.WriteLine(json); ???
Что значит перенести? AAA.BBB.CCC - это имя классов. К примеру, из другого неймспейса их можно вызвать написав
AAA.BBB.CCC.ClassName puk = new AAA.BBB.CCC.ClassName();
Сейчас имеем:
файл C1.cs:
namespace AAA.BBB.CCC;
class C1 { public int Value {get; init; }
...
файл CN.cs:
namespace AAA.BBB.CCC;
class CN { public double Value {get; init; }
Надо, чтобы стало вот так:
файл C1.cs:
namespace AAA.DDD;
class C1 { public int Value {get; init; }
...
файл CN.cs:
namespace AAA.DDD;
class CN { public double Value {get; init; }
Вручную это накликивать трудоёмко.
В решарпере есть такой функционал (вроде называлось Refactoring/Move content to namespace... или как-то так), но у меня его нет, только бесплатные экстеншены могу себе позволить.
Студия позволяет только единичный неймспейс переименовывать.
Ну смотри.
4.x версия идет под LGPL лицензией. Если вкратце - используй как хочешь, хоть в попенсорцном, хоть в проприетарном софте.
Версия 5.x идет по платной подписке. Я сильно не вникал, но насколько я понял: для личных некоммерческих проектов - можно использовать как хочешь. Для любой коммерческой деятельности, нужно покупать лицензию по одной на разраба.
---
Теперь о том как с этим в России.
Я не скажу как насчет чистой коммерческой деятельности (сделал, собрал, продал), но есть три сценария при которых можно опухнуть если использовать 5.x версию без лецензии:
1) При работе с иностранными заказчиками, они просто могут не принять такую работу у тебя, пока ты им не покажешь лицухи на все, что вызывает сомнение.
2) Если вдруг тебе надо будет конечный результат своей работы внести в госреестр програмного ограничения. Там достаточно жесткие требования к лицензиям всех используемых компонентов.
3) Если к тебе есть повышенное внимание органов (налоговых или еще каких), т.е. это конечно мелочь и привлечь за этот проблематично, но это дополнительный крючок за который тебя можно будет дергать.
У нас в конторе используется 4.5 версия. Ее в принципе хватает для подавляющего большинства сценариев. (Core 3.1 если что)
Я фреймверки по метаниту осваиваю. Если прям книг хочется, есть Фриман по АСП и Ентити не читал, тех же годов, что и Тролсен
У Фримена MVC 2 самая последняя, а уже вышли MVC 5 и 6. Ещё читал, что они там всё очень сильно меняют, что код невозможно перенести из версии в версию.
Но по факту не читаешь ты ведь книг тонет.
>>235748
>JsonSerializer.Serialize
Это чтобы создать джсон из объекта. Чтобы создать объект из жсона нужно JsonSerializer.Deserialize и тип объекта в который десириализовать. Но тебе видимо нужно просто выцепить какие-то свойства, поэтому см. пикрил. Но такие вещи приятнее делать через Newtonsoft.Json там и селекторы и linq.
>>235981
>что код невозможно перенести из версии в версию.
Ну если тупо обезьянничать, то да, при копипасте может не завестись. Но все это правится изменением пары строк часто с подсказки самой студии. Остальное на 99,99% будет тоже самое. Просто надо мозг иногда включать, ты же программировать учишься а код переписывать. Искать "да какого оно не работает" часть работы программиста.
Читаю какие есть, но хотел бы больше книг.
Сделай интерфейс со static abstract свойством "staticVariable" типа ? и с методом get. Там где ты T свой делаеш сделай ограничение, where T : IInterface. Чтобы в интерфейсе staticVariable давало тот тип, который реализует интерфейс, я делал так (известная хуйня, не помню название): IInterface<T> where T : IInterface<T>.
>Это чтобы создать джсон из объекта
Ого, спасибо. А вообще стоит так писать, или надо создавать структуры под каждый ответ? Как попадается в интернете. Или newtonsoft тоже пойдёт?
>или надо создавать структуры под каждый ответ?
Если тебе из всего ответа нужна пара-другая значений, то не вижу смысла переводить весь жсон в объекты. Иначе да, лучше десериализовать - и удобнее и быстрее, больше возможностей и гибкости.
>newtonsoft тоже пойдёт?
М? Ньютонсофт тоже умеет в десериализацию.
да, иначе мб через каст к dynamic можно, но это криво
>AAA.BBB.CCC в AAA.DDD
Что мешает тебе сделать два переименования подряд? Просто в одном из них ты уберешь CCC, а в другом заменишь BBB на DDD. Ну или наоборот (сначала переименуешь среднюю часть, потом уберешь концовку), в зависимости от твоих потребностей.
Как же хочется вэб, контейнеры и фулстак
Но ведь винформы - это круто! Чистый шарп без всяких тайпскриптов и прочих хэтэмэлей.
На HttpWebRequest вроде понятно, цепляется, а как организовать проверку?
Ни в HttpRequest ни в HttpListenerContext я не нашёл полей, куда бы оно приходило. Наверно процесс несколько сложнее, я чёт не пойму в какую сторону копать.
Нахуй мне этот чистый шарп, это пиздец, задачи однотипные. Все решается бинарной логикой и циклами. Я даже задумывался, чтоб себя развлечь, написать итератор или переписать некоторые функции чтоб один из входящих параметров был лямбдой для обхода.
Последние 3 спринта, это какой то день сурка.
Bump
Анон, возьми меня вместо себя, если съёбываешь, хочу вката ради подрочить унылое говно. ЗП не особо важна, у меня на текущей работе скорее всего всё равно ниже.
мимо воннаби джун-вкатун дед пердед
Именно винформы никогда не изучал. Этож полудохлая технология. Я выбрал текущее место, так как они просто предлагали больше, и я надеялся что будут более интересные задачи, а не поля в ридонли устанавливать.
Надеюсь через 5 лет ентерпрайз окончательно откажется от этой хуйни и уйдет в вэб приложения. Но сука все эти рякты настолько прожорливые, что эта залупа с рынка и через 10 лет не уйдет.
>>236463
Так таких вакансий пол ХХ, по тэгу .net. Хотя задачи и простые, все-равно требуют и знания sql и основы платформы на среднюю глубину. Поэтому джунов вкатунцов я не встречал.
Будущее за Blazor и WebAssembly. Будет единая браваёзерная среда, которая сможет запускаться на миллионах устройств и заменит классический десктоп.
Пока не заменят html на что то с адекватной производительностью - не будет. Скорее поверю в будущее с приложениями типа андроида и айфона - когда для каждого сайта скачиваешь с маркета своё приложение и в нём работаешь.
Почему не могут сделать CLR для телефонов? JVM же смогли сделать.
То есть я беру запись синглом: dbContext.TableName.Single(x => x.Id == tempId). Теперь мне нужно селектнуть несколько полей, я могу написать к каждой переменной-полю из дб, но тогда это будет каждый новый запрос по поиску айди. Могу просто взять всю запись, но тогда я возьму и не нужные данные. А как сделать селект к одиночному объекту?
>Вышла новая версия .NET Framework
Пиздишь. Максимум секьюрные апдейты.
>Означает ли это, что MS считают Core ошибкой и собираются вернуться к Framework?
Нет, это значит, что FW пока еще много где используется и послать его пользователей нахер нельзя, пока что.
>Связано ли это с неудачей с MAUI
Какая неудача, мань? Мауи еще даже не зарелзился.
>Стоит ли ждать новый фреймворк типа WinForms/WPF?
Нет
>>236567
Кек. Было бы хорошо, но маловероятно.
>>236738
>Я правильно понимаю, что интерфейс – это абстрактный класс
Не чел, это путь в никуда. Лучше не путай интерфейсы и абстрактные классы. Рассматривай интерфейс как контракт - обязательство класса иметь некий функционал, хотя с C#8 с интерфейсами много чего нахуевертили, что теперь интерфейс может иметь дефолтную реализацию и прочая наркомания.
>>236757
Сингл уже материализует запрос. Следовательно тебе сначала надо сделать проекцию:
dbContext.TableName.Select(x=>new {x.Id, x.MyColumn}).Single(x => x.Id == tempId)
или если и айди не нужен
dbContext.TableName.Where(x => x.Id == tempId).Select(x=>new{ x.MyColumn}).Single()
Забавно уже в почти в 22-м году смотреть рассуждения двухгодичной давности, что выбирать кор или фреймворк.
Это разные продукты, framework это всё ещё актуальная вещь на которой написаны миллионы строк, и ещё долго будет поддерживаться. Но новые проекты нужно делать на core, в него будут завозить новые фишки и улучшения, он лучше спроектирован, кроссплатформенный
Но строк и правда создалось 10к против 650к регексовских.
Но свое поделие гибче, придется допердоливать. пара идей есть.
Запустил профайлер и увидел, что большую часть времени сжирает сравнение строк.
span.StartsWith(trigger, StringComparison.InvariantCultureIgnoreCase)
А так в большинстве случаев, хоть и не всегда, trigger состоит из спецсимволов, которым поебать на Case, то путем небольшого рефакторинга и выбора верного режима сравнения, удалось неплохо забуститься.
Сейчас еще есть идея как избавиться от лишних тасков, а то они тысячами создаются. Играл с асинхронщиной и проиграл.
P.S. теперь этот тред мой личный дев-бложик.
> dbContext.TableName.Where(x => x.Id == tempId).Select(x=>new{ x.MyColumn}).Single()
Уже сделал как ты написал, только вместо сингла - first, спасибо.
есть околодефолтный парсер
https://github.com/benjamin-hodgson/Pidgin
посравнивай ещё с ним
Таски не для cpu-bound сценариев.
Так как в некоторых случаях надо слазить в бд, то в базовом классе использовались асинхронные методы, да и вообще все было на тасках (sic! GC профайлер насчитал 3,5КК тасков, лол ). Поэтому теперь есть свойство IsAsync и вызов происходит так:
var kek = trigger.IsAsync ? await trigger.XxxAsync() : trigger.Xxx();
Несмотря на невероятное уменьшение тасков (кста есть же еще ValueTask), результаты по времени довольно странные получаются. Разброс от примерно также, до хуже, хм.
>>236969
>Таски не для cpu-bound
Как написал в первой части этого поста. иногда надо сходить в бд (при тестировании разумеется муляж бд).
>околодефолтный парсер
Гляну, спс
У меня сервисы, которые реализуют нужную логику. Например, контроллер делает так:
GovnoMochaDto x = govnoservice.GetGovnoBySmellWithMochaByColor(...);
сеньоры обоссывайте
Когда ищут "джуна" на 50к+, то от джуна там только одно название.
Там требования будут как к синьору с 5 летним стажем, и на собесе будут реально драть. И возьмут 100% ещё тепленького выпускника профильного ВУЗа, который уже со второго курса подрабатывает то тут, то там, и знает и математику, и CS, и с вебом, и с шарпом и с 3-5 другими языками знаком.
А для среднего вкатывальщика, тем более на шарпе, и зп 15к - переплата, ну или чисто аванс, с прицелом, что через пол-года из тебя сделают человека.
Серьезно, какой смысл брать человека на зп больше МРОТ, если он не только не будет производить продукт, но будет даже мешать производить его другим сотрудникам, отнимая их время на своё обучение.
Ну не может чел, который полгода назад работал на заводе или в такси, с ноги войти в профессию и начать приносить хоть какую-то пользу.
Просто если по полочкам, по своему опыту. С нуля, даже просто на modern C# писать нормально, с понимаем что, зачем и почему, знать что есть в стандартной библиотеке, как это работает и где применять - это нужно минимум год каждый день упражняться, читать чужой код на GitHub, решать разнообразные задачи, получать обратную связь (на курсах, менторинге или на "форумах"). Конечно, уже через 3-4 недели чтения metanit'а можно освоиться в языке, будет что-то получаться и будет казаться, что ты уже почти всё понял. Но это очень обманчивое ощущение. 8-12 месяцев - это минимум, чтобы понимание языка выкристаллизовалось в голове. Но главное - знания чистого шарпа не достаточно. Без ASP.NET Core, без EF, без SQL + знание хоть какой-то СУБД, без опыта GIT, без основ верстки и умения хотя бы понимать HTML, CSS и JS, человек не сможет работать. И это я оставил за скобками базовый computer scienсe с битовой магией, умением воспринимать 16-ричную запись числа, с деревьями и сортировками. И это я оставлю за скобками базовые математические знания, которые нужны даже на фронте, а это тригонометрия (синусы) и линейная алгебра (матрицы). Всё это - это минимум 2 года усиленных ежедневных занятий по минимум 3 часа (если меньше часов в день тратить, будет очень не эффективно). Причем не абы каких занятий, а по продуманному плану, не уходя в ненужные дебри. Это базовые знания на позицию джуниора. Т.е. человека без реального коммерческого опыта, но который хотя бы сможет понимать, что тут вообще происходит, и сможет уже что-то сам делать.
Можно ли вкатиться без всего, что я перечислил? Да, можно. Но это - лотерея. Может быть тебе повезет, ты сырым попадешь на работу, затеряешься в общей массе, и сможешь за счёт работодателя и в боевой обстановке подтягиваться.
Когда ищут "джуна" на 50к+, то от джуна там только одно название.
Там требования будут как к синьору с 5 летним стажем, и на собесе будут реально драть. И возьмут 100% ещё тепленького выпускника профильного ВУЗа, который уже со второго курса подрабатывает то тут, то там, и знает и математику, и CS, и с вебом, и с шарпом и с 3-5 другими языками знаком.
А для среднего вкатывальщика, тем более на шарпе, и зп 15к - переплата, ну или чисто аванс, с прицелом, что через пол-года из тебя сделают человека.
Серьезно, какой смысл брать человека на зп больше МРОТ, если он не только не будет производить продукт, но будет даже мешать производить его другим сотрудникам, отнимая их время на своё обучение.
Ну не может чел, который полгода назад работал на заводе или в такси, с ноги войти в профессию и начать приносить хоть какую-то пользу.
Просто если по полочкам, по своему опыту. С нуля, даже просто на modern C# писать нормально, с понимаем что, зачем и почему, знать что есть в стандартной библиотеке, как это работает и где применять - это нужно минимум год каждый день упражняться, читать чужой код на GitHub, решать разнообразные задачи, получать обратную связь (на курсах, менторинге или на "форумах"). Конечно, уже через 3-4 недели чтения metanit'а можно освоиться в языке, будет что-то получаться и будет казаться, что ты уже почти всё понял. Но это очень обманчивое ощущение. 8-12 месяцев - это минимум, чтобы понимание языка выкристаллизовалось в голове. Но главное - знания чистого шарпа не достаточно. Без ASP.NET Core, без EF, без SQL + знание хоть какой-то СУБД, без опыта GIT, без основ верстки и умения хотя бы понимать HTML, CSS и JS, человек не сможет работать. И это я оставил за скобками базовый computer scienсe с битовой магией, умением воспринимать 16-ричную запись числа, с деревьями и сортировками. И это я оставлю за скобками базовые математические знания, которые нужны даже на фронте, а это тригонометрия (синусы) и линейная алгебра (матрицы). Всё это - это минимум 2 года усиленных ежедневных занятий по минимум 3 часа (если меньше часов в день тратить, будет очень не эффективно). Причем не абы каких занятий, а по продуманному плану, не уходя в ненужные дебри. Это базовые знания на позицию джуниора. Т.е. человека без реального коммерческого опыта, но который хотя бы сможет понимать, что тут вообще происходит, и сможет уже что-то сам делать.
Можно ли вкатиться без всего, что я перечислил? Да, можно. Но это - лотерея. Может быть тебе повезет, ты сырым попадешь на работу, затеряешься в общей массе, и сможешь за счёт работодателя и в боевой обстановке подтягиваться.
>C# это не про декстоп
Если не C# для десктопа, то что? Стрелять в ногу на C++ Qt? Некрофилия с дельфи? Электрон с отдельным потоком и 200 Мб RAM на каждую кнопку?
На C# есть формы, есть WPF, можно и напрямую с GDI+ работать.
Вместе с интерфейсом идёт синглтон реализация, которая покрывает 95% потребностей. На остальные 5% особых кейсов может быть когда-нибудь будет написана отдельная реализация, если сильно надо будет, интерфейс это позволяет.
Нормально ли делать прямо в интерфейсе статическую проперти типа DefaultInstance, чтобы через неделю/месяц/год не тратить кучу времени на то, чтобы понять, как создать этот объект, и не искать билдеры, провайдеры и т.п.? Или это плохая практика?
Делаешь статический класс, типа MagicStringLibrary.
Там каждую константою строку получаешь через метод с аргументом текущей настройки локализации, проще всего, через enum. Для начала будет один дефолтный стринг. По мере локализации, можно будет добавить.
Другой вариант, сделать интерфейс со стрингами-пропертями, реализовать их синглтонами на каждый язык.
Не надо дизморалить людей, чел. Всякое бывает. Не везде нужны супер-пупер-мега спецы или потенциальные великие программисты чтобы только с вузика с красным дипломом. Я могу выступить, как живой пример вкатывальщика. Судите сами: без вышки, без опыта, под тридцатник. Из скилов - чистый шарп, выученный по самоурокам + опыт говнокода под личные нужды. Околонулевое знание современных технологий. И ничего, нашел контору и сижу себе пишу говнокод в удовольствие. Нет ничего невозможного. Если вдруг нужда случится, то можно что-то найти, чтобы и на работе заниматься тем, что нравится и с голоду не помереть и стаж программера нарабатывать попутно осваивая недостающую базу.
BitConverter делает доп. проверки на выход за границы массива.
Внутри же он использует Unsafe.ReadUnaligned.
https://source.dot.net/#System.Private.CoreLib/BitConverter.cs,8640d8adfffb155b
Unsafe.ReadUnaligned по скорости работает также, как если бы ты писал то же самое через указатели на шарпе. Можешь попробовать его использовать Unsafe.ReadUnaligned.
>докам по VBA
Отсутствие подробных доков отлично компенсируется возможностью записать макрос по своим кликам и изучить VBA код.
>А если сервис не найдет ничего, что делать будешь? Эксепшен ловить как мудак или null как долбоеб?
> И ничего, нашел контору и сижу себе пишу говнокод в удовольствие
Как искал, анон? Расскажи, очень интересно. Как реагировали, что вкатун 30-летний? Что на собесах спрашивали? Долго ли искал?
https://youtu.be/l2OmsgB72Dg
Always has been
Около недели часа по 3 день. Еще, наверно, столько же х3 уйдет на допиливание/рефакторинг/минимальные тесты.
> null как долбоеб
This.
Все таки в большинстве случаев "не нашлось" это нормальный ход выполнения приложения.
Тому что шарп для вкатунца это очень плохая идея. Если ты вкатунец, тебе под тридцантик и ты работал таксистом или барменом всю сознательную жизнь, нужно забыть про энтерпрайз и бэк. Даже фронт идея не очень. Если работал условным инженером, то можно пробовать прыгнуть сразу в энтерпрайз или бэк на свой страх и риск.
Топчик для вкатунца это разработка под мобилки. Если работал в офисе юристом или другим перекладывателем бумажек то 1с. После 2-3 лет из мобилки лучше уходить уже в бэк или фронт, после 1с в прочий энтерпрайз.
На метаните норм по асп. Сам с него начинал.
>конвееры, билдеры и прочие высокие абстракции
ну вот с них и начнай
Когда читал Рихтера, то всё понимал, потому что в студенческие годы писал на ассемблере и поэтому IL-код мне оказался понятным. А тут пытаются объяснять не последовательно, а где-то из середины. Не понятно от чего отталкиваться.
>Когда читал Рихтера, то всё понимал
В чем отличие работы генериков при закрытии типа классом и структурой?
>Не понятно от чего отталкиваться
А я не понимаю что тебе не понятно.
Лучше юзать что-нибудь вроде ResultObject в котором передавать status, message и data.
Тогда ты сможешь спокойно проталкивать результат с уровня на уровень, с соответствующей инфой что и где у тебя произошло. И не придется гадать, почему у тебя null в контроллер вернулся, потому что действительно ничего не нашлось или по дороге база отвалилась.
>Если работал условным инженером, то можно пробовать прыгнуть сразу в энтерпрайз или бэк на свой страх и риск.
Мой случай. Работал на заводе инженером, ковырял и программировал железки. В неспешном режиме за год освоил шарповый веб стек и перекатился в энтерпрайз. Сижу пилю бэк на шарпах и немного фронт на JS. Ни о чем не жалею.
Правда у меня нихуевый бэкграунд в виде pure с, asm-а и других низкоуровневых спец языков за спиной.
>Лучше юзать что-нибудь вроде ResultObject в котором передавать status, message и data.
Честно сказать не вижу смысла всегда предпочитать resultobject вместо налл. Тем более с новыми налл-аннотациями проебатся с наллом труднее, чем забыть проверить статус.
>потому что действительно ничего не нашлось или по дороге база отвалилась.
Это неплохо работает в том же UserManager, где то же добавление может зафейлиться по многим причинам и их нужно показать юзеру. А отвал бд это ненормальный ход выполнения программы,, поэтому на запрос - 500, эксепшн в лог.
>Как реагировали, что вкатун 30-летний?
Сейчас рынку труда настолько плохо, что даже на 40-летних вкатунов нормально реагируют. Главное чтобы ты адекватен был и чтобы у тебя нормальные знания были. Если ты на собесе будешь мямлить и постоянно отвечать "я не знаю", "не помню", "я это не читал, думал не надо будет", то ясно, что на тебя смотреть будут как на долбаеба, независимо от возраста.
>>237162
>Как искал, анон?
В интернете. ХХ, хабр карьера, линкедин. Если сделаешь нормальное резюме, пару нормально оформленных проектов на гитхабе, то тебя сами найдут. Если не найдут то мониторишь вакансии и стучишься сам, даже если вакансии на мидла, то все равно стучишься, в одной из десяти тобой заинтересуются и дадут тестовое или пригласят на собес.
Я летом где-то в начале июля выложил резюме и начал активный поиск. В начале августа у меня уже было два оффера. И если бы выждал, то я думаю смог бы и лучше предложения найти, просто кончался отпуск, а старая работа настолько заебала, что нужно было уходить.
И даже после того как я закрыл везде резюме и убрал информацию, мне до сих пор в личку прилетают предложения пройти собесы.
>>237162
>Что на собесах спрашивали?
Сейчас всех собесят на уровне сеньеров. Так что готовься отвечать на большую кучу вопросов по основавм и выше. Организация памяти, objects, value types, GC, классы vs структуры, асинхронщина/многопоточность (ага и про треды спросят и про асинки-эвейты), коллекции (вплоть до того как List внутри устроен), дженерики, linq, интерфейсы, наследование и т.д. Cпросить могут что угодно. Причем чаще всего будут спрашивать не просто на уровне "что это", а именно как устроено и как работает. Например про GC обязательно спросят сколько поколений, и как происходит процесс чистки, что такое LOH, как вручную протолкнуть объект в другое поколение и т.д.
Ну а дальше SQL, ASP.NET, EF, rest, solid, ООП и т.д. по той же схеме.
Но... с учетом того, что 95% собесов происходят онлайн (причем в большинстве случаев даже видео не требуют) и никто не мешает тебе рядом держать второй монитор с открытыми шпаргалками или справочник под рукой. То надо совсем нихрена не знать, чтобы заваливать собесы.
>Как реагировали, что вкатун 30-летний?
Сейчас рынку труда настолько плохо, что даже на 40-летних вкатунов нормально реагируют. Главное чтобы ты адекватен был и чтобы у тебя нормальные знания были. Если ты на собесе будешь мямлить и постоянно отвечать "я не знаю", "не помню", "я это не читал, думал не надо будет", то ясно, что на тебя смотреть будут как на долбаеба, независимо от возраста.
>>237162
>Как искал, анон?
В интернете. ХХ, хабр карьера, линкедин. Если сделаешь нормальное резюме, пару нормально оформленных проектов на гитхабе, то тебя сами найдут. Если не найдут то мониторишь вакансии и стучишься сам, даже если вакансии на мидла, то все равно стучишься, в одной из десяти тобой заинтересуются и дадут тестовое или пригласят на собес.
Я летом где-то в начале июля выложил резюме и начал активный поиск. В начале августа у меня уже было два оффера. И если бы выждал, то я думаю смог бы и лучше предложения найти, просто кончался отпуск, а старая работа настолько заебала, что нужно было уходить.
И даже после того как я закрыл везде резюме и убрал информацию, мне до сих пор в личку прилетают предложения пройти собесы.
>>237162
>Что на собесах спрашивали?
Сейчас всех собесят на уровне сеньеров. Так что готовься отвечать на большую кучу вопросов по основавм и выше. Организация памяти, objects, value types, GC, классы vs структуры, асинхронщина/многопоточность (ага и про треды спросят и про асинки-эвейты), коллекции (вплоть до того как List внутри устроен), дженерики, linq, интерфейсы, наследование и т.д. Cпросить могут что угодно. Причем чаще всего будут спрашивать не просто на уровне "что это", а именно как устроено и как работает. Например про GC обязательно спросят сколько поколений, и как происходит процесс чистки, что такое LOH, как вручную протолкнуть объект в другое поколение и т.д.
Ну а дальше SQL, ASP.NET, EF, rest, solid, ООП и т.д. по той же схеме.
Но... с учетом того, что 95% собесов происходят онлайн (причем в большинстве случаев даже видео не требуют) и никто не мешает тебе рядом держать второй монитор с открытыми шпаргалками или справочник под рукой. То надо совсем нихрена не знать, чтобы заваливать собесы.
>поэтому на запрос - 500, эксепшн в лог.
Только для этого тебе придется проталкивать этот эксепшен через все слои, чтобы в контроллере понять, что нужно 500 отдать. Такое себе, особенно если у тебя все асинхронно, там вообще можно сайд эффектов наловить.
>чтобы в контроллере понять
А зачем контроллеру это понимать? Есть мидлваря для обработки эксепшенов.
>там вообще можно сайд эффектов наловить
Например? При условии, что все таски эвейтятся.
Там вроде нельзя перегружать значки, а сами методы можно. Поэтому жависты вынуждены писать что-то типа
a.add(b);
а не
a + b;
>Так что готовься отвечать на большую кучу вопросов по основавм и выше. Организация памяти, objects, value types, GC, классы vs структуры, асинхронщина/многопоточность (ага и про треды спросят и про асинки-эвейты), коллекции (вплоть до того как List внутри устроен), дженерики, linq, интерфейсы, наследование и т.д. Cпросить могут что угодно.
Хех, как будто я тебя себесил. Но у меня такие вопросы на мидла. Я кст, когда собеседовал, рекомендовал кандидатов если они хотяб на 50% что-то отвечали. Обычно требовал, от кандидата или знания основ SQL или EF. Довольно часто hrры рубят годных кандидатов из-за хуевых софт скилов, особенно в галерах.
Вопросики для сеньеров, это всякая редкая срань для sql, уровни изолированности транзакций, некластеризованнные индексы и нахуя они нужны. Или вопросы по совместимости технологий. А вопросы на сложность алгоритмов считаю долбоебизмом.
> Сейчас всех собесят на уровне сеньеров. Так что готовься отвечать на большую кучу вопросов по основавм и выше.
Ого, хороший список, спасибо. По каким материалам готовился?
Ладно я нуб и дурак, спорить не буду.
---
Выебнуться хотел, но потом вспомнил, что в тасках уже есть IsFaulted, что по сути тот же самый механизм.
>А вопросы на сложность алгоритмов считаю долбоебизмом.
Кстати, вот на тему алгоритмов очень мало спрашивают. В основном про структуры данных. Массивы, списки их отличия и сложность поиска/вставки. Про словари еще могут спросить. А вот всякие сортировки, поиски, обходы графов и т.д. мне ни разу не попадались. Хотя особо проблемы не вижу и в них.
>По каким материалам готовился?
Если про учебу, то (если не считать предыдущего бэкграунда и учитывать чисто шарпы) с момента, когда я решил, что "меня заебало, надо ливать в другую сферу", сначала где-то год самообучения. В основном это Троелсен, Албахари, метанит и MSDN. Причем упор в основном на последнее. Ну и Рихтер конечно, но это скорее как "внекласное чтение".
Потом когда понял что немного уперся и было непонятно, что учить дальше и в какие фреймворки тыкаться, решил что нужны курсы. Выбирал из рассчета, чтобы было тяжело и была возможность личного общения с практикующими преподами. Курсы хорошо бустанули в изучении ASP.NET, EF, SQL, и т.д.(плюс JS еще) Но я там реально въебывал, все домашки делал четко в срок, причем старался всегда делать за пределами задания. Доебывал преподов в личке. Скорешился с несколькими человеками на курсе, организовали свой дискорд сервак, где делились материалами, опытом. Организовывали созвоны где шарящие объясняли менее шарящим за материал. Даже часть преподов на этот сервер удалось зазвать где они нам еще знаний подкидывали.
Параллельно купил себе виртуальный сервачок, где поднял БД и учился туда деплоить свои поделия, просто чтобы понимать как весь этот веб крутится в живую.
В итоге через полгода у меня было несколько небольших веб приложух, которые можно было и в гитхабе посмотреть и в уже развернутом виде увидеть в сети. Я собрал себе резюме, мне его очень хорошо помогли отредактировать (дружите с нужными HR) и начал поиск работы.
---
Если же говорить о подготовке к самому собесу. То в качестве шпаргалок советую метанит. По нему очень удобно быстро пробежаться и освежить память по сетевому стеку. А по самому C# крайне советую "C# Карманный справочник" от Албахари Дж. и Б. Это как краткая выжимка из MSDN на бумаге. Я его перед собесом всегда перечитывал за час до, чтобы по быстрому все вспомнить. Если же углубленно, то нужно учиться.
Потому что я тут сколько спрашивал, никто будто ничего кроме формочек/WPF, да веб-апи и не делает.
Вообще, опыт всяких IoT - на шарпе - стоит хоть сколько-то? А то меня с одной стороны зовут на собесы, но там я смотрю - круды придется делать, да в очередь кидать всякое. Скучно с концептуальной стороны. А сам я скорее всего еще и сольюсь на собесе, потому что опыт у меня как раз наоборот: сокет в зубы и хуяч-хуяч чтоб как можно больше реквестов в секунду, да как можно меньше алокаций.
Очень просто искал: состряпал резюме на hh, которое слал всем подряд. Особенно тем, у кого в вакансии значились шарпы, как требования. Игнорировал любую верстку, если значился пайтон, ну и вакансии для крутых спецов. Но последнее субъективно конечно. И вот где-то всего за 7-8 рабочих дней оказался на испытательном, где теперь работаю. За то время, пока искал, дважды присылали тестовые задания, один собес по зум, один ирл и звонок-предложение побегать интернет поподключать. Но эти сами мое резюме нашли, я туда бы не послал. Одно из тестовых я успешно сдал и даже получил приглашение на другой собес, однако не пошел, потому что на тот момент уже устроился на текущее место. Вот. Сказать что мне прям супер повезло нельзя, потому что вариантов, даже для такого как я, оказалось больше одного и за довольно сжатый срок.
Про собеседования. Я заранее почитал про штуки которые были указаны в вакансии. Суть оказалось простой: взаимодействовать через апи со сложным промышленным ПО и подстраивать его под рабочий процесс штата сотрудников. В самом ПО я вообще ничего не понимаю, однако доки описаны с примерами на шарпе. А там все понятно. Обработка даты, короче. Ничего такого, с чем не справилась бы обезьяна при некоторой сноровке. Сказал, что понимаю, чем предстоит заниматься ну и всяких умных слов, какие помнил по книжкам про шарп, наложил сверху. Я так думаю, что меня выгодно отличило, что я дешевый в сравнении с крутыми спецами и выпускниками илитных вузов, резюме которых лежали в одной пачке на столе вместе с моим. Не 15 тысяч, конечно, но около средней московской получаю.
Совет для вкатчиков от вкатчика: подучите sql, ef, msms. Под шарп самое-то. И на самом деле там все очень просто работает, но при том, на постороннего наблюдателя, производит эффект, как магия вуду.
Хз, как-нибудь так, но нужно быть осторожным.
Классический ранний выход, это абсолютно ок. Но если больше трёх return'ов, то это уже пахнет тем, что метод у тебя дохуя всего разного делает и хорошо бы всё это раскидать по разным методам и оставить какой-нибудь switch expression, если в этом месте частые изменения логики не планируются.
Поставь условие, что пойдешь только если все исходники без монтажа тебе предоставят.
И ещё чтоб суки выложили в 4к, а то пиздец мыло
Нужно делать произвольную проверку (сравнение с числом) данных из большого struct'а float'ами. Требования таковы, что в принципе, может потребоваться проверка любых полей или суммы полей или соотношения.
Нужно, чтобы это работало максимально быстро.
Попытался сделать две реализации. Одна - это структура, хранящая делегат, который извлекает из struct'а нужное свойство, а также граничное значение для этого свойства.
Другая реализация - это интерфейс, который реализует извлечение из struct'а свойства.
Ожидал, что разница в производительности за счёт умного JIT'а в .NET6 будет минимальна. А оказалось, интерфейс работает почти на 50% медленнее. Почему так?
Код: pastebin.com/iwDEaNhb
Так с ходу я тебе не скажу, надо внимательно смотреть и запускать профилировщики (могу только пальцем в анус тыкнуть и предположить, что например копирование структур занимает больше времени чем очистка кучи, а может во время теста гц вообще не запускается, а чистит кучу после остановки секундомера). Бело взглянув могу предложить такую оптимизацию - убрать деконструктор
>// (IChecker checker, float limit) = checkers[j];
>var x = checkers[j];
>if (x.Checker.Check(s, x.Limit))
у меня дало прирост в среднем +25ms
> в котором есть просто элементы
> а есть ещё 4 элемента-листа
> всё на одном уровне
Как это реализовано? Наркоман.
И какой тип у внешнего листа, обжект? Токда пиздуй на жсе говнокодить. Тогда в Select проверяй тип. если элемент, возвращай его, если лист возвращай его элементы через SelectMany.
>И какой тип у внешнего листа, обжект?
Мой тип
>тогда в Select проверяй тип. если элемент, возвращай его, если лист возвращай его элементы через SelectMany
А как это сделать-то в linq?
> Мой тип
Ты пиздишь. Твой код не скомпилируется, потому что ты хуйню написал.
> А как это сделать-то в linq?
Начни с исправления своего кода. Ответ тебе дали, в общем-то, в терминах LINQ. Хули ты ещё хочешь?
>Мой тип
Дай код и желаемый результат, что у тебя за ебатнутый тип, который явдяется и элементом и листом себя же.
>А как это сделать-то в linq?
Так дай код, потому что если на обжектах, то прямо из коробки может и не получится, придется свой метод запердолить. Но зачем такое делать линком?
Это высер дауна. Свойство и так инициализируется значением по-умолчанию при создании объекта.
С другой стороны, там стоит !, что заставляет компилятор заткнуться по поводу налла, но с еще другой стороны тогда уж лучше указать, что свойство может быть наллом через string?.
2ой пик - лучший из всех тредов, у фулстэка сисярп всегда на хую
1. Репозитори паттерн.
2. То самое factory в названии - у меня начинается просто тряска, когда это вижу.
3. MVVM.
4. Любой декстопный фреймворк в пет-проекте, особенно новое говнецо от майков.
5. Энтити Фреймфорк.
6. Блазор/Разор - два недоноска-пара, да веб-формс мразина.
Продолжаем :)
7. Неймспейс систем в проекте.
Пердикс, съебал в жабатред
Контору найти не проблема, главное на какую зп? В мухосранских галерах и моя собака может устроиться за еду писать хэлоуворды.
> Репозитори паттерн
И чем плохо-то? Ну давай, поясни. Тем более что ты еще и 5й пункт хуйнул.
> То самое factory в названии
Как ты предлагаешь называть класс, который имеет вид:
interface IFoo<T>{
public T Create();
}
?
Давай, оч интересно полушать.
> MVVM
Ты пытался что-то сложнее одностраничной хуеты на десктопе делать-то?
> Энтити Фреймфорк.
И тут ты поясняешь что с ним не так, тем более в контексте того что ты про первый пункт спизданул.
Я конечно понимаю, что ты скорее всего ничего никогда сложнее хелловорлда не писал, а если и был на проекте, то все что ты делал - это кнопочки перекрашивал, да грамматические ошибки в логах правил. Но давай представим, что ты таки действительно что-то делал. Допустим, банальный интернет магазин по продаже драконьих дилдо. Давай, расписывай архитектуру и инструменты для такого вот интернет-магазина по продаже драконьих дилдо, пригодную для скейла, хайлоада и с функциями социальной сети, чтобы пользователи могли чатиться, собираться в группки и обсуждать любимые драконьи дилды.
В общем, жду архитектурный проект, с основными сущностями, иначе очередной долбоеб-вкатун.
bump
Для чего?
С ADO - ты можешь больше и из-за отсутствия оверхеда - можно добиться лучшей производительности. Но тебе придется писать свои мапперы, кучу бойлерплейта, так нелюбимый тут репозиторий прикручивать и самому делать UOW, следить за состояниями сущностей, если минимально на уровни разбиваешь приложение, плюс - ебатория с выделением объектов(адо просто читает-пишет из/в базу, ты уже - должен будешь как-то следить чтобы не создавать миллиарды идентичных объектов на каждое чтение/запись).
С EF - у тебя удобная обертка, мапинг, поддержка линку, за тебя уже сделали репозиторий и UOW, сиди-перди. Проблемы с ним - производительность ниже, плюс - некоторые специфичные штуки твоей СУБД - делать сложнее. Но учитывая что сейчас как-бы считается, что СУБД - должна быть просто хранилищем данных, а все остальное должно быть вынесено на уровень приложения - не так страшно отсутствие всяких фич, а разница в перформансе там не так драмматична, как малюют всякие.
Конфиг: Intel Core Duo 1,9 GHz, RAM 2GB.
Можно только до 4.0 .net framework. За нет кор не вкурсе.
SDK последних версий не поставишь. Запустить там - можно.
НО, раз уж у тебя такая вот красотуля, то я советую 3,5 легаси фреймворк(вроде он на XP уже был, может быть придется 2 ставить, если я ошибся) и старенькую студию, которая еще на C++ была написана. Да, это устаревшее добро, но на самом деле если ты только учишься, то не так все и страшно изменилось, потом наверстаешь. Зато получишь тот самый охуеннейший опыт и будешь испытывать меньше попоболи от того что не понимаешь что-то, потому что в те времена шарп не был перегружен таким количеством сахарка и подкапотных штук, все было просто-понятно. ПЛЮС. У старой студии был ОХУЕННЕЙШИЙ интерфейс. Просто 11/10. Я хуй знает зачем они это богомерзкое говно сделали, которое сейчас.
В общем, если ты только учишься, то бери то что я сказал, еще и будешь флексить потом, что на старом шарпе успел покодить.
Но а если тебе принципиально современного хочется - можешь поставить линуксы и просто скачать себе последний неткор, а кодить в каком-нибудь VSCode обмазавшись плагинами для того чтобы превратить его в подобие нормальное IDE.
Да, относительно линукса. Самые модные-свестящие-пердящие дистры наверное не подойдут для таких вот скромных требований. Так что смотри что-то полегковеснее и без свистелок-перделок.
В общем. Что я увидел: такая вот ебала примерно:
Socket ipv4Socket = null;
Socket ipv6Socket = null;
...
ну и если коротко - берутся все ip-адреса и пробуется подключиться, потом выбирается сокет который подключился.
Так вот. Неужели нельзя проще как-то сделать это вот? Вот допустим, я не хочу TCPClient использовать из-за того что там эта хрень с NetworkStream, а мне хочется Pipe'ы использовать. Так вот, я хочу подключиться к удаленному хосту. Можно ли это вот как-то проще делать? Или только вот так вот как делают майки - единственный вариант? Просто в моей реализации моего клиента - я, по наивности, просто пробовал коннектиться по IP адресу, но это привело к тому что если хост не умеет в IPv6 - обосрамс, сокет как-бы нормально так подключился, вроде отправляет, а хост просто не получает эти сообщения.
Может быть это я еблан и на стороне хоста нужно что-то править. Только вот на стороне хоста - если локально тестить все норм, а на удаленном серваке на линуксе - не подключается почему-то по IPv6, потому на хосте я отключил временно дуалмод до выяснения причин. Теперь вот нужно еще и клиент перепилить, и пришлось лезть в то как у майков реализована, потому что мой клиент, как я уже сказал, не подключался, а майковский - таки подключался. Как я понял - различие как раз в том, что я - просто брал и пробовал подключиться, а они всю ту ебаторию с перебором IP к котоым можно подключиться делали.
Есть тут сетевые инженеры? Может быть поясните за это и как дуалмод намутить для своего сервера и чтобы при этом не зависить от того умеет ли хост-компьютер в IPv6.
Решил написать на сисярпе потому-что... ну кроме него я знаю только питухон. Проблема в том что я не могу найти никакой инфы о том как из сярпа управлять системой. Вроде NAudio это умеет, но я не хочу перегружать простой проект огромной либой 99% функционала которой мне не нужно.
Могу я как-то напрямую из сярпа обращаться к WinApi? Гугл говорит что как-то могу но никакой конкретной информации.
Все что делает винда можно делать через апи.
https://docs.microsoft.com/ru-ru/windows/win32/api/
Ноооо бляяяя там как по мне сложна пздц.
https://docs.microsoft.com/ru-ru/windows/win32/audio-and-video
и вот еще, вроде точ то тебе нужно.
А на счет перегрузкой проги тяжеленой библиотекой ты не парься.
При компиляции же есть настройка удалить все что не используется.но это не точно
Есть какае лецкция чи книга по блокчейнам? Или мб курс какой ?
Желательно на русском, бо на англицкой чет туго идет.Но если в видео индус на англицком говорит то сойдет, почему то индусский англицкий на слух легко воспринимается.
В частности мне бы узнать по подробнее как происходят вот эти все модные POS хуес.
Просто не вижу профита в блокчейне где нельзя майнить монеты. Ну чутка вижу но не очивидные профиты.
Получается же просто жутко тормознутся бд.
Сорян что пишу тут. Просто кажется самый адекватный и дружелебный тренд тута.
Спасибо. Я вот вроде нашел простой и лёгкий врапер (https://github.com/morphx666/CoreAudio/tree/1c6cadb5030b9d4323ce8f47e5420d6a8e035a51), который вроде работает и делает всё что мне надо, но бля, насколько же winapi заёбистый. И вон с какого-то хуя у дискорда два процесса отображаются. Схуяли?
> Такое дело. Хочу запилить внешнюю шнягу для управления виндоусовским микшером. Т.е есть ардуина читающая крутилки, и мне нужна утилитка на компе которая будет громкость менять.
Твоё решение это костыли. Нужна специальная клавиатура которая нажимает кнопку уменьшения громкости. Короч нарушено пару принципов)0
>клавиатура которая нажимает
Щитоблять? Как клавиатура может что-то нажимать? У неё же пальцев нет.
Ну а для нажимания клавиатуры пили приблуду на ардуине. С распознаванием клавишь через нейронки.
Устройство клавиатуры, чтоб комп видео твою ардуину как клавиатуру. Чтобы работало на любом компе без программ
Они асп.нет очень сильно меняют в каждой версии, так что надо книжку посвежее искать. Ещё слышал, что вышел перевод ASP.NET in Action, но даже в продаже нигде нет.
Вообще, C# и дотнет очень быстро меняются и люди не успевают за таким темпом. Может микрософтам немного попридержать с идеями. Лучше бы сосредоточились на переносе фич из фреймворка в кор, а не меняли то, что и так неплохо работает.
>Они асп.нет очень сильно меняют в каждой версии
Все изменения описаны на мсдн, и нет уж и сильно меняют, 99,9% будет актуально. Книги смогут быть на 100% актуальны только когда платформа помрет.
>Вообще, C# и дотнет очень быстро меняются
Добавляют, но не меняют же, да и то по большей части сахар. Для фундамента пойдет и не самая свежая книга, для остального мсдн.
>переносе фич из фреймворка в кор
Какой фичи нетт в коре? Кор уже давно ушел вперед.
>, а не меняли то, что и так неплохо работает.
Например?
Как же у меня от этого горит. И подобное говно еще на собеседованиях постоянно спрашивают, словно я должен помнить, правая или левая пятка зачесалась у создателей языка, когда они все это придумывали.
>>240786
>Додик, ты структуры упаковал.
Да ты прямо гений, я смотрю. А что такое боксинг? Это и есть имплементация поведения, аналогичного поведению при наследовании классов, он именно для этого нужен. Ну вот и сравнивали бы тем оператором, которым сравнивалось бы при наследовании классов, В ЭТОМ КАК БЫ И СУТЬ ВАШИХ БОКСИНГОВ. Но нет, у них "я художник, я так вижу", давай намеренно язык усложнять, чтобы негры не могли становиться программистами. Гребаные расисты.
Додик, ты структуры упаковал.>>240792
>Это и есть имплементация поведения, аналогичного поведению при наследовании классов
Ты снова обосрался, боксинг это скорее аггрегация а не наследование.
> он именно для этого нужен.
Ты снова обосрался x2. Он нужен, что бы использовать значимый тип, там где нужен ссылочный.
> которым сравнивалось бы при наследовании классов
Классы сравниваются по ссылке, если оператор не переопределен. У структур переопределен, у стринга переопределен, у обжекта не переопределен - какого хуя он должен делать что-то кроме сравнения ссылок?
>В ЭТОМ КАК БЫ И СУТЬ ВАШИХ БОКСИНГОВ
Ты снова обосрался x3
>чтобы негры не могли становиться программистами
Так иди в макдак.
>>240784
Тебе уже анон достаточно мягко объяснил, что ты дурак, но хочу сказать, что когда ты пишешь что-то вроде object или dynamic, ты как бы заявляешь, что фич сишарпа тебе недостаточно для реализации твоей задумки и ты берёшь всё в свои руки, осознавая всю тяжесть последствий. Предполагается, что в таком случае ты знаешь все тонкости, с которыми ты столкнешься на пути. Ну или ты готов через боль и слезы изучить их по ходу дела.
>при наследовании классов
Ага, блять, обжект наследуется от инта, который наследуется от обжекта. Самого-то ничего не смущает?
Ясно, просто у меня уже года 2 как есть, поэтому такой проблемы не имею.
Они работают за счет винапи и директХ, очевидно ни того ни другого в линупсе нет. Только при чем здесь нет кор?
Иди на js или питон, там всё продумали.
Ты на джаве тоже можешь написать либу, которая дёргает винапи и которая не заведётся под линуксом. И на коре ты можешь использовать кроссплатформенные юай фреймворки. Никакой разницы тут нет.
Потому что, в случае с o1 и o2 происходит upcast, так как System.String - это subclass от object, но у стрингов по дефолту используется сравнение контента, а не референсов.
В случае с o3 и o4 - происходит boxing, когда создается новый объект, так как object - это reference тип, а int - это value тип, в данном случае происходит дефолтное сравнения референсов.
1. Имеет ли различие архитектуры проекты Java и .NET?
2. Там понятно будет линуха+AWS, но помимо разворачивания по стэку использования какие отличия?
3. Какие шансы залететь на мидла Java только со знаниями C#? 5+ лет ком. опыта
Мне нравится шарп как язык, но в джаве больше книги и они более качественные. Пока боюсь прыгать с языка на язык, чтобы не запутаться в процессе обучения.
В джаве меня отталкивает отсутствие беззнаковых типов и что она сама заменяется на котлин. А котлин отстойный язык, чем-то напоминает раст, тайпскрипт и паскаль.
Уходи из дотнета, нам такие как ты тут не нужны, пускай будет дефицит кадров.
Вакансий у него нету, да нахуй нам эти вакансии не нужны.
А ну ещё добавлю, что работа на галере - зашквар.
Лол, нет. Даже майки шарпом пользуются очень неохотно, о каком вытеснении может идти речь? Технология - умирающая.
В конторе, делать продукт 15 лет. У нас недавно обновление безопасники выкатили, теперь все пересели уже на четвертый фреймворк.
Или возвращать фронту без файлов, а он просто будет по каждому делать отдельный реквест?
А что тут нелогичного?
Я не понимаю если честно. В твоем случае же оно дает тру именно потому что ссылки указывают на один и тот же участок памяти, а в случае с 42 - участок памяти - разный. Соответственно - и тебе в ответ false.
Ты же в этом контексте сравниваешь ссылочные типы и похуй какое ты там значение положил, кусок памяти - разный. В первом случае - один и тот же.
Почему так? Потому что сравнить ссылку быстрее чем посмотреть какие там значения, особенно в случае если ссылка указывает на один и тот же кусок памяти.
Как по мне - в контексте дизайна языка - все именно что логично. Но со структурами предполагается, что ты именно что хочешь передавать значение, он для того и введены в язык, так вот, чтобы тебе было проще - для случаев, когда тебе именно что важно значение - решено было добавить то поведение, что ты видишь. Только вот запаковав структуру в object - ты сам, по сути, говоришь компилятору, что тебе именно что нужно, так это работать с ним как с ссылкой. Компилятор не ванга, чтобы понять, нахуя ты это сделал и в итоге среда ведет себя так, как это и задумано для ссылочных объектов.
Ну, чтобы тебе было понятно:
[0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F]
Допустим это вот твоя оперативная память. Тебе нужно сравнить что две ссылки указывают на один и тот же кусок памяти. У тебя две ссылки они указывают на 0x01. На кой хуй тебе теперь проверять что по этому адресу лежит одно и то же значение, если значение там в любом случае одно и то же? Так вот устроена память. Представь что это ящик. В него что-то положили. Тебе дали две бумажки, которые говорят что в ящике 10 что-то лежит. Ты же со 100% уверенностью можешь сказать, что независимо от того какая бумажка у тебя - ты, если посмотришь в ящик - увидишь тот же самое.
Так вот. Как раз - нелогично будет - закладывать разное поведение, если упакована была структура. Потому что в таком случае - другой разработчик - должен будет каждый раз делать проверку: пришло в object к нему структура или таки ссылка. Это - как раз было бы с точки зрения языка пиздец и нахуй никому не нужно.
Опять же. Если бы ты поебался с unsafe - и у тебя бы одни и те же строки лежали в разных кусках памяти - при == у тебя было бы false, что опять же логично и подробно описано в документации.
Ну и да. Для того чтобы узнать, что объекты эквивалентны в дизайн заложен Equals. Хули ты его не используешь? С ним как раз - закладывается та логика, которая тебе нужна.
И последнее. Если тебе в своих классах хочется - ты можешь перегррузить == и добиться того что оно будет как Equals работать. За это тебя все нормальные разрабы проклянут, но если тебе так вот хочется - делай, хули ты ноешь-то?
А что тут нелогичного?
Я не понимаю если честно. В твоем случае же оно дает тру именно потому что ссылки указывают на один и тот же участок памяти, а в случае с 42 - участок памяти - разный. Соответственно - и тебе в ответ false.
Ты же в этом контексте сравниваешь ссылочные типы и похуй какое ты там значение положил, кусок памяти - разный. В первом случае - один и тот же.
Почему так? Потому что сравнить ссылку быстрее чем посмотреть какие там значения, особенно в случае если ссылка указывает на один и тот же кусок памяти.
Как по мне - в контексте дизайна языка - все именно что логично. Но со структурами предполагается, что ты именно что хочешь передавать значение, он для того и введены в язык, так вот, чтобы тебе было проще - для случаев, когда тебе именно что важно значение - решено было добавить то поведение, что ты видишь. Только вот запаковав структуру в object - ты сам, по сути, говоришь компилятору, что тебе именно что нужно, так это работать с ним как с ссылкой. Компилятор не ванга, чтобы понять, нахуя ты это сделал и в итоге среда ведет себя так, как это и задумано для ссылочных объектов.
Ну, чтобы тебе было понятно:
[0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F]
Допустим это вот твоя оперативная память. Тебе нужно сравнить что две ссылки указывают на один и тот же кусок памяти. У тебя две ссылки они указывают на 0x01. На кой хуй тебе теперь проверять что по этому адресу лежит одно и то же значение, если значение там в любом случае одно и то же? Так вот устроена память. Представь что это ящик. В него что-то положили. Тебе дали две бумажки, которые говорят что в ящике 10 что-то лежит. Ты же со 100% уверенностью можешь сказать, что независимо от того какая бумажка у тебя - ты, если посмотришь в ящик - увидишь тот же самое.
Так вот. Как раз - нелогично будет - закладывать разное поведение, если упакована была структура. Потому что в таком случае - другой разработчик - должен будет каждый раз делать проверку: пришло в object к нему структура или таки ссылка. Это - как раз было бы с точки зрения языка пиздец и нахуй никому не нужно.
Опять же. Если бы ты поебался с unsafe - и у тебя бы одни и те же строки лежали в разных кусках памяти - при == у тебя было бы false, что опять же логично и подробно описано в документации.
Ну и да. Для того чтобы узнать, что объекты эквивалентны в дизайн заложен Equals. Хули ты его не используешь? С ним как раз - закладывается та логика, которая тебе нужна.
И последнее. Если тебе в своих классах хочется - ты можешь перегррузить == и добиться того что оно будет как Equals работать. За это тебя все нормальные разрабы проклянут, но если тебе так вот хочется - делай, хули ты ноешь-то?
Возвращай ссылку на файл. Нехуй просто так гигабайты трафика туда-сюда гонять, если это может быть даже и не нужно клиенту будет.
По хорошему, для каких-нибудь картинок - две ссылки: превью с пожатой версией и ссылка на полный файл. Для видяшек - можно ссылку на какой-нибудь кадр с превьюшкой. Для остального - просто ссылка на скачивание.
Ну, просто давай подумаем за тебя. Вот у тебя на фронте 1000 клиентов. Файлы по 1 гигу. Сообщений с этими файлами 1000. Получается - каждый клиент будет качать эти 1000 гигов просто за хуй собачий, а они клиентам и не нужны нахуй. Сам-то подумай, ты бы хотел, чтоб зайдя в дискорд какой-нибудь, тебе все эти картинки загружались, пусть даже в оперативку? Не хотел бы, я думаю.
> но у стрингов по дефолту используется сравнение контента, а не референсов
Нихуя подобного. Просто у фреймворка есть спрятанная таблица со строками. Когда ты пишешь: string a = "abc" - фреймворк ищет в таблице, если не находит - создает новую запись. Все. Сравнение идет только на этапе создания экземпляра, чтобы проверить: новая строка или уже такая есть в таблице. Когда ссылок не останется - строка из таблицы будет сожрана горбатым коллектором.
Если не веришь: вот тебе пример с кодом.
>>241367
Да не ссы, я если честно сам думал, что там действительно, как во многих языка, стринги реюзатся и за счёт этого идёт отсылка к одному объекту, но похоже что это банальный оверлоад дабы избежать неочевидных для многих багов в продакшене.
>>241350
Нет, всё правильно, но получается фронту прийдеться на каждую отсылку делать отдельный реквест, я думал можно по-проще сделать, но не фартануло, наверно разве что подключать всякие кэши и прочее.
> Имеет ли различие архитектуры проекты Java и .NET?
Имеет. Ты как минимум заебешься с их системами сборки. Блядь, Ant, Gradle, Maven и еще дохуя всякого говна. Это из базового.
Сама архитектура. Сколько проектов не смотрел: везде - мы самые умные, потому давайте как свой DI мутить(ну, я смотрел проекты древние, может быть в те времена не было удобных инструментов), или вообще: НАХУЙ DI, ДАВАЙ ГАД ОБЖЕКТЫ, ЫЫЫ, ХУЯК СИНГЛТОН ЧЕРЕЗ СИНГЛТОН И КЛАСС ApplicationContextManager который ВСЕМ, блядь, управляет.
Да, нахуя нам ОРМ, они ж для пидорасов, давай-ка будем сами руками мапить, хули нам не маппить руками, это же так весело, нахуй(опять же, тут может быть дело в том, что проекты старые и когда их начинали делать - не было нормальных ОРМ, а потом уже забили хуй и не стали переделывать).
О, да, миллиард классов с именами Context, Factory, Resolver и Provider, без этого никуда.
А, ну и еще: ыыы, жава не умеет в одном файле два класса нормально хранить, потому ДАВАЙ Я БУДУ ВЛОЖЕННЫЕ КЛАССЫ ДЕЛАТЬ, 10 УРОВНЕЙ, НАХУЙ, БЛЯДЬ, ЫЫЫЫ, НАВЕБАЛ ДЖАВУ, КАКОЙ Я УМНЫЙ!!!
А, ну и да, если попадешь на проект, который делали люди ВУМНЫХ КНИЖЕК начитавшихся, будь готов к пиздецу с тем, что они там мутили архитектуру невьебенную, но потом поняли что обосрались и в итоге пришли джуны и то что выше наделали, чтоб оно работало хоть как-то, в итоге ты нихуя не поймешь, пока не въедешь в полет фантазии и не поймешь о чем думал тот хуйлан, который это писал.
> по стэку использования какие отличия?
Жава используется для всего. Лично я видел как на ней и для телекома пилили прикладной софт и для IoT сервера и в банках софт и убогие круды на спринге(спринг это самое близкое кстати к шарпу и его видению веб-приложения).
> Какие шансы залететь на мидла Java только со знаниями C#? 5+ лет ком. опыта
Околонулевые, если не по знакомству. Хотя в теории - ты можешь быстро разобраться с базовым инструментарием и потом на базе своего опыта - напиздеть, вкатившись таки на мидла. Но я бы не рассчитывал на это.
> Имеет ли различие архитектуры проекты Java и .NET?
Имеет. Ты как минимум заебешься с их системами сборки. Блядь, Ant, Gradle, Maven и еще дохуя всякого говна. Это из базового.
Сама архитектура. Сколько проектов не смотрел: везде - мы самые умные, потому давайте как свой DI мутить(ну, я смотрел проекты древние, может быть в те времена не было удобных инструментов), или вообще: НАХУЙ DI, ДАВАЙ ГАД ОБЖЕКТЫ, ЫЫЫ, ХУЯК СИНГЛТОН ЧЕРЕЗ СИНГЛТОН И КЛАСС ApplicationContextManager который ВСЕМ, блядь, управляет.
Да, нахуя нам ОРМ, они ж для пидорасов, давай-ка будем сами руками мапить, хули нам не маппить руками, это же так весело, нахуй(опять же, тут может быть дело в том, что проекты старые и когда их начинали делать - не было нормальных ОРМ, а потом уже забили хуй и не стали переделывать).
О, да, миллиард классов с именами Context, Factory, Resolver и Provider, без этого никуда.
А, ну и еще: ыыы, жава не умеет в одном файле два класса нормально хранить, потому ДАВАЙ Я БУДУ ВЛОЖЕННЫЕ КЛАССЫ ДЕЛАТЬ, 10 УРОВНЕЙ, НАХУЙ, БЛЯДЬ, ЫЫЫЫ, НАВЕБАЛ ДЖАВУ, КАКОЙ Я УМНЫЙ!!!
А, ну и да, если попадешь на проект, который делали люди ВУМНЫХ КНИЖЕК начитавшихся, будь готов к пиздецу с тем, что они там мутили архитектуру невьебенную, но потом поняли что обосрались и в итоге пришли джуны и то что выше наделали, чтоб оно работало хоть как-то, в итоге ты нихуя не поймешь, пока не въедешь в полет фантазии и не поймешь о чем думал тот хуйлан, который это писал.
> по стэку использования какие отличия?
Жава используется для всего. Лично я видел как на ней и для телекома пилили прикладной софт и для IoT сервера и в банках софт и убогие круды на спринге(спринг это самое близкое кстати к шарпу и его видению веб-приложения).
> Какие шансы залететь на мидла Java только со знаниями C#? 5+ лет ком. опыта
Околонулевые, если не по знакомству. Хотя в теории - ты можешь быстро разобраться с базовым инструментарием и потом на базе своего опыта - напиздеть, вкатившись таки на мидла. Но я бы не рассчитывал на это.
Пчел, мы никогда из .NET не уйдем на Джаву, мы ж не идиоты, тем более когда у нас F# ещё есть к C#, такие как вещи как linq и тонны сахара, которого просто там нет, или есть но реализовано колхозниками, спрашивай в Джава треде.
>>241388
Я сейчас освежил знанияЗАГУГЛИЛ. В общем, интернирование, по дефолту, происходит на этапе компиляции. Соответственно реюз будет того что можно на этапе компиляции просчитать. Если нужно таки заинтернировать строку в рантайме - нужно вызывать string.Intern. Но как понял, майки таки решили сами себя переигрывать, а потому горбатый коллектор таки не будет то что ты в рантайме добавляешь просто так удолять, соответственно и смысла особого нет использовать, т.к. такие строки будут жить до конца жизни приложения и если строк дохуя, это будет дохуя памяти сожрано в нихуя. Такие вот дела.
Ну и тут становится понятно, хули они переопределили использование оператора. Таки да, если мы активно работаем со строками, и у нас на этапе компиляции была строка:
string a = "aaa"
а мы в рантайме делаем
string b = "aa";
b += "a";
- то получаем две одинаковых строки, но с разными ссылками. В контексте работы с текстом - мы, наверное, таки хотим чтобы a == b - давало true.
Спасибо, интересно.
>с их системами сборк
про билдеры наслышен, где нужно указывать версии сборок, без которых просто так не сбилдаешь проект
> свой DI мутить
типо свою либу делали для DI? А зачем? Есть же Spring/tiger - подключил и пользуйся.
>НАХУЙ DI, ДАВАЙ ГАД ОБЖЕКТЫ, ЫЫЫ, ХУЯК СИНГЛТОН ЧЕРЕЗ СИНГЛТОН
это ты на какой-то помойный проект попал. Я хз, кто такое делать будет и тянуть все зависимости
>нахуя нам ОРМ
точно помойный проект
>миллиард классов с именами Context, Factory, Resolver и Provider, без этого никуда.
Это и на .NET нормальная практика
>ты можешь быстро разобраться с базовым инструментарием
я уже разбираюсь с open-source проектом, как и что. Я думаю даже больше проблемный будет не переход с # на Java (в рамках языка), а пласт околоидущих тулзов - тот же Oracle (а не MsSql), больше dynamic sql (или эдхок, как уж получится), ибо LINQ нету и придется все запросы руками писать.
А что кстати монолиту/микросервисам? Контейнеризацию используют? И ты давно и сколько на Java проектах сидел? Ибо то, что ты описал больше похоже на какой-то помойный легаси-сапорт после банды индусов
>мы никогда из .NET не уйдем
>у нас F#
>linq и тонны сахара
судя по тому, что ты высрал, ты в .NET и не входил (помимо парочки ссаных пет проектов). Вопрос к бывалым, а не к вкатышам
>такие строки будут жить до конца жизни приложения и если строк дохуя, это будет дохуя памяти сожрано в нихуя
Ну так поэтому и советуют при создании строк в рантайме использовать StringBuilder, вместо последовательной конкатенации, чтобы не плодить кучу промежуточных строк.
неосилятора чего? Ты бы для начала мои посты вверх проскролил, прежде чем высирать очередной бред
неосилятора чего? Ты бы для начала мои посты вверх проскролил, прежде чем высирать очередной бред
Накиньте стори как вкатывались? Че на гитхабе было на время вката?
Вот к примеру у меня 100 таксов, я их запускаю там асинхронно делается гет запрос через хттп клиент. Проц 4 ядра 8 потоков.
Что происходит дальше? Выделяется поток который ходит по таскам и проверяет пришел ли ответ? Или мб есть какое либо место в net есть какаета абстрактная очередь в которую попадают все асинхронные задачи и проверка идет по первой и ечли нет ответа то она попадает снова в очередь? Мб такая очередь создается на каждый запущеный процес в винде есть есть асинк авейт задачи?
Нихуя, только тестовое с галеры.
Вообще IO bound асинхронные операции не требуют отдельных потоков, но хттп клиент довольно костыльный, там могут и выделяться.
>В твоем случае же оно дает тру именно потому что ссылки указывают на один и тот же участок памяти
Но это же еще нелогичнее! Откуда мне было знать, что в случае строк один и тот же участок памяти? Я создал 2 переменные, я положил в них 2 раза 2 литерала, и ТУТ ОКАЗЫВАЕТСЯ, ЧТО ЭТО ОДИН ОБЪЕКТ. Да что за нахуй, черт возьми? Я из твоего коммента впервые узнал, что object o1 = "строка" и object o1 = new String("строка") дадут разный результат.
Как я понял, это не у фреймворка спрятано, а у компайлера, он так оптимизирует. В рантайме никаких таблиц и проверок нет.
все зависит от галеры и проекта. На помойный галерах будут выжимать все соки - 10 часовой рабочий день это норма, 12 - почет. На нормальных галерах дают скоуп на спринт, а ты уже сам. Хоть за день все сделай, главное чтобы к концу спринта все таски были протестированы и/или вылиты
Могу только за завод говорить.
На заводе как: какой-то менеджер чет придумал, передал в ваш отдел свои придумки. У вас при этом этих придумак - жопой жуй, плюс софт крутится уже на производствах, где в качестве одменов(эй кей эй девопсов) - сын тети клавы, который за компуктером все время сидел, вот его и пристроили по знакомству. Так вот, менеджер придумал, передал в ваш отдел, ваш вожак - тебе сказал: "Делай", ты говоришь: Там в сибири завод стоит, в подДС - сеть разваливается, в хуйзалупинске еще что-то, ваш вожак говорит: Ну, как найдешь время. Ты сидишь и лениво смотришь ютуб, когда слышишь что за выполнения работы дают премию - за два часа делаешь, если не слышишь - ждешь пока прийдет какой-нибудь практикант из местного вуза, чтоб он все сделал, а тебя назначили руководителем проекта и ты получил ништяки за "менторство". Как-то так. Да. Если придумка действительно важная и спущена какими-то контролирующими органами либо заказчиком напрямую, а не охуенными менеджерами-придумщиками, делаешь за пару недель, потом тянешь время, рассказывая, что все нужно тестировать, нужно рефакторить, нужно что-то еще, чтобы вынудить управленцев "мотивировать" тебя премиями, премий нет - тянешь время, пока друг друга не поймете, если грозятся отдать на аутсрс - поясняешь, что все аутсорсеры - пидрасы и индусы и нихуя не знают, аргументируя опытом и примерами как за аутсорсерами уже приходилось с нуля переписывать все(на самом деле приходилось исправить в паре мест, но ты писал в отчетах, что пришлось все переписывать с нуля).
Как-то так.
Завод - охуенно короче. По крайней мере, пока там не решают повысить продуктивность, путем отключения ютубов.
Я посмотрел по главам. Не понял что там такого, чего нет в книгах по шарпу. Любая вводная книга это описывает. Да и на, прости господи, метаните, все это есть. ХЗ зачем ее включать.
Тебе лечится надо, долбоеб. Новые формы винды выглядят охуенно, особенно на 11
Бери винформ, няша. Как-бы его не пытались похоронить майки - это действительно лучший инструмент, который есть на рынке для десктопа. Прост как палка. Производителен как пневмохуй. Удобен как программистам, так и пользователям. При этом, при желании, ты можешь формы сделать как похожими на современную дрисню, так и няшными, как во времена семерки-XP.
Если бы не винформы, я бы таки стал плюсовиком в вузе, но формы открыли мне глаза после QT как может быть и с тех пор лично я перешел на шарпик, а то бы сидел в вашем треде и троллил нюфагов тем, что вы указатель в руках не держали и не знаете как в памяти уложить структуру.
Допустим есть интерфейс IFoo {void Bar()}, Есть набор классов A, B, C, D ..., которые все реализуют IFoo. А так же ссылка foo типа IFoo, которая указывает на объект А:
IFoo foo = new A();
Теперь я вызываю foo.Bar()
Вопрос: ты нахуя собрался лезть в B,C,D,... и что ты там хочешь проверить?
Почему формы стали лучшим инструментом для интерфейсов вообще в мире?
>Поцоны а что происходит при вызове асинхроных методов?
Компилишь свою сборку.
Устанавливаешь dotPeek и открываешь сборку в нем.
Видишь во что все это разворачивается. Изучаешь.
Если вкратце, то там получится стейт машина, которая и будет все переключать/гонять. Подробнее в книгах читай.
Пара не сильно навороченных веб-api приложух. Но с хорошим оформлением с сылкой где они развернуты. А там можно через сваггер подергать api, посмотреть как аутентификация/авторизация, работа с БД работает и т.д.
>Откуда мне было знать, что в случае строк один и тот же участок памяти?
Чел, сейчас про особенности стрингов в шарпе, на любом собесе спрашивают. Один из первых вопросов которые тебе зададут будет "в чем отличие reference типа от value", а следующим будет "к какому типу относится string и почему". И далее по цепочке и пока ты все что выше писали про стринг не расскажешь, от тебя не отстанут.
Это на собесах на джунов. Но если он пойдёт на мидловую позицию, с такой дичью приставать уже не будут, а будут спрашивать по существу, по проектам, по софтскиллам и т.п. Мидлов дефицит и никто не будет распугивать кандидата бесполезными для реального проекта вопросами.
Необходимость знания всей этой подковерной магии сильно преувеличена.
В той же джаве вообще нет никаких валуе типов, и живут же как-то.
В том же .NET 6 завезли оптипизации, так что теперь рантайм спокойно размещает маленькие классы на стеке, а большие структы в куче, и различие совсем уж стёрлось.
Не правда! Я все книги по C# перечитал и ничего там даже близко нет.
Тем более как написано? Это не унылота как у Троелсена или задродство как у Рихтера. Слог живой, красивый. Видно, что автор действительно долгое время прорабатывал материал.
Просто на контрасте недавно почитал Фленова и его Библию... Это просто что-то с чем-то. Такое ощущение, что Фленов не владеет русский языком, а писал на китайском, а потом неумело переводил. Мысли путанные. Начинает говорить про одно, а заканчивает другим.
Так что я в очередной раз убедился, что книги по Java на порядок лучше книг по C#.
>"в чем отличие reference типа от value"
Какое отношение это имеет к правилу языка, по которому компилятор ищет одинаковые строковые литералы и создает для них один объект?
>В том же .NET 6 завезли оптипизации, так что теперь рантайм спокойно размещает маленькие классы на стеке, а большие структы в куче, и различие совсем уж стёрлось.
Да блядь! Еще больше учить. Я тут с виртуальными функциями не знаю как разобраться, что когда где откуда вызывается, когда перегрузка, когда не перегрузка, когда вызовется из базового типа, если наследуемый к нему приведен, когда все равно вызовется из наследуемого, а они все усложняют и усложняют язык.
И то и то.
двачую, каждый год всё новые охуительные приколы добавляют, новичкам пиздец не завидую
>маленькие классы на стеке, а большие структы в куче, и различие совсем уж стёрлось.
А это никогда не было их различием, это детали реализации, что-то вообще может из процессорных регистров не выйти. И за ответ класс - куча, структура - стек всегда шло мы вам перезвоним. Кста, а есть пруф что класс может в стеке быть?
>Это на собесах на джунов.
Да не, сейчас всех примерно одинаково собесят, по крайней мере до уровня мидл+
Сейчас просто любой с опытом в год и более пишет в резюме "я миддддл" и задирает планку з.п. в небо. Тогда как такие простые вопросы позволяют их быстро на землю спустить и показать чего они стоят.
>Тогда как такие простые вопросы позволяют их быстро на землю спустить и показать чего они стоят.
только в большинстве случаев этот дрочь теории нужен для повышения чсв собеседующих, а не в реальной работе
Это затравочка. Вроде вопроса про два стула. А когда ты ответишь, то тебе тут же "а у нас вот тут третий стул, а на нем дрочи-пикены", ну-ка поясни за него подробно.
Если тебе в плане потоков интересно, то поведение будет зависеть от того как TaskScheduler настроен. Оно вполне себе может и в одном потоке просто переключаться. По дефолту - использует пул-потоков, в зависимости от нагрузки будут создаваться новые потоки, если задачи тяжелые для CPU. Создавать новый поток или не - решит скедулер.
В плане самих тасок - там будет сгенерирована стейтмашина, которая просто на очередном "тике" - проверяет текущее состояние задачи, если еще не завершилась - ждем дальше, если да - выполняем хвост функции, если какая-то ошибка или таска отменена - кидаем эксепшн.
В контексте HTTP - это IOBound и потоков создаваться слишком много не будет, потому что большую часть времени поток просто ждет ответа, а потому можно просто использовать его для того чтобы что-то полезное в это время делать.
Сами таски - просто генерят стейтмашину, в которой на очередном "тике" проверяется стейт, если задача еще не завершилась - переходим к следующей, если завершилась - выполняем код, который идет после await.
Как-то так.
стажер-долбоеб
>Почитай про Environment.NewLine
А что именно? На моем сервере это будет \r\n. Проблема-то в консистентности. Если значение из textarea передается через submit, то я получаю \r\n, если через fetch+formdata, то уже \n
Если текст передаётся от пользователя в глубины обработки данных с сохранением такой локальной параши, как символы новой строки, разделители дробной части и т.п., то кто-то у вас там криворукий долбоёб. Такие вещи должны на месте приводится к единому формату.
> структура - стек всегда шло
А вот тут ты и попался. Читай документацию, мы вам перезвоним.
За клас в стек я ничего не говорил, я другой анон.
Спасибо, чел, я как раз на сеньйора перекатываться буду скоро, хорошо объяснил.
А бля, я понял, ты и так сказал, что за это идёт мы вам перезвоним, ну похуй, мы тебе все равно перезвоним, слишком душный.
> глубины обработки данных
Да какие уж там глубины. На контроллере ловлю запрос и вижу разные значения.
>то кто-то у вас там криворукий долбоёб
Поковырял запросы и это браузер делает конвертацию в \r\n (ну это наверно логично, учитывая, что старый macos использовал \r). Я бы мог, конечно сделать, чтобы при fetch'e тоже замена делалась, но как известно данным из вне доверять нельзя (мамкин хацкер пошлет постманом \n). Тогда вопрос что лучше нормализовать и отправить в модель уже c однородным разделителем или научить модель работать с любым разделителем.
Ну, ты можешь по разному это делать.
Самый простой способ - просто перед рисованием остальной фигни Console.WriteLine(" ABCDEFGHIJ")
Можешь сделать Console.SetCursorPosition и поместить курсор куда-то, там и нарисовать.
А в контексте игры, я бы советовал выделить такую сущность как FrameBuffer/GameScreen с нужным размером, там просто помещать "пиксели"(в твоем случае символы) Ну и у этого FrameBuffer'а - метод Draw который просто рисует что в буффере лежит, метод Set(int x, int y, char c, ConsoleColor bgColor, ConsoleColor fgColor) - установить значение "пикселя". и Clear() который просто читст буффер от предыдущего значения. Как-то так. Таким макаром можно добится довольно удобной абстракции для консольных анимаций, переливаний цветов и прочего, ты же игру делаешь, а что за игра без анимаций и разных цветов?
Т.е. из "pukpuksrenk" должно получиться [puk, puk, srenk], при условии, что у меня есть есть список {"srenk", "puk"}.
Можно конечно по одной букве прибавлять и каждый раз проверять наличие в списке, но есть какой то более оптимальный способ?
конечно, делаешь новый список из всех возможных вариантов в виде p,u,k,pu,uk,puk и т.д, потом сравниваешь с нужным, если подходит, то записываешь в результирующий
шучу
https://youtu.be/YG_Vc2oJdLM?t=1256
>Можно конечно по одной букве прибавлять и каждый раз проверять наличие в списке, но есть какой то более оптимальный способ?
Данный способ - O(n) (добавляем по букве, проверяем наличие в хешсете). Быстрее - не получится, ибо тебе в любом случае придется всю строку пройти, что дает нижний порог сложности в O(n).
Я бы как-то так хуйнул. Но я даун. В голове крутится мысля, что можно было бы XOR использовать(ну, типа нуль получили - значит это что-то из словаря), приводя кусок памяти к массиву битов и тогда бы не нужно было бы копировать строки. Но это так.
Я наверное тупой, но не совсем понимаю твое решение. Вот допустим, у нас строка: 'abcLolkaDef' и нужно найти слово Lolka. Вот мы добавили букву 'a' в буффер. Не нашли в хешсете. Добавили 'b' в буффере у нас 'ab'. Когда мы дойдем до искомого слова у нас в буффере будет abcLolka проверка в хешсете вернет false.
Может быть я чего-то не понимаю? Чи шо? Чи как?
>Ебало представили?
если бы ебал не было, то никто не бы не пилил и не пытался каждый год придумать новый велосипед
>Вот допустим, у нас строка: 'abcLolkaDef' и нужно найти слово Lolka.
Это не совсем та задача, которая у него в посте. У него в посте строка состоит из конкатенированных слов из словаря, которую нужно обратно расконкантенировать.
Спринг же не один фреймворк, а набор фреймворков. Я слышал, что там ещё есть кибернейт, груви, джавафх и ещё куча всего.
Я чет хуево про спаны читал. Хотел тут применить, но меня насторожило что в AsSpan написано
> Creates a new read-only span over a portion of the target string from a specified
Типа я не понимаю. Это будет просто указатель на участок памяти и никакого копирования данных не произойдет, али таки будет копирование куска подстроки. Потому и не стал тут использовать. Если первое, то наверное нужно будет переписать на спаны.
Подскажите, я уже не могу с этим мокрософтовским говнищем, блядь, пиздец, выбешивает просто уже.
Смотрите, пытаюсь поставить sdk .net. По командам отсюда не ставится:
https://docs.microsoft.com/ru-ru/dotnet/core/install/linux-ubuntu
Там написано
>Если появляется сообщение об ошибке, похожее на Unable to locate package dotnet-sdk-6.0 (Не удалось найти пакет dotnet-sdk-6.0), см. раздел Устранение неполадок с APT.
Хотя с apt как раз никаких неполадок нет, неполадки есть только в днк разработчиков говномокрософта.
Ладно, нашёл и скачал этот sdk по прямой ссылке. Но это не deb-пакет.
Инструкций к нему никаких.
Есть скрипт:
https://dot.net/v1/dotnet-install.sh
Но он, блядь, скачивает тот же файл, чтобы потом его поставить. Я его около часа качал. Блядь, как его просто, блядь, установить? Я глянул внутрь этого скрипта, хоть я и писал на bash, это пиздец макароны, просто пиздец, полторы тысячи строк, какой-то хуйни нахуевертили, удаляю команду скачивания - скрипт просто перестаёт работать, я даже хз, что он вообще пытается делать, просто долбится по разным адресам на разные сайты.
Варианта "установить скачанный файл" там почему-то нет.
Короче, как просто поставить ёбаный sdk, вот он лежит у меня на винте, dotnet-sdk-6.0.101-linux-x64.tar.gz
Куда блядь, что блядь, зачем блядь? Нахуя, блядь?!! Почему всё, что касается говномокрософта это какой-то пиздец, глюки и ёбаные макароны? Почему, сука, нельзя просто указать урл и написать, куда это распаковать, или же сделать нормальный пакет? Сукапиздец блядь!
Всё, я понял, его надо было просто распаковать, сука, просто в ~/.dotnet, сука, пц блядь. Нахуя блядь писать скрипт на полторы тысячи строк, вы что, упоротые штоле сука?!!
Сука, это блядь мокрософт сука нахуй. Простите, я до сих пор на эмоциях. Блядь, лет десять я уже такого маразма не видел, с тех пор как снёс нахуй икспи, и ещё двести лет его не видать бы.
Вот объясните, что значат эти таинственные строки из скрипта на 1500 строк?
Где-то в самом начале:
bin_folder_relative_path=""
Где-то в самом конце:
bin_path="$(get_absolute_path "$(combine_paths "$install_root" "$bin_folder_relative_path")")"
if [ "$no_path" = false ]; then
say "Adding to current process PATH: \`$bin_path\`. Note: This change will be visible only when sourcing script."
export PATH="$bin_path":"$PATH"
else
say "Binaries of dotnet can be found in $bin_path"
fi
И больше никаких ссылок на bin_folder_relative_path нет. И что это значит?
А это значит, что это говно писал мокрософт. Блядь, я ебал, я больше уже не хочу изучать сишарп! Заберите меня отсюда!
>Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet --list-sdks и dotnet --list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.
Сука, блядь, просто распаковать, блядь, просто блядь распаковать блядь!!! Какие нахуй "установлены"? Какого сука хуя эти долбоёбы всё, что только можно называют установкой, когда надо блядь просто скачать ёбаный файл и просто блядь его распаковать, блядь, и всё, сука нахуй? Пидоры!
Я не могу, блядь, я час, наверное, убил, пытаясь понять, что эти пидоры от меня хотят. Сука, проще линукс переустановить с нуля блядь и разобраться, как он работает, чем ёбаное говно от мокрософт просто скачать блядь и распаковать!
Блядь, ну какого хуя-то, а?
Я бы им ебала разбил! Кто конкретно за это ответственнен? А никто. Нету мейнтейнера. Нету автора пакета. Нету гита какого-то, с readme.md, который правили конкретные авторы. Просто какой-то мудак высрал говно, которым невозможно пользоваться, а ты ебись на ровном месте прямо. На ровном, сука, месте!!!
Не, вы сука посмотрите, они целую простыню накатали по скрипту, который просто скачивает и распаковывает сраный файл, который и так доступен по прямой ссылке!
https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-install-script?WT.mc_id=dotnet-35129-website
Блядь, одна только ссылка блядь чего стоит! Сука, километр блядь!
А там ещё куча опций с параметрами! И сука нигде не написано, что именно этот их вонючий ёбаный скрипт делает, а он просто распаковывает, блядь, то есть то же самое, что я могу в файловом менеджере сделать правой кнопкой мыши блядь!
Вы как хотите, впизду, а я пошёл пайтон учить, ну его нахуй этот ваш сишарп! У меня нервы-то не железные!
А при чём тут докер?
Нет, ну я правда не понял этого вашего .net.
Вот, допустим, хочу я написать хеллоуворлд кроссплатформенный с окошком и кнопкой. И как? Где взять system.dll на линуксе? Нигде? Вайн ставить, или что?
Ну вот, допустим, хочу я запустить скрипт на питоне на линуксе. Я просто беру и запускаю его. Да или любой другой скрипт. А программу на этом вашем сишарпе что, только в консоли и возможно запустить, что ли, да в виде сервера с ASP?
1280x720, 1:00
Иди учи питон.
Гуй нахуй никому не нужен.
Пиши хелоуворлд, добавляй поддержку докера и запускай где хочешь.
Ну а коль хочешь ебатся с установкой разной хуету то конечно продолжай в том же духе.
> , допустим, хочу я написать хеллоуворлд кроссплатформенный с окошком и кнопкой. И как?
GTK, Qt,
кроссплатформенность - это миф, созданный маркетологами, тебе каждые несколько лет выкатывают новую технологию, которая уж точно кроссплатформенная, но тебе всё равно приходится писать ифы под каждый билд
счастливые люди не ходят по двачам по тредам других языков и не срут в них
> И что это значит?
Это значит, что ты ещё молодой и мало знаешь, но со своей невысокой колокольни тебе кажется, что это кто-то другой дурак, а не ты.
Я вот тоже разочаровался из-за отсутствия кроссплатформенности в шарпе. Сейчас вот думаю перекатываться в джаву. Благо языки очень похожи.
На бубунту 21.10 ставишь Net6? Сам вчера ставил, там же написано, в репо для 21,10 еще не завезли и надо выбрать для 21,08. И внизу комманды для сего действия.
Установи винду, там таких плясок нет. Тем более раз ты не дружишь с мануалами и терминалом.
2сh:
>в каждом треде с десяток постов с перечислением кроссплатформенных гуёв для дотнета
Очередной даун:
> с окошком и кнопкой. И как?
Сейчас бы сравнивать метанит с книгами. Метанит - сайт, который в любой момент могут закрыть. Книга же ни куда не денется. Кроме того книгу можно взять с собой почитать.
Двач тоже могут закрыть, но ты приходишь сюда и пользуешься им. А что должно мешать челу учиться по метаниту пока он работает? Думаешь если сайт закроют, то и все узнанное забудется?
Да, будешь переходить по битым ссылкам и ловить эксепшен)))
Как перестать беспокоится и наконец разослать уже резюме?
Которого нет.А хули туда писать то? Я вкатун 30 летний лоб у которого даже нет трудовой книжки и который официально не работал ни дня в жизни а только занимался хуйней в интернетах, ну там seo хуео, трафики хуяфики и вот только сейчас соизволил нормальную профессию, так написать?
Был монодевелоп. Теперь он называется Visual Studio for Mac, под линух нет. Но кто в здравом уме будет кодить под линухом? Для тех кому очень надо есть райдер.
>Вот, допустим, хочу я написать хеллоуворлд кроссплатформенный с окошком и кнопкой. И как?
Никак. Ты вообще в курсе, что .net - майками разрабатывается? И что у них один из основных продуктов - винда, т.е. десктопный линукс - ее прямой конкурент? Не будет тебе окошек с кнопкой из коробки на линуксе. Вся это поддержка линукса - только из-за облаков, поддержки десктопа - не будет никогда.
>Получается микрософты специально уничтожают конкуренцию в пользу винды?
Да, но тут, скорее, просто IDE была говном и самоуничтожилась (аки советский союз).
Не говно, на самом деле, просто никому не нужна. Сурсы monodevelop открыты, но не востребованы. dotdevelop что то хотели сделать, но движения так и нет.
И что, на сишарпе пишут под Gtk?
Спрашивается, для чего тогда ставить среду .Net?
>>242432
>mp4
Смешно, да, а почему же сравнение не с сишарпом? Давайте сравним джаву, пайтон и сишарп, и посмотрим, кто из них подебит. Раз уж это сишарповый тред. Ну а писать на ассемблере - это уж такое. Я, кстати, мог бы написать ещё более быстрый код на паскале (допустим, со вставкой ассемблера). Да и на питоне можно приделать библиотеку, написанную на любом другом языке. При чём для реальной работы, а не для тестовых примеров, можно взять уже готовую. Каких только нет. Скажем, давайте сравним скорость работы numpy с любым аналогом на сишарпе и посмотрим.
Ну вот, например, вот код на питоне, работает мгновенно, создаёт графическое окно и график (пикрил):
import numpy as np
from matplotlib.pyplot import plot, show
x = np.linspace(0, 2*np.pi, 100)
plot(x, y, 'ro-')
show()
Как это будет выглядеть на си? Или на сишарп? Я даже боюсь представить.
>Гуй нахуй никому не нужен.
>Пиши хелоуворлд, добавляй поддержку докера и запускай где хочешь.
Я всё-таки не понял. То есть докер не даёт возможности создавать окошки где хочу, а даёт возможность лишь запускать консольные приложения? Или я неправильно понимаю возможности этого докера? А в чём смысл ставить докер и .Net и сишарп, чтобы в итоге получить консольное приложение?
>>242527
А почему они где-то в каких-то тредах, а не в википедии, скажем, в статье о сишарпе? Почему там в описании языка для кроссплатформенной среды не кроссплатформенный хеллоу ворлд?
Хеллоу ворлд не кроссплатформенный, алё!!!
Кроссплатформенная среда, википедия, 2021 год - и почему это все спрашивают, как создать окно с кнопкой, а?!! Нипанятна!!!
Может потому никто нихуя не понимает, что распаковывание файлов из архива в говномокрошлаке называют "установкой" и нигде на своих говносайтах никак не проясняют этот процесс? Потому что документация - говно, и написано оно дебилами для дебилов (да кто кроме дебилов поведётся на софт от мокрошлака, и правда что)? Не поэтому ли в каждом треде кто-то спрашивает: "Нет, а всё-таки, а как сделать сраное окошко с сраной кнопкой?"
>>242468
То есть кроссплатформенность .Net это просто банальный пиздёж?
>>242525
Ясно, понятно. Да я чисто случайно наткнулся на вакансию по сишарпу, дай, думаю, посмотрю, что за шарп. На первый взгляд вроде нормальный язык. Но какой в нём смысл в итоге, если для разработки на нём придётся сносить божественный линукс, только чтобы поставить этот вижуал студио, и чтобы запустить сраную форму с окошком? Ну да, можно на нём сервер сделать под линуксом, но знаете, под линуксом можно любой сервер сделать, на чём угодно, и уж лучше, наверное, не на сишарпе.
Вообще само оформление работы vs code - это же пиздец. Например, закончилось место на винте. Ну как закончилось... почти гигабайт вообще-то остался, но по мнению мокрошлака этого, наверно, мало. Скачивается дополнение. Прогрессбар бесконечно бегает слева направо. Я полчаса, наверное, ждал, прежде чем закрыл и перезапустил. Оно никаких процентов не пишет, никаких сообщений об ошибках, вообще ничего. Перезапустил, освободил место на винте, запустил ещё раз - мгновенно установилось. Блядь, это вот чисто стиль мокрошлака. Когда apt качает пакет - оно пишет, блядь, пишет, в консоль пишет сколько килобайт скачано, сколько скачивается в секунду и сколько секунд ещё осталось, даже прогрессбары какие-то рисует. В консоли! С ссылкой, откуда именно и что именно качается. Вот это софт, созданный для людей. Ты не обязан за всем этим наблюдать, ты вообще не обязан в этом разбираться, потому что оно просто работает и само ставит всё, что требуется, но если тебе надо - ты можешь посмотреть и увидеть, что скачивание, допустим, почему-то остановилось. Или место закончилось и распаковывать файл некуда, или прав нет. Но это блядь в нормальном софте. В софте же от мокрошлака всё через жопу. Всегда. Даже вот десять с хреном лет спустя. Я думаю: дам шанс долбоёбам, а вдруг они уже исправились. Хер там! Чуть менее вырвиглазные свистоперделки, а неуважение к потребностей пользователей как было, так и осталось. Даже более того, в новостях пишут, что они теперь ещё и в меню спуск свой новый браузер рекламируют. Дошло? Ты покупаешь венду за свои деньги, ставишь её на комп, также купленный за свой счёт, а она тебе на твоём же мониторе против твоей воли крутит рекламу! Охуеть блядь. В эру адблоков, когда уже даже конченный лицемер не стал бы отрицать, что непрошенная реклама это ебическое хамство. Даже условно бесплатный фейспук уже перестал пропагандировать рекламный фашизм и смирился с правом пользователей резать неугодные им баннеры. Но мокрошлаку похер. Он продаёт тебе софт за твои деньги, а потом ссыт тебе в лицо, навязывая свои говноподелия.
И в линуксе их говноподелие не заводится. Хотя могли бы давным-давно сделать. Но им насрать, что все их продукты - дерьмо. Что их офис ебучий не умеет открывать нормальные документы в свободных форматах. Любой либреофис, любой опенофис, любой другой нормальный офис прекрасно это умеет. На дворе 2021 год, а мокрошлак офис до сих пор, похоже, не может. При этом они чё-то там смеют вякать про то, что их поганый софт якобы чем-то лучше других. Они даже блядь базовых вещей до сих пор не реализовали, сраное открытие odt-файлов без расползания таблиц. Та же самая история, как та, когда уже в хер знает каком лохматом году, когда все браузеры в мире спокойно работали с множеством вкладок и рисовали png с альфаканалами, мокрошлак рекламировал свой иксплорер, якобы самый лучший и надёжный (с кучей дыр) браузер, который всего этого не умел, но зато использовал актив икс или какую-то похожую херню для проигрывания видео вместо принятого на тот момент флеша. При чём видео через этот актив икс можно было не только встроить в текст веб-страницы, но и сохранить пользователю на винт с расширением exe, и оттуда уже запустить, лол. Это они реализовали, пидоры, равно как и неотключаемый автозапуск вирусни с флешек. А вот поддержку нескольких вкладок, адблока, других дополнений или полупрозрачности в png - нет, на это у них пороха не хватило. Зато денег с людей до хрена собрали, паразиты. Спрашивается, за что?
А просто умелые впариватели говна. Их браузер объективно в подмётки не годился фаерфоксу, но это не мешало им верещать, что их дырявый и кривой иксплорер самый надёжный. И люди, в том числе и госкомпании за счёт налогоплательщиков, это покупали. Тратились миллионы долларов из бюджетов вообще всех стран мира! Вот суки, а! Столько бабла выдоили из народа, а в итоге нормальную поддержку сраного открытого текстового формата не сделали! Сука, примитивная же задача, блядь! Да они даже не собираются что-то решать! Они просто хотят ещё больше денег, мрази!
>>242501
А, так это значит я дебил, а в мокрошлаке работают молодцы? Ну что же, теперь будем знать! Спасибо, что всё разъяснил!
И что, на сишарпе пишут под Gtk?
Спрашивается, для чего тогда ставить среду .Net?
>>242432
>mp4
Смешно, да, а почему же сравнение не с сишарпом? Давайте сравним джаву, пайтон и сишарп, и посмотрим, кто из них подебит. Раз уж это сишарповый тред. Ну а писать на ассемблере - это уж такое. Я, кстати, мог бы написать ещё более быстрый код на паскале (допустим, со вставкой ассемблера). Да и на питоне можно приделать библиотеку, написанную на любом другом языке. При чём для реальной работы, а не для тестовых примеров, можно взять уже готовую. Каких только нет. Скажем, давайте сравним скорость работы numpy с любым аналогом на сишарпе и посмотрим.
Ну вот, например, вот код на питоне, работает мгновенно, создаёт графическое окно и график (пикрил):
import numpy as np
from matplotlib.pyplot import plot, show
x = np.linspace(0, 2*np.pi, 100)
plot(x, y, 'ro-')
show()
Как это будет выглядеть на си? Или на сишарп? Я даже боюсь представить.
>Гуй нахуй никому не нужен.
>Пиши хелоуворлд, добавляй поддержку докера и запускай где хочешь.
Я всё-таки не понял. То есть докер не даёт возможности создавать окошки где хочу, а даёт возможность лишь запускать консольные приложения? Или я неправильно понимаю возможности этого докера? А в чём смысл ставить докер и .Net и сишарп, чтобы в итоге получить консольное приложение?
>>242527
А почему они где-то в каких-то тредах, а не в википедии, скажем, в статье о сишарпе? Почему там в описании языка для кроссплатформенной среды не кроссплатформенный хеллоу ворлд?
Хеллоу ворлд не кроссплатформенный, алё!!!
Кроссплатформенная среда, википедия, 2021 год - и почему это все спрашивают, как создать окно с кнопкой, а?!! Нипанятна!!!
Может потому никто нихуя не понимает, что распаковывание файлов из архива в говномокрошлаке называют "установкой" и нигде на своих говносайтах никак не проясняют этот процесс? Потому что документация - говно, и написано оно дебилами для дебилов (да кто кроме дебилов поведётся на софт от мокрошлака, и правда что)? Не поэтому ли в каждом треде кто-то спрашивает: "Нет, а всё-таки, а как сделать сраное окошко с сраной кнопкой?"
>>242468
То есть кроссплатформенность .Net это просто банальный пиздёж?
>>242525
Ясно, понятно. Да я чисто случайно наткнулся на вакансию по сишарпу, дай, думаю, посмотрю, что за шарп. На первый взгляд вроде нормальный язык. Но какой в нём смысл в итоге, если для разработки на нём придётся сносить божественный линукс, только чтобы поставить этот вижуал студио, и чтобы запустить сраную форму с окошком? Ну да, можно на нём сервер сделать под линуксом, но знаете, под линуксом можно любой сервер сделать, на чём угодно, и уж лучше, наверное, не на сишарпе.
Вообще само оформление работы vs code - это же пиздец. Например, закончилось место на винте. Ну как закончилось... почти гигабайт вообще-то остался, но по мнению мокрошлака этого, наверно, мало. Скачивается дополнение. Прогрессбар бесконечно бегает слева направо. Я полчаса, наверное, ждал, прежде чем закрыл и перезапустил. Оно никаких процентов не пишет, никаких сообщений об ошибках, вообще ничего. Перезапустил, освободил место на винте, запустил ещё раз - мгновенно установилось. Блядь, это вот чисто стиль мокрошлака. Когда apt качает пакет - оно пишет, блядь, пишет, в консоль пишет сколько килобайт скачано, сколько скачивается в секунду и сколько секунд ещё осталось, даже прогрессбары какие-то рисует. В консоли! С ссылкой, откуда именно и что именно качается. Вот это софт, созданный для людей. Ты не обязан за всем этим наблюдать, ты вообще не обязан в этом разбираться, потому что оно просто работает и само ставит всё, что требуется, но если тебе надо - ты можешь посмотреть и увидеть, что скачивание, допустим, почему-то остановилось. Или место закончилось и распаковывать файл некуда, или прав нет. Но это блядь в нормальном софте. В софте же от мокрошлака всё через жопу. Всегда. Даже вот десять с хреном лет спустя. Я думаю: дам шанс долбоёбам, а вдруг они уже исправились. Хер там! Чуть менее вырвиглазные свистоперделки, а неуважение к потребностей пользователей как было, так и осталось. Даже более того, в новостях пишут, что они теперь ещё и в меню спуск свой новый браузер рекламируют. Дошло? Ты покупаешь венду за свои деньги, ставишь её на комп, также купленный за свой счёт, а она тебе на твоём же мониторе против твоей воли крутит рекламу! Охуеть блядь. В эру адблоков, когда уже даже конченный лицемер не стал бы отрицать, что непрошенная реклама это ебическое хамство. Даже условно бесплатный фейспук уже перестал пропагандировать рекламный фашизм и смирился с правом пользователей резать неугодные им баннеры. Но мокрошлаку похер. Он продаёт тебе софт за твои деньги, а потом ссыт тебе в лицо, навязывая свои говноподелия.
И в линуксе их говноподелие не заводится. Хотя могли бы давным-давно сделать. Но им насрать, что все их продукты - дерьмо. Что их офис ебучий не умеет открывать нормальные документы в свободных форматах. Любой либреофис, любой опенофис, любой другой нормальный офис прекрасно это умеет. На дворе 2021 год, а мокрошлак офис до сих пор, похоже, не может. При этом они чё-то там смеют вякать про то, что их поганый софт якобы чем-то лучше других. Они даже блядь базовых вещей до сих пор не реализовали, сраное открытие odt-файлов без расползания таблиц. Та же самая история, как та, когда уже в хер знает каком лохматом году, когда все браузеры в мире спокойно работали с множеством вкладок и рисовали png с альфаканалами, мокрошлак рекламировал свой иксплорер, якобы самый лучший и надёжный (с кучей дыр) браузер, который всего этого не умел, но зато использовал актив икс или какую-то похожую херню для проигрывания видео вместо принятого на тот момент флеша. При чём видео через этот актив икс можно было не только встроить в текст веб-страницы, но и сохранить пользователю на винт с расширением exe, и оттуда уже запустить, лол. Это они реализовали, пидоры, равно как и неотключаемый автозапуск вирусни с флешек. А вот поддержку нескольких вкладок, адблока, других дополнений или полупрозрачности в png - нет, на это у них пороха не хватило. Зато денег с людей до хрена собрали, паразиты. Спрашивается, за что?
А просто умелые впариватели говна. Их браузер объективно в подмётки не годился фаерфоксу, но это не мешало им верещать, что их дырявый и кривой иксплорер самый надёжный. И люди, в том числе и госкомпании за счёт налогоплательщиков, это покупали. Тратились миллионы долларов из бюджетов вообще всех стран мира! Вот суки, а! Столько бабла выдоили из народа, а в итоге нормальную поддержку сраного открытого текстового формата не сделали! Сука, примитивная же задача, блядь! Да они даже не собираются что-то решать! Они просто хотят ещё больше денег, мрази!
>>242501
А, так это значит я дебил, а в мокрошлаке работают молодцы? Ну что же, теперь будем знать! Спасибо, что всё разъяснил!
>import numpy as np
>from matplotlib.pyplot import plot, show
>x = np.linspace(0, 2np.pi, 100)
>plot(x, y, 'ro-')
>show()
Вот так, конечно же, я строчку потерял, писал прямо в консоли:
import numpy as np
from matplotlib.pyplot import plot, show
x = np.linspace(0, 2np.pi, 100)
y=np.sin(x)
plot(x, y, 'ro-')
show()
Ну а теперь макака, сука, крадёт звёздочки.
О, как я тебя понимаю!
У меня когда-то были в точности такие же проблемы.
Теперь я 40-летний вкатун без трудовой книжки.
Не пизжу.
> для чего тогда ставить среду .Net?
Чтобы разрабатывать на .Net.
> скорость работы numpy
Она написана не на Питоне, но для Питона, на видео сравнивается нативный для платформы код, например.
> Я всё-таки не понял.
Не удивительно. Ты сравниваешь теплое с мягким, хуй с пальцем и реальность со своими представлениями о том, какой ей следует быть. И не хочешь ничего понять, а рассуждаешь сразу с позиции интересной личности, которая уже всё понимает.
> То есть докер не даёт возможности создавать окошки где хочу, а даёт возможность лишь запускать консольные приложения?
Он был был создан только для этого, но при определённом количестве долбоёбства, свободного времени и интереса можно и графическое что-то запустить в нём.
> Почему там в описании языка для кроссплатформенной среды не кроссплатформенный хеллоу ворлд?
Интересно посмотреть на некроссплатформенный хеллоуворлд на сишарпе в документации .Net. Чую, пиздишь ты и в очередной раз нихуя не понимаешь, когда смотришь в документацию Windows Forms.
> То есть кроссплатформенность .Net это просто банальный пиздёж?
Кроссплатформенность .Net -- это не про кроссплатформенность WinForms. Ты правда не понимаешь, что это не часть языка?
> так это значит я дебил
Это бы объяснило твоё поведение в этом треде. В лучшем случае эффект Даннинга-Крюгера, подпитываемый подростковыми гормонами, в сочетании с малым жизненным опытом и отсутствием конкуренции/ориентиров для развития (живешь наверняка в небольшом городке, в айти-тусовках не крутишься, но в классе на уроках информатики самый умный).
> а в мокрошлаке работают молодцы?
У них много технически толковых ребят, которых берут туда не по квотам, но манера ведения бизнеса такая себе.
>Она написана не на Питоне, но для Питона, на видео сравнивается нативный для платформы код, например.
А что такое "нативный для платформы" код для питона? И зачем на питоне писать платформозависимый код, когда есть кроссплатформенные библиотеки?
>> Я всё-таки не понял.
>Не удивительно. Ты сравниваешь теплое с мягким, хуй с пальцем и реальность со своими представлениями о том, какой ей следует быть. И не хочешь ничего понять, а рассуждаешь сразу с позиции интересной личности, которая уже всё понимает.
Не удивительно, потому что никто внятно не объяснил. Ты ещё скажи, что по тому же докеру есть хорошая исчерпывающая документация. Я им не пользовался ни разу, и вообще не ебу, что это, но и то наслышан. Так ты объясни, если есть, что сказать, а не умничай про интересные личности.
>> То есть докер не даёт возможности создавать окошки где хочу, а даёт возможность лишь запускать консольные приложения?
>Он был был создан только для этого, но при определённом количестве долбоёбства, свободного времени и интереса можно и графическое что-то запустить в нём.
Ну вот, всё понятно. А то без докера, конечно, консольное приложение на другой системе не запустить. Особенно, если оно написано с помощью .Net, да?
>> Почему там в описании языка для кроссплатформенной среды не кроссплатформенный хеллоу ворлд?
Интересно посмотреть на некроссплатформенный хеллоуворлд на сишарпе в документации .Net. Чую, пиздишь ты и в очередной раз нихуя не понимаешь, когда смотришь в документацию Windows Forms.
Да говорю же, статья на википедии. Да, я ничего не понимаю, но я не смотрю ни в какую документацию Windows Forms, я пытаюсь просто запустить хеллоу ворлд. А он не запускается.
Я вообще в душе не ебал, что оказывается существует какое-то понятие "Windows Forms", и по нему даже есть документация, и её даже надо читать, чтобы запустить сраный хеллоу ворлд. Мне это просто в голову как-то не пришло.
А почему в делфи, например, можно просто создать пустой проект, просто запустить и там уже искаропки будет окно? Почему там даже задумываться не надо о том, как поместить на это окно кнопку?
Кто-то скажет "формошлёпство", я скажу - так и должен выглядеть нормальный удобный инструмент, сделанный адекватными людьми для адекватных людей, которые документацию примутся читать лишь тогда, когда задумают сделать что-то посложнее размещения сраной кнопки или присвоения значения переменной, а всё остальное рассчитывают сделать просто потому что среда разработки продуманная и удобная, и позволяет это делать не напрягаясь.
Что, это теперь неправильным считается? Я что-то пропустил?
Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
>> То есть кроссплатформенность .Net это просто банальный пиздёж?
>Кроссплатформенность .Net -- это не про кроссплатформенность WinForms. Ты правда не понимаешь, что это не часть языка?
А, то есть мы дадим вам кросплатформенную среду, но кроссплатформенных библиотек для неё всё равно нет, поэтому пишите код только для одной платформы. Охуенно, чё.
Не, я понимаю, что VCL это не Делфи, и что для линукса есть кайликс, понятно, что Gtk и Qt это не питон и не плюсы, и я даже предполагаю, что запустить Gtk приложение на венде будет тот ещё квест. Я даже к этому готов, устанавливая мокрошлаковый .Net на линуксе. Я скачал этот ебучий sdk на сто мегабайт, в надежде, что по крайней мере хеллоуворлд я смогу запустить. Хрен там был.
>> так это значит я дебил
>Это бы объяснило твоё поведение в этом треде. В лучшем случае эффект Даннинга-Крюгера, подпитываемый подростковыми гормонами, в сочетании с малым жизненным опытом и отсутствием конкуренции/ориентиров для развития (живешь наверняка в небольшом городке, в айти-тусовках не крутишься, но в классе на уроках информатики самый умный).
Попридержи маняпроекции, маня. Да, я не кручусь в айти-тусовках, и что? Что ты обо мне знаешь, чтобы кукарекать про мой жизненный опыт? Жизненный опыт тут вообще при чём? Какое он имеет отношение к вашему мокрошлаку? Совсем уже за клавиатурой мозги все просидел?
>Она написана не на Питоне, но для Питона, на видео сравнивается нативный для платформы код, например.
А что такое "нативный для платформы" код для питона? И зачем на питоне писать платформозависимый код, когда есть кроссплатформенные библиотеки?
>> Я всё-таки не понял.
>Не удивительно. Ты сравниваешь теплое с мягким, хуй с пальцем и реальность со своими представлениями о том, какой ей следует быть. И не хочешь ничего понять, а рассуждаешь сразу с позиции интересной личности, которая уже всё понимает.
Не удивительно, потому что никто внятно не объяснил. Ты ещё скажи, что по тому же докеру есть хорошая исчерпывающая документация. Я им не пользовался ни разу, и вообще не ебу, что это, но и то наслышан. Так ты объясни, если есть, что сказать, а не умничай про интересные личности.
>> То есть докер не даёт возможности создавать окошки где хочу, а даёт возможность лишь запускать консольные приложения?
>Он был был создан только для этого, но при определённом количестве долбоёбства, свободного времени и интереса можно и графическое что-то запустить в нём.
Ну вот, всё понятно. А то без докера, конечно, консольное приложение на другой системе не запустить. Особенно, если оно написано с помощью .Net, да?
>> Почему там в описании языка для кроссплатформенной среды не кроссплатформенный хеллоу ворлд?
Интересно посмотреть на некроссплатформенный хеллоуворлд на сишарпе в документации .Net. Чую, пиздишь ты и в очередной раз нихуя не понимаешь, когда смотришь в документацию Windows Forms.
Да говорю же, статья на википедии. Да, я ничего не понимаю, но я не смотрю ни в какую документацию Windows Forms, я пытаюсь просто запустить хеллоу ворлд. А он не запускается.
Я вообще в душе не ебал, что оказывается существует какое-то понятие "Windows Forms", и по нему даже есть документация, и её даже надо читать, чтобы запустить сраный хеллоу ворлд. Мне это просто в голову как-то не пришло.
А почему в делфи, например, можно просто создать пустой проект, просто запустить и там уже искаропки будет окно? Почему там даже задумываться не надо о том, как поместить на это окно кнопку?
Кто-то скажет "формошлёпство", я скажу - так и должен выглядеть нормальный удобный инструмент, сделанный адекватными людьми для адекватных людей, которые документацию примутся читать лишь тогда, когда задумают сделать что-то посложнее размещения сраной кнопки или присвоения значения переменной, а всё остальное рассчитывают сделать просто потому что среда разработки продуманная и удобная, и позволяет это делать не напрягаясь.
Что, это теперь неправильным считается? Я что-то пропустил?
Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
>> То есть кроссплатформенность .Net это просто банальный пиздёж?
>Кроссплатформенность .Net -- это не про кроссплатформенность WinForms. Ты правда не понимаешь, что это не часть языка?
А, то есть мы дадим вам кросплатформенную среду, но кроссплатформенных библиотек для неё всё равно нет, поэтому пишите код только для одной платформы. Охуенно, чё.
Не, я понимаю, что VCL это не Делфи, и что для линукса есть кайликс, понятно, что Gtk и Qt это не питон и не плюсы, и я даже предполагаю, что запустить Gtk приложение на венде будет тот ещё квест. Я даже к этому готов, устанавливая мокрошлаковый .Net на линуксе. Я скачал этот ебучий sdk на сто мегабайт, в надежде, что по крайней мере хеллоуворлд я смогу запустить. Хрен там был.
>> так это значит я дебил
>Это бы объяснило твоё поведение в этом треде. В лучшем случае эффект Даннинга-Крюгера, подпитываемый подростковыми гормонами, в сочетании с малым жизненным опытом и отсутствием конкуренции/ориентиров для развития (живешь наверняка в небольшом городке, в айти-тусовках не крутишься, но в классе на уроках информатики самый умный).
Попридержи маняпроекции, маня. Да, я не кручусь в айти-тусовках, и что? Что ты обо мне знаешь, чтобы кукарекать про мой жизненный опыт? Жизненный опыт тут вообще при чём? Какое он имеет отношение к вашему мокрошлаку? Совсем уже за клавиатурой мозги все просидел?
Так ебля не с линуксом, мань, а с .Net, в документации которого распаковывание сраного архива в домашнюю папку делается мегабайтным скриптом и почему-то называется установкой. И в котором хеллоу ворлд оказывается на самом деле нихуя не кроссплатформенным "потому что это не кросплатформенная среда, а библиотека для неё, так что это другое, понимать надо!"
При чём тут линукс? Вы продаёте кросплатформенное говно, точнее, говно для кросплатформенной разработки, но потом, когда потенциальный покупатель спустя двадцать лет решает вам дать шанс и посмотреть, что вы там за эти двадцать лет наработали, оказывается, что кросплатформенная только консолька, да и та только с докером, а всё остальное искаропки работает только под выблёвсом?
И эти люди рассуждают про пердолинг в линуксе, что якобы это в линуксе приходится пердолиться в командной строке, а не в продуктах мокрошлака? Серьёзно блядь?
>Так ебля не с линуксом, мань, а с .Net
Так похуй же. Как только нужно что-то кроме голого линукса начинается пляска с бубном.
> называется установкой
Я тебе додику уже написал как поставить дотнет на последнюю убунту, но ты выбрал ебанутый способ и жалуешься на его ебанутость.
>понимать надо!
Так случаеться, когда занимаешься чем-то сложнее пускания шептунов.
>Вы продаёте кросплатформенное говно
Вот с чеком к тому кто продал и иди.
>кросплатформенная только консолька, да и та только с докером, а всё остальное искаропки работает только под выблёвсом?
Ты снова бредишь. Да и докер это если что линуксовая штука, версия для винды чисто для галочки.
> про пердолинг в линуксе,
А то. Под виндой у тебя таких проблем не было бы.
>На бубунту 21.10 ставишь Net6? Сам вчера ставил, там же написано, в репо для 21,10 еще не завезли и надо выбрать для 21,08. И внизу комманды для сего действия.
Не, у меня lts, 20.04, она официально поддерживается и всё для неё есть.
>Установи винду, там таких плясок нет. Тем более раз ты не дружишь с мануалами и терминалом.
Да ну на хуй, говорю же, у меня столько денег нет на успокоительные. Не смогу я работать с вендой на своей домашней машине.
И с терминалом-то как раз я дружу. Равно как и с нормальными мануалами. Но, что, что выкладывает на своих говносайтах мокрошлак - это не мануалы, это пиздец. Сука, вместо того, чтобы просто написать "распакуйте куда угодно и пропишите в PATH" они создали мегабайтный скрипт, который "устанавливает", блядь. Устанавливает!
При этом ещё как устанавливает! Сначала он делает стопицот запросов на разные сайты мокрошлака! Потом в каждой, сука блядь, в каждой процедуре он перехватывает echo! Вместо сраных банальных true, false, return $exitcode и так далее, там возврат результатов в виде echo и, одновременно, return $exitcode, и потом всё это через пайплайны обратно собирается, перенаправляется из одной консоли в другую, а затем в переменные и анализируется. Там стопицот процедур! Вечнопустые переменные, которые зачем-то добавляются к дргим, не пустым, просто потому что им нравится складывать пустые строки с другими строками, наверно.
Это блядь просто скрипт, который просто распаковывает блядь сраный архив! То, что делается в любом файловом менеджере просто из меню командой "распаковать сюда", или простейшей командой gunzip kokoko.gz в консоли. У мокрошлака это делает мегабайтный, сука, скрипт! С мегабайтным же хелпом по этому скрипту! Ссылку я уже приводил.
И ты мне предлагаешь это читать? Изучать ЭТУ документацию?
Да это не документация. Это не продукт блядь вообще. Это говно! Говно, которое вообще нихуя не делает! Вообще нихуя не создаёт (кроме проблем). Какая блядь может быть документация по говну? Это издевательство! Ты понимаешь, нет? Они издеваются над нами! Они считают меня и тебя дебилами. Они для нас, как для дебилов, пишут мегабайтные скрипты, которые "помогут" нам распаковать их архив с их говном. Разумеется, только после прочтения соответствующей документации.
Это даже уже не смешно.
>На бубунту 21.10 ставишь Net6? Сам вчера ставил, там же написано, в репо для 21,10 еще не завезли и надо выбрать для 21,08. И внизу комманды для сего действия.
Не, у меня lts, 20.04, она официально поддерживается и всё для неё есть.
>Установи винду, там таких плясок нет. Тем более раз ты не дружишь с мануалами и терминалом.
Да ну на хуй, говорю же, у меня столько денег нет на успокоительные. Не смогу я работать с вендой на своей домашней машине.
И с терминалом-то как раз я дружу. Равно как и с нормальными мануалами. Но, что, что выкладывает на своих говносайтах мокрошлак - это не мануалы, это пиздец. Сука, вместо того, чтобы просто написать "распакуйте куда угодно и пропишите в PATH" они создали мегабайтный скрипт, который "устанавливает", блядь. Устанавливает!
При этом ещё как устанавливает! Сначала он делает стопицот запросов на разные сайты мокрошлака! Потом в каждой, сука блядь, в каждой процедуре он перехватывает echo! Вместо сраных банальных true, false, return $exitcode и так далее, там возврат результатов в виде echo и, одновременно, return $exitcode, и потом всё это через пайплайны обратно собирается, перенаправляется из одной консоли в другую, а затем в переменные и анализируется. Там стопицот процедур! Вечнопустые переменные, которые зачем-то добавляются к дргим, не пустым, просто потому что им нравится складывать пустые строки с другими строками, наверно.
Это блядь просто скрипт, который просто распаковывает блядь сраный архив! То, что делается в любом файловом менеджере просто из меню командой "распаковать сюда", или простейшей командой gunzip kokoko.gz в консоли. У мокрошлака это делает мегабайтный, сука, скрипт! С мегабайтным же хелпом по этому скрипту! Ссылку я уже приводил.
И ты мне предлагаешь это читать? Изучать ЭТУ документацию?
Да это не документация. Это не продукт блядь вообще. Это говно! Говно, которое вообще нихуя не делает! Вообще нихуя не создаёт (кроме проблем). Какая блядь может быть документация по говну? Это издевательство! Ты понимаешь, нет? Они издеваются над нами! Они считают меня и тебя дебилами. Они для нас, как для дебилов, пишут мегабайтные скрипты, которые "помогут" нам распаковать их архив с их говном. Разумеется, только после прочтения соответствующей документации.
Это даже уже не смешно.
> 4 класса находятся на одном уровне иерархии
Т.е. все 4 наследуются от некоторого Foo? Ну так унаследуй от Bar:Foo, Bar имеет общие поля и от него наследуются твои 4 класса.
> делать эти 4 класса интерфейсами я не могу
А? Сделай интерфейс с общими полями, а твои 4 класса пусть реализуют его. Ты также сможешь создавать свои классы и складывать их всех в List<Interface>
>Не, у меня lts, 20.04, она официально поддерживается и всё для неё есть.
Net6 не поддерживается. А более ранние заводятся с полпинка. Похоже ты просто линуксом пользоваться не умеешь.
>столько денег нет на успокоительные
Но жопа-то горит при установленном линуксе!
> мегабайтный скрипт
Обыденность линуксоида.
>делается в любом файловом менеджере
Ну так и распаковал бы.
>БАБАХ
Тем временем видузятники наслаждаются работой из коробки и радостно деплоят свои проекты под любую ОС.
>Т.е. все 4 наследуются от некоторого Foo?
Нет, я имел ввиду, что они не наследуются не от кого
>А? Сделай интерфейс с общими полями, а твои 4 класса пусть реализуют его. Ты также сможешь создавать свои классы и складывать их всех в List<Interface>
А как это решает мою проблему с тем, что мне нужно в каком-то одном классе иметь все поля других классов, как общие, так и уникальные?
>Net6 не поддерживается
Вру. на лтс поддерживается. Ну скриптом внизу страницы должно ставиться. Ну если ты не дебил и верно заменил плейсхолдеры
>в каком-то одном классе иметь все поля других классов, как общие, так и уникальные?
Звучит какбуд-то кто-то упоросля. Как это использоваться будет? Могу фасад предложить.
>>Так ебля не с линуксом, мань, а с .Net
>Так похуй же. Как только нужно что-то кроме голого линукса начинается пляска с бубном.
Что такое голый линукс? В линуксе просто дохера софта, в том числе и кросплатформенного. Всё ставится одной командой или в пару кликов мышки из синаптика. Про какие пляски с бубном ты говоришь? Распаковать файл? Это пляска с бубном?
"gunzip kokoko.gz" - это пляска с бубном? Это пляска с бубном только потому что в мокрошлаке работают конченные дебилы, которые издеваются над лохами, которые ведутся на говно, впариваемое их менеджерами по продажам!
Только не работает оно не из-за линукса, а потому что оказывается, блядь, .Net предназначен делать консольные приложения, которые кроссплатформенно работают только через докер.
Что в линуксе не работает, кроме "кроссплатформенного" .Net? Покажи хоть один язык программирования, который тут, в линуксе, не завести прямо из репозитория? Хоть один! Нет такого! Только сишарп! И микрософт бейсик может быть ещё.
>> называется установкой
>Я тебе додику уже написал как поставить дотнет на последнюю убунту, но ты выбрал ебанутый способ и жалуешься на его ебанутость.
Чиво блядь? Сам ты додик, я уже ответил, что всё в порядке у меня с версией убунты, и дело вообще не в ней. Ты этого не понял?
>>понимать надо!
>Так случаеться, когда занимаешься чем-то сложнее пускания шептунов.
Ага. Особенно, с помощью продукции мокрошлака.
>>Вы продаёте кросплатформенное говно
>Вот с чеком к тому кто продал и иди.
Я чё, мазохист, что ли, за это ещё и деньги платить? Ты чё, ебанутый?
>>кросплатформенная только консолька, да и та только с докером, а всё остальное искаропки работает только под выблёвсом?
>Ты снова бредишь. Да и докер это если что линуксовая штука, версия для винды чисто для галочки.
В смысле линуксовая штука? Мне про неё в этом треде пишут, как про средство запустить формочку с .Net, вон, выше почитай. Это я брежу? Где? Что это за "это ваш линуксовый докер, а то, что наш кросплатформенный мокрошлак запускается только в конскольке и только с докером ещё не делает его некросплатформенным"?
Что это за бред?
>> про пердолинг в линуксе,
>А то. Под виндой у тебя таких проблем не было бы.
Конечно не было бы. Под виндой я бы застрелился уже давно. Невозможно же так жить: https://www.youtube.com/watch?v=AtaeWm8Am6Y
>>Так ебля не с линуксом, мань, а с .Net
>Так похуй же. Как только нужно что-то кроме голого линукса начинается пляска с бубном.
Что такое голый линукс? В линуксе просто дохера софта, в том числе и кросплатформенного. Всё ставится одной командой или в пару кликов мышки из синаптика. Про какие пляски с бубном ты говоришь? Распаковать файл? Это пляска с бубном?
"gunzip kokoko.gz" - это пляска с бубном? Это пляска с бубном только потому что в мокрошлаке работают конченные дебилы, которые издеваются над лохами, которые ведутся на говно, впариваемое их менеджерами по продажам!
Только не работает оно не из-за линукса, а потому что оказывается, блядь, .Net предназначен делать консольные приложения, которые кроссплатформенно работают только через докер.
Что в линуксе не работает, кроме "кроссплатформенного" .Net? Покажи хоть один язык программирования, который тут, в линуксе, не завести прямо из репозитория? Хоть один! Нет такого! Только сишарп! И микрософт бейсик может быть ещё.
>> называется установкой
>Я тебе додику уже написал как поставить дотнет на последнюю убунту, но ты выбрал ебанутый способ и жалуешься на его ебанутость.
Чиво блядь? Сам ты додик, я уже ответил, что всё в порядке у меня с версией убунты, и дело вообще не в ней. Ты этого не понял?
>>понимать надо!
>Так случаеться, когда занимаешься чем-то сложнее пускания шептунов.
Ага. Особенно, с помощью продукции мокрошлака.
>>Вы продаёте кросплатформенное говно
>Вот с чеком к тому кто продал и иди.
Я чё, мазохист, что ли, за это ещё и деньги платить? Ты чё, ебанутый?
>>кросплатформенная только консолька, да и та только с докером, а всё остальное искаропки работает только под выблёвсом?
>Ты снова бредишь. Да и докер это если что линуксовая штука, версия для винды чисто для галочки.
В смысле линуксовая штука? Мне про неё в этом треде пишут, как про средство запустить формочку с .Net, вон, выше почитай. Это я брежу? Где? Что это за "это ваш линуксовый докер, а то, что наш кросплатформенный мокрошлак запускается только в конскольке и только с докером ещё не делает его некросплатформенным"?
Что это за бред?
>> про пердолинг в линуксе,
>А то. Под виндой у тебя таких проблем не было бы.
Конечно не было бы. Под виндой я бы застрелился уже давно. Невозможно же так жить: https://www.youtube.com/watch?v=AtaeWm8Am6Y
>А как это решает мою проблему с тем, что мне нужно в каком-то одном классе иметь все поля других классов, как общие, так и уникальные?
А тебе точно нужно именно этого? Мне кажется, ты "хочешь странного".
Ты хочешь франкенштейна создать?
Человеческую многоножку?
У тебя есть несколько классов, каждый по-своему реализует как общий, так и не общий функционал. Ты хочешь, чтобы оно теперь всё магическим образом объединилось в одно? Ну там, из трёх трупов с двумя почками в каждом создать одного франкенштейна с шестью почками? Или всё-таки с двумя? Как это должно работать?
Конкретно пример расписывай, с указанием что и почему ты не можешь переделать - может и подскажут, а так хз, звучит непонятно.
>.Net предназначен делать консольные приложения, которые кроссплатформенно работают только через докер.
Тебе и на таблетки от шизофрении денег не хватило.
>пук среньк
Честно сказать утомил уже и читать в десятый раз один и тот же бред не буду. Ну не зашел тебе дотнет, ну так на нем свет клином не сошелся. Тем более, что если решишь им зарабатывать, то придется сесть на винду, а это для тебя не приемлемо.
>Как это использоваться будет?
Есть динамический лист, в котором лежат объекты этих 4 типов, из него делается select через dynamic linq, там select передаётся строкой с полями. Если в каком-то типе есть все поля, перечисленные в строке, то всё норм, если у типа нет какого-то поля из строки, то вполне логично всё падает
>Есть динамический лист, в котором лежат объекты этих 4 типов
Как ты дошел до такой жизни?
>dynamic linq
Если ты про либу System.Linq.Dynamic, то ничем не помогу, не разу не юзал.
>>Не, у меня lts, 20.04, она официально поддерживается и всё для неё есть.
>Net6 не поддерживается. А более ранние заводятся с полпинка. Похоже ты просто линуксом пользоваться не умеешь.
Что не завезли, мань? О чём ты вообще?
$ dotnet --list-sdks
6.0.101 [/home/anton/.dotnet/sdk]
$ dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.1 [/home/anton/.dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [/home/anton/.dotnet/shared/Microsoft.NETCore.App]
Можешь пояснить, ты про что вообще?
>>столько денег нет на успокоительные
>Но жопа-то горит при установленном линуксе!
Потому что я впервые за десять лет попробовал накатить говно от мокрошлака.
>> мегабайтный скрипт
>Обыденность линуксоида.
Ты дебил? Говорю же, этот скрипт высрал на своём говносайте мокрошлак. И во всём линуксе ты не найдёшь ни одного настолько огромного, кривого, тупого, избыточного и бесполезного скрипта! Это не скрипт линукса, это скрипт именно мокрошлака для "установки" их мокросреды!
Которая в реальности делается вот так:
gunzip koko.gz
И всё!!! Ты тупой и этого не понимаешь? Троллишь меня тупостью? Зачем? У меня и так пылает пердак от того, что я повёлся на идиотство от мокрошлака, я и так уже чувствую себя идиотом, что пытался по их инструкции "установить" сраный блядь архив с файлами, рассчитывая, что ну блядь ну хотя бы инструкцию хотя бы для самого вката они могли бы написать нормально блядь! Но нет! Они усложнили примитивнейшие действия до предела, насколько это блядь вообще в принципе возможно!
Сравните простое "gunzip koko.gz" и вот это блядь всё:
Инструкция к запуску скрипта, который делает "gunzip koko.gz", но только в стиле мокрошлака:
https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-install-script?WT.mc_id=dotnet-35129-website
Сам скрипт, который делает "gunzip koko.gz", но только в стиле мокрошлака:
https://dot.net/v1/dotnet-install.sh
Нет, ты, блядь, открой и посмотри, обе эти ссылки, прочитай там, блядь, всё, и потом скажи мне, что это проще, чем пикрил в линуксе?
Это я ещё не начал знакомиться со средой, ещё не запустил сраный хеллоуворлд. А уже должен был перелопатить кучу говномануалов к кускам говна и разобраться в том, что все эти куски говна просто бесполезные куски говна и на самом деле надо было просто нажать два раза мышкой сука блядь!
Вот что такое мокрошлак, я тебе тупорылому дауну пытаюсь объяснить, а ты мне кукарекаешь, что в мою убунту чего-то не завезли и поэтому якобы пришло время переустанавливать шиндовс убунту блядь! Но ты серишь в лужу! Проблема не в этом! Ты понимаешь, блядь? У меня вообще складывается впечатление, что этим пользуются только дебилы, такие, как ты, да я. Я дебил потому что решил дать шанс мокрошлаку - и зря!!! А ты дебил потому что ты жрёшь говно ложками и довольно урчишь, причмокиваешь, и ещё считаешь себя умнее других, так как урвал себе самую большую ложку. И поэтому когда я спрашиваю совета о том, как сделать хеллоуворлд на сишарпе, я только и получаю, что советы от дебилов переустановить СВЕЖАЙШУЮ lts убунту на более новую с менее скучными обоями, потому что туда якобы что-то "завезли". Нихуя туда не завезли, в том-то и дело, блядь! Просто, блядь, скачиваешь сраный архив и просто, блядь, распаковываешь его, вот и вся "установка" среды! Только она нихуя искаропки не делает. В ней по умолчанию хз что надо использовать, чтобы оно под линухом могло сделать сраное окошко. Потому дебилы и советуют в итоге всё-таки для верности накатить сраную венду, для того чтобы под ней запустить "кросплатформенный" .Net! Охуеть!
>>делается в любом файловом менеджере
>Ну так и распаковал бы.
Так я и распаковал, когда разобрался, что делает этот скрипт, и что вообще эти ДЕБИЛЫ подразумевают под "установкой" сраного архива, блядь!
>>БАБАХ
>Тем временем видузятники наслаждаются работой из коробки и радостно деплоят свои проекты под любую ОС.
Обосрался. Наслаждаются! Ну мне-то уж не лечи! Наслаждаются они! Под вендой! С рекламой в главном меню! С баннерами! С внезапными неотключаемыми обновлениями! С активациями! С вводом километровых кодов активации! С русификатором, который из-за диких тормозов переключает раскладку только спустя пару слов после того, как она должна была переключиться! С автозапусками вирусов с флешек! С навязыванием иксплореров и эджей! С кривым говноофисом, не спообным нормально открыть сраный open document text! С усложнением до предела всего, что только возможно! Наслаждение! Райское, блядь, наслаждение!
Ты это серьёзно, блядь, программисты наслаждаются вендой? Ты их с домохозяйками не попутал? Это им как раз хорошо заходят мегабайтные скрипты, делающие "gunzip koko.gz". А нормальный же человек никогда не позволит ссать ему в лицо, и не будет просить нассать ещё и ещё.
>>Не, у меня lts, 20.04, она официально поддерживается и всё для неё есть.
>Net6 не поддерживается. А более ранние заводятся с полпинка. Похоже ты просто линуксом пользоваться не умеешь.
Что не завезли, мань? О чём ты вообще?
$ dotnet --list-sdks
6.0.101 [/home/anton/.dotnet/sdk]
$ dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.1 [/home/anton/.dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [/home/anton/.dotnet/shared/Microsoft.NETCore.App]
Можешь пояснить, ты про что вообще?
>>столько денег нет на успокоительные
>Но жопа-то горит при установленном линуксе!
Потому что я впервые за десять лет попробовал накатить говно от мокрошлака.
>> мегабайтный скрипт
>Обыденность линуксоида.
Ты дебил? Говорю же, этот скрипт высрал на своём говносайте мокрошлак. И во всём линуксе ты не найдёшь ни одного настолько огромного, кривого, тупого, избыточного и бесполезного скрипта! Это не скрипт линукса, это скрипт именно мокрошлака для "установки" их мокросреды!
Которая в реальности делается вот так:
gunzip koko.gz
И всё!!! Ты тупой и этого не понимаешь? Троллишь меня тупостью? Зачем? У меня и так пылает пердак от того, что я повёлся на идиотство от мокрошлака, я и так уже чувствую себя идиотом, что пытался по их инструкции "установить" сраный блядь архив с файлами, рассчитывая, что ну блядь ну хотя бы инструкцию хотя бы для самого вката они могли бы написать нормально блядь! Но нет! Они усложнили примитивнейшие действия до предела, насколько это блядь вообще в принципе возможно!
Сравните простое "gunzip koko.gz" и вот это блядь всё:
Инструкция к запуску скрипта, который делает "gunzip koko.gz", но только в стиле мокрошлака:
https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-install-script?WT.mc_id=dotnet-35129-website
Сам скрипт, который делает "gunzip koko.gz", но только в стиле мокрошлака:
https://dot.net/v1/dotnet-install.sh
Нет, ты, блядь, открой и посмотри, обе эти ссылки, прочитай там, блядь, всё, и потом скажи мне, что это проще, чем пикрил в линуксе?
Это я ещё не начал знакомиться со средой, ещё не запустил сраный хеллоуворлд. А уже должен был перелопатить кучу говномануалов к кускам говна и разобраться в том, что все эти куски говна просто бесполезные куски говна и на самом деле надо было просто нажать два раза мышкой сука блядь!
Вот что такое мокрошлак, я тебе тупорылому дауну пытаюсь объяснить, а ты мне кукарекаешь, что в мою убунту чего-то не завезли и поэтому якобы пришло время переустанавливать шиндовс убунту блядь! Но ты серишь в лужу! Проблема не в этом! Ты понимаешь, блядь? У меня вообще складывается впечатление, что этим пользуются только дебилы, такие, как ты, да я. Я дебил потому что решил дать шанс мокрошлаку - и зря!!! А ты дебил потому что ты жрёшь говно ложками и довольно урчишь, причмокиваешь, и ещё считаешь себя умнее других, так как урвал себе самую большую ложку. И поэтому когда я спрашиваю совета о том, как сделать хеллоуворлд на сишарпе, я только и получаю, что советы от дебилов переустановить СВЕЖАЙШУЮ lts убунту на более новую с менее скучными обоями, потому что туда якобы что-то "завезли". Нихуя туда не завезли, в том-то и дело, блядь! Просто, блядь, скачиваешь сраный архив и просто, блядь, распаковываешь его, вот и вся "установка" среды! Только она нихуя искаропки не делает. В ней по умолчанию хз что надо использовать, чтобы оно под линухом могло сделать сраное окошко. Потому дебилы и советуют в итоге всё-таки для верности накатить сраную венду, для того чтобы под ней запустить "кросплатформенный" .Net! Охуеть!
>>делается в любом файловом менеджере
>Ну так и распаковал бы.
Так я и распаковал, когда разобрался, что делает этот скрипт, и что вообще эти ДЕБИЛЫ подразумевают под "установкой" сраного архива, блядь!
>>БАБАХ
>Тем временем видузятники наслаждаются работой из коробки и радостно деплоят свои проекты под любую ОС.
Обосрался. Наслаждаются! Ну мне-то уж не лечи! Наслаждаются они! Под вендой! С рекламой в главном меню! С баннерами! С внезапными неотключаемыми обновлениями! С активациями! С вводом километровых кодов активации! С русификатором, который из-за диких тормозов переключает раскладку только спустя пару слов после того, как она должна была переключиться! С автозапусками вирусов с флешек! С навязыванием иксплореров и эджей! С кривым говноофисом, не спообным нормально открыть сраный open document text! С усложнением до предела всего, что только возможно! Наслаждение! Райское, блядь, наслаждение!
Ты это серьёзно, блядь, программисты наслаждаются вендой? Ты их с домохозяйками не попутал? Это им как раз хорошо заходят мегабайтные скрипты, делающие "gunzip koko.gz". А нормальный же человек никогда не позволит ссать ему в лицо, и не будет просить нассать ещё и ещё.
>Ну скриптом внизу страницы должно ставиться. Ну если ты не дебил и верно заменил плейсхолдеры
Бля, прочти уже наконец мой пост! И постарайся при этом хотя бы на 90 процентов задействовать свой мозг, а не жопу!
Сука, ну почему ты такой тупой?
Это и есть типичный пользователь .Net?
Специально для тебя повторяю ссылку на очередной пост, прочитай его, сука тупорылая блядь!
Прочитай: >>242838
Сука. Вы посмотрите, эта сука после всего этого советует мне, МНЕЕЕЕЕЕЕЕЕЕЕ!!!! ИСПОЛЬЗОВАТЬ СКРИПТ СУКА ВНИЗУ СТРАНИЦЫ, КОТОРЫМ ЧТО-ТО ТАМ ДОЛЖНО СТАВИТЬСЯ!!!!
Когда я ему, дебилу, уже второй день пишу, что не ставится, А РАСПАКОВЫВАЕТСЯ одним кликом ёбаной мыши! Ещё и пишет плейсхолдеры какие-то заменять, блядь, что он вообще, сука, несёт?
Сука, он же дебил!
У него же интеллект хлебушка!
Вот очевидно такие как раз такие довольно урчат под вендой.
Сука, я не могу! Ну посмотрите, ну люди, ну вы чё, ну вы же дебилы!
Файл!!!! Архив!!!! Распаковывать!!! Не надо мегабайтным скриптом!!!! И плейсхолдерами!!!! Его!!!! Надо!!!! Просто!!!! Распаковать!!!!! Проблема не в этом!!!! ДЕБИЛ БЛЯДЬ!!!!
>>.Net предназначен делать консольные приложения, которые кроссплатформенно работают только через докер.
>Тебе и на таблетки от шизофрении денег не хватило.
Я не знаю, это же не я сам себе советовал докер в качестве костыля для кросплатформенности, а вы советовали мне прямо в этом треде. Ну почитай тред, если не понимаешь, про что вообще речь. Я вообще не ебу, что это за докер и зачем он нужен. Ты же нихуя не объяснил.
>>пук среньк
>Честно сказать утомил уже и читать в десятый раз один и тот же бред не буду.
Ну так может тебе просто нечего сказать?
>Ну не зашел тебе дотнет, ну так на нем свет клином не сошелся. Тем более, что если решишь им зарабатывать, то придется сесть на винду, а это для тебя не приемлемо.
Ну вот так и надо сказать, что "кросплатформенный" .Net может использоваться только под вендой, и всё. Тот же eclipse, например, насколько мне известно, работает и в линуксе, и под вендой без проблем. Да даже vs code работает в линуксе. Но почему-то всё равно для зарабатывания денег под "кросплатформенным" дотнетом надо ещё и выблёвс себе поставить. И никто не может толком объяснить, почему и в чём тогда его смысл. В том, чтобы на операционке для домохозяек писать бэкенд для серверов, работающих под линуксом в консольке? Только для этого? А что мне мешает просто блядь писать прямо с машины под линуксом код для сервера, работающего на той же машине под тем же линуксом? В чём смысл этого вашего дотнета вообще?
Мне просто любопытно, что это за говно. Я уже двадцать лет слушаю про охуенный-разохуенный дотнет, и вот решил наконец потыкать в него палкой, и я нихуя не понимаю вообще. Ну вы же понимаете, что у всего должен быть какой-то смысл? Ничто не используется вот вообще просто так, ни с хуя, ни для чего? Молоток забивает гвозди. Топор рубит. Самотык удовлетворяет похоть отдельных озабоченных лиц. А что делает .Net? Объясните простыми словами, зачем он нужен вообще? Что в нём кросплатформенного и для чего это реально используется? Что, ни для чего? Просто для того чтобы мокрошлаг мог и дальше впаривать лохам своё говно, так как без этого дотнета нихуя из написанного "кросплатформенного" софта нигде не заработает? Кроме как в консольке с помощью докера?
Ну объясните, я же не прошу вас взять меня на работу, я не прикидываюсь знатоком, я вам честно пишу, я в душе не ебу, что за платформа. Я просто хочу понять нахуя она вообще нужна?
>>.Net предназначен делать консольные приложения, которые кроссплатформенно работают только через докер.
>Тебе и на таблетки от шизофрении денег не хватило.
Я не знаю, это же не я сам себе советовал докер в качестве костыля для кросплатформенности, а вы советовали мне прямо в этом треде. Ну почитай тред, если не понимаешь, про что вообще речь. Я вообще не ебу, что это за докер и зачем он нужен. Ты же нихуя не объяснил.
>>пук среньк
>Честно сказать утомил уже и читать в десятый раз один и тот же бред не буду.
Ну так может тебе просто нечего сказать?
>Ну не зашел тебе дотнет, ну так на нем свет клином не сошелся. Тем более, что если решишь им зарабатывать, то придется сесть на винду, а это для тебя не приемлемо.
Ну вот так и надо сказать, что "кросплатформенный" .Net может использоваться только под вендой, и всё. Тот же eclipse, например, насколько мне известно, работает и в линуксе, и под вендой без проблем. Да даже vs code работает в линуксе. Но почему-то всё равно для зарабатывания денег под "кросплатформенным" дотнетом надо ещё и выблёвс себе поставить. И никто не может толком объяснить, почему и в чём тогда его смысл. В том, чтобы на операционке для домохозяек писать бэкенд для серверов, работающих под линуксом в консольке? Только для этого? А что мне мешает просто блядь писать прямо с машины под линуксом код для сервера, работающего на той же машине под тем же линуксом? В чём смысл этого вашего дотнета вообще?
Мне просто любопытно, что это за говно. Я уже двадцать лет слушаю про охуенный-разохуенный дотнет, и вот решил наконец потыкать в него палкой, и я нихуя не понимаю вообще. Ну вы же понимаете, что у всего должен быть какой-то смысл? Ничто не используется вот вообще просто так, ни с хуя, ни для чего? Молоток забивает гвозди. Топор рубит. Самотык удовлетворяет похоть отдельных озабоченных лиц. А что делает .Net? Объясните простыми словами, зачем он нужен вообще? Что в нём кросплатформенного и для чего это реально используется? Что, ни для чего? Просто для того чтобы мокрошлаг мог и дальше впаривать лохам своё говно, так как без этого дотнета нихуя из написанного "кросплатформенного" софта нигде не заработает? Кроме как в консольке с помощью докера?
Ну объясните, я же не прошу вас взять меня на работу, я не прикидываюсь знатоком, я вам честно пишу, я в душе не ебу, что за платформа. Я просто хочу понять нахуя она вообще нужна?
>докер в качестве костыля для кросплатформенности, а вы советовали мне прямо в этом треде.
Ты это себе придумал сам. Тебе докер советовали, чтоб ты не ебался с настройкой окружения, раз ты не можешь установить пакет. Докер это линуксовая приблуда.
>"кросплатформенный" .Net может использоваться только под вендой, и всё
Зачем кому-то писать такую ересь? дотнет прекрасно работает и на винде и на линуксе и на макосе, на адроиде и айосе и даже под васм.
>словесный понос
без комментариев
> А что такое "нативный для платформы" код для питона?
Это код на питоне, а не дёрганье сишных либ.
> на питоне писать платформозависимый код
Я этого не говорил. Я под платформой имел в виду ЯП со стандартной библиотекой, грубо говоря, чтобы можно было прямое сравнение с платформой .Net Core провести. Ай, не важно, не буду время по такой хуйне тратить.
> А то без докера, конечно, консольное приложение на другой системе не запустить. Особенно, если оно написано с помощью .Net, да?
Ты в очередной раз себя в плохом свете выставляешь, говоря о том, в чем не разбираешься и не пытался. Почитай самостоятельно, зачем нужна контейнеризация, а то это за рамками треда вообще всё.
> я пытаюсь просто запустить хеллоу ворлд
Обрати внимание, что в википедии сначала идёт кроссплатформенный хеллоуворлд для терминала, а потом уже отдельно идёт для WinForms, так как это популярный фреймворк, но он отнюдь не дефолтный. Собрал первый, запустил. Собрал второй, не получилось, погуглил почему, понял, поумнел на одну частичку информации. Как-то так это делал я в твоём возрасте.
> А почему в делфи, например, можно просто создать пустой проект, просто запустить и там уже искаропки будет окно? Почему там даже задумываться не надо о том, как поместить на это окно кнопку?
Потому же, почему он в итоге и умер. Но для дельфивозни мышкой бери бесплатную студию и используй Windows, обсуждать это тоже не вижу смысла. Есть ещё MonoDevelop, но я не знаю, в какой степени его можно считать живым.
> я скажу - так и должен выглядеть нормальный удобный инструмент
Мощная позиция для безработного хиккана. Повторюсь, бери студию, в ней есть дизайнер и она бесплатная для твоих целей.
> Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
Во-первых, хочу тебе сказать, что ты за каким-то хуем пришёл в тред, где практически все зарабатывают на жизнь разработкой бэкендов и вообще понятия не имеют, что там на десктопе. Потому что в коммерческом плане десктоп скорее мертв, чем жив. Последний раз я разрабатывал десктопное приложение, если мою поделку так можно назвать, в 2011 году с использованием Borland Delphi 7. Но даже я знаю, что для шарпа Майкрософт выкатили WPF, который тоже уже вроде как не жилец, но идея кому-то понравилась и был создан AvaloniaUI, который кроссплатформенный и который позволяет тебе хоть в дизайнере мышкой интерфейсы накидывать, хоть в XAML их описывать. Получается, что всё можно, одному тебе нельзя почему-то. Потому что в википедии не было HelloWorld для Авалонии?
> Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
Позволю себе проигнорировать эту шизу.
> но кроссплатформенных библиотек для неё всё равно нет
От Майкрософт их может и не быть, но другие ребята предлагают свои решения.
> поэтому пишите код только для одной платформы
Или используйте уже готовые сторонние решения, потому что Майкрософт по вполне очевидным причинам предлагать их не будет и кроссплатформу рассматривает только через веб-говно с их Blazor-приложениями.
>>242710
> в документации которого распаковывание сраного архива в домашнюю папку делается мегабайтным скриптом и почему-то называется установкой
Ты плохо понимаешь, зачем вообще этот скрипт установки есть. Майки собирают deb и snap, в AUR волонтеры поддерживают все пакеты тоже, для остальных есть Docker-образы. Есть подозрения, что линуксом ты пользоваться тоже не сильно умеешь, раз вообще этот скрипт запускал зачем-то.
>>242865
Я разрабатываю бэкенды на дотнете в райдере на линуксе и могу только сказать, что всё, что ты сказал, хуйня. От начала и до конца. Можно каждое твоё слово комментировать, но мне времени жалко. Думаю, ты видишь, что я тебе его уже достаточно уделил. Что-то ты неправильно понял, что-то переврал, что-то проигнорировал. Вот дочитываешь твоё дрочево до конца и охуеваешь, что это же реально кто-то всерьез написал.
Я тебе отвечать больше не буду, остальных анонов тоже призываю не провоцировать тебя на дальнейшее засирание треда тупостью и шизой.
> А что такое "нативный для платформы" код для питона?
Это код на питоне, а не дёрганье сишных либ.
> на питоне писать платформозависимый код
Я этого не говорил. Я под платформой имел в виду ЯП со стандартной библиотекой, грубо говоря, чтобы можно было прямое сравнение с платформой .Net Core провести. Ай, не важно, не буду время по такой хуйне тратить.
> А то без докера, конечно, консольное приложение на другой системе не запустить. Особенно, если оно написано с помощью .Net, да?
Ты в очередной раз себя в плохом свете выставляешь, говоря о том, в чем не разбираешься и не пытался. Почитай самостоятельно, зачем нужна контейнеризация, а то это за рамками треда вообще всё.
> я пытаюсь просто запустить хеллоу ворлд
Обрати внимание, что в википедии сначала идёт кроссплатформенный хеллоуворлд для терминала, а потом уже отдельно идёт для WinForms, так как это популярный фреймворк, но он отнюдь не дефолтный. Собрал первый, запустил. Собрал второй, не получилось, погуглил почему, понял, поумнел на одну частичку информации. Как-то так это делал я в твоём возрасте.
> А почему в делфи, например, можно просто создать пустой проект, просто запустить и там уже искаропки будет окно? Почему там даже задумываться не надо о том, как поместить на это окно кнопку?
Потому же, почему он в итоге и умер. Но для дельфивозни мышкой бери бесплатную студию и используй Windows, обсуждать это тоже не вижу смысла. Есть ещё MonoDevelop, но я не знаю, в какой степени его можно считать живым.
> я скажу - так и должен выглядеть нормальный удобный инструмент
Мощная позиция для безработного хиккана. Повторюсь, бери студию, в ней есть дизайнер и она бесплатная для твоих целей.
> Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
Во-первых, хочу тебе сказать, что ты за каким-то хуем пришёл в тред, где практически все зарабатывают на жизнь разработкой бэкендов и вообще понятия не имеют, что там на десктопе. Потому что в коммерческом плане десктоп скорее мертв, чем жив. Последний раз я разрабатывал десктопное приложение, если мою поделку так можно назвать, в 2011 году с использованием Borland Delphi 7. Но даже я знаю, что для шарпа Майкрософт выкатили WPF, который тоже уже вроде как не жилец, но идея кому-то понравилась и был создан AvaloniaUI, который кроссплатформенный и который позволяет тебе хоть в дизайнере мышкой интерфейсы накидывать, хоть в XAML их описывать. Получается, что всё можно, одному тебе нельзя почему-то. Потому что в википедии не было HelloWorld для Авалонии?
> Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
Позволю себе проигнорировать эту шизу.
> но кроссплатформенных библиотек для неё всё равно нет
От Майкрософт их может и не быть, но другие ребята предлагают свои решения.
> поэтому пишите код только для одной платформы
Или используйте уже готовые сторонние решения, потому что Майкрософт по вполне очевидным причинам предлагать их не будет и кроссплатформу рассматривает только через веб-говно с их Blazor-приложениями.
>>242710
> в документации которого распаковывание сраного архива в домашнюю папку делается мегабайтным скриптом и почему-то называется установкой
Ты плохо понимаешь, зачем вообще этот скрипт установки есть. Майки собирают deb и snap, в AUR волонтеры поддерживают все пакеты тоже, для остальных есть Docker-образы. Есть подозрения, что линуксом ты пользоваться тоже не сильно умеешь, раз вообще этот скрипт запускал зачем-то.
>>242865
Я разрабатываю бэкенды на дотнете в райдере на линуксе и могу только сказать, что всё, что ты сказал, хуйня. От начала и до конца. Можно каждое твоё слово комментировать, но мне времени жалко. Думаю, ты видишь, что я тебе его уже достаточно уделил. Что-то ты неправильно понял, что-то переврал, что-то проигнорировал. Вот дочитываешь твоё дрочево до конца и охуеваешь, что это же реально кто-то всерьез написал.
Я тебе отвечать больше не буду, остальных анонов тоже призываю не провоцировать тебя на дальнейшее засирание треда тупостью и шизой.
Опять ты вышел на связь, наркоман. Твоя задача пошла по пизде в тот момент, когда ты использовал dynamic. Перепиши нормально, прекрати хуйней заниматься.
>>242828
А ты не думал, например, что можно эти кривые объекты смаппить в какой-то нормальный и понятный вид и уже в таком виде скармливать данные ListView?
>Есть динамический лист, в котором лежат объекты этих 4 типов, из него делается select через dynamic linq
Подожди, это типа база данных в которой в одной таблице лежат объекты четырёх разных типов? Это очень интересно, ну-ну, и что, непонятно, как дальше развить эту мысль? Предлагаю вообще все объекты всегда пихать строго в одну таблицу. Так ведь удобнее. Не надо будет ничего искать, думать, где у тебя что лежит. Понадобилось что-то - раз, запросил и готово. И вот он, объект. Ну и другие объекты всех остальных типов тоже. Останется их только как-то объединить в один объект, чтобы у одного единого объекта были свойства вообще всех объектов из этой таблицы, вот только действительно непонятно, как это сделать. Но ты что-нибудь обязательно придумаешь. Держи в курсе!
>>242828
А, ну это же полностью меняет дело. Ведь если отображать объекты разных типов надо в одной таблице, то и храниться они должны тоже строго в одной таблице. Нельзя же приделать к ним какие-то адаптеры, которые брали бы объекты разных типов и отображали бы их.
А если серьёзно, не силён я в архитектуре, но мне кажется, что отображение это в твоём случае как раз нарушение принципа под буквой S в аббревиатуре SOLID. Объект не должен заниматься своим отображением. Значит этим должен заниматься кто-то другой. Объект должен данные хранить, ну, может, их обрабатывать как-то в себе. Но не заниматься твоими листвью. Объекты этих 4 типов - это объекты 4 типов. А объект в листвью - это пятый тип. Возможно, он же будет и типом в динамическом листе. А может это уже будет шестой тип. Не знаю.
Короче, судя по вот этому - >>242789>>242828 - тебе нужна какая-то прокладка, которая просто проверяет наличие полей, и если поля нет, то возвращает "<не определено>", пустую строку или что-то подобное? Эта же прокладка кроме получения текстовых значений полей ничего не должна уметь? Какой ей ещё нужен функционал? Я имею в виду, из функционала самих объектов, которые будут доступны через эту прокладку, она же не должна больше ничего уметь. А сам объект про твой list view знать не должен, равно как и знать, что ты там хочешь отобразить, когда каких-то из запрошенных полей у одной из записей нет. Откуда это вообще объекту знать?
Ну ты, например, сложил в один мешок лошадей с собаками и помидорами. И выдаёшь отчёт о содержимом мешка. Откуда помидору знать, что он должен ответить на вопрос "какая у тебя подкова?"
Я вообще правильно понял твою задачу?
>Есть динамический лист, в котором лежат объекты этих 4 типов, из него делается select через dynamic linq
Подожди, это типа база данных в которой в одной таблице лежат объекты четырёх разных типов? Это очень интересно, ну-ну, и что, непонятно, как дальше развить эту мысль? Предлагаю вообще все объекты всегда пихать строго в одну таблицу. Так ведь удобнее. Не надо будет ничего искать, думать, где у тебя что лежит. Понадобилось что-то - раз, запросил и готово. И вот он, объект. Ну и другие объекты всех остальных типов тоже. Останется их только как-то объединить в один объект, чтобы у одного единого объекта были свойства вообще всех объектов из этой таблицы, вот только действительно непонятно, как это сделать. Но ты что-нибудь обязательно придумаешь. Держи в курсе!
>>242828
А, ну это же полностью меняет дело. Ведь если отображать объекты разных типов надо в одной таблице, то и храниться они должны тоже строго в одной таблице. Нельзя же приделать к ним какие-то адаптеры, которые брали бы объекты разных типов и отображали бы их.
А если серьёзно, не силён я в архитектуре, но мне кажется, что отображение это в твоём случае как раз нарушение принципа под буквой S в аббревиатуре SOLID. Объект не должен заниматься своим отображением. Значит этим должен заниматься кто-то другой. Объект должен данные хранить, ну, может, их обрабатывать как-то в себе. Но не заниматься твоими листвью. Объекты этих 4 типов - это объекты 4 типов. А объект в листвью - это пятый тип. Возможно, он же будет и типом в динамическом листе. А может это уже будет шестой тип. Не знаю.
Короче, судя по вот этому - >>242789>>242828 - тебе нужна какая-то прокладка, которая просто проверяет наличие полей, и если поля нет, то возвращает "<не определено>", пустую строку или что-то подобное? Эта же прокладка кроме получения текстовых значений полей ничего не должна уметь? Какой ей ещё нужен функционал? Я имею в виду, из функционала самих объектов, которые будут доступны через эту прокладку, она же не должна больше ничего уметь. А сам объект про твой list view знать не должен, равно как и знать, что ты там хочешь отобразить, когда каких-то из запрошенных полей у одной из записей нет. Откуда это вообще объекту знать?
Ну ты, например, сложил в один мешок лошадей с собаками и помидорами. И выдаёшь отчёт о содержимом мешка. Откуда помидору знать, что он должен ответить на вопрос "какая у тебя подкова?"
Я вообще правильно понял твою задачу?
>>242884
Ещё раз, у меня есть вот такой запрос
TableToAdd = test.AsQueryable()
.Select("new {" + SelectionString + "}")
.ToDynamicList();
SelectionString - это строка с полями, ToDynamicList() обязателен, иначе dynamic linq не работает, test - это тот самый лист с объектами. Получившийся результат привязывается к ListView. И нет, он нихуя не знает о том, что там к нему привязано, вы рофлите что ли? Проблема не в ListView, а в том, что select падает, если у типа нет полей из строки. К тому же, когда я слепляю объекты разных типов, я их сортирую по одному общему полю, кроме как через dynamic это сделать я способа не вижу, поэтому ваши доёбы до него я не совсем понял
Почитал что ты там дальше пишешь.
В общем. Вот тебе решение:
public class DataGridRowItem : IDataGridRowItem // IDataGridRowItem - пустой интерфейс, чтобы тебе ругались, в случае если ты пытаешься биндить к датагриду не что-то, имплементрующее этот интерфейс
{
// тут все свойства которые вообще могут быть у твоих сущностей которые ты в таблицу собрался пихать. Ни от кого не наследуемся
}
Все свои сущности - мапишь к этому виду. Можешь просто линку, можешь - сделать интерфейс:
interface IDataGridMapper<TEntityIn, TEntityOut>
{
public TEntityOut Map(TEntityIn entity);
}
Затем заменяешь свою дрисню с динамикой на List<DataGridRowItem>; и наполняешь его тем что сампил.
Понятия не имею! На сайте мокрошлака сказано, что всё ставится такими-то командами именно для этой конкретной версии. Но эти команды нихуя не работают. Это же мокрошлак. Почему они не сделали нормальный пакет? А я ебу?
Где он, куда делся? А я ебу?
Почему они написали, что он есть? А я ебу?
Почему нигде не сказано как "установить" архив, а везде только какие-то команды apt, какие-то мегабайтные скрипты и километровые инструкции по опцияям этих мегабайтных скриптов? Да потому что это мокрософт. Потому что всё у них всегда через жопу, и только так. Исключений не бывает. Каждая версия их говна приносила кучу проблем (и дыр, и вирусов). И каждая попытка установить их ебучий софт - это ёбаный квест с пердолингом реестров, консолек и тому подобного. И потом они ещё что-то смеют кукарекать про линукс. Это не в линуксе надо мегабайтные скрипты использовать для распаковки сраного архива, это мокрошлак делает мегабайтные скрипты и навязывает их запуск пользователям для создания иллюзии многозначительности их софта и сложности работы в линуксе. Потому что рассчитывают, что пользователи у них - дебилы, которые даже не поймут, что они только что лишь запустили сраный анзип.
А потом я от этих дебилов слушаю, что линукс это сложно. Нет, это не линукс - сложно, всё с точностью до наоборот!!! Мокрошлак это мегабайтный скрипт, а линукс это просто клик, запечатлённый на картинке! Которую я ещё раз повторю. Пикрил! Вот как НА САМОМ ДЕЛЕ выглядит линукс. И вот как выглядит пердолинг с мокрошлаковским калом:
https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-install-script?WT.mc_id=dotnet-35129-website
https://dot.net/v1/dotnet-install.sh
Почему? Вы меня спрашиваете "почему"? У меня тот же самый вопрос. Нет, не почему, а КАКОГО ХУЯ?!!
То есть, ты предлагаешь хранить в каком-то одном классе все возможные поля для этих 4 классов?
>раз ты не можешь установить пакет
Так ведь нет пакета. Есть только архив. И при чём тут докер?
>Зачем кому-то писать такую ересь? дотнет прекрасно работает и на винде и на линуксе и на макосе, на адроиде и айосе и даже под васм.
Ну напиши мне хеллоуворлд с окошком и кнопкой, чтобы я его запустил на своём кудахтере. У меня самый обычный линукс. У меня работают приложения qt, gtk, gnome, kde, lxde, xfce, всё вместе и по отдельности, всё отлично взаимодействует, могу даже выблёвсные приложения нативно запустить, правда вот они как раз будут работать через жопу, так как требуют неограниченных прав, которых им тут никто не даст.
Ну напиши мне кроссплатформенный хеллоуворлд с окошком. Лень писать - скачай. Ссылку дай. Нет? Ну и не пиши мне тогда про словесный понос.
>>242876
>> на питоне писать платформозависимый код
>Я этого не говорил. Я под платформой имел в виду ЯП со стандартной библиотекой, грубо говоря, чтобы можно было прямое сравнение с платформой .Net Core провести
А что такого нестандартного в numpy? У меня он установлен искаропки. Как и matplotlib.
Я же тебя не прошу не пользоваться библиотеками на шарпе, пользуйся, только покажи результат.
>> я пытаюсь просто запустить хеллоу ворлд
>Обрати внимание, что в википедии сначала идёт кроссплатформенный хеллоуворлд для терминала, а потом уже отдельно идёт для WinForms, так как это популярный фреймворк, но он отнюдь не дефолтный. Собрал первый, запустил. Собрал второй, не получилось, погуглил почему, понял, поумнел на одну частичку информации. Как-то так это делал я в твоём возрасте.
Ты что, пенсионер? С чего ты уверен, что ты до моего возраста хотя бы доживёшь, а не то что будешь в нём делать что-то конкретное?
Так посмотри внимательно на твой скриншот. Там вовсе не написано, что консольное приложение кроссплатформенное, а второе не кроссплатформенное. И не указано, что оно будет работать только под мастдаем. А того примера, что работает не под мастдаем - нет. Где он, блядь? Это кроссплатформенная среда или нет?
>Есть ещё MonoDevelop, но я не знаю, в какой степени его можно считать живым.
О, вот это полезное замечание. В 2018 году оно ещё дышало, надо посмотреть.
>> я скажу - так и должен выглядеть нормальный удобный инструмент
>Мощная позиция для безработного хиккана. Повторюсь, бери студию, в ней есть дизайнер и она бесплатная для твоих целей.
Ты так пишешь "безработный хиккан", как будто быть обеспеченным господином это что-то плохое, и прислушиваться стоит только к мнению рабов, озабоченных погоней за очередной плошкой риса, которой их наградит в конце дня их надсмотрщик.
>раз ты не можешь установить пакет
Так ведь нет пакета. Есть только архив. И при чём тут докер?
>Зачем кому-то писать такую ересь? дотнет прекрасно работает и на винде и на линуксе и на макосе, на адроиде и айосе и даже под васм.
Ну напиши мне хеллоуворлд с окошком и кнопкой, чтобы я его запустил на своём кудахтере. У меня самый обычный линукс. У меня работают приложения qt, gtk, gnome, kde, lxde, xfce, всё вместе и по отдельности, всё отлично взаимодействует, могу даже выблёвсные приложения нативно запустить, правда вот они как раз будут работать через жопу, так как требуют неограниченных прав, которых им тут никто не даст.
Ну напиши мне кроссплатформенный хеллоуворлд с окошком. Лень писать - скачай. Ссылку дай. Нет? Ну и не пиши мне тогда про словесный понос.
>>242876
>> на питоне писать платформозависимый код
>Я этого не говорил. Я под платформой имел в виду ЯП со стандартной библиотекой, грубо говоря, чтобы можно было прямое сравнение с платформой .Net Core провести
А что такого нестандартного в numpy? У меня он установлен искаропки. Как и matplotlib.
Я же тебя не прошу не пользоваться библиотеками на шарпе, пользуйся, только покажи результат.
>> я пытаюсь просто запустить хеллоу ворлд
>Обрати внимание, что в википедии сначала идёт кроссплатформенный хеллоуворлд для терминала, а потом уже отдельно идёт для WinForms, так как это популярный фреймворк, но он отнюдь не дефолтный. Собрал первый, запустил. Собрал второй, не получилось, погуглил почему, понял, поумнел на одну частичку информации. Как-то так это делал я в твоём возрасте.
Ты что, пенсионер? С чего ты уверен, что ты до моего возраста хотя бы доживёшь, а не то что будешь в нём делать что-то конкретное?
Так посмотри внимательно на твой скриншот. Там вовсе не написано, что консольное приложение кроссплатформенное, а второе не кроссплатформенное. И не указано, что оно будет работать только под мастдаем. А того примера, что работает не под мастдаем - нет. Где он, блядь? Это кроссплатформенная среда или нет?
>Есть ещё MonoDevelop, но я не знаю, в какой степени его можно считать живым.
О, вот это полезное замечание. В 2018 году оно ещё дышало, надо посмотреть.
>> я скажу - так и должен выглядеть нормальный удобный инструмент
>Мощная позиция для безработного хиккана. Повторюсь, бери студию, в ней есть дизайнер и она бесплатная для твоих целей.
Ты так пишешь "безработный хиккан", как будто быть обеспеченным господином это что-то плохое, и прислушиваться стоит только к мнению рабов, озабоченных погоней за очередной плошкой риса, которой их наградит в конце дня их надсмотрщик.
У них вполне понятный скрипт установки. Ещё и с комментариями. Не считая кучи опций и документацию, по большей части там определение ОС, архитектуры и версии libc, плюс скачивание curl и wget, если они не установлены в системе (а когда собираешь с нуля контейнер для докера, их действительно может не быть этот скрипт для таких сценариев и нужен, это стандартная практика).
>>242745
> Вместо сраных банальных true, false, return $exitcode и так далее, там возврат результатов в виде echo и, одновременно, return $exitcode
Собственно, это сделано потому, что из процедуры можно только число вернуть в баше, а когда хочешь вернуть строку, то пользуешься привычно тем паттерном, который тебя возмутил и испугал. Это тоже стандартно. Не понятно, о каких линуксах ты говоришь, если ты ими пользоваться толком не умеешь. Тебе, обезьяне, максимум продвинутым пользователем майнкрафта стать можно.
Пей таблетки. На всякий случай зарепортил тебя.
Оно и не должно быть динамично. В реальном мире всё делается так, как тебе предложили сделать.
Ещё слышал, что на западе шарп воспринимают как аналого визуал бейсика или делфи. А к программистам шарпа относятся как к тем, кто не смог осилить джаву.
> Можно ли на шарпе писать такие же большие проекты как на джаве?
> Или некоторая свобода в написании кода, не позволяет выдерживать такие объемы и проекты начинают сыпаться из-за обилия ошибок?
Это глупые вопросы. Шарп точно не может помешать написать хорошее приложение, ровно как и любой другой из общепринятых языков. Качество конечного продукта будет зависеть от менеджмента и исполнителей.
> Ещё слышал, что на западе шарп воспринимают как аналого визуал бейсика или делфи.
Какая-то сильно устаревшая байка из 2003.
> Можно ли на шарпе писать такие же большие проекты как на джаве?
Я не разрешаю. Но есть те кто кладут на это хуй и таки пишут. Т.е. сама инфраструктура позволяет.
> Или некоторая свобода в написании кода, не позволяет выдерживать такие объемы и проекты начинают сыпаться из-за обилия ошибок?
В шарпе нет какой-то бешенной свободы, если ты не пытаешься наебать систему. А наебать систему - можно в любом языке, было бы желание. И уж в джаве ее наебать не сложнее чем в шарпе,
А про развалится или нет - этот чел все правильно сказал >>242968
Учу C# по сайту metanit, конспектирую там самое важное, пытаюсь понять механику языка. Параллельно задрачиваю егэшные задачи на массивы, рекурсии, условия и циклы(чтобы до автоматизма довести). Решаю на codewars задачи.
Какие-то алгоритмы записываю, стараюсь вникнуть. К примеру всякие сортировки, заполнение массивов.
Путь то верный? Стоит смотреть в сторону всяких скиллбоксов или типа того?
хочешь кровавый тырпрайз с 300к/сек - Java
хочешь свистелки-перделки ака шарага/бурса/универ - C# твой выбор (зато и десктоп и мобилки, ИИ даже всунули на кой-то хуй (4% F#, 96# python) После # можно вкатиться в Java, поэтому # не так уж и плох
> Параллельно задрачиваю егэшные задачи на массивы, рекурсии, условия и циклы(чтобы до автоматизма довести). Решаю на codewars задачи.
> Какие-то алгоритмы записываю, стараюсь вникнуть. К примеру всякие сортировки, заполнение массивов.
Ебать долбоеб. Это вообще к программированию не относится
> Путь то верный?
Верный. Только я бы советовал наверное на таком вот этапе делать упор как раз на codewars/leetcode, просто чтоб набить руку.
Алгоритмы наизусть учить не обязательно. Нужно просто помнить их вычислительную сложность и потребление памяти и название, чтобы, если что - загуглить. Если будешь решать задачки дальше - все равно будут задачи, с условиями: "сделай за O(log n)" и ты будешь гуглить. На собесах, меня вот ни разу прям по алгоритмам в духе: напише на доске - не гоняли, как раз просто спрашивали: какие знаешь, в чем преимущество одного перед другим.
> Стоит смотреть в сторону всяких скиллбоксов или типа того?
Я считаю - не стоит. Там каких-то тайных знаний не дают. Задачи простенькие и ТИПА РЕАЛЬНЫЕ, т.е. в духе: сделайте бекенд для библиотеки. При этом уровень требований не реальный(т.е. никто с тебя там не попросит ко всему этому CI/CD намутить, не покажет что делать с возросшей нагрузкой и прочим, а на том уровне который требуют - ты и сам можешь все сделать).
Да. Про книги не забывай. Когда уже будешь массивы взад-вперед крутить и задачки среднего уровня легко решать - переходи к паттернам и ООП.
Да, но основы шарпа то все равно нужны
Про unity не знаю где материал искать, на ютубе много каналов видел, но качество преподавания не могу оценить, ибо сам новичок.
Понял, спасибо.
Задачки егэшные дрочил чисто потому, что там кроме синтаксиса особо ничего знать не надо, алгоритмы все знакомые. Но кодварсе часто возникают трудности, могу долго голову ломать над задачей, и в итоге я её гуглю и просто вникаю в решение.
Про книги не думал, буду тогда искать что-то годное и параллельно изучать.
На ютубе только бесплатные курсы и они все поверхностные. На платных курсах ты последовательно пройдёшь все этапы, а наши менторы укажут на сильные и слабые стороны и что следует дополнительно изучить. Курс начинается с C# Starter и до Unity Advanced.
>> Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
>Во-первых, хочу тебе сказать, что ты за каким-то хуем пришёл в тред, где практически все зарабатывают на жизнь разработкой бэкендов и вообще понятия не имеют, что там на десктопе.
Ну извините, что я ворвался в ваш затхлый manyamiroque и подпустил вам тугую струю свежего воздуха.
Ну так и напишите, что ваш сишарп умеет только в бэкенд, стало бы ясно и понятно. Бэкенд так бэкенд, я что, против, что ли?
Но у меня возникает один вопрос. Так сишарп это, выходит, лишь очередной клон похапе, только с классами и наследованием? Ой, подождите, так в похапе же тоже есть классы?
А чем сишарп тогда лучше похапе, джавы или пайтона? Он даёт какие-то преимущества?
>Потому что в коммерческом плане десктоп скорее мертв, чем жив. Последний раз я разрабатывал десктопное приложение, если мою поделку так можно назвать, в 2011 году с использованием Borland Delphi 7. Но даже я знаю, что для шарпа Майкрософт выкатили WPF, который тоже уже вроде как не жилец, но идея кому-то понравилась и был создан AvaloniaUI, который кроссплатформенный и который позволяет тебе хоть в дизайнере мышкой интерфейсы накидывать, хоть в XAML их описывать. Получается, что всё можно, одному тебе нельзя почему-то. Потому что в википедии не было HelloWorld для Авалонии?
Ну наверное поэтому. А нахуя приводить хелоуворлд для венды, если рассуждать, что десктоп мёртв? Ну ок, напишите, десктоп мёртв, поэтому для него кросплатформенных и вообще никаких примеров не будет. По крайней мере это будет последовательно.
>> Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
>Позволю себе проигнорировать эту шизу.
Это не шиза. Это обратная связь на тот бред, который нашмякал на своём говносайте мокрошлак, и который я прочитал в этом треде.
>> но кроссплатформенных библиотек для неё всё равно нет
>От Майкрософт их может и не быть, но другие ребята предлагают свои решения.
Прекрасно, осталось их только найти.
Почему-то в eclipse ничего не надо искать, например? Я его вообще ставил для питона, ну так, чисто попробовать. Вот в java я вообще ни-ху-я не знаю. Просто пошёл по первой же попавшейся ссылке, https://ru.wikibooks.org/wiki/Java/Первое_окно , скопировал текст, просто бухнул его в новый файл, eclipse кукарекнул, что имя файла должно соответствовать имени класса и предложил переименовать файл. Ок, тыкнул "переименовать" и "Run" - всё!
Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит! И может работать в качестве бэкенда. И на ведроиде может. И на кнопочном телефоне даже может. На чём угодно может. Вот так просто взял и запустил.
И это со мной что-то не так, а не с мокрошлаком? Это точно? Нет, ТОЧНО?
Я ведь не писал запрос в гугле "как создать КРОСПЛАТФОРМЕННОЕ окно". Я написал даже не в гугле, а в уткогусе "java создать окно". Всё, блядь. Всё, что от меня потребовалось. Две секунды по большому счёту. Потому что сделано для людей. Нормальными, сука, людьми!
Докажи мне, что я ебанутый. Докажи мне, что я шиз. Что это я долбоёб, так как не считаю, что мегабайтный скрипт вместо анзипа и куча куколдских приблуд от мокрошлака вместо обычной java или питона это что-то хорошее?
Коммерческая разработка? Будешь упирать на то, что за сишарп платят деньги? Ну так проституткам вообще за сосание хуёв деньги платятся, это же не значит, что я должен сосать хуи! Я могу себе позволить выбирать, чем заниматься, и понимаю, что это будет вряд ли сишарп. Я просто хочу определиться, хочу до конца прочувствовать, что это вы тут делаете. Ну интересно же. Нездоровое такое любопытство, вот и всё. Я и в трапач заходил тоже чисто полюбопытствовать, ну охота же понять, что должно быть в голове у человека, чтобы он решил отрезать себе член. Нет? Тебе не интересно? А мне вот интересно, что в голове у него, а ещё у шарписта.
>> поэтому пишите код только для одной платформы
>Или используйте уже готовые сторонние решения, потому что Майкрософт по вполне очевидным причинам предлагать их не будет и кроссплатформу рассматривает только через веб-говно с их Blazor-приложениями.
Короче, мокрошлак это не про кроссплатформенность, ну кто бы сомневался. Значит вся эта хуйня с кросспплатформенностью .Net - пускание пыли в глаза и ничего более. Тем более для бэкенда. Я уж молчу, что клиент по определению будет работать кроссплатформенно. Но даже бэкенд, даже сраный похапэ можно запустить и на линуксе, и на венде. Нахуй тогда вообще нужен дотнет?
Ну просто блядь мне любопытно, ну объясните же мне!
>> в документации которого распаковывание сраного архива в домашнюю папку делается мегабайтным скриптом и почему-то называется установкой
>Ты плохо понимаешь, зачем вообще этот скрипт установки есть. Майки собирают deb и snap, в AUR волонтеры поддерживают все пакеты тоже, для остальных есть Docker-образы. Есть подозрения, что линуксом ты пользоваться тоже не сильно умеешь, раз вообще этот скрипт запускал зачем-то.
Не понимаю, на чём основываются твои подозрения. В репах их пакетов нет. Точнее, что-то есть, а чего-то нет. Поэтому пришлось скачивать ручками. А куда его пихать я не ебу. Там нет ни ридми, нихуя. Только license.txt, конечно же, ну куда же, блядь, без него!
>Я разрабатываю бэкенды на дотнете в райдере на линуксе и могу только сказать, что всё, что ты сказал, хуйня. От начала и до конца. Можно каждое твоё слово комментировать, но мне времени жалко. Думаю, ты видишь, что я тебе его уже достаточно уделил.
Ну спасибо и на том, удачи тебе.
>Что-то ты неправильно понял, что-то переврал, что-то проигнорировал. Вот дочитываешь твоё дрочево до конца и охуеваешь, что это же реально кто-то всерьез написал.
Ну хуй знает, что тебе на это сказать. А я не понимаю, с чего ты охуеваешь. Я вот охуеваю с того, что вообще в принципе существует такая бесполезная хуйня, как дотнет.
>> Почему можно в питоне просто сделать ctrl-c/ctrl-v, Enter, и получить и окна, и кнопки, и чёрта лысого?
>Во-первых, хочу тебе сказать, что ты за каким-то хуем пришёл в тред, где практически все зарабатывают на жизнь разработкой бэкендов и вообще понятия не имеют, что там на десктопе.
Ну извините, что я ворвался в ваш затхлый manyamiroque и подпустил вам тугую струю свежего воздуха.
Ну так и напишите, что ваш сишарп умеет только в бэкенд, стало бы ясно и понятно. Бэкенд так бэкенд, я что, против, что ли?
Но у меня возникает один вопрос. Так сишарп это, выходит, лишь очередной клон похапе, только с классами и наследованием? Ой, подождите, так в похапе же тоже есть классы?
А чем сишарп тогда лучше похапе, джавы или пайтона? Он даёт какие-то преимущества?
>Потому что в коммерческом плане десктоп скорее мертв, чем жив. Последний раз я разрабатывал десктопное приложение, если мою поделку так можно назвать, в 2011 году с использованием Borland Delphi 7. Но даже я знаю, что для шарпа Майкрософт выкатили WPF, который тоже уже вроде как не жилец, но идея кому-то понравилась и был создан AvaloniaUI, который кроссплатформенный и который позволяет тебе хоть в дизайнере мышкой интерфейсы накидывать, хоть в XAML их описывать. Получается, что всё можно, одному тебе нельзя почему-то. Потому что в википедии не было HelloWorld для Авалонии?
Ну наверное поэтому. А нахуя приводить хелоуворлд для венды, если рассуждать, что десктоп мёртв? Ну ок, напишите, десктоп мёртв, поэтому для него кросплатформенных и вообще никаких примеров не будет. По крайней мере это будет последовательно.
>> Почему прямо здесь в браузере можно нажать F12, сделать ctrl-v, Enter и получить целое дерево DOM с окнами, кнопками, стилями и всей хуйнёй, на любой системе, а в кросплатформенном .Net нельзя?
>Позволю себе проигнорировать эту шизу.
Это не шиза. Это обратная связь на тот бред, который нашмякал на своём говносайте мокрошлак, и который я прочитал в этом треде.
>> но кроссплатформенных библиотек для неё всё равно нет
>От Майкрософт их может и не быть, но другие ребята предлагают свои решения.
Прекрасно, осталось их только найти.
Почему-то в eclipse ничего не надо искать, например? Я его вообще ставил для питона, ну так, чисто попробовать. Вот в java я вообще ни-ху-я не знаю. Просто пошёл по первой же попавшейся ссылке, https://ru.wikibooks.org/wiki/Java/Первое_окно , скопировал текст, просто бухнул его в новый файл, eclipse кукарекнул, что имя файла должно соответствовать имени класса и предложил переименовать файл. Ок, тыкнул "переименовать" и "Run" - всё!
Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит! И может работать в качестве бэкенда. И на ведроиде может. И на кнопочном телефоне даже может. На чём угодно может. Вот так просто взял и запустил.
И это со мной что-то не так, а не с мокрошлаком? Это точно? Нет, ТОЧНО?
Я ведь не писал запрос в гугле "как создать КРОСПЛАТФОРМЕННОЕ окно". Я написал даже не в гугле, а в уткогусе "java создать окно". Всё, блядь. Всё, что от меня потребовалось. Две секунды по большому счёту. Потому что сделано для людей. Нормальными, сука, людьми!
Докажи мне, что я ебанутый. Докажи мне, что я шиз. Что это я долбоёб, так как не считаю, что мегабайтный скрипт вместо анзипа и куча куколдских приблуд от мокрошлака вместо обычной java или питона это что-то хорошее?
Коммерческая разработка? Будешь упирать на то, что за сишарп платят деньги? Ну так проституткам вообще за сосание хуёв деньги платятся, это же не значит, что я должен сосать хуи! Я могу себе позволить выбирать, чем заниматься, и понимаю, что это будет вряд ли сишарп. Я просто хочу определиться, хочу до конца прочувствовать, что это вы тут делаете. Ну интересно же. Нездоровое такое любопытство, вот и всё. Я и в трапач заходил тоже чисто полюбопытствовать, ну охота же понять, что должно быть в голове у человека, чтобы он решил отрезать себе член. Нет? Тебе не интересно? А мне вот интересно, что в голове у него, а ещё у шарписта.
>> поэтому пишите код только для одной платформы
>Или используйте уже готовые сторонние решения, потому что Майкрософт по вполне очевидным причинам предлагать их не будет и кроссплатформу рассматривает только через веб-говно с их Blazor-приложениями.
Короче, мокрошлак это не про кроссплатформенность, ну кто бы сомневался. Значит вся эта хуйня с кросспплатформенностью .Net - пускание пыли в глаза и ничего более. Тем более для бэкенда. Я уж молчу, что клиент по определению будет работать кроссплатформенно. Но даже бэкенд, даже сраный похапэ можно запустить и на линуксе, и на венде. Нахуй тогда вообще нужен дотнет?
Ну просто блядь мне любопытно, ну объясните же мне!
>> в документации которого распаковывание сраного архива в домашнюю папку делается мегабайтным скриптом и почему-то называется установкой
>Ты плохо понимаешь, зачем вообще этот скрипт установки есть. Майки собирают deb и snap, в AUR волонтеры поддерживают все пакеты тоже, для остальных есть Docker-образы. Есть подозрения, что линуксом ты пользоваться тоже не сильно умеешь, раз вообще этот скрипт запускал зачем-то.
Не понимаю, на чём основываются твои подозрения. В репах их пакетов нет. Точнее, что-то есть, а чего-то нет. Поэтому пришлось скачивать ручками. А куда его пихать я не ебу. Там нет ни ридми, нихуя. Только license.txt, конечно же, ну куда же, блядь, без него!
>Я разрабатываю бэкенды на дотнете в райдере на линуксе и могу только сказать, что всё, что ты сказал, хуйня. От начала и до конца. Можно каждое твоё слово комментировать, но мне времени жалко. Думаю, ты видишь, что я тебе его уже достаточно уделил.
Ну спасибо и на том, удачи тебе.
>Что-то ты неправильно понял, что-то переврал, что-то проигнорировал. Вот дочитываешь твоё дрочево до конца и охуеваешь, что это же реально кто-то всерьез написал.
Ну хуй знает, что тебе на это сказать. А я не понимаю, с чего ты охуеваешь. Я вот охуеваю с того, что вообще в принципе существует такая бесполезная хуйня, как дотнет.
>Проблема не в ListView, а в том, что select падает, если у типа нет полей из строки.
Так что он тебе должен выдавать-то, если у него таких полей нет?
>К тому же, когда я слепляю объекты разных типов, я их сортирую по одному общему полю, кроме как через dynamic это сделать я способа не вижу, поэтому ваши доёбы до него я не совсем понял
Ну, лично я это вижу так:
>Я складываю миллилитровые шприцы с конями потому что сортирую их по одному общему полю, и хочу, чтобы у них были одинаковые поля, а они разные.
Я тоже делал такое десктопное приложение, но меня зачмонили в джава-треде за него. Пришлось вернуться обратно в шарп-тред.
>Нравится программирование,
>хочу в геймдев области поработать.
На данный момент это немного взаимоисключающие вещи. Геймдев в нынешнем виде это на 80% не про программирование. Он тебя прожует и выплюнет, а потом будет очередное "здравствуй хабр, послушай как я выгорел в 25 лет".
В геймдев сейчас стоит соваться если у тебя за плечами есть пара-тройка своих инди проектов и ты уже прошел всю еблю геймдев продакшена от начала и до конца. Ну или большой опыт мододеланья.
Второй вариант это когда ты какой-нибудь умудренный жизнью синьор-помидор, тебя достал кровавый энтерпрайз и ты уходишь в кровавый геймдев, просто чтобы поменять обстановку (а твой скилл, позволяет тебе на хую вертеть индустрию)
Няша. У него-то скорее всего что-то типа: я сделал лист Animal, у меня есть Cat, Dog, Snake, Mouse. Все - животные, у всех есть длина, количество ног, вес, но у змеи и кошки - есть еще свойство - число мышей которые оно ест ежедневно, а у мыши - количество норок которые она сделала. И он хочет чтобы весь этот зоопарк в одну таблицу выводился. По крайней мере я так понял.
Я конечно не уверен что именно так у него, но подозреваю что да.
>а когда собираешь с нуля контейнер для докера, их действительно может не быть этот скрипт для таких сценариев и нужен, это стандартная практика
Ясно. Наконец-то кто-то прояснил, для чего хоть это всё.
>> Вместо сраных банальных true, false, return $exitcode и так далее, там возврат результатов в виде echo и, одновременно, return $exitcode
>Собственно, это сделано потому, что из процедуры можно только число вернуть в баше, а когда хочешь вернуть строку, то пользуешься привычно тем паттерном, который тебя возмутил и испугал. Это тоже стандартно.
Что блядь?!! Где это стандартно?!! Покажи мне хоть один скрипт в линуксе, где подобный говноподход используется!!! Нету, я тебе говорю, нету такого, что в баше вызывается тысяча бесполезных процедур и каждая через пайплайн вместо того, чтобы просто установить сраную переменную!!!
Вот как это пишется:
kokoko(){
echo $1;
mahstringresult='pokpok'
return 0
};
kokoko 123
echo $? $mahstringresult
0 pokpok
Чё ты мне пиздишь, сука, что тот бред с пайплайнами это стандартный подход?!! Совсем уже поехал после сишарпа?!! Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот! Читаемость кода? Это блядь читаемость кода у мокрошлака? Это блядь нормальный код? Всё сообщество линукса, значит, не знает, как писать нормальный код, и только ёбаный мокрошлак, и ты, знаете вдвоём, как надо?
Где ты это видел в линуксе, чтобы какую-нибудь строчку из процедуры через сокеты возвращали, а? И чтобы ради этого вообще убивали на хуй работу двух стандартных консолей, 1 и 2, которые для обычного вывода и для error, и вместо этого создавали бы третью?
Да в линуксовых баш-скриптах вообще процедуры без лишней надобности не используются. Если что-то выполняется последовательно - оно просто выполняется последовательно. Нахуя миллион процедур со скачками по коду туда-сюда? Нахуя?!!
Да и не получается скриптов по полторы тысячи строк в линуксе. Любой скрипт легко читается, любой, я их дохуя перерыл, и сам дохуя писал, в них нет ничего сложного. С хуя ли вы все решили, что это я в линуксе не понимаю, а не в мокрошлаке работают дебилы, которые, сука, не лечатся? И ты не лечишься!
Сука, ради передачи значения из процедуры - отобрать у стандартного вывода пайплайн, зарезервировав его под возврат значений из процедур?!! Серьёзно?
>Не понятно, о каких линуксах ты говоришь, если ты ими пользоваться толком не умеешь. Тебе, обезьяне, максимум продвинутым пользователем майнкрафта стать можно.
Дебил, блядь, твою мать, я на ассемблере писал ещё когда ты у меня в яйцах болтался! Какой майнкрафт, на хуй? Ты чё несёшь?
>Пей таблетки. На всякий случай зарепортил тебя.
Анус себе зарепорти, псина ёбаная!
>а когда собираешь с нуля контейнер для докера, их действительно может не быть этот скрипт для таких сценариев и нужен, это стандартная практика
Ясно. Наконец-то кто-то прояснил, для чего хоть это всё.
>> Вместо сраных банальных true, false, return $exitcode и так далее, там возврат результатов в виде echo и, одновременно, return $exitcode
>Собственно, это сделано потому, что из процедуры можно только число вернуть в баше, а когда хочешь вернуть строку, то пользуешься привычно тем паттерном, который тебя возмутил и испугал. Это тоже стандартно.
Что блядь?!! Где это стандартно?!! Покажи мне хоть один скрипт в линуксе, где подобный говноподход используется!!! Нету, я тебе говорю, нету такого, что в баше вызывается тысяча бесполезных процедур и каждая через пайплайн вместо того, чтобы просто установить сраную переменную!!!
Вот как это пишется:
kokoko(){
echo $1;
mahstringresult='pokpok'
return 0
};
kokoko 123
echo $? $mahstringresult
0 pokpok
Чё ты мне пиздишь, сука, что тот бред с пайплайнами это стандартный подход?!! Совсем уже поехал после сишарпа?!! Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот! Читаемость кода? Это блядь читаемость кода у мокрошлака? Это блядь нормальный код? Всё сообщество линукса, значит, не знает, как писать нормальный код, и только ёбаный мокрошлак, и ты, знаете вдвоём, как надо?
Где ты это видел в линуксе, чтобы какую-нибудь строчку из процедуры через сокеты возвращали, а? И чтобы ради этого вообще убивали на хуй работу двух стандартных консолей, 1 и 2, которые для обычного вывода и для error, и вместо этого создавали бы третью?
Да в линуксовых баш-скриптах вообще процедуры без лишней надобности не используются. Если что-то выполняется последовательно - оно просто выполняется последовательно. Нахуя миллион процедур со скачками по коду туда-сюда? Нахуя?!!
Да и не получается скриптов по полторы тысячи строк в линуксе. Любой скрипт легко читается, любой, я их дохуя перерыл, и сам дохуя писал, в них нет ничего сложного. С хуя ли вы все решили, что это я в линуксе не понимаю, а не в мокрошлаке работают дебилы, которые, сука, не лечатся? И ты не лечишься!
Сука, ради передачи значения из процедуры - отобрать у стандартного вывода пайплайн, зарезервировав его под возврат значений из процедур?!! Серьёзно?
>Не понятно, о каких линуксах ты говоришь, если ты ими пользоваться толком не умеешь. Тебе, обезьяне, максимум продвинутым пользователем майнкрафта стать можно.
Дебил, блядь, твою мать, я на ассемблере писал ещё когда ты у меня в яйцах болтался! Какой майнкрафт, на хуй? Ты чё несёшь?
>Пей таблетки. На всякий случай зарепортил тебя.
Анус себе зарепорти, псина ёбаная!
Нет, твой путь не верный. Надо было выбирать java bkb python, на худой конец php или даже lisp. Но не сишарп.
Быстро раскусили, что я из сишарп-треда и на джаве десктоп не пишут. Джава - это либо мобилки, либо спринг.
> что ваш сишарп умеет только в бэкенд, стало бы ясно и понятно
Тебе ясно дали понять, что сишарп умеет во всё. Ты не умеешь это использовать.
> А чем сишарп тогда лучше похапе, джавы или пайтона? Он даёт какие-то преимущества?
Он быстрее, свежее и местами лучше. Кроме того, за ним большая корпорация, которая пилит для него годные фреймворки и нанимает людей, чтобы это всё развивалось.
> А нахуя приводить хелоуворлд для венды, если рассуждать, что десктоп мёртв? Ну ок, напишите, десктоп мёртв, поэтому для него кросплатформенных и вообще никаких примеров не будет. По крайней мере это будет последовательно.
Иди на wikibooks с такими претензиями, шиз. Это ведь они написали это, а не разработчики сишарпа. Твои мысли связаны вообще хоть как-то?
> eclipse
Он точно так же требует наличия JRE и JDK в системе, как Rider требует наличия дотнетовских рантайма и SDK. Различия тут только в том, что прокладка между монитором и стулом себе придумала.
> Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит!
Было бы интересно услышать, откуда в таком случае это всё взялось на твоём компьютере.
> Покажи мне хоть один скрипт в линуксе, где подобный говноподход используется!!!
За двадцать секунд нашёл прямо в репозитории с едром:
https://github.com/torvalds/linux/blob/6441998e2e37131b0a4c310af9156d79d3351c16/tools/testing/selftests/net/icmp_redirect.sh#L133
https://github.com/torvalds/linux/blob/6441998e2e37131b0a4c310af9156d79d3351c16/tools/testing/selftests/net/icmp_redirect.sh#L262
> каждая через пайплайн
Кстати, непонятно, что ты называешь пайплайном. Тут нет никаких пайплайнов, простой command substitution https://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#:~:text=3.4.5. Command substitution
> Вот как это пишется
Ну и следи потом, где в скрипте переменная инициализируется/изменяется, ведь там всё тонким слоем размазано будет.
> Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот!
Ну вот и покажи, где пайплайны и сокеты. Ты же явно не понимаешь, о чем говоришь.
> что ваш сишарп умеет только в бэкенд, стало бы ясно и понятно
Тебе ясно дали понять, что сишарп умеет во всё. Ты не умеешь это использовать.
> А чем сишарп тогда лучше похапе, джавы или пайтона? Он даёт какие-то преимущества?
Он быстрее, свежее и местами лучше. Кроме того, за ним большая корпорация, которая пилит для него годные фреймворки и нанимает людей, чтобы это всё развивалось.
> А нахуя приводить хелоуворлд для венды, если рассуждать, что десктоп мёртв? Ну ок, напишите, десктоп мёртв, поэтому для него кросплатформенных и вообще никаких примеров не будет. По крайней мере это будет последовательно.
Иди на wikibooks с такими претензиями, шиз. Это ведь они написали это, а не разработчики сишарпа. Твои мысли связаны вообще хоть как-то?
> eclipse
Он точно так же требует наличия JRE и JDK в системе, как Rider требует наличия дотнетовских рантайма и SDK. Различия тут только в том, что прокладка между монитором и стулом себе придумала.
> Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит!
Было бы интересно услышать, откуда в таком случае это всё взялось на твоём компьютере.
> Покажи мне хоть один скрипт в линуксе, где подобный говноподход используется!!!
За двадцать секунд нашёл прямо в репозитории с едром:
https://github.com/torvalds/linux/blob/6441998e2e37131b0a4c310af9156d79d3351c16/tools/testing/selftests/net/icmp_redirect.sh#L133
https://github.com/torvalds/linux/blob/6441998e2e37131b0a4c310af9156d79d3351c16/tools/testing/selftests/net/icmp_redirect.sh#L262
> каждая через пайплайн
Кстати, непонятно, что ты называешь пайплайном. Тут нет никаких пайплайнов, простой command substitution https://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#:~:text=3.4.5. Command substitution
> Вот как это пишется
Ну и следи потом, где в скрипте переменная инициализируется/изменяется, ведь там всё тонким слоем размазано будет.
> Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот!
Ну вот и покажи, где пайплайны и сокеты. Ты же явно не понимаешь, о чем говоришь.
PropertyChanged ( nameof(macollection) )?
Как по мне она есть. Все мои свестелки перделки хорошо работали везде на докере.
Ну а если гуй нужен, то вот https://avaloniaui.net/ чем плох то?
И если надо писать какие то читы или еще какую хуйню школьную то она её ЦА сидит на виндовс, зачем вообще о кроссплатформенности заикается? Да и бОльшенство софта сейчас работает через веб.
О кстати, а ХотРелоад уже во всех языках завезли? Я попробовал, просто пиздец какая удобная штука.
В Elm вроде можно изменить код в одной точке времени и результат изменится будто программа проработала с измененным кодом.
https://elm-lang.org/news/time-travel-made-easy
Про ту кроссплатформенность что тот чел высирал - ее нигде нет. Ну или пусть запустит свое жава-кнопочное говно на принтере 10+ летней давности. Тот же сишный код - вполне запустится, а с жавой там даже рантайм не встанет.
В контексте обычного понимания: код можно скомпилировать и запустить на разных платформах, не изменяя его, основа шарпа - вполне себе кроссплатформенная. Всякие свистоперделки типа MAUI, форм или WPF - нет. Допустим, у нас на заводе ПО контроллеров на шарпе написано, да, там линукс в основе, потому это не совсем embeded, но суть - вот, есть контроллер, его основное приложение на шарпах, крутится-вертится, работает. Нам вот в хуй не уперлись эти вот формы, но остальные плюшки дотнета - оч даже полезны.
Есть вордовский файл с табличкой, как на пике. Можно ли программно взаимодействовать с этим вордовским файлом, чтобы текст из программы записывался в блок "ответ на вопрос №...".
Если более развернуто описать задачу, то будет примерно так:
Есть табличка в ворде, как на пике - "болванка". Таких вордовских файлов будет порядка 100 штук. Блоки "Вопрос №..." всегда одинаковые. В блоке "Ответ на вопрос №..." тоже всегда будет типовой текст, только числовые данные будут меняться. Например: в 1-ом файле будет "яблок в корзине 14", во 2-ом файле будет "яблок в корзине 212" и тд.
Хочу сделать а-ля программу, куда я буду вписывать числовые данные, а она будет подставлять их в вордоский файл.
Можно даже сделать форму с такой болванкой, только места, где нужно ввести число - оставить пустым, я буду открывать программу, пролистывать форму с текстом и в пробелы вставлять текст, а программа мне будет экспортировать фал ворда форматированный под болванку.
>>243184
Можно, я эту хуйню дотянул до ВКР бакалавра. На Питоне делал, правда. Только у меня сценарий был сложнее.
А то, что хочешь ты, -- это стандартная фича MS Word. Называется это хуйня рассылками или слиянием документов, вот один из первых результатов в гугле (читал по диагонали и может быть не лучшей инструкцией, но в общих чертах так и есть всё): https://nitforyou.com/ms-word-sozdanie-serijnyx-pisem/
А тут вот говорят, что теперь десктоп вообще ни на чём не пишут. Что он мёртв полностью и потому не нужен вообще.
>>243129
>Кроме того, за ним большая корпорация, которая пилит для него годные фреймворки
Брось заливать-то, видел я, что они напилили.
>> eclipse
>Он точно так же требует наличия JRE и JDK в системе
Да, но есть нюанс, jre ставится одной командой из репов и не ебёт мозги.
А в какой конкретно строчке здесь дефолтный вывод убивается? Я вот вижу в первом скрипте
log_section()
{
echo
echo "###########################################################################"
echo "$*"
echo "###########################################################################"
echo
}
То есть обычный echo, значит вывод не подавлен ни в какой пайп.
Сравни с тем, как надо извращаться, чтобы что-то выдать на экран в скрипте от мокрошлака:
say() {
# using stream 3 (defined in the beginning) to not interfere with stdout of functions
# which may be used as return value
printf "%b\n" "${cyan:-}dotnet-install:${normal:-} $1" >&3
}
Вот это вот видишь в конце строчки с printf? Ты обещал найти подобное говно в линуксе, и ни в одном из приведённых тобой скриптов ничего подобного нет. Так покажи мне, где ещё подобное используется? Я тебя даже не прошу доказать, что это стандартный, как ты сказал, подход, потому что ясно, что ты просто кукухой поехал уже после своих сишарпов. Ну просто зачем ты хуйню несёшь?
>>Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит!
>Было бы интересно услышать, откуда в таком случае это всё взялось на твоём компьютере.
Ок, возможно, я поставил. Потому что оно просто ставится, я даже и не заметил. Потому что есть простая и при этом работающая команда sudo apt install default-jre, а не мегабайтный скрипт для установки на докеры и куча скриптов, которые не работают.
>> каждая через пайплайн
>Кстати, непонятно, что ты называешь пайплайном. Тут нет никаких пайплайнов, простой command substitution https://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#:~:text=3.4.5. Command substitution
Везде там блядь пайплайны, глаза разуй!
Там ВЕСЬ, ВООБЩЕ ВЕСЬ вывод подавлен, при этом во всём скрипте 161 раз встречается слово echo, и во всех 161 случаях оно используется не для выдачи информации пользователю, а для передачи строковых значений вроде пикрил! Куда оно по-твоему идёт, если не в пайплайн? Я ж тебе говорю, они блядь долбоёбы! Конченные долбоёбы просто! Ты даже понять не можешь, ЧТО они нахуячили в своём говноскрипте! Я сам за десять лет на линуксе такого пиздеца не видел! Ни разу!!! А ты мне говоришь, что это стандартный подход! И вы мне тут кукарекаете, что я ничего не понимаю и мне только в майнкрафт играть. При этом сами в глаза долбитесь и не понимаете даже, о чём вообще речь, какие такие пайплайны!
Не видишь ты, ЧТО они сделали? Пиздец! Это вот так они используют bash! Ну теперь будем знать, какой подход в линуксе станет стандартным после того, как мокрошлак возьмётся за его доработку не дай бог дожить
>> Вот как это пишется
>Ну и следи потом, где в скрипте переменная инициализируется/изменяется, ведь там всё тонким слоем размазано будет.
Ну да, конечно, лучше следить, куда у тебя стандартный вывод пропадает. А тут за ним и нечего следить, он подавлен весь на хуй, так что его попросту нет. Тут же столько переменных, ну куда уж за ними за всеми уследить, проще будет уследить за тысячей пайплайнов!
>> Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот!
>Ну вот и покажи, где пайплайны и сокеты. Ты же явно не понимаешь, о чем говоришь.
Показал. Сам ты не понимаешь. Это факт.
Я не могу только понять, хули ты споришь, если не понимаешь. И рассказываешь мне про линукс. Ссылки для начинающих в баше мне кидаешь.
Я понимаю, что вендузятники они вообще все ебанутые. У них родовая травма, нанесённая bat-файлами. Они вообще не понимают, что такое нормальный shell. Это понятно, я с пониманием к тебе отношусь, даже с сочувствием. Но когда мне начинают рассказывать, что это я просто линукса не знаю и не умею им пользоваться, защищая вот это вот говно - это пиздец. Это как гнобить за это говно сам линукс, хотя повторяю, во всём линуксе вы не найдёте ни одного настолько же ебанутого скрипта, как тот, который был исторгнут какими-то недрами говнософта, ссылку на который я вам привёл и про который я ясно написал, что именно в нём ебанутого.
А тут вот говорят, что теперь десктоп вообще ни на чём не пишут. Что он мёртв полностью и потому не нужен вообще.
>>243129
>Кроме того, за ним большая корпорация, которая пилит для него годные фреймворки
Брось заливать-то, видел я, что они напилили.
>> eclipse
>Он точно так же требует наличия JRE и JDK в системе
Да, но есть нюанс, jre ставится одной командой из репов и не ебёт мозги.
А в какой конкретно строчке здесь дефолтный вывод убивается? Я вот вижу в первом скрипте
log_section()
{
echo
echo "###########################################################################"
echo "$*"
echo "###########################################################################"
echo
}
То есть обычный echo, значит вывод не подавлен ни в какой пайп.
Сравни с тем, как надо извращаться, чтобы что-то выдать на экран в скрипте от мокрошлака:
say() {
# using stream 3 (defined in the beginning) to not interfere with stdout of functions
# which may be used as return value
printf "%b\n" "${cyan:-}dotnet-install:${normal:-} $1" >&3
}
Вот это вот видишь в конце строчки с printf? Ты обещал найти подобное говно в линуксе, и ни в одном из приведённых тобой скриптов ничего подобного нет. Так покажи мне, где ещё подобное используется? Я тебя даже не прошу доказать, что это стандартный, как ты сказал, подход, потому что ясно, что ты просто кукухой поехал уже после своих сишарпов. Ну просто зачем ты хуйню несёшь?
>>Никакой ебли! Ничего устанавливать не надо! Никаких сред! Всё стоит уже само искаропки, как кол стоит!
>Было бы интересно услышать, откуда в таком случае это всё взялось на твоём компьютере.
Ок, возможно, я поставил. Потому что оно просто ставится, я даже и не заметил. Потому что есть простая и при этом работающая команда sudo apt install default-jre, а не мегабайтный скрипт для установки на докеры и куча скриптов, которые не работают.
>> каждая через пайплайн
>Кстати, непонятно, что ты называешь пайплайном. Тут нет никаких пайплайнов, простой command substitution https://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#:~:text=3.4.5. Command substitution
Везде там блядь пайплайны, глаза разуй!
Там ВЕСЬ, ВООБЩЕ ВЕСЬ вывод подавлен, при этом во всём скрипте 161 раз встречается слово echo, и во всех 161 случаях оно используется не для выдачи информации пользователю, а для передачи строковых значений вроде пикрил! Куда оно по-твоему идёт, если не в пайплайн? Я ж тебе говорю, они блядь долбоёбы! Конченные долбоёбы просто! Ты даже понять не можешь, ЧТО они нахуячили в своём говноскрипте! Я сам за десять лет на линуксе такого пиздеца не видел! Ни разу!!! А ты мне говоришь, что это стандартный подход! И вы мне тут кукарекаете, что я ничего не понимаю и мне только в майнкрафт играть. При этом сами в глаза долбитесь и не понимаете даже, о чём вообще речь, какие такие пайплайны!
Не видишь ты, ЧТО они сделали? Пиздец! Это вот так они используют bash! Ну теперь будем знать, какой подход в линуксе станет стандартным после того, как мокрошлак возьмётся за его доработку не дай бог дожить
>> Вот как это пишется
>Ну и следи потом, где в скрипте переменная инициализируется/изменяется, ведь там всё тонким слоем размазано будет.
Ну да, конечно, лучше следить, куда у тебя стандартный вывод пропадает. А тут за ним и нечего следить, он подавлен весь на хуй, так что его попросту нет. Тут же столько переменных, ну куда уж за ними за всеми уследить, проще будет уследить за тысячей пайплайнов!
>> Пайплайны вообще не для того придуманы, чтобы ими из процедур, сука, строковые значения возвращать, это сокеты, блядь, сокеты, потоковые данные, а не строковые переменные, ёбанарот!
>Ну вот и покажи, где пайплайны и сокеты. Ты же явно не понимаешь, о чем говоришь.
Показал. Сам ты не понимаешь. Это факт.
Я не могу только понять, хули ты споришь, если не понимаешь. И рассказываешь мне про линукс. Ссылки для начинающих в баше мне кидаешь.
Я понимаю, что вендузятники они вообще все ебанутые. У них родовая травма, нанесённая bat-файлами. Они вообще не понимают, что такое нормальный shell. Это понятно, я с пониманием к тебе отношусь, даже с сочувствием. Но когда мне начинают рассказывать, что это я просто линукса не знаю и не умею им пользоваться, защищая вот это вот говно - это пиздец. Это как гнобить за это говно сам линукс, хотя повторяю, во всём линуксе вы не найдёте ни одного настолько же ебанутого скрипта, как тот, который был исторгнут какими-то недрами говнософта, ссылку на который я вам привёл и про который я ясно написал, что именно в нём ебанутого.
>оно просто ставится, я даже и не заметил. Потому что есть простая и при этом работающая команда sudo apt install
Я так дотнет на убунту накатил, кста
>но остальные плюшки дотнета - оч даже полезны
Какие именно?
>Ну или пусть запустит свое жава-кнопочное говно на принтере 10+ летней давности. Тот же сишный код - вполне запустится, а с жавой там даже рантайм не встанет.
>у нас на заводе ПО контроллеров на шарпе написано, да, там линукс в основе, потому это не совсем embeded, но суть - вот, есть контроллер, его основное приложение на шарпах, крутится-вертится
Не понимаю, почему жава не запустится на вашем линуксе? Ты имеешь в виду буквально матричный принтер с прошивкой на си (не сишарп)? При чём здесь он вообще? Ты ардуину, что ли, на сишарпе программируешь?
> Какие именно?
Куча выпускников местного вуза, которые шарпы знают))) Сишника ты хуй найдешь, жависты - съебывают в тырпрайз и банки, пыхари не подходят, хоть ПХП и используется в некоторых сериях контроллеров для веб-морды устройств.
> Не понимаю, почему жава не запустится на вашем линуксе?
Запустится, только тестирования показали, что жава в наших кейсах сильно медленнее и жирнее шарпов. Раньше на Си писали, но, как я сказал выше, сишника - хуй найдешь, а старые - охуели, просют миллионы денег, проебывают сроки и вообще.
> Ты имеешь в виду буквально матричный принтер с прошивкой на си
Это было про кроссплатформенность в вакууме.
> Ты ардуину, что ли, на сишарпе программируешь?
Контроллеры для хим заводов.
>Куча выпускников местного вуза, которые шарпы знают))) Сишника ты хуй найдешь, жависты - съебывают в тырпрайз и банки,
Понятно, в общем, плюсы сишарпа в том, что шарписты нигде, кроме вашего завода, больше на хуй никому не нужны, поэтому им, наверно, можно даже денег не платить, а они всё равно будут проситься к вам хотя бы погреться, а то на улице холодно зимой?
>> Не понимаю, почему жава не запустится на вашем линуксе?
>Запустится, только тестирования показали, что жава в наших кейсах сильно медленнее и жирнее шарпов. Раньше на Си писали, но, как я сказал выше, сишника - хуй найдешь, а старые - охуели, просют миллионы денег, проебывают сроки и вообще.
Понятно. Получается, стоит учить си, но не шарп? Ну не просто же так они миллионы просят? Глядишь - кто-то и даст?
>> Ты ардуину, что ли, на сишарпе программируешь?
>Контроллеры для хим заводов.
Много платите? Не миллионы - это конкретно сколько?
шурик, спок
> jre ставится одной командой из репов и не ебёт мозги
Это не зона влияния Microsoft. Что мейнтейнеры в репы положили, то там и будет. Плюс у других почему-то всё стандартно устанавливается в линуксах и в репах всё есть, а у тебя вот что-то не работает.
> То есть обычный echo, значит вывод не подавлен ни в какой пайп.
Возврат строки из функции через command substitution -- стандартная практика, ты через глобальные переменные ёбнешься всё передавать. Майки эту стандартную практику использовали, но столкнулись с тем, что в таком случае нельзя ничего выводить в STDOUT в функциях, которые должны вернуть строки (они оставили это в комментарии, где перенаправлен вывод). На мой взгляд, им стоило просто ничего не пытаться выводить в функциях, но они пошли таким путём, скорее всего, чтобы в будущем кто-нибудь что-нибудь случайно не сломал. Решение дубовое, но рабочее, как и сам шелл.
> Там ВЕСЬ, ВООБЩЕ ВЕСЬ вывод подавлен
Не подавлен, а перенаправлен. В терминах баша пайп -- это вообще перенаправление STDOUT команды в STDIN последующей команды, но будем считать, что ты генерализовал это понятие и башевые пайпы тут частный случай.
> Ну да, конечно, лучше следить, куда у тебя стандартный вывод пропадает.
Вот они решили не следить и обезопасили всё своими обёртками.
Тебе уже всё сказали и показали, вести с тобой дальше разговор нет смысла.
Почему микрософты не покупают Авалонию?
>Запустится, только тестирования показали, что жава в наших кейсах сильно медленнее и жирнее шарпов
А у вас там прямо критичная какая-то нагрузка? И реально шарп быстрее? Но почему? За счёт чего? Такой же байткод, вроде бы?
А вы прогревали кэш перед тестированием?
> И реально шарп быстрее? Но почему? За счёт чего? Такой же байткод, вроде бы?
Потому что Microsoft всегда вкладывала бабки в ускорение и потому что сишарп моложе и смелее, что позволило ему не наступить на многие грабли или вообще ломать обратную совместимость в ранние годы. Дженерики.
Они до сих пор всё ломают, да так, что книги устаревают, не успев выйти.
В 2022 году вышла книга Прайса по шарпу 9 и дотнету 5, а уже вышли шарп 10 и дотнет 6. И как тут угнаться за изменениями?
Джава всё же более стабильная и даже старый код до сих пор работает без изменений.
Ещё микрософты любят привязывать свои технологии к версии винды. К примеру, на у меня была шин8 и там нельзя было поставить новый дотнет. Меня просто вынудили ставить шин10, чтобы пользоваться новым дотнетом.
Думаю, и сишарп 11 и дотнет 7 привяжут к шин11 и вам придётся переезжать на неё без выбора.
Вообще, сишарп и дотнет слишком сильно привязаны к хотелкам микрософтов. Джава в этом отношении более свободна.
> всё ломают
> шарпу 9 и дотнету 5, а уже вышли шарп 10 и дотнет 6
Где ломают?
> Меня просто вынудили ставить шин10, чтобы пользоваться новым дотнетом.
Кто?
Ладно, всё. Сколько можно уже в самом деле.
И мб есть у кого таблица с сравнением коллекции? Ну типо эта коллекция быстрее перебирается, а из этой быстрее удаляется, а эта меньше места занимает.
Я тут погуглил о том, что за дженерики. В общем, в шарпе более строгая типизация, чем в джава?
Ну что же, вот ты меня, пожалуй, убедил, что шарп и правда может быть лучше, если его правильно приготовить. Но на шарпистов, получается, ниже спрос, и поэтому платят им на вашем заводе... сколько, ты так и не ответил?
я хз, что сейчас в универах дают, раньше давали #. У нас есть группка в тг выпускников факультета ПИ, как-то писали кто куда всунулся - никто, повторню НИКТО не вошел в ойти через .NET. Java, python, front, даже один devOps-ом стал. И это при том, что .NET у нас был с 2 по 4 курс. Я даже бакалаврскую сдавал по вин формам, лол. Проебаные годы.
Я не большой спец в джаве и вообще этими борщехлебскими вопросами давно не задаюсь, но мне кажется, что система типов у них вообще одинаковая с минорными различиями. Поправьте, если чё пропустил.
Просто в джаве зассали в свое время прикручивать полноценные дженерики и оставили type erasure перед VM, то есть на уровне байткода там всё object'ы с кастами налево-направо, боксингом и скудным перфомансом.
В C# не зассали, клали хуй на совместимость и там вообще сам CLR умеет в дженерики, поэтому всё проще, понятнее, быстрее и JIT'у проще оптимизировать код. В общем, джава пострадала от полумер и несмелых решений. У джавы есть платиновые фейлы, в C# они как правило пофикшены или не так ужасны.
Если моё мнение интересно, то по большей части вообще похую. У любой платформы есть плюсы и минусы, и на больших масштабах они становятся незначительными.
На дотнет очень тяжело найти джуна, они буквально кроме Laba01.cs на Windows Forms в жизни ничего не делали. Я, кстати, после универа сразу в дотнет вкатился без знания сишарпа и платформы вообще.
>>243245
> шарписты нигде, кроме вашего завода, больше на хуй никому не нужны
Это какая-то мантра джавистов, которая очень неактуальна. Деньги те же, проектов дохуя, хрюши точно так же выстраиваются в очередь десятками в день, если просто открыть полупустое резюме на HH.
>>243286
Я не тот анон, что на заводе работает, но зарплата у меня 240к на руки недавно со 180к апнулся сменой конторы. У лида 300к. Одногруппник на L3 в EPAM (не Anywhere) прошёл недавно, там потолок 348к, но он принципиально хочет минимум 380к и чтобы не лидом, поэтому не пошёл.
>У джавы есть платиновые фейлы
Например? Из тех, которые в шарпе пофикшены? (помимо дженериков)
>Если моё мнение интересно, то по большей части вообще похую. У любой платформы есть плюсы и минусы, и на больших масштабах они становятся незначительными.
Ну вот тут химик говорит, что тормозит джава, конкретно тормозит, и на тестах всасывает.
>>243349
>На дотнет очень тяжело найти джуна, они буквально кроме Laba01.cs на Windows Forms в жизни ничего не делали
Ну сколько мне зарплату положите, если я к вам вкачусь?
>>243349
>Это какая-то мантра джавистов, которая очень неактуальна. Деньги те же, проектов дохуя, хрюши точно так же выстраиваются в очередь десятками в день, если просто открыть полупустое резюме на HH.
Ну ок, завтра приду к вам на работу устраиваться. А вы, кстати, что делаете?
>>243349
>Я не тот анон, что на заводе работает, но зарплата у меня 240к на руки недавно со 180к апнулся сменой конторы. У лида 300к. Одногруппник на L3 в EPAM (не Anywhere) прошёл недавно, там потолок 348к, но он принципиально хочет минимум 380к и чтобы не лидом, поэтому не пошёл.
Тю?.. Четверть ляма всего?
Ну ладно, я согласен.
Есть пять стульев книжек. С какой начать?
> Из тех, которые в шарпе пофикшены?
Да я ебу, что ли? Я не клавиатурный воин и этим интересовался последний раз лет пять назад. Мне вообще всё равно, какие у кого проблемы. Ну сравнение строк у них всратое, Equals через Equals. Value types нет. Там в Java-треде нет боевых картиночек, что ли, чтобы можно было быстро ознакомиться?
> Ну вот тут химик говорит, что тормозит джава, конкретно тормозит, и на тестах всасывает.
Ну JIT позже у неё срабатывает, например. Вообще, джависты твёрдо и чётко говорят, что JVM очень хорошо тюнится и пердолингом под свои задачи можно всё конкретно ускорить, но я не знаю, насколько это правда. Допускаю, что с прямыми руками всё однохуйственно.
> Ну сколько мне зарплату положите, если я к вам вкачусь?
Насколько оценят. Без опыта на хуй пойдешь, канеш.
> Ну ок, завтра приду к вам на работу устраиваться. А вы, кстати, что делаете?
SaaS для техасского барина.
> С какой начать?
C# был не первым и не пятым ЯП на момент моего вката, поэтому лично я книг конкретных по нему от корки до корки не читал. Документация, конференции на ютьюбе, коммиты старших коллег, блоги, что угодно. Смотри шапку и не читай устаревшую хуйню.
Начинай с метанита.
Там выжимка с книги уже не помню какой., а что непонятно будет то уже читай в книге любой, желательно что бы поновее была.
Или в офф документации, она практически вся на русский переведена.
Ну а вообще вот роад мап для асп нер кор разработчика.https://raw.githubusercontent.com/MoienTajik/AspNetCore-Developer-Roadmap/master/aspnetcore-developer-roadmap-printable.png
Я вкатывальщик, мб кто лучше систему обучения посоветует. Я сейчас нахожусь на 3пикрил, ну и не скажу что я все выше вот полностью знаю и смогу по всем ответить. Знаю что это все есть, знаю примерно как и для чего юзать, знаю как загуглить по этим темам вопрос, или где просто смотреть примеры.
Хуй знает вообще в этом самообучении когда пора остановится и переходить к другой теме. Или когда пора искать работу уже.
С курсами все понятно, прошел курс ну и типо ачивка есть и можно и работу искать.
Корочи самому надо подбирать что тебе удобно.
ИМХО конечно.
Как-то много хуйни на пике, на мой взгляд. Razor на хуй, все ORM кроме EF на хуй (ты же вкатываешься, нахуй тебе Dapper с нулём боевого опыта?), все нестандартные DI-контейнеры на хуй, для кэширования достаточно MemoryCache и Redis пощупать, весь Cloud на хуй. Непонятно, зачем тут различные РСУБД, потому что достаточно будет на постгресе какой-нибудь проектик сделать.
>>243396-кун
>Razor на хуй
Да.
>все ORM кроме EF на хуй
Согласено, но...
>нахуй тебе Dapper
пару примеров с Даппером все же сделать стоит, просто, чтобы понимать суть и если на собесе спросят, хоть что-то сказать.
>все нестандартные DI-контейнеры на хуй
Тоже согласен, но стоит хотя бы чуть-чуть Autofac пощупать, по той же причине, что и dapper. Т.к. он много где еще используется. Все остальное вроде нинжекта или юнити мертво.
на 29 символе уже пиздос.
Но почему так происходит?
Я так понимаю оно находит один знак, потом 2 знака потом 3 и тд и тп, все это подходит под регулярку. Но почему время увеличивается каждый раз в 2 раза? Ведь в первый раз тоже идет повторения символов и время не увеличивается.
Я тут то, что вы указали, позатирал.
https://imgur.com/aFE965P
Гляньте позязя, что ещё лишнее?
Вот этот вот тестинг, микросервисы? Семь фреймворков для логов? Может одного хватит, а?
Дык там вроде регулярка у них кривая. Там звёздочка на звёздочке сидит, вон, левая звёздочка после буквы идёт, а следом за ней тоже буква может быть, вот оно с ума и сходит, не зная, чем букву считать, тем, что под первой звёздочкой /w, или тем, что после неё в квадратных скобках A-Z. Наверное. Ну я бы так не писал. Регулярку надо переписать. И вообще, вы вот говорите, что без опыта меня нахуй пошлют, но я бы писал регулярку так, чтобы оно парсилось как LL-1. Ну то есть слева направо по одному символу, либо однозначно ругалось, что это не оно. А тут оно пытается и так, и сяк определить, где какая часть, а ни один вариант не подходит.
Ну то есть надо примерно так: [0-9A-Z][0-9A-Z_-.]*, да и всё. Ну я не помню, как оно там правильно пишется, это по памяти просто, в общем, суть понятна, я думаю. Тут если символ подходит, то подходит. Если не подходит, то не подходит, и никаких других вариантов нет. Потому что звёздочка, очевидно, работает как LL1, а не LR1, по логике. Ну как бы первое совпадение выражения под звёздочкой будет со второй буквой, потом с третьей, потом с четвёртой, а не наоборот.
А в той кривой регулярке - бля, ну сложно объяснить, в общем, из-за вот этого куска, в котором за опциональной буквой следует ещё буква, не опциональная, это порождает неоднозначность, которую, видно, разрешить нельзя, пока все варианты не переберёшь. Когда есть мэтч, то достаточно одного варианта, и всё, мэтч он и есть мэтч. А когда мэтча ни один из вариантов не достигает, уходит по четырнадцать секунд, если я правильно понял. Чтобы перебрать все варианты, и убедиться, что мэтча не будет в итоге ни с одним из них.
Там, кстати, написано, что это специально криво написанная регулярка, которую в реальных проектах использовать нельзя.
C# учить начинай с 7-й версии, чтобы не забивать голову новым сахаром. Потом уже когда будешь ориентироваться в языке, прочтешь что нового добавили в 8-й и 9-й версии. Плюс 7-я версия дружит с .NetFramework и если вдруг придется иметь с ним дело, будет не так больно.
То же самое с Core. Учи с версии 3.1 т.к. практически везде сейчас она. На .net5 никто не переходил, т.к. он не LTS и все ждали 6-й. А на 6-й еще никто не переходил, т.е. он вот только вышел.
SQL. Сначала основной синтаксис, простые запросы (это включая JOIN-ы), констрейны и индексы. Индексы обязательны, про них на каждом собесе спрашивают. Хранимки и триггеры - обычно достаточно понимания что это и их плюсы/минусы
ASP.NET
На Razor как уже сказали забей. MVC в последнюю очередь. В первую очередь сам middleware, web-api, фильтры, настройки, маршруты, параметры и т.д.
По SOLID-у если совсем не понимаешь, что это - посмотри Немчинского, у него есть серия видео где он каждую букву разжевывает.
Главное запомни по букве D, что DI это всего лишь один из видов IoC, а не единственный.
В DI контейнерах зря стер родной майкросовтовский IServiceCollection. Его учи в первую очередь, а уже потом Autofac щупай.
В базах данных еще почитай для общего развития, что такое SQLite и в чем ее отличие от остальных реляционных баз. Ну и на будущее советую ее освоить, крайне хорошая штука если соберешься пилить свои проекты.
Логгирование - Nlog. Это сейчас стандарт, кроме него я пока ничего и не встречал.
API - в первую очередь HTTP, REST.
Маппинг - Automapper, остальное не пробовал.
Task Scheduling - обязательно изучи Quartz
В ветке Testing, только ветку Unit Testing и то что помечено красными флажками плюс Nunit. Все остальное только в ознакомительных целях. Для тестирования WebApi обязательно изучить PostMan (в нем кстати так же можно и юнит и автотесты делать)
MSTest - мертв.
CI/CD я бы посоветовал изучить Docker и принципы контейнеризации. На остальное забить, т.к. сильно зависит от проекта куда попадешь.
Дальше лень расписывать.
C# учить начинай с 7-й версии, чтобы не забивать голову новым сахаром. Потом уже когда будешь ориентироваться в языке, прочтешь что нового добавили в 8-й и 9-й версии. Плюс 7-я версия дружит с .NetFramework и если вдруг придется иметь с ним дело, будет не так больно.
То же самое с Core. Учи с версии 3.1 т.к. практически везде сейчас она. На .net5 никто не переходил, т.к. он не LTS и все ждали 6-й. А на 6-й еще никто не переходил, т.е. он вот только вышел.
SQL. Сначала основной синтаксис, простые запросы (это включая JOIN-ы), констрейны и индексы. Индексы обязательны, про них на каждом собесе спрашивают. Хранимки и триггеры - обычно достаточно понимания что это и их плюсы/минусы
ASP.NET
На Razor как уже сказали забей. MVC в последнюю очередь. В первую очередь сам middleware, web-api, фильтры, настройки, маршруты, параметры и т.д.
По SOLID-у если совсем не понимаешь, что это - посмотри Немчинского, у него есть серия видео где он каждую букву разжевывает.
Главное запомни по букве D, что DI это всего лишь один из видов IoC, а не единственный.
В DI контейнерах зря стер родной майкросовтовский IServiceCollection. Его учи в первую очередь, а уже потом Autofac щупай.
В базах данных еще почитай для общего развития, что такое SQLite и в чем ее отличие от остальных реляционных баз. Ну и на будущее советую ее освоить, крайне хорошая штука если соберешься пилить свои проекты.
Логгирование - Nlog. Это сейчас стандарт, кроме него я пока ничего и не встречал.
API - в первую очередь HTTP, REST.
Маппинг - Automapper, остальное не пробовал.
Task Scheduling - обязательно изучи Quartz
В ветке Testing, только ветку Unit Testing и то что помечено красными флажками плюс Nunit. Все остальное только в ознакомительных целях. Для тестирования WebApi обязательно изучить PostMan (в нем кстати так же можно и юнит и автотесты делать)
MSTest - мертв.
CI/CD я бы посоветовал изучить Docker и принципы контейнеризации. На остальное забить, т.к. сильно зависит от проекта куда попадешь.
Дальше лень расписывать.
> Джун сейчас - это, как раз, с опытом. А без опыта это бесплатный стажер.
А никуда этих стажёров не берут, нет для них мест.
Вот я согласен пойти ради самообучения за копейки работать. Ну 15к будет достаточно, всё-таки хоть что-то я умею, не из кассиров или таксистов прихожу, какой-то говнокод для себя или по работе сисадмином писать приходилось. Единственное условие - удалёнка. И что? Нихуя вариантов нет, вот просто нет. На хх резюме - нихуя! Линкедин - нихуя! Все ждут джунов с опытом и знанием всего назубок. Какие-то охуительные истории.
> Ну вот тебе джун. А вы на хуй посылаете.
Это не я посылаю, это текущая обстановка. Я разработчик и наймом не занимаюсь.
> Это вместе с Razor pages/components или который template engines?
Всё вместе. Это не используется нигде. А где используется, туда не надо идти.
>>243530
Мне тоже было тяжело вкатываться после универа без опыта. Советов для тебя нет. В жизни так бывает, что что-то не получается легко.
> Какие-то охуительные истории.
Найм джунов дорогой. В прошлой моей компании искали джунов (так и вкатился), но один джун стоит просеивания сотни откликов, проверки тридцати тестовых заданий и примерно пятнадцати технических собеседований. Причем, тестовые задания перестали адекватно отсеивать левых ребят, потому что в прошлом году появилось много интересных личностей, которые заказывают выполнение тестовых у какого-нибудь синьора, а потом на собесе FizzBuzz решить не могут и сказать, чем JSON от XML отличается.
Вот на текущем месте у меня джунов и не ищут. Ты бы на месте бизнеса тоже не хотел делать больше работы за меньший профит.
Эти книги не для новичков. Лучше начинать с Прайса или Троелсена. Хотя первая - галопом по европам, а вторая - унылая и скучная. Хороших книг как в джаве нет.
Добро пожаловать в 2021. Такая вот сейчас ситуация на рынке.
Если попытаться описать по слоям то получается так.
1) У бизнеса резко возросла потребность в разрабах. Причем скачкообразно. Частично по объективным причинам (локдаун, уход сферы услуг у удаленку и т.д.), частично по искусственным (пузырь-пузырек). Потребность намного превышает, то количество девелоперов, которое есть на рынке.
2) Появилось достаточно много интеграторов-аутсорсеров, которые просто выгребают всех разрабов, держат их у себя и перепродают их трудочасы бизнесу. Это и большие конторы вроде епама-люксофта, так и куча мелких. Они еще сильнее иссушают предложение по рабочей силе.
3) Далее идут инфоцыгане и общий информационных шум вида "войти в айти", благодаря которому на рынок труда вылезает много недоджунов-недостажеров. Которые как разрабы ничего из себя не представляют и их после курсов "мы научим вас за полгода всему", нужно будет еще года 2-3 обучать и не факт что из них хоть, что-то выйдет.
4) Следствие этого - найм джунов стал очень дорогим мероприятием. Нужно обработать очень большой объем кандидатов, потратить кучу времени нормальных разрабов на их собеседование, а потом еще и на дообучение. И офигенные риски на то, что он после обучения свалит, ну или тупо необучаемый.
Т.е. вот это твое:
>Вот я согласен пойти ради самообучения за копейки работать. Ну 15к будет достаточно, всё-таки хоть что-то я умею,
означает, что в тебя будет вбухано бабла тысяч на 300...500 в месяц, а потом еще и не факт, что все это отобьется. При таких условиях бизнесу проще пойти к интегратору и оплатить ему работу разрабов, чем самому пердолиться с новичками.
Проблема не в том, чтобы тебе заплатить эти 15, 50 или даже 100 тысяч. А в том, что ты слишком рисковый актив получаешься и пока тебя такого "хорошего и умного" найдут и ты начнешь приносить прибыль, можно миллионы в воздух выкинуть.
-----
Вот поэтому таких вакансий для вкатунов сейчас исчезающе мало.
>Все ждут джунов с опытом и знанием всего назубок.
Да. Именно так. Еще раз: добро пожаловать в 2021.
Добро пожаловать в 2021. Такая вот сейчас ситуация на рынке.
Если попытаться описать по слоям то получается так.
1) У бизнеса резко возросла потребность в разрабах. Причем скачкообразно. Частично по объективным причинам (локдаун, уход сферы услуг у удаленку и т.д.), частично по искусственным (пузырь-пузырек). Потребность намного превышает, то количество девелоперов, которое есть на рынке.
2) Появилось достаточно много интеграторов-аутсорсеров, которые просто выгребают всех разрабов, держат их у себя и перепродают их трудочасы бизнесу. Это и большие конторы вроде епама-люксофта, так и куча мелких. Они еще сильнее иссушают предложение по рабочей силе.
3) Далее идут инфоцыгане и общий информационных шум вида "войти в айти", благодаря которому на рынок труда вылезает много недоджунов-недостажеров. Которые как разрабы ничего из себя не представляют и их после курсов "мы научим вас за полгода всему", нужно будет еще года 2-3 обучать и не факт что из них хоть, что-то выйдет.
4) Следствие этого - найм джунов стал очень дорогим мероприятием. Нужно обработать очень большой объем кандидатов, потратить кучу времени нормальных разрабов на их собеседование, а потом еще и на дообучение. И офигенные риски на то, что он после обучения свалит, ну или тупо необучаемый.
Т.е. вот это твое:
>Вот я согласен пойти ради самообучения за копейки работать. Ну 15к будет достаточно, всё-таки хоть что-то я умею,
означает, что в тебя будет вбухано бабла тысяч на 300...500 в месяц, а потом еще и не факт, что все это отобьется. При таких условиях бизнесу проще пойти к интегратору и оплатить ему работу разрабов, чем самому пердолиться с новичками.
Проблема не в том, чтобы тебе заплатить эти 15, 50 или даже 100 тысяч. А в том, что ты слишком рисковый актив получаешься и пока тебя такого "хорошего и умного" найдут и ты начнешь приносить прибыль, можно миллионы в воздух выкинуть.
-----
Вот поэтому таких вакансий для вкатунов сейчас исчезающе мало.
>Все ждут джунов с опытом и знанием всего назубок.
Да. Именно так. Еще раз: добро пожаловать в 2021.
>Например? Из тех, которые в шарпе пофикшены? (помимо дженериков)
Вот подробное сравнение шарпа и джавы. https://ru.wikipedia.org/wiki/Сравнение_C_Sharp_и_Java
А там уже каждый сам решит, что в каком языке косяк или фича.
>Все ждут джунов с опытом и знанием всего назубок.
Скорее, ждут джунов из топ вузов и прочих аутистов с красными дипломами (да, да, настало время, когда цвет диплома из твоей шараги начал иметь значение, анон). Рынок реально перегрет, зарплаты у джунов со старта больше 100к.
>Скорее, ждут джунов из топ вузов и прочих аутистов с красными дипломами
Хм. Сомнительно. Сейчас в нормальных вузах уже курса с четвертого стоит очередь за толковыми стьюдентами. Причем это не только для айти-направлений, а для всех. Любых инженеров (электрика, крионика, станки и т.д.) разбирают еще на подлете к выпуску.
Сами после института работу ищут либо остатки которые не смогли за время учебы наработать практику и обзавестись связями, либо те кто разочаровался в выбранной профе, доучился и решил пойти в дургую сторону.
Человек с красным дипломом сразу после института на рынке труда вызывает скорее подозрение ("если ты такой хороший, почему до сих пор без работы")
>Джун сейчас - это, как раз, с опытом. А без опыта это бесплатный стажер.
Нет. Стажеров - я вообще не знаю, кто берет, какой-нибудь яндекс с епамом разве что. Джун с опытом на сегодняшнем рынке - это если только кто-то решившийся свичнуться после старта карьеры, у остальных - нет времени на раскачку, стране нужны программисты, берешь весло - и ебошишь, все свободное время тратя на самообразование, чтобы через год получить лычку мидла. Не нравится? - Вон из профессии.
>Сейчас в нормальных вузах уже курса с четвертого стоит очередь за толковыми стьюдентами.
Ну так отсюда и зарплаты по 100к со старта. Сразу после вуза - у большинства нет никакой наработанной практики или связей, и многие компании гребут всех подряд, под гребенку. Показал диплом, военник - и все, вы приняты, выходите с понедельника.
640x480, 0:13
>Стажеров - я вообще не знаю, кто берет, какой-нибудь яндекс с епамом разве что.
На самом деле много где. У кого-то есть свои программы. Кто-то на базе других курсов организует типа-проекты в которые отбирают учащихся и смотрят, что они из себя представляют на околобоевых задачах.
Такого чтобы кого-то взяли стажироваться куда-то и еще и з.п. ему платили, пусть даже минимальную, сейчас да - нету.
В большинстве случаев это либо бесплатно, либо стажирующийся платит конторе. И эти стажировки не являются гарантией того, что ты трудоустроишься.
К примеру у того же люксофта есть программы обучения и стажировок. Т.е. ты заплатишь бабки, пройдешь обучение, отстажируешься. А потом будешь проходить собеседование на общих основаниях. Плюсом будет то, что тебя будут обучать спецы именно из этой конторы и ты больше будешь знать о специфике этой конторы и знания у тебя будут те которые там нужны.
>Иди учи питон.
Я что-то не понял, почему они ищут делители до N/2, а не до квадратного корня из N? Ну, ОК, предположим это такая задача, где сторонние библиотеки с математикой использовать нельзя, ну заведи ты две переменных с пределом до которого нужно искать делители и квадратом этого предела, число для проверки на простоту стало больше квадрата предельной возможной величины делителя - добавляем к пределу единичку, вычисляем заново его квадрат, продолжаем. Чем больше N, тем больше профит.
Гречневый вкатыш без вышки, ты?
> Я что-то не понял, почему они ищут делители до N/2, а не до квадратного корня из N?
Потому что был для примера взят простой алгоритм без оптимизаций, которые ещё отдельно нужно объяснять.
Пусть страдают. Мне вообще этих буржуёв не жалко.
"К сожалению, пока не хватает опыта делать качественный код " и все. Никаких пояснений по тестовому.
Мб есть тут бати которые не против чекнуть мой говнокод и сказать где там некачественно?...
>Мб есть тут бати которые не против чекнуть мой говнокод и сказать где там некачественно?.
А там много? Кинь пример на pastebin, я посмотрю.
А вот тут мне тоже интересно стало, что тут плохо, ибо я плюс-минус так же бы написал. Разве что строки вынес в константы и LoadData разбил бы, чтоб не мешать всё в одну кучу.
мимокрокодил, не тянущий даже на стажера
Они твой код уже продали кому-то. Надо было перед тестовым сразу говорить, что сделаешь только за деньги. Сейчас много таких разводил бродит и эксплуатирует глупых вкатунов.
>Задание в ридми
Тут плохо всё. Ну не так чтобы совсем всё, но близко к тому.
Во-первых, где MVVM (в любом понимании), какого чёрта бизнес-логика делает в CodeBehind окна?
Во-вторых, разметка XAML ужасна. Вёрстка margin'ами - это несерьёзно. Есть ещё более мелкие правонарушения вроде комментариев на русском, не вынесенных в ресурсы строках, которые могут быть локализованы и т.д. и т.п.
В-третьих, почему у тебя в одном файле сразу куча классов?
Тут придираться можно много к чему, просто смысла вдаваться в подробности и что-то объяснять, пока ты не понимаешь самых базовых вещей о том, как должно выглядеть приложение, которое можно отправить в продакшен, я не вижу.
>>243914
>А вот тут мне тоже интересно стало, что тут плохо, ибо я плюс-минус так же бы написал.
MVVM, команда (где ICommand в любом виде?), вёрстка в XAML, общение с внешними сервисами, которые предоставляют данные о погоде и картинки, не вынесено в отдельные классы, к этим классам не описаны интерфейсы, буква D в слове SOLID тоже нигде не замечена.
>РРЯЯЯ нет книжки по авалонии и хауди хо по ней видосики не выпускал, как хелловоурлд сделоть(((
Когда еще не устроился на галеру, спокойно за пару часов запилил графическое приложение на авалонии и запустил на распберри, ничего сложного там нет. Но нужно же код скопипастить и чтобы все заработало.
В асп нет есть встроеный депенс енжектор IServiceProvider.
Ну вот это вот все services.AddTransient<IMessageSender, EmailMessageSender>();
А есть такое для консольных приложений? Ну в смысли библиотека отдельная.
Что бы в начале Main строку прописал и по всему коду можно было передавать интерфейсы а эта шняга создавала уже объекты нужных классов и передавала их.
Сенкс!!!
Вот так и знал что надо подождать, до MVVM пару глав в книге оставалось, а я чет сразу решил по шурику ебануть
Я вообще не понимаю зачем эти депенденси иньекторы существуют. Звучит как какая-то бесполезная херня, чтобы раздувать код ещё больше. Раньше писали код и всё работало, а теперь видите ли, чтобы отправить хтмл-страничку надо эту приблуду прикручивать. Я писал проекты на РНР и без этой ерунды и всё работало.
Ладно бы это всё было на уровне компиляции как препроцессор или сахар. Дак нет! Это говно жрёт ресурсы в рантайме. Кому-то лень самому создать объект и он хочет, чтобы ему фреймворк всё создавал на блюдечке. Ценность этой ерунды даже не нулевая, а отрицательная.
Профит в том что многие классы могут требовать одинаковые объекты классов.
https://habr.com/ru/company/piter/blog/508508/ тут хороший пример.
А представь будет 1000 вызовов разных классов.
Чего ты хочешь? Я не выкладывал это видео и я не автор этого видео, я дал очевидный ответ на твой вопрос.
>А есть такое для консольных приложений? Ну в смысли библиотека отдельная.
Чем благородного дона не устраивает тот же Ninject?
>>243987
>Я вообще не понимаю зачем эти депенденси иньекторы существуют. Звучит как какая-то бесполезная херня, чтобы раздувать код ещё больше. Раньше писали код и всё работало
Код принято делить на сущности, каждая из которых выполняет свою строго определённую функцию, когда таких сущностей становится много, то задача их инстанциирования становится весьма и весьма нетривиальной (чисто физически очень тяжело это руками каждый раз прописывать), поэтому появились фреймворки, которые делают всю грязную работу за погроммиста. Платить за это приходится производительностью: когда зависимостей становится действительно много (ну открываеш солюшен, а там больше ста проектов, например), то поиск по дереву зависимостей может занимать критичное для данного места время (я лично с таким не сталкивался), поэтому нужно иметь ввиду такую возможность: придётся создавать объекты ручками, чтобы не тормозило.
Не хочу тебя дизморалить, но, судя по коду, ты будешь минимально коммерчески пригоден не раньше чем через три месяца безустанного дрочения. Я не разбираюсь в десктопных приложениях, но могу сказать, что и нейминг, и структура, и общий подход у тебя отвратительны, какая-то грязная смесь дельфи и питона получается.
Про пару глав до MVVM -- это охуеть вообще. С MVVM стоило бы вообще начать. Складывается ощущение, что ты вообще не понимаешь, что делаешь. Системнее подойди к вопросу вкатывания.
>По SOLID-у если совсем не понимаешь, что это - посмотри Немчинского, у него есть серия видео где он каждую букву разжевывает.
>Главное запомни по букве D, что DI это всего лишь один из видов IoC, а не единственный.
Насколько я понимаю, DI в зависимости от контекста может переводиться и как инверсия зависимостей, и как внедрение зависимостей, а по смыслу инверсия означает IoC, а внедрение это один из методов достижения оного.
https://imgur.com/a/yv0bvTB
>Причем, тестовые задания перестали адекватно отсеивать левых ребят, потому что в прошлом году появилось много интересных личностей, которые заказывают выполнение тестовых у какого-нибудь синьора
Лол. А это мысль.
>а потом на собесе FizzBuzz решить не могут и сказать, чем JSON от XML отличается.
Ну это же и без опыта шарпирования известно всякому. json это json, xml это xml, кто ж их не видел? Правда если спросят, в чём разница, я вот так даже сходу хз, что сказать. Ну в xml сплошные атрибуты и ноды, и текст, как в html. А в json числа, словари и массивы ещё есть. xml используется для сохранения конфигов, ну типа списки координат или треков для gps-навигаторов например, а иногда для сохранения документов. Json в AJAX запросах часто передаётся, и по вебсокетам, бывает, гоняется. Это то, что хотят на собеседованиях услышать, или этого мало?
>>243616
>4) Следствие этого - найм джунов стал очень дорогим мероприятием. Нужно обработать очень большой объем кандидатов, потратить кучу времени нормальных разрабов на их собеседование, а потом еще и на дообучение. И офигенные риски на то, что он после обучения свалит, ну или тупо необучаемый.
>Т.е. вот это твое:
Ну а если сделать ход конём и вкатиться сразу мидлом?
Прийти, наврать, что отработал, скажем, пять лет в... Новосибирске, в конторе ООО Рога и копыта, делал там всякое, работал работу, платили рублями, в резюме что-то написать. При этом трудовую, допустим, потерял при переезде из Новосибирска, или вообще не оформляли, за чёрный нал, допустим, работал. Но всё умею и могу, нанимайте прямо сейчас и платите мне мидлозарплату.
Это реально?
>>Вот я согласен пойти ради самообучения за копейки работать. Ну 15к будет достаточно, всё-таки хоть что-то я умею,
>означает, что в тебя будет вбухано бабла тысяч на 300...500 в месяц, а потом еще и не факт, что все это отобьется.
Да ну? Поставить в углу офиса столик и кудахтер, ну максимум накормить бесплатными обедами - будет стоить 300 в месяц? Ты не преувеличиваешь? Я же не прошу мне персонального коуча выделить, дайте задачу, я решу, в процессе решения сам со всем разберусь. Скорее всего, даже ничего не поломаю. Ну проверите мой код перед слиянием, это вроде не бог весть какой объём работы помидора, чтобы прям 300 в месяц на меня одного ушло.
Мда, что-то безрадостные вы картины рисуете. Так где взять опыт, если его нет? Может, проще сразу на хуй пройти?
Точнее, вот у меня дохера опыта. Я знаю всякие басики (и даже на фокале писал, лол), asm, pascal, delpi, dbase/ребус, javascript, python, умею в git, линтеры, дебаггеры, знаю и умею дохуя всего, начиная с хэшей, многосвязных списков, хаффмановских деревьев, конечных автоматов, регулярочек, и заканчивая http, вебсокетами, json-ами, xml-ями, башем, хуяшем, lexx/yacc, автотесты, вот это вот всё.
Но с точки зрения рыночка я даже не джун, а стажёр, и меня заведомо не возьмут, так как трудовой у меня нет, и конкретной надроченности на какой-то конкретный язык у меня нет, и в резюме написать нехуй, так как программировал я для себя и то, что написал, оно как бы, ну довольно сложно, и работает, но не буду же я ходить по собеседованиям и говорить "а вот я десять лет назад игру написал на совершенно другом ныне хз кому нужном языке". При этом ни sql, ни докеров, ни какой-то такой хуйни я не использовал, не было надобности. Ну надо будет - я разберусь. Не понимаю, в чём принципиальное отличие sql от того же dbase, та же хуйня, только с utf-8. Просто скучно ковырять инструмент не имея какой-то задачи. Ну посоздавал я там ручками таблицы в админке, ну и чего? Я могу сказать, что это опыт создания и администрирования баз данных? Но ведь это же не совсем так. Это всё игрушки, базы по десять записей. Не, я могу и миллион записей туда накидать, только что это даст, без опыта решения конкретной задачи?
Плюс ещё возраст, я в силу возраста не могу сказать, что я вот только вчера закончил универ и поэтому безработный. Значит всё, что мне остаётся - это соврать. И, похоже, врать придётся что я как минимум мидл. Раз джуны никому не нужны. Как думаете, это реально?
Я понимаю, что обманывать нехорошо, но какие варианты-то?
>Причем, тестовые задания перестали адекватно отсеивать левых ребят, потому что в прошлом году появилось много интересных личностей, которые заказывают выполнение тестовых у какого-нибудь синьора
Лол. А это мысль.
>а потом на собесе FizzBuzz решить не могут и сказать, чем JSON от XML отличается.
Ну это же и без опыта шарпирования известно всякому. json это json, xml это xml, кто ж их не видел? Правда если спросят, в чём разница, я вот так даже сходу хз, что сказать. Ну в xml сплошные атрибуты и ноды, и текст, как в html. А в json числа, словари и массивы ещё есть. xml используется для сохранения конфигов, ну типа списки координат или треков для gps-навигаторов например, а иногда для сохранения документов. Json в AJAX запросах часто передаётся, и по вебсокетам, бывает, гоняется. Это то, что хотят на собеседованиях услышать, или этого мало?
>>243616
>4) Следствие этого - найм джунов стал очень дорогим мероприятием. Нужно обработать очень большой объем кандидатов, потратить кучу времени нормальных разрабов на их собеседование, а потом еще и на дообучение. И офигенные риски на то, что он после обучения свалит, ну или тупо необучаемый.
>Т.е. вот это твое:
Ну а если сделать ход конём и вкатиться сразу мидлом?
Прийти, наврать, что отработал, скажем, пять лет в... Новосибирске, в конторе ООО Рога и копыта, делал там всякое, работал работу, платили рублями, в резюме что-то написать. При этом трудовую, допустим, потерял при переезде из Новосибирска, или вообще не оформляли, за чёрный нал, допустим, работал. Но всё умею и могу, нанимайте прямо сейчас и платите мне мидлозарплату.
Это реально?
>>Вот я согласен пойти ради самообучения за копейки работать. Ну 15к будет достаточно, всё-таки хоть что-то я умею,
>означает, что в тебя будет вбухано бабла тысяч на 300...500 в месяц, а потом еще и не факт, что все это отобьется.
Да ну? Поставить в углу офиса столик и кудахтер, ну максимум накормить бесплатными обедами - будет стоить 300 в месяц? Ты не преувеличиваешь? Я же не прошу мне персонального коуча выделить, дайте задачу, я решу, в процессе решения сам со всем разберусь. Скорее всего, даже ничего не поломаю. Ну проверите мой код перед слиянием, это вроде не бог весть какой объём работы помидора, чтобы прям 300 в месяц на меня одного ушло.
Мда, что-то безрадостные вы картины рисуете. Так где взять опыт, если его нет? Может, проще сразу на хуй пройти?
Точнее, вот у меня дохера опыта. Я знаю всякие басики (и даже на фокале писал, лол), asm, pascal, delpi, dbase/ребус, javascript, python, умею в git, линтеры, дебаггеры, знаю и умею дохуя всего, начиная с хэшей, многосвязных списков, хаффмановских деревьев, конечных автоматов, регулярочек, и заканчивая http, вебсокетами, json-ами, xml-ями, башем, хуяшем, lexx/yacc, автотесты, вот это вот всё.
Но с точки зрения рыночка я даже не джун, а стажёр, и меня заведомо не возьмут, так как трудовой у меня нет, и конкретной надроченности на какой-то конкретный язык у меня нет, и в резюме написать нехуй, так как программировал я для себя и то, что написал, оно как бы, ну довольно сложно, и работает, но не буду же я ходить по собеседованиям и говорить "а вот я десять лет назад игру написал на совершенно другом ныне хз кому нужном языке". При этом ни sql, ни докеров, ни какой-то такой хуйни я не использовал, не было надобности. Ну надо будет - я разберусь. Не понимаю, в чём принципиальное отличие sql от того же dbase, та же хуйня, только с utf-8. Просто скучно ковырять инструмент не имея какой-то задачи. Ну посоздавал я там ручками таблицы в админке, ну и чего? Я могу сказать, что это опыт создания и администрирования баз данных? Но ведь это же не совсем так. Это всё игрушки, базы по десять записей. Не, я могу и миллион записей туда накидать, только что это даст, без опыта решения конкретной задачи?
Плюс ещё возраст, я в силу возраста не могу сказать, что я вот только вчера закончил универ и поэтому безработный. Значит всё, что мне остаётся - это соврать. И, похоже, врать придётся что я как минимум мидл. Раз джуны никому не нужны. Как думаете, это реально?
Я понимаю, что обманывать нехорошо, но какие варианты-то?
IoС - Inversion of Control - инверсия управления - один из принципов проектирования, позволяющий уменьшить связанность меду компонентами системы.
DI - это Dependenci Injection - принцип внедрение зависимостей. Один из способов реализации инверсии контроля.
Например самое просто - паттерн IRepository - тоже один из способов инверсии управления, но это не DI
Очень часто подразумевая IoС, говорят "инверсия зависимостей", что в некоторой (в некоторой) степени верно, но не отражает всей сути принципа. Поэтому очень часто и происходит путаница.
За остальной информацией в книги.
>Ну а если сделать ход конём и вкатиться сразу мидлом?
>Прийти, наврать, что отработал, скажем, пять лет в... Новосибирске, в конторе ООО Рога и копыта, делал там всякое, работал работу, платили рублями, в резюме что-то написать. При этом трудовую, допустим, потерял при переезде из Новосибирска, или вообще не оформляли, за чёрный нал, допустим, работал. Но всё умею и могу, нанимайте прямо сейчас и платите мне мидлозарплату.
>Это реально?
В теории можно если хорошо подвешен язык, ну и опять же на собеседующий будет уставший, а ты мало-мало сможешь на его вопросы ответить. Я х.з.
Но только ты на выполнении первой же таски обосрешься или даже еще раньше на разворачивании рабочей среды. И соответственно вылетишь в первый месяц испытательного срока.
Ну и так для сведения. Сейчас очень много где все выложенные резюме собираются в единые базы вроде FrendWorka или своих собственных и в следующий раз когда очередной HR будет рассматривать твое резюме, она обязательно пробъет тебя по базе, а там будет стоять пометка: "пиздобол, врет что мидл, а сам нихуя не знает" и отношение будет соответствующее. Отворачиваться никто конечно не будет, но на собесах ебать могут знатно.
> Лол. А это мысль.
Один хуй пояснить потом не сможешь ничего.
> Ну это же и без опыта шарпирования известно всякому.
Потому и спрашивают такую хуйню для разогрева.
> Это то, что хотят на собеседованиях услышать, или этого мало?
Хотят услышать, насколько по-человечески адекватно ты мыслишь и понимаешь. Капча -- не более того. Когда меня такое спрашивают, я просто говорю что-то в духе, что XML -- язык разметки, JSON -- формат для текстового представления JS-объектов, и в реальности используются для сериализации объектов и обмена данными между сервисами и внешними системами. Если будешь в банк собеседоваться, XML может потребоваться знать вглубь, ведь там куча хуйни вроде неймспейсов, XSLT и SOAP'а вокруг, но это уже довольно редкие частности.
> xml используется для сохранения конфигов, ну типа списки координат или треков для gps-навигаторов например, а иногда для сохранения документов. Json в AJAX запросах часто передаётся, и по вебсокетам, бывает, гоняется.
Вот тут хуйню какую-то несешь и сам себе грабли подготавливаешь на пути. Разницы между ними нет и хранить в них можно что угодно. Если собеседующий вахтер, то может насторожиться и заебать тебя уточнениями, в которых ты утонешь.
> Ну а если сделать ход конём и вкатиться сразу мидлом?
Ну попробуй. Меня на мидла, если не считать платину вроде ООП и SOLID, спрашивали о предыдущем опыте, фейлах, подводных камнях автомаппера, жизненном цикле типичной новой фичи/задачи, апкастах/даункастах, value objects, IQueryable, DI -- что угодно, но на всех собесах всё разное, поэтому к ним не подготовишься. Я и не готовился, в общем-то.
Ну вот спросят тебя, можно ли для структуры интерфейс реализовывать. Что ответишь?
>А есть такое для консольных приложений? Ну в смысли библиотека отдельная.
Да. И это все та же самая библиотека
Microsoft.Extensions.DependencyInjection. И к твоему сведению она не встроена в ASP.Net, а просто прикручена к шаблону. Ты если хочешь можешь создать ASP.Net приложение и без DI, только это будет совсем уж долбоебизм.
Ты так же добавляешь ее в свое консольное приложение создаешь ServiceCollection, запихиваешь в него все свои сервисы и затем дергаешь их через ServiceProvider.
И точно так же ты можешь сделать это и в WPF приложении, а так же в WinForms, а так же в любой другой залупе. Принцип абcолютно тот же самый.
>теперь видите ли, чтобы отправить хтмл-страничку надо эту приблуду прикручивать
Ну если тебе нужно только страничку отправить, то возможно, что прикручивание DI для тебя будет лишним.
А вот если тебе нужно принять запрос, обработать его. Проверить авторизацию. Дернуть данные из источника (причем это может быть как и обычная БД (постгрес, мускул или скулайн), а может и необычная. Потом дернуть файл (может локально, может удаленно, может из контейнера, х.з. ты не можешь знать откуда), потом дернуть криптографический сервис (может локальный, может удаленный), чтобы его подписать, потом все это вместе собрать применив по дороге несколько раз ебанутую бизнес и прочую логику. И вернуть все это в ответ на запрос. Вот когда ты для такой цепочки попрокидываешь вручную зависимости от класса, к классу, вот тогда и поймешь зачем нужен DI, который делает это все за тебя.
>но какие варианты-то?
Въебывать, учиться и пробовать.
У тебя сейчас установка "я нихуя не знаю, но хочу вкатиться в теплое местечко, а потом само пойдет".
Так не бывает. Вернее бывает, но в одном проценте из ста и ты явно в этот процент не попадаешь. Придется помаяться минимум год, чтобы начать что-то из себя представлять. Главное выкинь из головы установку из окружающего инфополя, что вкатиться в айти - это легко и приятно. Это не так.
>Но только ты на выполнении первой же таски обосрешься или даже еще раньше на разворачивании рабочей среды.
А почему? Ну ведь я новичок в проекте. Мне по-любому надо сначала изучить, где что лежит, над чем работаем, какие модули, где какой класс, что они делают... Никто же ведь не приходит с уже готовым знанием проекта. Ведь любой будет разбираться и вкатываться, даже если у него до хрена опыта? В чём я там могу обосраться хуже других?
А что ты имеешь в виду под разворачиванием рабочей среды? VS накатить? А это не одмины будут делать? Я могу, конечно, сам, могу и операционку сам переустановить (но ведь не дадут?), но разве нет какого-то уже готового набора инструментов для погромистов?
>И соответственно вылетишь в первый месяц испытательного срока.
Хочешь сказать, что я весь месяц только и буду, что обсираться?
Ну допустим даже обосрусь. Пойду опять на собеседование и буду втирать уже про то, что работал пять лет и один месяц, а не пять лет, и приплюсую к своему "стеку технологий" всё, что на первом месте повидал хоть краем глаза.
Допустим, обосрусь ещё раз. Допустим, снова пойду на собеседование и снова навру, в третий раз. Не может же быть такого, что в какой-то момент уже весь город будет знать, что я только и умею, что обсираться? Да и почему я должен продолжать обсираться на протяжении трёх месяцев подряд?
Неужели вы там космические технологии разрабатываете, с которыми вкатуну никак не совладать?
>Ну и так для сведения. Сейчас очень много где все выложенные резюме собираются в единые базы вроде FrendWorka или своих собственных и в следующий раз когда очередной HR будет рассматривать твое резюме, она обязательно пробъет тебя по базе, а там будет стоять пометка: "пиздобол, врет что мидл, а сам нихуя не знает" и отношение будет соответствующее. Отворачиваться никто конечно не будет, но на собесах ебать могут знатно.
А это не нарушение законов об охране персональных данных? А что если дать хрюше шоколадку, с тем условием, чтобы она там написала в этой базе, что я охуенный мидл, почти помидор?
>>244081
>> Лол. А это мысль.
>Один хуй пояснить потом не сможешь ничего.
Ну нет. Я же изучу, что я понесу предъявлять. Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
>> Ну это же и без опыта шарпирования известно всякому.
>Потому и спрашивают такую хуйню для разогрева.
А потом?
Ну спросят меня про какой-нибудь транклюкатор, про который я впервые слышу, а я скажу, что ни разу этим не пользовался, как-то не доводилось, другие делали, а я просто рядом стоял и поэтому не помню, разве же всё упомнишь?
>> xml используется для сохранения конфигов, ну типа списки координат или треков для gps-навигаторов например, а иногда для сохранения документов. Json в AJAX запросах часто передаётся, и по вебсокетам, бывает, гоняется.
>Вот тут хуйню какую-то несешь и сам себе грабли подготавливаешь на пути. Разницы между ними нет и хранить в них можно что угодно. Если собеседующий вахтер, то может насторожиться и заебать тебя уточнениями, в которых ты утонешь.
А какими уточнениями, например? Ну спросит - я отвечу. Ну вот спроси. Не будет же он меня про неймспейсы спрашивать, про которые я, конечно же, не знаю?
Вот мне надо создать json. Беру библиотеку, там какая-нибудь функция вроде object_to_json, (в каждом языке своя, допустим, я последние три года больше на похапэ программировал, а шарп самую малость подзабыл, но вспомню бля ваще не вопрос, я же не лох какой-то, чтобы наизусть все константы помнить) получаю строку, которую пихаю в запрос или в ответ на запрос. А что надо знать ещё про json? Разве недостаточно просто знать, что он есть и его можно использовать при необходимости? Как и XML? Ну выбрал кто-то XML для хранения каких-то данных. Нам надо с ними работать. Берём и работаем. Опять же, есть библиотеки, которые позволяют эти данные распарсить. Надо - сам распарсить могу. Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
>> Ну а если сделать ход конём и вкатиться сразу мидлом?
>Ну попробуй. Меня на мидла, если не считать платину вроде ООП и SOLID,
Ну я же знаю, что такое ООП. Ну могу зазубрить и про солид, рассказать эти пять принципов. Принцип единственной ответственности, принцип подстановки какой-то Лисков (кто это вообще?), инверсия зависимостей, это так важно? Ну подучу прям наизусть.
Что там я ещё забыл? Разделение интерфейсов. Не пихать много интерфейсов в один интерфейс. Ну это как бы очевидно же, разве нет?
И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public, и вне методов класса пользоваться надо только public, чтобы случайно не выстрелить себе в ногу из-за внезапного изменения особенностей реализации private методов.
>спрашивали о предыдущем опыте,
Ну делал всякое, там, писал программы, вот это всё. Ну там ещё комитили постоянно, а потом хуяк-хуяк и в продакшн. Не? Так не покатит? А как надо?
>фейлах,
Да мало ли в жизни неудач? Ну вот, допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается, так как в результате рекурсивного анализа следствие вышло на самого себя. Переделали в итеративный вид, когда анализатор пробегал по всему графу последовательно, а не вглубь, и либо принимал решение сразу, либо оставлял на потом. Часть вершин успешно обсчитали, а часть осталась в "зацикленной" области. Но её потом тоже обсчитали, изобретя другой способ оценки, который стал возможен именно благодаря тому, что у нас появились данные об итерациях. Подробнее рассказать не могу, подписывал соглашение о неразглашении.
Покатит такое враньё?
Или надо прямо конкретно с примерами? А если не было фейлов? Ну не было фейлов, и всё. Ну сервер однажды со стола уронили, восстанавливали потом три часа из бэкапов.
>подводных камнях автомаппера,
Про это ничего не скажу, пока не в курсе.
>жизненном цикле типичной новой фичи/задачи,
Это что имеется в виду?
Ну вот пользователи требуют фичу у поддержки. Поддержка или кто-то там предлагает это реализовать. Думаем, можем ли это сделать, сколько это ресурсов займёт и насколько будет полезно. Делаем какую-то там пометочку в todo list (хз какой вы там софт используете, надо бы погуглить). Кто-то берётся и делает. Создаёт новую ветку в гите. Ну что там дальше, ответственный за задачу эскизно решает проблему, что дано, что надо получить, что для этого надо сделать, какие классы, какие методы. Пишем наборы тестовых данных, определяем, что должны в итоге получить. Пишем процедуры, которые делают задуманное, проверяем их на каждом наборе тестовых данных. Приделываем эту процедуру к реальному проекту. Каждое утро ветку ребейзим на девелоп. Написали, смержили. Показываем, что всё работает. Утверждаем, что задача решена. Пушим в девелоп, а потом в мастер. Потом хуяк-хуяк и в продакшн.
А если меня перебьют и спросят "что-что вы несёте?", всегда можно сказать "Ну у нас в ООО Рога и копыта был свой собственный подход, таковы были требования руководства, я не настаиваю, что это единственно возможный вариант".
Прокатит?
>апкастах/даункастах, value objects, IQueryable, DI -- что угодно, но на всех собесах всё разное, поэтому к ним не подготовишься. Я и не готовился, в общем-то.
Ну тут, конечно, я ни слова не понял, но прочитав прайсовскую книжку по сишарпу-то найду, что сказать? Или нет?
>Ну вот спросят тебя, можно ли для структуры интерфейс реализовывать. Что ответишь?
Структура это тип данных в шарпе? Я в шарпе ноль. Но я же книжку почитаю. А так по идее интерфейсы это для классов, чтобы реализовать подобие множественного наследования, но не множественное наследование, так как множественное наследование это почти всегда бардак и макароны. Про это речь? Ну и вот если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
Ну а ответ на вопрос про структуру и интерфейс - ткну пальцем в небо и отвечу, что нет, так как интерфейс подразумевает работу с методами, которых у структуры нет. С другой стороны, во многих языках все типы данных - классы, и значит интерфейс можно хоть к integer приделать, если необходимо, но зачем?
Это канает за ответ или вообще не канает?
>Но только ты на выполнении первой же таски обосрешься или даже еще раньше на разворачивании рабочей среды.
А почему? Ну ведь я новичок в проекте. Мне по-любому надо сначала изучить, где что лежит, над чем работаем, какие модули, где какой класс, что они делают... Никто же ведь не приходит с уже готовым знанием проекта. Ведь любой будет разбираться и вкатываться, даже если у него до хрена опыта? В чём я там могу обосраться хуже других?
А что ты имеешь в виду под разворачиванием рабочей среды? VS накатить? А это не одмины будут делать? Я могу, конечно, сам, могу и операционку сам переустановить (но ведь не дадут?), но разве нет какого-то уже готового набора инструментов для погромистов?
>И соответственно вылетишь в первый месяц испытательного срока.
Хочешь сказать, что я весь месяц только и буду, что обсираться?
Ну допустим даже обосрусь. Пойду опять на собеседование и буду втирать уже про то, что работал пять лет и один месяц, а не пять лет, и приплюсую к своему "стеку технологий" всё, что на первом месте повидал хоть краем глаза.
Допустим, обосрусь ещё раз. Допустим, снова пойду на собеседование и снова навру, в третий раз. Не может же быть такого, что в какой-то момент уже весь город будет знать, что я только и умею, что обсираться? Да и почему я должен продолжать обсираться на протяжении трёх месяцев подряд?
Неужели вы там космические технологии разрабатываете, с которыми вкатуну никак не совладать?
>Ну и так для сведения. Сейчас очень много где все выложенные резюме собираются в единые базы вроде FrendWorka или своих собственных и в следующий раз когда очередной HR будет рассматривать твое резюме, она обязательно пробъет тебя по базе, а там будет стоять пометка: "пиздобол, врет что мидл, а сам нихуя не знает" и отношение будет соответствующее. Отворачиваться никто конечно не будет, но на собесах ебать могут знатно.
А это не нарушение законов об охране персональных данных? А что если дать хрюше шоколадку, с тем условием, чтобы она там написала в этой базе, что я охуенный мидл, почти помидор?
>>244081
>> Лол. А это мысль.
>Один хуй пояснить потом не сможешь ничего.
Ну нет. Я же изучу, что я понесу предъявлять. Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
>> Ну это же и без опыта шарпирования известно всякому.
>Потому и спрашивают такую хуйню для разогрева.
А потом?
Ну спросят меня про какой-нибудь транклюкатор, про который я впервые слышу, а я скажу, что ни разу этим не пользовался, как-то не доводилось, другие делали, а я просто рядом стоял и поэтому не помню, разве же всё упомнишь?
>> xml используется для сохранения конфигов, ну типа списки координат или треков для gps-навигаторов например, а иногда для сохранения документов. Json в AJAX запросах часто передаётся, и по вебсокетам, бывает, гоняется.
>Вот тут хуйню какую-то несешь и сам себе грабли подготавливаешь на пути. Разницы между ними нет и хранить в них можно что угодно. Если собеседующий вахтер, то может насторожиться и заебать тебя уточнениями, в которых ты утонешь.
А какими уточнениями, например? Ну спросит - я отвечу. Ну вот спроси. Не будет же он меня про неймспейсы спрашивать, про которые я, конечно же, не знаю?
Вот мне надо создать json. Беру библиотеку, там какая-нибудь функция вроде object_to_json, (в каждом языке своя, допустим, я последние три года больше на похапэ программировал, а шарп самую малость подзабыл, но вспомню бля ваще не вопрос, я же не лох какой-то, чтобы наизусть все константы помнить) получаю строку, которую пихаю в запрос или в ответ на запрос. А что надо знать ещё про json? Разве недостаточно просто знать, что он есть и его можно использовать при необходимости? Как и XML? Ну выбрал кто-то XML для хранения каких-то данных. Нам надо с ними работать. Берём и работаем. Опять же, есть библиотеки, которые позволяют эти данные распарсить. Надо - сам распарсить могу. Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
>> Ну а если сделать ход конём и вкатиться сразу мидлом?
>Ну попробуй. Меня на мидла, если не считать платину вроде ООП и SOLID,
Ну я же знаю, что такое ООП. Ну могу зазубрить и про солид, рассказать эти пять принципов. Принцип единственной ответственности, принцип подстановки какой-то Лисков (кто это вообще?), инверсия зависимостей, это так важно? Ну подучу прям наизусть.
Что там я ещё забыл? Разделение интерфейсов. Не пихать много интерфейсов в один интерфейс. Ну это как бы очевидно же, разве нет?
И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public, и вне методов класса пользоваться надо только public, чтобы случайно не выстрелить себе в ногу из-за внезапного изменения особенностей реализации private методов.
>спрашивали о предыдущем опыте,
Ну делал всякое, там, писал программы, вот это всё. Ну там ещё комитили постоянно, а потом хуяк-хуяк и в продакшн. Не? Так не покатит? А как надо?
>фейлах,
Да мало ли в жизни неудач? Ну вот, допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается, так как в результате рекурсивного анализа следствие вышло на самого себя. Переделали в итеративный вид, когда анализатор пробегал по всему графу последовательно, а не вглубь, и либо принимал решение сразу, либо оставлял на потом. Часть вершин успешно обсчитали, а часть осталась в "зацикленной" области. Но её потом тоже обсчитали, изобретя другой способ оценки, который стал возможен именно благодаря тому, что у нас появились данные об итерациях. Подробнее рассказать не могу, подписывал соглашение о неразглашении.
Покатит такое враньё?
Или надо прямо конкретно с примерами? А если не было фейлов? Ну не было фейлов, и всё. Ну сервер однажды со стола уронили, восстанавливали потом три часа из бэкапов.
>подводных камнях автомаппера,
Про это ничего не скажу, пока не в курсе.
>жизненном цикле типичной новой фичи/задачи,
Это что имеется в виду?
Ну вот пользователи требуют фичу у поддержки. Поддержка или кто-то там предлагает это реализовать. Думаем, можем ли это сделать, сколько это ресурсов займёт и насколько будет полезно. Делаем какую-то там пометочку в todo list (хз какой вы там софт используете, надо бы погуглить). Кто-то берётся и делает. Создаёт новую ветку в гите. Ну что там дальше, ответственный за задачу эскизно решает проблему, что дано, что надо получить, что для этого надо сделать, какие классы, какие методы. Пишем наборы тестовых данных, определяем, что должны в итоге получить. Пишем процедуры, которые делают задуманное, проверяем их на каждом наборе тестовых данных. Приделываем эту процедуру к реальному проекту. Каждое утро ветку ребейзим на девелоп. Написали, смержили. Показываем, что всё работает. Утверждаем, что задача решена. Пушим в девелоп, а потом в мастер. Потом хуяк-хуяк и в продакшн.
А если меня перебьют и спросят "что-что вы несёте?", всегда можно сказать "Ну у нас в ООО Рога и копыта был свой собственный подход, таковы были требования руководства, я не настаиваю, что это единственно возможный вариант".
Прокатит?
>апкастах/даункастах, value objects, IQueryable, DI -- что угодно, но на всех собесах всё разное, поэтому к ним не подготовишься. Я и не готовился, в общем-то.
Ну тут, конечно, я ни слова не понял, но прочитав прайсовскую книжку по сишарпу-то найду, что сказать? Или нет?
>Ну вот спросят тебя, можно ли для структуры интерфейс реализовывать. Что ответишь?
Структура это тип данных в шарпе? Я в шарпе ноль. Но я же книжку почитаю. А так по идее интерфейсы это для классов, чтобы реализовать подобие множественного наследования, но не множественное наследование, так как множественное наследование это почти всегда бардак и макароны. Про это речь? Ну и вот если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
Ну а ответ на вопрос про структуру и интерфейс - ткну пальцем в небо и отвечу, что нет, так как интерфейс подразумевает работу с методами, которых у структуры нет. С другой стороны, во многих языках все типы данных - классы, и значит интерфейс можно хоть к integer приделать, если необходимо, но зачем?
Это канает за ответ или вообще не канает?
>Ну вот спросят тебя, можно ли для структуры интерфейс реализовывать. Что ответишь?
Можно, но рот в говне будет.
>А что ты имеешь в виду под разворачиванием рабочей среды?
Запустить проект со всеми зависимостями например. Скажут тебе keycloak какой-нибудь развернуть в докере и настроить локально( там как раз с аспнетом есть подводные камни).
>Ну могу зазубрить и про солид, рассказать эти пять принципов.
Зазубрить ты сможешь, но если потный разраб задаст вопрос на понимание(а без опыта разработки и натыкания на проблемы, которые солид и паттерны решают, ты их с 99% вероятностью не поймешь) ты сядешь в лужу. С джуна требовать солид и паттерны вообще долбоебизм как по мне, как и тдд. По моему опыту общению с сеньорами на галере, они обычно заворачивают челов, которые пытаются козырять поверхностными знаниями.
>Скажут тебе keycloak какой-нибудь развернуть в докере и настроить локально( там как раз с аспнетом есть подводные камни).
А девопсы чем тогда заниматься будут?
Девопс будет каждому программисту жопу подтирать, когда ему для разработки нужно локально развернуть какой-нибудь новый сервис? С таким подходом на каждого программиста нужног будет по девопсу, который будет стоять за спиной и решать все проблемы с корзиночкой, который бедный не может докерфайл написать. Понятное дело, бизнес не будет нанимать столько девопса, а просто нахер пошлет некомпетентного вкатуна.
>И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public, и вне методов класса пользоваться надо только public, чтобы случайно не выстрелить себе в ногу из-за внезапного изменения особенностей реализации private методов.
Ну вот уже и обсер. Open-Close принцип не про это.
>Девопс будет каждому программисту жопу подтирать, когда ему для разработки нужно локально развернуть какой-нибудь новый сервис?
Очевидно же, что нет. Девопс - выстроит пайплайн, подтирающий каждому программисту жопу. Ну а так да, если у программиста грязная жопа - виноват именно девопс.
> Главное выкинь из головы установку из окружающего инфополя, что вкатиться в айти - это легко и приятно. Это не так.
А как? Что есть "въёбывать", если меня не будут рассматривать даже как бесплатного стажёра?
А что, мой частный опыт это вообще ноль? То есть ты можешь написать дохуя разных программ, в том числе и не самых простых, но без записи в трудовой ты хрен с горы? Поэтому это не считается за вкат? Ну мне же не надо объяснять, что такое эксепшн или регексп. Почему я не могу просто начать писать код? Пусть сначала простые задачи, пусть сначала кривовато, ну так и что, за годик со всем разберусь, и буду понимать что к чему ни хуже любого другого погромиста из данной конторы.
Ведь никто из вас не знает ничего такого, в чём не смог бы разобраться я. Ну не маги вы, и не волшебники, и не боги горшки обжигают. И я мог бы делать всё то, что делаете вы. Кто-то другой, может, и не смог бы. А я смог бы. И не хуже вас.
Но почему я должен ходить по собеседованиям и проситься поработать забесплатно, только чтобы доказать, что я что-то могу? Это же абсурд. Сами ноют, что спецов нет, и сами же не берут тех, кто готов работу спеца выполнять. Пусть не мгновенно, пусть не сразу, пусть пока только на словах, пусть я даже обосрусь, пусть я даже неделю, месяц, год буду обсираться и делать всё через жопу, так, что половину придётся переделывать. Я же не прошу сразу зарплату 300к. Меня устроят и символические 50к. Я просто сам уйду, если вкачусь, всё освою, буду делать дохуя, а платить мне будут меньше других, поэтому сами поднимете и станете упрашивать, чтобы я остался и доделывал эту вашу хуйню. И я знаю, что так было бы. Не могло бы быть иначе.
Но нет, меня почему-то не возьмут. Скажут, что изначально дипломом, возрастом, рылом не вышел. Да ещё в какие-то базы добавят с пометками "много пиздит".
Ну хрен знает.
На собесах специально талантливых валят, потому что боятся конкуренции. Они прекрасно знают, что их преимущество лишь в том, что они успели залезти в айти, хотя были ещё большими тупнями. Теперь они боятся, что молодые их вытеснят.
У девопса внезапно есть куча более приоритетных задач, чем разбираться, почему вкатун не смог пару строчек в терминале вбить. Разница между тем, чтобы нанять еще пару девопсов или нанимать более компетентных вкатунов, для кабанчика вполне очевидна. Поэтому вкатун идет нахуй.
Ну, что я вижу:
1. Комменты на русском - сразу нахуй. Либо не пиши их вовсе, либо пиши на человеческом языке.
2. Статииа в классе главного окна. Что будет, если мы решим сделать это окно частью другого приложения? Придумал на 11/10 короче
3. if-else - сразу нахуй. Пиши так, чтобы не нужно было else использовать
4. Логика не разбита на сущности. С хуя у тебя вообще MainWindow - загружает данные, знает откуда загружать и вообще все остальное делает. Блядь. Это ОКНО. Оно должно за ОКНО, блядь, отвечать. Какие контроллы у тебя там, как их нарисовать, где расположить и сообщать о том, что произошел какой-то эвент связанный с окном. Все. Остальная логика должна быть вынесена в сервисы, viewModel, и модель, при этом окно - не должно нихуя про них знать, только иметь ссылку на ViewModel и передавать туда сообщения, реагируя на изменение состояния ViewModel.
5. Видно что у тебя написание кода не доведено до автоматизма и ты даже свой редактор не настроил на автоформатирование. Настрой, чтобы не было этой хуйни с неравными отступами и
6. MessageBox.Show("Canceled"); Сразу нахуй. Делай нормальное модальное окно, а не эту хуйню. А лучше не делай вообще, потому что у тебя в задании этого не требуется, но чисто с точки зрения UX - хуйня какая-то, кликать при каждой отмене на это ебучие окошко.
7. Отсутствует единый стиль именования полей. С хуя у тебя тут в начале _ используется, а там - не используется, а тут - между словами _? Настрой в студии проверку стилей именования полей и сделай чтоб тебе красным подчеркивало, раз до автоматизма сам не можешь довести.
8. Из лично моих доебов. Расположение полей. Они, по хорошему, должны идти до конструктора, но после событий.
9. Из лично моих доебов. Именование. Хуевое. Нахуя эти аббревиатуры? Вот разрастется этот класс, будет 1000к строк. Как я должен буду понять, что за cts?
Ну. На стажера, как по мне, таки тянешь.
>А что ты имеешь в виду под разворачиванием рабочей среды? VS накатить?
Дохрена всего еще. База данных, докер, node пакеты если фронт на js, всякие sdk, если тебе нужно будет разворачивать софт как сервис, и т.д. Причем все это может вставать не с первого раза и тянуть за собой кучу других зависимостей.
>А это не одмины будут делать? Я могу, конечно, сам, могу и операционку сам переустановить (но ведь не дадут?), но разве нет какого-то уже готового набора инструментов для погромистов?
Нет никто с тобой возиться не будет. Админ максимум выдаст тебе машину и предоставит доступы. Лид выдаст страничку на которой будут перечислены зависимости которые тебе нужны для работы (хорошо если он окажется актуальным, а не составленным 2 года назад). Тебе нужно будет все это уметь самому. Т.к. вполне возможно придется во время работы переустанавливать туда сюда по потребностям (например откатится на одну из старых версий которые сейчас в проде и имеют другие зависимости).
И если джуну еще простительно, что-то из этого не уметь, то мидл которого ты собираешься фейковать точно должен сам все это делать.
>Никто же ведь не приходит с уже готовым знанием проекта. Ведь любой будет разбираться и вкатываться, даже если у него до хрена опыта? В чём я там могу обосраться хуже других?
Вот тебе на пике пример структуры простого проекта (это кстати тестовое для джуна если что, не в смысле написать такое, а отрефакторить и переделать). Будучи "мидлом" как ты заявишь, ты должен глянуть на структуру и сразу понимать где и что здесь находится и куда лезть, если тебе например скажут напихать новых моделей или DTO-шек или отрефакторить файловый сервис, или подшаманить контекст.
Если можешь, то уже имеешь шансы. Джун тоже кстати должен во всем этом разбираться, но ему позволительно задавать тупые вопросы.
Спасибо
>Пусть сначала простые задачи, пусть сначала кривовато,
На моей первой работе, мой второй или третий таск на 4-й день работы был примерно такой:
Залезть в генератор метаданных. который во время работы считывает файл конфигурации, сама создает по нему c# код для ef, компилит его на лету в сборку, подключает ее, берет оттуда типы и создает по ним структуру БД (и все это в рантайме). И приделать к туда возможность обрабатывать индексы для таблиц БД (задаваемые в конфигурационном файле). Причем не простые, а всякие навороченные (по сути почти весь набор, который умеет БД - BTREE, GIST, GIN и другая экзотика), чтобы это все валидировалось и собиралось.
И все это на позиции джуна (хотя за счет этого мне дали много времени)
А придешь ты мидлом работать тебе сразу дадут какой-нибудь криптографический сервис внедрять - потянешь?
>Почему я не могу просто начать писать код?
Ну так и пиши, кто тебе мешает?
>А что, мой частный опыт это вообще ноль? То есть ты можешь написать дохуя разных программ, в том числе и не самых простых,
Так ты покажи их. Напиши о них в резюме, опиши что делал такой-то проект. Приложи ссылку на гитхаб. Собери и запусти его где-нибудь на VPS и приложи ссылку, чтобы сразу видно было что ты умеешь еще до собеса. Заинтересуй работодателя и тогда ему действительно будет насрать есть у тебя что-нибудь в трудовой или нет.
>Но почему я должен ходить по собеседованиям и проситься поработать забесплатно, только чтобы доказать, что я что-то могу? Это же абсурд.
Не, ну тут ты уже слегка охуел.
>Сами ноют, что спецов нет, и сами же не берут тех, кто готов работу спеца выполнять.
Спецов да нет, они нужны. А таких как ты тысячи. Ты должен уметь доказать, что ты спец еще до собеседования.
>>244234
>Меня устроят и символические 50к.
Нет, ну ты точно охуел.
>>А что ты имеешь в виду под разворачиванием рабочей среды?
>Запустить проект со всеми зависимостями например. Скажут тебе keycloak какой-нибудь развернуть в докере и настроить локально( там как раз с аспнетом есть подводные камни).
Ну погуглю, как это делается, да разверну. Спросят, почему сам не знаю, что за keycloak - скажу, что не пользовались таким, да и всё. Что, не настрою? Ну приду сюда и спрошу, "парни, как развернуть кейклоак в докере, а то чё-то я затупил". Или у соседа спрошу, что, он сразу побежит хрюше стучать "вы кого к нам прислали, он же не знает, что такое кейклоак", а та сразу в базу напишет "напиздел, что мидл, а что такое кейклоак не знает"?
>>Ну могу зазубрить и про солид, рассказать эти пять принципов.
>Зазубрить ты сможешь, но если потный разраб задаст вопрос на понимание(а без опыта разработки и натыкания на проблемы, которые солид и паттерны решают, ты их с 99% вероятностью не поймешь) ты сядешь в лужу.
Да почему не пойму? Ну вот депенденси этот. Вот вы сделали одно, сделали второе, они тесно взаимодействуют. Всё протестировали. Теперь надо одно заменить третьим. А в результате приходится изменить и второе. И по-новой тестировать. И тесты переписывать. И снова баги ловить. А что тут непонятного? Я просто не понимаю, зачем это зубрить. Ну, допустим, нарушу я этот принцип, и что? Все нарушают. Никто не носится с ним как угорелый, и не пихает эту инверсию зависимостей везде просто чтобы было. А применяют там, где оно действительно нужно, где иначе просто заебёшься без него. Ну так, во-первых, я же не отвечаю за архитектуру проекта, кто-то более опытный это, по идее, уже сам решил, что вот тут будем писать вот именно так. А почему именно так - я пойму. И буду писать в таком стиле. Очевидно же. Я не вижу в этом никакой проблемы. Ну допустим даже где-то я проебусь. Допустим, даже, серьёзно проебусь. Допустим, даже, где-то придётся всё переделывать. А что, с кем-то такого не бывает вообще никогда? Может кто-то даже отладчиками не пользуется за ненадобностью?
>С джуна требовать солид и паттерны вообще долбоебизм как по мне, как и тдд.
Как по мне - тоже. Но речь о том, что я в джуны идти не хочу. Я не чувствую себя джуном даже с нулевыми знаниями сишарпа. Я писал на десятке разных языков. Очень разных. Поначалу тупил. Через неделю уже строчил как пулемёт говнокодом. Через месяц уже приводил говнокод в порядок и на него можно было даже смотреть. Ну и сишарп - не брейнфак, да нет здесь ничего принципиально нового, то же ооп, те же лямбда-функции, те же классы, те же структуры данных, те же алгоритмы. Ну какие-то докеры на кой-то хер разворачивают, честно, я не понимаю, зачем. А что, должен простой программист непременно уметь в докеры? Вот зачем оно? Ну вы объясните, зачем оно надо, покажете, куда что прописать, что с какими ключами запустить, ну сделаю, что, проблема, что ли? Что это, космический корабль, который развалится, если я предварительно триста экзаменов по нему не сдам?
Ну ок, хорошо, не знаю я докеры. Не знаю. Вот, пришёл к вам программировать. Ну кто-нибудь из вас знает? Ну тогда давайте вот сегодня вы сами кейклоки свои развернёте, а я завтра или через неделю? Ну или сяду сейчас и доку по кейклокам почитаю, глядишь, за полдня разберусь. Или не разберусь? Это принципиально, чтобы вот именно сейчас именно я это делал и именно дедлайн прямо, всё, горит? Ну тогда вам надо было нанять меня три недели назад, я бы как раз две недели назад уже во всём разобрался и давно уже всё сделал бы, а сейчас ша, не суетитесь уже, мидл работает, изучает проблему, уже почти загрузил стартовую страницу гугла.
Неправильный подход, да?
>По моему опыту общению с сеньорами на галере, они обычно заворачивают челов, которые пытаются козырять поверхностными знаниями.
Что значит козырять? Ну допустим, поверхностные у меня знания, дальше что? Допустим, я этот ваш SOLID осознанно нигде не применял, а примеров применения не могу привести потому что никогда особо не задумывался об этом. Но это же не значит, что мой код ему не соответствует. Только потому что я не знаю, какой буквой какой принцип обозначается, это же не значит, что в моём коде рецепт и повар это одна и та же сущность. Ведь это же очевидно, для меня лично. Пусть я не могу об этом вумные книги писать, рассказывая о том, как надо правильно строить архитектуру, но и откровенной хуйни не пишу. Так чем плохи мои поверхностные знания, которыми я козыряю?
>>244196
Ну ведь у вас же есть уже какой-то докерфайл? Покажите его мне, а я переделаю под нужную задачу. Можете не показывать, скажите просто, где у вас что лежит, сам найду. Чем это не решение задачи? Ну да, не знаю, ну разберусь как-нибудь, раз у вас такой занятой девопс.
>>244262
Ну вобью я пару строчек в терминале. Пусть он просто покажет, а я потом буду сам вбивать. Я же не баба срака из бухгалтерии, которая пишет на бумажке как в виндовс логиниться и приклеивает к монитору, чтобы не забыть.
В чём проблема?
>>244208
Ок, хорошо, я неправильно понял, про что этот принцип.
А это критичный обсёр? А он прямо сделает весь мой код непригодным?
Что я теперь, не понимаю, в чём суть плагинов? Но я их писал давным-давно, и теперь пишу. Что, я не могу написать модуля или процедры, функциональность которой может быть расширена без модификации её самой? Но я ведь не должен все подряд процедуры писать именно так. Чтобы в каждой процедуре реализовывались прямо все пять принципов. И никто не пишет так. У меня, кстати, тоже есть пример из практики, где я это реализовывал, ну то есть саму возможность изменять функционал программы без её перекомпиляции. То есть я это делал, при чём не зная ни про какие солиды, просто делал, потому что просто считал, что так правильно, интуитивно. И этот мой опыт не канает только потому что я не вспомнил про этот конкретный пример и не нашёл, как его обозвать какими-то умными словами, которые стали известны десять лет спустя после того, как я до этого дошёл сам?
Это же ёбаный абсурд. Я обосрался! Сделав на десять лет раньше то, о чём потом кто-то там в омерике раскукарекался десять лет спустя, и начисто забыв о том, что я это делал.
И поэтому меня не следует нанимать, а следует в какую-то базу пиздоболов внести.
Да я, может быть, сам бы сейчас мог прославиться, как раз если бы был пиздоболом и лет двадцать назад что-нибудь красивое о своих программах напиздел с напутствиями вроде "следуйте все моим пяти принципам, делайте все вот так". И сейчас бы вы меня отказывались нанимать потому что я сам своих принципов не знаю. Какой-то бред.
Это-то я как раз знаю, я докером никогда не пользовался - это да. Но вот тут же говорят, что девопс поможет. А я разберусь.
>>А что ты имеешь в виду под разворачиванием рабочей среды?
>Запустить проект со всеми зависимостями например. Скажут тебе keycloak какой-нибудь развернуть в докере и настроить локально( там как раз с аспнетом есть подводные камни).
Ну погуглю, как это делается, да разверну. Спросят, почему сам не знаю, что за keycloak - скажу, что не пользовались таким, да и всё. Что, не настрою? Ну приду сюда и спрошу, "парни, как развернуть кейклоак в докере, а то чё-то я затупил". Или у соседа спрошу, что, он сразу побежит хрюше стучать "вы кого к нам прислали, он же не знает, что такое кейклоак", а та сразу в базу напишет "напиздел, что мидл, а что такое кейклоак не знает"?
>>Ну могу зазубрить и про солид, рассказать эти пять принципов.
>Зазубрить ты сможешь, но если потный разраб задаст вопрос на понимание(а без опыта разработки и натыкания на проблемы, которые солид и паттерны решают, ты их с 99% вероятностью не поймешь) ты сядешь в лужу.
Да почему не пойму? Ну вот депенденси этот. Вот вы сделали одно, сделали второе, они тесно взаимодействуют. Всё протестировали. Теперь надо одно заменить третьим. А в результате приходится изменить и второе. И по-новой тестировать. И тесты переписывать. И снова баги ловить. А что тут непонятного? Я просто не понимаю, зачем это зубрить. Ну, допустим, нарушу я этот принцип, и что? Все нарушают. Никто не носится с ним как угорелый, и не пихает эту инверсию зависимостей везде просто чтобы было. А применяют там, где оно действительно нужно, где иначе просто заебёшься без него. Ну так, во-первых, я же не отвечаю за архитектуру проекта, кто-то более опытный это, по идее, уже сам решил, что вот тут будем писать вот именно так. А почему именно так - я пойму. И буду писать в таком стиле. Очевидно же. Я не вижу в этом никакой проблемы. Ну допустим даже где-то я проебусь. Допустим, даже, серьёзно проебусь. Допустим, даже, где-то придётся всё переделывать. А что, с кем-то такого не бывает вообще никогда? Может кто-то даже отладчиками не пользуется за ненадобностью?
>С джуна требовать солид и паттерны вообще долбоебизм как по мне, как и тдд.
Как по мне - тоже. Но речь о том, что я в джуны идти не хочу. Я не чувствую себя джуном даже с нулевыми знаниями сишарпа. Я писал на десятке разных языков. Очень разных. Поначалу тупил. Через неделю уже строчил как пулемёт говнокодом. Через месяц уже приводил говнокод в порядок и на него можно было даже смотреть. Ну и сишарп - не брейнфак, да нет здесь ничего принципиально нового, то же ооп, те же лямбда-функции, те же классы, те же структуры данных, те же алгоритмы. Ну какие-то докеры на кой-то хер разворачивают, честно, я не понимаю, зачем. А что, должен простой программист непременно уметь в докеры? Вот зачем оно? Ну вы объясните, зачем оно надо, покажете, куда что прописать, что с какими ключами запустить, ну сделаю, что, проблема, что ли? Что это, космический корабль, который развалится, если я предварительно триста экзаменов по нему не сдам?
Ну ок, хорошо, не знаю я докеры. Не знаю. Вот, пришёл к вам программировать. Ну кто-нибудь из вас знает? Ну тогда давайте вот сегодня вы сами кейклоки свои развернёте, а я завтра или через неделю? Ну или сяду сейчас и доку по кейклокам почитаю, глядишь, за полдня разберусь. Или не разберусь? Это принципиально, чтобы вот именно сейчас именно я это делал и именно дедлайн прямо, всё, горит? Ну тогда вам надо было нанять меня три недели назад, я бы как раз две недели назад уже во всём разобрался и давно уже всё сделал бы, а сейчас ша, не суетитесь уже, мидл работает, изучает проблему, уже почти загрузил стартовую страницу гугла.
Неправильный подход, да?
>По моему опыту общению с сеньорами на галере, они обычно заворачивают челов, которые пытаются козырять поверхностными знаниями.
Что значит козырять? Ну допустим, поверхностные у меня знания, дальше что? Допустим, я этот ваш SOLID осознанно нигде не применял, а примеров применения не могу привести потому что никогда особо не задумывался об этом. Но это же не значит, что мой код ему не соответствует. Только потому что я не знаю, какой буквой какой принцип обозначается, это же не значит, что в моём коде рецепт и повар это одна и та же сущность. Ведь это же очевидно, для меня лично. Пусть я не могу об этом вумные книги писать, рассказывая о том, как надо правильно строить архитектуру, но и откровенной хуйни не пишу. Так чем плохи мои поверхностные знания, которыми я козыряю?
>>244196
Ну ведь у вас же есть уже какой-то докерфайл? Покажите его мне, а я переделаю под нужную задачу. Можете не показывать, скажите просто, где у вас что лежит, сам найду. Чем это не решение задачи? Ну да, не знаю, ну разберусь как-нибудь, раз у вас такой занятой девопс.
>>244262
Ну вобью я пару строчек в терминале. Пусть он просто покажет, а я потом буду сам вбивать. Я же не баба срака из бухгалтерии, которая пишет на бумажке как в виндовс логиниться и приклеивает к монитору, чтобы не забыть.
В чём проблема?
>>244208
Ок, хорошо, я неправильно понял, про что этот принцип.
А это критичный обсёр? А он прямо сделает весь мой код непригодным?
Что я теперь, не понимаю, в чём суть плагинов? Но я их писал давным-давно, и теперь пишу. Что, я не могу написать модуля или процедры, функциональность которой может быть расширена без модификации её самой? Но я ведь не должен все подряд процедуры писать именно так. Чтобы в каждой процедуре реализовывались прямо все пять принципов. И никто не пишет так. У меня, кстати, тоже есть пример из практики, где я это реализовывал, ну то есть саму возможность изменять функционал программы без её перекомпиляции. То есть я это делал, при чём не зная ни про какие солиды, просто делал, потому что просто считал, что так правильно, интуитивно. И этот мой опыт не канает только потому что я не вспомнил про этот конкретный пример и не нашёл, как его обозвать какими-то умными словами, которые стали известны десять лет спустя после того, как я до этого дошёл сам?
Это же ёбаный абсурд. Я обосрался! Сделав на десять лет раньше то, о чём потом кто-то там в омерике раскукарекался десять лет спустя, и начисто забыв о том, что я это делал.
И поэтому меня не следует нанимать, а следует в какую-то базу пиздоболов внести.
Да я, может быть, сам бы сейчас мог прославиться, как раз если бы был пиздоболом и лет двадцать назад что-нибудь красивое о своих программах напиздел с напутствиями вроде "следуйте все моим пяти принципам, делайте все вот так". И сейчас бы вы меня отказывались нанимать потому что я сам своих принципов не знаю. Какой-то бред.
Это-то я как раз знаю, я докером никогда не пользовался - это да. Но вот тут же говорят, что девопс поможет. А я разберусь.
Ответ синьора. Запомню фразу, на собесах бы пригодилась пару раз, лол.
>>244164
> Никто же ведь не приходит с уже готовым знанием проекта.
Оно и не нужно. У тебя обсёр уже на уровне поста в треде.
> Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
Я тебе просто точно скажу, что ты ничего не сможешь пояснить, иначе бы ты сам написал этот проект.
> Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
Ты просто такую хуйню несусветную несёшь и не имеешь представления, о чём говоришь, что тут комментировать бесполезно что-то. Ты пока всё не так понимаешь и видно, что ты ни с чем таким дела не имел.
> И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public
В этом абзаце всё смешно, но это самое смешное.
> Так не покатит? А как надо?
Надо так, чтобы от тебя не пахло пиздаболом. Пахнет.
> допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается
Полная хуйня уровня Ламборджини, которая у тебя есть, но она у бабушки в деревне пока стоит. Настоящий синьор using проебал при работе с Disposable сервисом и получил плавающий баг, который потом долго и больно искал.
> пока не в курсе
И не будешь, пока год с ним не повозишься.
> Ну вот пользователи требуют фичу у поддержки.
И сразу же проиграл. Дальше тоже хуйня.
> А если меня перебьют и спросят "что-что вы несёте?"
Так не сделают. Сразу поймут, что пиздабол, и вежливо дотянут собес до конца.
> если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
У тебя пока уровень знаний такой, будто тебе мойша напел что-то про сишарп.
Тем временем посмотри, сколько своей хуйни ты уже в тред высрал. Мог бы за сегодня сделать простейший сервис с чатиком по какому-нибудь тьюториалу, но вместо этого фантазировал и задавал вопросы, знание ответа на которых никак ничего не поменяет в твоей ситуации. Голову в порядок приведи и делом займись.
Ответ синьора. Запомню фразу, на собесах бы пригодилась пару раз, лол.
>>244164
> Никто же ведь не приходит с уже готовым знанием проекта.
Оно и не нужно. У тебя обсёр уже на уровне поста в треде.
> Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
Я тебе просто точно скажу, что ты ничего не сможешь пояснить, иначе бы ты сам написал этот проект.
> Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
Ты просто такую хуйню несусветную несёшь и не имеешь представления, о чём говоришь, что тут комментировать бесполезно что-то. Ты пока всё не так понимаешь и видно, что ты ни с чем таким дела не имел.
> И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public
В этом абзаце всё смешно, но это самое смешное.
> Так не покатит? А как надо?
Надо так, чтобы от тебя не пахло пиздаболом. Пахнет.
> допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается
Полная хуйня уровня Ламборджини, которая у тебя есть, но она у бабушки в деревне пока стоит. Настоящий синьор using проебал при работе с Disposable сервисом и получил плавающий баг, который потом долго и больно искал.
> пока не в курсе
И не будешь, пока год с ним не повозишься.
> Ну вот пользователи требуют фичу у поддержки.
И сразу же проиграл. Дальше тоже хуйня.
> А если меня перебьют и спросят "что-что вы несёте?"
Так не сделают. Сразу поймут, что пиздабол, и вежливо дотянут собес до конца.
> если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
У тебя пока уровень знаний такой, будто тебе мойша напел что-то про сишарп.
Тем временем посмотри, сколько своей хуйни ты уже в тред высрал. Мог бы за сегодня сделать простейший сервис с чатиком по какому-нибудь тьюториалу, но вместо этого фантазировал и задавал вопросы, знание ответа на которых никак ничего не поменяет в твоей ситуации. Голову в порядок приведи и делом займись.
>if-else - сразу нахуй
Херня.
>6. MessageBox.Show("Canceled"); Сразу нахуй
Херня. Другое дело, что это не вынесено в сервис, но у него там вообще ничего не вынесено.
>Но это же не значит, что мой код ему не соответствует.
Значит.
>Ну какие-то докеры на кой-то хер разворачивают, честно, я не понимаю, зачем.
Если ты не понимаешь, ты даже не джун.
>Никто не носится с ним как угорелый, и не пихает эту инверсию зависимостей везде просто чтобы было. А применяют там, где оно действительно нужно, где иначе просто заебёшься без него.
Как ты поймешь, где нужно, а где нет?
Мидл - самостоятельный разработчик, от него ожидают решений поставленных с расчетом на его компетенцию задач. Пиздуй устраиваться стажером на галеру, через год два станешь мидлом, если не дебил. Задрочить знания на мидла не выйдет, без опыта на реальных проектах ты никогда не поймешь что, зачем, как и почему делается.
Ты, говоря откровенно, шизофреник какой-то. Тебе никто пока этого прямо не сказал, вроде, но у тебя точно такие же поверхностные знания во всех остальных языках и технологиях, какие ты упоминал.
На реальном проекте ты не просто обосрёшся, тебя к нему не подпустят, потому что быстро поймут, что с тобой что-то не так. Не из-за коммерческого стажа и всё такое, обрати внимание. Ты объективно пока не способен что-то боевое делать, как шестнадцатилетний олимпиадник.
Твоя уверенность в том, что ты на самом деле хорош, обусловлена тем, что ты никогда всерьез не сталкивался с настоящими программистами и не можешь трезво оценить свой уровень.
Выходи из манямирка и занимайся делом, в треде тебе уже на всё ответили и дали понять, что просто так тебе в руки ничего не упадёт с неба.
>>А что ты имеешь в виду под разворачиванием рабочей среды? VS накатить?
>Дохрена всего еще. База данных,
И что, её тоже самому надо ставить? А просто ctrl-c/ctrl-v сделать нельзя? Ну у вас же на всех машинах уже всё настроено? И что, каждый раз каждый с нуля всё сам ставит?
>докер, node пакеты если фронт на js,
И нет никакого скриптика, который сам всё это ставит? Все вот эти пакеты? А почему? А может быть написать такой скрипт?
>всякие sdk, если тебе нужно будет разворачивать софт как сервис, и т.д. Причем все это может вставать не с первого раза и тянуть за собой кучу других зависимостей.
Тем более должен быть какой-то скрипт, ну или хотя бы инструкция, по которой всё это делается. Не с нуля же каждый раз надо придумывать, как и куда всё поставить, и изучать каждый раз, где какие опции надо прописать, чтобы оно заработало.
И сколько времени даётся на разворачивание рабочей среды?
И почему я с этим не справлюсь, если я, допустим, тысячу раз переустанавливал венду, да и линукс?
>>А это не одмины будут делать? Я могу, конечно, сам, могу и операционку сам переустановить (но ведь не дадут?), но разве нет какого-то уже готового набора инструментов для погромистов?
>Нет никто с тобой возиться не будет. Админ максимум выдаст тебе машину и предоставит доступы. Лид выдаст страничку на которой будут перечислены зависимости которые тебе нужны для работы (хорошо если он окажется актуальным, а не составленным 2 года назад). Тебе нужно будет все это уметь самому.
Ну погуглю. Что, не нагуглю, что ли?
>Т.к. вполне возможно придется во время работы переустанавливать туда сюда по потребностям (например откатится на одну из старых версий которые сейчас в проде и имеют другие зависимости).
Ну тем более нужны какие-то файлы с инструкциями, чтобы тридцать раз по одним и тем же граблям не ходить.
>И если джуну еще простительно, что-то из этого не уметь, то мидл которого ты собираешься фейковать точно должен сам все это делать.
Ну а у меня, допустим, на предыдущей фейкоработе ничего этого не было, и я там только погроммировал, и всегда всё было на одной и той же версии, и ничего никуда не откатывалось. И что, я после этого уже не мидл?
>>Никто же ведь не приходит с уже готовым знанием проекта. Ведь любой будет разбираться и вкатываться, даже если у него до хрена опыта? В чём я там могу обосраться хуже других?
>Вот тебе на пике пример структуры простого проекта (это кстати тестовое для джуна если что, не в смысле написать такое, а отрефакторить и переделать). Будучи "мидлом" как ты заявишь, ты должен глянуть на структуру и сразу понимать где и что здесь находится и куда лезть, если тебе например скажут напихать новых моделей
Окей, гугл, "напихать новых моделей"
https://docs.microsoft.com/ru-ru/aspnet/mvc/overview/older-versions/getting-started-with-aspnet-mvc3/cs/adding-a-model
Спасибо, гугл.
Так, ну вот вижу там ближе к нижней границе слово Model, полезу для начала туда. А вообще, каких моделей? Мне же какое-то конкретное задание дадут?
>или DTO-шек
Окей, гугл, "dto это что за хуйня"
https://habr.com/ru/post/560068/
Так, гугл, это не то, "dto это что за хуйня в сишарпе"
https://docs.microsoft.com/en-us/aspnet/web-api/overview/data/using-web-api-with-entity-framework/part-5
Ctrl-C/Ctrl-V, я закончил!
А какие вам нужны DTO-шки? Какие конкретно поля, к чему конкретно их нужно приделать?
>или отрефакторить файловый сервис,
Файловый сервис? Дайте подумать... Это в папке Services? Парни, а как у вас файловый сервис называется? File_Service_Kokoko? А, ну да, логично, виндовс командер, Alt-F7, ., File_Service_Kokoko, Enter.
>или подшаманить контекст.
Context.cs? DbContextImplementations? DesignTimeDbContextFactory.cs? И что конкнретно надо подшаманить? Или просто "подшаманить", просто "сделайте красиво", и всё? А постановщики задач у вас так и работают? И им за это платят зарплату? Или их просто нет, а все просто делают красиво, сами разбираясь, что им делать, зачем и почему?
>Если можешь, то уже имеешь шансы. Джун тоже кстати должен во всем этом разбираться, но ему позволительно задавать тупые вопросы.
Ну мои вопросы тупые?
>>А что ты имеешь в виду под разворачиванием рабочей среды? VS накатить?
>Дохрена всего еще. База данных,
И что, её тоже самому надо ставить? А просто ctrl-c/ctrl-v сделать нельзя? Ну у вас же на всех машинах уже всё настроено? И что, каждый раз каждый с нуля всё сам ставит?
>докер, node пакеты если фронт на js,
И нет никакого скриптика, который сам всё это ставит? Все вот эти пакеты? А почему? А может быть написать такой скрипт?
>всякие sdk, если тебе нужно будет разворачивать софт как сервис, и т.д. Причем все это может вставать не с первого раза и тянуть за собой кучу других зависимостей.
Тем более должен быть какой-то скрипт, ну или хотя бы инструкция, по которой всё это делается. Не с нуля же каждый раз надо придумывать, как и куда всё поставить, и изучать каждый раз, где какие опции надо прописать, чтобы оно заработало.
И сколько времени даётся на разворачивание рабочей среды?
И почему я с этим не справлюсь, если я, допустим, тысячу раз переустанавливал венду, да и линукс?
>>А это не одмины будут делать? Я могу, конечно, сам, могу и операционку сам переустановить (но ведь не дадут?), но разве нет какого-то уже готового набора инструментов для погромистов?
>Нет никто с тобой возиться не будет. Админ максимум выдаст тебе машину и предоставит доступы. Лид выдаст страничку на которой будут перечислены зависимости которые тебе нужны для работы (хорошо если он окажется актуальным, а не составленным 2 года назад). Тебе нужно будет все это уметь самому.
Ну погуглю. Что, не нагуглю, что ли?
>Т.к. вполне возможно придется во время работы переустанавливать туда сюда по потребностям (например откатится на одну из старых версий которые сейчас в проде и имеют другие зависимости).
Ну тем более нужны какие-то файлы с инструкциями, чтобы тридцать раз по одним и тем же граблям не ходить.
>И если джуну еще простительно, что-то из этого не уметь, то мидл которого ты собираешься фейковать точно должен сам все это делать.
Ну а у меня, допустим, на предыдущей фейкоработе ничего этого не было, и я там только погроммировал, и всегда всё было на одной и той же версии, и ничего никуда не откатывалось. И что, я после этого уже не мидл?
>>Никто же ведь не приходит с уже готовым знанием проекта. Ведь любой будет разбираться и вкатываться, даже если у него до хрена опыта? В чём я там могу обосраться хуже других?
>Вот тебе на пике пример структуры простого проекта (это кстати тестовое для джуна если что, не в смысле написать такое, а отрефакторить и переделать). Будучи "мидлом" как ты заявишь, ты должен глянуть на структуру и сразу понимать где и что здесь находится и куда лезть, если тебе например скажут напихать новых моделей
Окей, гугл, "напихать новых моделей"
https://docs.microsoft.com/ru-ru/aspnet/mvc/overview/older-versions/getting-started-with-aspnet-mvc3/cs/adding-a-model
Спасибо, гугл.
Так, ну вот вижу там ближе к нижней границе слово Model, полезу для начала туда. А вообще, каких моделей? Мне же какое-то конкретное задание дадут?
>или DTO-шек
Окей, гугл, "dto это что за хуйня"
https://habr.com/ru/post/560068/
Так, гугл, это не то, "dto это что за хуйня в сишарпе"
https://docs.microsoft.com/en-us/aspnet/web-api/overview/data/using-web-api-with-entity-framework/part-5
Ctrl-C/Ctrl-V, я закончил!
А какие вам нужны DTO-шки? Какие конкретно поля, к чему конкретно их нужно приделать?
>или отрефакторить файловый сервис,
Файловый сервис? Дайте подумать... Это в папке Services? Парни, а как у вас файловый сервис называется? File_Service_Kokoko? А, ну да, логично, виндовс командер, Alt-F7, ., File_Service_Kokoko, Enter.
>или подшаманить контекст.
Context.cs? DbContextImplementations? DesignTimeDbContextFactory.cs? И что конкнретно надо подшаманить? Или просто "подшаманить", просто "сделайте красиво", и всё? А постановщики задач у вас так и работают? И им за это платят зарплату? Или их просто нет, а все просто делают красиво, сами разбираясь, что им делать, зачем и почему?
>Если можешь, то уже имеешь шансы. Джун тоже кстати должен во всем этом разбираться, но ему позволительно задавать тупые вопросы.
Ну мои вопросы тупые?
>> Никто же ведь не приходит с уже готовым знанием проекта.
>Оно и не нужно. У тебя обсёр уже на уровне поста в треде.
А именно?
>> Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
>Я тебе просто точно скажу, что ты ничего не сможешь пояснить, иначе бы ты сам написал этот проект.
Ну конечно... Ты лучше меня ведь знаешь, написал бы или не написал бы. А может быть я знаю, что я могу написать, и может быть даже написал бы, но параллельно попросил то же самое у помидора, а потом спросил у него, почему он всё сделал по-другому, не так, как я. А он объяснил, и я понял. И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
>> Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
>Ты просто такую хуйню несусветную несёшь и не имеешь представления, о чём говоришь, что тут комментировать бесполезно что-то.
Но это не аргумент.
>Ты пока всё не так понимаешь и видно, что ты ни с чем таким дела не имел.
С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
>> И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public
>В этом абзаце всё смешно, но это самое смешное.
Ок, я не вызубрил наизусть формулировку принципов. А вы прямо учите их, чтобы потом друг перед другом выёбываться, доказывая, кто из вас лучше их вызубрил? А зачем? Просто применять правильные принципы не катит? Обязательно надо именно формулировки зубрить?
>> Так не покатит? А как надо?
>Надо так, чтобы от тебя не пахло пиздаболом. Пахнет.
Ну допустим. То есть ты хочешь сказать, что все мидлы прямо как мантру эти принципы повторяют и оно у них прямо от зубов отскакивает?
>> допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается
>Полная хуйня уровня Ламборджини, которая у тебя есть, но она у бабушки в деревне пока стоит.
А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
>Настоящий синьор using проебал при работе с Disposable сервисом и получил плавающий баг, который потом долго и больно искал.
Ну и я до хера чего проёбывал. А ещё больше проёбывал, когда двусвязные списки на указателях приходилось пилить, и я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил, в итоге у меня при добавлении нового объекта не nil перезаписывался, а какая-то нужная ссылка, и хер найдёшь, что и почему потерялось. А ещё хуже, когда удалил динамическую переменную, а указатель на неё остался, и всё работает как ни в чём ни бывало, пока данные случайно не перезатрутся, вот и плавающий баг, но я обычно пишу так, чтобы никаких плавающих багов не было. Вот и у бабушки на даче, где Ламборджини стоит, я написал такую штуку, которая решает проблему с такими потерянными переменными, и все баги сразу нашёл, и ни байта памяти уже не терял, а потом уже перешёл на языки с динамическими массивами и забыл про списки на указателях как про страшный сон. И бабушка подтвердит, если надо, всё так и есть.
Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
>> пока не в курсе
>И не будешь, пока год с ним не повозишься.
Ну а может я с похожим языком возился? Не именно с сишарпом? Или с сишарпом возился, но, допустим, пять лет назад, потом, допустим, пришлось немного другими вещами заниматься, скажем, на том же похапэ бэкенд пилить, или вообще фронтенд, а потому я может что-то уже забыл из сишарпа, но как только, так сразу вспомню?
>> Ну вот пользователи требуют фичу у поддержки.
>И сразу же проиграл. Дальше тоже хуйня.
Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
>> А если меня перебьют и спросят "что-что вы несёте?"
>Так не сделают. Сразу поймут, что пиздабол, и вежливо дотянут собес до конца.
Понятно.
>> если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
>У тебя пока уровень знаний такой, будто тебе мойша напел что-то про сишарп.
Я не знаю сишарпа. Я ни одной программы на нём не написал. Ни одной статьи про него не читал.
Естественно, перед собеседованием книжку какую-нибудь прочитаю, что-нибудь на нём напишу. Хуйню какую-нибудь для мобилки, чисто для себя. А на собеседовании напизжу, что написал дохуя всего, для больших и малых коммерческих предприятий, в городе рядом с бабушкиной дачей, на которой ламборджини стоит. Неужто не прокатит?
>Тем временем посмотри, сколько своей хуйни ты уже в тред высрал. Мог бы за сегодня сделать простейший сервис с чатиком по какому-нибудь тьюториалу, но вместо этого фантазировал и задавал вопросы, знание ответа на которых никак ничего не поменяет в твоей ситуации.
А что поменяет сервис с туториалом?
Что, если я приду на собес и буду рассказывать про свой йоба-чатик по туториалу, меня захотят нанять?
Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
>Голову в порядок приведи и делом займись.
А смысл? Я уже напилил гору программок на куче разных языков. Но ведь нужен же не опыт чатиков по туториалам, а опыт работы. А его у меня нет и не будет, сколько бы я ни напилил чатиков по туториалам.
Ну чатик-то я напилю, неужели ты думаешь, что это проблема? Работал я и с чатиками. И веб-сервер делал. И сайтов кучу написал, и чатики туда прикручивал, и с веб-сокетами работал. Ну вот что мне даст ещё один чатик? Какую-то кроху знаний по сишарпу?
Но ведь мы уже выяснили, что это не даст мне убедительно напиздесь о своём опыте работы и проканать за мидла, а джуны нахуй никому не нужны. Тогда смысл мне в этом сишарпе? Допустим, год пилить петпроджекты, потом ещё год ходить по собесам, а в итоге пойти на хуй?
А зачем? Я уже программист. Я уже программировать умею. На самом деле. Пусть я не знаю, что такое докер, но я знаю, что такое дебаггер не хуже тебя. Даже дизассемблер знаю что такое. Смысл пилить пет-проджекты, если в итоге не можешь продать свой опыт?
Вот ты же не купил бы. Говоришь, пахнет пиздобольством и бабушкиной ламборджини. А я на самом деле программировал. И смысл продолжать в том же духе?
>> Никто же ведь не приходит с уже готовым знанием проекта.
>Оно и не нужно. У тебя обсёр уже на уровне поста в треде.
А именно?
>> Спросят "а почему сделал вот именно так", скажу "ну, моё чувство прекрасного подсказало, что надо делать именно так, автоматизм, интуиция, опыт не пропьёшь, все так делают и я так делаю испокон веков, а что, разве плохо?"
>Я тебе просто точно скажу, что ты ничего не сможешь пояснить, иначе бы ты сам написал этот проект.
Ну конечно... Ты лучше меня ведь знаешь, написал бы или не написал бы. А может быть я знаю, что я могу написать, и может быть даже написал бы, но параллельно попросил то же самое у помидора, а потом спросил у него, почему он всё сделал по-другому, не так, как я. А он объяснил, и я понял. И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
>> Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
>Ты просто такую хуйню несусветную несёшь и не имеешь представления, о чём говоришь, что тут комментировать бесполезно что-то.
Но это не аргумент.
>Ты пока всё не так понимаешь и видно, что ты ни с чем таким дела не имел.
С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
>> И принцип открытости-закрытости. Не знаю, как по мне, так это следует из моего представления об инкапсуляции в ООП. Ясно же, что есть private, а есть public
>В этом абзаце всё смешно, но это самое смешное.
Ок, я не вызубрил наизусть формулировку принципов. А вы прямо учите их, чтобы потом друг перед другом выёбываться, доказывая, кто из вас лучше их вызубрил? А зачем? Просто применять правильные принципы не катит? Обязательно надо именно формулировки зубрить?
>> Так не покатит? А как надо?
>Надо так, чтобы от тебя не пахло пиздаболом. Пахнет.
Ну допустим. То есть ты хочешь сказать, что все мидлы прямо как мантру эти принципы повторяют и оно у них прямо от зубов отскакивает?
>> допустим, решали одну вычислительную задачу, анализ многосвязного графа из сотен тысяч вершин. Решали, решали, а оказалось, что для многих вершин она не решается
>Полная хуйня уровня Ламборджини, которая у тебя есть, но она у бабушки в деревне пока стоит.
А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
>Настоящий синьор using проебал при работе с Disposable сервисом и получил плавающий баг, который потом долго и больно искал.
Ну и я до хера чего проёбывал. А ещё больше проёбывал, когда двусвязные списки на указателях приходилось пилить, и я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил, в итоге у меня при добавлении нового объекта не nil перезаписывался, а какая-то нужная ссылка, и хер найдёшь, что и почему потерялось. А ещё хуже, когда удалил динамическую переменную, а указатель на неё остался, и всё работает как ни в чём ни бывало, пока данные случайно не перезатрутся, вот и плавающий баг, но я обычно пишу так, чтобы никаких плавающих багов не было. Вот и у бабушки на даче, где Ламборджини стоит, я написал такую штуку, которая решает проблему с такими потерянными переменными, и все баги сразу нашёл, и ни байта памяти уже не терял, а потом уже перешёл на языки с динамическими массивами и забыл про списки на указателях как про страшный сон. И бабушка подтвердит, если надо, всё так и есть.
Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
>> пока не в курсе
>И не будешь, пока год с ним не повозишься.
Ну а может я с похожим языком возился? Не именно с сишарпом? Или с сишарпом возился, но, допустим, пять лет назад, потом, допустим, пришлось немного другими вещами заниматься, скажем, на том же похапэ бэкенд пилить, или вообще фронтенд, а потому я может что-то уже забыл из сишарпа, но как только, так сразу вспомню?
>> Ну вот пользователи требуют фичу у поддержки.
>И сразу же проиграл. Дальше тоже хуйня.
Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
>> А если меня перебьют и спросят "что-что вы несёте?"
>Так не сделают. Сразу поймут, что пиздабол, и вежливо дотянут собес до конца.
Понятно.
>> если у меня примерно такой уровень понимания, имеет ли смысл пиздеть, или это только смешить людей?
>У тебя пока уровень знаний такой, будто тебе мойша напел что-то про сишарп.
Я не знаю сишарпа. Я ни одной программы на нём не написал. Ни одной статьи про него не читал.
Естественно, перед собеседованием книжку какую-нибудь прочитаю, что-нибудь на нём напишу. Хуйню какую-нибудь для мобилки, чисто для себя. А на собеседовании напизжу, что написал дохуя всего, для больших и малых коммерческих предприятий, в городе рядом с бабушкиной дачей, на которой ламборджини стоит. Неужто не прокатит?
>Тем временем посмотри, сколько своей хуйни ты уже в тред высрал. Мог бы за сегодня сделать простейший сервис с чатиком по какому-нибудь тьюториалу, но вместо этого фантазировал и задавал вопросы, знание ответа на которых никак ничего не поменяет в твоей ситуации.
А что поменяет сервис с туториалом?
Что, если я приду на собес и буду рассказывать про свой йоба-чатик по туториалу, меня захотят нанять?
Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
>Голову в порядок приведи и делом займись.
А смысл? Я уже напилил гору программок на куче разных языков. Но ведь нужен же не опыт чатиков по туториалам, а опыт работы. А его у меня нет и не будет, сколько бы я ни напилил чатиков по туториалам.
Ну чатик-то я напилю, неужели ты думаешь, что это проблема? Работал я и с чатиками. И веб-сервер делал. И сайтов кучу написал, и чатики туда прикручивал, и с веб-сокетами работал. Ну вот что мне даст ещё один чатик? Какую-то кроху знаний по сишарпу?
Но ведь мы уже выяснили, что это не даст мне убедительно напиздесь о своём опыте работы и проканать за мидла, а джуны нахуй никому не нужны. Тогда смысл мне в этом сишарпе? Допустим, год пилить петпроджекты, потом ещё год ходить по собесам, а в итоге пойти на хуй?
А зачем? Я уже программист. Я уже программировать умею. На самом деле. Пусть я не знаю, что такое докер, но я знаю, что такое дебаггер не хуже тебя. Даже дизассемблер знаю что такое. Смысл пилить пет-проджекты, если в итоге не можешь продать свой опыт?
Вот ты же не купил бы. Говоришь, пахнет пиздобольством и бабушкиной ламборджини. А я на самом деле программировал. И смысл продолжать в том же духе?
>>244351
Нет, чел. Я ошибся. Никто не будет о тебе пометку как о пиздоболе делать. Тебе сделают отдельную пометку: "душнила, ебаный". Ты здесь то душишь, представляю как ты на реальной работе будешь народ доебывать.
Все твои высеры сводятся к одному: "Я сейчас нихуя не умею, но я хороший, возьмите меня и я обязательно научусь."
>Ок, я не вызубрил наизусть формулировку принципов. А вы прямо учите их, чтобы потом друг перед другом выёбываться, доказывая, кто из вас лучше их вызубрил? А зачем? Просто применять правильные принципы не катит? Обязательно надо именно формулировки зубрить?
Хуйню не пиши. Эти принципы достаточно прочесть и понять. Никто тебя не будет спрашивать точное определение, достаточно будет своих слов.
А вот то, что ты, не потрудившись даже почитать, начал фантазировать "ну там есть слово открытый, значит это что-то связанное с ООП и public/private, типа инкапсуляция" - вот это и есть обсер.
>Я уже программист. Я уже программировать умею. На самом деле.
Ну так, а в чем у тебя тогда проблема работу найти или работать на той, что уже есть?
Зачем тебе шарп, если у тебя 'дохуя' опыта. Ищи работу на том, что умеешь.
То есть наоборот надо прикинуться тупнем?
Да на собесах пусть бы и валили. Главное, чтобы в ни в какие базы пиздоболов не добавляли.
>>244288
>И все это на позиции джуна (хотя за счет этого мне дали много времени)
И сколько времени тебе на это дали?
Ну а так, задание, конечно, содержит много вумных слов, но если помедитировать над ним пару минут полчаса, да погуглить, то можно уже начать потихоньку решать.
>А придешь ты мидлом работать тебе сразу дадут какой-нибудь криптографический сервис внедрять - потянешь?
Да хз. Пойду погуглю для начала. Не получится - пойду помощи попрошу у коллег. Пошлют сразу?
Криптографией я, конечно, не занимался от слова совсем вообще. Ну представляю там самые общие вещи на уровне "Элис и Боб обмениваются открытыми ключами", и т.д. И сколько дадут времени на такую задачу - внедрить этот сервис? Какой именно, как именно и куда внедрить - объяснят? Документация по нему хоть какая-нибудь есть?
>>244298
>>Почему я не могу просто начать писать код?
>Ну так и пиши, кто тебе мешает?
Так я уже написал. Не гигабайты, но довольно много.
>>А что, мой частный опыт это вообще ноль? То есть ты можешь написать дохуя разных программ, в том числе и не самых простых,
>Так ты покажи их. Напиши о них в резюме, опиши что делал такой-то проект. Приложи ссылку на гитхаб.
А нету. Это ещё до гитхабов, в основном было. Да и на куче разных языков. Разве оно будет релевантно, если я приду устраиваться на вакансию сишарп, а гитхаб будет забит питонами, джаваскриптами и делфями?
>Собери и запусти его где-нибудь на VPS и приложи ссылку, чтобы сразу видно было что ты умеешь еще до собеса. Заинтересуй работодателя и тогда ему действительно будет насрать есть у тебя что-нибудь в трудовой или нет.
Но пет-проджекты ведь не сделают меня мидлом? А джуны, говорят, не нужны. Потому что не могут сразу внедрить криптографию.
>>Но почему я должен ходить по собеседованиям и проситься поработать забесплатно, только чтобы доказать, что я что-то могу? Это же абсурд.
>Не, ну тут ты уже слегка охуел.
Да почему охуел-то? Потому что не хочу работать бесплатно, да ещё и кого-то упрашивать делать для них что-то бесплатно? А это точно я охуел, а не они охуели?
>>Сами ноют, что спецов нет, и сами же не берут тех, кто готов работу спеца выполнять.
>Спецов да нет, они нужны. А таких как ты тысячи. Ты должен уметь доказать, что ты спец еще до собеседования.
Да в том-то и дело, что видимо не тысячи. Тысячи тех, кто не знает, что такое эксепшены, приходя работать джунами. А я знаю.
>>Меня устроят и символические 50к.
>Нет, ну ты точно охуел.
Что, много? А сколько не много? Бесплатно? То есть я должен заинтересовать работодателя своими частными VPS, где у меня будет крутиться десяток разных пет-проектов, и потом ещё и работать бесплатно на него? Это как вообще? Может, я чего-то не понимаю? Может, у меня лыжи не едут? Но я не понимаю. Я могу делать полезное дело. Я готов приступать. Вам надо или не надо?
То есть наоборот надо прикинуться тупнем?
Да на собесах пусть бы и валили. Главное, чтобы в ни в какие базы пиздоболов не добавляли.
>>244288
>И все это на позиции джуна (хотя за счет этого мне дали много времени)
И сколько времени тебе на это дали?
Ну а так, задание, конечно, содержит много вумных слов, но если помедитировать над ним пару минут полчаса, да погуглить, то можно уже начать потихоньку решать.
>А придешь ты мидлом работать тебе сразу дадут какой-нибудь криптографический сервис внедрять - потянешь?
Да хз. Пойду погуглю для начала. Не получится - пойду помощи попрошу у коллег. Пошлют сразу?
Криптографией я, конечно, не занимался от слова совсем вообще. Ну представляю там самые общие вещи на уровне "Элис и Боб обмениваются открытыми ключами", и т.д. И сколько дадут времени на такую задачу - внедрить этот сервис? Какой именно, как именно и куда внедрить - объяснят? Документация по нему хоть какая-нибудь есть?
>>244298
>>Почему я не могу просто начать писать код?
>Ну так и пиши, кто тебе мешает?
Так я уже написал. Не гигабайты, но довольно много.
>>А что, мой частный опыт это вообще ноль? То есть ты можешь написать дохуя разных программ, в том числе и не самых простых,
>Так ты покажи их. Напиши о них в резюме, опиши что делал такой-то проект. Приложи ссылку на гитхаб.
А нету. Это ещё до гитхабов, в основном было. Да и на куче разных языков. Разве оно будет релевантно, если я приду устраиваться на вакансию сишарп, а гитхаб будет забит питонами, джаваскриптами и делфями?
>Собери и запусти его где-нибудь на VPS и приложи ссылку, чтобы сразу видно было что ты умеешь еще до собеса. Заинтересуй работодателя и тогда ему действительно будет насрать есть у тебя что-нибудь в трудовой или нет.
Но пет-проджекты ведь не сделают меня мидлом? А джуны, говорят, не нужны. Потому что не могут сразу внедрить криптографию.
>>Но почему я должен ходить по собеседованиям и проситься поработать забесплатно, только чтобы доказать, что я что-то могу? Это же абсурд.
>Не, ну тут ты уже слегка охуел.
Да почему охуел-то? Потому что не хочу работать бесплатно, да ещё и кого-то упрашивать делать для них что-то бесплатно? А это точно я охуел, а не они охуели?
>>Сами ноют, что спецов нет, и сами же не берут тех, кто готов работу спеца выполнять.
>Спецов да нет, они нужны. А таких как ты тысячи. Ты должен уметь доказать, что ты спец еще до собеседования.
Да в том-то и дело, что видимо не тысячи. Тысячи тех, кто не знает, что такое эксепшены, приходя работать джунами. А я знаю.
>>Меня устроят и символические 50к.
>Нет, ну ты точно охуел.
Что, много? А сколько не много? Бесплатно? То есть я должен заинтересовать работодателя своими частными VPS, где у меня будет крутиться десяток разных пет-проектов, и потом ещё и работать бесплатно на него? Это как вообще? Может, я чего-то не понимаю? Может, у меня лыжи не едут? Но я не понимаю. Я могу делать полезное дело. Я готов приступать. Вам надо или не надо?
>>Но это же не значит, что мой код ему не соответствует.
>Значит.
Хм, а ты его видел?
ну, допустим, где-то не будет соответствовать, хотя должен был. Отрефакторю.
>>Ну какие-то докеры на кой-то хер разворачивают, честно, я не понимаю, зачем.
>Если ты не понимаешь, ты даже не джун.
Ой ли? А до появления докера не существовало не то что помидоров, но даже джунов?
>>Никто не носится с ним как угорелый, и не пихает эту инверсию зависимостей везде просто чтобы было. А применяют там, где оно действительно нужно, где иначе просто заебёшься без него.
>Как ты поймешь, где нужно, а где нет?
По опыту. Если чувствую, что без разделения зависимостей может быть жопа, то разделю. Если чувствую, что и так сойдёт, то так и оставлю. Если не планируется какого-либо расширения конкретно данного функционала, то и незачем к нему приделывать и возможность написания плагинов, и возможность замены чего угодно на что угодно, и ещё кучу всего. Разве нет?
>Мидл - самостоятельный разработчик, от него ожидают решений поставленных с расчетом на его компетенцию задач. Пиздуй устраиваться стажером на галеру, через год два станешь мидлом, если не дебил. Задрочить знания на мидла не выйдет, без опыта на реальных проектах ты никогда не поймешь что, зачем, как и почему делается.
А почему я не могу решать те же самые задачи прямо сейчас? Это же не первые задачи в моей жизни. Я их немало уже нарешал. Так зачем мне их решать теперь ещё и стажёром на галере, когда я мог бы решать те же самые задачи в нормальной конторе, оформившись мидлом в штат?
Мне кажется, вы переоцениваете значимость своего опыта. Неужто до того, как вы два года чем-то позанимались, вы не могли точно такие же задачи решить в принципе? Ну как так-то? Всё же когда-то бывает в первый раз.
>>244336
>Ты, говоря откровенно, шизофреник какой-то. Тебе никто пока этого прямо не сказал, вроде, но у тебя точно такие же поверхностные знания во всех остальных языках и технологиях, какие ты упоминал.
А какие там должны быть особенные знания? Доскональное знание устройства сборщиков мусора? Доскональное знание реализации интерфейсов и множественного наследования? А зачем, когда инструментами можно просто пользоваться? Ну ведь там везде одно и то же. Какая разница на чём писать?
Ну допустим, поверхностно я знаю какую-то технологию. Ну так знаю же. Начну разбирать соответствующий код - разберусь досконально. А что, какой-то мидл за два года работы на галере досконально разобрал вообще всё, даже небо, даже Аллаха? А я за годы своих пет-проектов не разобрался досконально вообще ни в чём? А как это? Почему?
>На реальном проекте ты не просто обосрёшся, тебя к нему не подпустят, потому что быстро поймут, что с тобой что-то не так.
А точно со мной что-то не так? А не гонишь?
>Не из-за коммерческого стажа и всё такое, обрати внимание. Ты объективно пока не способен что-то боевое делать, как шестнадцатилетний олимпиадник.
Не понимаю. Боевое - это что? А мои проекты - это не боевое? Почему? Потому что не продано никому? Потому что об этом нет записи в трудовой? Как ты это определил, что я ни на что не способен?
>Твоя уверенность в том, что ты на самом деле хорош, обусловлена тем, что ты никогда всерьез не сталкивался с настоящими программистами и не можешь трезво оценить свой уровень.
Как это я не сталкивался?
Я же видел, как люди пишут код. Я чужие библиотеки смотрел. Переписывал. Свои писал. Почему я не могу оценить свой уровень, а ты, даже не глянув в мои исходники, мой оцениваешь? Потому что я не использовал докер? Так когда я начинал программировать - его не было. Когда он появился, в каком году? Да не важно в каком году, его не было.
>Выходи из манямирка и занимайся делом, в треде тебе уже на всё ответили и дали понять, что просто так тебе в руки ничего не упадёт с неба.
Слушай, но ведь пилить чатики по туториалам - это ХУЙНЯ по сравнению с тем, что я делал. Ну правда хуйня. Может у меня был где-то говнокод. Я не работал в команде. Не пользовался докерами и гитхабами. Пилил десктопные приложения, а не веб-сервисы. Но пилить чатики - это ну хуй знает... Ну вот как если бы тебе сейчас сказали пилить чатики по туториалам. Якобы тебе не хватает опыта в пилении чатиков. А ты их кучу уже напилил, только на других языках. Ну напишешь ты чатик на новом языке, ну я напишу, это-то не проблема, но что это даст?
>>244425
А я думал это называется уверенность в своих силах. А оказывается это называется "душнила ебаный". А это точно во мне проблема? Нет, точно?
Я не "нихуя не умею". Я много чего умею. Может быть не умею чего-то нужного. Ну что же мне, в одиночку реализовать проект какой-нибудь крупной конторы только для того, чтобы доказать, что я смог бы в ней работать, зная вообще прям всё? Ну лет десять у меня на это уйдёт. К тому времени окажется, что докером уже десять лет, как никто не пользуется, на сишарпе давно уже никто не пишет, и надо было мне либо нанимать команду в двести человек, либо переучиваться по новой и начинать пилить более современный проект этой же конторы, опять же, только чтобы доказать, что я мог бы над ним работать и в этой конторе, если бы они меня взяли, но они меня возьмут не раньше следующих десяти лет.
>>Но это же не значит, что мой код ему не соответствует.
>Значит.
Хм, а ты его видел?
ну, допустим, где-то не будет соответствовать, хотя должен был. Отрефакторю.
>>Ну какие-то докеры на кой-то хер разворачивают, честно, я не понимаю, зачем.
>Если ты не понимаешь, ты даже не джун.
Ой ли? А до появления докера не существовало не то что помидоров, но даже джунов?
>>Никто не носится с ним как угорелый, и не пихает эту инверсию зависимостей везде просто чтобы было. А применяют там, где оно действительно нужно, где иначе просто заебёшься без него.
>Как ты поймешь, где нужно, а где нет?
По опыту. Если чувствую, что без разделения зависимостей может быть жопа, то разделю. Если чувствую, что и так сойдёт, то так и оставлю. Если не планируется какого-либо расширения конкретно данного функционала, то и незачем к нему приделывать и возможность написания плагинов, и возможность замены чего угодно на что угодно, и ещё кучу всего. Разве нет?
>Мидл - самостоятельный разработчик, от него ожидают решений поставленных с расчетом на его компетенцию задач. Пиздуй устраиваться стажером на галеру, через год два станешь мидлом, если не дебил. Задрочить знания на мидла не выйдет, без опыта на реальных проектах ты никогда не поймешь что, зачем, как и почему делается.
А почему я не могу решать те же самые задачи прямо сейчас? Это же не первые задачи в моей жизни. Я их немало уже нарешал. Так зачем мне их решать теперь ещё и стажёром на галере, когда я мог бы решать те же самые задачи в нормальной конторе, оформившись мидлом в штат?
Мне кажется, вы переоцениваете значимость своего опыта. Неужто до того, как вы два года чем-то позанимались, вы не могли точно такие же задачи решить в принципе? Ну как так-то? Всё же когда-то бывает в первый раз.
>>244336
>Ты, говоря откровенно, шизофреник какой-то. Тебе никто пока этого прямо не сказал, вроде, но у тебя точно такие же поверхностные знания во всех остальных языках и технологиях, какие ты упоминал.
А какие там должны быть особенные знания? Доскональное знание устройства сборщиков мусора? Доскональное знание реализации интерфейсов и множественного наследования? А зачем, когда инструментами можно просто пользоваться? Ну ведь там везде одно и то же. Какая разница на чём писать?
Ну допустим, поверхностно я знаю какую-то технологию. Ну так знаю же. Начну разбирать соответствующий код - разберусь досконально. А что, какой-то мидл за два года работы на галере досконально разобрал вообще всё, даже небо, даже Аллаха? А я за годы своих пет-проектов не разобрался досконально вообще ни в чём? А как это? Почему?
>На реальном проекте ты не просто обосрёшся, тебя к нему не подпустят, потому что быстро поймут, что с тобой что-то не так.
А точно со мной что-то не так? А не гонишь?
>Не из-за коммерческого стажа и всё такое, обрати внимание. Ты объективно пока не способен что-то боевое делать, как шестнадцатилетний олимпиадник.
Не понимаю. Боевое - это что? А мои проекты - это не боевое? Почему? Потому что не продано никому? Потому что об этом нет записи в трудовой? Как ты это определил, что я ни на что не способен?
>Твоя уверенность в том, что ты на самом деле хорош, обусловлена тем, что ты никогда всерьез не сталкивался с настоящими программистами и не можешь трезво оценить свой уровень.
Как это я не сталкивался?
Я же видел, как люди пишут код. Я чужие библиотеки смотрел. Переписывал. Свои писал. Почему я не могу оценить свой уровень, а ты, даже не глянув в мои исходники, мой оцениваешь? Потому что я не использовал докер? Так когда я начинал программировать - его не было. Когда он появился, в каком году? Да не важно в каком году, его не было.
>Выходи из манямирка и занимайся делом, в треде тебе уже на всё ответили и дали понять, что просто так тебе в руки ничего не упадёт с неба.
Слушай, но ведь пилить чатики по туториалам - это ХУЙНЯ по сравнению с тем, что я делал. Ну правда хуйня. Может у меня был где-то говнокод. Я не работал в команде. Не пользовался докерами и гитхабами. Пилил десктопные приложения, а не веб-сервисы. Но пилить чатики - это ну хуй знает... Ну вот как если бы тебе сейчас сказали пилить чатики по туториалам. Якобы тебе не хватает опыта в пилении чатиков. А ты их кучу уже напилил, только на других языках. Ну напишешь ты чатик на новом языке, ну я напишу, это-то не проблема, но что это даст?
>>244425
А я думал это называется уверенность в своих силах. А оказывается это называется "душнила ебаный". А это точно во мне проблема? Нет, точно?
Я не "нихуя не умею". Я много чего умею. Может быть не умею чего-то нужного. Ну что же мне, в одиночку реализовать проект какой-нибудь крупной конторы только для того, чтобы доказать, что я смог бы в ней работать, зная вообще прям всё? Ну лет десять у меня на это уйдёт. К тому времени окажется, что докером уже десять лет, как никто не пользуется, на сишарпе давно уже никто не пишет, и надо было мне либо нанимать команду в двести человек, либо переучиваться по новой и начинать пилить более современный проект этой же конторы, опять же, только чтобы доказать, что я мог бы над ним работать и в этой конторе, если бы они меня взяли, но они меня возьмут не раньше следующих десяти лет.
>Да почему охуел-то? Потому что не хочу работать бесплатно
Нет, ты охуел, потому что, хочешь чтобы тебя взяли на работу без релевантного опыта, на основании только твоих слов о том какой ты охуенный и обещаний нагуглить все при необходимости. И еще платили бабки за твое пиздобольство.
>>244445
>А нету. Это ещё до гитхабов, в основном было.
Ты из какой пещеры вылез?
Гитхаб в 2008-м появился. Если ты после этого, ничего серьезного не делал, то весь твой опыт можешь слить в унитаз, он не актуален.
> А именно?
Обсёр в твоём поведении. Тебе на твое долбоебство прямо говорят, что это хуйня, а ты в ответ ещё три долбоебских вопроса и пять гипотетических ситуаций придумываешь. Ну как они поймут, что нет Ламборджини? Ну может же в гараже стоять, российские дороги не очень подходят для регулярной езды. Да и дороже станет в гараже у бабушки она за пятьдесят лет стояния. Нет, вот ты мне объясни, ну может же у моей бабушки Москвич-412 стоять? А почему Ламба не может? Может, мне трёшка на Тверской перепала от другой бабки, ну я разменял её на трёшку в Питере и на сдачу купил Ламбу. Нет, скажи, в чем тут может быть проблема, можешь мне объяснить?
Объясняю: проблема пока что в тебе, ты ёбнутый.
> И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
Не может быть такого.
> С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
Я там конкретно говорил про сериализацию и десериализацию. Ты с ней не работал на промышленных проектах и вообще нихуя не понимаешь, когда говоришь о ней.
> Ок, я не вызубрил наизусть формулировку принципов.
Я вообще всегда на собесах прямо говорю, что никогда не заучивал эту залупу и формулировки каждый раз сам придумываю. Ты не понимаешь, что жизнь -- это не экзамен, к которому надо прочитать книжку, подготовиться и сдать.
> Просто применять правильные принципы не катит?
Представляю, как бы ты Open-Closed применил с твоим пониманием, лол. За L-то пояснить нам сможешь кратко, как если бы на собесе отвечал? С гуглом, как ты любишь.
> А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
Потому что твоя задача ёбнутая и твоё решение непригодно для бизнеса. В реальности была бы графовая БД как минимум, а ты какую-то околоолимпиадную графовую хуйню на коленке делал в отсутствие реальных задач.
> я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил
Твой фейл в том, что ты не догадался тесты написать.
> когда удалил динамическую переменную, а указатель на неё остался
Туда же. Видишь, тестировать-то ты умеешь, говоришь, только не тестировал почему-то.
> Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
Я верю. В тринадцать лет я на ассемблере похожей хуйнёй занимался и из отладчика не вылезал. Я был юн, глуп, наивен и так же неадекватно оценивал свои скиллы, как и ты.
> Ну а может я с похожим языком возился?
Вопрос был не про язык, а про популярную библиотеку для маппинга. Альтернативные есть и для джавы, и для PHP, и для чего угодно. Нормальный разработчик может плюсы и минусы использования таких библиотек оценить.
> Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
Я пиздел последний раз в универе, тут я тебе не советчик. Советую не пытаться пиздеть, потому что ты вообще никакого представления об отрасли не имеешь.
> Естественно, перед собеседованием книжку какую-нибудь прочитаю, что-нибудь на нём напишу. Хуйню какую-нибудь для мобилки, чисто для себя. А на собеседовании напизжу, что написал дохуя всего, для больших и малых коммерческих предприятий, в городе рядом с бабушкиной дачей, на которой ламборджини стоит. Неужто не прокатит?
Ну тебя отсобеседуют до конца и на этом всё закончится. Максимум тебя собеседующий вспомнит, когда с друзьями будет в баре пиво пить и рассказывать, что забавного было в последнее время.
> Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
Не стоит, потому что лично ты не вывезешь. Это только в твоём манямирке так можно, на самом деле.
>>244479
> А я думал это называется уверенность в своих силах.
Эта уверенность от какой-то ментальной болезни и от того, что ты самый умный в комнате.
Слушай, пошёл вообще на хуй, шиз, я на тебя слишком много времени проебал.
> А именно?
Обсёр в твоём поведении. Тебе на твое долбоебство прямо говорят, что это хуйня, а ты в ответ ещё три долбоебских вопроса и пять гипотетических ситуаций придумываешь. Ну как они поймут, что нет Ламборджини? Ну может же в гараже стоять, российские дороги не очень подходят для регулярной езды. Да и дороже станет в гараже у бабушки она за пятьдесят лет стояния. Нет, вот ты мне объясни, ну может же у моей бабушки Москвич-412 стоять? А почему Ламба не может? Может, мне трёшка на Тверской перепала от другой бабки, ну я разменял её на трёшку в Питере и на сдачу купил Ламбу. Нет, скажи, в чем тут может быть проблема, можешь мне объяснить?
Объясняю: проблема пока что в тебе, ты ёбнутый.
> И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
Не может быть такого.
> С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
Я там конкретно говорил про сериализацию и десериализацию. Ты с ней не работал на промышленных проектах и вообще нихуя не понимаешь, когда говоришь о ней.
> Ок, я не вызубрил наизусть формулировку принципов.
Я вообще всегда на собесах прямо говорю, что никогда не заучивал эту залупу и формулировки каждый раз сам придумываю. Ты не понимаешь, что жизнь -- это не экзамен, к которому надо прочитать книжку, подготовиться и сдать.
> Просто применять правильные принципы не катит?
Представляю, как бы ты Open-Closed применил с твоим пониманием, лол. За L-то пояснить нам сможешь кратко, как если бы на собесе отвечал? С гуглом, как ты любишь.
> А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
Потому что твоя задача ёбнутая и твоё решение непригодно для бизнеса. В реальности была бы графовая БД как минимум, а ты какую-то околоолимпиадную графовую хуйню на коленке делал в отсутствие реальных задач.
> я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил
Твой фейл в том, что ты не догадался тесты написать.
> когда удалил динамическую переменную, а указатель на неё остался
Туда же. Видишь, тестировать-то ты умеешь, говоришь, только не тестировал почему-то.
> Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
Я верю. В тринадцать лет я на ассемблере похожей хуйнёй занимался и из отладчика не вылезал. Я был юн, глуп, наивен и так же неадекватно оценивал свои скиллы, как и ты.
> Ну а может я с похожим языком возился?
Вопрос был не про язык, а про популярную библиотеку для маппинга. Альтернативные есть и для джавы, и для PHP, и для чего угодно. Нормальный разработчик может плюсы и минусы использования таких библиотек оценить.
> Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
Я пиздел последний раз в универе, тут я тебе не советчик. Советую не пытаться пиздеть, потому что ты вообще никакого представления об отрасли не имеешь.
> Естественно, перед собеседованием книжку какую-нибудь прочитаю, что-нибудь на нём напишу. Хуйню какую-нибудь для мобилки, чисто для себя. А на собеседовании напизжу, что написал дохуя всего, для больших и малых коммерческих предприятий, в городе рядом с бабушкиной дачей, на которой ламборджини стоит. Неужто не прокатит?
Ну тебя отсобеседуют до конца и на этом всё закончится. Максимум тебя собеседующий вспомнит, когда с друзьями будет в баре пиво пить и рассказывать, что забавного было в последнее время.
> Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
Не стоит, потому что лично ты не вывезешь. Это только в твоём манямирке так можно, на самом деле.
>>244479
> А я думал это называется уверенность в своих силах.
Эта уверенность от какой-то ментальной болезни и от того, что ты самый умный в комнате.
Слушай, пошёл вообще на хуй, шиз, я на тебя слишком много времени проебал.
Ок, допустим, что это обсер.
А с чего ты взял, что я не почитал-то? Ты помнишь всё, что когда-либо прочитал? Ни буквы не забываешь? И прямо сразу всё понимаешь на сто процентов? Ну не понял я, что хотел сказать автор, может он так объяснял. Сейчас вот зашёл в википедию и прочитал, там понятней написано. Да какая разница, если я эти принципы интуитивно знаю? Я к ним (хоть и не ко всем) на опыте сам пришёл. А мне говорят "нет опыта, нихуя ты не знаешь, ламборджини у бабушки на даче, ага, как же".
А что, ООП не поддерживает принцип открытости-закрытости? Я описываю объект. Ты от него наследуешь свой. Функциональность моего объекта расширена? Расширена. Его код остался неизменным? Остался. Это принцип SOLID? Да, это он. Непонятно только нахуя его дублировать в каком-то отдельно вымученном, высосанном из пальца искусственно сложенном в виде аббревиатуры иностранном слове?
И то, что у меня в private - это как раз закрытая и защищённая от изменений реализация. Реализация, в детали которой не нужно вмешиваться без особой на то необходимости. Не закрытость это? А что? А в чём принципиальная разница?
Ну ок, хорошо, я путаю тёплое с мягким. Но делаю. Но я ведь прошу на работу меня взять программистом, а не говоруном. Я же не преподавателем в университет устраиваюсь, а проекты пилить.
>>244438
Да хуй знает. Нету чего-то одного, на чём бы я суперсерьёзно специализировался. Мне казалось, что не важно, на чём писать. Разве нет? На чём надо - на том и пишешь. Что, не так? Поэтому у меня проекты на разных языках. И в разных областях. И ни одного из них коммерческого. Хотя некоторые из них можно было бы в своё время продать, аналоги продавали. Но теперь они все не актуальны.
Опять же, вот тут говорят "заинтересуй работодателя своими проектами". А про резюме пишут, что их даже не читают, а на третью страницу вообще никогда не заглядывают. Так что мне, туда ссылки на гитхаб пихать? Или сразу скриншоты распечатывать? И что, хрюша полезет на гитхаб проверять, что я там написал? Ну увидит она какой-нибудь древний делфи код. Скажет "а не, нам сишарписты нужны, делфи это не к нам". Идти в делфисты?
А потом когда он окончательно умрёт - всё-таки годами пилить чатики на сишарпе и зубрить определения принципов солид, чтобы доказать, что я могу пилить что-то и на великом и ужасном сишарпе?
Ок, допустим, что это обсер.
А с чего ты взял, что я не почитал-то? Ты помнишь всё, что когда-либо прочитал? Ни буквы не забываешь? И прямо сразу всё понимаешь на сто процентов? Ну не понял я, что хотел сказать автор, может он так объяснял. Сейчас вот зашёл в википедию и прочитал, там понятней написано. Да какая разница, если я эти принципы интуитивно знаю? Я к ним (хоть и не ко всем) на опыте сам пришёл. А мне говорят "нет опыта, нихуя ты не знаешь, ламборджини у бабушки на даче, ага, как же".
А что, ООП не поддерживает принцип открытости-закрытости? Я описываю объект. Ты от него наследуешь свой. Функциональность моего объекта расширена? Расширена. Его код остался неизменным? Остался. Это принцип SOLID? Да, это он. Непонятно только нахуя его дублировать в каком-то отдельно вымученном, высосанном из пальца искусственно сложенном в виде аббревиатуры иностранном слове?
И то, что у меня в private - это как раз закрытая и защищённая от изменений реализация. Реализация, в детали которой не нужно вмешиваться без особой на то необходимости. Не закрытость это? А что? А в чём принципиальная разница?
Ну ок, хорошо, я путаю тёплое с мягким. Но делаю. Но я ведь прошу на работу меня взять программистом, а не говоруном. Я же не преподавателем в университет устраиваюсь, а проекты пилить.
>>244438
Да хуй знает. Нету чего-то одного, на чём бы я суперсерьёзно специализировался. Мне казалось, что не важно, на чём писать. Разве нет? На чём надо - на том и пишешь. Что, не так? Поэтому у меня проекты на разных языках. И в разных областях. И ни одного из них коммерческого. Хотя некоторые из них можно было бы в своё время продать, аналоги продавали. Но теперь они все не актуальны.
Опять же, вот тут говорят "заинтересуй работодателя своими проектами". А про резюме пишут, что их даже не читают, а на третью страницу вообще никогда не заглядывают. Так что мне, туда ссылки на гитхаб пихать? Или сразу скриншоты распечатывать? И что, хрюша полезет на гитхаб проверять, что я там написал? Ну увидит она какой-нибудь древний делфи код. Скажет "а не, нам сишарписты нужны, делфи это не к нам". Идти в делфисты?
А потом когда он окончательно умрёт - всё-таки годами пилить чатики на сишарпе и зубрить определения принципов солид, чтобы доказать, что я могу пилить что-то и на великом и ужасном сишарпе?
> Это как?
>>244164
Вот мне надо создать json. Беру библиотеку, там какая-нибудь функция вроде object_to_json, (в каждом языке своя, допустим, я последние три года больше на похапэ программировал, а шарп самую малость подзабыл, но вспомню бля ваще не вопрос, я же не лох какой-то, чтобы наизусть все константы помнить) получаю строку, которую пихаю в запрос или в ответ на запрос. А что надо знать ещё про json? Разве недостаточно просто знать, что он есть и его можно использовать при необходимости? Как и XML? Ну выбрал кто-то XML для хранения каких-то данных. Нам надо с ними работать. Берём и работаем. Опять же, есть библиотеки, которые позволяют эти данные распарсить. Надо - сам распарсить могу. Что такого у меня могут спросить, что из неответа на этот вопрос будет следовать, что не бывать мне мидлом?
Представь только: он это всерьез говорит в мире перекладывания JSON'ов из микросервиса в микросервис.
Зачем тебе вообще C#? Выбор не между делфи и шарпом, если ты не в мухосранске живешь конешн, хотя и там мб норм.
>>244500
> private - это как раз закрытая и защищённая от изменений реализация.
private не защищает от изменения кода
> а не говоруном
но говорить то придется, понимая других -- проще и тебе, и другим.
> туда ссылки на гитхаб пихать
а че нет?
> древний делфи код
Если напилишь туда все те модные/полезные вещи типа докера, как писали синьоры выше -- увидит что понимаешь такое, а понимание синтаксиса можно и по проще показать
>>Да почему охуел-то? Потому что не хочу работать бесплатно
>Нет, ты охуел, потому что, хочешь чтобы тебя взяли на работу без релевантного опыта, на основании только твоих слов о том какой ты охуенный и обещаний нагуглить все при необходимости. И еще платили бабки за твое пиздобольство.
Но ведь я действительно нагуглю. И это не пиздобольство.
А ты не гуглишь? Прям всё знаешь?
>>А нету. Это ещё до гитхабов, в основном было.
>Ты из какой пещеры вылез?
>Гитхаб в 2008-м появился. Если ты после этого, ничего серьезного не делал, то весь твой опыт можешь слить в унитаз, он не актуален.
То есть то, что до 2008 делалось - это не программирование вообще, а так, баловство? А не баловство это только то, что с докерами на сишарпе?
Не актуальны программы, которые я делал - это да. Но опыт - разве он не универсален? Задачи-то те же самые. Принципы те же самые. Языки другие - так я и другие языки знаю, более свежие, и на них мог бы писать, успешно пишу. Только не переписывать же на них свои уже давно не актуальные проекты, которые выполняют не актуальные функции, это было бы нелепо. Какой-то новый функционал писать - а какой? Парсить сайты? Интернет-магазины клепать? Чатики? CMS свою написать? CRM? Мобильные приложения? Но ведь это по большому счёту те же яйца, только в профиль. Ну заебусь, сделаю, и дальше что? Ничего же не изменится.
За что-то сложное в качестве пет-проекта я уже не возьмусь. На это может уйти год, а то ещё и не один. Чтобы потом мне сказали, что это опыт, который надо слить в унитаз, так как всё это уже не актуально? Ну такое.
А в чем он не прав если конкретнее? Просто интересно, сам не шарю. Могу предположить либо что имеется в виду распространенность json'a, либо про безопасность что-то..
В мире победившего REST'а и вездесущих крудов той хуйней, что он несёт, автоматически занимаются фреймворки. Разговор вообще идёт о довольно абстрактных вещах широкими мазками, а он какую-то хуйню про ручной вызов методов сериализации несёт.
Хочется верить, что какому-нибудь работяге не нужно будет техническое собеседование с этой обезьяной бешеной проводить, такой беспокойный ум хрюши по-хорошему не должны пустить дальше ознакомительного десятиминутного звонка. Они вообще чёт поумнели в последнее время и в епаме и паре контор меня довольно нескриптово и с достаточным пониманием вопроса спрашивали про SOLID, потокобезопасные коллекции и ещё что-то.
>> И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
>Не может быть такого.
Почему же? Ты исходишь из того, что я дебил. А дебил я потому что я дебил. Это не обоснование.
>> С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
>Я там конкретно говорил про сериализацию и десериализацию. Ты с ней не работал на промышленных проектах и вообще нихуя не понимаешь, когда говоришь о ней.
Мы там вроде про json и xml говорили. При чём тут сериализация и десериализация на промышленных проектах? Может, ты думал о чём-то своём, когда читал мой пост? А дебил в итоге я?
>> Ок, я не вызубрил наизусть формулировку принципов.
>Я вообще всегда на собесах прямо говорю, что никогда не заучивал эту залупу и формулировки каждый раз сам придумываю. Ты не понимаешь, что жизнь -- это не экзамен, к которому надо прочитать книжку, подготовиться и сдать.
Да это я понимаю. У меня такое впечатление, что вы все не понимаете. Я говорю, я умею программировать. А вы все хором - нет, не умеешь, ты ещё экзамен не сдал!
>> Просто применять правильные принципы не катит?
>Представляю, как бы ты Open-Closed применил с твоим пониманием, лол. За L-то пояснить нам сможешь кратко, как если бы на собесе отвечал? С гуглом, как ты любишь.
С гуглом - слишком просто. Я по своим записям отвечу. Мы ж тут не на экзамене, я не готовился.
Ну ты прав, объяснить сложно, почему нельзя наследовать пользователя от телефона, а поезд от автомобиля. А не наследовать - просто.
Недостаточно просто не наследовать? Надо именно принцип сформулировать?
Хорошо, классы наследники должны удовлетворять тем же требованиям, которые предъявляются и к тем классам, от которых они наследуются. Для чего? Чтобы при подаче класса-наследника в другую часть программы там ничего не поломалось. Ну я понимаю этот принцип как-то так. Что, опять не так?
Что, это не тот принцип? Вообще не то? Что, если я эту аббревиатуру не вызубрил, то мой код не может этому принципу следовать? Но он, вроде бы, очевиден. В любой книжке по ООП учат именно так. Нет? Ну объясни мне, в чём я опять неправ и почему должен был два года отпахать бесплатно стажёром на галере, чтобы мне открылся свет истины?
>> А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
>Потому что твоя задача ёбнутая и твоё решение непригодно для бизнеса. В реальности была бы графовая БД как минимум, а ты какую-то околоолимпиадную графовую хуйню на коленке делал в отсутствие реальных задач.
Ну допустим. Так ведь не было тогда графовых БД. Ну по крайней мере мне тогда об этом не было известно. А теперь всё это можно и тупо в памяти сделать. И я бы делал по-другому. Но чем же это не опыт?
>> я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил
>Твой фейл в том, что ты не догадался тесты написать.
Нет, тесты тут не помогли бы. Чтобы этот баг проявился, нужен был очень большой тест, который на этапе написания программы не был бы пройден до конца ни разу.
Да, был и такой фейл, когда я исправлял ошибки в одном месте, а они появлялись в другом, и так по кругу. А потом я всё-таки догадался написать тесты. И сам изобрёл кейс-тестирование ещё до того, как прочитал что-либо о нём. И это не опыт?
И, кстати, я знаю, что такое тесты и зачем они нужны, и как они помогают в разработке. А не это ли нужно уметь программисту? Или складно пиздеть про солид-принципы и собственные фейлы на собеседовании важнее?
>> когда удалил динамическую переменную, а указатель на неё остался
>Туда же. Видишь, тестировать-то ты умеешь, говоришь, только не тестировал почему-то.
Москва не сразу строилась. Сначала не тестировал, потом тестировал. Так это и есть опыт. А иначе на хуй он нужен, если от его приобретения ничего не меняется?
Что, нескладно пизжу?
>> Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
>Я верю. В тринадцать лет я на ассемблере похожей хуйнёй занимался и из отладчика не вылезал. Я был юн, глуп, наивен и так же неадекватно оценивал свои скиллы, как и ты.
Ну то есть твой опыт ассемблера - это мусор? А что не мусор? Докер? Чатики на сишарпе?
>> Ну а может я с похожим языком возился?
>Вопрос был не про язык, а про популярную библиотеку для маппинга. Альтернативные есть и для джавы, и для PHP, и для чего угодно. Нормальный разработчик может плюсы и минусы использования таких библиотек оценить.
И что, каждый мидл пользовался этими библиотеками? Прямо каждый? И что, никто не мог пару лет пилить какой-нибудь коммерческий проект и ни разу с такой библиотекой не столкнуться?
>> Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
>Я пиздел последний раз в универе, тут я тебе не советчик. Советую не пытаться пиздеть, потому что ты вообще никакого представления об отрасли не имеешь.
Ладно, я принял твой совет.
>> Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
>Не стоит, потому что лично ты не вывезешь. Это только в твоём манямирке так можно, на самом деле.
Но ведь другие же вывозят. По крайней мере на собеседовании. В итоге их зовут выходить мидлами, хотя они реально знают меньше моего. Как так?
>Слушай, пошёл вообще на хуй, шиз, я на тебя слишком много времени проебал.
Грубый ты. Как будто я виноват, что ты время на дваче проёбываешь. Сам туда иди. Или оставайся.
>> И пошёл с его проектом на собес, и там пересказал то, что я ПОНЯЛ своими словами. Не может быть такого?
>Не может быть такого.
Почему же? Ты исходишь из того, что я дебил. А дебил я потому что я дебил. Это не обоснование.
>> С чем "таким"? А может имел? А может в другой какой-то говноконторе всё было совсем не так, как у вас. Такого не может быть?
>Я там конкретно говорил про сериализацию и десериализацию. Ты с ней не работал на промышленных проектах и вообще нихуя не понимаешь, когда говоришь о ней.
Мы там вроде про json и xml говорили. При чём тут сериализация и десериализация на промышленных проектах? Может, ты думал о чём-то своём, когда читал мой пост? А дебил в итоге я?
>> Ок, я не вызубрил наизусть формулировку принципов.
>Я вообще всегда на собесах прямо говорю, что никогда не заучивал эту залупу и формулировки каждый раз сам придумываю. Ты не понимаешь, что жизнь -- это не экзамен, к которому надо прочитать книжку, подготовиться и сдать.
Да это я понимаю. У меня такое впечатление, что вы все не понимаете. Я говорю, я умею программировать. А вы все хором - нет, не умеешь, ты ещё экзамен не сдал!
>> Просто применять правильные принципы не катит?
>Представляю, как бы ты Open-Closed применил с твоим пониманием, лол. За L-то пояснить нам сможешь кратко, как если бы на собесе отвечал? С гуглом, как ты любишь.
С гуглом - слишком просто. Я по своим записям отвечу. Мы ж тут не на экзамене, я не готовился.
Ну ты прав, объяснить сложно, почему нельзя наследовать пользователя от телефона, а поезд от автомобиля. А не наследовать - просто.
Недостаточно просто не наследовать? Надо именно принцип сформулировать?
Хорошо, классы наследники должны удовлетворять тем же требованиям, которые предъявляются и к тем классам, от которых они наследуются. Для чего? Чтобы при подаче класса-наследника в другую часть программы там ничего не поломалось. Ну я понимаю этот принцип как-то так. Что, опять не так?
Что, это не тот принцип? Вообще не то? Что, если я эту аббревиатуру не вызубрил, то мой код не может этому принципу следовать? Но он, вроде бы, очевиден. В любой книжке по ООП учат именно так. Нет? Ну объясни мне, в чём я опять неправ и почему должен был два года отпахать бесплатно стажёром на галере, чтобы мне открылся свет истины?
>> А почему? Ты думаешь, я не решал такую задачу? А знаешь, ведь на самом деле я её решал. На самом деле. И решил. Сам. Один. Без чьей-либо помощи. Сам всё придумал, и сам решил. На самом деле. А тебе даже не верится в то, что кто-то мог подобное сделать сам просто потому что ему было интересно решать задачу?
>Потому что твоя задача ёбнутая и твоё решение непригодно для бизнеса. В реальности была бы графовая БД как минимум, а ты какую-то околоолимпиадную графовую хуйню на коленке делал в отсутствие реальных задач.
Ну допустим. Так ведь не было тогда графовых БД. Ну по крайней мере мне тогда об этом не было известно. А теперь всё это можно и тупо в памяти сделать. И я бы делал по-другому. Но чем же это не опыт?
>> я там где-то в проекте на тысячи строк кода в одной из процедур указатель на next не туда направил
>Твой фейл в том, что ты не догадался тесты написать.
Нет, тесты тут не помогли бы. Чтобы этот баг проявился, нужен был очень большой тест, который на этапе написания программы не был бы пройден до конца ни разу.
Да, был и такой фейл, когда я исправлял ошибки в одном месте, а они появлялись в другом, и так по кругу. А потом я всё-таки догадался написать тесты. И сам изобрёл кейс-тестирование ещё до того, как прочитал что-либо о нём. И это не опыт?
И, кстати, я знаю, что такое тесты и зачем они нужны, и как они помогают в разработке. А не это ли нужно уметь программисту? Или складно пиздеть про солид-принципы и собственные фейлы на собеседовании важнее?
>> когда удалил динамическую переменную, а указатель на неё остался
>Туда же. Видишь, тестировать-то ты умеешь, говоришь, только не тестировал почему-то.
Москва не сразу строилась. Сначала не тестировал, потом тестировал. Так это и есть опыт. А иначе на хуй он нужен, если от его приобретения ничего не меняется?
Что, нескладно пизжу?
>> Главное, ты-то мне веришь, что я эту проблему действительно мог решить? Вот лично ты - веришь? А если нет, то почему?
>Я верю. В тринадцать лет я на ассемблере похожей хуйнёй занимался и из отладчика не вылезал. Я был юн, глуп, наивен и так же неадекватно оценивал свои скиллы, как и ты.
Ну то есть твой опыт ассемблера - это мусор? А что не мусор? Докер? Чатики на сишарпе?
>> Ну а может я с похожим языком возился?
>Вопрос был не про язык, а про популярную библиотеку для маппинга. Альтернативные есть и для джавы, и для PHP, и для чего угодно. Нормальный разработчик может плюсы и минусы использования таких библиотек оценить.
И что, каждый мидл пользовался этими библиотеками? Прямо каждый? И что, никто не мог пару лет пилить какой-нибудь коммерческий проект и ни разу с такой библиотекой не столкнуться?
>> Ну расскажи сам, как надо пиздеть, чтобы не пахло пиздоболом? Особенно, если плаваешь в вопросе?
>Я пиздел последний раз в универе, тут я тебе не советчик. Советую не пытаться пиздеть, потому что ты вообще никакого представления об отрасли не имеешь.
Ладно, я принял твой совет.
>> Не стоит ли вместо йоба-чатика сразу напиздеть себе опыт побольше? Вот к чему весь этот спич.
>Не стоит, потому что лично ты не вывезешь. Это только в твоём манямирке так можно, на самом деле.
Но ведь другие же вывозят. По крайней мере на собеседовании. В итоге их зовут выходить мидлами, хотя они реально знают меньше моего. Как так?
>Слушай, пошёл вообще на хуй, шиз, я на тебя слишком много времени проебал.
Грубый ты. Как будто я виноват, что ты время на дваче проёбываешь. Сам туда иди. Или оставайся.
>Зачем тебе вообще C#? Выбор не между делфи и шарпом, если ты не в мухосранске живешь конешн, хотя и там мб норм.
Ты мне предлагаешь сейчас пойти в джава тред и поебать мозги им? Или что?
>> private - это как раз закрытая и защищённая от изменений реализация.
>private не защищает от изменения кода
Ну, при наличии исходников можно изменить что угодно. Но я подразумевал, что если класс уже написан, и дохера где используется, то и незачем его переделывать.
А private защищает от изменений логики работы, касающейся этого класса, извне оного.
Ну а что же тогда защищает от изменения?
Может быть я вообще не понимаю этот принцип. А его все тут понимают? Я один не понимаю?
>> а не говоруном
>но говорить то придется, понимая других -- проще и тебе, и другим.
Это верно. Объясняюсь я путано и обычно, наверное, именно вот так, как в этом треде. И вообще я отнюдь не душа компании. Так что, программист ещё и говоруном должен быть? Оратором? Ах да, и ещё английский язык, чтобы на нём комментарии писать, а то я могу только в стиле "from the bottom of my heart".
>> туда ссылки на гитхаб пихать
>а че нет?
Ну ведь не пойдут же смотреть.
>> древний делфи код
>Если напилишь туда все те модные/полезные вещи типа докера, как писали синьоры выше -- увидит что понимаешь такое, а понимание синтаксиса можно и по проще показать
Да там же у меня всё компилируется просто в экзешник, и всё. Ну там, собирается через makefile из отдельных частей. И ничего никуда в итоге не надо инсталлировать, просто запустил и пользуйся. Какие-то компоненты писал для делфей. Довольно замороченные. Но тоже в них нихуя модного. Простого, впрочем, тоже не было, лично для меня. Потому и пришлось изобретать кейс-тестирование, иначе бы просто не допилил, увяз в багах по самое не балуйся. С моей точки зрения всё это опыт, при чём универсальный, который пригодится и сегодня. С точки зрения вышеотписавшихся - всё это можно слить в унитаз, так как не актуально, ибо без докера.
Ну и зачем я вообще это пилил? Зачем время вообще тратил?
>Зачем тебе вообще C#? Выбор не между делфи и шарпом, если ты не в мухосранске живешь конешн, хотя и там мб норм.
Ты мне предлагаешь сейчас пойти в джава тред и поебать мозги им? Или что?
>> private - это как раз закрытая и защищённая от изменений реализация.
>private не защищает от изменения кода
Ну, при наличии исходников можно изменить что угодно. Но я подразумевал, что если класс уже написан, и дохера где используется, то и незачем его переделывать.
А private защищает от изменений логики работы, касающейся этого класса, извне оного.
Ну а что же тогда защищает от изменения?
Может быть я вообще не понимаю этот принцип. А его все тут понимают? Я один не понимаю?
>> а не говоруном
>но говорить то придется, понимая других -- проще и тебе, и другим.
Это верно. Объясняюсь я путано и обычно, наверное, именно вот так, как в этом треде. И вообще я отнюдь не душа компании. Так что, программист ещё и говоруном должен быть? Оратором? Ах да, и ещё английский язык, чтобы на нём комментарии писать, а то я могу только в стиле "from the bottom of my heart".
>> туда ссылки на гитхаб пихать
>а че нет?
Ну ведь не пойдут же смотреть.
>> древний делфи код
>Если напилишь туда все те модные/полезные вещи типа докера, как писали синьоры выше -- увидит что понимаешь такое, а понимание синтаксиса можно и по проще показать
Да там же у меня всё компилируется просто в экзешник, и всё. Ну там, собирается через makefile из отдельных частей. И ничего никуда в итоге не надо инсталлировать, просто запустил и пользуйся. Какие-то компоненты писал для делфей. Довольно замороченные. Но тоже в них нихуя модного. Простого, впрочем, тоже не было, лично для меня. Потому и пришлось изобретать кейс-тестирование, иначе бы просто не допилил, увяз в багах по самое не балуйся. С моей точки зрения всё это опыт, при чём универсальный, который пригодится и сегодня. С точки зрения вышеотписавшихся - всё это можно слить в унитаз, так как не актуально, ибо без докера.
Ну и зачем я вообще это пилил? Зачем время вообще тратил?
> почему нельзя наследовать пользователя от телефона, а поезд от автомобиля.
Это не имеет отношения к L, там грань гораздо тоньше и такие сравнения неуместны.
> Недостаточно просто не наследовать?
Это не имеет отношения к L и не является методом, с помощью которого L соблюдают. L про наследование правильно, а не через жопу.
> Хорошо, классы наследники должны удовлетворять тем же требованиям, которые предъявляются и к тем классам, от которых они наследуются.
Похоже на правду, если не доёбываться, но звучит довольно механически, то есть понимания тобой сути не видно.
> Чтобы при подаче класса-наследника в другую часть программы там ничего не поломалось.
Это абсолютно правильно, но не помогает понять, в чем же конкретно проблема.
L о том, чтобы не тащить в базовый класс много хуйни и чтобы не наследоваться от не совсем подходящих классов. Посмотри классический пример с квадратами и прямоугольниками: http://stg-tud.github.io/sedc/Lecture/ws13-14/3.3-LSP.html#mode=document Square требования соблюдает, как ты и говорил, и вообще является частным случаем Rectangle, как нас в школе учили, но всё ломается всё равно.
Когда наследоваться без соблюдения L нормально не получается, пиздуешь делать всё через O со стандартными обдроченными паттернами для обобщения поведения. O как раз об этом, а не о модификаторах доступа, как ты себе это представлял.
Что не так скажите?
>> Хорошо, классы наследники должны удовлетворять тем же требованиям, которые предъявляются и к тем классам, от которых они наследуются.
>Похоже на правду, если не доёбываться, но звучит довольно механически, то есть понимания тобой сути не видно.
>> Чтобы при подаче класса-наследника в другую часть программы там ничего не поломалось.
>Это абсолютно правильно, но не помогает понять, в чем же конкретно проблема.
Ну хоть что-то правильно. Но есть но.
Ладно. А я и не понимаю, в чём конкретно проблема. Вернее, в чём она может быть с прямоугольниками. И с наследованием квадрата от них. Вот от квадрата наследовать прямоугольник - неправильно. А квадрат от прямоугольника - можно.
А, нет, понял. Если мы где-то потребуем изменить одну сторону квадрата, не изменяя другую, он скажет хрен вам.
Ну это как бы немножко не то, что я имел в виду выше. Требования, которые мы предъявляем к прямоугольникам - имеется в виду требование "быть прямоугольником", а не уметь менять свои размеры. Если мы требуем от прямоугольников не просто быть прямоугольными по факту их создания таковыми, но ещё и, например, произвольно менять свои прямоугольные размеры, то это уже другое требование, и тогда это другое требование должны соблюдать и все наследники, в том числе и квадраты, и тогда квадраты от них наследовать нельзя.
А это не искусственно высосанный из пальца пример? Специально надо высасывать из пальца примеры именно фейлов? Недостаточно понимать, как надо? Обязательно надо красиво формулировать как не надо? Или я опять что-то не то выдал за всем известный кроме меня принцип?
Я сейчас пойду по ссылке почитаю, уже начал читать и понял, в чём проблема, там где появились методы set_height и set_width. Этого мало? Это не то? Это значит, что весь мой код - говнокод?
> джава тред и поебать мозги им
хорошая идея)
> изменение
защищает от изменения возможность расширять без изменений :thinking:
про разговоры - в живую и проще мб, но, как ни грустно, общаться надо
на гитхаб думаю ходят, особенно если резюме не интересное, мб не смотрят особо, но им и не надо прям весь код читать, пару файлов + навороты внешние
время тратил энивей не зря - научился чему-то в процессе, сам же пишешь, что опыт универсальный
Ага, вот и оно, как я и предполагал. То есть для меня это очевидно. Но этого мало? Мало того, что мне это очевидно? А разве очевидность этого для меня - не есть проявление опыта, который, собственно, и является необходимостью для программировании нормального кода?
То есть я должен провести два года на галере стажёром только для того, чтобы понять вот это? Вот это? Два года? На галере? Бесплатно? И я же ещё "охуел" только потому что я не желаю этого делать?
Не, меня уже послали на хуй, я всех заебал, но...
Я может быть и ебанутый, и шиз, и в манямирке. Но в моём манямирке ебанутый не я.
Так это я пишу. А мне пишут, что я ебанутый шиз, а всему моему опыту место в унитазе.
При этом массово дрочат на принципы и статьи, которые для меня очевидны.
Ну это что-то уровня "палка есть нечто, что имеет начало и конец". Гениальная гениальность. И я должен прийти на собеседование и с умным видом рассказывать очевидные вещи, высасывая из пальца примеры детских ошибок, которые я мог бы совершить, если бы у меня было ноль опыта.
Ну для меня это примерно как рассказать, почему именно я поднимаю ноги, когда хожу, для того, чтобы доказать, что я умею ходить. При собеседовании на курьерскую должность. А не на какую-нибудь тренерскую.
И мне говорят "ты не умеешь ходить, ты ёбаный шиз, тебя отсеют ещё на этапе десятиминутного телефонного интервью!"
А я такой: "Да хз, всю жизнь ходил и не падал, почему вдруг я шиз? Ну не учился красиво пиздеть про принципы ходьбы и про возможные фейлы в ней, ну и что, ну ведь ходить-то умею?"
> А это не искусственно высосанный из пальца пример?
Это классический простой пример для иллюстрации того, как легко себя наебать и для чего нужно понимать L, а не зазубривать формулировку. Понимаю, что с шизофренией тяжело воспринимать абстрактные примеры.
> Специально надо высасывать из пальца примеры именно фейлов?
В ООП есть тысяча способов выстрелить себе в ногу. Нарушение L — один из них и очень популярный. Тут всё кровью написано, просто ты на своих хеллоуворлдах не встречал таких проблем.
> Недостаточно понимать, как надо?
Так ты и не понимал, если не смог L пояснить полноценно.
> Обязательно надо красиво формулировать как не надо? Или я опять что-то не то выдал за всем известный кроме меня принцип?
Я только и говорю о том, что формулировка вообще не важна. Механически ты её озвучил, но сути не понял, пока тебе на квадратах не показал дядя Боб. Точно так же, как ты не понимаешь и O. И что угодно ты не понимаешь, ты просто какой-то хуйни по верхам нахватал и думаешь, что готов всех ебать, но ебёшь пока свой кулак.
Лучше бы ты джаву выбрал, бля.
>Ну для меня это примерно как рассказать, почему именно я поднимаю ноги, когда хожу, для того, чтобы доказать, что я умею ходить. При собеседовании на курьерскую должность. А не на какую-нибудь тренерскую.
Шизики плохо умеют в аналогии, не старайся.
Проблема в том, что откуда собеседующими тебя понять, что ты действительно что-то умеешь? Старый код ты не показываешь. Новый не пишешь. И? Будешь на собесе свои охуенные навыки гугления показывать (при хуевом-то знании английского)? Или начнешь им задвигать ту же телегу про "я то в былые времена о-о-о"?
>>244645
>ты ёбаный шиз, тебя отсеют ещё на этапе десятиминутного телефонного интервью!
Плохо разве? Хорошо же.
>> А это не искусственно высосанный из пальца пример?
>Это классический простой пример для иллюстрации того, как легко себя наебать и для чего нужно понимать L, а не зазубривать формулировку. Понимаю, что с шизофренией тяжело воспринимать абстрактные примеры.
Мне тяжело понять, зачем мне иллюстрировать возможность наебать себя самого. В моём понимании это и есть шизофрения.
Разве цель не в том, чтобы научиться, как надо, а в том, чтобы научиться рассказывать, как не надо?
>> Специально надо высасывать из пальца примеры именно фейлов?
>В ООП есть тысяча способов выстрелить себе в ногу. Нарушение L — один из них и очень популярный. Тут всё кровью написано, просто ты на своих хеллоуворлдах не встречал таких проблем.
Пффф. А с чего ты взял, что я писал хеллоуворлды? Я до хера чего писал, и до хрена путаницы в мозгах было до того, как я научился отличать одни сущности от других и распихивать их по разным классам. Ну так научился же. А ты меня убеждаешь, что нет, не могу, невозможно, ведь я не рассказал ещё принципов солид, так как учился программировать, а не рассказывать про принципы солид.
Просто я формально у себя в мозгах это не описывал. Натыкался на проблемы, запоминал, почему я на них наткнулся, и больше старался не ходить по этим граблям, вот и всё. И уж тем более не записывал в книжечку все возможные способы ходить по граблям, чтобы зачитывать их потом на собеседованиях в качестве возможных способов себя наебать. А надо было? А просто не ходить по граблям - не вариант?
>> Недостаточно понимать, как надо?
>Так ты и не понимал, если не смог L пояснить полноценно.
Чего я не понимал? Что если мы предъявляем к прямоугольникам требование изменять независимо их стороны, то надо, например, наоборот прямоугольники от квадратов наследовать? Но ведь я это написал, как только увидел, что это требование к прямоугольникам предъявляется.
Дайте требования, предъявляемые к классам, и я скажу, кто от кого может наследоваться. Очевидно, что тот, к кому не предъявляется требований, отличных от тех, которые предъявляются к какому-либо другому классу, и будет корнем иерархии. А дальше сортируем списки требований, сравниваем, и всё само встаёт на свои места.
Для меня это очевидно. Я составлял всякие иерархии. Но я же не претендую на роль школьного учителя. Я же не прошу доверить мне детей, чтобы я им рассказывал про квадраты и прямоугольники. Я претендую на то, что я уж как-нибудь разберусь с формированием иерархии классов.
А то, что сначала надо определиться с требованиям к самим классам - это как бы очевидно.
>> Обязательно надо красиво формулировать как не надо? Или я опять что-то не то выдал за всем известный кроме меня принцип?
>Я только и говорю о том, что формулировка вообще не важна. Механически ты её озвучил, но сути не понял, пока тебе на квадратах не показал дядя Боб. Точно так же, как ты не понимаешь и O. И что угодно ты не понимаешь, ты просто какой-то хуйни по верхам нахватал и думаешь, что готов всех ебать, но ебёшь пока свой кулак.
А мне непонятно, почему ты уверен, что я ничего не понял. Что, без дяди боба я не увидел бы очевидного в случае с квадратами? Но ведь увидел же. Не дочитывая его нудную статью. По верхам? А что тут ещё глубоко копать? Умение доказать словами, что я способен не только кулак ебать? А просто взять и начать ебать - не вариант, ну понятно. С таким подходом я до сих пор остался бы девственником. Но ведь я же не девственник. Значит, выходит, возможно всё-таки сломать систему. Значит можно просто начать и делать? А не учиться об этом красиво пиздеть, бесплатно нализывая два года манды проституткам для тренировки и развития способностей языка.
Без обид, парни, но это всё как-то похоже на "не служил - не мужик". Типа только в армии тебя всему научат. А сам ты не можешь научиться ну никак.
>Лучше бы ты джаву выбрал, бля.
Неа. Поздно. Я уже Прайса скачал.
>> А это не искусственно высосанный из пальца пример?
>Это классический простой пример для иллюстрации того, как легко себя наебать и для чего нужно понимать L, а не зазубривать формулировку. Понимаю, что с шизофренией тяжело воспринимать абстрактные примеры.
Мне тяжело понять, зачем мне иллюстрировать возможность наебать себя самого. В моём понимании это и есть шизофрения.
Разве цель не в том, чтобы научиться, как надо, а в том, чтобы научиться рассказывать, как не надо?
>> Специально надо высасывать из пальца примеры именно фейлов?
>В ООП есть тысяча способов выстрелить себе в ногу. Нарушение L — один из них и очень популярный. Тут всё кровью написано, просто ты на своих хеллоуворлдах не встречал таких проблем.
Пффф. А с чего ты взял, что я писал хеллоуворлды? Я до хера чего писал, и до хрена путаницы в мозгах было до того, как я научился отличать одни сущности от других и распихивать их по разным классам. Ну так научился же. А ты меня убеждаешь, что нет, не могу, невозможно, ведь я не рассказал ещё принципов солид, так как учился программировать, а не рассказывать про принципы солид.
Просто я формально у себя в мозгах это не описывал. Натыкался на проблемы, запоминал, почему я на них наткнулся, и больше старался не ходить по этим граблям, вот и всё. И уж тем более не записывал в книжечку все возможные способы ходить по граблям, чтобы зачитывать их потом на собеседованиях в качестве возможных способов себя наебать. А надо было? А просто не ходить по граблям - не вариант?
>> Недостаточно понимать, как надо?
>Так ты и не понимал, если не смог L пояснить полноценно.
Чего я не понимал? Что если мы предъявляем к прямоугольникам требование изменять независимо их стороны, то надо, например, наоборот прямоугольники от квадратов наследовать? Но ведь я это написал, как только увидел, что это требование к прямоугольникам предъявляется.
Дайте требования, предъявляемые к классам, и я скажу, кто от кого может наследоваться. Очевидно, что тот, к кому не предъявляется требований, отличных от тех, которые предъявляются к какому-либо другому классу, и будет корнем иерархии. А дальше сортируем списки требований, сравниваем, и всё само встаёт на свои места.
Для меня это очевидно. Я составлял всякие иерархии. Но я же не претендую на роль школьного учителя. Я же не прошу доверить мне детей, чтобы я им рассказывал про квадраты и прямоугольники. Я претендую на то, что я уж как-нибудь разберусь с формированием иерархии классов.
А то, что сначала надо определиться с требованиям к самим классам - это как бы очевидно.
>> Обязательно надо красиво формулировать как не надо? Или я опять что-то не то выдал за всем известный кроме меня принцип?
>Я только и говорю о том, что формулировка вообще не важна. Механически ты её озвучил, но сути не понял, пока тебе на квадратах не показал дядя Боб. Точно так же, как ты не понимаешь и O. И что угодно ты не понимаешь, ты просто какой-то хуйни по верхам нахватал и думаешь, что готов всех ебать, но ебёшь пока свой кулак.
А мне непонятно, почему ты уверен, что я ничего не понял. Что, без дяди боба я не увидел бы очевидного в случае с квадратами? Но ведь увидел же. Не дочитывая его нудную статью. По верхам? А что тут ещё глубоко копать? Умение доказать словами, что я способен не только кулак ебать? А просто взять и начать ебать - не вариант, ну понятно. С таким подходом я до сих пор остался бы девственником. Но ведь я же не девственник. Значит, выходит, возможно всё-таки сломать систему. Значит можно просто начать и делать? А не учиться об этом красиво пиздеть, бесплатно нализывая два года манды проституткам для тренировки и развития способностей языка.
Без обид, парни, но это всё как-то похоже на "не служил - не мужик". Типа только в армии тебя всему научат. А сам ты не можешь научиться ну никак.
>Лучше бы ты джаву выбрал, бля.
Неа. Поздно. Я уже Прайса скачал.
>>Ну для меня это примерно как рассказать, почему именно я поднимаю ноги, когда хожу, для того, чтобы доказать, что я умею ходить. При собеседовании на курьерскую должность. А не на какую-нибудь тренерскую.
>Шизики плохо умеют в аналогии, не старайся.
>Проблема в том, что откуда собеседующими тебя понять, что ты действительно что-то умеешь? Старый код ты не показываешь.
Да могу и показать. А что он даст, если он на других языках?
>Новый не пишешь.
Могу и написать.
>И? Будешь на собесе свои охуенные навыки гугления показывать (при хуевом-то знании английского)?
А я по-русски гуглю. Если надо - могу и по-английски прочитать, но и на русском инфы достаточно.
>Или начнешь им задвигать ту же телегу про "я то в былые времена о-о-о"?
А почему нет? Ты либо умеешь, либо нет. Это как на велосипеде ездить, не разучишься. И как бы ты ни фантазировал, что твой драндулет в миллион раз мощнее и современнее, я просто возьму и поеду на нём. Просто мне говорят, что этот ваш драндулет очень дорого стоит, буквально, 500 тысяч рублей в месяц, и поэтому кто же мне его доверит без опыта-то. И поэтому мне предлагают водить другой точно такой же драндулет бесплатно стажёром два года. И мне кажется, что где-то тут притаилась наёбка.
Что если я просто сделаю тестовое задание?
Ну вот конкретно сюда кто-то запостил требования какого-то работодателя. Я пилю такой проект. Читаю книжку по сишарпу и пилю проект. Потом прихожу сюда, приношу готовый код. Вы смотрите и говорите, что я мудак и всё неправильно сделал, но только конкретно, по факту.
И будет видно, программист я или не программист и имею ли я право перепрыгнуть звание джуна.
Или тестовый проект это по-любому звание джуна, а на мидла нужен именно опыт?
О, заебись.
То есть оказывается, мало поработать года два на галере бесплатно. Надо ещё чтобы галера эта не оказалась говноконторой, а то ведь тогда, получается, можно и десять лет за бесплатно работать, а потом выпиздят на мороз с таким уровнем понимания.
Ну тогда давайте сразу определимся, про какой уровень мы говорим. Речь прямо про Уровень? Это Уровень Конторы, для одного только телефонного собеседования в которой надо закончить с отличием матмех МГУ или что там надо закончить?
Как мне туда попасть без опыта и без диплома? В правильную контору? Похуй кем, похуй какая зарплата. Что надо? Опыт, как мы уже поняли, не поможет. Вон, чувак десять с хуем лет отработал, а его просто выпиздили бы на мороз.
Только не говорите, что невозможно.
Как вообще определить эту контору? Как вообще понять, что в эту контору стремиться надо, а вот в другую, допустим, не надо, потому что она говноконтора. Есть способ понять, что в этой конторе я хоть чему-то научусь, при чём научусь большему, чем тупо говнокодить?
В следующий раз - будьте так добры, поливайте мои посты критикой. А то как-то неловко, всего 3 года работаешь, а уже и говном никто не поливает.
Не забудь только указать, какой грейд ты хочешь. Просто для стажера, джуна и мидал - разные требования к тому как должен выглядеть тестовый проект. Сообщать я их не буду, естественно, чтобы ты просто не копипастнул нужную репку и под себя не захуячил.
Вот это уже похоже на разговор. Приноси, посмотрим. Вон выше чел кидал ссылку на выполненное тестовое - ему очень хорошо по фактам расписали, что и где не так.
>Это как на велосипеде ездить, не разучишься. И как бы ты ни фантазировал, что твой драндулет в миллион раз мощнее и современнее, я просто возьму и поеду на нём.
Нет чувак. Это как если бы ты всю жизнь тошнил в городе дом-работа-дом. А потом приходишь на гоночный трек - "Ребята я ездить умею, прав правда нету, но, бля буду, дайте мне вон тот болид покататься, я не разобью. Честно-честно. Там же хуйня, инструкцию в дороге почитаю."
А разве знание требований к тому, как должен выглядеть тестовый проект, не поможет мне лучше понять то, как и почему именно так он должен выглядеть?
Ну как бы в чём поинт этого всего: Не только доказать, что я не шиз, а и могу пилить годноту, но и подтянуть свой уровень. Я же не говорю, что я знаю всё на свете и мне не нужно учиться. Ок, если чему-то надо учиться и есть такая возможность, то почему нет?
>>244740
Ок. Но только быстро не ждите.
Может, посложнее задание надо, чем у него? А то как-то кнопка, картинка, чисто технически простая задача. Или смысл не в технической сложности, а чтобы через докеры всё это на VPS разворачивать?
>>244743
>Это как если бы ты всю жизнь тошнил в городе дом-работа-дом. А потом приходишь на гоночный трек - "Ребята я ездить умею, прав правда нету
Погоди, но как же я тошнил дом-работа-дом, если прав нет?
>Там же хуйня, инструкцию в дороге почитаю
Но ведь ездил же я на ламборджини по деревне у бабушки, и ничего, норм. Неужели с вашим болидом не справлюсь?
>Я же не говорю, что я знаю всё на свете и мне не нужно учиться. Ок, если чему-то надо учиться и есть такая возможность, то почему нет?
Ну так учись, тебе кто-то мешает? Или ты считаешь тебе тут за просто так кто-то что-то разжует, когда за углом инфоцыгане то же самое за 100К выдают? Иди к ним.
>>244758
>Может, посложнее задание надо, чем у него? А то как-то кнопка, картинка, чисто технически простая задача. Или смысл не в технической сложности, а чтобы через докеры всё это на VPS разворачивать?
Если что, то его задание даже на задание стажера еле дотягивает. Такие вещи обычно решают для закрепления какой-нибудь темы за полчаса после урока.
Вот тебе навскидку пункты которые сейчас бывают обычно в тестовом задании для джуна.
1) Работа с БД. Сюда идет не только работа из приложения, но и минимальное проектирование таблиц по условиям задачи.
2) Должна быть серверная и клиентская часть. Упор на бэк. Фронт должен быть легко заменяем.
3) Конкурентность и многопоточка при работе с БД, например "бронирование товаров на складе с кучи аккаунтов в черную пятницу"
4) Работа с файлами, например сохранить отчет о работе на диск.
5) Какой-нибудь бенчмарк, чтобы проверить, что твое приложение не зависнет если в него сразу пара десятков тысяч запросов поступит
Это так, что в голову пришло. Срок на такое обычно 3 дня.
Требования по архитектуре специально не пишу. Т.к. их никогда не озвучивают, а как раз смотрят, что и как ты сделаешь.
>>244758
>Погоди, но как же я тошнил дом-работа-дом, если прав нет?
Да хуй тебя знает. Может права и есть, но ты их один хрен не показываешь.
>Но ведь ездил же я на ламборджини по деревне у бабушки, и ничего, норм. Неужели с вашим болидом не справлюсь?
Может и ездил, может и нет. Доказательств то нет. Ну и к тому же, ламба имеет мало общего со спортивным болидом.
>моделей или DTO-шек
А кстати где они? Могу предположить что в ХХХ.Model.DAL, но смущает что mapping лежит в ХХХ.DAL, не может же Dal зависеть от Model.
И почему sql лежит в txt?
>Как мне туда попасть без опыта и без диплома? В правильную контору?
Никак. Ну т.е. в чем профиты тебя нанимать, если у тебя ни опыта, ни диплома?
>Опыт, как мы уже поняли, не поможет. Вон, чувак десять с хуем лет отработал, а его просто выпиздили бы на мороз.
Опыт - поможет. Разумеется, можно 10 лет хуйней заниматься, но в целом - даже если ты позанимался пару лет хуйней, можно легко устроиться в другую контору, в которой получишь более релевантный опыт для правильной конторы. Да и вообще - выпиздили в одной, взяли в другой, это не показатель.
>Как вообще определить эту контору? Как вообще понять, что в эту контору стремиться надо, а вот в другую, допустим, не надо, потому что она говноконтора. Есть способ понять, что в этой конторе я хоть чему-то научусь, при чём научусь большему, чем тупо говнокодить?
Охуеть у тебя вопросы. Из разряда "как научиться жить". Это сложные комплексные вопросы со сложными комплексными ответами, и ты думаешь, тебе на дваче смогут это объяснить? Да найдя нормальный ответ на пару-тройку вопросов подобного уровня - уже можно считать, что жизнь удалась. А ответив на десяток - окажешься на вершине мира. Ну ты и спросил же.
>не знает, что такое эксепшены, приходя работать джунами. А я знаю.
Уверен? Один из стандартных вопросов с джуновского собеса: В чем отличие следующих способов проброса исключений:
catch(Exception ex) { throw; }
catch(Exception ex) { throw ex; }
catch(Exception ex) { new Exception(ex); }
И да на собесе загуглить не получиться.
Кстати, если интересно, есть канал на ют "с кодом по жизни" или как-то так, и одно из последних видосов собес уровня трейни-джун, можешь посмотреть. Там конечно собеседуемый быстро поплыл и вопросы в глубь не пошли, но что-то мне подсказывает. что ты тоже даже на таких вопросах отвалишься.
Шо тут обосновывать? Любой код if-else - можно заменить на код без.
А про else-if это вообще признак того что твой метод слишком много на себя берет и нужно его резать.
Ну, давай пример:
QueryExecutionResult? result = null;
if(validator.ValidateQuery(query)){
result = queryExecutor.Execute(query);
}
else{
throw new ValidationException("Invalid query");
}
return result;
Как мы можем это переписать?
if(!validator.ValidateQuery(query)){
throw new ValidationException("Invalid query");
}
var result = queryExecutor.Execute(query);
return result;
Что поменялось? С точки зрения логики - нихуя. Но читать это стало проще. Кода стало меньше. Человеку, который будет это поддерживать в будущем - ты сэкономил время на понимание логики, т.к. не нужно в голове сразу две ветки держать: алгоритм - линеен, а if используется только чтобы прервать выполнение.
Со сложной бизнес-логикой, это работает абсолютно так же. Да, придется не в сразу в методе хуйнуть всю логику, а порезать на классы, что кажется плохо со стороны KISS, но вот в будующем, когда тебе в эти if-else придется добавлять новую логику - тебе не придется ебаться с тем, что ты не уверен, что если тут что-то вставишь - все нахуй поломается и хуй что с этим делать.
Да, я не то чтобы догматичен в этом. В принципе - можно и использовать. Как и goto. Только зачастую - ты тут сделал трехэтажный if-else, там сделал и вот ты в яндередева превратился, а код твой, даже ты уже не понимаешь.
>Как мы можем это переписать?
Вот так:
return validator.ValidateQuery(query) ?
queryExecutor.Execute(query) :
throw new ValidationException("Invalid query");
Но не всегда же иф такой простой. Если в ифе рутурн, то как бы да продолжение писать в блоке елсе не имеет смысла (хоть семантически и верно, но отступы сожрет).
А вот такое
if(checkA()) {Foo()}
else if(id > 10 ) {Bar()}
else {Foo(); Bazz(();}
Kek();
уже как-то не очень упрощается, викидыванием елсов.
>Да, я не то чтобы догматичен в этом.
>if-else - сразу нахуй
Выглядит знаешь ли догматично.
В первом случае ты перебрасываешь исключение по-христиански, ничего не проебывая, во втором проебываешь стек вызовов, в третьем кидаешь новое исключение со внутренним старым.
Мимо другой анон не ебанат
>А private защищает от изменений логики работы, касающейся этого класса, извне оного.
Ты мне напомнил анекдот про студента, который на экзамене по биологии знал только про блох, и все вопросы профессора сводил к блохам. Вот только ты и про блох не знаешь. Пытаясь увернуться от вопроса, ты подменяешь его другим, на который как ты думаешь ты знаешь ответ, но и там обсираешься. Как только ты хочешь выдать что-то дельное, а не просто рассказы о своей охуенности - ты обсераешься.
Но предположим ты такой ответ выдал в первые пять секунд собеса, а сеньер еще не понял, что ты шизик и подумал, что ты переволновался. Далее идет уточняющий вопрос: каким образом public позволяет изменить логику работы? И почему это нельзя слелать когда private?
Я это всё к тому, что даже чтобы врать надо всё разбираться в том, о чем ты врешь.
> уже как-то не очень упрощается, викидыванием елсов.
Ну хуй знает. По мне вот так будет проще читаться и понимать что код делает.
>вот так будет проще читаться
Как по мне это уже наркомания, которая не дает преимуществ, а только принципиально избегание if-else.
Да и по сути у тебя два иф-элса: тернарный оператор, который просто укоротил запись ифелса, но абсолютна таже суть. И через жопу записанный иф-элс: свич одного паттерна + дефолтная ветка, это вообще пиздец. Еще и делегатам обмазал, из-за того что нужно значение из тернарника/свича вернуть, но зато иф-есле не написал, охуеть. Какой-то if-else enterprise edition за ни хуй собачий.
Ну хз, я вот тоже не знаю, что такое эксепшены, а вот по коду - более-менее можно догадаться (просто пробрасываем наверх, пробрасываем наверх отсюда, создаем новое исключение)
Но шизик утверждал, что он один из немногих, кто знает что такое эксепшены. В чем я засомнивался и предложил ему такой вопрос с собесов.
> это уже наркомания
Что ты скажешь на то, как я бы в реальности делал, а не демонстрируя что можно без else?
>когда тебе в эти if-else придется добавлять новую логику
А это уже нарушение солида.
>ты тут сделал трехэтажный if-else, там сделал
И написал чудесный C# код. Который читается ничуть не хуже. Да, место больше занимает, но от этого только выиграли. Мы, типа, на шарпе пишем, у нас не принято на строчках экономить.
>return validator.ValidateQuery(query) ?
>queryExecutor.Execute(query) :
>throw new ValidationException("Invalid query");
Только вот такое дебажится так себе. Когда тернарник один, то еще куда ни шло, когда же их рядом несколько (а то еще и вложенные есть), то ну его нахуй, проще по цепочке if else пройтись
>уже как-то не очень упрощается, викидыванием елсов.
Да, потому что ты все говно в одну кучу смешал, которую нужно разделить. У тебя после первого else - уже отдельный метод пошел, который ты зачем-то влепил в тот же самый.
А вот за такое, тот кому это придется дебажить, не поленится и придет тебе лично пиздюлей выдать. На учебных примерах типа физбаза это еще канает, на чуть более сложной логике, тебе на нормальном ревью хуев за такое напихают.
Когда один никаких проблем. Когда вложенные, там уже ломается мозг при чтении, а еще они могут быть неправильно выровнены. Кстати, в сурсах дотнета встречаются.
Ну, лично мне так нравится. Красиво и просто. Ну, по крайней мере мой опыт показал - что так кодить, конкретно для меня - эффективнее. Я же - золотая рыбка, мне класс что в один экран не умещается - в голове держать не получается, потому проще делать вот так вот, чтобы потом - "архитектура" и ИДЕ подсказывали, где что посмотреть и как пофиксить что-то.
>>245148
Я 5+ лет работаю. Никто не приходил бить морду. А дебажить такое - не сложно. По крайней мере я - сложности не ощущал, как и коллеги, которые использовали мой код.
А зачем мне размазывать логику выбора действия по разным методам, если она вот тут? Я же не говорю про десяток ифов со вложенными ифами.
> Ты упрт?
Да нет, вроде. И что не так с тем кодом-то? Читается он легче. Весь выглядит - линейно. Уж точно лучше, чем если бы тот вариант записали как надо, а не в однострочники.
Ну, могу предложить второй вариант, который мне нравится меньше, но тоже без if-else в явном виде(второй пик)
Последнее предложение. Дальше - я умываю руки.
>Ну, лично мне так нравится
Мне просто любопытно: ты бы и это стал переписывать, чтобы без else?
Та нет конечно, няша.
Просто обычно, когда начинается if-else, получаем что-то в духе вот этого вот https://github.com/novar0/TestApp/blob/main/TestApp/schedule.cs
Ебануться, это что, какой-то самописный велосипед для разбора парсинга крон выражений?
>разбора парсинга
Сука, надо выспаться, мозг меня уже подводит, дублирую слова на автомате и не замечаю даже.
Ну, типа того(там не совсем крон, но принцип схож). Тестовое задание для мидла, который ныл на хабре, что его не взяли.
Ну а уже работая в говноконторе как понять, что это говноконтора? Если мой уровень соответствует ей, и мне начинается казаться, что весь мир так работает и потому это норма?
Как вот я сам варился в своём собственном соку, и мне казалось, что норм, и так сойдёт, а пришёл сюда и вы мне сказали, что нет у меня никакой ламборджини.
Следует ли стремиться в какую-то конкретную отрасль, например? Может быть в какой-то отрасли в среднем по больнице уровень разработки выше? Но при этом у меня нет диплома, вернее, есть, но он не связан с программированием, так что в какие-нибудь особо серьёзные конторы меня ещё и не возьмут, например, если там с безопасностью связано.
Это говняха-тестовое шизика с хабра, который потом еще удивлялся, что его не взяли?
Именно она.
Например,
public override int GetHashCode() => (x, y).GetHashCode();
компилятор просто заменит на
public override int GetHashCode()
{
return (x, y).GetHashCode();
}
?
Спасибо!
Это объясняет сложности нагугливания. Привык, что => это лямбда-оператор
Курс имеет смысл проходить или там всё безнадёжно устарело?
Если начинаешь программирование с нуля, то пох, основам это не повредит, а новшества потом посмотришь. Если перекатываешься из другого языка, то тогда надо сразу с прицелом на актуальность искать.
Как вы на самом деле задолбали.
Шарп можно учить с третьей версии. Ломающие изменения хоть и есть, но такие вот нуфаги наткнутся на них не скоро. Да и вам должно быть похуй. Вы, блядь, не будете хуячить проект в миллионы строк кода, чтобы вас ебало, что вот тут вот - сломали это и теперь 400к строк - либо выкидывать, либо как-то мигрировать. Плюс, блядь, у вас на этом этапе задача - освоиться с тем, чтобы базовые вещи делать: проходиться по массиву, научиться проектировать классы, пользоваться коллекциями, которые есть в языке, изучить LINQ, понимание апкаста-даункаста, понимание что такое IDisposable и почему тебе, ебло, трогать его не следует, пока ты не разберешься нормально.
Нет, блядь, я еще хелло ворлд не писал, не знаю нихуя, но мне с какого-то хуя нужно последние версии. Чтобы что? Что на этом этапе тебе это даст? Ну, вот появилась в пятой версии возможность не List<int> temp = new List<int>() писать, а List<int> temp = new(); Что тебе с этого? Ты, блядь, уже проект с 9к классами имеешь и для тебя эта разница в 9 символов начала роллять как-то? Да нихуя. Просто хуйней маетесь. лишь бы отложить изучение, страдая прокрастинацией в виде поиска вот самого-самого нового. В это время какой-нибудь нормальный человек - берет древний учебник, учится нормально, что-то делает(банальную, блядь, телефонную книгу на формах), потом быстренько смотрит по ченджлоги, что в каких версиях появилась, переводит IDE на подсказку того как можно сделать сейчас и идет работать через полгода изучения.
Двачую
И да, если что у меня делается обфускация самого .ехе с шифрованным хранилищем строк.
Просто захордкодить?
> И да, если что у меня делается обфускация самого .ехе с шифрованным хранилищем строк.
Иди нахуй
> И да, если что у меня делается обфускация самого .ехе с шифрованным хранилищем строк.
Данные для доступа к БД всё равно можно будет выдрать, перехватив соединение с БД. Так, к сведению, мамин шифрователь.
Как и снимается обфускация нахуй. Эта хуйня только замедляет программу, а защита лишь только от самых начальных взломщиков. Кому надо, всё равно сделают, даже больше интереса
Лол, у меня наоборот быстрее работает.
Неофиты совсем в гугл не могут? Первая же ссылка в гугле:
https://docs.microsoft.com/ru-ru/aspnet/core/security/app-secrets?view=aspnetcore-6.0&tabs=windows
>Да и вам должно быть похуй. Вы, блядь, не будете хуячить проект в миллионы строк кода, чтобы вас ебало
Ага, только на собеседовании это спросят, и если не знаешь - идешь нахуй.
>понимание что такое IDisposable и почему тебе, ебло, трогать его не следует, пока ты не разберешься нормально.
Это тоже обязательно спрося. Только не почему трогать не нужно, а заставят реализовать майкрософтовский паттерн с финализатором.
>В это время какой-нибудь нормальный человек - берет древний учебник,
А вот это верно. Если спрашивают не за синтаксический сахар - то в большинстве случаев нужно отвечать так, как написано у Рихтера, а не как оно на самом деле в современном дотнете.
Это новая методика - начать учить язык и сразу на собеседование?
Аноний написал, что можно обучиться по старому учебнику, а потом уже пройти по нововведениям. И только после этого уже готовиться идти на собеседования.
Сомневаюсь, что кому то будет не похуй, что у тебя в портфолио телефонная книга написана на устаревшем дотнете. Но в обратном случае: если у тебя бизнес логика сразу за кнопкой и состоит из десяти вложенных if-ов, то шансы неперезвона крайне высоки даже при выебонах экспериментальными фичами.
> Ага, только на собеседовании это спросят
К моменту когда ты пойдешь на собеседования - ты и так это все знать будешь, если не пытаешься без смазки в жопу лезть.
Ну серьезно. Ты всерьез хочешь идти на собесы, не умея в базовые вещи? Чтобы что? Чтобы пройти собес, получить место, потом посидеть месяц, жидко пукнув вылететь, а потом бегать с разорванной жопой?
> Только не почему трогать не нужно, а заставят реализовать майкрософтовский паттерн с финализатором.
Сразу поясняешь, что собеседующий долбоеб ебаный и уходишь. Можешь предварительно пояснить почему он долбоеб, если знаешь ответ.
И вообще. Я собесы когда проходил на джуна, вот что было:
1. Базовые конструкции(ветвления, циклы, свичи, классы, структуры, константы, в чем их отличие от readonly, enum)
2. Коллекции(какие есть, почему не нужно ArrayList использовать)
3. IEnumerable и IEnumerator
4. foreach - что, как пользоваться, что нужно чтобы твой класс можно было туда пихнуть
5. LINQ - что, зачем, как пользоваться, что сделать чтобы твой класс можно было впихнуть
6. ООП на примитивном уровне(модификаторы доступа, инкапсуляция, наследование, полиморфизм)
7. В чем отличие интерфейса от абстрактного класса(тогда вопрос еще таких проблем не вызывал)
8. Многопоточность(Thread, способы синхронизации потоков: критические секции, семафоры; какие могут быть проблемы: дедлоки, гонка)
9. Асинхронщина(Что? Зачем? Как работает? async-await)
10. GC - на уровне: знаю что такое и зачем нужно, знаю про поколения
11. Работа с БД: что-то рассказать про ado/EF, на уровне: знаю что можно вот это вот, используется паттерн репозиторий с unit of work
12. Делегаты, события.
Да, еще немного про Stream спрашивали.
Да, еще про строки забыл: ждут, что ты знаешь, что они - объект, но при этом иммутабельный. И что знаешь про StringBuilder и почему его нужно использовать, если нужно массивно с текстом работать.
Да, еще забыл про работу с файлами.
Это все в контексте именно шарпа.
В контексте asp:
Знаешь про фильтры, про мидлварь, представляешь что из себе HTTP представляет, умеешь настроить маршрутизацию, умеешь настроить авторизацию, знаешь про JWT, можешь минимально пояснить за IServiceCollection, и DI в целом.
Собственно все что нужно было чтобы на джуна 5 лет назад попасть. Что из этого поменялось в последней версии в контексте условного джуна?
> Ага, только на собеседовании это спросят
К моменту когда ты пойдешь на собеседования - ты и так это все знать будешь, если не пытаешься без смазки в жопу лезть.
Ну серьезно. Ты всерьез хочешь идти на собесы, не умея в базовые вещи? Чтобы что? Чтобы пройти собес, получить место, потом посидеть месяц, жидко пукнув вылететь, а потом бегать с разорванной жопой?
> Только не почему трогать не нужно, а заставят реализовать майкрософтовский паттерн с финализатором.
Сразу поясняешь, что собеседующий долбоеб ебаный и уходишь. Можешь предварительно пояснить почему он долбоеб, если знаешь ответ.
И вообще. Я собесы когда проходил на джуна, вот что было:
1. Базовые конструкции(ветвления, циклы, свичи, классы, структуры, константы, в чем их отличие от readonly, enum)
2. Коллекции(какие есть, почему не нужно ArrayList использовать)
3. IEnumerable и IEnumerator
4. foreach - что, как пользоваться, что нужно чтобы твой класс можно было туда пихнуть
5. LINQ - что, зачем, как пользоваться, что сделать чтобы твой класс можно было впихнуть
6. ООП на примитивном уровне(модификаторы доступа, инкапсуляция, наследование, полиморфизм)
7. В чем отличие интерфейса от абстрактного класса(тогда вопрос еще таких проблем не вызывал)
8. Многопоточность(Thread, способы синхронизации потоков: критические секции, семафоры; какие могут быть проблемы: дедлоки, гонка)
9. Асинхронщина(Что? Зачем? Как работает? async-await)
10. GC - на уровне: знаю что такое и зачем нужно, знаю про поколения
11. Работа с БД: что-то рассказать про ado/EF, на уровне: знаю что можно вот это вот, используется паттерн репозиторий с unit of work
12. Делегаты, события.
Да, еще немного про Stream спрашивали.
Да, еще про строки забыл: ждут, что ты знаешь, что они - объект, но при этом иммутабельный. И что знаешь про StringBuilder и почему его нужно использовать, если нужно массивно с текстом работать.
Да, еще забыл про работу с файлами.
Это все в контексте именно шарпа.
В контексте asp:
Знаешь про фильтры, про мидлварь, представляешь что из себе HTTP представляет, умеешь настроить маршрутизацию, умеешь настроить авторизацию, знаешь про JWT, можешь минимально пояснить за IServiceCollection, и DI в целом.
Собственно все что нужно было чтобы на джуна 5 лет назад попасть. Что из этого поменялось в последней версии в контексте условного джуна?
Почему надо столько дофига знать? И что реально те, кто уже работает, это всё знают?
Я про секреты знаю, но это совсем не то вообще-то.
Так я и ищу, так бы уже весь тред засрал
> Я собесы когда проходил на джуна, вот что было
Страх какой-то. Так и есть, наверное, но меня на мидла три недели назад меньше спрашивали. Ну, наверное неджунские собесы и отличаются от джунских тем, что там больше за опыт разговор. А джуном сишарповым я вообще стал без минимального знания сишарпа, буквально первую строку на нём в жизни на собесе для FizzBuzz написал.
> Знаешь про фильтры
Не знаю.
> про мидлварь
Не знаю.
> умеешь настроить маршрутизацию
Смотря что имеется в виду. Вряд ли ты про цисковские роутеры, поэтому не знаю. Но судя по документации, минутное дело.
> умеешь настроить авторизацию
> знаешь про JWT
Лол, не знаю. На собесе так и говорил, что в Identity вообще ничего не понимаю. Для петпроекта сделал как-то авторизацию, но так и не понял, что я конкретно сделал и как.
Хочу просто сказать, что собес собесу рознь и это не экзамен в школе или универе, к которому нужно задрочить билеты. Говорю это для молодых-зелёных в треде, чтобы как можно раньше начали действовать и ходить по собесам, потому что дрочение списка тем без регулярного фидбека не так эффективно. Легко можно оказаться в позиции шиза выше, который считает, что знает дохуя, что даже работа джуном для него тесновата уже, а на работу не берут только из-за отсутствия стажа.
Вспомнил, как в ЕПАМе заебали кастами. Из дочернего в родительский, из родительского в дочерний, в интерфейс, в object, в Аллаха. Method shadowing был ещё в дочернем классе. Я сразу сказал, что вообще as за пределами TypeScript не видел и в жизни бы вообще такую хуету писать не стал, а потом начал предполагать, как это всё может быть устроено, пользуясь какими-то протухшими детскими обрывками воспоминаний, как в плюсах работает class call и что было бы в vtable в этом случае. Вполне очевидно, что я не угадал ни с чем, лол, но ход мышления мой всем понравился точно.
После 1к тред только начинает жить. А как перекатишь сразу 500 постов которые из треда в тред одни и те же от залетных,
А что, нужно год вкатываться? Язык выучил, Рихтера прочитал - и вперед, учиться собеседоваться.
>обучиться
>после этого уже готовиться идти на собеседования
>Язык выучил, Рихтера прочитал - и вперед
И где конфликт подходов?
В шарпе это не обязательно. Но придерживаться соответствия неймингов классов-файлов и неймспейсов-каталогов стоит. На любом нормальном кодревью за этим следят.
> Хочу просто сказать, что собес собесу рознь и это не экзамен в школе или универе, к которому нужно задрочить билеты. Говорю это для молодых-зелёных в треде, чтобы как можно раньше начали действовать и ходить по собесам, потому что дрочение списка тем без регулярного фидбека не так эффективно
Ну, смотри, няша. Хоть собес собесу и рознь. Только вот у нас, ввиду жесткой нехватки спецов, таки набрали вообще людей со вторых курсов вуза. И вот ты не представляешь, как весело - объяснять человеку, как ему пройтись по масивчику или пользоваться LINQ, как ему асинхронность оформить. Объяснять, за модификаторы доступа, что такое лямбды и все это вот. А уж если там велосипедостроитель попадется, который начнет с HttpListener'а, или, блядь, с сокетов и будет пытаться все 3 версии сам навелосипедить и ведь это самое интересное, как он, блядь, гуглил-то что пришел к такому решению, вмечто того чтобы по всем известному пойти пойти. Ух бля. Просто 11/10 опыт. А у тебя - твои задачи есть, которые нужно делать, сверху митапы, еще и хочется кофе попить да покурить, но ты пытаешься быть нетоксичным и не шлешь их нахуй, как другие коллеги, которые подольше тебя работают, тратишь время, чтобы объяснить, показать, даешь примеры. Уже начинаю думать, что деды - правильно делают: дал ссылку на доку майкрософтовскую, показали пальцем на стеллаж с книгами и пусть сам разбирается, не поймет - его проблемы.
Стоит. Банально, это удобнее. Ты с одной стороны - видишь сбоку у себя дерево проекта и понимаешь что тебе нужно в using добавить, с другой - помнишь что где лежит хотя бы примерно. Когда у тебя проект разрастется хотя бы до 20 файлов - поймешь в чем польза такого вот подхода. А представь, что у тебя проект разросся до 500 файлов.
> А у тебя - твои задачи есть, которые нужно делать, сверху митапы, еще и хочется кофе попить да покурить, но ты пытаешься быть нетоксичным и не шлешь их нахуй, как другие коллеги, которые подольше тебя работают, тратишь время, чтобы объяснить, показать, даешь примеры.
Ну так скажи менеджерам и как-то организуйте этот процесс так, чтобы ты мог пару часов в день списывать на эту хуйню.
Ну я и не говорил же в своём посте, что нужно быть тупым и ленивым долбоёбом и не учить ничего. Учить, практиковать и получать фидбек какой-то.
>А у тебя - твои задачи есть, которые нужно делать,
Вообще, в нормальных конторах за такое доплачивают. Причем это даже как бонусом идет. Т.е. еще на собесе говорят, чел вот ты к нам идешь, и если хочешь заработать, то у нас есть программа стажировки. Берешь себе пару стажеров и обучаешь их (время обучения засчитывается в рабочее - т.е. прям заводишь таску и пишешь "сегодня учил сопливого разбираться с массивами" и списываешь на нее часы. За это тебе дополнительные деньги капают, плюс еще когда стажер защитится на категорию, тебе бонус будет.
LMAO. Уже не одни майкрософт занимаются дотнетом, а вообще такая ситуация была с джавой. Оракл выкатил систему модулей и внезапно проды на той версии jdk начали падать. В итоге просто 70% рынка осталось сидеть на легендарной 8 версии до сих пор.
В джаве можно установить файлик и будет нужная версия, а в дотнет всё прикручено анально к винде. У меня недавно было шин8, которая ещё актуальна и срок поддержки не закончился как с шин7, но уже не выходят свежие обновления дотнета. Мне пришлось переходить на шин10.
Нас, крудошлёпов кривозубых, мало ебут шиндопроблемы.
Спецификация - открыта. Решат майки сломать все к хуям и обрубят старые версии - никто не мешает сделать Open.Net и перевести все на него. Плюс, Mono никуда не делся. Да, оно сейчас перестало быть так уж нужно, но если есть желание - бери и используй.
Майки купили Xamarin. Они хоть и являются основным разработчиком Mono, но даже если все к хуям закроется - комьюнити, при желании, может поддерживать. Плюс там из-за лицензии майки не могут просто так закрыть Mono из-за того что нет оснований: спецификация шарпов открыта и были публичные заявления о том, что майки не имеют притензий к реализации самого .net, CLR и CLI. Проблемы с Mono могут быть, если ты используешь не входящее в спецификацию апи, такое как ASP, ADO, Forms и прочие свистоперделки. Но все эти свистоперделки - при наличии остального фреймворка - восстановить так, чтоб под патенты не попадало - не такая большая проблема для сообщества, если это сообщество таки будет. А учитывая, что интерес таки с появлением core - возрос - интерес будет.
Нет. Я что, должен компилировать две версии для винды и линупса? В чём тогда кроссплатформенность с точки зрения микрософта?
>>247134
Впервые слышу об этом. Откуда я должен знать, где мою программу запустят? Опять же надо две версии компилировать под каждую ОС? А под маки как? using System.MacOS?
>using System.MacOS?
Ну, как бы да. Ты в принципе можешь сразу все платформ-рилейтед неймспейсы подключить. Тогда точно будет работать на чем угодно. Правда размер exe-шника соответственно вырастет.
> Я что, должен компилировать две версии для винды и линупса?
Ты делаешь publish переносимый, затем на линуксе dotnet run и путь до имяПроекта.dll
Охуенная тема. Проблема что зависима от платформы - соответственно - кросплатформенно - хуй. При желании - можно и сейчас использовать, но развитие прекращено.
Как-бы на винде - использовать можно без проблем. Если тебе таки нужно чтоб на линуксах работало - хуй, пили руками велосипеды.
У меня среда на работе линукс-фри. Только вот думаю, стоит ли связываться. Если я правильно понимаю, то WCF по уровню олдовости соперничает с формочками.
class Program
{
static void Main(string[] args)
{
Change();
Console.WriteLine("Hello");
}
static void Change() {
// Сюда код
}
}
{
static void Main(string[] args)
{
Change();
Console.WriteLine("Hello");
}
static void Change(){
// Сюда код
}
}
Можно создать переменную с "Hello" и тогда они будут ссылаться на одно и ту же строку
да вот надо без переменных, а изменить захардкоженное значение
Ну, можешь в сторону указателей поиграться. В этом примере, правда, слово должно быть той же длины.
Офигеть, как это вообще работает? Как он понимает что fixed это указатель на переменную из Main, а не из magicString? Спасибо огромное
Fixed это не про это.
Тут фишка с интернированием строк шарповским. Строки объявленные как литерал - при компиляции интернируются. Так вот, "Hello" из main и "Hello" из метода - одна и та же строка в памяти. Ну, соответственно, зная это, ты уже можешь получить указатель и играться с ним. Проблема будет правда в том, что все "Hello" после таких вот игр - заменятся. Соответственно, нужно будет обратно Hello положить, если нужно только в одном месте поменять.
Для тех у кого C/C++ были первыми языками, тут никакой магии нет.
я перекатился из c++, там двум объектам не выделяется одинаковый указатель просто так. Спасибо, прочитал про интернирование. Это задачи для стажёра, ебало представили
Нужно.
Господи. Два часа ночи. Я в отпуске. Нет, блядь, хуйней страдаю.
Только это. Я думаю на самом деле не такое от тебя ожидают. Тем более если это на стажера. Тем более у такого вот метода есть проблемы в реальном применении.
Че за пизда с байтами и звездочками, вы совсем тут ебанулись?
Чел, ты крут. Сохранил, завтра под пивко в дебагере это погоняю, чтобы лучше понимать как все это происходит.
Перекат https://2ch.hk/pr/res/2247357.html (М)
Перекат https://2ch.hk/pr/res/2247357.html (М)
Тебе нужно идти в другую контору, потому что с таким заданием они явно дают понять, что ёбнутые.
Там 12 не нужно, просто проверял сработает ли если вызвать другую перегрузку метода.
Думаю это от него скорее и ожидали. Я с unsafe, байтиками и игрищами с указателями я, скорее всего, пошел не в ту сторону.
А тут - нет вероятности перезатереть что-то полезное и вообще, выглядит оно не так страшно и вообще, более ООПшно.
Хотя, задание для стажера, какое-то странное на самом деле.
Я уже второй месяц не могу никуда устроиться
Вот, допустим, у меня есть какая то таблица, в ней есть ID, я хочу получить максимальный ID этой таблицы.
Средствами sql все просто - SELECT MAX(ID) FROM Table_Name, а с энтити всё геморройно.
Да, можно прямым способом,
int id = context.Table.ToList().OrderByDescending(t => t.ID).First().ID - но это ппц какой удар по производительности, если строк много.
Есть вариант создать некую промежуточную сущность
class MaxID {public int Id{get; set;}
и написать код типа этого
int id = context.MaxID.FromSqlRaw("SELECT MAX(Id) as Id FROM Table_Name").Id;
Это работает, но тогда создаётся в бд создаётся лишняя таблица нахуй там не нужная. А если на класс повесить атрибут [NotMapped], то таблица создаётся, но и код без таблицы не работает.
Есть варианты, что можно сделать?
LINQ to Entities
Вы видите копию треда, сохраненную 27 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.