SlideShare a Scribd company logo
1 of 59
Download to read offline
БЭМ	
  и	
  JavaScript:	
  	
  
Зачем	
  мы	
  написали	
  
js-­‐фреймворк?	
  
Владимир	
  Варанкин	
  
Разработчик	
  интерфейсов	
  



Я.Субботник,	
  Москва,	
  8	
  сентября	
  2012	
  года	
  
Фреймворк	
  (англ.	
  framework,	
  Каркас)	
  —	
  структура	
  
программной	
  системы;	
  программное	
  обеспечение,	
  
облегчающее	
  разработку	
  и	
  объединение	
  разных	
  
компонентов	
  большого	
  программного	
  проекта	
  




2	
  
фреймворк	
  —	
  каркас
                               	
  
3	
  
„ они	
  заполонили	
  планету	
  “!




4	
  
Решаемые	
  задачи	
  




5	
  
Решаемые	
  задачи	
  

•  Нормализация	
  API	
  браузера	
  
   	
  




   6	
  
Решаемые	
  задачи	
  

•  Нормализация	
  API	
  браузера	
  

•  Готовые	
  наборы	
  виджетов	
  




   7	
  
Решаемые	
  задачи	
  

•  Нормализация	
  API	
  браузера	
  

•  Готовые	
  наборы	
  виджетов	
  

•  Rich	
  UI	
  интерфейсы	
  




   8	
  
Решаемые	
  задачи	
  

•  Нормализация	
  API	
  браузера	
  

•  Готовые	
  наборы	
  виджетов	
  

•  Rich	
  UI	
  интерфейсы	
  

•  Библиотеки	
  написания	
  сложных	
  веб-­‐приложений	
  




   9	
  
 
         должны	
  помогать




10	
  
11	
  
12	
  
БЭМ!	
  




13	
  
БЭМ	
  

—  блоки	
  

—  элементы	
  

—  модификаторы	
  




14	
  
БЭМ	
  

—  блоки	
  

—  элементы	
  

—  модификаторы	
  

—  уровни	
  переопределения	
  




15	
  
Уровни	
  переопределения	
  




16	
  
i-­‐bem.js	
  




17	
  
i-­‐bem.js	
  

—  блок,	
  помогающий	
  делать	
  другие	
  блоки	
  




18	
  
i-­‐bem.js	
  

—  блок,	
  помогающий	
  делать	
  другие	
  блоки	
  

—  реализация	
  блока	
  i-­‐bem	
  в	
  технологии	
  JavaScript	
  

	
  




19	
  
i-­‐bem.js	
  

—  блок,	
  помогающий	
  делать	
  другие	
  блоки	
  

—  реализация	
  блока	
  i-­‐bem	
  в	
  технологии	
  JavaScript	
  

—  jQuery	
  для	
  нормализации	
  API	
  браузера	
  

	
  




20	
  
i-­‐bem.js	
  
Реализация	
  предметной	
  области	
  
JavaScript	
  в	
  БЭМ-­‐терминах	
  	
  

Оперирует	
  привычными	
  понятиями	
  :-­‐)	
  




21	
  
компонент	
  стека	
  разработки	
  проекта	
  
                                           	
  
             в	
  БЭМ-­‐методологии	
  
22	
  
hrp://github.com/bem/bem-­‐bl	
  




23	
  
It’s	
  Code1me	
  




24	
  
blocks-common/i-bem/i-bem.js!




25	
  
blocks-common/i-bem/i-bem.js!




26	
  
blocks-common/i-bem/i-bem.js!




27	
  
blocks-common/i-bem/i-bem.js!




28	
  
29	
  
HTML	
  




30	
  
<div !
   class="myblock i-bem"!
   onclick="return {!
       myblock: { params: {} }}">!
!
   <span class="myblock__item"></span>!
</div>!
!
!




    31	
  
<div !
   class="myblock i-bem"!
   onclick="return {!
       myblock: { params: {} }}">!
!
   <span class="myblock__item"></span>!
</div>!
!
!




    32	
  
Декларация	
  блока	
  




33	
  
BEM.DOM.decl('myblock', {!
!
    /* собственные свойства экземпляра */!
!
}, {!
!
    /* статические свойства */!
!
})!




    34	
  
BEM.DOM.decl('myblock', {!
!
       method : function() {!
!
             // экземпляр5
             this!
         !
             // ссылка на класс!
             this.__self!
         !
             // статический метод класса!
             this.__self.staticMethod()!
!
             // super-call!
             this.__base()!
!
       }!
!
})! 35	
  
BEM.DOM.decl('myblock', {!
!
       method : function() {!
!
             // экземпляр5
             this!
         !
             // ссылка на класс!
             this.__self!
         !
             // статический метод класса!
             this.__self.staticMethod()!
!
             // super-call!
             this.__base()!
!
       }!
!
})! 36	
  
