SlideShare a Scribd company logo
Спикер:
Тема:
Жижелев Арсений Александрович
Наблюдение за игровым миром Аллодов
(Play + Scala + SynapseGrid + Slick + PostgreSQL)
Наблюдение за игровым миром Аллодов
Play + Scala + Slick + PostgreSQL
Игровой мир
4
Сущности игрового
мира
• Аватары (аккаунты, души,
переродки)
• Ресурсы
– Типы предметов
– Руны
– Деньги и альт.валюты
– Мобы (mobile object)
– Нейтральные NPC (non player
character)
• Предметы
• Квесты
• Корабли
• Гильдии
• Профессии
• Служебные
– Почта
– Сессии (вход/выход в
игру)
– Планирование событий
– Контент-ключи
5
События игрового
мира
• Уровень
• Опыт
• Навыки
• Достижения
Изменение свойств
(Прокачка персонажа)
• запуск сервера
• вход/выход в игру
Системные
6
• Создание аватара
• Убийство мобов (PvE), других
персонажей (PvP)
• Слияние, самоуничтожение
• Крафтинг – создание из частей
Создание/уничтожение
объектов
• Получение «лута» (добычи)
• Покупка/продажа предметов
Передача ценностей
(бухгалтерия)
Ценность событий
для управления игрой
Оценка востребованности игровых элементов
• Использование предметов
• Взятие и завершение квестов
• Участие в сражениях
Восстановление ошибочно удалённых предметов
• События покупки/продажи/перемещения предметов
Обнаружение необычных явлений
(программные ошибки или мошенничество)
• Контроль темпов роста
• Контроль последовательности квестов
7
Задачи
инструментария
8
• текущее состояние мира
• расследование проблем в
(далёком или не очень) прошлом
Наблюдение
• ассортимент магазина
• управление сезонами
• включение/выключение элементов
игры
Администрирование игры
• индивидуальные воздействия
• акции
• массовые компенсации
Вмешательство в игру
• статистика и графики
• обнаружение читерства и
программных ошибок
Аналитика
Архитектура
9
Архитектура
инструментария
10
smart-store
item DB
legacy
DBDB
Игровой
сервер Очередь
ETL
онтология
UI
elastic
Применения
онтологии
События
Команды
БД
Интерфейс
• Модельпредметной
области
• События
• Команды(формирование и
исполнение)
• ПредставлениевБД(схема,
запросы)
• Представлениев
интерфейсе(списокполей,
типы)+(ширина,формат)
Модель
12
Пример онтологии
object Avatar extends EntityMeta[Avatar] {
val avatarId = property("avatarId", int,
"Идентификатор аватара")
val Name = property("Name", Text, "Имя аватара")
val GameClass = property("GameClass", Text,
"Игровой класс аватара")
val Level = property("Level", Domains.Level,
"Уровень аватара в игре")
…
} http://habrahabr.ru/post/229035/
Строго типизированное представление неполных данных
14
Event sourcing
15
События vs.
история
создание
…
изменениеуровня
получениеденег
…
получениеспособностей
переименование
…
переноснадругойшард
перенос с другого шарда
…
изменение уровня
Аватар: Илина
Счёт: 1234 gold
Уровень: 60
Аватар: Галеона
Счёт: 123 gold
Уровень: 35
Аватар: Галеона
Счёт: 12 gold
Уровень: 5
16
Event sourcing (1)
• Полныйпотоксобытий
– Созданиеаватара(висходномсостоянии)
– Изменениеименина«Вася»
– Повышениеуровня+1
– Получениеденег(+100)
– Покупкапредмета
• Проигрываяцепочкусобытий,получаем
– состояниеналюбоймоментвпрошлом
– текущеесостояние
– историюизменениялюбыхсвойств
17
Event sourcing (2)
• Атрибуты имеют разную частоту изменений
• События в значительнойстепени – независимы
18
name
level
Пропуски в потоке
событий
• Причины
– существующие данные
– отключения, которые не заметили
– ошибки
• Решение – события компенсации
– сравниваем восстановленные значения свойств с текущими
– формируем события, изменяющие свойства до текущих
значений
– (нет необходимости хранить снимки)
19
Агрегирование
• Исторические данные не требуют высокой
детальности
– создаём снимок сущности на требуемый момент,
– удаляем «лишние» события,
– формируем события компенсации
• Для статистики и графиков формируем
таблицы с агрегированными данными (OLAP)
20
Time machine
• Построение версии сущности на любой момент
времени
• Хранение snapshot’ов в версионных таблицах
[start, finish)
• Можно создавать несколько версионных таблиц
– разные наборы атрибутов
– разная разреженность по времени
• Можно использовать при прямой работе с БД
через SQL
21
Стек технологий
22
• Play
• Scala
• SynapseGrid
• Slick
• PostgreSQL
Play 2.x
• полныйсовременныйстеквеб-технологий наJVM
– (netty,akka,comet,REST,JSON/XMLhandling,non-blockingI/O,
WebSockets,assetcompilation(CoffeeScript,less),ORM,NoSQL)
• компиляция,включаяшаблоны
• шаблонизаторtwirl (с кросс-трансляциейв Scala)
• короткий цикл разработки (refreshto recompile)
(компиляцияинкрементная)
23
Scala = Java++
javaбез‘;’
вывод‘;’
выводтипов
caseclass’ы
удобныеколлекции
Java++
generic’иско-иконтра-
вариантностью
вычислениянатипах
implicit’ы(typeclasses)
cakepattern(альтернатива
dependencyinjection)
HList‘ы
24
assert((1::“a”::HNil
).head + 1 === 2)
SynapseGrid
• Запуск/остановка зависимых процессов
• Настраиваемая прокачка данных
25
Зависимости
между процессами
26
Slick
• соответствие семантики
• конструирование
запроса
непосредственно в коде
• расширяемость
• fallback to plain SQL
27
Slick+Postgres
• пользовательские типы
• иерархия наследования
• запросы с join’ами
• пример: удаление снимков согласно политике
(код)
28
Postgres:
наследование
29
object
row_id:int4
event
time:timestamp
avatar_ref
avatar_id:long
event_avatar
event_avatar_faction
event_faction
faction_id:int4
RetentionPolicy
30
val defaultRetentionPolicy = First within Ever union
(Last within Ever) union
(All within IntervalFromNow(Day)) union
Comprehension(First, IntervalFromNow(Month)) union
Comprehension(First, IntervalFromNow(Year, 1))
def snapshotsToRemove[T](ids,snapshots,retentionPolicy) = {
def retentionById(id: Column[Avatar.Id.RType]) =
convertRetentionToQuery(snapshots.
filter(_.id === id))(_.snapshotTime)(retentionPolicy).
map(_.snapshotId)
val retainIds = ids.flatMap(id => retentionById(id))
snapshots.filter( r => !r.id.in(retainIds))
}
Ключевые
элементы
Онтология
• единая версия предметной области
• универсальный механизм, связывающий все слои приложения
Event sourcing
• первичная информация – поток событий
• вторичная – текущее состояние, история изменений, Time machine
Современные технологии
• Scala
• Play
• SynapseGrid
• Slick
32
33
вопросы?
Арсений Жижелев
Ст.программист, Студия Аллоды
a.zhizhelev@corp.mail.ru
СПАСИБО ЗА ВНИМАНИЕ!

