Войти с помощью github
Форум /

Всем привет!

Сегодня мы готовы рассказать о результатах конкурса разработки проектов на БЭМ, который мы провели в рамках открытого вебинара для LoftSchool, организованного совместно c проектом LoftBlog.

Напомним задание конкурса: разработать веб-проект, использовав максимальное количество технологий и инструментов стека БЭМ и показать отличное знание одноименной методологии.

Конкурс стартовал 31 января и длился 3 недели. 23 февраля 2015 года мы завершили прием заявок, написав небольшой пост. Мы получили 7 интересных конкурсных работ и взяли тайм-аут до 17 марта на тщательное ревью кода. Сейчас мы готовы рассказать вам о результатах, а также назвать имена победителей, которые получат интересные и полезные призы.

Начнем!

Проекты, принявшие участие в конкурсе

Набор карточек в стиле материального (material) дизайна от Google

Демо | Репозиторий | Полная версия ревью

Превью верстки набора карточек в стиле материального (material) дизайна от Google

Ревьюер проекта — Гела Константинова. В Яндексе с 2011 года. Руководит группой разработки сайта БЭМ. Участвует в развитии технологии. У Гелы сильно развито чувство прекрасного, поэтому проект, который напрямую связан с дизайном, лучше нее никто бы не оценил.

Автор проекта Алексей Милов реализовал набор блоков, который формирует блок-карточку с информацией в стиле модного материального дизайна от Google.

По словам ревьюра, автор уверенно знает CSS, поэтому явных промахов в этой части замечено не было.

Алексей старался следовать БЭМ-методологии, что видно по коду проекта, но допустил ряд отклонений, используя время от времени каскад и матчинг на HTML-теги.

По мнению ревьюера, проект можно улучшить в части верстки, правильного использования модификаторов для блоков и описания БЭМ-дерева страницы в формате BEMJSON.

Вывод: у автора достаточно знаний для разработки проектов с использованием БЭМ-стека, и это знание позволит ему уверенно вывести разработку своих веб-проектов на новый уровень.

Большое спасибо за участие в нашем конкурсе!

Вёрстка шаблона посадочной страницы Halcyon Days

Репозиторий | Полная версия ревью

Превью вёрстки шаблона посадочной страницы Halcyon Days

РевьюерДмитрий Белицкий. Разработчик интерфейсов в группе разработки БЭМ в симферопольском офисе Яндекса. Верстает, программирует на серверном и клиентском js. Читает сказки и ездит на работу на велосипеде. Дима — тот самый автор статьи на хабре о том, как разработать сайт на БЭМ с нуля.

По мнению ревьюера, автор проекта oozywaters сверстал на БЭМ красивый и современный шаблон и использовал при этом полный набор БЭМ-стека. Ему удалось задействовать известную библиотеку Bootstrap и доказать, что БЭМ дружит не только со своими библиотеками и не ограничивает разработчика в возможностях использования технологий и инструментов. Кроме того, автор проекта использовал на базовом уровне JS-фреймворк i-bem.js и подключал сторонние jQuery-плагины. Также автор по полной программе использовал шаблонизатор BEMHTML, вынеся в него базовые шаблоны для блоков.

В качестве направления для улучшения проекта ревьюер предложил автору более универсальный вариант подключения JS-плагинов и дал краткую инструкцию, как это можно сделать в project-stub. Кроме того, используя БЭМ-ориентированные библиотеки блоков и плагинов, например, bem-grid для создания модульной сетки и bem-components для реализации контролов страницы, разработчик проекта на БЭМ сможет получить пользы в виде более гибкой и надежной верстки и возможности повторно использовать код.

Вывод: проект получился по-настоящему в духе БЭМ!

Большое спасибо автору за участие в конкурсе! Мы надеемся, что полученный в ходе выполнения проекта опыт поможет ему в его работе.

Альтернативный вариант главной страницы bem.info

Демо | Репозиторий | Полная версия ревью

Превью альтернативного варианта главной страницы bem.info

