Size: a a a

Библиотека шарписта

2020 July 03
Библиотека шарписта
источник
2020 July 04
Библиотека шарписта
Автор статьи рассматривает интересные функции .NET Core 3.0 для пользователей Linux и Linux-контейнеров: https://proglib.io/w/e1bd2b1b
источник
2020 July 05
Библиотека шарписта
#вопросы_для_самопроверки

Что такое приватные и совместные сборки, а также манифест сборки (assembly manifest)?
источник
Библиотека шарписта
Сборки в .Net бывают приватными (локальными), которые использует только само приложение, и совместными, использующиеся набором приложений.

Приватные сборки видны только самому приложению и никому более, т. е. приложение изолируется от внешнего воздействия, как других программ, так и самой операционной системы. Соответственно, они лишены многих проблем, связанных с совместными сборками. К примеру, такой, как уникальность имен: так как сборка локальная, нет необходимости заботиться об уникальности имен во всем глобальном пространстве имен. CLR при запуске приложения прочитает его манифест и определит, какие сборки необходимы. Затем будет произведен процесс зондирования (probing) рабочего каталога приложения на предмет нужной сборки. Необходимая сборка определяется по имени файла, определенного в манифесте.

Совместные сборки могут быть использованы сразу несколькими приложениями. К таким сборкам предъявляются более строгие правила, чем к приватным сборкам, например: необходима уникальность имен сборки, т. е. имена внутри сборки не должны конфликтовать с уже существующими в глобальном пространстве имен, предоставляемом средой исполнения по умолчанию. Действия системы управления версиями при поиске необходимых сборок могут быть изменены при помощи политики версий, которую сможет изменять администратор или автор приложения. Данная политика позволит принудительно изменить версию сборки, запрашиваемой приложением, а также поведение среды исполнения при поиске и загрузке сборок. Таким образом, имеется возможность «заставить» приложение использовать сборку другой версии, даже если оно на это не рассчитано. Данная политика настраивается при помощи файла конфигурации, который помещается в каталог приложения и имеет то же имя, что и у приложения, только с расширением .config. Совместные сборки хранятся в глобальном кэше сборок.

Манифест сборки — это внутренняя часть сборки, которая позволяет ей быть самоописанной. Он позволяет идентифицировать сборку, указывает файлы, которые включаются в реализацию сборки, описывает типы и ресурсы, используемые в сборке, указывает зависимости от других сборок, а также набор прав доступа, которые необходимы сборке для корректной работы. Эта информация используется во время выполнения для разрешения ссылок, проверки корректности версий и целостности загруженных сборок.
источник
Библиотека шарписта
Перевод статьи о магических методах в C#: https://proglib.io/w/369c1eae
источник
Библиотека шарписта
Увлекаешься компьютерными играми? Научись не только в них играть, но и создавать свои собственные! 9–11 июля пройдёт бесплатный интенсив по Unity, на котором ты сможешь попробовать себя в роли гейм-разработчика!

Нужна только регистрация: 🔜 https://clc.to/aIiSjQ.

💫 За 3 вечера ты создашь полноценную космическую игру.
💫 Получишь неограниченный доступ к материалам занятий.
💫 Задашь любые вопросы опытному разработчику.
💫 Подготовишь достойный проект для портфолио.


🎉 Авторам трёх лучших работ подарят сертификаты на 30 000 рублей для обучения в Skillbox!
источник
2020 July 06
Библиотека шарписта
​​🕵 Где программисту искать удаленную работу?

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

https://proglib.io/sh/30rRSxjemG
источник
2020 July 07
Библиотека шарписта
#вопросы_для_самопроверки

Как обеспечить использование именованных параметров в конструкторе атрибута?
источник
Библиотека шарписта
Конструкторы атрибутов могут принимать именованные параметры — поля и свойства атрибутов. При задании именованного параметра в конструктор атрибута передается имя свойства или поля, которое должно быть открытым и должно принять этот параметр. Если именованные параметры передаются, то они обязательно должны идти следом за позиционными параметрами, которые явно указаны в конструкторе атрибута.

Указание именованных параметров не является обязательным, поэтому при проектировании атрибутов необходимо помнить о том, что некоторые его поля или свойства могут быть не проинициализированы. Пример использования именованных параметров в конструкторе атрибута: [DllImport("Kernel32", CharSet=CharSet.Auto, SetLastError=true)]

В примере передается 1 позиционный параметр — строка "Kernel32" и 2 именованных параметра, которые устанавливают открытые поля CharSet и SetLastError в значения CharSet.Auto и true соответственно.
источник
Библиотека шарписта
Подходит ли вам онлайн-курс «Инфраструктурная платформа на основе Kubernetes» ❓

