Анонс доклада на Питер-ЦСС
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