More Related Content

Viewers also liked

The Rental Policies You Need to Know About
The Rental Policies You Need to Know AboutThe Rental Policies You Need to Know About
The Rental Policies You Need to Know About
UrbanBound
 
Social media 2.0 february edition
Social media 2.0 february editionSocial media 2.0 february edition
Social media 2.0 february edition
Boise Regional REALTORS
 
Institution
InstitutionInstitution
Institution
Abbey Cotterill
 
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
DataArt
 
Christmas eve presentatie uit Polen
Christmas eve presentatie uit PolenChristmas eve presentatie uit Polen
Christmas eve presentatie uit Polen
evertvangool
 
Makeinindia-by Rohan Marthak
Makeinindia-by Rohan MarthakMakeinindia-by Rohan Marthak
Makeinindia-by Rohan Marthak
ronnie890
 
signages and complete solution of advertise
signages and complete solution of advertise signages and complete solution of advertise
signages and complete solution of advertise
Satyendra Gupta
 
Hong Kong
Hong KongHong Kong
Hong Kong
DataArt
 
Estrategika nuevos productos proteccion
Estrategika nuevos productos proteccionEstrategika nuevos productos proteccion
Estrategika nuevos productos proteccion
JUAN CARLOS CALDERON
 
«Экстремальный менеджмент», Лидия Котлярова, Plarium
«Экстремальный менеджмент», Лидия Котлярова, Plarium«Экстремальный менеджмент», Лидия Котлярова, Plarium
«Экстремальный менеджмент», Лидия Котлярова, Plarium
DataArt
 
