История о том, как развивалась поисковая выдача Aviasales.ru, о том, как устаревали некоторые решения и как они были заменены на новые.
Про то, как сделать современное frontend-приложение, какие клиентские фреймворки стоит использовать, а с какими лучше не связываться. Про современную архитектуру клиентских приложений и результатах ее применения в нашей команде. Про оптимизацию и минимизацию итогового решения.
7. Страдания и боль
Непредсказуемая инициализация
Самопальный AMD, несовместимый с AMD
Отсутствие тестов
Ошибка в логике приводит к ...
8. ... нарушению принципов
разработки ПО
Управление сложностью.
Наличие метафор.
Наличие хороших абстракций.
Почему бы не взять готовые jquery-плагины?
Можно взять, но для этого нам понадобятся:
23. Итог
Композитная архитектура – лучший способ
проектировать UI
Backbone + AMD – одна из лучших связок
для разработки UI
Слабая связность великолепна
Есть решение лучше
Notas do Editor
Когда все начиналось, приложение было небольшое и фичи прикручивались сбоку. (+ анимация появления блоков – развитие приложения)
Когда все начиналось, приложение было небольшое и фичи прикручивались сбоку. (+ анимация появления блоков – развитие приложения)
Когда все начиналось, приложение было небольшое и фичи прикручивались сбоку. (+ анимация появления блоков – развитие приложения)
Когда все начиналось, приложение было небольшое и фичи прикручивались сбоку. (+ анимация появления блоков – развитие приложения)
Когда все начиналось, приложение было небольшое и фичи прикручивались сбоку. (+ анимация появления блоков – развитие приложения)
Изобрели AMD во второй раз, за той разницей, что получили кастомное решение, которое пришлось поддерживать самим. Мы не Гугл и написать GCL не можем, поэтому пришлось искать замену архитектуре, которая уменьшила бы наши издержки на баги и поддержку. Плюс, упростила бы разработку.
Облако из каши Jquery-плагинов, которые появляются в рандомном порядке. В конце печать - “Отказать”
Облако из каши Jquery-плагинов, которые появляются в рандомном порядке. В конце печать - “Отказать”
Облако из каши Jquery-плагинов, которые появляются в рандомном порядке. В конце печать - “Отказать”
Облако из каши Jquery-плагинов, которые появляются в рандомном порядке. В конце печать - “Отказать”
Облако из каши Jquery-плагинов, которые появляются в рандомном порядке. В конце печать - “Отказать”
Мы начали искать решение, выделили некоторых возможных прентендентов. Выделили двух явных лидеров. Рассказ коллег из Островка про переписывание на GCL + громкое имя Google. Backbone – популярность, количество информации, книг и статей по теме.
Из-за SO и приведенных решений была выбрана именно связка Backbone + Require.js Дальше я расскажу, что означает каждый из пунктов.
1. сколько вы видете view на этой картинке? 2. сколько моделей?
Показать на сайте каждый из листьев дерева * Показать, как из интерфейса собирается дерево элементов интерфейса. От общего к частному.
Стояла задача сделать виджет для Викимапии, и мы использовали эту возможность для обкатки идеи. Очевидно, что мы стреляли из пушки по воробьям, но who cares?
Size matters! Низкая связность компонентов позволила безболезненно заменить тяжелые компоненты на более легкие.
Мы опробировали архитектуру, убедились в ее целесообразности и постепенно применяем ее для решения других проблем на сайте.