Require.js – AMD w praktyce

Już kilkukrotnie poruszałem temat tworzenia modułów (czasem nawet „klas”) w JavaScripcie. Tym razem coś nowego – asynchroniczne definiowanie modułów. W skrócie AMD (ang. asynchronous module definition). Coraz więcej znanych frameworków i bibliotek wykorzystuje właśnie to podejście (choćby Dojo i jQuery).

W tym wpisie spróbuję pokazać dlaczego powstało takie rozwiązanie oraz przedstawić kilka prostych zastosowań.

Na początek warto:

REST – ciekawszy sposób na komunikację client-server

REST (ang. Representational State Transfer) jest wzorcem narzucającym dobre praktyki tworzenia architektury aplikacji rozproszonych. RESTful Webservices (inaczej RESTful web API) jest usługą sieciową zaimplementowaną na bazie protokołu HTTP i głównych zasad wzorca REST. W tym wpisie postaram się pokazać (bardzo) podstawowe założenia.

Ważnym założeniem REST jest istnienie zasobów (ang. resources) jako źródeł danych a także żądana akcja. Ale może po kolei…

Zapomniane metody HTTP w Ajaksie

Komunikując się z serwerem najczęściej korzysta się z dwóch metod:

  • GET
  • POST

Co więcej, często wykorzystuje się je nieprzemyślany sposób (aby nie powiedzieć losowy). Nigdy nie wiadomo, czy żądanie doda, usunie, nadpisze czy tylko pobierze dane z serwera. A szkoda, bo przecież o ile ładniej jest patrzeć w konsole Firebuga i po samym rodzaju metody odczytywać jakiego rodzaju operacja została wywołana.

Tytułowe „zapomniane” metody to (jest ich więcej, ale nie są potrzebne dla tego wpisu):

Parsowanie JSON

JSON (ang. JavaScript Object Notation) jest bardzo przyjemnym formatem wymiany danych. W tym wpisie postaram się pokazać kilka sposobów na parsowanie ciągu znaków zgodnego (lub zbliżonego) z JSON. Z zasadami tworzenia poprawnego JSON można zapoznać się na oficjalnej stronie.

Opisane sposoby:

  • funkcja `eval’ (natywna funkcja JS – archaiczne rozwiązanie)
  • biblioteka json2 (obiekt `JSON’) by Doug Crockford
  • biblioteka json_parse’ (funkcja `json_parse’)  by Doug Crockford
  • biblioteka json_sans_eval (funkcja jsonParse) by Mike Samuel
  • obiekt JSON = { stringify : function, parse : function } (natywny obiekt JS – nowsze przeglądarki)
  • parser JSON w jQuery
  • parser JSON w Dojo Toolkit

Czytaj dalej Parsowanie JSON

Książka: „Dojo. The Definitive Guide”

HTML5 i CSS3. Standardy przyszłościDojo. The Definitive Guide

Jeśli właśnie zadajesz sobie pytanie: „Czym u licha jest Dojo?” to wiedz, że sporo nie wiesz o nowoczesnych, bardzo przyjaznych użytkownikowi i programiście frameworkach (toolkitach) JavaScript.

Dojo Toolkit jest jednym z najlepszych frameworków Javascript dostarczanym razem z zestawem narzędzi, np. Shrinksafe (zmniejszanie rozmiaru kodu plików JS), buildscript (budowanie jednego pliku z kodem wielu modułów), checkstyle, itp.

Dojo Toolkit jest w pełni darmowy.

Dojo Toolkit wspiera wszystkie najpopularniejsze przeglądarki.

Dojo Toolkit jest nadal rozwijany i posiada dobre zaplecze społecznościowe.

Dojo Toolkit jest tematem książki, którą warto przeczytać. Czytaj dalej Książka: „Dojo. The Definitive Guide”

Książka: „JavaScript. Programowanie obiektowe”

Okładka JavaScript. Programowanie obiektowe

W świecie JavaScript rewolucja za rewolucją. Na szczęście wyłania się już ścisła elita autorów, których będzie można polecać z zamkniętymi oczami i nie bać się ich cytować, będąc pewnym, że głupot nie gadają.

Stoyan Stefanov – zapamiętać to nazwisko.

Połączenie Erica Meyera i Douga Crockforda. Zdecydowanie najlepsza książka o JavaScript (nie tylko obiektowym, ale całkowicie ujmująca temat) jaką przeczytałem. A proszę mi wierzyć – było ich kilka.

Stawiam ją na równi z „Mocnymi stronami JavaScript” (D. Crockford) jeśli chodzi o wiedzę, którą autor przekazał w książce. Jednocześnie uważam, że jest o poziom lub dwa łatwiejsza do przyswojenia. Przykłady są bardziej intyicyjne, całość sprawia wrażenie pełnej prezentacji, a nie jedynie szczątkowych notatek. Czytaj dalej Książka: „JavaScript. Programowanie obiektowe”

XML – format wymiany danych w Ajaksie

XML jest bardzo czytelnym dla człowieka i prostym w nauce formatem. Nazwa pochodzi od „Extensible Markup Language” – rozszerzalny język znaczników. Służy do opisywania zawartości dokumentów elektronicznych. Jego olbrzymią zaletą jest fakt, że nawet osoba niemająca na co dzień styczności z programowaniem, powinna w miarę szybko zrozumieć informacje nim zawarte. Podstawowymi składnikami dokumentu XML są: elementy oraz atrybuty. Czytaj dalej XML – format wymiany danych w Ajaksie

Walidacja danych w formularzach

Prawie na każdej stronie internetowej występują formularze. Są bardzo ważnym i potrzebnym elementem strony – pozwalają na pobieranie danych od internauty. Formularze są wszędzie – system komentarzy, fora internetowe, webmaile, twitter itp. Zamierzam w  tym i kilku następnych wpisach pokazać jak można (bo to, że trzeba jest bezdyskusyjne) walidować dane pobierane przez formularze.

Po co walidować?

Praktycznie na każdej stronie dzisiaj wymagana jest pobieranie w jakiś sposób danych od użytkownika. Automatyzacja pobierania danych z wykorzystaniem formularzy dostępnych na stronie daje z jednej strony święty spokój administratorom serwisów, z drugiej jednak pozwalają na różnego rodzaju ataki. Dodatkowym powodem, dla którego warto walidować dane jest pomoc użytkownikowi – skoro podaje swój e-mail, to być może jednak chciałby, aby podesłać mu jakąś informację. Jeśli poda zły adres, [np. zapomni zapisać „@domena.pl”] mail nie dojdzie.

Zatem walidacja jest dobra dla wszystkich :). Czytaj dalej Walidacja danych w formularzach

JavaScript na poważnie

[gview file=”http://yarpo.pl/download/javascript-by-yarpo-1.2.pdf”]

pobierz pdf

Jest to fragment mojej pracy magisterskiej o tytule „Zastosowanie nowoczesnych frameworków  wspierających Ajax do budowy aplikacji internetowej TCT”. Pisanie tej pracy jest częściowo wpierane przez projekt NOR-STA (nor-sta.eu).

Byłbym wdzięczny za wszelkie uwagi.

NOR-STA (http://nor-sta.eu)