Ревью этого проекта досталось мне. Меня зовут Николай Ильченко. Я верстаю сайты последние 5 лет. Работаю в Яндексе с 2013 года, занимаюсь разработкой bem.info и форума на полном БЭМ-стеке.

На мой взгляд, идея проекта Ивана Лукьянца очень креативная — автор представил альтернативный взгляд на то, как могла бы выглядеть главная страница bem.info.

В проекте на основе project-stub использован полный БЭМ-стек (BEMJSON, BEMHTML, i-bem.js), библиотеки блоков bem-components и bem-grid. Последнюю Иван внедрил, разобравшись, как подключать к проекту сторонние БЭМ-библиотеки при сборке на ENB.

В ходе внимательного изучения проекта, я порекомендовал ряд улучшений, указал на некоторые ошибки и показал, как еще можно написать слайдер, используя API i-bem.js.

Вывод: проект привлек внимание креативностью и качеством исполнения.

Хотим сказать автору спасибо за участие в конкурсе, пожелать дальнейших успехов в использовании БЭМ и пригласить вступить в дружное БЭМ-сообщество!

БЭМ-библиотека для подключения шрифтовых иконок Font Awesome

Демо | Репозиторий | Полная версия ревью

Превью шрифтов Font Awesome в БЭМ-библиотеке bem-fa

Еще одна работа от Ивана Лукьянца, ревью которой проводил Андрей Абрамов, разработчик интерфейсов в службе разработки БЭМ и мейнтейнер сборщика ENB.

Автор проекта Иван Лукьянец разработал библиотеку для подключения иконочного шрифта Font Awesome в БЭМ-проект. В проекте частично используется БЭМ-стек: сборщик ENB, шаблонизатор BEMHTML и формат BEMJSON для описания демо-страницы примеров.

Андрей отправил PR, в котором предложил автору ряд улучшений, оптимизировал сборку проекта, убрал лишние bower-зависимости, обновил npm-зависимости, кастомизировал API блоков для подключения иконок, объяснил в ревью, зачем это нужно, и помог автору сделать демо-страницу более презентабельной.

Вывод: автор продемонстрировал интересный подход к решению задачи и возможность подключения к БЭМ-проекту любой сторонней библиотеки.

Спасибо за активное участие в конкурсе. Надеемся, что это только начало дружбы с БЭМ, а впереди еще много интересных задач и проектов, реализованных с помощью БЭМ-технологий.

Аналог jQuery UI слайдера в виде БЭМ-блока

Демо | Репозиторий | Полная версия ревью

Превью аналога jQuery UI слайдера в виде БЭМ-блока

РевьюерЕвгений Константинов. Разработчик интерфейсов в группе разработки БЭМ в симферопольском офисе Яндекса. Занимается вёрсткой и программированием на js. Вместе с коллегами Евгений разрабатывает библиотеку блоков bem-components и активно выступает на мероприятиях по БЭМ и не только.

Проект, который достался на ревью Евгению, представляет собой БЭМ-блок, который интерпретирует <input type="range"> в БЭМ-терминах.

Автор проекта Игорь Уваров использовал для создания блока шаблонизатор BEMHTML и API фреймворка i-bem.js. По словам ревьюера, у автора получился работоспособный продукт, который реализует поставленную задачу.

Однако несколько рекомендаций по улучшению в ходе ревью все же нашлись. Связаны они с тем, как лучше находить элементы блока, реагировать на разные события на одном блоке и как прокидывать параметры для блока при написании JS в терминах БЭМ. В полном отчете после ревью также есть примеры того, как лучше организовать блок в файловой системе, если часть блока является опциональной.

Вывод: автор проекта разобрался с БЭМ-стеком, понял основные паттерны разработки проекта на БЭМ и создал красивую страницу для презентации своего блока.

Хочется сказать спасибо за участие в конкурсе и пример реализации настоящего БЭМ-блока.

Компонент выезжающего двухуровневого меню в виде БЭМ-библиотеки

Демо | Репозиторий | Полная версия ревью

Превью компонента выезжающего двухуровневого меню в виде БЭМ-библиотеки

