Всем привет! В этой статье я хочу рассказать о новой библиотеке, которая привносит шаблон проектирования MVI в Android. Эта библиотека называется MVIDroid, написана 100% на языке Kotlin, легковесная и использует RxJava 2.x. Автор библиотеки лично я, исходный код её доступен на GitHub, а подключить её можно через JitPack (ссылка на репозиторий в конце статьи). Эта статься состоит из двух частей: общее описание библиотеки и пример её использования.
Рубрика «архитектура» - 30
MVIDroid: обзор новой библиотеки MVI (Model-View-Intent)
2018-07-21 в 10:49, admin, рубрики: android development, architecture, mvi, pattern, архитектура, Разработка под android, шаблонASP.NET Razor: решение некоторых проблем с архитектурой для модели представления
2018-07-05 в 17:24, admin, рубрики: .net, ASP, asp.net core, asp.net mvc 5, C#, mvc, razor, view model, web, архитектура, Разработка веб-сайтов
Введение
Здравствуйте, коллеги!
Сегодня хочу поделиться с вами своим опытом разработки архитектуры View Model в рамках разработки веб-приложений на платформе ASP.NET, используя шаблонизатор Razor.
Описываемые в данной статье технические реализации подходят для всех актуальных на текущей момент версий ASP. NET (MVC 5, Core, etc). Сама статья предназначена для читателей, которые, по меньшей мере, уже имели опыт работы под данным стеком. Также стоит отметить, что в рамках данной мы не рассматриваем саму пользу View Model и её гипотетическое применение (предполагается, что читатель уже знаком с данными вещами), обсуждаем непосредственно реализацию.
Задача
Для удобного и рационального усвоения материала предлагаю сразу рассмотреть задачу, которая естественным образом приведет нас к потенциальным проблемам и их оптимальным решениям.
Это задача о банальном добавлении, скажем, нового автомобиля в некоторый каталог транспортных средств. Дабы не усложнять абстрактную задачу, подробности остальных аспектов будут намеренно упущены. Казалось бы, элементарная задача, однако, попытаемся сделать все с уклоном на дальнейшее масштабирование системы (в частности, расширение моделей относительно кол-ва свойств и других определяющих компонент), чтобы впоследствии работать было максимально комфортно.
Как и почему мы написали свой ECS
2018-06-13 в 8:14, admin, рубрики: android, C#, ecs, Gamedev, iOS, mobile development, online multiplayer, pvp, unity, unity3d, архитектура, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, Проектирование и рефакторинг, разработка игр, управление проектами, шутерВ прошлой статье я описал технологии и подходы, которые мы используем при разработке нового мобильного fast paced шутера. Т.к. это была обзорная и даже поверхностная статья — сегодня я копну глубже и подробно расскажу, почему мы решили написать собственный ECS-фреймворк и не стали использовать существующие. Будут примеры кода и небольшой бонус в конце.

Читать полностью »
Highload-магистратура: качаем матчасть
2018-05-29 в 9:04, admin, рубрики: highload, python, архитектура, Блог компании Avito, Карьера в IT-индустрии, магистратура, обучение, Программирование, Разработка веб-сайтов, стажировки, тестирование, Учебный процесс в IT, экзаменыСовместно с МАИ Авито открывает магистратуру «Проектирование высоконагруженных интернет-сервисов», обучение начнётся уже в сентябре 2018 года. Зачем туда поступать и в чём основные фишки, рассказываем в этой статье. Под катом можно также познакомиться с преподавателями и зарегистрироваться на вебинар, посвящённый учебной программе.

Создаем калькулятор с единицами измерений
2018-05-25 в 6:55, admin, рубрики: api, reverse polish notation, Алгоритмы, Анализ и проектирование систем, архитектура, единицы измерения, конвертация, Проектирование и рефакторингКак-то раз мне нужно было реализовать калькулятор для складывания и конвертации физических величин. У меня тогда не было ограничений по времени, поэтому я решил проблему на высоком уровне абстракции и, соответственно, под широкий спектр задач. Предлагаю на ваш суд мое решение.

