Видео доклада https://youtu.be/1QtPtvi72SI
Человеческий мозг устроен сложно. Если с ним что-то не так, то для диагностики используют магнитно-резонансный томограф.
Большие одностраничные приложения тоже устроены сложно. Чтобы их починить или обвесить новым функционалом, требуется вникнуть в их устройство. Для этого нередко приходится засучивать рукава и с головой погружаться в самую глубь проекта. И немалая часть проблем связана именно с бизнес логикой и потоками данных. Но что если у нас будет возможность проникнуть в структуру данных, способ увидеть связи между ними и отслеживать то, как они влияют друг на друга? Такой способ, чтобы не требовалось вскрытия черепной коробки - все как с МРТ.
В докладе речь пойдет о собственных разработках в этой области.
7. Всё сложно
1. Пользователи то и дело что-то меняют
2. Разнообразные сценарии использования
3. У приложения множество состояний
4. Для описания требуются сотни сущностей
5. Тесные и обширные связи между сущностями и действиями
6. Разросшаяся кодовая база
7
10. Подробнее про инспектор шаблонов
1. Доклад Романа Дворнова (февраль 2015)
2. Слайды slideshare.net/basisjs/spa-45289195
3. Видео youtu.be/IUtbbN9aevU
4. Адаптация для backbone и react github.com/lahmatiy/component-inspector
10
17. Вычисление значения по набору–индексы
Примеры: сумма, количество элементов
Значение-результат знает про изменением набора, а именно...
...отслеживается insert/ removeэлементов в наборе
...и updateсамих элементов (не проиллюстрировано)
Видео
17
26. Подробнее про инструментирование
• Доклад Романа Дворнова (ноябрь 2015, FrontTalks в Минске)
• Слайды slideshare.net/basisjs/ss-52963081
• Видео youtu.be/watch?v=UPtDcAbg6EI, начиная с 2:41:12
26
28. Что нам даёт devinfo?
Исходный объект остается без изменений (WeakMap: объект → dev-данные)
Объединяет результаты инструментирования и ручные мета-данные
28
32. №1 Локации для фабрик
• фабрика обещает создать значение, когда придут данные
• Место создание результата
• Место создания фабрики
• Нужно второе
32
33. №2 Кэш (для фабрик)
• Значение создается один раз и кладется в кэш
• Если значение уже создано, переиспользуем его
• К значению привяжется локация первого обращения
• Для второго использования значения эта информация будет бесполезна
• Это нам не подходит
33
34. Решение –PROXY
• Значения по-прежнему считаются идентичными
• ...кроме момента, когда хотим узнать локацию создания
Добавляется только в dev-режиме
34