SlideShare a Scribd company logo
1 of 43
Download to read offline
МРТ для данных
Specs, drafts and ngrok-n-scroll
1
Данные Много данных
2
Работаю в Avito
3
Работаю в Avito
Делаем SPA
4
Профессиональные инструменты
5
twitter.com/JavaScriptDaily/status/718471086246072320
6
Всё сложно
1. Пользователи то и дело что-то меняют
2. Разнообразные сценарии использования
3. У приложения множество состояний
4. Для описания требуются сотни сущностей
5. Тесные и обширные связи между сущностями и действиями
6. Разросшаяся кодовая база
7
В медицине работает МРТ-диагностика
8
Диагностика шаблонов
Видео
9
Подробнее про инспектор шаблонов
1. Доклад Романа Дворнова (февраль 2015)
2. Слайды slideshare.net/basisjs/spa-45289195
3. Видео youtu.be/IUtbbN9aevU
4. Адаптация для backbone и react github.com/lahmatiy/component-inspector
10
Локализация.МРТ для словарей
Видео
11
Погружение
в технические детали
12
13
Трансформация значений-скаляров
В результате создается такой же реактивный скаляр:
будет изменяется при изменении породивших его значений
14
Трансформация наборов
Видео
15
Трансформация нескольких наборов в новый
набор
Видео
16
Вычисление значения по набору–индексы
Примеры: сумма, количество элементов
Значение-результат знает про изменением набора, а именно...
...отслеживается insert/ removeэлементов в наборе
...и updateсамих элементов (не проиллюстрировано)
Видео
17
18
Пример
Активировать кнопку для добавления на площадки и/или в XML выгрузки
19
Пример
Активировать кнопку для добавления на площадки и/или в XML выгрузки
Два набора → filter selected → count → число → true/false
20
Пример (продолжение)
Два набора → filter selected → count → число → true/false
21
Смотрим на результат
Почему сейчас disabled: trueили disabled: false?
22
Инспектор данных
Видео
Видео 2
Картотека
23
В чём же магия?
24
Инструментирование
github.com/restrry/babel-plugin-source-wrapper
25
Подробнее про инструментирование
• Доклад Романа Дворнова (ноябрь 2015, FrontTalks в Минске)
• Слайды slideshare.net/basisjs/ss-52963081
• Видео youtu.be/watch?v=UPtDcAbg6EI, начиная с 2:41:12
26
Интересует не только локация
Добавляем мета-данные вручную
27
Что нам даёт devinfo?
Исходный объект остается без изменений (WeakMap: объект → dev-данные)
Объединяет результаты инструментирования и ручные мета-данные
28
Распаковка devinfo –строим дерево
29
Распаковка devinfo –строим дерево
30
Сложности
31
№1 Локации для фабрик
• фабрика обещает создать значение, когда придут данные
• Место создание результата
• Место создания фабрики
• Нужно второе
32
№2 Кэш (для фабрик)
• Значение создается один раз и кладется в кэш
• Если значение уже создано, переиспользуем его
• К значению привяжется локация первого обращения
• Для второго использования значения эта информация будет бесполезна
• Это нам не подходит
33
Решение –PROXY
• Значения по-прежнему считаются идентичными
• ...кроме момента, когда хотим узнать локацию создания
Добавляется только в dev-режиме
34
Итоги
35
Есть ли жизнь без basis.js?
36
Главное – идея
• Подход не завязан на фреймворк
• Но
• Требуется глубокая интеграция
• Специфика там, где происходит преобразование данных
37
Точки трансформации данных
38
Точки трансформации данных
39
Точки трансформации данных
40
Точки трансформации данных
41
Сложно, но можно
42
Вопросы
Настя Горячева, почта agoryacheva@avito.ru, твиттер @tyanasgo
43

More Related Content

Viewers also liked

МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
хирургическое лечение при нейромышечном сколиозе
хирургическое  лечение   при   нейромышечном сколиозехирургическое  лечение   при   нейромышечном сколиозе
хирургическое лечение при нейромышечном сколиозеrivz-a
 
КТ и МРТ в нейрорадиологии
КТ и МРТ в нейрорадиологииКТ и МРТ в нейрорадиологии
КТ и МРТ в нейрорадиологииtomograph_dp_ua
 
Актуальные вопросы МР диагностики при болях в пояснице
Актуальные вопросы МР диагностики при болях в поясницеАктуальные вопросы МР диагностики при болях в пояснице
Актуальные вопросы МР диагностики при болях в поясницеtomograph_dp_ua
 
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периоде
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периодеАбишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периоде
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периодеPavel Fedotov
 
Возможности МР исследований в гинекологической практике
Возможности МР исследований в гинекологической практикеВозможности МР исследований в гинекологической практике
Возможности МР исследований в гинекологической практикеtomograph_dp_ua
 
Почки, КТ-диагностика
Почки, КТ-диагностикаПочки, КТ-диагностика
Почки, КТ-диагностикаmedumed
 
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...Основные физические принципы магнитно-резонансной томографии глазами врача-ра...
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...tomograph_dp_ua
 