РевьюерБЭМ-разработчик со стажем Владимир Гриненко aka tadatuta. Он руководит службой разработки БЭМ в Яндексе, занимается вёрсткой и JS-программированием, а также с удовольствием отвечает на вопросы разработчиков про БЭМ. Вне Яндекса не один год разрабатывал сайты и консультировал команды различного уровня.

Проект Алексея Гурьянова, который достался на ревью Владимиру, представляет собой компонент, который реализует сложное двухуровневое меню с помощью нескольких составных БЭМ-блоков. По словам ревьюера, проект выполнен на достаточно высоком уровне, чувствуется глубокое погружение автора в тему.

В полную силу использован шаблонизатор BH и фреймворк i-bem.js, а также придумана отличная страница для демонстрации работы меню с возможностью сгенерировать его на основе внешних данных.

Предложенные в ходе ревью улучшения помогут автору сделать блок более универсальным и независимым, что упростит его повторное использование в разных проектах.

Вывод: подобный уровень реализации вдохновляет нашу команду на дальнейшее развитие БЭМ и разработки для сообщества и вместе с вами.

Большое спасибо за участие в конкурсе и активную позицию в жизни БЭМ-сообщества!

Верстка макета Velo Dashboard на базе заготовки БЭМ-проектов

Демо | Репозиторий | Полная версия ревью

Превью верстки макета Velo Dashboard на базе заготовки БЭМ-проектов project-stub

РевьюерАлександр Белянский, разработчик интерфейсов в группе рекламных технологий в Симферополе. Занимается вёрсткой и программированием на JavaScript, активно помогает команде БЭМ и является автором прототипа BEM-IDE.

Проект автора gcor, который оценивал Александр, представляет собой верстку портала о туризме. Автор разобрался с описанием БЭМ-дерева в формате BEMJSON, использовал ряд блоков из библиотеки bem-components и, следуя методологии БЭМ, правильно разбил код проекта в файловой системе.

Ревьювер предложил Антону свой путь развития проекта и дал полезные ссылки на примеры БЭМ-проектов и библиотек. Надеемся, что рекомендации натолкнут автора на новые интересные мысли и помогут в будущем.

Вывод: хочется отметить старания автора, ведь он выбрал не самый простой макет для верстки.

Большое спасибо за участие в конкурсе! Желаем удачи в освоении профессии.

Итоги конкурса проектов на БЭМ

В первую очередь хочется отметить, что нас особенно порадовало качество проектов, которые участвовали в конкурсе. Поэтому нам хотелось отметить каждого из вас даже небольшим призом.

На основании ревью мы распределили участников в группы по уровню сложности выполненного проекта, и вот что у нас получилось:

Первое место

  • Альтернативный вариант главной страницы bem.info, автор Иван Лукьянец
  • Компонент выезжающего двухуровневого меню в виде БЭМ-библиотеки, автор Алексей Гурьянов

Второе место

  • Вёрстка шаблона посадочной страницы Halcyon Days, автор oozywaters
  • Аналог jQuery UI слайдера в виде БЭМ-блока, автор Игорь Уваров

Третье место

  • Верстка макета Velo Dashboard на базе заготовки БЭМ-проектов, автор gcor
  • Набор карточек в стиле материального (material) дизайна от Google, автор Алексей Милов
  • БЭМ-библиотека для подключения шрифтовых иконок Font Awesome, автор Иван Лукьянец

Для получения призов просим всех участников связаться с нами по электронной почте info@bem.info и выслать следующую информацию: ФИО, домашний или рабочий адрес с индексом, мобильный или домашний номер телефона, по которому с вами можно было бы связаться.

Огромное спасибо всем за участие в конкурсе! Надеемся, что он дал вам необходимые знания и практический опыт, а также мотивацию двигаться дальше. Продолжайте развиваться, как разработчики, используйте БЭМ в реализации своих проектов и приходите к нам на форум делиться своим опытом разработки!

И конечно же, всем Stay BEMed!

P.S. На всякий случай – в организации bem-projects-competition-2015 вы сможете найти список всех ревью и форки проектов.