📍Если вы:
● Разработчик, администратор или СТО,
● Устали тратить время на автоматизацию,
● Хотите использовать единообразные окружения и работать на профессиональном уровне с современными инструментами,
● Знаете, как потратить прибавку в зарплате,
● Готовы к 5 месяцем интенсивного обучения и практики,

то этот курс откроет для вас множество перспектив. Пройдите вступительный тест, чтобы оценить, хватит ли вам подготовки для обучения: https://otus.pw/36hV/
источник
Библиотека шарписта
38 качественных видеоуроков по работе с Unity: https://proglib.io/w/3d6f9640
источник
2020 July 08
Библиотека шарписта
На GitHub появилась дорожная карта клиентского и серверного разработчика, а также тестировщика игр. Небольшое описание на русском.
источник
2020 July 09
Библиотека шарписта
#вопросы_для_самопроверки

Объясните предназначение ключевого слова volatile в C#.
источник
Библиотека шарписта
Если у вас многопоточное приложение с разделяемыми несколькими потоками данными (например полями класса), то у вас нет гарантии того, что данные в эти разделяемые поля будут записаны одним потоком и прочитаны другим потоком именно в том порядке, в котором вы их написали в своём коде.

Ключевое слово volatile означает, что поле может изменить несколько потоков, выполняемых одновременно. Добавление модификатора volatile гарантирует, что все потоки будут видеть временные записи, выполняемые другим потоком, в порядке их выполнения. Нет никакой гарантии единого общего прядка временных записей во всех потоках выполнения.

Ключевое слово volatile может применяться к полям следующих типов:
– Ссылочные типы.
– Типы указателей (в небезопасном контексте). Несмотря на то, что сам указатель может быть изменяемым, объект, на который он указывает, должен быть постоянным. Другими словами, объявить указатель на изменяемый объект невозможно.
– Простые типы, например sbyte, byte, short, ushort, int, uint, char, float и bool.
– Тип enum с одним из следующих базовых типов: byte, sbyte, short, ushort, int или uint.
– IntPtr и UIntPtr.

Ключевое слово volatile можно применять только к полям class или struct. Локальные переменные не могут объявляться как volatile.
источник
Библиотека шарписта
Теперь bug hunter'ы могут помочь сервису, которым пользуются они сами, друзья, близкие и мама с бабушкой — Ozon первым среди российских e-commerce компаний запустил собственную bug bounty программу.

За найденные на сайте уязвимости можно получить до 120 000 ₽.  Отправлять репорты можно на HackerOne: hackerone.com/ozon. Удачной охоты!
источник
Библиотека шарписта
Пишем простое Todo-приложение на C# с помощью Blazor Server и MatBlazor: https://proglib.io/w/ec1d6b24
источник
2020 July 10
Библиотека шарписта
Возможности разработки кроссплатформенных мобильных, настольных и веб-приложений на языке C# расширяются, поэтому особенную пользу приобретают аналитические статьи, в которых проводится сравнение доступных на сегодняшний день инструментов для кроссплатформенной разработки под .NET Core.

Часть 1
Часть 2
источник
Библиотека шарписта
C# разработчик
Формат работы: #fulltime #remote
Зарплата: $ 40 000 - 50 000 в год

Мы — платформа 6nomads, и прямо сейчас мы ищем опытного C# разработчика в компанию с экспертизой в игровой индустрии. Новому члену команды предстоит заниматься сложным многокомпонентным windows-приложением, его поддержкой, интеграцией и развитием.

Что важно:
— Опыт разработки на С# от 3 лет;
— Знание принципов ООП, SOLID, KISS, DRY;
— Опыт .NET core;
— Опыт работа с многопоточностью (не только через Tasks, но и через Threads);
— Опыт работы с системами контроля версий (Git);
— Английский достаточный для чтения тех документации.

Будет плюсом:
— Техническое образование, хорошая алгоритмическая подготовка;
— Опыт работы в распределенных командах;
— Опыт мобильной разработки и работы с эмуляторами;
— Опыт работы с неуправляемым кодом.

Что предлагают:
— Сложные задачи, в которых можно сильно прокачать свои навыки;
— Участие в построении архитектуры разрабатываемых продуктов;
— Гибкий график;
— Оплата обучения внутри и вне компании.

Чтобы откликнуться, необходимо пройти короткий отбор по ссылке  https://6nomads.com/. После этого мы сможем рекомендовать вас работодателю и свести к минимуму затяжные согласования и лишние собеседования.
источник
2020 July 11
Библиотека шарписта
#вопросы_для_самопроверки

Что обозначает термин immutable (неизменяемый)?
источник
Библиотека шарписта
Immutable означает, что данные, хранящиеся в переменной, не могут быть изменены. При этом значение переменной может быть изменено посредством отказа от использования старых данных, которые могут быть изменены. Оригинальные данные остаются в памяти, а новые значения создаются вновь, в новой области памяти.

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