Увлекаешься компьютерными играми? Научись не только в них играть, но и создавать свои собственные! 9–11 июля пройдёт бесплатный интенсив по Unity, на котором ты сможешь попробовать себя в роли гейм-разработчика!
Нужна только регистрация: 🔜 https://clc.to/aIiSjQ.
💫 За 3 вечера ты создашь полноценную космическую игру.
💫 Получишь неограниченный доступ к материалам занятий.
💫 Задашь любые вопросы опытному разработчику.
💫 Подготовишь достойный проект для портфолио.
🎉 Авторам трёх лучших работ подарят сертификаты на 30 000 рублей для обучения в Skillbox!
Нужна только регистрация: 🔜 https://clc.to/aIiSjQ.
💫 За 3 вечера ты создашь полноценную космическую игру.
💫 Получишь неограниченный доступ к материалам занятий.
💫 Задашь любые вопросы опытному разработчику.
💫 Подготовишь достойный проект для портфолио.
🎉 Авторам трёх лучших работ подарят сертификаты на 30 000 рублей для обучения в Skillbox!
🕵 Где программисту искать удаленную работу?
Рассмотрели 12 международных и российских площадок для поиска удалённой работы: ссылки, различия в механике поиска, плюсы и минусы.
https://proglib.io/sh/30rRSxjemG
Рассмотрели 12 международных и российских площадок для поиска удалённой работы: ссылки, различия в механике поиска, плюсы и минусы.
https://proglib.io/sh/30rRSxjemG
#вопросы_для_самопроверки
Как обеспечить использование именованных параметров в конструкторе атрибута?
Как обеспечить использование именованных параметров в конструкторе атрибута?
Конструкторы атрибутов могут принимать именованные параметры — поля и свойства атрибутов. При задании именованного параметра в конструктор атрибута передается имя свойства или поля, которое должно быть открытым и должно принять этот параметр. Если именованные параметры передаются, то они обязательно должны идти следом за позиционными параметрами, которые явно указаны в конструкторе атрибута.
Указание именованных параметров не является обязательным, поэтому при проектировании атрибутов необходимо помнить о том, что некоторые его поля или свойства могут быть не проинициализированы. Пример использования именованных параметров в конструкторе атрибута:
В примере передается 1 позиционный параметр — строка "Kernel32" и 2 именованных параметра, которые устанавливают открытые поля CharSet и SetLastError в значения CharSet.Auto и true соответственно.
Указание именованных параметров не является обязательным, поэтому при проектировании атрибутов необходимо помнить о том, что некоторые его поля или свойства могут быть не проинициализированы. Пример использования именованных параметров в конструкторе атрибута:
[DllImport("Kernel32", CharSet=CharSet.Auto, SetLastError=true)]
В примере передается 1 позиционный параметр — строка "Kernel32" и 2 именованных параметра, которые устанавливают открытые поля CharSet и SetLastError в значения CharSet.Auto и true соответственно.
38 качественных видеоуроков по работе с Unity: https://proglib.io/w/3d6f9640
YouTube
1. Unity Tutorial Basics - Create a Survival Game
This is the first video in "Create a Survival Game" a series on making a cool survival type game in Unity 4. In this video we set up the most basic game mechanics and a simple scene.
Quick Answers:
- This will work in Unity 5 however some things might look…
Quick Answers:
- This will work in Unity 5 however some things might look…
На GitHub появилась дорожная карта клиентского и серверного разработчика, а также тестировщика игр. Небольшое описание на русском.
GitHub
GitHub - utilForever/game-developer-roadmap: Roadmap to becoming a game developer in 2022
Roadmap to becoming a game developer in 2022. Contribute to utilForever/game-developer-roadmap development by creating an account on GitHub.
Если у вас многопоточное приложение с разделяемыми несколькими потоками данными (например полями класса), то у вас нет гарантии того, что данные в эти разделяемые поля будут записаны одним потоком и прочитаны другим потоком именно в том порядке, в котором вы их написали в своём коде.
Ключевое слово
Ключевое слово
– Ссылочные типы.
– Типы указателей (в небезопасном контексте). Несмотря на то, что сам указатель может быть изменяемым, объект, на который он указывает, должен быть постоянным. Другими словами, объявить указатель на изменяемый объект невозможно.
– Простые типы, например
– Тип
– IntPtr и UIntPtr.
Ключевое слово
Ключевое слово
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. Удачной охоты!
За найденные на сайте уязвимости можно получить до 120 000 ₽. Отправлять репорты можно на HackerOne: hackerone.com/ozon. Удачной охоты!
Хабр
Bug bounty Ozon: вопросы и ответы
Мы запустили публичную bug bounty программу на HackerOne — теперь за найденные на сайте Ozon уязвимости можно получить вознаграждение, а заодно помочь компании...
Пишем простое Todo-приложение на C# с помощью Blazor Server и MatBlazor: https://proglib.io/w/ec1d6b24
DEV Community
Simple Todo App with Blazor Server and Material Blazor
In order to make my journey in C# more interesting, I insert small projects where I can learn new thi...
Возможности разработки кроссплатформенных мобильных, настольных и веб-приложений на языке C# расширяются, поэтому особенную пользу приобретают аналитические статьи, в которых проводится сравнение доступных на сегодняшний день инструментов для кроссплатформенной разработки под .NET Core.
Часть 1
Часть 2
Часть 1
Часть 2
Forwarded from C# jobs — вакансии по C#, .NET, Unity
C# разработчик
Формат работы: #fulltime #remote
Зарплата: $ 40 000 - 50 000 в год
Мы — платформа 6nomads, и прямо сейчас мы ищем опытного C# разработчика в компанию с экспертизой в игровой индустрии. Новому члену команды предстоит заниматься сложным многокомпонентным windows-приложением, его поддержкой, интеграцией и развитием.
Что важно:
— Опыт разработки на С# от 3 лет;
— Знание принципов ООП, SOLID, KISS, DRY;
— Опыт .NET core;
— Опыт работа с многопоточностью (не только через Tasks, но и через Threads);
— Опыт работы с системами контроля версий (Git);
— Английский достаточный для чтения тех документации.
Будет плюсом:
— Техническое образование, хорошая алгоритмическая подготовка;
— Опыт работы в распределенных командах;
— Опыт мобильной разработки и работы с эмуляторами;
— Опыт работы с неуправляемым кодом.
Что предлагают:
— Сложные задачи, в которых можно сильно прокачать свои навыки;
— Участие в построении архитектуры разрабатываемых продуктов;
— Гибкий график;
— Оплата обучения внутри и вне компании.
Чтобы откликнуться, необходимо пройти короткий отбор по ссылке https://6nomads.com/. После этого мы сможем рекомендовать вас работодателю и свести к минимуму затяжные согласования и лишние собеседования.
Формат работы: #fulltime #remote
Зарплата: $ 40 000 - 50 000 в год
Мы — платформа 6nomads, и прямо сейчас мы ищем опытного C# разработчика в компанию с экспертизой в игровой индустрии. Новому члену команды предстоит заниматься сложным многокомпонентным windows-приложением, его поддержкой, интеграцией и развитием.
Что важно:
— Опыт разработки на С# от 3 лет;
— Знание принципов ООП, SOLID, KISS, DRY;
— Опыт .NET core;
— Опыт работа с многопоточностью (не только через Tasks, но и через Threads);
— Опыт работы с системами контроля версий (Git);
— Английский достаточный для чтения тех документации.
Будет плюсом:
— Техническое образование, хорошая алгоритмическая подготовка;
— Опыт работы в распределенных командах;
— Опыт мобильной разработки и работы с эмуляторами;
— Опыт работы с неуправляемым кодом.
Что предлагают:
— Сложные задачи, в которых можно сильно прокачать свои навыки;
— Участие в построении архитектуры разрабатываемых продуктов;
— Гибкий график;
— Оплата обучения внутри и вне компании.
Чтобы откликнуться, необходимо пройти короткий отбор по ссылке https://6nomads.com/. После этого мы сможем рекомендовать вас работодателю и свести к минимуму затяжные согласования и лишние собеседования.
6Nomads
Senior Talent Acquisition for B2B SaaS Startups
We know who you're looking for
Immutable
означает, что данные, хранящиеся в переменной, не могут быть изменены. При этом значение переменной может быть изменено посредством отказа от использования старых данных, которые могут быть изменены. Оригинальные данные остаются в памяти, а новые значения создаются вновь, в новой области памяти. Примером является строковой тип String. Он не может быть изменён и при любых модификациях создаётся в результате новый экземпляр класса, все ссылки переприсваиваются, и сборщик мусора собирает старые экземпляры.
Михаил Зинченко (Team Lead в Wargaming) советует 5 книг об индустрии разработки видеоигр, при этом, первые две книги он советует прочесть и тем, кто никогда не занимался созданием каких-либо игр и не планирует делать этого в обозримом будущем, но если вы хоть немного причастны к ремеслу создания вымышленных интерактивных миров и почему-то не знакомы со столь чудесными произведениями — не мешкая, беритесь за чтение прямо сейчас.
https://proglib.io/w/375aefdb
https://proglib.io/w/375aefdb
ДОУ
5 книг об индустрии разработки видеоигр от Михаила Зинченко, Team Lead в Wargaming
Михаил Зинченко, Team Lead в Wargaming, в своем списке объединил книги об индустрии в целом, которые будут интересны всем, независимо от сферы работы, и книги для тех, кто всерьез увлекся геймдизайном и разработкой игр.
Интересные мысли по поводу функционального программирования: https://proglib.io/w/63c46c01
Хабр
Функциональное программирование — это не то, что нам рассказывают
Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдам...
Avalonia — фреймворк, позволяющий создавать кроссплатформенные приложения с графическим интерфейсом на основе XAML, предоставляющий гибкую систему стилей и поддерживающий широкий спектр операционных систем (Windows через .NET Framework и .NET Core, Linux через Xorg, macOS).
Немного материалов, связанных с Avalonia:
– Github
– Разработка кроссплатформенного десктопного приложения с помощью Avalonia
– Реализация MVVM
Немного материалов, связанных с Avalonia:
– Github
– Разработка кроссплатформенного десктопного приложения с помощью Avalonia
– Реализация MVVM
GitHub
GitHub - AvaloniaUI/Avalonia: Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI…
Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI client technology - AvaloniaUI/Avalonia
System.Array.CopyTo() копирует не только сами элемента класса Array, но и объекты, которые связаны ссылками с элементами Array. Это всё называется «глубоким копированием».
System.Array.Clone() осуществляет так называемое «поверхностное копирование». При поверхностном копировании метод копирует только элементы объекта класса Array, и методу не важно, являются ли эти элементы ссылочными или значимыми типами. Копирования объектов, на которые ссылаются ссылочные типы, не происходит. Ссылки в новом объекте класса Array указывают на те же объекты, что и ссылки в оригинальном массиве Array.
System.Array.Clone() осуществляет так называемое «поверхностное копирование». При поверхностном копировании метод копирует только элементы объекта класса Array, и методу не важно, являются ли эти элементы ссылочными или значимыми типами. Копирования объектов, на которые ссылаются ссылочные типы, не происходит. Ссылки в новом объекте класса Array указывают на те же объекты, что и ссылки в оригинальном массиве Array.