E-Guardian Plus Kit Brochure
E-Guardian Plus Kit BrochureE-Guardian Plus Kit Brochure
E-Guardian Plus Kit Brochure
Espar Climate Control Systems
 
World renown directors
World renown directorsWorld renown directors
World renown directors
Abbey Cotterill
 
Building Pennsylvania's First Detector Network Part 1
Building Pennsylvania's First Detector Network Part 1Building Pennsylvania's First Detector Network Part 1
Building Pennsylvania's First Detector Network Part 1
PlantHealthResourceCenter
 
Media: Ancillary photos
Media: Ancillary photosMedia: Ancillary photos
Media: Ancillary photos
Abbey Cotterill
 
sistema de gestión de contenidos
sistema de gestión de contenidossistema de gestión de contenidos
sistema de gestión de contenidos
Diego Rojas
 

Viewers also liked (15)

The Rental Policies You Need to Know About
The Rental Policies You Need to Know AboutThe Rental Policies You Need to Know About
The Rental Policies You Need to Know About
 
Social media 2.0 february edition
Social media 2.0 february editionSocial media 2.0 february edition
Social media 2.0 february edition
 
Institution
InstitutionInstitution
Institution
 
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
Николай Грачев (AllBiz) "Продукт и пользователь: дружба начинается с UX"
 
Christmas eve presentatie uit Polen
Christmas eve presentatie uit PolenChristmas eve presentatie uit Polen
Christmas eve presentatie uit Polen
 
Makeinindia-by Rohan Marthak
Makeinindia-by Rohan MarthakMakeinindia-by Rohan Marthak
Makeinindia-by Rohan Marthak
 
signages and complete solution of advertise
signages and complete solution of advertise signages and complete solution of advertise
signages and complete solution of advertise
 
Hong Kong
Hong KongHong Kong
Hong Kong
 
Estrategika nuevos productos proteccion
Estrategika nuevos productos proteccionEstrategika nuevos productos proteccion
Estrategika nuevos productos proteccion
 
«Экстремальный менеджмент», Лидия Котлярова, Plarium
«Экстремальный менеджмент», Лидия Котлярова, Plarium«Экстремальный менеджмент», Лидия Котлярова, Plarium
«Экстремальный менеджмент», Лидия Котлярова, Plarium
 
E-Guardian Plus Kit Brochure
E-Guardian Plus Kit BrochureE-Guardian Plus Kit Brochure
E-Guardian Plus Kit Brochure
 
World renown directors
World renown directorsWorld renown directors
World renown directors
 
Building Pennsylvania's First Detector Network Part 1
Building Pennsylvania's First Detector Network Part 1Building Pennsylvania's First Detector Network Part 1
Building Pennsylvania's First Detector Network Part 1
 
Media: Ancillary photos
Media: Ancillary photosMedia: Ancillary photos
Media: Ancillary photos
 
sistema de gestión de contenidos
sistema de gestión de contenidossistema de gestión de contenidos
sistema de gestión de contenidos
 

Similar to Арсений Жижелев «Наблюдение за игровым миром Аллодов (Play+Scala+Slick+PostgreSQL)»

CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest
 
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactiveзомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
Sociality Rocks!
 
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Yandex
 
Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...
Ontico
 
Vizor Interactive: Технологии успеха
Vizor Interactive: Технологии успехаVizor Interactive: Технологии успеха
Vizor Interactive: Технологии успеха
DevGAMM Conference
 
Архитектура мета игры Wargaming. Глобальная карта 2.0.
Архитектура мета игры Wargaming. Глобальная карта 2.0.Архитектура мета игры Wargaming. Глобальная карта 2.0.
Архитектура мета игры Wargaming. Глобальная карта 2.0.
Levon Avakyan
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
Yuriy Nasretdinov
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Badoo Development
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Ontico
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)
Ontico
 