Представьте, что вам нужно написать калькулятор, который умеет не просто считать цифры, а оперировать физическими (измеряемыми) величинами – складывать длину, конвертировать количество чего-то из одной единицы измерения в другую, и т.п. Первым делом, давайте обозначим чуть конкретнее задачу. У нас будут вот такие фичи:
Читать полностью »
Промышленный IoT: изучение спроса
2018-05-11 в 13:42, admin, рубрики: api, enterprise, IoT, архитектура, безопасность, Блог компании Издательский дом «Питер», высокая производительность, Интернет вещей, Исследования и прогнозы в IT, ПрограммированиеЗдравствуйте, коллеги.
Сегодня хотим обсудить с вами такую нетривиальную тему как архитектура IoT для больших предприятий. Популяризация IoT на русском языке идет полным ходом, однако на английском языке уже выходят первые серьезные книги об архитектуре таких решений в масштабе (больших) предприятий. Нас изрядно заинтересовала следующая книга Перри Ли (Perry Lea):

Просим вас активно высказываться насчет актуальности этой книги. Если кто-то хочет поделиться реальным опытом реализации промышленного IoT в России и/или отрецензировать перевод книги — также пишите.
Под катом предлагаем перевод публикации Red Hat, где рассмотрены вопросы грамотного и безопасного проектирования API для IoT-систем
Читать полностью »
Магнасанти — самый большой и самый ужасный город SimCity
2018-05-10 в 8:40, admin, рубрики: Alconost, SimCity, Анализ и проектирование систем, архитектура, Блог компании Alconost, Занимательные задачки, игра, магнасанти, Программирование, разработка игрПохоже на набор разноцветных квадратиков без смысла и цели? На самом деле за этой картинкой — злой гений и множество формул.
Это вид на Магнасанти — мегаполис, создатель которого попытался достичь предела численности населения в игре SimCity.
Присмотримся поближе:

Винсент Оскала (Vincent Oscala), 22-летний студент из Филиппин и будущий архитектор, многие годы пытался найти формулу успеха в игре Sim City 3000.
Безумная, казалось бы, затея… однако благодаря огромным усилиям, вложенным в «борьбу» с SimCity, оказались подняты интересные вопросы о городских ландшафтах, в которых мы живем, и о том, в какой ужас они могут превратиться.

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

Переведено в Alconost
Читать полностью »
Знакомство с реактивными потоками – для Java-разработчиков
2018-04-13 в 15:22, admin, рубрики: akka streams, java, scala, архитектура, Блог компании Издательский дом «Питер», книги, потоковая передача данных, Программирование, Проектирование и рефакторинг, реактивное программированиеПривет!
Сегодня мы вернемся к одной из тем, затрагиваемых в нашей замечательной книге "Реактивные шаблоны проектирования". Речь пойдет об Akka Streams и потоковой передаче данных в целом — в книге Роланда Куна этим вопросам посвящены главы 10 и 15-17.
Читать полностью »
Особенности использования вещественных регистров x86 архитектуры
2018-04-12 в 12:08, admin, рубрики: c++, аппаратный уровень, архитектура, архитектура по, Блог компании SimbirSoft, вещественные числаВ этой статье рассмотрим опыт автора, столкнувшегося с особенностями реализации работы с вещественными числами на аппаратном уровне. Многие современные специалисты в области информационных технологий работают с высокими уровнями абстракции данных. Думается, что статья откроет им глаза на некоторые интересные вещи.
Читать полностью »
«Мамкин архитектор». Часть 1: Взлеты и падения программной инженерии
2018-04-04 в 9:45, admin, рубрики: java, архитектура, архитектура по, Блог компании онлайн-кинотеатр ivi, Программирование, Терминология ITДоброго времени суток, уважаемые читатели Хабра. Представляю вашему вниманию цикл статей «Мамкин архитектор». В нем я постараюсь отразить личное мнение относительно построения гибких архитектур. Попутно объясню, как это пригодится менеджерам и поможет разработчикам укрепить основные понятия.

В этой статье речь пойдет о «творческом подъеме», «творческом спаде» и о покерном понятии «тильт». Последнее отлично отражает состояние разработчика в тех или иных состояниях предметной модели в разрезе программной архитектуры. Опус пригодится:
- Менеджерам, решающим вопросы от разработчиков вроде «давайте все закопаем и переделаем».
- Прикладным разработчикам, которым будет интересно заглянуть за броню инкапсуляции тщательно выстроенной (или хаусе) предметной модели в концептуальном ее виде.
- Архитекторам или дизайнерам системы будет интересен мой опыт внедрения, поддержки и удержания предметной модели в концептуальных контурах.

