войти зарегистрироваться

JavaScriptПростая минималистская реализация сложных JavaScript приложений

Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

Я пиарюсь Виджет комментариев Cackle: релиз-кандидат

image

45 дней назад мы запустили beta версию виджета комментариев — Cackle. За это время нас просто «закидали» письмами с пожеланиями и доработками. Самые значимые и важные из них были отобраны, рассмотрены, приоритизированы и сделаны. В итоге у нас получился релиз-кандидат, который мы хотели бы предоставить вашему вниманию.

GoogleВиджет поиска Google+

Настраиваемый виджет поиска для Google+, который вдохновлен виджетами Twitter. Этот виджет ищет посты и комментарии пользователей и показывает полученную в итоге версию соответствия постов с прикреплёнными изображениями.

Mac OS XДобавляем города в виджет World Clock



Если кто-то из пользователей MacOS вынужден следить за временем в разных часовых поясах (ну или наслаждается этим процессом глобализации), он, возможно, захочет использовать для этих целей Dashboard и стандартный виджет World Clock.

Однако, к сожалению, этот виджет не позволяет отображать время для всех нужных городов, к примеру, в нем от рождения нет Минска! Краем уха я слышал, что виджеты для дашборда наврайчены на javascript/css/html. Итак, пришло время посмотреть, так ли это, и исправить недоразумение с недостатком городов. Я не задавался целью изучать API виджетов, это скорее туториал для людей, не совсем близких к программированию.

Я пиарюсьCackle — виджет комментариев для вашего сайта

image

Cackle — это встраиваемый javascript виджет для комментариев c авторизацией пользователей через OpenID провайдеров. Идея не новая, но мы добавили в виджет несколько возможностей, которые существенно отличают Cackle от конкурентов. Под катом описание того, что у нас получилось.

JavaScriptDojo-виджет своими руками из песочницы

Доброго времени суток всем читателям! В данном топике я поделюсь своим опытом создания виджетов на Dojo на примере числового LED-индикатора (часов, таймера и пр.). Я не буду углубляться в историю создания фреймворка и теорию — топик носит практический характер.
Итак, начнём.

Linux для всехВиджет «Бинарные часы» для Awesome из песочницы

Как я дошел до жизни такой

Все началось с перехода на новое место работы. Хотя, нет… Все началось с Марлы со случайно увиденного где-то изображения с чудо-часами. Это изображение меня заинтересовало, я обратился к помощи википедии, и открыл для себя такую чудесную вещь, как бинарные часы (Binary-coded decimal clocks), после чего я, тогда изучавший в свободное время Java, настолько проникся этой концепцией отображения времени, что даже написал простенькое приложение с бинарными часами. Время шло, приложение то давно забылось, бинарные часы временно выпали из моего поля зрения и уютно устроились на чердаке памяти. Но тут череда событий перетряхнула этот чердак, и мысль о бинарных часах снова пошла в обработку мозгом.

GMailНовый Виджет «Люди» в Gmail

image
На блоге Gmail было объявлено о скором запуске нового виджета «Люди». Не знаю, как он будет на самом деле называться в русскоязычной локализации, команда Gmail пока что называет его просто «people widget».

Виджет будет расположен в правой части окна, и будет показывать релевантную информацию и контент от друзей, семьи и коллег, которую вы, в общем-то, могли и без этого найти, пусть и с некоторым трудом.

Веб-разработкаOrchard CMS для разработчика — часть 2

image
В продолжении статьи о разработке для open-source CMS Orchard рассмотрим вывод контента на страницу, обновление модулей и концепцию виджетов. И закончим модуль, позволяющий добавить к сайту на Orchard список пунктов быстрого перехода для закрепленного сайта Internet Explorer 9.

Разработка под AndroidВиджет со счетчиком непрочитанных сообщений из песочницы

Часто встречающаяся задача — создание виджета со счетчиком непрочитанных сообщений/звонков и т.п. Однако в Android нет стандартного класса для создания таких виджетов.

image

Как же все-таки создать такой виджет?