SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
Я.Субботник, Киев, 5 мая 2012 года
Разработчик интерфейсов
Александр Титула-Бойченко
Приложения для соцсетей.
Универсальные приложения на БЭМ
Зачем?
2
Зачем?
2
— Аудитория свыше 25 млн. пользователей
Зачем?
2
— Аудитория свыше 25 млн. пользователей
— Реклама товаров и услуг
Зачем?
2
— Аудитория свыше 25 млн. пользователей
— Реклама товаров и услуг
— Способ заработка денег
Зачем?
2
— Аудитория свыше 25 млн. пользователей
— Реклама товаров и услуг
— Способ заработка денег
— Способ взаимодействия с пользователями
Как?
3
Как?
3
— iFrame
Как?
3
— iFrame
— Любые технологии, поддерживаемые браузером
Как?
3
— iFrame
— Любые технологии, поддерживаемые браузером
— JavaScript API для взаимодействия с соцсетью
Яндекс.Фотки
4
Яндекс.Фотки
4
— Хостинг фотографий от Яндекса
Яндекс.Фотки
4
— Хостинг фотографий от Яндекса
— Без ограничений на размер фотографии
Яндекс.Фотки
4
— Хостинг фотографий от Яндекса
— Без ограничений на размер фотографии
— Без ограничений на количество фотографий
Яндекс.Фотки
4
— Хостинг фотографий от Яндекса
— Без ограничений на размер фотографии
— Без ограничений на количество фотографий
— Альбомы, метки, геотеги, комментарии, EXIF и тд.
Яндекс.Фотки
4
— Хостинг фотографий от Яндекса
— Без ограничений на размер фотографии
— Без ограничений на количество фотографий
— Альбомы, метки, геотеги, комментарии, EXIF и тд.
— Бесплатно
Фото дня
5
Фото дня на Яндекс.Фотках
6
clck.ru/1-r_X
Задача
7
Задача
7
— Показывать Фото дня на Яндекс.Фотках
Задача
7
— Показывать Фото дня на Яндекс.Фотках
— Подстраивание под текущую социальную сеть
Задача
7
— Показывать Фото дня на Яндекс.Фотках
— Подстраивание под текущую социальную сеть
— дизайном
Задача
7
— Показывать Фото дня на Яндекс.Фотках
— Подстраивание под текущую социальную сеть
— дизайном
— функциональностью
Пожелания разработчиков
8
Пожелания разработчиков
8
— Наличие ядра проекта, в котором реализована
базовая функциональность
Пожелания разработчиков
8
— Наличие ядра проекта, в котором реализована
базовая функциональность
— Быстро создавать новые приложения для других
социальных сетей
Пожелания разработчиков
8
— Наличие ядра проекта, в котором реализована
базовая функциональность
— Быстро создавать новые приложения для других
социальных сетей
— Легко модифицировать все приложение или его
отдельные модули
Реализация
9
БЭМ
10
clck.ru/Pb65
Уровни переопределения
11
Уровень переопределения — это набор реализаций
блоков, сгруппированных в одну директорию
Уровни переопределения
12
На проекте может быть несколько
Уровни переопределения
13
Подключив код с разных уровней переопределения
получаем готовый продукт
BEM-tools
14
clck.ru/Pb65
Инструменты для работы с файлами,
написанными по БЭМ методу
Фоторама
15
Симпатичная javascript-галерея
fotoramajs.com
BEM-bl
16
Библиотека блоков, написанная по БЭМ методу
clck.ru/Kuu4
Технологии
17
Технологии
17
— bemjson
Технологии
17
— bemjson
— bemhtml
Технологии
17
— bemjson
— bemhtml
— i-bem.js
bemjson
18
{
block: 'b-gallery',
content: {
block: 'b-fotorama',
elem: 'preloader',
content: 'Загрузка данных...'
}
Like JSON формат описания БЭМ дерева документа
bemhtml
19
block b-gallery {
attrs: { id: 'fotorama'},
}
JavaScript шаблонизатор для преобразования
bemjson в HTML
bemjson+bemhtml=HTML
20
<div class="b-gallery" id="fotorama">
<div class="b-fotorama__preloader">
Загрузка данных...
</div>
</div>
Наложением bemhtml на bemjson получаем HTML
i-bem.js
21
Это JavaScript библиотека умеющая работать с
документом в БЭМ-терминах.
Более подробно в клубе БЭМ
22
clubs.ya.ru/bem/
Ядро
23
Ядро
23
Уровни переопределения:
Ядро
23
Уровни переопределения:
— bem-bl
Ядро
23
Уровни переопределения:
— bem-bl
— blocks
Ядро
23
Уровни переопределения:
— bem-bl
— blocks
— fotorama.js
Ядро
23
Уровни переопределения:
— bem-bl
— blocks
— fotorama.js
— получение и обработка данных
Ядро
23
Уровни переопределения:
— bem-bl
— blocks
— fotorama.js
— получение и обработка данных
— основной макет приложения
Fotorama.js
24
blocks/
b-fotorama/
b-fotorama.css
b-fotorama.js
Получение и обработка данных
25
rss/
rss.xml
blocks/
b-gallery/
b-gallery.bemhtml
b-gallery.css
b-gallery.js
Основной макет приложения
26
({
block: 'b-page',
title: 'Фото дня на Яндекс.Фотках',
head: [
{ elem: 'css', url: '_index.css'},
{ block: 'i-jquery', elem: 'core' },
{ elem: 'js', url: '_index.js' }
],
content: [{
block: 'b-gallery',
content: {
block: 'b-fotorama',
elem: 'preloader',
content: 'Загрузка данных...'
}
},{
block: 'b-social'
}]
})
index.bemjson.js
Основной макет приложения
27
Facebook
28
Facebook
28
— blocks-fb
Facebook
28
— blocks-fb
— изменение размера вьюпорта
Facebook
28
— blocks-fb
— изменение размера вьюпорта
— изменение дизайна fotorama.js
Facebook
28
— blocks-fb
— изменение размера вьюпорта
— изменение дизайна fotorama.js
— кнопка Share
Изменение размера вьюпорта
29
blocks-fb/
b-gallery/
b-gallery.bemhtml
block b-gallery {
js: {
width: '760',
height: '520'
}
}
Изменение дизайна fotorama.js
30
blocks-fb/
b-fotorama/
b-fotorama.css
.fotorama__wrap {
background: #fff;
}
...
Кнопка Share
31
blocks-fb/
b-social/
__like/
b-social__like.css
b-social.bemhtml
block b-social {
content: [{
elem: 'like'
}]
}
.b-social__like {
position: absolute;
top: 3px;
right: 3px;
}
Facebook
32
clck.ru/1-wuz
Вконтакте
33
clck.ru/1-wxx
Мой Мир@mail.ru
34
Выводы
35
Выводы
35
— Гибкость за счет уровней переопределения
Выводы
35
— Гибкость за счет уровней переопределения
— Легкая модификация приложения
Выводы
35
— Гибкость за счет уровней переопределения
— Легкая модификация приложения
— Понятная файловая структура
Выводы
35
— Гибкость за счет уровней переопределения
— Легкая модификация приложения
— Понятная файловая структура
— Новые возможности раскатываются сразу на всех
приложениях
Выводы
35
— Гибкость за счет уровней переопределения
— Легкая модификация приложения
— Понятная файловая структура
— Новые возможности раскатываются сразу на всех
приложениях
— Командная работа
Выводы
35
— Гибкость за счет уровней переопределения
— Легкая модификация приложения
— Понятная файловая структура
— Новые возможности раскатываются сразу на всех
приложениях
— Командная работа
— Подобный принцип можно применять для многих
программных продуктов в вебе
Фото дня на Яндекс.Фотках
36
clck.ru/1-r_X
Александр Титула-Бойченко
Разработчик интерфейсов
banzalik@yandex-team.ru
@banzalik

Contenu connexe

En vedette

Incompatible publics presentation
Incompatible publics presentationIncompatible publics presentation
Incompatible publics presentationJodi Dean
 
IE Essay topic I_Jong Hyun Kim
IE Essay topic I_Jong Hyun KimIE Essay topic I_Jong Hyun Kim
IE Essay topic I_Jong Hyun KimKim John
 
Women in Business November 2012 newsletter
Women in Business November 2012 newsletterWomen in Business November 2012 newsletter
Women in Business November 2012 newsletterJacoba Poppleton
 
Both 2016 shanghai development of innovative ultra high temperature coatings ...
Both 2016 shanghai development of innovative ultra high temperature coatings ...Both 2016 shanghai development of innovative ultra high temperature coatings ...
Both 2016 shanghai development of innovative ultra high temperature coatings ...Yuguo Cui
 
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4page
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4pageSufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4page
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4pagePrachoom Rangkasikorn
 
Journal of Educational Technology Systems-2015-53-68
Journal of Educational Technology Systems-2015-53-68Journal of Educational Technology Systems-2015-53-68
Journal of Educational Technology Systems-2015-53-68flashinvegas
 
Plan de trabajo lenguaje
Plan de trabajo lenguaje Plan de trabajo lenguaje
Plan de trabajo lenguaje Selene Ramos
 

En vedette (12)

Graphic Design Services List
Graphic Design Services ListGraphic Design Services List
Graphic Design Services List
 
Incompatible publics presentation
Incompatible publics presentationIncompatible publics presentation
Incompatible publics presentation
 
IE Essay topic I_Jong Hyun Kim
IE Essay topic I_Jong Hyun KimIE Essay topic I_Jong Hyun Kim
IE Essay topic I_Jong Hyun Kim
 
The trail of broken promises walk
The trail of broken promises walkThe trail of broken promises walk
The trail of broken promises walk
 
Lisdeth alvarado
Lisdeth alvaradoLisdeth alvarado
Lisdeth alvarado
 
Pertemuan 3 & 4
Pertemuan 3 & 4Pertemuan 3 & 4
Pertemuan 3 & 4
 
Women in Business November 2012 newsletter
Women in Business November 2012 newsletterWomen in Business November 2012 newsletter
Women in Business November 2012 newsletter
 
Both 2016 shanghai development of innovative ultra high temperature coatings ...
Both 2016 shanghai development of innovative ultra high temperature coatings ...Both 2016 shanghai development of innovative ultra high temperature coatings ...
Both 2016 shanghai development of innovative ultra high temperature coatings ...
 
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4page
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4pageSufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4page
Sufficiency Economy+Planting and Farming2+ป.1+106+dltvengp1+54en p01 f32-4page
 
Journal of Educational Technology Systems-2015-53-68
Journal of Educational Technology Systems-2015-53-68Journal of Educational Technology Systems-2015-53-68
Journal of Educational Technology Systems-2015-53-68
 
Plan de trabajo lenguaje
Plan de trabajo lenguaje Plan de trabajo lenguaje
Plan de trabajo lenguaje
 
JBM-HH Work Force Town Hall - 19 NOV 15
JBM-HH Work Force Town Hall - 19 NOV 15JBM-HH Work Force Town Hall - 19 NOV 15
JBM-HH Work Force Town Hall - 19 NOV 15
 

Similaire à Приложения для соцсетей. Универсальные приложения на БЭМ

Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...
Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...
Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...Yandex
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Yandex
 
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексДокументирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексYandex
 
Интегратор Bitrix_1
Интегратор Bitrix_1Интегратор Bitrix_1
Интегратор Bitrix_1itc73
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Ontico
 
белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцевrit2010
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиковWOX APP
 
Телепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskТелепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskMODX Беларусь
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
 
bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыYandex
 
Trening modul2-webinar12
Trening modul2-webinar12Trening modul2-webinar12
Trening modul2-webinar12olgaoov
 
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYelena Jetpyspayeva
 
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,..."Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...Yandex
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17MoscowJS
 
Dreamwever cs3
Dreamwever cs3Dreamwever cs3
Dreamwever cs3JIuc
 
VirtEmp
VirtEmpVirtEmp
VirtEmpan199
 

Similaire à Приложения для соцсетей. Универсальные приложения на БЭМ (20)

Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...
Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...
Александр Титула-Бойченко "Приложения для соцсетей. Универсальные приложения ...
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
 
Intro
IntroIntro
Intro
 
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексДокументирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
 
Интегратор Bitrix_1
Интегратор Bitrix_1Интегратор Bitrix_1
Интегратор Bitrix_1
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
 
белогорцев глеб белогорцев
белогорцев глеб белогорцевбелогорцев глеб белогорцев
белогорцев глеб белогорцев
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиков
 
Телепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskТелепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup Minsk
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
 
bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформы
 
Trening modul2-webinar12
Trening modul2-webinar12Trening modul2-webinar12
Trening modul2-webinar12
 
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
 
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,..."Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
 
Backbone lesson 1
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
Комплексный подход к разработке
Комплексный подход к разработкеКомплексный подход к разработке
Комплексный подход к разработке
 
Dreamwever cs3
Dreamwever cs3Dreamwever cs3
Dreamwever cs3
 
VirtEmp
VirtEmpVirtEmp
VirtEmp
 

Plus de Aleksandr Boichenko

Developer tools - подробное руководство разработчика
Developer tools - подробное руководство разработчикаDeveloper tools - подробное руководство разработчика
Developer tools - подробное руководство разработчикаAleksandr Boichenko
 
Разработка сайтов с учетом мобильных платформ
Разработка сайтов с учетом мобильных платформРазработка сайтов с учетом мобильных платформ
Разработка сайтов с учетом мобильных платформAleksandr Boichenko
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENBAleksandr Boichenko
 
Производительность Client-Side
Производительность Client-SideПроизводительность Client-Side
Производительность Client-SideAleksandr Boichenko
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 

Plus de Aleksandr Boichenko (6)

Developer tools - подробное руководство разработчика
Developer tools - подробное руководство разработчикаDeveloper tools - подробное руководство разработчика
Developer tools - подробное руководство разработчика
 
Разработка сайтов с учетом мобильных платформ
Разработка сайтов с учетом мобильных платформРазработка сайтов с учетом мобильных платформ
Разработка сайтов с учетом мобильных платформ
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENB
 
Производительность Client-Side
Производительность Client-SideПроизводительность Client-Side
Производительность Client-Side
 
Uawebchallenge.yandex.tank
Uawebchallenge.yandex.tankUawebchallenge.yandex.tank
Uawebchallenge.yandex.tank
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 

Приложения для соцсетей. Универсальные приложения на БЭМ