BEM.DOM.decl('myblock', {!
!
       method : function() {!
!
             // экземпляр5
             this!
         !
             // ссылка на класс!
             this.__self!
         !
             // статический метод класса!
             this.__self.staticMethod()!
!
             // super-call!
             this.__base()!
!
       }!
!
})! 37	
  
BEM.DOM.decl('myblock', { /* ... */ }, {!
!
        staticMethod : function() {!
!
               // класс         !
               this !
!

               // super-call!
               this.__base()!
!
        }!
!
})!




      38	
  
Селекторы	
  блоков	
  




39	
  
// поиск внутри контекста5
this.findBlockInside([elem], block)!
!
// поиск снаружи контекста5
this.findBlockOutside([elem], block)!
!
// поиск на BEM-узле текущего блока5
this.findBlockOn([elem], block)!
!



    40	
  
// поиск внутри контекста5
this.findBlocksInside([elem], block)!
!
// поиск снаружи контекста5
this.findBlocksOutside([elem], block)!
!
// поиск на BEM-узле текущего блока5
this.findBlocksOn([elem], block)!
!



    41	
  
Элементы	
  




42	
  
// кеширующий селектор5
this.elem(name,!
   [modName], [modVal])!
!
// некеширующий5
this.findElem([ctx], name, !
   [modName], [modVal])!




    43	
  
Модификаторы	
  




44	
  
// значение модификатора блока5
this.getMod(modName)!
!
// значение модификатора элемента5
this.getMod(elem, modName)!
!
!




    45	
  
// проверка модификатора5
this.hasMod([elem], modName, modVal)!
!
// установка модификатора 5
this.setMod([elem], modName, modVal)!
!
// удаление модификатора5
this.delMod([elem], modName)!
!
// переключение значений модификатора5
this.toggleMod([elem], modName,          !
   modVal1, modVal2, [condition])!
    46	
  
Реакция	
  на	
  изменение	
  
модификатора	
  




47	
  
onSetMod : {!
!
      'mod1' : {!
          !
              // установка модификатора mod1 в val15
              'val1' : function(mod, val, oldVal) { !
!
              }!
!
      },!
!
      // установка модификатора `mod2` в любое значение5
      'mod2' : function(mod, val, oldVal) {!
!
      }!
!
}!
!    48	
  
