Анонс доклада на Питер-ЦСС

Анонс доклада на Питер-ЦСС

16-го июня прочитаю на Питер-ЦСС доклад о декларативных АПИ на английском. Организаторы конференции ещё напоминают, что с завтрашнего дня билет стоит 4500 ₽ (сегодня ещё 4000 ₽).

Предположим, вы сделали какой-нибудь веб-компонент. Например умную выпадайку с автодополнением под названием superComplete. Тогда вы, скорее всего, предложите инициализировать его как-нибудь так:

var superCompleteInstance = new SuperComplete ('#el')

Или, если это плагин для Джейквери, то так:

$ ('#el').superComplete ()

А надо не так. Пусть оно инициализируется само, увидев знакомый класс:

<input id="address" class="supercomplete" />

Я называю это декларативными АПИ: вместо того, чтобы давать команды, ты описываешь свойства компонента параметрами. Научился я такому сто лет назад у Артёма Поликарпова с его Фоторамой, и использую в своих веб-продуктах.

Социокнопки «Лайкли» вставляют на страницу так:

<div class="likely">
  <div class="twitter">Твитнуть</div>
  <div class="facebook">Поделиться</div>
</div>

Чтобы поставить плеер «Жуэль», надо дать класс ссылке на аудиофайл:

<a href="news.mp3" class="jouele">Ilya Birman: News</a>

В «Эмёрдже» чтобы элемент появился только после полной загрузки всего содержимого, а до того отображалась крутилка, нужно завернуть его в такой див:

<div class="emerge" data-spin="true">...</div>

Чем больше всего умеет компонент, тем сложнее придумать такой синтаксис. Особенно сложно становится, когда у вас много параметров, и они определяют поведение во времени и при условиях. Сначала кажется, что в этих случаях без Джаваскрипта никак не обойтись. Но если немного подумать, то часто выясняется, что вполне обойтись.

Расскажу, почему это клёво и как придумывать синтаксис таких вот декларативных АПИ.

Как сказал Стив Джобс, «Design is how it works». Это доклад про дизайн.

Другие объявленные доклады:

  • Paint the Web with CSS. On Creating Art with Code
  • Creating Magic With Houdini
  • Designing Data-Driven Products. Controlled Chaos and Evolution
  • Chinese Typography on the Web
Дальше
Мои книги