Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — проблемы и решения.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
Примеры решения типичных задач за рамками ядра Yii2Paul Klimov
Рассмотрим сравнительно сложные, и в то же время, часто возникающие, задачи, для которых ядро Yii не дает готового решения. Посмотрим как из отдельных моделей ActiveRecord собирать единые сущности, и как разбивать большие модели на составляющие. Разберем как правильно сохранять файлы и как сэкономить на обработчиках событий и поведениях
- Интернационализация сущностей в базе данных;
- Обработка “ролей” в реляционных базах данных;
- Работа с файлами;
- Вложенные модели;
- Trait вместо Behavior.
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
Курс "Промышленное программирование на Java". Набор лекций 1. "Сборка и компоновка приложения".
Сборка проекта. Apache Maven. Компоновка и верхнеуровневый дизайн приложения. Depencency Injection. Spring Framework. Spring Boot. Обзор популярных утилитарных библиотек. Логгинг, slf4j, log4j.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
Продвинутое использование ActiveRecord в Yii2Paul Klimov
Запись лекции "Продвинутое использование ActiveRecord в Yii2" от 24.09.2016, проходившей в Киеве в "Projector"
http://prjctr.com.ua/events/yii2-conference.html
Примеры решения типичных задач за рамками ядра Yii2Paul Klimov
Рассмотрим сравнительно сложные, и в то же время, часто возникающие, задачи, для которых ядро Yii не дает готового решения. Посмотрим как из отдельных моделей ActiveRecord собирать единые сущности, и как разбивать большие модели на составляющие. Разберем как правильно сохранять файлы и как сэкономить на обработчиках событий и поведениях
- Интернационализация сущностей в базе данных;
- Обработка “ролей” в реляционных базах данных;
- Работа с файлами;
- Вложенные модели;
- Trait вместо Behavior.
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
Курс "Промышленное программирование на Java". Набор лекций 1. "Сборка и компоновка приложения".
Сборка проекта. Apache Maven. Компоновка и верхнеуровневый дизайн приложения. Depencency Injection. Spring Framework. Spring Boot. Обзор популярных утилитарных библиотек. Логгинг, slf4j, log4j.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
Продвинутое использование ActiveRecord в Yii2Paul Klimov
Запись лекции "Продвинутое использование ActiveRecord в Yii2" от 24.09.2016, проходившей в Киеве в "Projector"
http://prjctr.com.ua/events/yii2-conference.html
Курс "Промышленное программирование на Java". Набор лекций 3. "Реляционные базы данных".
Модель предметной области. Подключение к РСУБД из Java.
Spring JDBC.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020OdessaJS Conf
How to develop web applications using Vue.js and implement best practices from the first day of development. Consider practical recommendations for using Vue.js, based on personal experience, thoughtful reading of documentation and analysis of best practices suggested by other developers. During the talk, you will learn what you can implement today in your development practice to make your web applications on Vue.js more productive and the development process more efficient.
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2496.html
В своем выступлении я расскажу про то, как библиотека бумажных книг в нашей компании переехала в онлайн и причем тут react native. Погружаясь в архитектуру этой технологии я постараюсь дать представление о том, что можно выжать из нее и где заканчиваются ее возможности. Разберем потоки в приложении, возможные проблемы и все это на таких простых примерах как ActivityIndicator.
Если у вас еще не дошли руки до react native, но всегда хотели разобраться - приходите обязательно! Из моего доклада вы сможете, как минимум, получить представление об этой технологии.
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
Page Objects, вероятно, самый известный на сегодня паттерн, используемый в автоматизации через UI. И самый простой, скажете вы? Не соглашусь, по моим наблюдением применение данного паттерна таит в себе подводные камни даже для наиболее типичных веб-приложений.
В данном докладе я познакомлю вас с тремя простыми и практичными видами PageObject архитектуры - Static, Void и Fluent, продемонстрирую использование кодом, сравню плюсы и минусы подходов. Также я расскажу о важных недостатках Yandex HTMLElements и о некоторых других неудачных подходах, которые повторяются из одного самодельного фреймворка в другой. Вы увидите на примерах, как простой код решает проблемы лучше, чем слишком умный. Примеры на языке Java/Selenide легко переносимы и на другие языки программирования (.NET, Python и другие).
Курс "Промышленное программирование на Java". Набор лекций 3. "Реляционные базы данных".
Модель предметной области. Подключение к РСУБД из Java.
Spring JDBC.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020OdessaJS Conf
How to develop web applications using Vue.js and implement best practices from the first day of development. Consider practical recommendations for using Vue.js, based on personal experience, thoughtful reading of documentation and analysis of best practices suggested by other developers. During the talk, you will learn what you can implement today in your development practice to make your web applications on Vue.js more productive and the development process more efficient.
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2496.html
В своем выступлении я расскажу про то, как библиотека бумажных книг в нашей компании переехала в онлайн и причем тут react native. Погружаясь в архитектуру этой технологии я постараюсь дать представление о том, что можно выжать из нее и где заканчиваются ее возможности. Разберем потоки в приложении, возможные проблемы и все это на таких простых примерах как ActivityIndicator.
Если у вас еще не дошли руки до react native, но всегда хотели разобраться - приходите обязательно! Из моего доклада вы сможете, как минимум, получить представление об этой технологии.
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
Page Objects, вероятно, самый известный на сегодня паттерн, используемый в автоматизации через UI. И самый простой, скажете вы? Не соглашусь, по моим наблюдением применение данного паттерна таит в себе подводные камни даже для наиболее типичных веб-приложений.
В данном докладе я познакомлю вас с тремя простыми и практичными видами PageObject архитектуры - Static, Void и Fluent, продемонстрирую использование кодом, сравню плюсы и минусы подходов. Также я расскажу о важных недостатках Yandex HTMLElements и о некоторых других неудачных подходах, которые повторяются из одного самодельного фреймворка в другой. Вы увидите на примерах, как простой код решает проблемы лучше, чем слишком умный. Примеры на языке Java/Selenide легко переносимы и на другие языки программирования (.NET, Python и другие).
From Premium PC to Freemium Mobile: a Hands-on Experience of Successful Move -- Igor Elovikov, Creative Director at Playrix (Winter Nights: Mobile Games Conference 2014 http://www.wnconf.com/).
Мобильный маркетинг: типы трафика, аналитика. Часть материалов тренинга 2-3 а...Eugene Lisovskiy
Эта преза - лишь небольшая часть материала по мобильному маркетингу, которую я представлю 2-3 апреля 2016 но моем первом и, вероятно, последнем в этом году воркшоп-тренинге по digital маркетингу для интернет-предпринимателей. Записаться на тренинг можно тут: http://www.lisovskiy.ru Количество мест ограничено: максимум 20. На 25 марта 11 уже продано. Торопитесь :)
These slides were used during the "Mobile Games Marketing" series of free webinars, held by Zenna Apps.
To take part in the next series of free webinars, dedicated to mobile games marketing and global user acquisition, contact ksenia@zennaapps.com.
http://zennaapps.com/
Данная презентация была представлена участникам вебинара "Грамотный User Acquisition. Каким он должен быть?". Вебинар 17.03.15 провели Инна Ушакова, CEO Zenna Apps и Владимир Barsag.
Отчет о мероприятии: http://zenna-apps.com/blog/user-acqisition-webinar-report
Web-программирование
Лекция #6. Введение в Django web-framework
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
Из чего состоит тема? Зачем нужна дочерняя тема? Что такое иерархия шаблонов? Какие есть тонкости подключения CSS & JS? Для чего не стоит использовать functions.php?
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСDev_Party
Роман Приходько, «Сбербанк-Технологии» — Платформа ЕФС — принципы построения и инструменты реализации.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
20% задач, которые дают 80% результата — главное при разработке коммерческих ...Dev_Party
Владимир Колесов — 20% задач, которые дают 80% результата — главное при разработке коммерческих сайтов.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...Dev_Party
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере системы управления очередью.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
2. План выступления
1. Вводная часть: фреймворки, MVC, ActiveRecord.
2. Имеющиеся проблемы и сложности,
порождаемые MVC-фреймворками.
3. Пути решения проблем. Демонстрационный
проект.
4. Плюсы и минусы предлагаемого подхода.
Примеры на PHP, Yii2
4. Фреймворк – это «каркас»,
программная инфраструктура,
позволяющая достаточно быстро
разработать программное решение.
Аналогия со строительством дома…
5. «Фреймворк – набор программных сущностей
(таких как классы, объекты и компоненты), которые
помогают строить реюзабельную архитектуру для
схожих приложений. Ожидается, что для создания
приложения разработчик расширит и настроит
фреймворк путем добавления своей логики».
Источник: «Принципы, которые формируют успешные
фреймворки» (перевод статьи Qiang Xue – создателя
фреймворка Yii) http://haru-atari.com/blog/4/philosophies-
that-shaped-successful-frameworks
8. «Active Record обеспечивает объектно-
ориентированный интерфейс для доступа и
манипулирования данными, хранящимися в базах
данных.
Класс Active Record соответствует таблице в базе
данных, объект Active Record соответствует строке
этой таблицы, а атрибут объекта Active Record
представляет собой значение отдельного столбца
строки».
Из документации Yii.
Active Record
9. id title content
1 Проект №1 Содержимое 1
2 Проект №2 Содержимое 2
Project
$id
$title
$content
find()
insert()
save()
update()
save()
10. 2. Имеющиеся проблемы и
сложности, порождаемые
MVC-фреймворками
• Нарушение принципа единичной
ответственности.
• Высокая связность.
11. Степень связанности— это мера, определяющая,
насколько жестко один элемент связан с другими
элементами, либо каким количеством данных о других
элементах он обладает. Объект с низкой степенью
связанности зависит от не очень большого числа других
объектов и имеет следующие свойства:
• Малое число зависимостей между классами
(подсистемами).
• Слабая зависимость одного класса (подсистемы) от
изменений в другом классе (подсистеме).
• Высокая степень повторного использования подсистем.
Крэг Ларман, «Применение UML 2.0 и шаблонов проектирования».
12. <?php
foreach ($model->find()->all() as $project) {
echo $project->title . '<br>';
}
?>
public function actionAll()
{
return $this->render('all', ['model' => new Project()]);
}
Controller
View
26. namespace appmodelsdomain;
use yiibaseModel;
class Project extends Model
{
use _Project;
use apputilityReplicate;
public function rules()
{
return [
[['title', 'content'], 'required'],
[['content'], 'string'],
[['id'], 'integer'],
[['title'], 'string', 'max' => 255]
];
}
modelsdomainProject.php
27. use appmodelsdomainProjectRepository;
class ProjectController extends Controller
{
private $repository;
public function __construct($id, $module,
ProjectRepository $repository, $config = [])
{
parent::__construct($id, $module, $config = []);
$this->repository = $repository;
}
…
}
ProjectController.php