Dnepr iOS Club #2
Speaker - Александр Колесник, middle iOS developer at WOXAPP
Тема: “MVVM vs Viper. Что и как выбирать?”
Тезисы:
- подробно разберем каждый из паттернов проектирования
- определим минусы и плюсы использования MVVM
- определим минусы и плюсы использования Viper
- проведем сравнение - определим как выбирать архитектуру для своего проекта.
Уровень: middle и выше.
Краткий обзор фрэймворка AngularJS: что это такое и зачем все эти сложности. И сложности ли это вообще.
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://devowl.org/
Dnepr iOS Club #2
Speaker - Александр Колесник, middle iOS developer at WOXAPP
Тема: “MVVM vs Viper. Что и как выбирать?”
Тезисы:
- подробно разберем каждый из паттернов проектирования
- определим минусы и плюсы использования MVVM
- определим минусы и плюсы использования Viper
- проведем сравнение - определим как выбирать архитектуру для своего проекта.
Уровень: middle и выше.
Краткий обзор фрэймворка AngularJS: что это такое и зачем все эти сложности. И сложности ли это вообще.
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://devowl.org/
Very quick comparison between the most popular iOS application architectures (MVC, MVP, MVP) and introducing VIPER architecture with slight modifications of the canonical one.
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
- Что такое "чистая" архитектура приложений. Чем грозит "грязная" архитектура, чем от нее отличается "чистая" архитектура, и какой от нее профит.
- История появления VIPER.
- Идея VIPER. Как изменяется структура приложения при применении этого подхода.
- Опыт использования VIPER в Rambler&Co. Что мы изменили и добавили.
- Работа с VIPER на примере user story из реального приложения.
- Выводы: чем помогает VIPER и когда его использовать не стоит.
Реактивный фронтенд фреймворк для людей (Константин Комелин)DrupalYug
Речь пойдет о набирающем обороты фронтенд фреймворке Vue.js, который вошел в ядро Laravel и PageKit, и по популярности начинает догонять React и Angular.
Тезисы:
Куда движется веб разработка
Почему именно Vue.js
Краткое введение в Vue.js
Vue.js как альтернатива jQuery
Как интегрировать Vue.js и Drupal
О докладчике:
Константин Комелин - Drupal разработчик с 9-ти летним стажем, соорганизатор Drupal сообщества в Санкт-Петербурге, автор и контрибьютор нескольких проектов на Drupal.org.
------------------------------------------------------------------------------------------------------------------------------
[[ О КОНФЕРЕНЦИИ ]]
DrupalCamp Краснодар 2016
Время: 9-11 сентября 2016 г.
Место: Кубанский государственный университет. Россия, г. Краснодар, ул. Ставропольская, д. 149
Сайт конференции: http://2016.drupalyug.ru
Сайт Южного Drupal-сообщества: http://drupalyug.ru
------------------------------------------------------------------------------------------------------------------------------
[[ ОРГАНИЗАТОРЫ ]]
* Кубанский государственный университет - https://www.kubsu.ru
* Агентство "SelfinPro" - http://selfin.pro
* Компания "ИнитЛаб" - https://initlab.ru
* и Команда поддержки - http://2016.drupalyug.ru/community/organizers
------------------------------------------------------------------------------------------------------------------------------
[[ СПОНСОРЫ ]]
__Золотой спонсор__
*** PAYANYWAY ***
Прием оплаты на сайте, интернет-эквайринг
Сайт: https://www.payanyway.ru
__Серебряные спонсоры__
* ГРУППА КОМПАНИЙ I20 - http://i20.biz
* EGEEK’S CONTENT - https://www.egeeks.co
__Бронзовые спонсоры__
* Z-Wolves Development
* Vakorin
* ООО "РаДон"
* Компания Портал-Юг
* Веб-студия Voodoo
* Toptal
Подробнее о спонсорах на сайте http://2016.drupalyug.ru/sponsors
В презентации на примере конкретного веб-приложения освещается тема автоматизированного тестирования и важность таких тестов в контексте Continuous Integration/Delivery. Рассмотрены азы работы с Selenium WebDriver'ом, область применения этого инструмента и простые примеры использования.
Презентация подготовлена по материалам прошедшего 19.11.2013 витебского митапа (http://meetup.gorodvitebsk.by).
Основные моменты третьей версии популярного фреймворка. Responsive-верстка, контролы и компоненты
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://meetup.gorodvitebsk.by/
Вопросы, возникающие при использовании MVC, и их решение при помощи VIPER.
1. Проблемы, решаемые VIPER-ом. История появления.
2. Структура VIPER-модуля
3. Сервисы
4. Data flow
5. Навигация
6. Вложенные модули
7. Data flow между модулями
8. Кодогенерация. Vipergen
Very quick comparison between the most popular iOS application architectures (MVC, MVP, MVP) and introducing VIPER architecture with slight modifications of the canonical one.
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
- Что такое "чистая" архитектура приложений. Чем грозит "грязная" архитектура, чем от нее отличается "чистая" архитектура, и какой от нее профит.
- История появления VIPER.
- Идея VIPER. Как изменяется структура приложения при применении этого подхода.
- Опыт использования VIPER в Rambler&Co. Что мы изменили и добавили.
- Работа с VIPER на примере user story из реального приложения.
- Выводы: чем помогает VIPER и когда его использовать не стоит.
Реактивный фронтенд фреймворк для людей (Константин Комелин)DrupalYug
Речь пойдет о набирающем обороты фронтенд фреймворке Vue.js, который вошел в ядро Laravel и PageKit, и по популярности начинает догонять React и Angular.
Тезисы:
Куда движется веб разработка
Почему именно Vue.js
Краткое введение в Vue.js
Vue.js как альтернатива jQuery
Как интегрировать Vue.js и Drupal
О докладчике:
Константин Комелин - Drupal разработчик с 9-ти летним стажем, соорганизатор Drupal сообщества в Санкт-Петербурге, автор и контрибьютор нескольких проектов на Drupal.org.
------------------------------------------------------------------------------------------------------------------------------
[[ О КОНФЕРЕНЦИИ ]]
DrupalCamp Краснодар 2016
Время: 9-11 сентября 2016 г.
Место: Кубанский государственный университет. Россия, г. Краснодар, ул. Ставропольская, д. 149
Сайт конференции: http://2016.drupalyug.ru
Сайт Южного Drupal-сообщества: http://drupalyug.ru
------------------------------------------------------------------------------------------------------------------------------
[[ ОРГАНИЗАТОРЫ ]]
* Кубанский государственный университет - https://www.kubsu.ru
* Агентство "SelfinPro" - http://selfin.pro
* Компания "ИнитЛаб" - https://initlab.ru
* и Команда поддержки - http://2016.drupalyug.ru/community/organizers
------------------------------------------------------------------------------------------------------------------------------
[[ СПОНСОРЫ ]]
__Золотой спонсор__
*** PAYANYWAY ***
Прием оплаты на сайте, интернет-эквайринг
Сайт: https://www.payanyway.ru
__Серебряные спонсоры__
* ГРУППА КОМПАНИЙ I20 - http://i20.biz
* EGEEK’S CONTENT - https://www.egeeks.co
__Бронзовые спонсоры__
* Z-Wolves Development
* Vakorin
* ООО "РаДон"
* Компания Портал-Юг
* Веб-студия Voodoo
* Toptal
Подробнее о спонсорах на сайте http://2016.drupalyug.ru/sponsors
В презентации на примере конкретного веб-приложения освещается тема автоматизированного тестирования и важность таких тестов в контексте Continuous Integration/Delivery. Рассмотрены азы работы с Selenium WebDriver'ом, область применения этого инструмента и простые примеры использования.
Презентация подготовлена по материалам прошедшего 19.11.2013 витебского митапа (http://meetup.gorodvitebsk.by).
Основные моменты третьей версии популярного фреймворка. Responsive-верстка, контролы и компоненты
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://meetup.gorodvitebsk.by/
Вопросы, возникающие при использовании MVC, и их решение при помощи VIPER.
1. Проблемы, решаемые VIPER-ом. История появления.
2. Структура VIPER-модуля
3. Сервисы
4. Data flow
5. Навигация
6. Вложенные модули
7. Data flow между модулями
8. Кодогенерация. Vipergen
Kingston University AR Drone game-final report.pdfAnne David
A game developed as part of the digital media specialist module at Kingston University.
For any suggestions or job opportunities, please get in touch with me at: annedavid89@gmail.com
website: annedaavid89.wix.com/profile
Сегодня многие фреймворки, такие как Prism или Autofac, позволяют разработчику организовать модульную структуру приложения. При этом часто бывает непонятно, для чего ещё нужны модули, кроме как для пресловутой "красоты архитектуры".
В рамках доклада я расскажу о том, какие существуют подходы к организации модульной структуры, в каких фреймворках они реализованы и для решения каких задач дает преимущество каждый подход.
Видео с доклада: http://getdev.net/Event/asp-net-mvc-4
Доклад об ASP.NET MVC, откуда и зачем он появился, какие задачи решает, какой подход к разработке исповедует. Этот доклад больше пригодится тем, кто хочет углубить и структурировать свои знания об ASP.NET MVC
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
Материалы со встречи: http://getdev.net/Event/xaf-reuse
Задумывались ли вы когда-нибудь, что с переходом от SQL к DataSet, а затем и к ORM типа Entity Framework развитие технологий для доступа и управления данными приостановилось? Что еще нового можно придумать к уже привычному оперированию записями таблиц БД как объектами CRL и при этом поднять удобство разработчика на следующий уровень? На этот и другие вопросы попробует дать ответ доклад о технологии Domain Components (часть DevExpress eXpressApp Framework), которая облегчает создание повторно используемых бизнес моделей за счет легкого комбинирования путем использования интерфейсов вместо классов (это позволяет вам эмулировать "множественное наследование" в C# и VB.NET), а также свободы от особенностей конкретной ORM.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
4. • Минималистичная :)
• Слишком легко прийти не туда
• Нет основного класса Application
• Нет вложенных иерархий вью
• Нет организации layouts (header/footer/sidebar/content etc)
• Метод render не делает ничего по умолчанию
• Управление памятью
МИНУСЫ
6. • Составная библиотека для упрощения разработки
крупномасштабных приложений
• Представляет набор общих паттернов проектирования и
реализации
• Сокращает объем стандартного кода благодаря типам
вью
• Содержит вложенные вью
• Управляет памятью
• Объединяет событийную архитектуру и агрегатор
событий
10. MARIONETTE VIEW MAGIC
• Рендеринг есть и привязан к изменениям модели
• Управление шаблоном
• Содержит UI object
• Обеспечивает метод .close()
• Расширяемые
13. Marionette.ItemView
• Вью, который рендерится на основании данных модели
• атрибут “model”
• атрибут “template”
• рендерится автоматически
• modelEvents – методы вью вызываются на событиях
модели
14. UI OBJECT
UI объект создает кэшированные атрибуты, которые указывают
на объекты, выбранные jQuery
15. Marionette.CollectionView
• Вью рендерится на основании данных из Collection
• Автоматически перерендерится на событиях add/
remove/reset/etc
• Атрибут childView, который автоматически
инстанциируется и свяжется с model
26. MESSAGING BUS
•Event события уровня приложения
•Commands исполнение команд
•Request/Response запрос определенных
значений/состояний
27. EVENT AGGREGATOR
• pub/sub
• trigger/bind
• Оповещение о событии разных частей приложения
(“user:logged-in”)
• События уровня приложения близки к глобальным
вызовам функций
• Различные типы событий, пространства имен
определяют семантику
29. COMMANDS
Применяются для обеспечения функциональности,
которая обрабатывается в одной точке, но
возникает в разных точках
• Подписаться на исполнение команды - один раз
• Пример: сохранение
• cmd-s
• Clicking a toolbar button
• Choosing File => Save from the menubar
31. REQUEST / RESPONSE
• Применяется, когда нам нужно запросить информацию
от другой части приложения
• Для данных уровня приложения (например, состояние
корзины пользователя)
• Отличие от Events - намерение. Событие возникает как
есть, а Request запрашивает специфичную информацию
• Исполняет запрос один подписчик
• Легко злоупотребить, как и в случае с другими
глобальными объектами
32. REQUEST / RESPONSE
// Set up an object to reply to a request. In this case,
// whether or not its visible.
myObject.reply('visible', this.isVisible);
// Get whether it's visible or not.
var isViewVisible = myObject.request('visible');
33. Backbone.Radio.channel
// Get a reference to the channel named 'user'
var userChannel = Backbone.Radio.channel('user');
userChannel.on('some:event', function() {
console.log('An event has happened!');
});
userChannel.reply('some:request', 'food is good');
userChannel.trigger('some:event');
Объединение Backbone.Events and Radio.Requests
35. УправлениеViews:
• Дочерние views - Backbone.BabySitter
• Marionette.Region. Содержит html элемент и умеет в него вставлять содержимое других view
• Marionette.RegionManager
• Marionette.TemplateCache
Marionette.Application
Marionette.AppRouter
Шина сообщений:
• Application.vent - экземпляр Backbone.Wreqr.EventAggregator. pub/sub.
• Application.commands - экземпляр Backbone.Wreqr.Commands. Подписаться на
исполнение команды - 1 раз
• Application.reqres - экземпляр Backbone.Wreqr.RequestResponse. Исполняет запрос
только один подписчик