Web Application Development with JavaScript libraries: jQuery & jQuery Mobile, AngularJS, Yahoo! UI 3, Web 2.0 Mashups


Уеб технологиите промениха начина, по който живеем, работим, комуникираме, учим и се забавляваме. Съчетанието от гъвкавост и независимост от време и място от една страна, с отдалечения достъп до информация „при необходимост“ и удобството при използване от друга ги прави предпочитан вариант за реализация на клиентски интерейс към налични уеб услуги и сървърни приложения. Съвременните уеб приложения са независими от браузъра и операционната система, базирани са върху отворени стандарти (HTML, CSS и JavaScript) и не отстъпват по възможности на традиционните десктоп приложения с графичен потребителски интерфейс. Те могат да консумират отдалечни уеб услуги и да ги комбинират под формата на mash-ups – например прогноза за времето по избрания от нас маршрут, визуализирана върху карта на Google Maps. Ефективната разработка на такива приложения стана възможна благодарение на използването на стандартизирани JavaScript библиотеки. Сред основните функции предоставяни от тези библиотеки са независимият от браузъра асинхронен достъп до сървърни ресурси, добил популярност под името AJAX (Asynchronous JavaScript and XML), както и наличието на множество готови компоненти за реализиране на анимирани ефекти, drag-and-drop, валидация на форми, layout, таблици, дървета, диаграми, текстови редактори, реагиране на събития, манипулиране на документния обектен модел (DOM) и много други. Някои от JavaScript библиотеките предостават инструменти за цялостна стилизация на уеб приложението – настройваеми теми (jQuery, Dojo Toolkit). Курсът „Разработка на уеб приложения с JavaScript библиотеки: jQuery & jQuery Mobile, AngularJS, Yahoo! UI 3, Web 2.0 Mashups“ запознава с особеностите на обектната реализация в JavaScript (с помощта на конструиращи функции и литерали – в JavaScript няма класове, има прототипи!), наследяването на базата на прототипи или с използване на closures, както и някои помощни обекти улесняващи реализацията на наследяване като Prototypal inheritance на Douglas Crockford, lazy inheritance и др. Разглеждат се симулирането на класове и удобствата за реализиране на множествено наследяване (mix-in) предоставяни от повечето съвременни JavaScript библиотеки като jQuery, YUI3 и Dojo, например. Следва разглеждане на стандартния за съвременните браузъри обект XMLHttpRequest и неговата употреба за реализация на асинхронни (АJAX) заявки за данни към сървъра. AJAX позволява създаването на по-ефективни, бързи и лесни за използване уеб-базирани потребителски интерфейси. Сред типичните приложения на AJAX са:

  • валидиране на уеб-форми в реално време;
  • автоматично допълване на информацията във формата;
  • асинхронно зареждане на ресурси преди те да бъдат поискани от потребителя;
  • разработка на обогатени интерактивни компоненти като менюта, таблици с данни, текстови редактори, календари, индикатори на прогрес и др.
  • визуализация на променящи се данни, като точки, борсови индекси, прогнози за времето и други, server push;
  • извличане и агрегиране на данни от различни сайтове;
  • частично изпращане на данни на сървъра и използване на една единствена страница за цялото приложение (както при десктоп интерфейсите, не е необходимо потребителят да преминава през множество междинни страници).

