Это копия, сохраненная 3 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials
7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/1466365.html#1479451 (М)
Ты хочешь меня к чему-то подвести? Если да, то спроси прямо, а то беседа становится томной.
>где бы ты применил Liskov substitution
Везде, о нем всегда надо помнить. Создавая иерархию надо посмотреть соответствуют ли классы в ней лсп.
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
Начнём, няшки.
Будут предложения по шапке, пишите ответов в этот пост.
Алсо не забываем про нашего милашку феликса.
так вот же, анон, для нас сделали пикрил, почему его ВСЕ игнорируют и делают вид, что его не существует? Или это тролль пикрил для новичков, чтобы их отпугнуть?
Хочу слева на право осилить разделы, кто-нибудь уже делал это? Поясните, короче, за пикрил, знающие аноны.
Есть знания Xamarin, wpf, rest api, ООП, async/await и прочего, в целом на джунапочти на мидла сойду, за последние 2 месяца сделал 5 проектов в разных областях(даже в юнити, кек), которые естественно показываю в резюме.
Пытался в hh, фрилансерство, но НИХУЯ. не берут школоту. думаю это из-за того, что выставлял график работы 4 часа в день, но а че и так много часов с учебой.
Где искать РАБоту? Мне даже не для зарплаты, а чтобы набрать еще больше опыта, добавить проекты в портфолио и прокачаться до сеньора-помидора.
Подскочи канбанчиком в стартапчик или на хакатончик.
А вообще на мидла не подходишь, судя по всему.
на хатаконах был, на одном даже команда победила. ничего не дает. хотя может не повезло
>Подскочи канбанчиком в стартапчик
тут спасибо, не думал даже)
>А вообще на мидла не подходишь, судя по всему.
вообще судил по вопросам с сайта metanit на джуна/мидла, а как по другому определить мидл или джун?
У меня друг, 14 лет, на удалёнке нашёл работу, вакансия была в телеге. После школы <4 часов кодит и норм. Но про возраст он не говорил на собесе.
Короче, ищи неофициальную работу
кк, пасиб
Блин, боюсь что напишите тим лиду, что школьник в проекте, а потом друга выкинут из проекта. Рисковать вообще не хочу, а тем более подводить друга, так что сорян
Какого хуя меня со знаниями не берут на работу, а кого-то кто не прогал на языке берут? Что за хуйня блять
давай тогда ты будешь дделать задания которые я тебе буду кидать, а я буду делать вид что это я работаю, плата 50 на 50 по рукам?
но почему, ты же сам сказал что у тебя нет работы и есть знания?!
Мне работа не так срочно нужна, я пока студент на оччке, мать не гонит из дома и норм
ты студент и до сих пор живешь с родителями, ахаха, какой позор, вот и живи дальше с родителями пока нормальные люди зарабатывают деньги на свое дело
>нормальные люди зарабатывают деньги на свое дело
>анончики ,помогите, меня взяли на работу дот нет разрабом, а я вообще не ебу c#
ору с тебя
мимо.
а что я не так сказал? что тут орного?
Есть что-то поновее?
не хотят палить настоящую годноту
Автор: Greg Lukosek
Ана, как тебя эта книга? Читал кто?
Тупо мануалы мелкомягих разжеванные для малёха одарённых / не умеюших в английский.
>>482429
С теории ООП
>>482392
>даже в юнити, кек
Давай показывай что ты там в юнити наваял.
>>482406
>как по другому определить мидл или джун
http://www.starling-software.com/employment/programmer-competency-matrix.html
но это не абсолютные критерии, воспринимай эту матрицу просто как point of reference
Нашёл на арабской залупе кряк в открытом досупе, если надо кому-то, скину
>Давай показывай что ты там в юнити наваял.
Да там очень простое приложение, лол)
Менюшка да 3д модель руки
+моделька со скелетом
+положение руки менялось раз в 25мс ну и данные брались из инета
+авторизация все хуйня
делаю простенькие задачки и получаю затык может поможете
задание: Заменить все отрицательные элементы, не кратные 3, противоположными им числами.
int[] array = new int []{-1,-4,-6,3,12,7,-7}
for(int i=0; i !=array.Length; i ++)
{
if(array % 3 >=0)
{
вот тут нужно привести каким то хером что бы отрицательны значения стали положительными
}
ConsoleWriteline(array);
}
Console.ReadKey();
В общем подскажите или закиньте свой вариант решения
ай блять я проебался) соре не увидел пик
>if(array % 3 >=0)
Так тебе же надо отрицательные некратные элементы.
if(array % 3 < 0)
Но есть нюанс. В некоторых языках остаток от деления всегда положительный, поэтому, чтобы не смущать коллег и более явно указать намерения лучше написать так
if(array < 0 && array % 3 != 0)
...array = Math.Abs(array); // or -1 * array;
>>это не то, что надо применять где-то.
>>создавая иерархию надо подумать соответствуют ли её типы лсп.
Это по твоему не применение?
Вот из за банальной разницы в восприятии некоторых моментов ЛСП и воспринимается каждым по разному
>>ты мне приписываешь то, чего я не писал
это называется шизофрения или невнимательность
Чтобы не разводить демагогию - спроси у коллег за обедом, как они представляют себе реализацию этого принципа и сам поймешь, о чем я написал изначально.
>Вечер в хату начал ебать C#
П-привет
>вот тут нужно привести каким то хером что бы отрицательны значения стали положительными
Сначала подучи понятие "модуль числа / абсолютная величина", заодно другие пробелы восполнишь.
Иначе че ты будешь делать когда столкнёшься с графами ("вот тут нужно каким то хером что бы найти кратчайший путь"), ибо тебе просто ответят "Дейкстра" и дальше нянчиться с тобой не будут.
Мидлами берут не за знание технологий. Иди стажёром куда-нибудь и не выпендривайся.
>Базовые конструкции C# знаю
ну то есть нихуя не знаешь
>Куда дальше двигаться?
придумай свой пет-прожект и пили, чо ты
int[] array = new int []{-1,-4,-6,3,12,7,-7}
for(int i=0; i !=array.Length; i ++)
{
if(array % 3 >=0)
{
array=-array;
}
ConsoleWriteline(array);
}
Console.ReadKey();
это макаба съедает разметку, ибо [ i ] это тэг для курсива.
Эта хуйня никогда не работала. Не надо труп насиловать.
Либа на net standart. Там ничего нет.
или же задам по другому. Может ли одно представление иметь несколько моделей? Если да, то как обращаться к конкретной модели?
реализация многих компонентов проходит только через привязку модели. Лепить костыли займет больше времени.
Уже нашел решение - создать мультимодель - создается класс, в который добавляются все остальные модели.
Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
Увидел, что микрософты выпустили новую вижуал студию под макОсь. Но не знаю насколько она там хорошо работает. А ещё есть Visual Studio Code.
Ты либо толстый, либо тупой. Хочешь программировать под винду- пиши на винде, хочешь купить мак - купи и не еби нам мозг. Но программировать на нём адекватно ты не сможешь, ибо маг - это только для ютюбчика и потреблядских сериальчиков. Что-то серьёзное ты на нём не напишешь вообще никогда. Это я тебе как владелец 2 маков говорю. Стоит переключить твоё драгоценное приложение на винду, так тутже вылезут такие баги, что хочется могилу Стива Джобса обоссать.
Имею в виду разделение на бекенд и фронтенд и не пилить ебучий вонючий десктоп а веб? Или выкатыватьсч к хуям на джаву,у них вроде поменьше такой практики
>У джавы меньше такой практики
Эм... Ты сейчас про Java? C Чего вдруг меньше то?
>Имею в виду разделение на бекенд и фронтенд
Но ты же сам привёл MVC, а это и есть фронт и бэк. Ты вообще сам понимаешь что пишешь или нет? Алсо я уже пол года пишу приложуху уровня энтерпрайза в которой есть разделение фронта и бэка. Не понимат что тебя не устраивает.
>>148453
>>484534
Я как раз говорю про то,что я НЕ хочу писать на шарпе и бэкенд И фронтенд(я про cshtml),а хочу чистый бэкенд(веб апи,который чисто отдает данные на клиент),и вот таких вакансий почти нет,везде требуют или с десктопом(что является фронтом) или мвс где ты САМ пишешь фронтенд,не говоря уже о том что 80% вакансий на легаси фреймворке,который на винде,а я на линкксе,сейчас понятней объяснил?
>Хочешь программировать под винду- пиши на винде, хочешь купить мак - купи и не еби нам мозг.
Сейчас занимаюсь исключительно мобильной разработкой под андроид и айос(unity3d c#). Иногда пишу консольные утилиты под себя. Всю жизнь сидел на винде, но сейчас вот подумал может на макось перейти. Тем более у меня девайсы от аппле. По сути ничего конкретно завязанного на виндоус я уже не пишу.
Вот и решил узнать у анончиков об их опыте работе на макосе. Может кто перешёл с виндоус и сейчас кайфует(или нет).
Чтобы писать на винду - пиши сидя под виндой, чтобы писать под мак - сиди на маке.
Под андройд - разницы особо нет. Разьве на винду инструментария больше в разы чем на мак.
>сейчас вот подумал может на макось перейти.
Максимум плохая идея. Хвалят мак в основном JS макаки, которым всё равно на чём писать. В той же юнити например я столкнулся с непомерными тормозами даже на 2d платформерах, хотя казалось бы. Ну и так, россыпью куча всяких неприятностей, типа ограничению видюхи, тротлинг процессора (там пассивное охлаждение, чтобы проц остыл мак просто срезает ему тактовую частоту) хочешь побольше памяти - купи новый макбук, хочешь больше винт - купи новый макбук, хочешь лучше видеокарту - иди нахуй. Именно исхожя из этого я сделал вывод что мак хорош только для ютюбчика.
Почему если бы передавали в метод print(List<int> list) то боксинга бы не было?
Не понимаю)
>foreach происходит боксинг?
так ты передаешь другой тип, поэтому и происходит приведение. Передавай List<int> и не будет боксинга
Что значит передаю другой тип?) Чел приведение типов и боксинг это разные вещи, не путай
>>484839
Короче ясно все с двачерами.
Давайте рассмотрим один из наиболее распространенных источников упаковки, который основан на факте использования типа значения в качестве интерфейса - инструкции foreach для IEnumerable <T> (см. Листинг 4-31). В таком случае мы передаем экземпляр List <int> как IEnumerable <int> в метод Print. Инструкция foreach внизу работает с концепцией перечислителя - она вызывает GetEnumerator () для переданной коллекции, а затем последовательно вызывает Current () и MoveNext () для нее. В методе Print коллекция списков рассматривается как IEnumerable <int>, поэтому будет вызываться IEnumerable <int> .GetEnumerator (), который, как ожидается, вернет IEnumerator <int>. Очевидно, List <T> реализует IEnumerable <int>, но важным фактом является то, что GetEnumerator () возвращает Enumerator, который является ... struct. Поскольку эта структура используется в качестве IEnumerator <int>, упаковка происходила один раз в начале цикла foreach.
Нихуя, компилятор в данном случае вообще не юзает интерфейсы, он смотрит на наличие у List<int> метода GetEnumerator(), а затем смотрит на наличие у возвращаемого объекта свойства Current и метода MoveNext, на интерфейсы ему вообще поебать.
Тем более тогда боксинга не будет. Провтыкал, что List реализовует IEnumerable.
По сабжу - чел, прежде чем задавать тупые вопросы - открой дизасемблер и посмотри на MSIL. Вообще хз откуда ты высрал, что идет боксинг-анбоксинг, но пруфы на пике.
>>484854
хоть бы источник приложил
А это, для не умеющих читать:
has the public parameterless GetEnumerator method whose return type is either class, struct, or interface type
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/foreach-in
>>484893
>>484884
http://file.allitebooks.com/20181115/Pro .NET Memory Management.pdf
344 страница, автор не прав?
Алло, я тебе MSIL твоего foreach genarics скинул, зачем ты задаешь тупые вопросы?
>автор не прав?
Выбираей сам, чему верить - MSDN+компилятору или Кондару Кокосу
Тут его и не должно быть блять)
Мы до момента исполнения не будем знать, придёт ли сюда енумератор как структура или как класс, и следовательно схкяли мсил нам должен здесь показывать боксинг?)
Я же кинул скрин анализатора который говорит что МОЖЕТ БЫТЬ боксинг, а может и не быть, в случае с методом boxunbox он точно есть, там же callvirt на создании енумератора, вот там то и будет боксинг внутрях, двачеры ебаные надо книги читать
В итоге двач даун оказался ты)
https://pastebin.com/Uq6J8Qpy
Как тут достучаться до css-файла, который в папке Content?
Да хз, вроде да. Этот файл кидал в разные места, и в корень, и в одну папку с хэндлером, cssку не видит и всё.
Кокос, ссылаясь на то, что книги не пишут не херы с горы, я в начале предположил, что в callvirt спрятан индексатор стека. Хотя нагуглив я понял, что при передаче параметром интерфейса, а не типом происходит реализация IComporable, что и есть односторонним "боксингом". Поэтому твой Кокос и советует передавать обобщенный тип, а не интерфейс.
я понял, что двачер задающие подобного рода вопросы не умеет гугл или чтение. Одно из двух или оба. Выбирай, Кокос.
Ты утверждал, что боксинга не происходит, хотя он происходит, ты уже обосрался 2 раза...
ты читаешь книгу, где описанны тонкости языка, но не можешь банально нагуглить вопрос. Кто после этого еще обосрался)
а поорали с тебя) Ну бывает, не расстраивайся, Кокос
Наркоман штоле? Rider стоит огромных денег и может только в C#, VS бесплатен и умеет во всё.
>Есть VS19
>ReSharper Ultimate + Rider
>Visual Studio extensions, profilers, and a standalone cross-platform >.NET IDE
>US $179.00
>/1st year
>US $143.00
Ой, даже не знаю. Впервый раз на двоще увидел такую IDE и странно, что она у меня не стоит.
Rider вкусный) Пользуюсь им бесплатно) А нубы платят бачи за использование, лул)
В гугле все через копипасту генерируется, что не работает с такими огромными файлами.
возможно не совсем рациональный, но все же способ.
работаешь по хардкору с картинкой:
1. сжимаешь где то 100 на 100 пикселей, можно даже меньше
2. делаешь максимум там цветов 8-16, думаю разберешься в нете есть гайды
3. проходишь картинку циклами (for(row){ for(colums){} }), с каждого пикселя можно взять цвет, этим цветом пишешь букву E в консольку. Вот и все собственно
ЗЫ. да и желательно в 3 шаге не сразу выводить, а сначала все сохранить и уже потом вывести целиком всю картинку в консоль
библиотечка для работы с картинками - emgu.cv(она же opencv)
http://mycsharp.ru
Почти прошел все темы, но сильно не хватает практики. Многие задания, что даны в конце тем, либо легкие, либо какие-то примитивные, односторонние. Короче, посоветуйте какой-нибудь ресурс для изучения, но чтобы практики было больше.
Сложно ли выучить си-шарп, если знаешь c++
Нет. По крайней мере легче, чем выучить с++ зная с#.
>>485848
Решай студентикам задачи http://www.cyberforum.ru/csharp-beginners/
>>485729
И весь джейсон из уникальных сущностей? Возьми каждой по одной и генерируй. Либо руками.
>Короче, посоветуйте какой-нибудь ресурс для изучения, но чтобы практики было больше.
Иди ищи уже книжку по беку и строй сервера.
Шарп завязан на .NET Framework, следовательно после шарпа следует выбирать направление. Из перспективных: Веб - ASP.NET Core (MVC5), Десктоп - WPF, геймдев - Unity, мобилки - Xamarin.
Тупо один шарп ничего не даст.
> Решай студентикам задачи http://www.cyberforum.ru/csharp-beginners/
Если не сарказм, то ок.
>>485970
> Иди ищи уже книжку по беку и строй сервера.
Не рановато для бегинера?
>>485987
> Шарп завязан на .NET Framework, следовательно после шарпа следует выбирать направление. Из перспективных: Веб - ASP.NET Core (MVC5), Десктоп - WPF, геймдев - Unity, мобилки - Xamarin.
> Тупо один шарп ничего не даст.
Спасибо
согласен, на одном шарпе уже никуда не уедешь. Когда приходишь на РАБотку тебя садят на проект WPF/ASP.NET/ASP.NET MVC/Core/WF/Xamarin/API (выбери одну или несколько) и ты в этом проекте должен знать хотя бы базовые вещи. Если ты б-х шарпов и знаешь тонкости языка, то тебя максимум похлопают по плечу и предложат стажировку
>И весь джейсон из уникальных сущностей? Возьми каждой по одной и генерируй. Либо руками.
В каждому джейсоне выходит около десятка уникальных классов с 5-40 полей.
Руками такое делать ну очень больно, потому что все безбожно лагает что в том же notepad++ что в visual studio code, нормально по объекту не пройтись не понять где что находится.
Обычная же visual studio при попытке вставить этот json как класс (есть такая опция в edit) подумала около 10-15 минут и решила тупо упасть.
Забавно что в америке достаточно прочитать книгу по шарпу и понимать просто язык чтобы уже получить место джуна.
Со знаниями что ты описал это уже минимум мидл будет, а то и целый сениор.
Правда сейчас у них начали жестко требовать диплом(для местных вроде не обязательно) по любому направлению компьютер сайенс, без него только если HR тебя сам приглашает на работу можно попасть.
Говорю это со слов друга который не один год горит с фигни что у них на работу берут нигг которые реально прочли книгу, свояли пару hello world.
>>486106
Любая актуальная и годная информация за последний год-два это всегда статьи и гитхаб или всякие записи конференций. Книги достаточно медленно развиваются и там в основном общая инфа.
И вообще советую искать годную инфу именно на гитхабе, находишь какого-нибудь хорошего чувака и прыгаешь по его фолловерам/звездам и затем по другим годным так и в результате попадешь на дохера инфы и годных проектов в которых порой такое readme что там случайно можно высшее образование получить.
Реклама "АЙТИ ЭТО БАБКИ" делает свое дело. На каждом борде/в каждом вагоне метро - реклама курсов. Даже видел в запиздрыщенском трамвае рекламу - "У айтишников крутые машины (fordmustang.img)"
Насчет бугра - пару Hello world не катит это точно, но наличие диплома у них маст хев лишь по той причине, что показывает человека, как дисциплинированного и познавшие азы профессии (за бугром не прокатит не ходить на пары пол года, а потом вывалить котлету денег).
Я могу долго пилить прохладные о том, какие вакансии (ебнутые на всю голову) я видел в интернетах и какие вопросы задавали на собесы на позицию джуна, чот влень просто.
Берешь свой файл, выделяешь одну сущность, копируешь, генеришь для неё класс. Повторить 10 раз.
А еще в зависимости от сценария, можно либо создать класс только с нужными полями, либо тягать данные через linq2json вообще не создавая классов.
>Реклама "АЙТИ ЭТО БАБКИ" делает свое дело. На каждом борде/в каждом вагоне метро - реклама курсов. Даже видел в запиздрыщенском трамвае рекламу - "У айтишников крутые машины (fordmustang.img)"
У меня друг преподает такие курсы как доп. заработок, платят 100к в месяц за десяток часов в неделю.
Так вот через него более 500 человек уже прошло и по его словам не более 10 смогли попасть на работу, а из этих 10 только 2-3 проработали более полугода.
Основная масса приходящих не понимают что ИТ это постоянно обучение, они думают что пройдя эти курсы то больше им делать ничего не придется, типа идешь работать и рубишь бабло. Для них ИТшник как сварщик, типа разок выучился и все, при том что их на первом же занятии предупреждают что это не так и можно забрать деньги и уйти, но нет, они думают что умнее всех.
>Насчет бугра - пару Hello world не катит это точно
Инфа двух годичной давности и я не зря сказал нигга, потому что реально нигга который вчера барыжил за углом каким-то дерьмом попал к ним на работу и успешно работал со знаниями как будто 1 книгу прочел и пару to-do программ написал. И такое как он сказал постоянно, именно поэтому они любят всех забугорных программистов, ибо уровень квалификации на голову выше за ту же цену.
>но наличие диплома у них маст хев лишь по той причине, что показывает человека, как дисциплинированного и познавшие азы профессии (за бугром не прокатит не ходить на пары пол года, а потом вывалить котлету денег).
Для ИТ это никогда не нужно было и по опыту из РФ могу сказать что дипломированный специалист будет в разы хуже самоучки и всегда будет знать технологии меньше. Просто потому что наше образование преподает старинные вещи которые уже не актуальны, а время на самообучение нет так как преподы срать хотели что ты там новое учишь, делай что говорят, а новенькое после диплома трогать будешь.
Сам отучился в таком дерьме, но благо препод знал директора место где я работаю и тупо ничего с меня не спрашивал, но с другими сокурсниками тяжело было общаться, так как они реально на уровень ниже были и со своей колокольни я понимал что эта хуйня что они сейчас делают уже устарела и оно нахер не нужно. Простой пример понятный всем, пока мои сокурсники изучали DirectX 9, я мог в тоже время ебашить Vulkan, сомневаюсь что сейчас хоть кому-то нужен этот DX9.
Так что диплом это не показатель, особенно для опытного бизнеса который знает весь бэкграунд.
>какие вопросы задавали на собесы на позицию джуна, чот влень просто.
Так это уже классика.
Чаще всего собеседуют люди которые вообще не шарят в ИТ и за месяц в спешном порядке нахватались верхов которые и пытаются спрашивать.
Меня на одной работе за многопоток около часа ебали, о способах синхронизации, чем отличаются и все в этом духе. Зато на работе за год там я написал дай бог пару раз какой-то многопоток и то все сводилось к Task.Run и затем Wait потому что внутренняя кухня была написана без задела на многопоток и асинхронность в результате нестабильное поведение, а значит в документации всем тупо запрещено писать такой код.
Так что чаще всего на собеседовании спрашивают то чем ты никогда заниматься не будешь, а порой ты будешь вообще писать дико тупой код так как документация этого требует.
>>486125
Начинать можно и без книг. Даже лучше без книг, многие книги плохо написаны и делают только хуже.
К примеру вот https://docs.microsoft.com/ru-ru/aspnet/?view=aspnetcore-3.0
>Реклама "АЙТИ ЭТО БАБКИ" делает свое дело. На каждом борде/в каждом вагоне метро - реклама курсов. Даже видел в запиздрыщенском трамвае рекламу - "У айтишников крутые машины (fordmustang.img)"
У меня друг преподает такие курсы как доп. заработок, платят 100к в месяц за десяток часов в неделю.
Так вот через него более 500 человек уже прошло и по его словам не более 10 смогли попасть на работу, а из этих 10 только 2-3 проработали более полугода.
Основная масса приходящих не понимают что ИТ это постоянно обучение, они думают что пройдя эти курсы то больше им делать ничего не придется, типа идешь работать и рубишь бабло. Для них ИТшник как сварщик, типа разок выучился и все, при том что их на первом же занятии предупреждают что это не так и можно забрать деньги и уйти, но нет, они думают что умнее всех.
>Насчет бугра - пару Hello world не катит это точно
Инфа двух годичной давности и я не зря сказал нигга, потому что реально нигга который вчера барыжил за углом каким-то дерьмом попал к ним на работу и успешно работал со знаниями как будто 1 книгу прочел и пару to-do программ написал. И такое как он сказал постоянно, именно поэтому они любят всех забугорных программистов, ибо уровень квалификации на голову выше за ту же цену.
>но наличие диплома у них маст хев лишь по той причине, что показывает человека, как дисциплинированного и познавшие азы профессии (за бугром не прокатит не ходить на пары пол года, а потом вывалить котлету денег).
Для ИТ это никогда не нужно было и по опыту из РФ могу сказать что дипломированный специалист будет в разы хуже самоучки и всегда будет знать технологии меньше. Просто потому что наше образование преподает старинные вещи которые уже не актуальны, а время на самообучение нет так как преподы срать хотели что ты там новое учишь, делай что говорят, а новенькое после диплома трогать будешь.
Сам отучился в таком дерьме, но благо препод знал директора место где я работаю и тупо ничего с меня не спрашивал, но с другими сокурсниками тяжело было общаться, так как они реально на уровень ниже были и со своей колокольни я понимал что эта хуйня что они сейчас делают уже устарела и оно нахер не нужно. Простой пример понятный всем, пока мои сокурсники изучали DirectX 9, я мог в тоже время ебашить Vulkan, сомневаюсь что сейчас хоть кому-то нужен этот DX9.
Так что диплом это не показатель, особенно для опытного бизнеса который знает весь бэкграунд.
>какие вопросы задавали на собесы на позицию джуна, чот влень просто.
Так это уже классика.
Чаще всего собеседуют люди которые вообще не шарят в ИТ и за месяц в спешном порядке нахватались верхов которые и пытаются спрашивать.
Меня на одной работе за многопоток около часа ебали, о способах синхронизации, чем отличаются и все в этом духе. Зато на работе за год там я написал дай бог пару раз какой-то многопоток и то все сводилось к Task.Run и затем Wait потому что внутренняя кухня была написана без задела на многопоток и асинхронность в результате нестабильное поведение, а значит в документации всем тупо запрещено писать такой код.
Так что чаще всего на собеседовании спрашивают то чем ты никогда заниматься не будешь, а порой ты будешь вообще писать дико тупой код так как документация этого требует.
>>486125
Начинать можно и без книг. Даже лучше без книг, многие книги плохо написаны и делают только хуже.
К примеру вот https://docs.microsoft.com/ru-ru/aspnet/?view=aspnetcore-3.0
есть Адам Фримен "ASP.NET Core MVC 2" книга 2019 года.
В первой части автор строит проект на примере интернет магазина.
Во второй части рассматривает инфраструктуру.
насчет собесов и требований это отдельная тема. Происходит все по такому алгоритму:
1. Команда начинает овертаймить и у кого то взрывается жопа, что заебался по 1-2 часа сверхурочно сидеть.
2. Тим лид дает запрос ХРюше о поиске джуна - червепидора, который будет делать всю грязную работу (попутно осваивая технологию).
3. ХРюша спрашивает критерии - тим лид в спешке высирает стек текущего проекта отмечая галочками/циферками приоритет - маст хев или рекомендуется.
4. Тупая пизда все это копипиздит, дает на проверку заявителю (в лучшем случае). И пошел конвеер предложений.
5. Когда тебе предлагают приехать на собес, это еще не означает, что ты поговоришь с человеком, бывает что собес заканчивается на диалоге с HR(если спезднишь что ни будь типо - "Да я ленивый, что забей")
ХРюша будет ебать мозги тупыми задроченными на все интернеты вопросами на проверку - начнет ли у тебя дергаться бровь/чесаться ухо/просто взорвется пукан от обилия тупых вопросов.
6. Если нет - выход тим лида/его помощника/тех. лида. Обычно на это какой ни будь ноулайфер, который дрочит стек до самых глубин. Если спросят за дизасемблирование у джуна - это нормальная практика. Из чего состоит сборка, манифест, как рефлектить приложение в рантейме. Обычно вишенка на торте - это знание алгоритмов. Если задашь вопрос типо - каких именно алгоритмов - поиска или сортировка, а так же если называешь больше 1 алгоритма (bubble sort не в счет) ловишь респект (если все равно кажешься тупее/уродливей интервьера) в инном случае интервьер задает вопрос, на который он и сам с трудом помнит ответ, если сам помнит. Обычно это какая то отреченная хрень или с последней версии языка или очень низкоуровневая. Как например в сраче выше - происходит ли боксинг при передаче интерфейса в метод, где foreach делает проход по элементам этого интерфейса дженерик страктом. (Это все позиция джуна, дада).
Был один случай, когда я отправил CV на Asp.net mvc, в котором не было ни строчки про знание JS/css/html. Обычно писал, что знаю +- xaml, т.к. писал на WPF. Первый вопрос, который мне задал додик СЕНЬЕР - это про замыкания. Я начал рассказывать про обобщенные делегаты, Func, объявление хранилища данных внутри области видимости делегата. Это чмо смотрело на меня минут 5, пока я пытался по полочкам выстроить мысль про замыкания в шарпах, как он мне монотонным голосом сказал - "Что за пургу ты несешь". Я говорю - блять, да это же замыкания в шарпах, Вась. Он говорит - я у тебя про замыкания в JS спрашивал (не спрашивал в каком именно языке). После, додик задав еще 5 вопросов по JS, а я в свою очередь высрав 5 интуитивных ответов и добавляя, что я не знаю JS, эта чмоха встала с фразой "Мне нужно выйти" и так и не вернулась. Зашла хрюша и сказала - мы вам перезвоним.
В итоге такого собеса я потерял ровным счетом 3 часа времени + кучу нервов.
Такую бы пасту пилить под курсами .NET, чтобы "В АЙТИ ЗА БАБКАМИ" знали куда идут.
насчет собесов и требований это отдельная тема. Происходит все по такому алгоритму:
1. Команда начинает овертаймить и у кого то взрывается жопа, что заебался по 1-2 часа сверхурочно сидеть.
2. Тим лид дает запрос ХРюше о поиске джуна - червепидора, который будет делать всю грязную работу (попутно осваивая технологию).
3. ХРюша спрашивает критерии - тим лид в спешке высирает стек текущего проекта отмечая галочками/циферками приоритет - маст хев или рекомендуется.
4. Тупая пизда все это копипиздит, дает на проверку заявителю (в лучшем случае). И пошел конвеер предложений.
5. Когда тебе предлагают приехать на собес, это еще не означает, что ты поговоришь с человеком, бывает что собес заканчивается на диалоге с HR(если спезднишь что ни будь типо - "Да я ленивый, что забей")
ХРюша будет ебать мозги тупыми задроченными на все интернеты вопросами на проверку - начнет ли у тебя дергаться бровь/чесаться ухо/просто взорвется пукан от обилия тупых вопросов.
6. Если нет - выход тим лида/его помощника/тех. лида. Обычно на это какой ни будь ноулайфер, который дрочит стек до самых глубин. Если спросят за дизасемблирование у джуна - это нормальная практика. Из чего состоит сборка, манифест, как рефлектить приложение в рантейме. Обычно вишенка на торте - это знание алгоритмов. Если задашь вопрос типо - каких именно алгоритмов - поиска или сортировка, а так же если называешь больше 1 алгоритма (bubble sort не в счет) ловишь респект (если все равно кажешься тупее/уродливей интервьера) в инном случае интервьер задает вопрос, на который он и сам с трудом помнит ответ, если сам помнит. Обычно это какая то отреченная хрень или с последней версии языка или очень низкоуровневая. Как например в сраче выше - происходит ли боксинг при передаче интерфейса в метод, где foreach делает проход по элементам этого интерфейса дженерик страктом. (Это все позиция джуна, дада).
Был один случай, когда я отправил CV на Asp.net mvc, в котором не было ни строчки про знание JS/css/html. Обычно писал, что знаю +- xaml, т.к. писал на WPF. Первый вопрос, который мне задал додик СЕНЬЕР - это про замыкания. Я начал рассказывать про обобщенные делегаты, Func, объявление хранилища данных внутри области видимости делегата. Это чмо смотрело на меня минут 5, пока я пытался по полочкам выстроить мысль про замыкания в шарпах, как он мне монотонным голосом сказал - "Что за пургу ты несешь". Я говорю - блять, да это же замыкания в шарпах, Вась. Он говорит - я у тебя про замыкания в JS спрашивал (не спрашивал в каком именно языке). После, додик задав еще 5 вопросов по JS, а я в свою очередь высрав 5 интуитивных ответов и добавляя, что я не знаю JS, эта чмоха встала с фразой "Мне нужно выйти" и так и не вернулась. Зашла хрюша и сказала - мы вам перезвоним.
В итоге такого собеса я потерял ровным счетом 3 часа времени + кучу нервов.
Такую бы пасту пилить под курсами .NET, чтобы "В АЙТИ ЗА БАБКАМИ" знали куда идут.
Апдейт вопроса. Как выровнять по верхнему краю теперь?
боже мой, веб по сравнению с xaml просто ужасен
тебя в гугле забанили? Или это тред верстальщиков бутстрапа?
> веб по сравнению с xaml просто ужасен
вот не надо. xaml та еще залупа.
а твои вопросы банальны и легко гуглятся. это же ёбанный CSS. вот и иди в тред верстальщиков.
Можете скинуть сверхпиздатый гайд? И по адресу ли я вообще?
Я понимаю что можно пойти в гугл, но там полно мусора, а у меня очко и сроки горят.
Не бейте, спасибо.
А как сжимать видео в шарпе? Нашёл гайд http://www.aforgenet.com/framework/docs/html/4ee1742c-44d3-b250-d6aa-90cd2d606611.htm
но у меня юзинг не подключается, в нугете скачал AForge.Video
Я другой анон, просто интересно.
Если идти в ИТ за бабками, так это скорее в около айти.
Как мой друган который обучает сам нехера не зная и без опыта, свою соточку имеет за то что людям пересказывает в лучшем случае первую половину любой книжки.
Да и твой пример собеседования из компаний которые надо избегать как огня.
У тех кто в профе не первый год уже есть список подобных контор к которым нельзя на работу идти или которым в случае сотрудничества надо ломить ценник минимум в 2 раза выше рынка.
Кстати все эти конторы из-за херовой репутации мертвые, им нужно платить годному человеку чтобы он у них работал в 2 раза выше рынка, обычно за счет других сотрудников, которым занижают ЗП и они обычно бегут спустя некоторое время оттуда. Из-за этой текучки годный человек должен выдумывать такую архитектуру чтобы ее даже макака могла делать и поддерживать, а от этого чаще всего страдает сам продукт.
Мне приходилось работать с такой хуйней, в наследство так сказать досталось и задача была хотя бы ускорить все это дело в 2 раза, так как тормозило безбожно и апгрейд железа не помогал, а это тормозило другую работу.
По коду было понятно что писали его не менее сотни разных людей с разными знаниями, при том в большинстве своем новички целью которых было максимально безопасно написать их часть кода.
То есть если их метод принимал лист, то они делали его копию, на всякий случае, а то вдруг кто изменит.
Или если им нужно пройтись по листу и прочекать 1 поле, то делалось list.Select(x=>x.Id).ToList() и затем foreach и это все тянулось через десятки методов, так некоторые еще рекурсивно вызывались.
Запросив две недели, пару человек и премию по результатам, мы переписав это говно получили производительность в 20 раз выше в обычном режим и в 170 раз выше при попытке загрузить приложение под завязку в сравнении со старой версией. Директор получив отчет покраснел от злости так как по с его точки зрения мы сделали за 2 недели то что делали более полугода + год на допиливание, за бюджет раз в 50 меньше чем было затрачено (я хз сколько было затрачено, просто грубо предположил).
>эта чмоха встала с фразой "Мне нужно выйти" и так и не вернулась. Зашла хрюша и сказала - мы вам перезвоним.
Обычная практика когда кто-то в компании проебался и нанимали не того программиста или отправили не того собеседовать. В результате чтобы не казаться дебилами решили тупо забить на кандидата с которым проебались.
Корпоративный бардак, но что хорошо, если в эту фирму попасть, можно жестко халявить.
Мой текущий коллега 3 года проработал в такой компании не сделав для компании ровном счетом ничего. Вначале он ходил и тупо просиживал штаны, ожидая когда ему что-то дадут делать, затем он решил по фану что-то опенсорс пилить, затем поняв что ему ничего походу не дадут занимался фрилансом на работе. В результате он так 2 года проработал там получая ЗП за то что фрилансит на себя. Если бы отдел не сократили из-за кризиса я думаю он там еще лет 5 минимум продержался бы.
Если идти в ИТ за бабками, так это скорее в около айти.
Как мой друган который обучает сам нехера не зная и без опыта, свою соточку имеет за то что людям пересказывает в лучшем случае первую половину любой книжки.
Да и твой пример собеседования из компаний которые надо избегать как огня.
У тех кто в профе не первый год уже есть список подобных контор к которым нельзя на работу идти или которым в случае сотрудничества надо ломить ценник минимум в 2 раза выше рынка.
Кстати все эти конторы из-за херовой репутации мертвые, им нужно платить годному человеку чтобы он у них работал в 2 раза выше рынка, обычно за счет других сотрудников, которым занижают ЗП и они обычно бегут спустя некоторое время оттуда. Из-за этой текучки годный человек должен выдумывать такую архитектуру чтобы ее даже макака могла делать и поддерживать, а от этого чаще всего страдает сам продукт.
Мне приходилось работать с такой хуйней, в наследство так сказать досталось и задача была хотя бы ускорить все это дело в 2 раза, так как тормозило безбожно и апгрейд железа не помогал, а это тормозило другую работу.
По коду было понятно что писали его не менее сотни разных людей с разными знаниями, при том в большинстве своем новички целью которых было максимально безопасно написать их часть кода.
То есть если их метод принимал лист, то они делали его копию, на всякий случае, а то вдруг кто изменит.
Или если им нужно пройтись по листу и прочекать 1 поле, то делалось list.Select(x=>x.Id).ToList() и затем foreach и это все тянулось через десятки методов, так некоторые еще рекурсивно вызывались.
Запросив две недели, пару человек и премию по результатам, мы переписав это говно получили производительность в 20 раз выше в обычном режим и в 170 раз выше при попытке загрузить приложение под завязку в сравнении со старой версией. Директор получив отчет покраснел от злости так как по с его точки зрения мы сделали за 2 недели то что делали более полугода + год на допиливание, за бюджет раз в 50 меньше чем было затрачено (я хз сколько было затрачено, просто грубо предположил).
>эта чмоха встала с фразой "Мне нужно выйти" и так и не вернулась. Зашла хрюша и сказала - мы вам перезвоним.
Обычная практика когда кто-то в компании проебался и нанимали не того программиста или отправили не того собеседовать. В результате чтобы не казаться дебилами решили тупо забить на кандидата с которым проебались.
Корпоративный бардак, но что хорошо, если в эту фирму попасть, можно жестко халявить.
Мой текущий коллега 3 года проработал в такой компании не сделав для компании ровном счетом ничего. Вначале он ходил и тупо просиживал штаны, ожидая когда ему что-то дадут делать, затем он решил по фану что-то опенсорс пилить, затем поняв что ему ничего походу не дадут занимался фрилансом на работе. В результате он так 2 года проработал там получая ЗП за то что фрилансит на себя. Если бы отдел не сократили из-за кризиса я думаю он там еще лет 5 минимум продержался бы.
Блин, руки опускаются, вам всё так здесь очевидно. Я вроде бы знаю шарп, а нихера сделать не могу. Меня же не обучали как делать обрезание, как на пиксили разбить видео.
именно это я и имел ввиду, не так выразился.
100% для этого есть библиотеки на гитхабе под все современные кодеки в 10 разных вариантах, где ты тупо можешь подсунуть видео и поиграв с настройками получить что тебе надо.
То что ты скинул это ебаный ад, одна вот эта строчка
>image.SetPixel
чего только стоит.
Просто запомни что если ты делаешь что-то для теста или тупо надо 1 разок в полгода вывести картинку, то да сойдет.
В иных случаях для работы с bitmap когда нужно менять пиксели всегда нужно лезть в unsafe и LockBits.
Разница в скорости работы там десятки раз.
>>486270
Все очевидно когда ты поработал хотя бы разок с этим.
Так что все дело в практике, главное один раз разобраться, а дальше уже пойдет легче.
>годному человеку чтобы он у них работал в 2 раза выше рынка
в таких фирмах обычно еще студентота и скам работает за бесплатно (в прямом и переносном смысле - за 100-200 USD, есть ебаньки, которые за 0$ - им оплачивают ЧП, а на жизнь и дорогу берут у родителей/c нычки и т.д.). И когда в такой скам помойке ты называешься вполне адекватную для джуна цифру - 500-550 USD (при том, что съемная хата только 200$ стоит, а еще что то похавать нужно и одеть на себя), Хрюша улыбаясь говорит - "Пф, да у нас тут за бесплатно готовы работать".
С тобой я на 100% прав, что такие галеры лучше избегать и бежать с них сломя голову.
Я просто этот пример привел к тому, что IT сфера - это такой бардак. Есть подвальные/квартирные офисы - площадь 4x4 с 6-8 местами, со старым железом, сидят чуть ли не на ящиках. Отчаянные ОЙТИшники готовы идти в такой мусор, мечтая о космо деньгах, тем самым просаживая рынок.
Я даже подумываю завести бложик или канал на ютубе, где пилить сторисы от меня и знакомых в каких ебаных помойках работали и на какие грабли наступали.
>пройтись по листу и прочекать 1 поле, то делалось list.Select(x=>x.Id).ToList() и затем foreach и это все тянулось через десятки методов
а чего еще ожидать, если проект полон говно кода. ООП, SOLID? Да не смешите. Если на собесе спросят про принципы солида, duck type, а по факту получишь, что получишь - можно идти и харкать в ебло интервьеру. А так то да, перебор одной и той же коллекции в N методах - классика.
В 8 или 9 тред скидывал анон метод на 17к строк и такое бывает.
Есть какой-то интересный задачник для укреплений знаний а так же пет-проекты для новичков/джунов?
>Мой текущий коллега 3 года проработал в такой компании не сделав для компании ровном счетом ничего. Вначале он ходил и тупо просиживал штаны, ожидая когда ему что-то дадут делать, затем он решил по фану что-то опенсорс пилить, затем поняв что ему ничего походу не дадут занимался фрилансом на работе. В результате он так 2 года проработал там получая ЗП за то что фрилансит на себя. Если бы отдел не сократили из-за кризиса я думаю он там еще лет 5 минимум продержался бы.
Как вы находите такие компании? Работаю над проектом каждый день.
Мог бы просто js выучить)
Ну как находят? Садятся на диван и начинают бродить в чертогах своего разума фантазируя.
>но у меня юзинг не подключается
всм?
в этом примере кстати код хз че делает . вроде закрашивает какие-то пиксели красным цветом. И красит только 1000 кадров.
https://stackoverflow.com/questions/15052419/how-to-resize-image-with-imagebox-emgucv
я уменьшал изображение этим способом.
Брать видео можно и твоим способом, но я бы использовал от той же библиотечки http://www.emgu.com/wiki/files/3.2.0/document/html/5d3e2a38-d2a8-494c-37e0-387d610a87ab.htm
мб там же можно найти количество кадров в видео. если нет делаешь так:
//исходное видео
inputVideo = new VideoCapture("path/to/file");
//преобраззованное видео
outputVideo = new VideoWriter();
while(inputVideo.QueryFrame != null){
//тут делаешь resize
outputVideo.Write(resizedFrame);
}
Типо того... но надо читать смотреть:
http://www.emgu.com/wiki/files/3.4.1/document/html/3fb90645-ecc4-0c4e-b238-6d0ca38f4ebc.htm
http://www.emgu.com/wiki/files/3.2.0/document/html/5d3e2a38-d2a8-494c-37e0-387d610a87ab.htm
Если ты хочешь такое место то прыгай по крупным компаниям в которых творится бардак.
Правда сейчас такое практически невозможно уже найти, из-за кризиса все такие отделы давно утилизировали и даже из рабочих отделов стараются сократить людей. Хотя может быть где-то в государственных организациях поближе к верхушке можно халявить, там в принципе все и всегда халявили. Чем выше сможешь подняться тем меньше работать будешь.
Какой именно гайд нужен? По проектированию? Получи https://metanit.com/sql/tutorial/1.1.php Как подключаться и делать запросы? Лови https://metanit.com/sharp/adonet/ . Надоело пердолить запросы руками и хочется орм-ку? На https://metanit.com/sharp/entityframework/ (для кора https://metanit.com/sharp/entityframeworkcore/)
Или может тебе надо выбрать БД? Ну тогда Sqlite для встраиваемой и MSSQL/MySql для серверной.
>>486283
Нет. Придумай сам, только ты знаешь что тебе интересно. Классический вариант - автоматизировать что-то, что ты делаешь за компом. Я например делал прогу, которая выкачивала фотки ЕОТов из контача. Тут и с интернетом работа и с апи контача и бд использовал и когда прога разлослась и стала ломаться от одного чиха пришлось изучать и прикручивать MV* паттерны. В общем набил кучу шишек, а прога получилась говно, хоть и работала. Была идея сделать поддержку разных соцсетей, инсты и прочего через плагины, но меня это все заебало, да и сама идея себя изжила, я понял, что мне эти фото нахрен не нужны, да и все больше окукливали свои профили. Вот. Можешь пойти моим путём. Тупиковым.
localdb это кастрированный sql server, ставится вместе со студией, но можно и отдельно накатить
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-2017
Ну не надо...
Лучше подкинь каких-то идей или задач...а лучше работу...
Никто не берет потому что нету опыта. Все отказывают.
Даже за еду и воду.
Я с Украины если что...
Я не понял как сделать. Нахожу либы на гитхабе, не ебу чё с ними делать, https://github.com/Veggie13/VideoCompression
>Никто не берет потому что нету опыта. Все отказывают.
>Даже за еду и воду.
жиза жиза, мимо >>482392
>Лучше подкинь каких-то идей или задач
ну хз что тебе интересно, может сайты, а может под десктоп писать.
можешь посмотреть на сайтах работы, какие фреймворки используют компании и уже с нимифреймворками что-то придумывать.
как идея - написать код который будет выкачить webm из тредов
или бота для игры
можешь найти игру с открытым кодом и в ней копаться, добавлять/удалять/улучшать
это не то.
Я бы хотел тогда уж сделать на ASP.NET Core загрузчик видео с ютуба, или аудио только. Но только начал и не знаю пока как. В WPF кста кучу нашел гайдов. Для ASP.NET нет. Ну либо рукожоп.
>Я бы хотел тогда уж сделать на ASP.NET Core загрузчик видео с ютуба, или аудио только
результатом будет сайт вроде savefrom.net?
>В WPF кста кучу нашел гайдов
для загрузки видео с ютуба, получается?
логика программы будет что в wpf, что в asp.net core почти одинаковая - после нажатия на кнопку отправить запросили что там, не совсем шарю ютубу и скачать видос. Поэтому это ты можешь взять из wpf и вставить в asp net, имхо.
единственное думаю, что asp.net будет посылать запросы от имени сервера и соответственно сохранять видосики к себе на сервер.
поэтому надо будет видео передавать потом клиенту
хотя не знаю, может в asp.net можно сохранять сразу на стороне клиента, я в этом нуб
именно эту задачу можно сделать хоть в консольке))
вообще вот тебе идея - сделай библиотеку.dll для закачки видосиков. Чтобы можно было в любом приложении (wpf, winforms, console, asp.net) просто написать
var vDownloader = new VideoDownloader("C:/path/to/folder");
vDownloader.Download("youtube.com/videourl");
будет просто бомба)
заодно там можно сделать тесты и прочее
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/library-with-visual-studio
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/consuming-library-with-visual-studio?tabs=csharp
вроде этого.
https://www.c-sharpcorner.com/uploadfile/61b832/creating-class-library-in-visual-C-Sharp/
или так
Есть два метода, void foo(int arg) и void foo(int[] arg) с почти идентичными телами, но где-то посередине тела они вызывают bar(arg) (см пикрил).
Как максимально избавиться от копипаста?
Сложно сказать, не зная, что там происходит. Можешь попробовать навернуть полиморфизма, или как-то по другому составить методы, чтоб локализовать общую часть и ее вынести.
почему в шапке до сих пор 6ая версия шарпа, когда уже 8ая?
разрешаю, запихивай
какие то члены везде члены
в других языках такого нет в начале изучения
Так,вроде понял, что проблема в одновременном вызове. Как это решить?
Nvarchar - Unicode символы переменной длинны
ну и что тебя смущает? Ты не знаешь что такое члены типа/класса/метода/пространства имен? Если нет - учи мат. часть
Суть, есть один флоат как ключ в словаре:
MyDict[0.5f] = SomeObj;
Я точно знаю, что если к нему прибавить шаг, то там будет другой нужный объект
OtherObj = MyDict[0.5f + Step];
Короче, вопросы: насколько это производительно и если риск промахнуться мимо другого объекта после N шагов?
Боже блять иди учи различие ссылочных типов от значимых, различие класса и экземпляра класса.
Следовал гайду http://www.joe-stevens.com/2011/05/30/asp-net-mvc-simple-server-side-ajax-paging-using-jquery/
Но скрипт в Index.cshtml нифига не выполняется, сколько не кликай.
Код контроллера: https://pastebin.com/RLgczQy6
Код представления Index.cshtml: https://pastebin.com/P18nNFh3
Код представления ImageList.cshtml: https://pastebin.com/EQnTQg0d
Буду рад любой помощи.
Проблема частично решилась путём переноса строки <script src="~/lib/jquery/dist/jquery.min.js"></script> в секцию <head> в файле _Layout.cshtml.
Теперь проблема в том, что я один раз кликаю на номер страницы, всё норм, отображается 3 изображения. Но если опять кликнуть на номер другой страницы, то ничего не происходит.
Всё ещё нуждаюсь в помощи.
И эта проблема решилась. В скрипте заменил$(".page-number").on("click", function () {...} на $(document).on("click", ".page-number", function () {...}
Всем спасибо
Да там ад. Можешь почитать Джейсон Шрейер: Кровь, пот и пиксели. Обратная сторона индустрии
Только стоит натянуть еще нашу действительность, что означать помножить на х2.
Нужен совет как провести нужного человека через собеседование.
Работаю в около государственной конторе, по докам частники, по факту все заказы от государства и оно курирует.
Все действия с персоналом проходят через "кураторов" и просто так пригласить человека нельзя. Все должно проходить "открыто" и чтобы было много кандидатов из которых выберут Х(мне известно что 2) лучших. Значит мне начальник поручил проводить собеседования, помимо меня будет еще 2 человека из 2 разных мест которые будут не столько смотреть на человека, сколько как я его опрашиваю. У нас уже имеются люди которых мы хотели бы взять (работали на нас как фрилансеры) и которые нас устраивают, но решение будет приниматься не мной, а этими 2 людьми на основании того как будет проводиться собеседование.
Моя задача провести собеседование так чтобы взяли именно тех кого мы хотим, но при этом нельзя спрашивать какие-то дикие дебри так как эти 2 человека сразу поймут наебалово.
Собеседование идет где-то час-два, 10-20 минут общий опрос опыта, 20-40 минут разная теория и 30-60 минут вопросы по практике с последующей практикой.
На собеседование придут 100% не нубы, так как ко мне идут уже после первичного отбора (наши ребята прошли), ЗП порядка от 300к и желающих просто дохера.
Вопросы про опыт по сути значения не имеют, так как все понимают что все равно на новом месте приходится обучаться работать по новому, правила все дела. Тут мне ловить нечего.
Про вопросы теории тоже особо ничего не словишь, так как там у меня будет список вопросов которые я должен задавать и по сути любой шарпист сможет на них ответить, тут тоже все пройдут я думаю.
Но вот на практике у меня есть шансы, тут уже мне надо составлять задачи/вопросы, мне нужно все сделать так чтобы и одновременно просто было со стороны и сложно внутри.
Пока родил вот такую вещь. По сути дела спрашивать буду:
-Что выведет этот код?
-Что мы ожидаем там увидеть?
-Как привести этот код к ожидаемому виду?
-Почему такая "магия" происходит?
https://pastebin.com/S3zDUNXR
По сути дела это не сложная же штука, но и большинство не должно смочь ответить на это дело правильно с первого же раза, а значит у тех кто в курсе будет преимущество.
Как по вашему что еще можно придумать чтобы и мне не сказали что я сложную дичь выдумал и не каждый смог правильный ответ сходу дать?
Да там ад. Можешь почитать Джейсон Шрейер: Кровь, пот и пиксели. Обратная сторона индустрии
Только стоит натянуть еще нашу действительность, что означать помножить на х2.
Нужен совет как провести нужного человека через собеседование.
Работаю в около государственной конторе, по докам частники, по факту все заказы от государства и оно курирует.
Все действия с персоналом проходят через "кураторов" и просто так пригласить человека нельзя. Все должно проходить "открыто" и чтобы было много кандидатов из которых выберут Х(мне известно что 2) лучших. Значит мне начальник поручил проводить собеседования, помимо меня будет еще 2 человека из 2 разных мест которые будут не столько смотреть на человека, сколько как я его опрашиваю. У нас уже имеются люди которых мы хотели бы взять (работали на нас как фрилансеры) и которые нас устраивают, но решение будет приниматься не мной, а этими 2 людьми на основании того как будет проводиться собеседование.
Моя задача провести собеседование так чтобы взяли именно тех кого мы хотим, но при этом нельзя спрашивать какие-то дикие дебри так как эти 2 человека сразу поймут наебалово.
Собеседование идет где-то час-два, 10-20 минут общий опрос опыта, 20-40 минут разная теория и 30-60 минут вопросы по практике с последующей практикой.
На собеседование придут 100% не нубы, так как ко мне идут уже после первичного отбора (наши ребята прошли), ЗП порядка от 300к и желающих просто дохера.
Вопросы про опыт по сути значения не имеют, так как все понимают что все равно на новом месте приходится обучаться работать по новому, правила все дела. Тут мне ловить нечего.
Про вопросы теории тоже особо ничего не словишь, так как там у меня будет список вопросов которые я должен задавать и по сути любой шарпист сможет на них ответить, тут тоже все пройдут я думаю.
Но вот на практике у меня есть шансы, тут уже мне надо составлять задачи/вопросы, мне нужно все сделать так чтобы и одновременно просто было со стороны и сложно внутри.
Пока родил вот такую вещь. По сути дела спрашивать буду:
-Что выведет этот код?
-Что мы ожидаем там увидеть?
-Как привести этот код к ожидаемому виду?
-Почему такая "магия" происходит?
https://pastebin.com/S3zDUNXR
По сути дела это не сложная же штука, но и большинство не должно смочь ответить на это дело правильно с первого же раза, а значит у тех кто в курсе будет преимущество.
Как по вашему что еще можно придумать чтобы и мне не сказали что я сложную дичь выдумал и не каждый смог правильный ответ сходу дать?
А что делать когда ты не можешь напрямую взять того кто уже работал над твоими проектами и кто устраивает по результатам их выполнения?
Из-за них и началось все это дело. Так как появилась графа "аутсорс" в расходах, что по факту было отдача некоторых задач на фриланс, ибо сами по времени уже не справляемся.
Чтобы убрать эту графу, сверху решили нанять еще людей.
Но они нам не нужны так как уже знаем что будет. Проходили.
Приходят люди которые вроде бы что-то и знают, но по факту работать не умеют. Выделяют кого-то опытного из команды, ему отдают низко приоритетный проект на курирование, он начинает его делать в новой команде, в которой 8 из 10 человек вообще не о чем и в результате через квартал оказывается что проект "встал", так как все сроки проебываются, баги растут и тупо ничего не успевают так как большая часть времени уходит на обучение команды которая все равно делает все "не правильно". Затем через полгода когда должен быть по планам прототип, по факту получаем какую-то хуйню, основная команда срочно кидается смотреть что там, в результате оказывается что легче заново написать чем все это дело разобрать и реанимировать. Новую команду увольняют, чуваку что курировал сверху выговор (по факту нет, директор знает что не его вина), у того кто кидался в такую команду за эти полгода волосы поседели, нервы не к черту, еще чуток и нервный срыв. У нас уже шутят что это своего рода "посвящение", потому что еще не один проект в новой команде не был завершен успешно. Лишь пару раз доводилось до "кое-как", но затем все равно приходилось многое переделывать.
Наше руководство и вообще все в команде это понимают, но вот чиновники срать хотели на то что мы думаем, нам платят и мы должны делать ту работу за которую платить и не совать свой нос в другие дела, им виднее как, когда и кого нанимать.
Если бы нам позволили выбирать мы бы вначале работали с кучей фрилансеров и по тому как они выполняли работу уже собирали бы из них команды, а не так что берут как бы "годных" ребят, но чаще всего у них академические знания. Они отлично знают теорию, могут в некоторую практику, но вот реальные вещи делать практически не способны. Зато эти фрилансеры чаще всего не бум бум в теории, не в курсе паттернов и монад, но при этом на практике как бы "подсознательно" все это дело используют и главное используют правильно. Но из-за того что выбираем людей не мы то лишь 1 из 10 такой приходит в команду который через полгода не вылетит.
А что делать когда ты не можешь напрямую взять того кто уже работал над твоими проектами и кто устраивает по результатам их выполнения?
Из-за них и началось все это дело. Так как появилась графа "аутсорс" в расходах, что по факту было отдача некоторых задач на фриланс, ибо сами по времени уже не справляемся.
Чтобы убрать эту графу, сверху решили нанять еще людей.
Но они нам не нужны так как уже знаем что будет. Проходили.
Приходят люди которые вроде бы что-то и знают, но по факту работать не умеют. Выделяют кого-то опытного из команды, ему отдают низко приоритетный проект на курирование, он начинает его делать в новой команде, в которой 8 из 10 человек вообще не о чем и в результате через квартал оказывается что проект "встал", так как все сроки проебываются, баги растут и тупо ничего не успевают так как большая часть времени уходит на обучение команды которая все равно делает все "не правильно". Затем через полгода когда должен быть по планам прототип, по факту получаем какую-то хуйню, основная команда срочно кидается смотреть что там, в результате оказывается что легче заново написать чем все это дело разобрать и реанимировать. Новую команду увольняют, чуваку что курировал сверху выговор (по факту нет, директор знает что не его вина), у того кто кидался в такую команду за эти полгода волосы поседели, нервы не к черту, еще чуток и нервный срыв. У нас уже шутят что это своего рода "посвящение", потому что еще не один проект в новой команде не был завершен успешно. Лишь пару раз доводилось до "кое-как", но затем все равно приходилось многое переделывать.
Наше руководство и вообще все в команде это понимают, но вот чиновники срать хотели на то что мы думаем, нам платят и мы должны делать ту работу за которую платить и не совать свой нос в другие дела, им виднее как, когда и кого нанимать.
Если бы нам позволили выбирать мы бы вначале работали с кучей фрилансеров и по тому как они выполняли работу уже собирали бы из них команды, а не так что берут как бы "годных" ребят, но чаще всего у них академические знания. Они отлично знают теорию, могут в некоторую практику, но вот реальные вещи делать практически не способны. Зато эти фрилансеры чаще всего не бум бум в теории, не в курсе паттернов и монад, но при этом на практике как бы "подсознательно" все это дело используют и главное используют правильно. Но из-за того что выбираем людей не мы то лишь 1 из 10 такой приходит в команду который через полгода не вылетит.
Архитектуру проектирую в виде главного домена и отдельных модулей, которые используют другие модули через интерфейсы в домене.
И вот я, например, хочу сделать сервис, который будет провайдером моего апи и в интерфейсе будет 1000 CRUD методов для каждой модели. Или есть ключевое действие всего приложения, а выделять его в отдельный модуль глупо несколько методов для изменения модели и проще будет описать model.Xxx(param) вместо service.Xxx(model, param), а оставлять в модели как то странно.
Я перфекционист идиот, что не могу допереть или же нужно выбирать между правильностью и практичностью?
С реализацией никаких проблем нету, начитан, но практики проектирования чего то больше за хелловорлд не было.
Я теперь боюсь, что на собеседовании мне такое же тестовое предложат и я обосрусь просто, какова вероятность этого?
Кароч, пока писал то немного прояснил все для себя. Вместо отдельных сервисов для моделей сделать интерфейс модели. Так и DI будет, и замокать просто. Ну а апи провайдер по сути и должен быть раздутым.
Юнити
Да у меня на плоскости были даны окружности, считай они на линии расположены.
Дан массив чисел от n до n-1, где значение каждого элемента массива - это радиус, а порядковый номер - это центр.
Таким образом, мне надо найти сколько пересекающихся пар окружностей.
В финале я нашёл алгоритм и разобрал его, теперь знаю как оно работает Можешь посмотреть решение вот тут, тут и задача нормально описана https://github.com/ZRonchy/Codility/blob/master/Lesson4/NumberOfDiscIntersections.java
Я теперь боюсь, что если что-то такое дадут на собесе, то это все, пизда.
Тебе уже пизда.
Ты говоришь об окружностях, а по твоей ссылке диски.
Это разные объекты, и условия, и, следовательно, решения для них разные.
Собес у тебя уже не удался.
Тебе указали на ошибку, ты, вместо того, чтобы погуглить, что есть что, а потом подумать, начал сразу же спорить и залупаться.
Пиздец, ты тупой.
Но если мне ещё чего дадут на сложность алгоритма или геометрию на собеседовании, то это фейл будет.
А вообще я не ебу за разницу между диском и кругом, например
>окружность
>я не ебу за разницу между диском и кругом, например
1. ты не ебешь в простых вещах, которые в средней школе проходят
2. если ты не понимаешь разницы, то ты ни хуя не понял, как работает алгоритм. потому что для окружности и круга разные условаия
Окей, чисто в терминах геометрии я не прав, окружность и круг разные вещи, хорошо, я понял суть претензии.
>>для окружности и круга разные условия
>чисто в терминах геометрии я не прав
Как же медленно до тебя доходит, е-мое
Есть такое, но изначально я просто не смог выразиться, для меня термины "окружность" и "круг" были синонимичны.
Условно, если мне дадут день-два, то я путем долгого гугления смогу написать алгоритм, но на собеседовании мне никто столько времени не даст, есть шанс, что такое же выдадут на собеседовании?
>нормально знаю Паскаль
Но зачем?
>Посоветуйте годной литературы для новичка в C#
Ты не особенный, читай как и все Шилдт/Троелсен/Албахари/Рихтер и т.д.
>>487620
Часто вижу в интернете людей, которым на собесах давали задания по многопоточной обработке файлов. Так что расчитывать, что тебе попадется такая легкая задача на два цикла не стоит.
А можно пример такого задания на многопоточную обработку файла?
Хотя, мне чёт кажется, что в требовании в вакансии автор забыт указать JavaScript, если так, то и париться не стоило, сразу нахуй.
Ну это не так сложно, задание на круги было труднее, тут хотя бы что-то знакомое.
А задачу такого плана нужно будет решить дома или прямо на собесе?
Да и эта задача на многопоточное сжатие файла гуглится легко.
Меня больше всякие деревья сраные страшат, я вроде знаю, как мне работать с бинарным деревом и обычным через рекурсию, но если дадут какую-нибудь задачу, то боюсь обосраться.
Твоя тема уже была разобрана, мог бы и погуглить
https://stackoverflow.com/questions/23721230/float-values-as-dictionary-key
Давай я поучу тебя английскому, забиваешь в гугле:
"float as key for dictionary" и все
Смотрите чуваки, вот вам, например, решение.
А то мне непонятно, как Анон из прошлого треда собирался резать по числу потоков в системе, что это вообще значит?
разве есть темы, которые не осбосали на SOF? Любую проблему (за исключением свежих технологий) можно нагуглить и закопипастить.
Да есть.
Это пистон же. И там они советуют адовый костыль, вместо единственного нормального совета не юзать флоаты как ключи словаря.
Спасибо
Да это в формах по умолчанию вроде стоит, не?
А в чем проблема сделать в редакторе полную форму джва и потом спрятакть на на ней все лишнее и получить форму один?
Чтобы проще прятать было - оберни все правые контролы в панель, это позволит их скрывать установкой всего одного свойства у панели-родителя. В ручную еще надо будет размер устанавливать и все.
Какую библиотеку для этих целей можете посоветовать?
На 10 перейду через пару месяцев, когда новый комп возьму себе. Что мне сейчас делать? Для 2017 то же инсталлятор крашится, это не в версии винды дело, по любому.
Не знаю чем тебе помочь. Авто обновление включено? Установи все обновления если нет.
Хотя я всегда думал что инсталлер студии сам ставит все что ей надо.
Может у тебя файл поврежден. Попробуй восстановить или переустанови систему..
> Попробуй восстановить или переустанови систему..
Да это неделю времени займёт.
Ёбанные мелкомягкие, неужели нельзя по информативнее быть в таких сообщениях...
DataGrid
Бинд к коллекции объектов типа такого вида:
class Item
{
public string Title { get; set; }
public ObservableCollection<Group> Groups { get; }
}
class Group
{
public string Title { get; set; }
public override string ToString() // для вывода Title'а в группу в гриде
{
return Title;
}
}
Группировка по свойству Groups в гриде работает, но сортировка при группировке нет. Если в рантайме убрать группировку, то сортировка работает, но после сортировки включить обратно группировку не получается.
При этом если Item.Groups сделать <string>, то всё работает отлично.
Как исправить?
Таки здесь
>При этом если Item.Groups сделать <string>, то всё работает отлично.
напиздел. Требует IComparable. И куда его тут засунуть? У string ведь и так есть CompareTo.
Взял вот это http://dotnetpattern.com/wpf-datagrid-grouping - там сортировка при группировке работает.
Что за хуйня?..
Первый пик у меня, второй в уроке.
Она и у меня access и в уроке access.
Нашел ответ на форуме
>Может быть в том, что провайдер Microsoft.Jet.OLEDB.4.0 давно устарел и не в состоянии работать с файлами БД формата ACCESS 2007 и выше?
И тут как раз такой стоит. Как его обновить? Исправить эти параметры нельзя.
Через десять минут еще 15 проблем вылезет.
студентота ебучая. Жаль вам не паскаль или делфи, как в старые, добрые, преподают.
Они на первых двух курсах были.
Может кто-нибудь кроме того Анона пояснить, должно ли нарезание файла на куски происходить в разных потоках?
Я решил не смотреть на другие решения, но если не нужно решать файл в других потоках, то можно все на эвентах сделать.
Общая идея просто объявить класс для хранения информации.
Объявить 3 свойства:
Первое для id блока.
Второе и третье для хранения байтов, одно для изначального файла, другое для сжатого.
С помощью него можно и сохранять порядок, с помощью очереди, ее и надо блокировать.
Как изменить код, чтобы он работал на любой пеке? Без C:\Users\HOME\Desktop\c# которые индивидуальны.
Фулл код
//Change this path "C:\Users\HOME\Desktop\c#\WorkingWithDB\WorkingWithDB\Database.mdf" for your own computer
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\HOME\Desktop\c#\WorkingWithDB\WorkingWithDB\Database.mdf;Integrated Security=True";
sqlConnection = new SqlConnection(connectionString);
await sqlConnection.OpenAsync();
SqlDataReader sqlReader = null;
SqlCommand command = new SqlCommand("SELECT * FROM [Products]", sqlConnection);
Спрашиваю потому что свой хочу написать как петпрожект
Создай новое свойство в app.config, туда положи актуальный путь к базе, а потом читай его в коде.
>Допустим файл с базой лежит в корневой папке проекта.
Если база лежит в каталоге с учу, то путь можно легко получить из Application.ExecutablePath.
Есть конструкстор:
// Create a string that consists of a character repeated 20 times.
string string2 = new string('c', 20);
Точно, спасибо
Бамп вопросу. Очень важно
Я запускал отдельный поток, который заполнял BlockingCollection из которого воркеры брали блоки. У блока два свойства - номер и данные. Потом эти блоки улетали на запись и там синхронизировались через mre. А потом я понял как сильно я обосрался. Ведь если я читаю блоки исходного файла, допустим, по 64кб, то на выходе сжатые получаются рандомного размера и как их потом читать хз. Надо курить сам алгоритм сжатия и формат файла, чтоб нормально склеить. Если кто разберется, я хотел бы посмотреть на решение.
Ебать, а я всю жизнь юзал "".PadLeft, даже и не задумывался в конструктор заглянуть.
А по юниттестам что почитать?
Здравствуйте. Тупые вопросы от нуфага. Начал делать игру(дада, рофл все дела) в визуал студио. Всё нравится, пока пробная версия до января.
Глянул цены на лицензию и чуть со своего совецкого стула не упал - 200 к рублей. Я понимаю, там типо корпоративные версии для студий на 5-10 машин. Но не могу понять, есть ли лайтовая версия для аутиста типа меня не за 200 к? Знает кто?
Либо посоветуйте аналог визуал забесплатно, ибо 200 к за программу я не готов выкладывать. 10-15 к еще туда сюда, но блять не столько. Пишу на си шарп.
Да и вообще там в прайсе всё так путано написано у майков, хуй поймешь какую версию вообще покупать, а то куплю говнище нерабочее, хер потом деньги вернёшь вообще.
У меня вот пикрил версия. Удобно базара нет. Но не за 200 кусков. Есть что-то аналогичное помимо нотепада +?
И еще расскажите в двух словах, что за азур сервис этот, типа удалённое облако чтоле? Постоянно ломится меня туда приконнектить, блять. Заебался уже от него.
Или я вообще не ту версию установил, мб какая то бесплатная в самой визуал есть?
добавлю, что хочу просто писать код и компилировать, больше нихуя.
понял, спасибо, чаю!
Задам тупой вопрос. Правда ли, что .NET загибается? В моей мухосрани Омск не особо по нему есть вакансии.
Просто думаю дальше разрабом сидеть или перекатываться в DevOps.
Открываешь свой код, ищешь место где игнорируется и переписываешь что бы не игнорировалось.
Конечно рак. Некотрые жертвы без линка теперь даже жопу в массиве почесать не могут.
Не хранит кажется, но это не точно.
Хз в чем у тебя проблема. Парси и текс и комманду, дальше решай что приоритетнее. Например, на длинный обычный текст можно ответить, а если в нем будет комманда переспросить ее. И наоброт - короткий текст + комманда, выполнять комманду, а текст переспрашивать.
хм не совсем то что нужно.
Обьясняю есть команда !play и после нее обычно идет ссылка или текст, и из за этого бот ее не воспринимает и выдает мне
эх совсем тупая херня какая-то но хз как фиксить
public class Commands : ModuleBase<SocketCommandContext>
{
[Command("play")]
собственно как эту команду переделать так чтобы она текст игнорировала
private async Task HandleCommandAsync(SocketMessage arg)
{
var message = arg as SocketUserMessage;
var context = new SocketCommandContext(_client, message);
if (message.Author.IsBot) return;
int argPos = 0;
if (message.HasStringPrefix("!", ref argPos))
{
var result = await _commands.ExecuteAsync(context, argPos, _services);
if (!result.IsSuccess) Console.WriteLine(result.ErrorReason);
}
}
Вот этот атрибут определяет что все последующие аргументы будут в этой строке.
спасибо
есть 10 методов контроллера, нужно ли каждый оборачивать в Try-catch, при том, что у меня еще идут проверки на валидность?
Ты дурачок или как? Если все 10 методов затрагивают возможность, когда твоя программа может обосраться и вылететь с фатальной ошибкой, получить неожиданные результаты и не знать что делать дальше, то ты ради экономии не будешь делать её безопасной? Если так заботит скорость - рефактори. Значит у тебя что-то неправильно реализовано.
>это довольно ресурсоемкая конструкция
По поводу ресурсоемкой операции - забей. В реальной жизни проблемы другие, микрооптимизации погоду не делают.
>>490475
>методе контроллера дублировать их эстетично не очень
Гугли фильтр исключений.
Пилится или глобальный фильтр, который применяется ко всем контроллерам, или аттрибутом вешается на нужный контроллер.
Упала валидация? Кидай исключение, сообщение для исключения подтягивай из файлов ресурсов, в фильтре красиво заворачиваешь ответ.
Да я уже вычитал про обработку исключений через атрибуты. Спасибо.
"Основы программирования" должно быть достаточно.
И вообще там все достаточно специфично особенно если ты смотришь в будущие.
Тебе придется углубляться в ECS + Jobs + Burst Compiler банально потому что это в ТЫСЯЧИ раз быстрее чем обычный подход.
А это к C# самому слабо имеет отношение.
Вся та хуйня, которая запихана в IServiceCollection (хотя помимо сервисов там еще есть опции IOptions<T>)
Создал общий класс, который содержит базовые методы (открыть файл-шаблон, сохранить на диск, отдать как экшнрезалт итд).
А дальше думаю - или конкретные методы заполнения шаблонов (их два, один для генерации самого итогового документа, другой для генерации названия документа) передавать в качестве Стратегии в конструкторе базового класса; или унаследоваться от базового и использовать Шаблонный Метод.
Есть варианты? По сути мне просто нужно в зависимости от того, какую кнопку жмёт юзер, запускать соответствующий алгоритм экспорта. Алгоритмы почти одинаковые, кроме внутренней реализации методов генерации файла и названия.
Стратегия должна подойти, за исключением, что ты разделишь свой суперкласс на два под общим интерфейсом. А этот интерфейс будешь передавать в класс клиента. Там же можно будет установить дефолтную реализацию через конструктор и изменение способа реализации дополнительным методом (твоим кликом по кнопке)
Если будешь писать обощенные алгоритмы, то тебе скорее всего это понадобится, если нужно принимать более строгое обощение и отдавать более слабое(или наоборот). В старом шарпе это была боль, ибо нужно было в ручную пердолить приведение типов через корневой объект в рантайме и конпелятор никогда не проверит что не объебался. Еще это было не очень эффективно - получался болерплейт с излишними проверками и тормозами от рефлексии.
понял, принял. Спасибо.
Пилю сайтик, когда делаю маленькое разрешение - объекты плывут и наезжают друг на друга :(
>Должна
Нет, т.к. ты возвращаемое значение установил string[]
>Может
Да, т.к. string[] реализует IEnumerable (upcast)
Что ты имеешь ввиду под возвращать? Если у тебя в сигнатуре string[], то и возвращать ретурном надо string[]. Если под возвратом ты имеешь ввиду то, что в сигнатуре, то да, ты можешь заменить там на IEnumerabe<string> и ретурном возвращать хоть string[], хоть List<string> или любой другой объект класса, реализующего IEnumerable<string>
А еще в заднюю дверь уже стучит 2020 и можно писать так
private string[] Function(string str) => str.Trim().Split();
>можно писать так
Никогда не понимал чому пидрилам не нравится единообразный стиль. Сейчас они половину кода начали обмазывать стрелочками, а вторую половину скобочками с ретурнами. Еще с делегатами как-то стрелочный синтаксис оправдан, мол не плодить вспомоггательных методов в классе, но нахера эти стрелочки обычным методам? У - уебищность.
Шарп из стройного языка превращается в парашу. Пичаль.
мимо дед с net 3.5
двачую этого господина. Со своими ебучими лямбдами и переводами классы в обобщенные делегаты читабельность теряется в разы. Так что пусть идут нахуй со своими стрелочками.
Я заочник и у нас есть что-то типа программирования. Вот задали лабы делать, нужно написать уравнения и что бы программа его решала, а в примере котангенс написан - как его написать через Math.? В методичках нету
Специальность - не программист
бамп
Блин, ну ты понял же вопрос: нужно ли делать апкаст для возвращаемого типа? С одной стороны — да, т.к. это позволит менять имплементацию без изменения возвращаемого типа, с другой — это вроде как нарушает robustness principle https://en.wikipedia.org/wiki/Robustness_principle.
>>493150
> А еще в дверь уже стучит 2020 и можно писать так
В спойлере указал, что это выдуманный пример, не придирайся.
double y3 = Math.Abs(1/Math.Tan(Math.E, Math.Pow(Math.Sin(x), 2))) / Math.Log10(Math.Abs(x));
Console.WriteLine("Результат: x={0}, y={1:n10}", x, y3);
Заведома зная сумму, я начал ее сравнивать с результатом в блоке assert. Equals, Istrue - все время выдавали false. Продрочился до тех пор, пока не посмотрел через дебагер исходящее значение метода. К Double добавились какие то микроны, т.е. 3 объекта с полями по 0.1, итого - 0.3. Когда пропускаю в метод, получаю 0.3000000000006
Это что за магия такая?
Просто числа 0 не существует, это просто очень маленькое число, по типу 1.3 * 10^-30
Так во всех из тех что я ковырял фреймворках для тестирования есть перегрузка AreEquals для тестирования чисел с плавающей запятой, в которую можно передать допустимую погрешность.
А абсолютная мелкость числа ни при чем, плавающая точка же, там относительная погрешность мешает, та ещё ебля.
бамп
Первое что приходит в голову это при запуске задачи передавать ей аргумент делегат Action<int>, может что получше есть?
>double y3 = Math.Abs(1/Math.Tan(Math.E, Math.Pow(Math.Sin(x), 2))) / Math.Log10(Math.Abs(x));
Pow нехватает.
ESinX2 = Math.Pow(Math.E, Math.Sin(x * 2))
Ctg = 1 / Math.Tan(ESinX2)
y = Ctg / Math.Log10(Math.Abs(x))
НЕ пиши однострочников! Будь няшей.
Антош, спасибо что отписал, но я вообще впервые запустил шарп девелоп и сидел всего часа 3 за ним - я не совсем понял что мне нужно поменять или как его правильно записать :(
Да мне всё равно где там писать код, мне только что бы правильно и работал
Последняя поддерживаемая версия шарпа, если не ошибаюсь, 4, т.е. оно не поддерживает... ничего. Даже копируя код с СО есть неиллюзорная вероятность, что ничего не заработает. Но самое главное зачем? Как ты додумался это откопать и установить? Но дело, конечно, твое, можешь хоть на папирусе писать
Было приложено к методичке в архиве. Что было то и установил, меня это вообще не волнует какое оно там и т.п. Мне получить зачет и забыть это
Так вышло, что в универе немного учил и прогал шарпы на формах и кресты в консоль, в рамках курса. Ну а поэтому теперь так вышло, что устроился в банк на стажировку тупо хорошо залетел на вакансию + хорошие условия со старта. Моя работа будет в бэке на NET для сервисов их CRM, немного JS для фронта. Пару месяцев стажировки, и должен пойти в штат.
Оцените разумность и перспективность моего выбора. Только адекватно, пожалуйста. Я вот, например, переживаю, что вроде бы весь энтерпрайз сейчас бэк на яве пишет, не ясны перспективы, если вдруг придется сменить работу. Плюс NET и шарпы слишком проприетарны со всеми своими WCF, IIS и прочим кстати я уже должен бежать выкидывать свой макбук?
>>494156 анон
>Плюс NET и шарпы слишком проприетарны
Неверно выразился, имел в виду заточенность под винду и меньшую кроссплатформенность
фикс
>что вроде бы весь энтерпрайз сейчас бэк на яве пишет
В основном за счет легаси
>>494156
>если вдруг придется сменить работу.
На слесаря? Тогда да, шарп плохой выбор.
>>494156
> NET и шарпы слишком проприетарны
Уже давно опенсорс и мультиплатформа
>>494156
>кстати я уже должен бежать выкидывать свой макбук?
Да, ибо переоцененное говно. А так студия есть и под мак. ISS да, только под вынь, но есть же кестрел
Я работаю. У тех кто работает, времени сраться в чатеке нет, а в перерывы лучше хабр почитать тот же. К тому же, итт ничего интересного не постят.
>В основном за счет легаси
Есть какая-то тенденция ухода от явы в новых проектах? я не в курсе
>На слесаря? Тогда да, шарп плохой выбор.
Очень содержательный комментарий, спасибо, анон.
>>494329
>Да, ибо переоцененное говно
Согласен, но только насчет текущих моделей. У меня старичок конца 2013 года, и ему даже альтернатив тогда не было среди PC-ноутов. А вот макось так же отличной осталась, альтернатив нет а сидел я и на винде и на многих линукс-дистрах На винду я сильно не хочу.
>но есть же кестрел
К сожалению, я не разбираюсь в таких нюансах. Скажи, пожалуйста, это стоит рассматривать как полноценное кроссплатформенное решение, наряду с IIS? И вообще, насколько перспективно, что кто-то будет в серьезных решениях крутить все эти NET сервисы вне win-окружений?
>>494377
>У тех кто работает, времени сраться в чатеке нет
Логично, анон. В любом случае, спасибо, что откликнулся и показался.
У нас дотнетчики с маками запускают винду в параллелс и спокойно работают в ней. Единственное, что маковская мышь под это дело не очень подходит, т.к. на ней скролл в студии срывает.
А насчет выбора не сомневайся, я тоже поддерживаю нашу срм, как фуллстек(сейчас переходим с ангулара на вью) и могу сказать, что разрабатывать на шарпе само по себе очень приятно. К тому же, он универсальный и вакансий на рынке довольно много, так что твои знания потом пригодятся.
>12. Литература по WPF
>Из более-менее актуального можно выделить пару книг:
>- Pro WPF 4.5 in C# (Matthew MacDonald)
>- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
Есть ли смысл читать эти книги чтобы хуйнуть суть?
Или достаточно знаний справочника от микрософта?
Спасибо за отзыв. Кстати
>разрабатывать на шарпе само по себе очень приятно
у меня хоть и опыта программирования очень мало, но шарп, почему-то, тоже всегда приятно ощущался в работе.
>У нас дотнетчики с маками запускают винду в параллелс
Да, параллель очень хорошая виртуалка, на самом деле. Сам делал через неё проект на формочках.
Вот я еще думаю попробовать сервер в Azure для обучения и своих нужд развернуть, чтоб не крутить его в виртуалке. Стоит всего 6 руб/час для нормальной работы. Пока, правда, не очень понимаю, можно ли как-то извне Visual Studio для мака подключить к серверу для разработки серверного кода сервисов CRM.
Не знаю, знаешь ты об этом или нет, но в винде при нажатии ctrl+f5(если проект относится к вебу, конечно), он развертывается в IIS на локалхосте и изменения, которые ты производишь, сразу, автоматически подгружаются в IIS. Если фронт и бек разделен - выбираешь второй проект и повторяешь, он тоже развернется. Такая себе интайм разработка на ходу. Тоже безумно удобно.
А 6 руб в час как-то много в месяц выходит, нет? Проще хостинг купить.
Если оборачиваешь try-catch, то не забывай отдельно писать что-то в логи. Иначе обосрёшься на асинхронщине.
Ага. Ты такой смотришь: о, open source и кроссплатформенность! Поднимаешь юбку, а там проприетарщина и студия, приколоченная гвоздями к винде.
А я и не против.
Для мамкиных хакеров есть ридер.
Какая наилучшая и стабильная версия NoSQL базы данных на C#, под .NET Framework 4.0?
я представляю, как человек, который задает подобного рода вопросы дойдет до главы с ковариантностью и контрвариантностью обобщенных делегатов в начале книги и начнет хвататься за голову. Если даешь подобного рода советы, ты или ставишь палки в колеса, или пишешь на отъебись.
>>495749
переверни обложку книги Албахари и найди строчку - "Уровень". И меньше слушай советов и думай своей головой. А то еще обучение C# с крестов или С посоветуют.
"Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions."
что она значит? как фиксить? я почитал инфу по сыслки и ничерта не понял
public JsonResult SendMessage()
{
if (Session["user"] == null)
{
return Json(new { status = "error", message = "User is not logged in" });
}
var currentUser = (User)Session["user"];
var contact = Convert.ToInt32(Request.Form["contact"]);
string socket_id = Request.Form["socket_id"];
Conversation convo = new Conversation
{
sender_id = currentUser.id,
message = Request.Form["message"],
receiver_id = contact
};
using (var db = new Models.ChatContext())
{
db.Conversations.Add(convo);
db.SaveChanges();
}
var conversationChannel = getConvoChannel(currentUser.id, contact);
pusher.TriggerAsync(
conversationChannel,
"new_message",
convo,
new TriggerOptions() { SocketId = socket_id });
return Json(convo);
}
public JsonResult SendMessage()
{
if (Session["user"] == null)
{
return Json(new { status = "error", message = "User is not logged in" });
}
var currentUser = (User)Session["user"];
var contact = Convert.ToInt32(Request.Form["contact"]);
string socket_id = Request.Form["socket_id"];
Conversation convo = new Conversation
{
sender_id = currentUser.id,
message = Request.Form["message"],
receiver_id = contact
};
using (var db = new Models.ChatContext())
{
db.Conversations.Add(convo);
db.SaveChanges();
}
var conversationChannel = getConvoChannel(currentUser.id, contact);
pusher.TriggerAsync(
conversationChannel,
"new_message",
convo,
new TriggerOptions() { SocketId = socket_id });
return Json(convo);
}
возможно в datatime2 по крайней мере я читал на форумах что такая ошибка с datatime2 бывает, но не понимаю как фиксить
nope. Могу только такое дать (хотя ты это сам находил, наверно)
>Подобные ошибки возникают, если:
>1. underlying table для вашей EF не содержит первичного ключа. EF не может работать без этого, ведь ей надо же как-то выполнять enitities tracking. Как вариант, это можно пофиксить путем добавления автоинкрементного ключа в таблицу, что не сломает ее схему, да и схему базы (Проверено).
>2. Возможно, у вас есть ключ, но он Database-generated, то есть СУБД сама генерит ключи, а в вашем случае вы определяете ключ в коде. Тут тоже возможен косяк (точно уже не помню).
анончик, БОЛЬШОЕ ТЕБЕ СПАСИБО! начитался я форумов, а ошибка была в ключах, у меня просто автоинкрементная не была включена, но благодаря тебе разобрался) спасибо еще раз анончик
Какая же жиза. Недооцененный пост.
Промисы - которые считаются "нидостижимыми" - это же обычные делегат-событие или реализация паттерна publisher-subscriber. Или тот же webhook.
Замыкания - это же блять доступ из локального метода к переменным класса (уровня выше). Я сначала подумал, что это аналог вывода данных из контекста обобщенного делегата, по факту все оказалось намного проще.
Есть ли в JS какие ни будь реально сложные вещи, знание которых можно вывалить как 20 см. болт на стол интервьюера? Или весь JS это набор ссаных функциональных инструкций?
говорят в /b/ много специалистов, всех стеков, всех техноголий (только предоплату на перед просят)
Думаю на Cyberforum можно найти, если посмотреть в комменты.
Ну скинь в телегу postime
Писал лабы всей общаге, пока жил там. После выпуска не знаю, как искать клиентов. Впрочем, я уже работаю, так что ладно
Либо на author24 иди, но готовься платить 55% комиссии
Кстати, по поводу работы. Аноны, сколько вы на первом месте гребли? В вакансиях, где требуется опыт, в большинстве случаев пишут 1-3 года. И несколько раз слышал от анонов, что часто менять работу плохо. Какой оптимальный срок?
Не могу найти её реализацию на C#, только драйвер какой-то...
Мне надо что-то вроде этой базы https://www.litedb.org,
в dll-ке. Кстати у litedb какой-то версии пониже тоже есть поддержка net40 но потом они внедрили какую-то многопоточность и софтина начала просить net45 + netstandard 2.0.
Ещё поискал leveldb, но так нифига и не нашёл...
В принципе, база данных, как таковая и не нужна, если можно просто писать в файл фрагменты данных + оффсет...
Однако, я решил использовать БД, просто чтобы обеспечивалась целостность данных.
Ведь файл может потереться, могут быть bad-секторы, база может закорруптится, а данные внутри - задамажится.
Но ты не говорил, что тебе нужна встраиваемая бд.
>>496391
>Не могу найти её реализацию на C#, только драйвер какой-то.
есть же nuget
>>496391
>начала просить net45 + netstandard 2.0.
А на сайте пишут, что есть поддержка 3,5. Угадай кому я поверю? И опять же есть нугет, который подтянет нужную версию.
>>496391
>Ведь файл может потереться, могут быть bad-секторы, база может закорруптится, а данные внутри - задамажится.
и чем тебе бд поможет, если ты собираешься хранить все локально?
>Но ты не говорил, что тебе нужна встраиваемая бд.
Я вообще в базах данных не разбираюсь, хотелось бы чтиво реквестировать, какое-нить, дополнительно,
ибо, я хотел бы начать изучать это дело с нуля...
Но я на Windows XP, и здесь - .NET Framework 4.0.
Поэтому, я понятия не имею, какая база данных, на самом деле мне нужна,
ну там SQL ли, NoSQL ли, реляционная ли, встраиваемая, невстраиваемая, удалённая ли, серверная ли...
И вообще, какие они там бывают...
>есть же nuget
я не знаю как ним пользоваться.
>А на сайте пишут, что есть поддержка 3,5. Угадай кому я поверю? И опять же есть нугет, который подтянет нужную версию.
А вот на github'e пишут что дропнули net40: https://github.com/mbdavid/LiteDB
>LiteDB v5
>What was dropped?
>Dropped .NET 3.5/4.0 - works only in .NET 4.5+ and .NETStandard 2.0
И какая версия под .NET 4.0, я не знаю... И стабильная ли она, или может что-нибудь надо пофиксить ещё в ней.
Хотелось бы из сорцов самой стабильной версии, скомпилировать рабочую dll-ку
а потом, просто подключить её - в код софтины, а потом уже дёргать за методы.
>и чем тебе бд поможет, если ты собираешься хранить все локально?
Я вообще не уверен, что мне нужна БД, на самом деле.
И, всё что мне нужно, это каким-то невъебенным образом - обеспечить целостность данных и быстрый доступ к ним, их изменение и удаление.
Потому что на данный момент, софтина просто пишет в файл следущее:
фрагмент данных, начальный offset, длина данных. И всё.
Длинный такой файл получается, и там все данные - они открыты...
И это вот - вовсе не база данных...
Этот файл во-первых может быть прочитан, а во-вторых, он может быть повреждён,
и так вот как-то - может быть нарушена целостность данных...
Быть может, можно как-то и без базы данных обеспечить целостность данных,
например CRC32-сумма в конце каждой записи, и либо выгрузка записи, либо невыгрузка (если данные повреждены),
плюс хэш всех записей в конце файла, который обновлялся бы. Или хэш большого блока данных, с пересчётом его...
Опционально, хотелось бы криптовать данные...
Но я думаю, в нормальных БД это уже есть. Алсо, хотелось бы, чтобы БД была маленькой, то есть чтобы там было - сжатие данных.
>Но ты не говорил, что тебе нужна встраиваемая бд.
Я вообще в базах данных не разбираюсь, хотелось бы чтиво реквестировать, какое-нить, дополнительно,
ибо, я хотел бы начать изучать это дело с нуля...
Но я на Windows XP, и здесь - .NET Framework 4.0.
Поэтому, я понятия не имею, какая база данных, на самом деле мне нужна,
ну там SQL ли, NoSQL ли, реляционная ли, встраиваемая, невстраиваемая, удалённая ли, серверная ли...
И вообще, какие они там бывают...
>есть же nuget
я не знаю как ним пользоваться.
>А на сайте пишут, что есть поддержка 3,5. Угадай кому я поверю? И опять же есть нугет, который подтянет нужную версию.
А вот на github'e пишут что дропнули net40: https://github.com/mbdavid/LiteDB
>LiteDB v5
>What was dropped?
>Dropped .NET 3.5/4.0 - works only in .NET 4.5+ and .NETStandard 2.0
И какая версия под .NET 4.0, я не знаю... И стабильная ли она, или может что-нибудь надо пофиксить ещё в ней.
Хотелось бы из сорцов самой стабильной версии, скомпилировать рабочую dll-ку
а потом, просто подключить её - в код софтины, а потом уже дёргать за методы.
>и чем тебе бд поможет, если ты собираешься хранить все локально?
Я вообще не уверен, что мне нужна БД, на самом деле.
И, всё что мне нужно, это каким-то невъебенным образом - обеспечить целостность данных и быстрый доступ к ним, их изменение и удаление.
Потому что на данный момент, софтина просто пишет в файл следущее:
фрагмент данных, начальный offset, длина данных. И всё.
Длинный такой файл получается, и там все данные - они открыты...
И это вот - вовсе не база данных...
Этот файл во-первых может быть прочитан, а во-вторых, он может быть повреждён,
и так вот как-то - может быть нарушена целостность данных...
Быть может, можно как-то и без базы данных обеспечить целостность данных,
например CRC32-сумма в конце каждой записи, и либо выгрузка записи, либо невыгрузка (если данные повреждены),
плюс хэш всех записей в конце файла, который обновлялся бы. Или хэш большого блока данных, с пересчётом его...
Опционально, хотелось бы криптовать данные...
Но я думаю, в нормальных БД это уже есть. Алсо, хотелось бы, чтобы БД была маленькой, то есть чтобы там было - сжатие данных.
Например? Всю дорогу нугетом пользуюсь, баги особо не попадались. Разве что fody рекомендовалось ставить через консоль
Да постоянно ебля с решением. Вытащишь из TFS новое решение нихуя не собирается. Вручную нажмешь обновить пакеты, та же хуйня. Переагружишься студия вроде соебрется. И это в лучшем случае, а то и не собирается из-за того что в разных проектах у некоторых пакетов версии отличаются. Хотя на других компах собирается.
Реакт хз, но vue и angular можно, если сильно заебениться, можно и spa, но mvc лучше для многостраничных сайтов
Фронт да, а бэкенд разве можно подгружать? Вроде как даже технически нельзя изменять код в c#, могу ошибаться
db.(Model).Where(m => m.Id == modelItem.ParentId).First().Name в контроллере и через ViewModel ебашишь в представление, можешь прямо в представлении, но тогда нужно подключать туда db context и linq.
о, круто, спасибо, даже не ожидал что ответят, сспс
Бэк тоже можно, при изменениях код автоматом рекомпилится.
Что есть что?
Неправильно понимаешь. Для труе указателей ты должен делать операцию разименывания чтобы добраться до объекта. В шарпе есть ссылка на объект, никаких специальных действий как над указателями с ней производить не нужно. Ссылка на объект и сам объект почти тождественные вещи, ибо без единой ссылки объект существовать не может так как он сразу попадает под уборку мусора, но самих ссылок на один объект может быть сколько угодно много.
Ну ок, что в шарпе есть ещё какие-то "тру-указатели", но ведь обычные переменные тоже работают точно так же, как указатели в C++. Или в чём там разница? Можно аллоцировать новые объекты, можно указывать на другие объекты, можно указывать на null. В функцию передаются по значению, но при этом не создаётся новый объект, как это было бы в C++ с передачей объекта по значению, а создаётся только новый указатель на тот же самый объект. Разница только в названии, там "указатель" – тут "ссылка"?
На работе похуй на чем писать, лишь бы работало. Я выбрал третью версию core:
- кроссплатформа спецом в виртуальке поднял, чтобы посмотреть. На свою vps за один доллар заливать не рискую
- новое. Пока я освоюсь как следует, эта версия с высокой вероятностью станет мейнстримом. Единственное, анон говорит, что MVC уже устаревает, так что надо будет смотреть на api и думать о фронтенде
Единственный минус — ef не строит edmx-диаграмм, но у меня всего 6-10 баз, так что и без этого можно. Зато миграции, зато DI из коробки и вообще все удобно.
Это все мои маня-размышления, с высокой вероятностью я что-то путаю, поэтому буду раз услышать, как оно на самом деле
Так вот. MVC 5 это же обычный ASP.NET, не core? Как он станет кроссплатформенным?
Так ты запускаешь исходную задачу без продолжения, а вторая строка создаёт новую в ананимной переменной и ничего с ней не делает.
Запиши результат второй строки в переменную и попробуй запустить.
Напиши, как ты хочешь, что бы работало. Ты хочешь запустить задачу-продолжение, до запуска основной? Типа кончить до того как подрочил?
ты про преждевременную эакуляцию? Это вполне реальный таск, но не рекомендую такое пускать в продакшен
раньше использовал другой метод получения битмапа и все работало, но от него пришлось отказатся
сам код -
var process = Process.GetProcessesByName("calc").FirstOrDefault();
GetWindowRect(process.MainWindowHandle, out var rect);
using (var image = new Bitmap(rect.Right - rect.Left, rect.Bottom - rect.Top))
{
using (var graphics = Graphics.FromImage(image))
graphics.CopyFromScreen(rect.Left, rect.Top, 0, 0, image.Size);
pictureBoxSnap.Image = image; // Тут ошибка
image.Save("gg.png"); // при том что сохранение он может отработать без ошибок
}
Первый вопрос был почему это не работает хотя всё выглядит в соответствии со спецификациями фреймворка задач и ничему не противоречит.
Хочу набрать массив холодных задач сформированных как угодно (пишу общий фреймворк), в том числе и через продолжения и потом запускать.
> Ты хочешь запустить задачу-продолжение, до запуска основной?
Нет, хочу запустить холодную композицию задач:
Task task = new Task(()=>Console.WriteLine("sup "));
Task task2 = task.ContinueWith((t) => Console.WriteLine("dvach"));
task2.Start();
Тогда не используй ContinueWith. Его смысл в том, что бы запустить код, автоматически(!) и после(!) того как отработает основная задача. Опиши тогда изначальную проблему, которую решаешь.
По шагам ты умеешь дебажить?
>GetWindowRect(process.MainWindowHandle, out var rect);
>out var rect
Наверно тут проблема. Сделай нормально без хипстерской хуйни.
> Тогда не используй ContinueWith. Его смысл в том, что бы запустить код, автоматически(!) и после(!) того как отработает основная задача.
Не вижу противоречия, запущена первая задача или нет не важно - всё равно продолжение должно сработать после завершения первой задачи.
> Опиши тогда изначальную проблему, которую решаешь.
Писал же, надо что бы один модуль отдавал задачи. А клиент этого модуля когда наберет нужный набор запускает на выполнение.
>using (var image =
>pictureBoxSnap.Image = image; // Тут ошибка
Image using диспозит и оно становится невалидным у pictureBoxSnap.
> Именно. И чтобы первая задача завершилась её надо начать.
Но почему нельзя (теоретически) сначала сформировать цепочку а потом её запустить? Это ж как в LINQ где ты сначала формируешь сложное выражение и только при его вычислении происходит распутывание и реальная работа.
> Именно как продолжения друг друга (оно же делегаты принимает, а не таски)? Может тебе простой WhenAll нужен?
Не обязательно, но хотелось что бы и этот случай поддерживался т.к. возвращаемые задачи сами могут быть цепочками других задач. Т.е. клиент который запрашивает задачу вообще не имел понятия из каких составных частей ему эту задачу вернули.
Относительно меня ты собеседник.
>Так вот. MVC 5 это же обычный ASP.NET, не core? Как он станет кроссплатформенным?
В Core тоже есть свой MVC-паттерн. Весь ASP.NET с пятой версии будет, по-сути, следующей итерацией Core, просто из названия его уберут, потому что будет только одна ветка.
В общем, core переименуют, и все на этом.
Вот бы ещё blazor сделали легковесным, а не как сейчас — 20 мб. Не хочу js учить
Не может быть, что всем, Джава например лучше в кросс-платформенности. По пунктам, пожалуйста.
Ничем.
но десктоп мертв, сейчас всё веб
Ты наивно полагаешь что тебе в треде язынейм1, кто-то аргументированно напишет почему он ЛУЧШЕ языкнейм2?
>>497468
>Джава например лучше в кросс-платформенности
Не актуально.
Раньше тоже было похуй.
Про "ОПЕН СОРС И БЕСПЛАТНЫЕ РЕШЕНИЯ!1!":
не майкрасофту, так "красной шляпе" платить, у заказчиков первый хотя бы на слуху.
Теперь к вопросу.
Нормальные дженерики, делегаты, LINQ >> stream api, удобная работа с асинхронностью и многопоточкой (привет джавистам с synchronized в 2019 году), DLR.
Есть unsafe блоки, но как правило ненужно, если это не десктоп.
В целом язык развивается и живет, чего не скажешь о втором. Саппорт легаси на .net "приятнее" чем на java.
C#, как язык сложнее жабы, но при этом spring на порядок сложнее asp net.
Ну и второй все равно приятнее первого.
Если ты полный ноль, вкатываться ни в одно, ни в другое не советую.
>>497413
>Blazor
Хуйня без задач.
>>497511
>asp net хуита по сравнению со spring
Я хотел спросить, выпил ли ты таблетки, но понял что ты тупой школотрон.
>>497512
>xamarin
платформа
>>497512
>kotlin
язык, который еще и довольно уёбищный.
Ты наивно полагаешь что тебе в треде язынейм1, кто-то аргументированно напишет почему он ЛУЧШЕ языкнейм2?
>>497468
>Джава например лучше в кросс-платформенности
Не актуально.
Раньше тоже было похуй.
Про "ОПЕН СОРС И БЕСПЛАТНЫЕ РЕШЕНИЯ!1!":
не майкрасофту, так "красной шляпе" платить, у заказчиков первый хотя бы на слуху.
Теперь к вопросу.
Нормальные дженерики, делегаты, LINQ >> stream api, удобная работа с асинхронностью и многопоточкой (привет джавистам с synchronized в 2019 году), DLR.
Есть unsafe блоки, но как правило ненужно, если это не десктоп.
В целом язык развивается и живет, чего не скажешь о втором. Саппорт легаси на .net "приятнее" чем на java.
C#, как язык сложнее жабы, но при этом spring на порядок сложнее asp net.
Ну и второй все равно приятнее первого.
Если ты полный ноль, вкатываться ни в одно, ни в другое не советую.
>>497413
>Blazor
Хуйня без задач.
>>497511
>asp net хуита по сравнению со spring
Я хотел спросить, выпил ли ты таблетки, но понял что ты тупой школотрон.
>>497512
>xamarin
платформа
>>497512
>kotlin
язык, который еще и довольно уёбищный.
Понятно, спасибо.
>Ты наивно полагаешь что тебе в треде язынейм1, кто-то аргументированно напишет почему он ЛУЧШЕ языкнейм2?
Ну ты же написал. И мне нужен как раз bias в сторону C#, раз я его выбрал.
>В целом язык развивается и живет, чего не скажешь о втором.
Да, java 13 вон 10 лет назад вышла
>Саппорт легаси на .net "приятнее" чем на java.
Особенно когда нет обратной совместимости.
>Да, java 13 вон 10 лет назад вышла
Ага, все побежали переписывать свое легаси на 13 жабу.
Далеко не везде есть даже 8-я.
>>497541
>обратной совместимости
Маня плиз, единственный раз, когда были проблемы, которые не решались парой кликов: переход с .net framework 2.0 на 3.0 и было это больше 10 лет назад.
Сейчас же можешь даже не залупаться.
При желании, без лишний ебли можно использовать пакеты .net framework на коре, хотя это нужно было первые пару лет.
Есть идея вкатиться в Шарп, ибо три года пропинав хуи в универе, мне почему-то понравился больше всего он.
Студентота без скилла в Шарпе (ну говнолабы не в счет).
Хочу написать мобильное приложение-обучалку используя Xamarin (вообще вроде как кросс-платформа, можно и для винды наверное) и допилить к нему что-то на ASP.NET (но что ? идей вообще нет).
Каковы шансы вкатиться с этим хотя бы на 500$/мес для начала (есть знания по SQL и Гиту) ?
Куда писать и как искать эту самую РАБотку после всего ?
Какие перспективы у Шарпа вообще ?
Обосрался ли я где-то ? Может стоит кардинально изменить подход заранее и выбрать другой проект на Шарпе, ибо мой дерьмо ?
> Каковы шансы вкатиться с этим хотя бы на 500$/мес для начала (есть знания по SQL и Гиту) ?
У меня первая зп была 400 бакосв в месяц.
> Куда писать и как искать эту самую РАБотку после всего ?
На сайты, которые оставляют о работе, очевидно же. Что нужно знать просто смотришь что в вакансии указано, по тому и готовишься.
> Какие перспективы у Шарпа вообще ?
Никуда он не денется в ближайшие N лет.
У меня небольшой опыт собеседований, но насколько я слышал зачастую многие вообще хуй забьют на твой проект и даже не посмотрят на него, а те что глянут будут плеваться по любому поводу, чтобы цену тебе скинуть.
Хотя в моем случае, возможно, мне очень помогло то, что у меня было профильное образование, это можно так сказать заменило мне собственные проекты.
По проекту пофиг что ты будешь делать. Главное что-либо делать в принципе, даже если это совсем говно будет. Потом со временем, когда поднаберешься опыта, будешь сам начинать замечать, где можно было лучше сделать.
Для первого устройства на работу надо будет продемонстрировать какой-то свой проект? А оно обязательно должно быть полезным, применимым и актуальным, или достаточно просто "вот я зделол что-то, используя такие-то технологии, в процессе научился тому-то"?
другой анон
Да касательно "не денется" я понимаю. Что насчет перспектив найти работу в весьма сжатые сроки ?
Как с удалёнкой дела обстоят ?
Насколько важно знать вэб залупу типа Джсов и прочего, если работаешь с АСП ?
И вендекапец настанет уже в следующем году, и долларовый пузырь почти лопнул, и у России будет лунная база к 2015. Надо только подождать.
ну, типа
ar [i,j] и ar[j], вы поняли.
Вопрос: Если я буду везде хуярить массив массивов и пользоваться нормальной индексацией - будет норм? Или у многомерных есть какие-то преимущества?
Вот ты сейчас находишься в трёхмерном пространстве, ты испытываешь приемущества от 10 мерного если не можешь пользоваться высокими размерностями?
Нужно редиректить с site.com/atlanta на site.com/search/ga/atlanta, но если в ссылке есть слово atlanta (например site.com/blog/atlanta/articles) то оно тоже редиректит. Мой rule из web.config
<rule name="Atlanta redirect" stopProcessing="true">
<match url="atlanta" />
<action type="Redirect" url="https://www.funeralocity.com/search/ga/atlanta" redirectType="Permanent" />
</rule>
> Для первого устройства на работу надо будет продемонстрировать какой-то свой проект?
От работаделя зависит, общепринятых стандартов нету.
Наверняка есть такие собесдования, где это рассматривается весомым плюсом.
> А оно обязательно должно быть полезным, применимым и актуальным, или достаточно просто "вот я зделол что-то, используя такие-то технологии, в процессе научился тому-то"?
Для начинающего важнее второе, чтобы показать что ты не хуй с горы. Никто от тебя ничего серьзного не ожидает.
Иногда некоторые конторы дают такое тестовое, что сойдет за отдельный проект.
Еще есть такая штука как курсы при конкретной конторе. Ты получаешь бесплатное обучаение с шансом, что тебя потом возьмут на постоянку. У меня знакомый такие заканчивал, рассказывал, что все кто дошли до конца устроились.
>>497670
> то насчет перспектив найти работу в весьма сжатые сроки ?
От города завист, насколько ты будешь активно рассылать свое резюме повсюду.
Я искал довольно пассивно, было 3 собеса за почти 2 месяца, на третье взяли.
> Как с удалёнкой дела обстоят ?
Как первую работу тебя никто не возьмет на удаленку. Если больно хочется то это фриланс на каком-то одеске, но учти что там самому придется общаться с заказчиком, выяснять все детали его пожеланий, ставить самому себе тз и прочее. Не говоря уже о том, что сначала нужно будет прорваться сквозь конкуренцию.
> Насколько важно знать вэб залупу типа Джсов и прочего, если работаешь с АСП ?
Опять-таки, если в вакансии есть требование — значит рассчитывают что ты будешь что-то на фронте делать.
С АСП это обычно так и есть.
> Для первого устройства на работу надо будет продемонстрировать какой-то свой проект?
От работаделя зависит, общепринятых стандартов нету.
Наверняка есть такие собесдования, где это рассматривается весомым плюсом.
> А оно обязательно должно быть полезным, применимым и актуальным, или достаточно просто "вот я зделол что-то, используя такие-то технологии, в процессе научился тому-то"?
Для начинающего важнее второе, чтобы показать что ты не хуй с горы. Никто от тебя ничего серьзного не ожидает.
Иногда некоторые конторы дают такое тестовое, что сойдет за отдельный проект.
Еще есть такая штука как курсы при конкретной конторе. Ты получаешь бесплатное обучаение с шансом, что тебя потом возьмут на постоянку. У меня знакомый такие заканчивал, рассказывал, что все кто дошли до конца устроились.
>>497670
> то насчет перспектив найти работу в весьма сжатые сроки ?
От города завист, насколько ты будешь активно рассылать свое резюме повсюду.
Я искал довольно пассивно, было 3 собеса за почти 2 месяца, на третье взяли.
> Как с удалёнкой дела обстоят ?
Как первую работу тебя никто не возьмет на удаленку. Если больно хочется то это фриланс на каком-то одеске, но учти что там самому придется общаться с заказчиком, выяснять все детали его пожеланий, ставить самому себе тз и прочее. Не говоря уже о том, что сначала нужно будет прорваться сквозь конкуренцию.
> Насколько важно знать вэб залупу типа Джсов и прочего, если работаешь с АСП ?
Опять-таки, если в вакансии есть требование — значит рассчитывают что ты будешь что-то на фронте делать.
С АСП это обычно так и есть.
Где ты в последний раз сайты с .asp видел?
Десктоп умирает
В тыпрайзе его доля намного меньше, чем у кое-какого другого языка
Мелкософт пидоры индусы проприетарные.
Не понял. В чем разница (если речь не идет о ступенчатом массиве) между new int [n,m] и new int[n][]
1. Многомерный массив хранится как один блок памяти, в отличие от массива массивов.
2. Размеры многомерного массива можно задать сразу при инициализации и нельзя изменять потом.
3. В многомерных массивах все "строки" всегда одинакового размера.
По сути, используя многомерный массив ты более четко выражаешь свои намерения и потенциально уменьшаешь кол-во ошибок, связаных с инициализацией и изменением размера внутренних массивов, однако во многих случаях работать с ним менее удобно, посколько нельзя оперировать строками отдельно, например, ты не сможешь так просто поменять строки местами, заменить одну строку на другую, пройтись по строкам в цикле foreach и т.д. + LINQ не работает с многомерными массивами.
У первый это матрица, второй массив массивов в кжадом из которых может быть разное число элементов.
Сколько места он занимает в памяти?
Тебе зачем? Ну там хранятся ключи, значения, хэши. Плюс, насколько я помню, там количество корзин может меняться в зависимости от коллизий и прочего. Оно тебе надо это всё считать?
>Оно тебе надо это всё считать?
Да хотел прикинуть сколько это места. Так-то есть класс в котором 300-500 таких маленьких словарей, а экземпляров класса может быть 1.5к штук. Я боюсь в память не влезть учитывая, что это далеко не все что нужно хранить.
Альтернатива это вычислять эти словари заново по мере необходимости, не сказать что это долго, но неприятна постоянная аллокация памяти(нежелательно останавливаться на сборку мусора).
Во. Большое спасибо <3
ты рофлишь? Не о том речь. Если я создам массив массивов из n массивов длины m и многомерный массив n строк m столбцов - что предпочтительнее, почему и все такое
Чет пытались делать микрофреймворк, но не особо эта жирнота пролезает в эмбед.
У меня просто есть таргет по памяти - не более 1 гб. И вообще, отжирать память у пользователей на хуиту это плохо. Понятненько?
Ну int весит 4 байта, флоат 4 байта. В итоге 4+4 = 8байт.
8 6 = 48 байт
48400*1500 = многа цифар
Два метода, типо перегрузка, но работают по разному.
Никакого, просто код смешной.
Сегодня проходил по жидхабу и случайно увидел еще одну реализицию того же самого. Суть: автор полагается на то что FindIndex всегда пойдет с правильной стороны по аккомулятору, лол. Ну и без делегатов не обошлось, скоро без них даже нос вытереть не смогут.
Сссылка: https://github.com/Syomus/ProceduralToolkit/blob/master/Runtime/RandomE.cs
>Не хочу js учить
Я тоже, но придется. Ну а что поделать, все равно все нормальные конторы в энтерпрайзе требуют базового знания жса, один хуй нужно потихоньку изучать.
>Хочу написать мобильное приложение-обучалку используя Xamarin
Хуета без задач. Мультиплатформа в 2019 году мертва. Все приложения пишутся нативно. А если не нативно - так это не от хорошей жизни. Исключение - общая бизнес-логика на котлин нейтив для унификации и кресты для перфоманс-зависимых задач.
>Какие перспективы у Шарпа вообще ?
Если ты хочешь работать в мобильной разработке, то даже не смотри в сторону замарина и шарпа вообше. Тебе либо котлин/ява для андроида, либо свифт для iOS.
>на ASP.NET
А вот это уже совсем другая область, и тут перспективы есть неплохие. Бэкенд разработки в энтерпрайзе много, да и асп.нет сейчас майки активно развивают из-за сервисов Azure (это второй, по процентной доле, источник их прибыли, после офиса, который с небольшим отрывом идет). Асп.нет смысл изучить есть. Замарин им никакой прибыли не принесет, это просто придаток, который волочат в дотнет. Майки сами отлично понимают, что на мобилках все нативно сейчас, а на дестктопе вообще всё уходит в веб.
Окей. Какой проект можно было бы набросать на АСП.Нет ?
Я просто вообще не имею идей.
Хотя бы в какую сторону копать ?
>Какой проект можно было бы набросать на АСП.Нет
>Я просто вообще не имею идей.
Так а я откуда знаю? Любой бэкенд пиши. Я ж не знаю, какой у тебя там уровень знаний и что ты сможешь реализовать.
Можешь замутить аналог kde connection, сервер на асп.нет+десктоп или веб-клиент для управления и замарин для управления с телефона.
Только сразу почитай про нормальную архитектуру приложения и паттерны(Data acess layer, unit of work это абсолютный минимум), чтобы потом было удобнее работать над проектом.
Земля тебе пухом братишка.
В 2020 Core и Framework сольются и станут одной платформой .NET, так что не понимаю, о чем ты.
В чем причина? На доску протекли онемэ?
>а сейчас он оживился с тех пор, как на оппосты стали ставить каких-то аниме-трапов
Правильный маркетинг, хули.
только тестить потом такую архитектуру - ад
Hello world?
> Я просто вообще не имею идей.
Смотри, я придумал тебе идею ИНТЕРНЕТ МАГАЗИН того что тебе самому нравится.
Какой я находчивый, скажи?
Хуле эта наноборда: https://github.com/username1565/nanoboard
гигабайт памяти оперативной жрёт, при Collet'e?
>Необработанное исключение: OutOfMemoryException.
Надо бы как-то ограничить потребление памяти, но как?..
Что-то повисает в памяти, походу.
Знаю, что можно сделать как-то так:
>long usedMemory = GC.GetTotalMemory(false);
и узнать сколько прога жрёт памяти в данный момент.
Но как эту память очистить, и как подождать, пока всё что её жрало - завершится, чтобы потом продолжить?
> System.Threading.Thread.Sleep(1000);
не помогает, он тормозит всю прогу, а память как была занятой, так и остаётся...
>GC.Collect();
Что-то вроде чистит, но не всё и не полностью...
>GC.WaitForPendingFinalizers();
Тоже, куда только не совал, всё-равно память как занята, так и висит занятой, в диспетчере задач...
Если есть идеи какие-нить - напишите тут: https://github.com/username1565/nanoboard/issues/5#issuecomment-543101689
Хотя код простой тут, но эта шняга меня - уже подзаебала просто.
Зачем ты это принес?
И да, память в ней уже фиксили Года три назад, раньше она и по 2-3 гб жрала, а теперь всего гиг.
Вот я и гляжу, там, исходнике, такие ебические конструкции...
Весь коллект прописан в файле \nanodb.exe-source\PngTransport\Aggregator.cs
Сначала, в методе Aggregate, в цикле, вызывается ParseText,
она парсит тред, и извлекает ссылки на пикчи из html.
Внутри неё, в цикле, эти картинки загружаются, и сразу же передаются в ParseImage.
Дальше уже, ParseImage выкачивает картинку из сети,
и парсит её, запуская nbpack.NBPackMain.ParseFile из файла \nanodb.exe-source\PngTransport\NBPack.cs.
Там, внутри, видно, что сначала запускается метод Unpack,
извлекаются посты, которые после их извлечения, циклом, по одному - добавляются в базу данных,
в результате вызова PutPost.
Метод PutPost - лежит в \nanodb.exe-source\Database\PostDb.cs и он просто добавляет в базу пост.
Так вот, вся эта шняга вызывается в циклах, и где-то пожирается оператива,
наверное где-то на этапе Unpack, в какой-то из функций, длиннющий массив в памяти остаётся,
или какой-нибудь контейнер без .Dispose()
Хотелось бы, как-то, перед запуском парсинга следующего контейнера,
очистить неиспользующуюся память, подождать её очистки, и затем уже парсить новый контейнер.
Но, вот незадача... GC.Collect() не очищает всё это ненужное говно,
и я гребу как правильно написать функцию public static Vilka_govno_chisti()
Ох, братишка, ды ты упролся.
Есть нетовский профилировщик памяти/вызовов. Пикрелейт показывает распределние памяти по времени и ее конечное состояние.
Поробуй посмотреть, что у тебя там лежит по время скачивания/обработки картинок в наноборде. Я еще тебе рикаминдую замокать сети и подготовить пример из сотни изборажений чтобы была воспроизводимость в случае фиксов кода.
Ссылка: https://www.microsoft.com/en-us/download/details.aspx?id=16273
Профайлит даже второй .нет, но индусы из микросовта опидорели и требуют уже четвертый для работы.
Слышь, антонина, пасиба конечно, но я этих окошек не вижу в софтине по ссылке.
Зато я вижу кое что другое. Прописал, короче в Aggregator.cs, там где ParseImage - вот это:
>GC.Collect();
>GC.WaitForPendingFinalizers();
>GC.Collect();
>long usedMemory = GC.GetTotalMemory(false);
>Console.WriteLine("ParseFile commented. Memory used: "+usedMemory);
>Console.WriteLine("bytes.Length: "+bytes.Length);
И закомментировал вызов nbpack.NBPackMain.ParseFile
После этого, при попытке коллекта - вижу как быстро растёт потребление памяти...
Как я понял,
>client.DownloadDataAsync(new Uri(address));
загружает картинку,
передаёт байты её - вот сюда:
>client.DownloadDataCompleted += bytes =>
а они там просто конкатенируются, и повисают в памяти, блядь.
Надо обрезание какое-то сделать, походу, здесь. И мецицу заодно.
Проект на MVC5+EF. БД без внешних ключей вообще, postgresql, таблиц около 40. Есть смысл потратить время на поиск и расстановку связей? Или лучше более полезными делами заняться?
Как вижу из потенциальных проблем - каскадное удаление в EF не настроено, в бд естественно тоже. Или оно из коробки работает? Ответы в гугле разнятся. Какие еще проблемы могут встретиться в будущем из-за отсутствия связей? кроме невозможности быстро по схеме сориентироваться офк
Сама идея, у неё - охуенна.
Не, я не разраб, я какой-то залётный рукожопый полунедоразраб.
Я её откопал просто, и хотел бы, наконец - допилить.
Кодю C# под .NET Framework 4.0, потому что Windows XP.
Я также пробовал её запускать на Windows 8.1, получилось, но код ещё - не ахти.
Подразвить бы это дело, а то наноборда карасика на работает чё-то на XP.
>Нет, это не так. Потом может подробно напишу.
Только не забудь. Хотелось бы реально, какую-то конструктивную критику увидеть. Ну или просто критику...
>Если под профайлером запускать
Так это уже не надо. Я же уже, определил выше, где память растёт...
Там и надо бы её подчищать, как-то.
Сначала подумал, что можно было бы сделать
>using (_client = new WebClient())
но там WebClientX,
поэтому внизу сунул просто client.Dispose(), и... Нифига...
Попытался всунуть его в using, а он, падла - не IDisposable.
Наверное поэтому client.Dispose() никакого эффекта не даёт.
public class Game<T> where T:Hero
В этом классе есть метод с инициализацией T, но не типа Hero, а предка класса Hero - HeroWarrior/HeroMage. Как это сделать?
>public HeroWarrior Method1(Hero x){
>...blah-blah-method...
>}
>public HeroMage Method2(Hero x){
>...blah-blah-method...
>}
Ага, словил OutOfMemory ексепшн. Память точно течет.
Вот пишет что всего 700+ мб занято кучей, а диспетчер задач показывает 1.5 гб.
>>498927
Приведи к нужному типу и инициализируй как надо. Но вообще ты делаешь что-то неправильно, если тебе нужны приведения типов в обощенных методах, такого не должно быть.
Делаю задания с методами и никак до меня не доедет как в один метод добавить одномерный массив из другого метода.
Каким хером к ним обращаться?
Вот метод для создания массива при помощи ввода чисел в консоли:
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
И теперь мне нужно используя данный метод сделать следующее задание
Используя метод для создания массива поменять местами максимальный элемент и первый.
Как этот ебаный массив из первого метода телепортировать в следующий метод ?(Само задание сделал по отдельности а совместить не понимаю как)
>Как этот ебаный массив из первого метода телепортировать в следующий метод ?
Ну ты чего ту-ту-ру? Передавай его как параметр.
Вот у тебя метод возвращает массив int[]. Сделай чтобы второй принимал этот массив как параметр и чего-то там с ним делал.
Должно выглядеть примерно так:
SwapMaxAndFirstElement( AddToConsoleArray(10) );
// сигнатура
public static void SwapMaxAndFirstElement( int[] arr )
Вроде делаю что ты порекомендовал а все равно хуита
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(AddToConsoleArray(5));
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
}
Вроде делаю что ты порекомендовал а все равно хуита
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(AddToConsoleArray(5));
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
}
Как-то так.
Внутри WebClientX обычный WebClient. Они не диспозятся как следует после завершения потока. 453 - это общее кол-во инстанций созданое за все время работы, подозреваю их должнно быть ровно 30 под число потоков.
>int [] array=AddToConsoleArray(5);
>SwichMaxIntegerInArray(AddToConsoleArray(5));
Братишь ты тут два массива создал. Один сохранил в переменную, а второй передал в метод.
Делай так:
int [] array=AddToConsoleArray(5);
>SwichMaxIntegerInArray(array);
Ооо, пасиб, поколупаю. Я так мельком и думал, что где-то там есть какаха.
Хотя основной упор делал на тщетную попытку сделать .Dispose и очистить массивы в функциях парсинга. И ещё столько GC.Collect() напихал у себя - ёбнуться можно, и всё безуспешно.
>>498939
>>498943
https://rextester.com/VBRTK48128
>такого не должно быть.
Есть сущность, которая принимает объекты, наследуемые одним интерфейсом/абстрактным классом. Как еще ее можно реализовать?
Уже исправил так как сам понял что 2 раза ввожу массивы
но все же вопрос остался. Не выводит результат кода задание с заменой чисел массива
вот код
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(array);
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
}
Уже исправил так как сам понял что 2 раза ввожу массивы
но все же вопрос остался. Не выводит результат кода задание с заменой чисел массива
вот код
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(array);
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
}
И зачем этой сущности реализовывать часть поведения чужих типов?
Если сущность у тебя принимает обобщение(интерфейс или абстрактный класс), то она и должна с ним работать как с обощением и ей должно хватать инфы чтобы творить над ним всякие странные вещи. Если тебе нужно сделать что-то классозависимое в таком обощении, то есть паттерны стратегия и шаблонный метод, на крайняк есть виртуальные методы - используй это.
Поэтому правильная инициализация Hero и всех его производных будет такая
public void Init<T>(T Hero, Game Context)
{
// одинаковое для всех
Hero.CommonShitForAllAvaiableHeroes = 0;
// разное для каждого подкласса
Hero.InitSpecialShit(Context)
}
До пизды эти веб-клиенты, они жрут не так много...
Попытался их диспознуть - нифига...
Прописал, короче, в WebClientX.cs это:
>public void Dispose()
>{
> _wc.Dispose();
>}
Теперь, должно диспозится.
Только где и как вызывать этот диспоз - не пойму чё-то.
Если сделать так:
>client.DownloadDataAsync(new System.Uri(URL));
>client.Dispose();
софтина диспозит веб-клиент, сразу же после начала закачки, но дожидается загрузки файла с него.
Как только загрузка успешно завершена, срабатывает:
>client.DownloadDataCompleted += bytes =>
и вся эта функция.
Так вот... На этапе приёма bytes этих, память как-раз и растёт.
То есть они тупо сохранятся в памяти и дописываются в неё.
Пытался их занулить в самой функции:
И так
>bytes = new byte[0];
И так:
>bytes = null;
И даже так (внутри этих скобок после DownloadDataCompleted):
>client.Dispose();
Но нифига. Память всё-равно растёт по мере закачки файлов...
Это наглядно показывают три строчки:
>long usedMemory = GC.GetTotalMemory(false);
>Console.WriteLine("ParseFile commented. Memory used: "+usedMemory);
>Console.WriteLine("bytes.Length: "+bytes.Length);
Всё остальное что внутри скобок DownloadDataCompleted - закомментил.
И чё терь делать с этой фигнёй? И это... Может оно не тут совсем память жрёт?
А где-нить вот тут, в WebClientX.cs:
>public event Action<byte[]> DownloadDataCompleted = delegate{};
???
До пизды эти веб-клиенты, они жрут не так много...
Попытался их диспознуть - нифига...
Прописал, короче, в WebClientX.cs это:
>public void Dispose()
>{
> _wc.Dispose();
>}
Теперь, должно диспозится.
Только где и как вызывать этот диспоз - не пойму чё-то.
Если сделать так:
>client.DownloadDataAsync(new System.Uri(URL));
>client.Dispose();
софтина диспозит веб-клиент, сразу же после начала закачки, но дожидается загрузки файла с него.
Как только загрузка успешно завершена, срабатывает:
>client.DownloadDataCompleted += bytes =>
и вся эта функция.
Так вот... На этапе приёма bytes этих, память как-раз и растёт.
То есть они тупо сохранятся в памяти и дописываются в неё.
Пытался их занулить в самой функции:
И так
>bytes = new byte[0];
И так:
>bytes = null;
И даже так (внутри этих скобок после DownloadDataCompleted):
>client.Dispose();
Но нифига. Память всё-равно растёт по мере закачки файлов...
Это наглядно показывают три строчки:
>long usedMemory = GC.GetTotalMemory(false);
>Console.WriteLine("ParseFile commented. Memory used: "+usedMemory);
>Console.WriteLine("bytes.Length: "+bytes.Length);
Всё остальное что внутри скобок DownloadDataCompleted - закомментил.
И чё терь делать с этой фигнёй? И это... Может оно не тут совсем память жрёт?
А где-нить вот тут, в WebClientX.cs:
>public event Action<byte[]> DownloadDataCompleted = delegate{};
???
Вот тут пиздят про утечку памяти у делегатов: https://social.msdn.microsoft.com/Forums/en-US/7954762a-eff9-4e95-a34e-3144761fb40e/how-to-avoid-memory-leak-from-delegates?forum=csharpgeneral
Так что не делегируйте делегации делегациями делегационными.
В моем примере:
public class Game<T> where T:Hero
это собирательная сущность, без какой либо реализации, только подписка на события, которая присуща каждому типу, наследуемому от Hero.
Я могу внутри Game создать List<WarriorHero>, List<MageHero>, List<ArcherHero> и добавлять в каждую из коллекций нужную сущность. Но может я долбоеб, что везде пытаюсь выпилить красивый код и создаю List<T>, потом ломая себе голову с приведениями в дженериках...
Что скажешь по этому поводу?
Уже сам победил
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(array);
//Console.WriteLine(SwichMaxIntegerInArray(array));
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
Console.WriteLine("Замена первого и максимального элемента");
foreach (int rezult in arr)
{
Console.WriteLine(rezult);
}
}
Уже сам победил
static void Main(string[] args)
{
int [] array=AddToConsoleArray(5);
SwichMaxIntegerInArray(array);
//Console.WriteLine(SwichMaxIntegerInArray(array));
Console.ReadKey();
}
public static int[] AddToConsoleArray(int length)
{
int[] arr = new int[length];
Console.WriteLine("Type any numbers and press Enter.");
for(int i = 0; i <length; i++)
{
arr = int.Parse(Console.ReadLine());
}
return arr;
}
///Поменять местами максимальный элемент и первый.
public static void SwichMaxIntegerInArray(int [] arr)
{
int max = arr[0];
int maxindex = 0;
int first = arr[0];
for(int i = 0; i < arr.Length; i++)
{
if (max < arr)
{
max = arr;
maxindex = i;
}
}
arr[0] = max;
arr[maxindex] = first;
Console.WriteLine("Замена первого и максимального элемента");
foreach (int rezult in arr)
{
Console.WriteLine(rezult);
}
}
Только до XOR-Exchange надо бы ещё добавить:
>if(index==0) return arr;
А то, когда первый элемент наибольший, получается ноль там.
Нагуглил тут: https://stackoverflow.com/a/6063381
что WebClient имеет метод .Dispose(),
но при этом не является IDisposable.
Нахуя ему тогда .Dispose() - непонятно.
Как сделать его IDisposable - тоже непонятно.
То-то я думаю, хуле оно даже с using'ом память так жрёт? Пиздец какой-то.
Это всё из-за client.DownloadDataAsync и как пояснил этот >>498976, скорее именно - из-за делегации делегационирующей делегациоанализацию делегационную.
Там же синтаксис, примерно такой:
>client.DownloadDataCompleted +=
>delegate(object sender, DownloadDataCompletedEventArgs e)
>{
> data = e.Result;
>};
Поэтому, делегация эта висит в памяти и мешает диспознуть говно. Предлагаю писать в файл список ссылок и перезапускать прогу нахой.
Вот, нашёл самый первый код: https://github.com/alexmelyon/nanoboard
(Updated on 5 Mar 2016).
Либо это разраб оригинальный разраб, либо он форкнул у разраба.
>>498891
>Сама идея, у неё - охуенна.
>>498897
>Нет, это не так. Потом может подробно напишу.
Ты так и не высказался.
>>499026
>>499029
Может уж проще будет её на какой-нибудь питон, си или вообще - на ассемблере переписать?
Как по мне, так на питоне оно хоть читабельнее будет...
public string SomeField { get; set; }
если это абсолютно то же самое, что и
public string someField;
? Просто какая-то иллюзия инкапсуляции.
Да. Не парься, пиши везде публичные поля.
Потому что студия не проверят, все ли варианты покрывают твои if - else if - else if. Если бы у тебя было просто if-else, тогда было бы норм.
Просто инициализируй y в самом начале и всё.
Потому что ты не написал y=0. Вообще, нахуй тебе он, если ты можешь сразу делать возврат по значению х? И что за пиздец в 8 строке?
Потому что в будущем будет проще поменять, если понадобится-таки
Котлин посоны приветствуются, тут скоро хакатон, собираемся всей конфой поучавствовать. Enjoy!
https://t-do.ru/joinchat/JHAwOkQrlDk_cdgEPaF5hA
Ненавижу эти все ваши чаты.
Хуйня бестолковая для социоблядей.
И я уверен что половина чата это офтоп, который разводят пару вниманиеблядей.
Тебе не показывает с спицслужбам всяким где-то в PRISM - наверняка ещё как показывает.
Так не обсуждай там ничего конфиденциального.
Та блядь, тысячи их. Сидишь такой в порночатике няшном, думаешь всё секьюрно и криптово там,
а какой-то мойор и АНБ, волосатый елдак свой надрачивает
на твою сегодняшнюю тяночку-целочку стесняшечку,
и ещё небось сдеанонит её, поймает и профистингует.
Ебал я такие телеги и вайберы, с софтварными закладками. А про хардварные закладки я просто промолчу, лол.
Так что, ИМХО, TOX - хуй взломаешь.
Там ассиметричная криптография, после генерации пары ключей,
можно личины хоть миллионами менять, и нет привязки к личным данным.
>>498618>>498704>>498730>>498814>>498907>>498935>>498945>>498950>>498965>>499026>>499029>>499042
Короче, Аноны, вся хуйня где-то вот здесь: https://github.com/username1565/nanoboard/blob/5f193b26050021431b81603cec54403ebf781dfe/nanodb.exe-source/PngTransport/WebClientX.cs#L31
В этом методе и классе.
Что я сделал? Во-первых сделал его IDisposable:
> public class WebClientX : IDisposable
Во-вторых, прописал отдельный метод DownloadData в WebClientX + curl клиент присунул, там, внутри - как и в методе выше.
Сделал ещё один метод Dispose, где просто диспозится webclient.
Затем заменил нафиг DownloadDataAsync - на DownloadData в файле Aggregator.cs,
после чего, просто засунул этот webclientX - в using.
В итоге, памяти жрёт намного поменьше, при коллекте.
Как скомпарю все эти изменения + ещё свои некие - выложу кот.
https://www.google.com/search?tbm=isch&q=WPF+полоса+прокрутки+в+плеере
Там, по ссылка глянь...
Пока нашёл это, но дальше не читал. https://professorweb.ru/my/WPF/UI_WPF/level6/6_18.php
https://2ch.hk/pr/res/1499746.html (М)
https://2ch.hk/pr/res/1499746.html (М)
https://2ch.hk/pr/res/1499746.html (М)
Кстати, борда вообще куда больше подходит для околопрогероского общения, из-за её организации веток ответов. Если пытаться что-то обсуждать с ответами в телеге, то это быстро перерастет в нагроможденный пиздец. К тому же, там актуальность сообщений после десятка других, которые полностью вайпнут экран месседжера, вообще в ноль падает. А вот тред больше читают.
Так что все заебись тут, говноконфа не нужна, двачую.
>Так что, ИМХО, TOX - хуй взломаешь
По секрету скажу, что старички хакинг-сцены и всякие около них к примеру, кapдеры для общения между собой используют жабу + otr поверх. Так что тоже можешь брать на заметку такое решение.
>жабу + otr поверх
>otr поверх
Погуглил немного, и мои глаза...
https://ru.wikipedia.org/wiki/Off-the-Record_Messaging#Шифрование_сообщений
>любой, кто перехватит сообщение, сможет выборочно изменить любые биты в сообщении
>@
>Благодаря спорному шифрованию участники протокола OTR могут утверждать,
>что любое из переданных сообщений было изменено третьей стороной.
OTR(YOBA ETO TI? + KEY) = CRYPTO_YOBA_ETO_TI? -> MOYOR -> OTR(CRYPTO_YOBA_ETO_TI? + YOBA ETO TI?) = KEY
@
OTR(ZEC ETO TI? + KEY)
@
NET TI, YOBA-MOYOR.
да, нам шефова говорит мол мы хуйней занимаемся, и что надо делать так, так проще, и типа длл можно много раз использовать для разных проектов, вот я и спрашиваю каким образом это реализовать...
пофиг что баба, беда в том что тупая как пробка, то есть ну не сказать что совсем тупая, но сука, доказать или объяснить ее что либо нихуя не возможно, у не в голове какой-то манямирок и она думает что все должно быть именно так а не иначе, а то что не получается, так это мы тупые очередной раз обосрались, а не она, бесит.
>>504497
Перекатываемся мои няшные лапочки
https://2ch.hk/pr/res/1499746.html (М)
https://2ch.hk/pr/res/1499746.html (М)
https://2ch.hk/pr/res/1499746.html (М)
Нихуя ты тип, в старом треде о новой технологии пишешь
Неужели уже в продакшен идёт?
А как же огромный бандл при закачке?
Я на нем пишу уже пол года, ахуевшая тема, WebAssembly очень перспективная штука, javascript теперь ненужон чтобы писать веб-прилы, код исполняется быстрее js, правда dll долго грузяться, из-за этого надо пререндером отправлять страничку чтобы юзверь не влипал в индикатор загрузки несколько секунд
>сделали легковесным, а не как сейчас — 20 мб.
ты ебанутый? сейчас у всех 3G +-.Тебе на 3 секунды больше подождать пока прогурзится сайт, который будет быстрее работать ебучего js, это много? нахуя учить js? ты же не кодишь на ассемблере? который кстати полезно знать, также как и ecmascript, но js помойка, неудобная для программистов
Это копия, сохраненная 3 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.