jeeconf 2015
TRANSCRIPT
2
15+ лет коммерческой разработки основная часть проектов связана с JEE организатор IT-ивентов в Новосибирске
@ivanenok [email protected] Laximo
А чего мы тут собрались?
Решить кто такой архитекторОбсудить популярные ошибки Разобраться что такое “хайп” Обсудить цикличность развития Посмотреть на велосипеды Как правильно лажать в архитектуре Потроллить и Поговорить
3
Маленькое время ответа
Гибкие структуры данных
Уменьшение времени разработки
Пере-носимость
Масштабируемость решений
8
Чем “плохи” существующие хранилища?
дорогие транзакции
фиксированые структуры данных
проблемы с кластеризацией
11
Что такое FLAT FILES?
Одна из концепций хранения Типичный пример dBase || и другие Работа с файловой системой Гибкие структуры - protobuf, Thrift Простое портированиеМасштабируемость
12
Что выбрать для проекта?
13
зависит от задачи и нужного профиля
зависит от соотношения чтений/записей
универсального совета не существует
зависит от объемов данных в момент времени
{ "_id": "acc12345", "amount": 1000.0, "contact_info": { "name": "Peter", "address": { "country": "Russia", "city": "Novosibirsk" } }, "company_info": { "name": "Pont Inc", "address": { "country": "Russia", "city": "Novosibirsk" } }}
14
{ "_id": "acc12345", "amount": 1000.0, "contact_info": "1", "company_info": "1"}
15
{ "id": "1", "name": "Peter", "address": { "country": "1", "city": "1" } }
{ "id": "1", "name": "Pont Inc", "address": { "country": "1", "city": "1" } }
{ "id": "1", “country": "Russia"}
{ "id": "1", "city": "Novosibirsk"}
Components vs Objects Objects Components
метафоры реального мира абстракции для протоколов
акцент на представлении акцент на уменьшении связности
уровень дизайна кода уровень архитектуры
оверинжиниринг паттернами упрощение структуры
26
И как быть?Мода – это удовлетворение амбиций инженеров
Инженерия – это решение задач подходящими инструментами
Собирайте решение из того, что точно работает
Перед ответом на вопрос, “КАК делать?”, поймите, “ЧТО, нужно сделать”
Универсальной таблетки не существует!
31