Требования к описанию клинического случая
Требования к описанию клинического случаяТребования к описанию клинического случая
Требования к описанию клинического случаяAlexander Budovsky
 
Варианты нормальной анатомии мозга на МР изображении
Варианты нормальной анатомии мозга на МР изображенииВарианты нормальной анатомии мозга на МР изображении
Варианты нормальной анатомии мозга на МР изображенииtomograph_dp_ua
 
Методы лучевой диагностики
Методы лучевой диагностикиМетоды лучевой диагностики
Методы лучевой диагностикиmedumed
 
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...andrii68
 
МРТ в системе методов нейровизуализации церебральной ангиоархитектоники
МРТ в системе методов нейровизуализации церебральной ангиоархитектоникиМРТ в системе методов нейровизуализации церебральной ангиоархитектоники
МРТ в системе методов нейровизуализации церебральной ангиоархитектоникиandrii68
 

Viewers also liked (14)

МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
хирургическое лечение при нейромышечном сколиозе
хирургическое  лечение   при   нейромышечном сколиозехирургическое  лечение   при   нейромышечном сколиозе
хирургическое лечение при нейромышечном сколиозе
 
КТ и МРТ в нейрорадиологии
КТ и МРТ в нейрорадиологииКТ и МРТ в нейрорадиологии
КТ и МРТ в нейрорадиологии
 
Актуальные вопросы МР диагностики при болях в пояснице
Актуальные вопросы МР диагностики при болях в поясницеАктуальные вопросы МР диагностики при болях в пояснице
Актуальные вопросы МР диагностики при болях в пояснице
 
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периоде
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периодеАбишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периоде
Абишев Б. — МРТ-диагностика заболеваний ЦНС в антенатальном периоде
 
CHECK-UP (ПАТЕРО-НСК)
CHECK-UP (ПАТЕРО-НСК)CHECK-UP (ПАТЕРО-НСК)
CHECK-UP (ПАТЕРО-НСК)
 
Возможности МР исследований в гинекологической практике
Возможности МР исследований в гинекологической практикеВозможности МР исследований в гинекологической практике
Возможности МР исследований в гинекологической практике
 
Почки, КТ-диагностика
Почки, КТ-диагностикаПочки, КТ-диагностика
Почки, КТ-диагностика
 
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...Основные физические принципы магнитно-резонансной томографии глазами врача-ра...
Основные физические принципы магнитно-резонансной томографии глазами врача-ра...
 
Требования к описанию клинического случая
Требования к описанию клинического случаяТребования к описанию клинического случая
Требования к описанию клинического случая
 
Варианты нормальной анатомии мозга на МР изображении
Варианты нормальной анатомии мозга на МР изображенииВарианты нормальной анатомии мозга на МР изображении
Варианты нормальной анатомии мозга на МР изображении
 
Методы лучевой диагностики
Методы лучевой диагностикиМетоды лучевой диагностики
Методы лучевой диагностики
 
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...
Прикладная ангиоархитектоника в интерпретации различных методик нейровизуализ...
 
МРТ в системе методов нейровизуализации церебральной ангиоархитектоники
МРТ в системе методов нейровизуализации церебральной ангиоархитектоникиМРТ в системе методов нейровизуализации церебральной ангиоархитектоники
МРТ в системе методов нейровизуализации церебральной ангиоархитектоники
 

Similar to МРТ для данных, Avito SPA meetup #2

МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)Ontico
 
Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"OdessaJS Conf
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node jsAlex Tumanoff
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыYuri Zhloba
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.IT Share
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleAlexey Diyan
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Cisco Russia
 
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисами
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисамиДмитрий Прокофьев: Эволюция системы синхронизации данных между сервисами
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисамиit-people
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...GoSharp
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontendDenis Kolesnikov
 
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Ontico
 
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps_Fest
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Yandex
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended versionIvan Krylov
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
Использование различных СУБД в высоконагруженных проектах
Использование различных СУБД в высоконагруженных проектахИспользование различных СУБД в высоконагруженных проектах
Использование различных СУБД в высоконагруженных проектахMedia Gorod
 

Similar to МРТ для данных, Avito SPA meetup #2 (20)

МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)
 
Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"Nikita Galkin "5 production Node.js stories"
Nikita Galkin "5 production Node.js stories"
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart people
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
 
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисами
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисамиДмитрий Прокофьев: Эволюция системы синхронизации данных между сервисами
Дмитрий Прокофьев: Эволюция системы синхронизации данных между сервисами
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
React.js – intro
React.js – introReact.js – intro
React.js – intro
 
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
 
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
Использование различных СУБД в высоконагруженных проектах
Использование различных СУБД в высоконагруженных проектахИспользование различных СУБД в высоконагруженных проектах
Использование различных СУБД в высоконагруженных проектах
 

МРТ для данных, Avito SPA meetup #2