onElemSetMod : {!
!
      /* структура, аналогичная блоку */!
!
      'elem' : {!
!

              'mod1' : {!
!
                // дополнительный параметр `elem` 5
                'val1' : function(elem, mod, val, oldVal) {!
!
                }!
!
         ...!
!
}!


     49	
  
События	
  




50	
  
// DOM-события5
this!
   .bindTo([elem], event, fn)!
   .unbindFrom([elem], event)!
!
!
// BEM-события5
this!
   .on(event, [data], fn, [ctx])!
   .un(event, [data], fn, [ctx])!
   .trigger(event, [data])!
!
    51	
  
Инициализация	
  блока	
  




52	
  
<div !
 class="myblock myblock_js_inited i-bem"!
 onclick="return {!
   myblock: { params: {} }}">!
!
 <span class="myblock__item"></span>!
</div>!
!
!




    53	
  
onSetMod : {!
!

         'js' : {!
              !

                  'inited' : function() { !
!
                       /* «конструктор блока» */!
!
                  }!
!

         }!
!

}!
!
     54	
  
Не	
  рассказал	
  про	
  

•  блоки	
  без	
  DOM-­‐представления	
  

•  ленивая	
  инициализация	
  блока	
  (live)	
  

•  работа	
  со	
  статическими	
  свойствами	
  

•  каналы	
  (Pub/Sub)	
  
            …и	
  много	
  еще	
  чего	
  интересного	
  




   55	
  
„JavaScript-­‐реализация	
  блока	
  i-­‐bem“	
  
hrp://bem.github.com/bem-­‐bl/sets/common-­‐desktop/i-­‐bem/i-­‐bem.ru.html
                                                                          	
  




  56	
  
Владимир	
  Варанкин	
  
Разработчик	
  интерфейсов	
  
	
  
varankinv@yandex-­‐team.ru	
  

@tvii	
  

github.com/narqo	
  

	
  
За	
  картинки	
  спасибо:	
  
1.    hrp://dan7e87.deviantart.com/art/Iron-­‐Man-­‐Suit-­‐Design-­‐W-­‐I-­‐P-­‐194579401	
  
2.    hrp://theheroicage.com/invincible-­‐iron-­‐man-­‐armor-­‐and-­‐glory/	
  
3.    hrp://so…-­‐h.deviantart.com/art/zombie-­‐concept11-­‐216439938	
  
4.    hrp://spagnolo.deviantart.com/art/Supers-­‐Color-­‐synthesis-­‐2-­‐189705274	
  
5.    hrp://ˆger1313.deviantart.com/art/Push-­‐258184965	
  
6.    hrp://www.mymodernmet.com/profiles/blogs/11-­‐cleverly-­‐designed-­‐w‹	
  
7.    hrp://prolificpen.deviantart.com/art/Speedpaint-­‐Swords-­‐317004863	
  
8.    hrp://agoners.wordpress.com/2008/12/04/the-­‐curious-­‐orange/	
  
9.    hrp://hmmgabby.deviantart.com/art/summer-­‐2010-­‐165667847	
  

More Related Content

What's hot

Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!Roman Dvornov
 
Преимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсовПреимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсовYandex
 
БЭМ в Мануфактуре РИФ-Воронеж 2014
БЭМ в Мануфактуре РИФ-Воронеж 2014БЭМ в Мануфактуре РИФ-Воронеж 2014
БЭМ в Мануфактуре РИФ-Воронеж 2014Ivan Voischev
 
Вебинар по БЭМ: сборка и оптимизация проекта
Вебинар по БЭМ: сборка и оптимизация проектаВебинар по БЭМ: сборка и оптимизация проекта
Вебинар по БЭМ: сборка и оптимизация проектаYandex
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
 
Авто-тесты в кармане // SECR-2015
Авто-тесты в кармане // SECR-2015Авто-тесты в кармане // SECR-2015
Авто-тесты в кармане // SECR-2015Dmitry Cheremushkin
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерRoman Dvornov
 

What's hot (7)

Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 
Преимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсовПреимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсов
 
БЭМ в Мануфактуре РИФ-Воронеж 2014
БЭМ в Мануфактуре РИФ-Воронеж 2014БЭМ в Мануфактуре РИФ-Воронеж 2014
БЭМ в Мануфактуре РИФ-Воронеж 2014
 
Вебинар по БЭМ: сборка и оптимизация проекта
Вебинар по БЭМ: сборка и оптимизация проектаВебинар по БЭМ: сборка и оптимизация проекта
Вебинар по БЭМ: сборка и оптимизация проекта
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Авто-тесты в кармане // SECR-2015
Авто-тесты в кармане // SECR-2015Авто-тесты в кармане // SECR-2015
Авто-тесты в кармане // SECR-2015
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
 

Similar to Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"

Планы по разработке bem-core@v3 — Сергей Бережной, Яндекс
Планы по разработке bem-core@v3 — Сергей Бережной, ЯндексПланы по разработке bem-core@v3 — Сергей Бережной, Яндекс
Планы по разработке bem-core@v3 — Сергей Бережной, ЯндексYandex
 
Сергей Татаринцев — Написание модулей технологий для bem-tools
Сергей Татаринцев — Написание модулей технологий для bem-toolsСергей Татаринцев — Написание модулей технологий для bem-tools
Сергей Татаринцев — Написание модулей технологий для bem-toolsYandex
 
Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Yandex
 
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"Yandex
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Yandex
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими рукамиchaykaborya
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Yandex
 
Библиотека bem-components — Ангелина Сидорцова, Яндекс
Библиотека bem-components  — Ангелина Сидорцова, ЯндексБиблиотека bem-components  — Ангелина Сидорцова, Яндекс
Библиотека bem-components — Ангелина Сидорцова, ЯндексYandex
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandex
 
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"Yandex
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природеIhor Zenich
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование версткиTalks&Works
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Yandex
 
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтендаBEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтендаDALEE digital agency
 
BEM for corporate sites — failover frontend
BEM for corporate sites — failover frontendBEM for corporate sites — failover frontend
BEM for corporate sites — failover frontendAlex Yaroshevich
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Yandex
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackAlexey Ivanov
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»Roman Dvornov
 
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"Yandex
 

Similar to Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?" (20)

Планы по разработке bem-core@v3 — Сергей Бережной, Яндекс
Планы по разработке bem-core@v3 — Сергей Бережной, ЯндексПланы по разработке bem-core@v3 — Сергей Бережной, Яндекс
Планы по разработке bem-core@v3 — Сергей Бережной, Яндекс
 
Сергей Татаринцев — Написание модулей технологий для bem-tools
Сергей Татаринцев — Написание модулей технологий для bem-toolsСергей Татаринцев — Написание модулей технологий для bem-tools
Сергей Татаринцев — Написание модулей технологий для bem-tools
 
Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"Сергей Бережной "Внедрение БЭМ в существующие системы"
Сергей Бережной "Внедрение БЭМ в существующие системы"
 
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими руками
 
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
Владимир Гриненко "i-bem.js: JavaScript в БЭМ-терминах"
 
Библиотека bem-components — Ангелина Сидорцова, Яндекс
Библиотека bem-components  — Ангелина Сидорцова, ЯндексБиблиотека bem-components  — Ангелина Сидорцова, Яндекс
Библиотека bem-components — Ангелина Сидорцова, Яндекс
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природе
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
 
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтендаBEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
 
BEM for corporate sites — failover frontend
BEM for corporate sites — failover frontendBEM for corporate sites — failover frontend
BEM for corporate sites — failover frontend
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»
 
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"
Сергей Бережной "Экзотическая шаблонизация, или как писать HTML для блоков"
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Recently uploaded (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 

Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"