В допълнение на “класическите“ XML-базирани услуги, се разглежда създаването на добиващите все по-голяма популярност уеб услуги в стил REST (Representational State Transfer) с помощта на Java ™ (JAX-RS API, част от Java™ EE 7) и консумирането им чрез JavaScript клиент. Примери за използване на RESTful Web Services са: Facebook API, Flickr, Twitter и др. Разглеждат се различни подходи за сериализация на данните между клиента и сървъра, като JavaScript Object Notation (JSON) и „JSON with padding“ (JSONP) за извличане на данни от друг домейн, както и варианти на JSON оптимизирани за пренос на различни по вид данни като: Binаry JSON (BSON), JSON-RPC протокол за отдалечено извикване на методи на сървъра от JavaScript клиента, JsonML олекотена алтернатива на XML сериализацията, GeoJSON за кодиране на географски данни (използвани от Google и Yahoo, както и повечето ГИС системи) и др. Курсът е практически ориентиран и разглежда в детайли необходимите технологии за реализиране на богати потребителски интерфейси (RIA) за Интернет приложения с AJAX. Сред основните практически въпроси са:

  • HTML и XML Document Object Models (DOM);
  • Object-Oriented JavaScript – методи и свойства, обектна нотация, функции конструктори, наследяване базирано на разширяване на прототипа, Closures & Callbacks;
  • JS design patterns: singleton, module, method chaining и др.;
  • Технологии за реализация на AJAX страна на клиента и сървъра;
  • Последователност на операциите при осъществяване на AJAX взаимодействие;
  • XMLHttpRequest – методи и свойства;
  • JSON, JSONP, BSON, JSON-RPC, JsonML, GeoJSON сериализация и комуникация между клиента и сървъра;
  • Постъпково изпълнение и отстраняване на грешки в AJAX клиентски приложения (Ajaix Debugging Tools);
  • jQuery & jQuery Mobile – JavaScript библиотеки за бърза разработка на AJAX приложения и набор от готови компоненти (widgets) с възможност за конфигуриране на темата (http://jquery.com/);
  • Yahoo! User Interface Library 3 (YUI 3) – JavaScript библиотека от ново поколение на Yahoo! предлагаща вградени възможности за асинхронно зареждане „при необходимост“ на собствените си модули, защитено добавяне на клиентския код в „sandbox”, развита инфраструктура за изграждане на собствени компоненти, както и нарастващи колекции от Widgets, инструменти и CSS ресурси, достъпна под BSD лиценз (http://developer.yahoo.com/yui/3/);
  • Dojo Toolkit & widgets – JavaScript библиотека за бърза разработка на AJAX приложения и набор от готови компоненти (widgets) като менюта, табове, сортируеми таблици, анимационни ефекти, дървета с drag-and-drop, валидиращи форми, календари, часовник, богат текстов редактор, Datagrids & Charts и други. Предлага възможност за асинхронно зареждане на собствените си пакети. Сред новостите в Dojo са поддръжката на HTML 5 (включително geolocation, touch events и 3-D effects, както и поддръжката на визуализационни компоненти за изграждане на приложения за мобилни и вградени устройства (http://www.dojotoolkit.org/);
  • Създаване и консумиране на RESTful Web Services (Java/ JavaScript);
  • Google Maps & Mashups. Controls. Events. Geocoding. Reverse Geocoding. Overlay, Markers & Routes (http://maps.google.com/);
  • Yahoo! Query Language (YQL) – подобен на SQL език и приложен интерфейс (JavaScript API) позволяващ търсене, филтриране и обединяване на резултати между различни уеб услуги предоставени от Yahoo!;
  • Mashups – комбиниране на уеб услуги от различни доставчици – на базата на пример: прогноза за времето достъпна чрез YQL, която ще бъде визуализирана върху карта ( Google Maps 3 API, заедно със снимки от Flickr (достъпни през Flickr API).

Курсът включва както преглед на готови компоненти, така и практическа реализация на собствени AJAX компоненти и разработка на цялостно mashup приложение. От участниците се изисква познаване на езиците за програмиране JavaScript и Java, както и известен опит с технологиите HTML, CSS и XML. Курсът се води от Траян Илиев – квалифициран преподавател с 12-годишен педагогически стаж във ФМИ на СУ и практически опит в управлението и разработката на бизнес софтуерни проекти (eLearning, WebTV, Web 2.0 Mashups, JavaScript Portlets).

За повече информация и записване, моля пишете на нашия e-mail адрес: office@iproduct.org