Коротко и ясно о разработке на Objective-C, JavaScript, C#, Java, Swift. Под Android, iOS, WinForms и Unity

Позднее Ctrl + ↑

Реализация механизма плагинов в программе

Рано или поздно практически любой разработчик популярной программы сталкивается с необходимостью реализации возможности написания плагинов для нее. Лучше, если данная возможность заложена изначально. Наиболее простым путем в реализации такого функционала является создание специального интерфейса (например IPlugin). Данный интерфейс может содержать все необходимые методы и свойства для класса, работающего в инфраструктуре плагинов. Позже программа при загрузке сборки с плагином будет искать все классы, реализующие этот интерфейс, инстанциировать их как плагины и отображать их список в интерфейсе пользователя.

В основе работы всей инфраструктуры плагинов лежит такая возможность Microsoft .NET Framework как Рефлексия (пространство имен System.Reflection, более подробно можно почитать на MSDN)

Пример использования Обобщений (Generics) в C#

Давеча потребовалось реализовать инфраструктуру объектов-оберток для редактора роллет.


Исходная задача была следующей:
— Есть построитель роллет, который имеет ряд коллекций с объектами разных типов, описывающими один из элементов роллеты (привод, направляющая, ламель и т. п.)
— Необходимо реализовать логику расчета роллеты по уже заполненному списку параметров
— Внутренние типы построителя наследуются от базового класса RollCalc.Model.CommonProperties


Для упрощения реализации было решено создать свой набор объектов, описывающих каждый из элементов роллеты, чтобы не иметь жесткую связь с внутренними объектами редактора (ибо работать с ними было весьма не удобно). В своих объектах можно реализовать любой набор методов и свойств, которые существенно облегчат расчет и избавят нас от хардкода.
Естественно создавать свои объекты и заполнять их базовые свойства нужно по внутренним коллекциям редактора и желательно парой строчек кода. Пожалуй в данной ситуации наилучший выход — использовать обобщения языка C#. Они позволят нам написать бизнес логику один раз и использовать ее для разных классов (логика-то сходная).

День Программиста (я на TV :))

Недавно сняли меня тут в репортаже про День Программиста на местном ТВ города Горячий Ключ. Не обращайте внимания на то, что я в конце задвигаю тему про безопасность использования пластиковых карт — попросили такое сказать специально :)
По моему прикольно получилось!

Игра про Хомяка (Unity)

Еще одна игра, написанная с целью посмотреть как в Unity реализовали работу с 2D. Писалась игра быстро и ради фана, задачи полностью завершить ее не было. Но при этом присутствует не хилая такая предыстория.


Существуют люди, которые очень зависимы от своего позиционирования в обществе. Некоторые из них доходят до «ручки» в своем желании «почувствовать себя лучше чем другие». Такое «чувство» мы называем «Чувство Собственного Величия» или «ЧСВ».
Эта игра как раз про таких людей.

Alien Invasion (Unity)

Как-то давно, в 2010 году подвернулся мне проект на еще более менее живом тогда free-lance.ru. Суть проекта состояла в написании картинной галереи в 3D. Для выполнения, естественно, необходимо было выполнить тестовое задание на знание Unity. Задание было простое — демо сцена.


Посидев пару вечеров получился следующий результат


Управление:
Движение WASD или стрелки
Переключение камеры 1-7