Edition Based Redefinition . Обновление приложений на “лету”
Edition Based Redefinition. Обновление приложений на “лету”Edition Based Redefinition. Обновление приложений на “лету”
Edition Based Redefinition . Обновление приложений на “лету”
Andrey Akulov
 
Maksym Bezuglyi: Великий чек-лист планування виробництва гри
Maksym Bezuglyi: Великий чек-лист планування виробництва гриMaksym Bezuglyi: Великий чек-лист планування виробництва гри
Maksym Bezuglyi: Великий чек-лист планування виробництва гри
Lviv Startup Club
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
Alexandr Krasheninnikov
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
Yulia Kotova
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
Badoo Development
 
Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)
DevGAMM Conference
 
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Ontico
 
Масштабирование CinemaVR
Масштабирование CinemaVRМасштабирование CinemaVR
Масштабирование CinemaVR
Andrey Tatarinov
 

Similar to Арсений Жижелев «Наблюдение за игровым миром Аллодов (Play+Scala+Slick+PostgreSQL)» (20)

JavaFX 2.0 overview
JavaFX 2.0 overviewJavaFX 2.0 overview
JavaFX 2.0 overview
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
 
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactiveзомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
зомби ферма. как это сделано - Виктор и Андрей Кузьмины - Vizor interactive
 
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
 
Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...
 
Vizor Interactive: Технологии успеха
Vizor Interactive: Технологии успехаVizor Interactive: Технологии успеха
Vizor Interactive: Технологии успеха
 
Архитектура мета игры Wargaming. Глобальная карта 2.0.
Архитектура мета игры Wargaming. Глобальная карта 2.0.Архитектура мета игры Wargaming. Глобальная карта 2.0.
Архитектура мета игры Wargaming. Глобальная карта 2.0.
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)
 
Edition Based Redefinition . Обновление приложений на “лету”
Edition Based Redefinition. Обновление приложений на “лету”Edition Based Redefinition. Обновление приложений на “лету”
Edition Based Redefinition . Обновление приложений на “лету”
 
Maksym Bezuglyi: Великий чек-лист планування виробництва гри
Maksym Bezuglyi: Великий чек-лист планування виробництва гриMaksym Bezuglyi: Великий чек-лист планування виробництва гри
Maksym Bezuglyi: Великий чек-лист планування виробництва гри
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)
 
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)
 
Масштабирование CinemaVR
Масштабирование CinemaVRМасштабирование CinemaVR
Масштабирование CinemaVR
 

More from DataArt

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
DataArt
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
DataArt
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
DataArt
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
DataArt
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
DataArt
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
DataArt
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
DataArt
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DataArt
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
DataArt
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
DataArt
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
DataArt
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
DataArt
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
DataArt
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
DataArt
 
Selenoid
SelenoidSelenoid
Selenoid
DataArt
 
Selenide
SelenideSelenide
Selenide
DataArt
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
DataArt
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
DataArt
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
DataArt
 

More from DataArt (20)

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
 
Selenoid
SelenoidSelenoid
Selenoid
 
Selenide
SelenideSelenide
Selenide
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
 

Арсений Жижелев «Наблюдение за игровым миром Аллодов (Play+Scala+Slick+PostgreSQL)»

Editor's Notes

  1. Добавить картинки из игры (логотипы и т.п.)
  2. http://www.quora.com/What-are-the-pros-and-cons-of-the-Play-Framework-2-for-a-Java-developer компиляция JVM шаблонизатор (MVC?) основанный на Scala (проверка на этапе компиляции, expression-based) событийная модель вместо thread pool'а: асинхронность акка, масштабируемость, async IO (http://engineering.linkedin.com/play/play-framework-async-io-without-thread-pool-and-callback-hell) композиция future короткий цикл разработки - refresh in browser to recompile. современный стек (http://www.quora.com/What-are-the-pros-and-cons-of-the-Play-Framework-2-for-a-Java-developer) Сервлет-API уже безнадёжно устарел. MVC stack on top of Netty and Akka and has built-in support for most tasks you'd need in a modern web framework: REST, JSON/XML handling, non-blocking I/O, WebSockets, asset compilation (CoffeeScript, less), ORM, NoSQL support, and so on. нормальная обработка ошибок - просто ошибка в точке исходного кода.