Bootstrap 3. Адаптивная верстка для WordPressIgor Sazonov
Основы и примеры для понимания зачем нужен CSS-фреймворк Bootstrap. Доклад читался в рамках WordPress Meetup #3 в Санкт-Петербурге. Объясняется в чем суть верстки на Bootstrap, зачем он нужен для WordPress, подробно разбирается основы grid (сетки) на Bootstrap чтобы верстать адаптивный дизайн.
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Yandex
Как мы делали БЭМ. Почему некоторые места сделаны именно так. Что лежит в основе методологии. Что важно, а что можно менять по своему вкусу. Какие технологии мы используем и как они облегчают нам разработку.
Bootstrap 3. Адаптивная верстка для WordPressIgor Sazonov
Основы и примеры для понимания зачем нужен CSS-фреймворк Bootstrap. Доклад читался в рамках WordPress Meetup #3 в Санкт-Петербурге. Объясняется в чем суть верстки на Bootstrap, зачем он нужен для WordPress, подробно разбирается основы grid (сетки) на Bootstrap чтобы верстать адаптивный дизайн.
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Yandex
Как мы делали БЭМ. Почему некоторые места сделаны именно так. Что лежит в основе методологии. Что важно, а что можно менять по своему вкусу. Какие технологии мы используем и как они облегчают нам разработку.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
Презентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
"Добро пожаловать в SoundCloud!". Александр Ковалёв, SoundCloudYandex
Больше года назад мы запустили новую версию SoundCloud. На время доклада вы сможете стать её разработчиком и понять, какие решения формируют клиентскую архитектуру основных проектов SoundCloud (главного сайта, мобильной версии и других), какие инструменты используются для сборки проектов и измерения производительности, где и как применяются некоторые HTML5 API.
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014Dmytro Zharii
Демонстрация работы инструмента записи веб-элементов PageObject для Selenium WebDriver при помощи SWD Page Recorder. Демонстрация работы фреймворка SWD Starter Kit
Как сверстать сайт вручную «по-БЭМ» без классов "block__element__element", и на реальном примере со всеми его проблемами, а не меню-пункт_меню-ссылочка, как вы видели раньше. Без BEMJSON, BEM Tools, но с миксованием, модификаторами и разбором ошибок.
Я знаком с БЭМ давно, и все эти годы встречался с множеством заблуждений и стереотипов в использовании. В докладе постарался развеять популярные мифы и рассказал о своём трехлетнем опыте внедрения и использования БЭМ и связанным с этим наступании на грабли.
WebCamp: Front-end Developers Day
Одесса
4 июля 2015
#WebCampOdessa
#OIW2015
#WebCamp2015
Видео: https://youtu.be/hTmxbJF2Tts
Слайды: http://delka.github.io/talks/webcamp/2015/bem/
Анатолий Поляков - Drupal.ajax framework from a to zLEDC 2016
This document discusses Drupal's AJAX framework and how it can be used to build AJAX functionality into forms and other elements. It provides examples of using the framework to add AJAX features to forms, blocks, and links. Commands are used to manipulate the DOM and return HTML. Custom commands can also be added. The framework handles most business logic on the backend and allows building complex AJAX functionality with little required JavaScript code.
Караиванов Георгий - Drupal в проектах Электронного правительстваLEDC 2016
This document summarizes an e-government system implemented in Moldova using Drupal over several years. It began in 2007 as a tender project for tax reporting forms for the State Tax Service, and has since expanded to over 100 Drupal projects serving society, government, and business. The system now has over 22500 users submitting over 1400000 reports annually. It has required ongoing hardware upgrades, software optimizations, and support solutions to handle increased usage and new features. The goal is for citizens and businesses to be able to complete government procedures entirely online through interconnected platforms.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
Презентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
"Добро пожаловать в SoundCloud!". Александр Ковалёв, SoundCloudYandex
Больше года назад мы запустили новую версию SoundCloud. На время доклада вы сможете стать её разработчиком и понять, какие решения формируют клиентскую архитектуру основных проектов SoundCloud (главного сайта, мобильной версии и других), какие инструменты используются для сборки проектов и измерения производительности, где и как применяются некоторые HTML5 API.
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014Dmytro Zharii
Демонстрация работы инструмента записи веб-элементов PageObject для Selenium WebDriver при помощи SWD Page Recorder. Демонстрация работы фреймворка SWD Starter Kit
Как сверстать сайт вручную «по-БЭМ» без классов "block__element__element", и на реальном примере со всеми его проблемами, а не меню-пункт_меню-ссылочка, как вы видели раньше. Без BEMJSON, BEM Tools, но с миксованием, модификаторами и разбором ошибок.
Я знаком с БЭМ давно, и все эти годы встречался с множеством заблуждений и стереотипов в использовании. В докладе постарался развеять популярные мифы и рассказал о своём трехлетнем опыте внедрения и использования БЭМ и связанным с этим наступании на грабли.
WebCamp: Front-end Developers Day
Одесса
4 июля 2015
#WebCampOdessa
#OIW2015
#WebCamp2015
Видео: https://youtu.be/hTmxbJF2Tts
Слайды: http://delka.github.io/talks/webcamp/2015/bem/
Анатолий Поляков - Drupal.ajax framework from a to zLEDC 2016
This document discusses Drupal's AJAX framework and how it can be used to build AJAX functionality into forms and other elements. It provides examples of using the framework to add AJAX features to forms, blocks, and links. Commands are used to manipulate the DOM and return HTML. Custom commands can also be added. The framework handles most business logic on the backend and allows building complex AJAX functionality with little required JavaScript code.
Караиванов Георгий - Drupal в проектах Электронного правительстваLEDC 2016
This document summarizes an e-government system implemented in Moldova using Drupal over several years. It began in 2007 as a tender project for tax reporting forms for the State Tax Service, and has since expanded to over 100 Drupal projects serving society, government, and business. The system now has over 22500 users submitting over 1400000 reports annually. It has required ongoing hardware upgrades, software optimizations, and support solutions to handle increased usage and new features. The goal is for citizens and businesses to be able to complete government procedures entirely online through interconnected platforms.
Чеботарь Кирилл - Panels - пособие для начинающихLEDC 2016
This guide provides beginners with information on installing, enabling, and using Drupal's Panels module to create customizable layouts and pages. It covers creating panel pages and landing pages, editing node templates and variants, applying selection rules and context, adding content like page elements and widgets, choosing panel layouts, and styling panes and regions with panel styles. The goal is to showcase the main capabilities and components of the Panels module.
Березовский Андрей - Social AuthenticationLEDC 2016
This document summarizes social authentication options in Drupal. It discusses using external services, third-party libraries, or building solutions directly via social APIs. The author recommends the "one ring to rule them all" approach of a single module supporting multiple providers. Benefits include code reuse and consistency. The HybridAuth module is highlighted as providing a unified API, extensive configuration options, and developer features like tokens and rules integration for social identities management.
Тарас Круц - Tips On Getting Everything You Can Out of Drupal Form APILEDC 2016
Drupal Form API is one of the major subsystems in Drupal. For sure, every Drupal developer had dealt with forms. However, Form API hides surprises as well.
Author - Taras Kruts
Complexity level: intermediate
Follow Taras on Twitter - @ribel
Find out more about Drupal at http://blog.lemberg.co.uk/
Алексей Колосов - Типичные ошибки разработчиков на Drupal (версии 5,6,7)LEDC 2016
This document outlines common mistakes made by Drupal developers and provides recommendations to avoid them. It discusses incorrect file locations, using different versions of modules, editing code files improperly, including code in content, neglecting caching, including unused modules, and using simple solutions. The author is Alexey Kolosov, a system administrator at IT Patrol inc.
Иван Фесюк - ApacheSolr+DrupalCommerce связка для высоко нагруженых проектовLEDC 2016
The document discusses integrating Apache Solr with Drupal for e-commerce search capabilities. It covers topics like using the Search API and Facet API modules, configuring custom fields and facets in Solr, dealing with reindexing issues, and additional modules for features like autocomplete. The presentation was given by Ivan Fesyuk on integrating Drupal Commerce with Apache Solr at the Lviv Euro DrupalCamp 2013.
Денис Головняк - Продвинутый поиск с помощью Search APILEDC 2016
The document discusses the Search API module for Drupal. It provides an advanced search framework that abstracts from data sources and backend implementations. It allows creating searches that can index any data and integrate with Views. Extensions exist for backends like Solr, databases, and other search engines. Features include facets, autocomplete, spellcheck, and the ability to freely configure the indexing workflow. Recipes are provided for subtitle and location-based searches out of the box.
Артем Сыльчук - Хранение полей в Drupal. От CCK к FieldableEntityStorageContr...LEDC 2016
This document discusses Field Storage APIs in Drupal and strategies for optimizing field and entity storage. It covers:
1. The anatomy of the node_save() function and how fields are attached and saved.
2. Optimizing field storage performance by saving 1,000,000 nodes in 1 second through techniques like storage level caching and bulk updates.
3. The history of field and entity storage in Drupal from CCK to Drupal 7 and considerations for custom field storage implementations.
On 7-8.th of June Drupal Camp Kyiv takes plase in Kyiv. It is the biggest conference in Ukraine devoted to the CMS/CMF Drupal.
This year DEWEB Studio participates actively in this conference: we act as sponsors, reporters and help with the organization of the arrangement.
http://www.youtube.com/watch?v=amGNl5tjXbg
Занятие №6 в рамках Курсов программирования Ruby on Rails.
Группа курсов «ВКонтакте»: http://vk.com/ruby_school
Организатор — Агентство интернет-маркетинга Мэйк makeagency.ru. Курсы проводятся на базе Кузбасского государственного технического университета, кафедры «Информационные и автоматизированные производственные системы».
Презентация Алексндра Тороша на PHP Frameworkds Day 2014 о фреймворке Phalcon и последних событиях с ним связанных за последний год. Релиз Yona CMS - системы управления контентом на Phalcon с модульной структурой
Що робити і як для того, щоб якість роботи зростала? Звідки береться мотивація? Як ростити свою команду так, щоб був результат? Власний досвід спікера.
З результатами проведення практикуму можна ознайомитися за посиланням: https://goo.gl/xnOQO0
Генадій Колтун — Комунізм наступає: що будемо робити, коли машини навчаться п...LEDC 2016
Нейронні мережі, генетичні алгоритми, однорукі бандити наступають. Скоро вони доберуться і до веб-розробки. Які функції залишаться за людиною, а що відійде до роботів назавжди?
Андрій Юн — Воркшоп "Docker use cases for developers"LEDC 2016
This document outlines several use cases for Docker including using containers as a service, as a tool, for local development environments, and for building Drupal applications with GitLab. It also provides contact information for Andriy Yun, the author based in Kyiv, including his email, Drupal profile, and Skype details.
This document provides an overview of key concepts in Drupal 8 including common framework subsystems, routing, the form API, libraries, and multilingual configuration. It also encourages migrating Drupal 7 modules to Drupal 8 and leveraging object-oriented programming practices and dependency injection. Developers are directed to documentation and examples for implementing routing, forms, plugins, and integrating modules with Views.
Тарас Кирилюк — Docker basics. How-to for Drupal developersLEDC 2016
Docker для чайників. Просто про складне. Використання для локальної розробки. Як Docker може спростити автоматизацію CI Workflow. Досвід використання на реальних Drupal проектах.
Тарас Круц — Open Social: brand new Drupal 8 distro for building social netwo...LEDC 2016
Досвід роботи спікера в команді нового і амбіційного дистрибутиву на Drupal 8 для різноманітних спільнот та соціальних мереж, про архітектуру, особливості цього проекту та подальші плани.
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
Розгляд та аналіз інфструментів PHPStorm для drupal розробника: QA tools, Xdebug, Issue Tracking System, Drush, інструменти для роботи з Vagrant, Docker і базами даних. Корисні плагіни.
Олександр Щедров — Build your application in seconds and optimize workflow as...LEDC 2016
Створення білда для проекту є дуже інтенсивним і складним процесом. Доповідь присвячена різним інструментам та технікам, які допоможуть прискорити цей процес та сконцентруватись на результаті.
This document discusses practices for using subdomains with Drupal websites. It outlines goals like moving nodes, content, terms, and custom pages to subdomains. It reviews existing contrib modules for subdomain processing and notes issues. It proposes a custom subdomain module with hook_url_outbound_alter and controller functions to alter domains and check them. Configuration steps are provided along with addressing potential search engine indexing problems.
Сергій Бондаренко — Тестування Drupal сайтiв з допогою TqExtensionLEDC 2016
This document provides information about the TqExtension testing framework. It discusses features like adding an API for describing objects for testing, passing arguments to login steps, fixing issues, transforming arguments, grouping scenarios, using tags to hook into the process, and using Selenium Grid. It also describes a Vagrant box created for the event that is ready to run Selenium and Behat tests with provisioning scripts.
Вадим Абрамчук — Big Drupal: Issues We MetLEDC 2016
This document summarizes the challenges faced with a large Drupal site handling real estate data. It discusses importing large amounts of node and entity data, performance issues caused by memory leaks, and solutions for optimizing indexing and caching when using Solr search on a site with millions of nodes. Tuning garbage collection, offloading processing to queues and batches, and parallelizing indexing are recommended to improve performance of importing and updating large quantities of data on the site.
Юрій Герасимов — Delayed operations with queuesLEDC 2016
This document discusses using queues to process time-consuming jobs asynchronously in Drupal to improve website performance and scalability. It provides examples of use cases for queues like preparing content for other platforms, generating content in advance, handling comment submissions, processing images, and integrating with external data sources. It also describes some implementations of queue APIs in Drupal and common queue runners as well as limitations of the current queue APIs.
Віталій Бобров — Web components, Polymer and DrupalLEDC 2016
Web Components allow the creation of reusable UI widgets using open web technologies like Shadow DOM, HTML Templates, and Custom Elements. The Web Components specification defines these technologies. Polymer makes it easier to build custom elements that work like standard elements through features like encapsulation, templating, and declarative data binding. In Drupal, the Web Components API module provides a polyfill for browser support and APIs for defining and loading components, while the Polymer API module handles loading the Polymer library and elements. Both modules welcome community contributions.
Олександр Щедров та Альбіна Тюпа — Magic button. Can production releases be s...LEDC 2016
This document discusses the benefits of continuous integration (CI) workflow for software development projects. It states that using CI workflow is 90% of success and outlines reasons like enabling seamless releases, high quality code with fewer bugs, easy maintenance of environments, and ensuring everything is under control. The document also provides technical details of CI workflow, emphasizing automating everything through code-driven development with no manual steps and sharing a CI setup called CIBox that the authors use. It claims that with CI workflow, teams are more productive and collaborative and clients experience fewer bugs and shorter time between ideas and software.
7. В зале у нас?
* Разработчики
* Сайт-билдеры
* Front-end разработчики
8. В зале у нас?
* Разработчики
* Сайт-билдеры
* Front-end разработчики
* Менеджеры проектов
9. На повестке дня
1. Что такое дистрибутив и зачем они
нужны?
2. В каких случаях стоит создавать свой
дистрибутив?
3. Как создать и поддерживать свой
дистрибутив
15. Что такое дистрибутив?
Дистрибутивы предоставляют
упакованную версию ядра Drupal
с контриб модулями
предварительно настроенными
под определенный тип сайта.
28. Так вы хотите разработать
дистрибутив?
А стоит ли?
So You Guys Want to Build a Drupal Distribution
http://www.youtube.com/watch?v=ECrUuRGzuH0
http://prezi.com/k2d_x8eczfzu/so-you-want-to-build-a-drupal-distro/
30. Может вам нужен Install
Profile?
Distribution:
Install Profile:
* Брендированный продукт
* Решает определенный
юзкейс
* Является публичным
проектом и поддерживается
сообществом
* Фокус на конечного
пользователя (готов к
использованию)
* Предустанавливает модули
* Создает конфигурации
* Для внутреннего
использования
* Фокус на разработчика
(готов к началу разработки)
31. Или build base?
* У вас Continuous Integration?
* Распределенная команда разработчиков?
* Нужна стандартизация?
* Нужно автоматическое тестирование?
* Надоело повторяться?
33. Install Profile
myprofile.info
name = My Profile
description = Description of what the profile does.
core = 7.x
dependencies[] = block
dependencies[] = color
dependencies[] = comment
dependencies[] = contextual
dependencies[] = dashboard
dependencies[] = help
dependencies[] = image
dependencies[] = list
dependencies[] = menu
dependencies[] = number
dependencies[] = options
34. Install Profile
myprofile.profile
То же что и .module для модулей. Здесь удобно
определять hook_install_tasks и подобные вещи
связанные с процессом инсталяции.
36. Install Profile
myprofile.install
<?php/** * Implement hook_install(). * * Perform actions to set up
the site for this profile. */function profilename_install() {
include_once DRUPAL_ROOT . '/profiles/minimal/minimal.install';
minimal_install();
}?>
40. FAQ и подводные камни
* Как правильно упаковывать компоненты?
Не создавайте фичи по принципу общего типа
компонента. Гиганты вроде Acme Content Types, или
Acme Views зделают вашу систему сильнозависимой, их нельзя будет отключить, а
реорганизация покажется адом.
Организовывайте фичи по принципу независимого
функционала.
Например:
Blog, Gallery, Voting
41. FAQ и подводные камни
* Как организовать фичи для реутилизации
полей
Нет необходимости дублировать поля общего
назначения. Создавайте общие поля указывая их
характеристики в имени поля.
Например:
field_file_single_public
Поле типа файл, принимающее единственное
значение, использует Public директорию.
field_link_single, field_content_ref,
field_body_no_summary
42. FAQ и подводные камни
* Как избежать конфликтов с base fields
Все field_base полезно экспортировать в отдельную
фичу, а уже field_instance в фичу с контент тайпом.
Например:
Acme Base Fields - field_base:field_body
Acme Blog - field_instance:field_body
Acme Article - field_instance:field_body
43. FAQ и подводные камни
* Как экспортить мои File Display в фичу если они
определяются в hook_default_COMPONENT?
Любую фичу можно переиспользовать экспортирую
только необходимые изменения с помошью Features
Override
44. FAQ и подводные камни
* Как экспортить variables
Не волнуемся, на помошь приходит модуль
Strongarm
47. Drush make для дистрибутива
Stub make
Подтягивает ядро Drupal и сам install profile.
Здесь есть одно преимущество - удобно подтягивать
несколько install profiles в вашем дистрибутиве.
Profile make
Подтягивает модули, темы, библиотеки, применяет
патчи
51. Обновления с hook_update_N()
/** * Add a 'year' date format. */function myprofile_update_7000() {
// Insert custom format: 2011
db_insert('date_formats')
->fields(array('format' => 'Y', 'type' => 'custom', 'locked' => 0))
->execute();
// Insert custom format: 2011
db_insert('date_format_type')
->fields(array('type' => 'year', 'title' => 'Year', 'locked' => 0))
->execute();
// Date Year Format
variable_set('date_format_year', 'Y');
}
52. Обновления с hook_update_N()
* Все обновления из hook_update_N также идут в
hook_install!
* Новые модули активируем в:
- dependencies (для первой инсталяции)
- hook_update_N при помощи module_enable
54. Билдим дистрибутив
drush make distro.make
Drush make рекурсивно вызывает .make файлы из подтягиваемых
проектов! Таким образом запустив distro.make подтянются все модули
из profile.make и так далее.
56. Подход “с нуля”
Преимущества
* Включай только то что нужно (гибкость)
Недостатки
* Изобретение велосипеда. Придется все
настраивать самим и экспортить в фичи, которые
потом поддерживать
* Дорого поддерживать контриб модули и следить за
их обновлениями
57. Подход “с базовой дистро”
Преимущества
* Готовые фичи из коробки
* Поддержка базовой дистрибутив сообществом
Недостатки
* Не все фичи нужны, что-то придется отключать, а
что-то переписыватьi
* Big Drupal, больше модулей, больше шансов что
всплывет баг
61. Подход “наследование”
Преимущества
* Сканирует базовый инстал профайл на модули и
темы
* Возможность переписать родительский модуль
поместив этот же модуль в дочерний профайл
Недостатки
* Патчим ядро
* Пока никак нельзя унаследовать инсталл таски
родителя
62. Подход “наследование”
1. Ставим патч
Make install profiles inheritable
2. Указываем родителя в .info
base = BASE_PROFILE
3. Подробнее читаем
Inheriting your Drupal profile from an existing
distribution
63. К дальнейшему изучению?
* DrupalCon London 2011: BUILDING AND MAINTAINING A
DISTRIBUTION IN DRUPAL 7
* Kit specification
* Drush make
* Apps
Учимся по примеру:
https://github.com/Gizra/Garment-Box
https://github.com/gsbitse/gsb-distro
а также проекты на drupal.org