Pull to refresh
10
0.2
Никита Кожевников @nkozhevnikov

Программист .NET/C#

Send message

Ставлю на то, что она не пойдет в разработчики.

Многие писали «загугли и найдёшь всё сама» и оскорбляли меня, вместо структурированного ответа. Информации очень много и она имеет свойство устаревать и не хотелось бы терять времени, так как в моём положении, его становится меньше, с каждым днём. Ко всему этому, у меня отсутствуют какие-либо моральные силы. Мне нужно просто правильное направление. Не более.

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

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

Приходить первым делом на Хабр и ныть что-то из разряда "сложно непонятно памагити(((((" - дело неблагодарное и тлетворное.

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

Но на разработку вы потратили бы в несколько раз меньше времени, не были бы привязаны к платформе

Не могли бы раскрыть подробнее? Дотнет уже много лет как кроссплатформенный.

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

Вот мне бы интересно было увидеть, например, следующее:

  • Я хочу добавить валидацию, которая будет ходить глубоко в сервис (например, нам приспичило проверить какое-то поле на уникальность в базе). Как это можно сделать с FluentValidation?

  • Как FluentValidation интегрировать с ASP.NET Core?

  • У нас на проекте используются валидация с помощью атрибутов (RequiredAttribute, StringLengthAttribute, etc), которые отлично работают с ASP.NET Core. Можем ли мы распинать FluentValidation, чтобы он смотрел на атрибуты, а не писать валидаторы?

  • К нам прилетел запрос, у которого есть Accept-Language в хедерах, и мы хотим отдать пользователю локализованное сообщение с ошибками валидации. Можно ли в этой истории распинать FluentValidation?

  • Мы практикуем чистую архитектуру. Как в эту историю вписать FluentValidation?

  • Зачем нам вообще нужен FluentValidation, если можно написать ещё один сервис, который будет валидировать модель?

Чем эта статья (как и предыдущие) отличается от документации на сайте библиотеки? Кроме примеров.

А вот я расскажу почему я перешёл с Arch Linux обратно на Windows.

Имею комп с видеокартой Nvidia RTX 3070 Ti, чтобы играть в свободное время. Плюс, личный ноутбук 2017-го года покупки.

  1. У меня стоит два монитора: основной на 4К и второй монитор 1080p, который повёрнут вертикально. Multihead с дробным масштабированием сделан хорошо в Wayland, но не в X11, из-за чего какие-то окна могут захерачить себя куда-то за угол экрана, если им нужно показать себя на весь этот экран (но это проблема встречалась мне в играх через Wine/Proton).

  2. Приколюхи в играх в виде падения частоты кадров из-за того что я запустил игру под X11 (например, любая новая игра на Unreal Engine 5). Если запустить под Wayland - проблемы нет...

  3. ...но Wayland при использовании проприетарных драйверов Nvidia ведёт себя нестабильно (окна мигают или возникает черный экран вместо рабочего стола). Где-то это пытаются решить костылями как в Hyprland, либо прямо говорят "ССЗБ" (привет, SwayWM).

  4. Баги, которые не встречаются у 95% пользователей. Например, в прошлом году KDE начал сжирать 80% оперативной памяти после какого-то обновления. При этом, если верить баг-трекеру, баг то возникает у кого-то, то нет. Из-за этого я перешёл на Cinnamon, который работает под X11, но не работал под Wayland (к слову: поддержку добавили после того, как я перешёл на Windows).

  5. Всякие приколюхи типа Waves MaxxAudio под виндой выкручивают чип от Realtek так, что мой ноутбук звучит сносно. Под линуксом нет Waves MaxxAudio, а драйвер для древней версии ядра надо собирать руками (и он не собирается :) ).

Всех вышеперечисленных проблем нет под виндой.

Может и у вас таких проблем нет с похожей конфигурацией. Или не встречали их вообще. Посмотрите на пункт 4 ещё раз: вы можете как встретить, так и не встретить баги, которые возникают у других пользователей. В случае с виндой и в силу огромного зоопарка устройств с ней, многих проблем нет, которые могут возникнуть на устройстве с линуксом.

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

Как сказал мой бывший тимлид...

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

Просто добавьте "Да, иное (напишу в комментариях)" для таких случаев. :)

Можете добавить пункт "по половому признаку".

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

В этот раз энтузиасты перепридумали браузер

И придумали ещё один браузер.

Не надо перепридумывать браузер. И так нечего перепридумывать в них.

