#13 "Управление состоянием в Redux" Роман СальниковJSib
Один из трендов в разработке приложений на JavaScript - разделение состояния и отображения. В докладе речь пойдет о том, как мы применили для этих целей библиотеку Redux. Расскажу, больно ли ломать мозг новым подходом (спойлер: да), обязательно ли писать все на React (спойлер: нет), стало ли легче разрабатывать и тестировать (спойлер: вы не поверите).
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
Разработка Web-приложений на Angular JS — доклад Бориса Левицкого, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео с докладом от автора можно посмотреть по ссылке: http://youtu.be/oTXxrmIxo8Y
Презентация ответит на вопросы:
- что такое Angular?
- для чего он используется и что с ним можно делать?
- как работает Data-Binding?
- кастомные фильтры
- структура Angular приложения
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi и узнай первым о новых семинарах.
http://www.softengi.com
#13 "Управление состоянием в Redux" Роман СальниковJSib
Один из трендов в разработке приложений на JavaScript - разделение состояния и отображения. В докладе речь пойдет о том, как мы применили для этих целей библиотеку Redux. Расскажу, больно ли ломать мозг новым подходом (спойлер: да), обязательно ли писать все на React (спойлер: нет), стало ли легче разрабатывать и тестировать (спойлер: вы не поверите).
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
Разработка Web-приложений на Angular JS — доклад Бориса Левицкого, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео с докладом от автора можно посмотреть по ссылке: http://youtu.be/oTXxrmIxo8Y
Презентация ответит на вопросы:
- что такое Angular?
- для чего он используется и что с ним можно делать?
- как работает Data-Binding?
- кастомные фильтры
- структура Angular приложения
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi и узнай первым о новых семинарах.
http://www.softengi.com
Особенности разработки API / Всеволод Шмыров (Яндекс)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 6 июня, 10:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2468.html
Разработка API/Framework/встраиваемого контента сильно отличается от разработки обычного frontend-приложения. На примере нашего API Яндекс.Карт я расскажу, чем именно.
+ Какие задачи обычно решают разработчики API?
+ С каким проблемами сталкиваются?
+ Какие есть ограничения в разработке?
+ Чем еще должен заниматься разработчик API, кроме непосредственно разработки?
Пользователь точно оценит! Повышение производительности мобильных приложений ...Ontico
Расскажем о методиках создания производительных приложений, опираясь на собственный многолетний опыт проб и ошибок:
• использование инструментов отладки (работа с Hierarchy Viewer; поиск и устранение overdraw; профилирование методов; поиск утечек памяти);
• написание производительного кода;
• создание верстки, повышающей скорость работы приложений;
• создание требований к дизайну интерфейсов и API с оглядкой на производительность;
• использование аналитики для логирования и отладки багов.
Android-приложения Superjob:
• 3 приложения в Google Play для B2C и B2B-аудиторий;
• более 1 млн. пользователей;
• в числе лучших российских приложений по мнению Google Play.
Тестируй это / Виктор Русакович (GP Solutions)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 18:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2625.html
Как писать тесты?
Как запускать тесты?
Кто все сломал?
Все три вопроса рассмотрены в докладе. Также будет демо интеграции проекта, покрытого тестами, и cloud-based-сервиса по запуску этих тестов (github+travis).
Кроме того, расскажу об опыте по сокращению времени прогона тестов; о том, как добавить тесты в случае, если у вас уже есть большое приложение, но все еще без тестов.
Фреймворк Slot, Good Parts, Александр БирюковDevDay
Расскажу о ключевых особенностях продукта: о какой изоморфности идёт речь, как мы управляем состоянием SinglePage-приложения и какой профит для SEO извлекли, с примерами кода. Посмотрим как быстро начать свой проект на Slot.
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"Fwdays
Доклад посвящен замечательному JS-фреймворку — Riot.js (11k звезд на GitHub), который реализует идею Web Components в простом и компактном виде, пропагандируя принципы простоты и Native JavaScript.
Riot.js позволяет по-новому взглянуть на JS-фреймворки, которые в наше время стали увесистыми титанами с собственной экосистемой, знание которых совсем не означает владение JavaScript.
Мы поговорим об устройстве фреймворка, его отличиях, о библиотеках, разработанных сообществом, а также об архитектуре Riot.js приложений и лучших практиках.
Надеюсь, для кого-то мой доклад станет глотком свежего воздуха и популяризирует Riot.js фреймворк в украинском JS-комьюнити.
Особенности разработки API / Всеволод Шмыров (Яндекс)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 6 июня, 10:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2468.html
Разработка API/Framework/встраиваемого контента сильно отличается от разработки обычного frontend-приложения. На примере нашего API Яндекс.Карт я расскажу, чем именно.
+ Какие задачи обычно решают разработчики API?
+ С каким проблемами сталкиваются?
+ Какие есть ограничения в разработке?
+ Чем еще должен заниматься разработчик API, кроме непосредственно разработки?
Пользователь точно оценит! Повышение производительности мобильных приложений ...Ontico
Расскажем о методиках создания производительных приложений, опираясь на собственный многолетний опыт проб и ошибок:
• использование инструментов отладки (работа с Hierarchy Viewer; поиск и устранение overdraw; профилирование методов; поиск утечек памяти);
• написание производительного кода;
• создание верстки, повышающей скорость работы приложений;
• создание требований к дизайну интерфейсов и API с оглядкой на производительность;
• использование аналитики для логирования и отладки багов.
Android-приложения Superjob:
• 3 приложения в Google Play для B2C и B2B-аудиторий;
• более 1 млн. пользователей;
• в числе лучших российских приложений по мнению Google Play.
Тестируй это / Виктор Русакович (GP Solutions)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 18:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2625.html
Как писать тесты?
Как запускать тесты?
Кто все сломал?
Все три вопроса рассмотрены в докладе. Также будет демо интеграции проекта, покрытого тестами, и cloud-based-сервиса по запуску этих тестов (github+travis).
Кроме того, расскажу об опыте по сокращению времени прогона тестов; о том, как добавить тесты в случае, если у вас уже есть большое приложение, но все еще без тестов.
Фреймворк Slot, Good Parts, Александр БирюковDevDay
Расскажу о ключевых особенностях продукта: о какой изоморфности идёт речь, как мы управляем состоянием SinglePage-приложения и какой профит для SEO извлекли, с примерами кода. Посмотрим как быстро начать свой проект на Slot.
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"Fwdays
Доклад посвящен замечательному JS-фреймворку — Riot.js (11k звезд на GitHub), который реализует идею Web Components в простом и компактном виде, пропагандируя принципы простоты и Native JavaScript.
Riot.js позволяет по-новому взглянуть на JS-фреймворки, которые в наше время стали увесистыми титанами с собственной экосистемой, знание которых совсем не означает владение JavaScript.
Мы поговорим об устройстве фреймворка, его отличиях, о библиотеках, разработанных сообществом, а также об архитектуре Riot.js приложений и лучших практиках.
Надеюсь, для кого-то мой доклад станет глотком свежего воздуха и популяризирует Riot.js фреймворк в украинском JS-комьюнити.
Вопросы, возникающие при использовании MVC, и их решение при помощи VIPER.
1. Проблемы, решаемые VIPER-ом. История появления.
2. Структура VIPER-модуля
3. Сервисы
4. Data flow
5. Навигация
6. Вложенные модули
7. Data flow между модулями
8. Кодогенерация. Vipergen
Разработка WPF приложений в стиле ViewModel FirstDenis Tsvettsih
Презентация к докладу «Разработка WPF приложений в стиле ViewModel First» с одиннадцатой конференции dotnetconf (Челябинск, 31 октября 2015)
http://dotnetconf.ru/materialy/viewmodelfirst
Dnepr iOS Club #2
Speaker - Александр Колесник, middle iOS developer at WOXAPP
Тема: “MVVM vs Viper. Что и как выбирать?”
Тезисы:
- подробно разберем каждый из паттернов проектирования
- определим минусы и плюсы использования MVVM
- определим минусы и плюсы использования Viper
- проведем сравнение - определим как выбирать архитектуру для своего проекта.
Уровень: middle и выше.
MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
Из доклада вы узнаете о применении популярного паттерна MVVM для упрощения и ускорения процесса разработки desktop-приложений.
Будут рассмотрены общие проблемы этого паттерна и решения которые мы предлагаем в нашем кроссплатформенном MVVM фреймворке. Упор будет сделан на практические аспекты и техники в условиях использования платформы WinForms и контролов от DevExpress.
The Dining Man: how does Afisha Restaurants change the behavioral patterns of choice and payments in cafes and restaurants. Based on the real experience of Project Manager
7. ViewModel
• Не знает ничего про ViewController
• Не использует UIKit
• Отображает (?) состояние UI с помощью KVO-
совместимых свойств или RAC-сигналов
• Действия представлены в виде методов или RAC-
команд
• Легко тестируема (и должна тестироваться)
8. View
(ViewController)
• Декларативно привязывает состояние UI к
состоянию VM
• Обрабатывает чистую логику UI (вёрстка,
анимации, ориентирование)
• Может зависеть от нескольких ViewModel
20. Решение “В лоб”
UINavigationController
Sections
Controller
Sections 2 создаёт
ViewModel
Talks
ViewModel
1 действие
21. Решение “В лоб”
UINavigationController
Sections
Controller
Sections 2 создаёт
ViewModel
Talks
ViewModel
1 действие
3 сигнал
22. Решение “В лоб”
UINavigationController
Sections
Controller
Talks Controller
Sections 2 создаёт
ViewModel
Talks
ViewModel
1 действие
3 сигнал
4
создаёт и
связывает
23. Решение “В лоб”
UINavigationController
Sections
Controller
Talks Controller
5 push
Sections 2 создаёт
ViewModel
Talks
ViewModel
1 действие
3 сигнал
4
создаёт и
связывает
30. Роутер
• Имеет доступ к навигационным контроллерам (navigation
controller, tab controller, drawer controller, menu controller)
• Создаёт и конфигурирует экземпляры VM и контроллеров
• (сам или используя DI-контейнер)
• Осуществляет переходы между экранами
• Mockable
• Отлично работает в рамках MVVM и MVC
39. URL-based роутер
• Легко настраивается
• Упрощает поддержку URL-схем
• Упрощает переход от веб-приложений к нативным
• Логика навигации может “утекать” в VM/контроллер
• Сложности с передачей сложных объектов
• Подходит не для всех приложений
45. Warning: cell reuse
Cell
RAC(self.someIcon, hidden) = RACObserve(viewModel.someFlag).not;
/// A given key on an object should only have one active signal bound to
it at any given time. Binding more than one signal to the same property
is considered undefined behavior.
46. Warning: cell reuse
Cell
RAC(self.someIcon, hidden) =[RACObserve(viewModel.someFlag).not
takeUntil:self.rac_prepareForReuseSignal];
/// Solution: unsubscribe from RACObserve signal on cell reuse
47. Ощущения
(на данном этапе)
• Технология “на вырост”
• Сделает возможным написание тестов, но не
напишет их за вас
• Хинт: используйте Dependency Injection.
• Вам придётся полюбить ReactiveCocoa