Вот читаю подобные новости про то, как Rust начинают использовать в крупных компаниях -- начинаю ловить себя на мысли, что жалею, что всё ещё пишу свои поделки на C/C++, а не на Rust. :(

Я как‑то пробовал настроить Awesome через скрипты на Lua. Но получалось что‑то вроде этого

Но на Windows, я уверен, найдется минусов не меньше, чем на линукс, а то и больше.

Однако, конечный пользователь предпочтёт простую и работающую из коробки Windows, нежели что-то из зоопарка из дистрибутивов, на которых надо что-то ещё поставить, чтобы поиграть в условный War Thunder.

В этой статье описал преимущества Linux...

А теперь поговорим о недостатках.

  • Проблемы с Nvidia. Как известно, для Linux есть два драйвера, обеспечивающие поддержку их видеокарт: проприетарный драйвер Nvidia, и Nouveau. Первый, несмотря на опубликованные ранее модули ядра, до сих пор является закрытым, так как требует выполнение их бинарника в пространстве пользователя. Второй не поддерживает полноценно современные видеокарты. Кроме того, проприетарный драйвер Nvidia криво-косо работает в Wayland, который развивается сейчас активней, чем иксы.

  • Вообще, в Linux есть проблема с драйверами. Например, есть у меня ноутбук Dell Inspiron 5567. Под Windows из коробки есть особенный аудио-драйвер, с которым звук звучит нормально. Под Linux используется обыкновенный драйвер от Realtek, с которым звук звучит отвратительно. Можно попробовать поискать и собрать драйвер руками, но вряд ли обычный пользователь будет заморачиваться с этим.

  • Проблемы с IO под нагрузкой. Существует баг 12309, который из версии к версии фиксят. Попробуйте на своём компьютере запустить копирование большого объема данных и обратите внимание на лаги.

  • Из коробки нет поддержки приложений из Windows, что для кого-то это может быть критичным. Wine и Proton хоть и решает проблемы, но без определенных патчей (например, без таких), завести какие-либо игры окажется проблематичным.

  • Из недавнего: в KDE есть баг, приводящий к тому, что plasmashell отжирает с самого начала всю оперативку. Из-за этого пришлось отказаться от использования KDE.

Список можно продолжать.

UPD. Дополнил список ещё несколькими пунктами.

Слово "кибериммунитет" само по себе звучит как маркетинговый булшит.

Вы описали часть того, для чего именно существует небезопасный контекст в .NET. То что через небезопасный код можно менять интернированные строки -- не новости. И описанные вами проблемы не являются проблемами как таковыми.

Если вы читали Рихтера, то должны помнить вот эту часть:

По умолчанию компилятор C# компании Microsoft генерирует безопасный код. Под этим термином понимается код, безопасность которого подтверждается в процессе верификации. Тем не менее компилятор Microsoft C# также позволяет разработчикам писать небезопасный код, способный напрямую работать с адресами памяти и манипулировать с байтами по этим адресам. Как правило, эти чрезвычайно мощные средства применяются для взаимодействия с неуправляемым кодом или для оптимизации алгоритмов, критичных по времени.
Однако использование небезопасного кода создает значительный риск: небезопасный код может повредить структуры данных и использовать (или даже создавать) уязвимости в системе безопасности.

Собственно, unsafe обозначает, что своими кривыми руками можно сломать все, что вздумается. ССЗБ.

Про ваш пример в листинге 3.2: из-за JIT-компиляции подгрузилась новая строка, потому что в кэше не нашлась эта же строка. Механизм интернирования на стороне CoreCLR вы можете посмотреть здесь: https://github.com/dotnet/runtime/blob/319391eb90065ec2aca29c6de0046e47a1286016/src/coreclr/vm/stringliteralmap.cpp#L403

там аж 11 просмотров

Теперь 12. :D

А почему Р7-Офис очень похож на OnlyOffice?

Скриншот Р7-Офис с официального сайта

Скриншот OnlyOffice

Замечу, что последний открыт в плане исходного кода.

Я считаю поведение администрации хабра крайне неосмотрительным.

Так не пользуйтесь Хабром, Мария Ильинична.

Вконтакте пока что слабее как способ раскрутки.

Как заметили некоторые комментаторы, Вам нужна не раскрутка, а умение принимать критику. И не важно куда вы уйдете: даже в условном ВК Вашему креативу так же могут захотеть дать ценную (или не очень) критику, на которую Вы будете бешено печатать абзацы претензий к автору комментария.

Information

Rating
1,967-th
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity