Blog webdeveloperski Patryk yarpo Jar

Tworzenie klas w Dojo (stary mechanizm < 1.6)

Autor wiadomości Październik 11, 2011

Opisany tu sposób tworzenia "klas" Dojo jest już wycofywany. Aktualnie w Dojo Toolkit zaleca się (a w przyszłości będzie to jedyne dostępne rozwiązanie), by tworzyć moduły zgodne z AMD. Zobacz nowszy wpis o tym jak tworzyć moduły Dojo zgodne z AMD.

Dojo jest bardzo rozbudowanym i jednocześnie przyjaznym toolkitem JavaScript. W JavaScript, jak pewnie wiesz nie ma klas. Dojo wprowadza jednak zarówno takie pojęcie, jak i zestaw mechanizmów pozwalających bardzo przyjaźnie tworzyć "klasy JavaScript".

Książka: “JavaScript. Programowanie obiektowe”

Autor wiadomości Czerwiec 15, 2011

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.

Książka: “Programowanie obiektowe w PHP 5”

Autor wiadomości Czerwiec 11, 2011

Okładka Programowanie obiektowe w PHP 5

PHP jest bardzo przyjaznym i popularnym językiem. Jego popularność bierze się w głównej mierze z prostoty. Właśnie - prostoty, a nie prostactwa.

PHP, szczególnie w wersji 5, jest naprawdę pełnoprawnym językiem programowania, pozwalającym na tworzenie dużych i skomplikowanych projektów. Książka Hasina Haydera próbuje pokazać możliwości piątej odsłony języka w zakresie OOP (programowania zorientowanego obiektowo).

W książce spodobał mi się układ. Czytając miałem wrażenie, że tworzy ona całość. Tematy jakby wynikały jeden z drugiego. Pozycja nie jest zbyt obszerna (treści < 250 stron) i czyta się ją szybko i sprawnie. Tekst okraszony został sporą ilością kodu prezentującego aktuanie omawiane aspekty, co także przemawia na korzyść książki.

Ucieszyło mnie także, że jeden rozdział został poświęcony testom jednostkowym, co uważam za bardzo poprawne w nauczaniu "nowego pokolenia" programistów.

Gettery i settery w PHP

Autor wiadomości Kwiecień 20, 2011

Najpopularniejszym paradygmatem programowania jest programowanie zorientowane obiektowo. Obiekt posiada jakieś właściwości, które [IMO] najczęściej powinny być prywatne. Warto by było móc się do nich jakoś odwoływać, czy to podczas zapisywania danych, czy też w celu odczytu. Do tego bardzo przydatne okazać się mogą funkcje popularnie zwane getter ("akcesor" - pobierająca dane) bądź setter ("mutator" - ustawiająca).

W tym wpisie postaram się pokazać kilka możliwych podejść do tego zagadnienia.

Ajax w oparciu o pływającą ramkę

Autor wiadomości Marzec 23, 2011

Ajax w szerszym znaczeniu oznacza komunikację z serwerem [wymianę danych z serwerem] bez konieczności przeładowania strony. Często mówiąc Ajax ma się na myśli także DHTML.

Nie o tym jednak będzie ten artykuł. Mam zamiar pokazać jak w łatwy sposób korzystać z dobrodziejstw Ajaksa bez jednego z filarów - obiektu XMLHttpRequest. Zastąpimy go pływającą ramką, a ramkę tę obudujemy w obiekt XMLHttpIframeRequest, który ma identyczny interfejs z natywnym ajaksowym obiektem.

[JS] Zaokrąglanie liczb z zadaną dokładnością

Autor wiadomości Marzec 6, 2011

Jeśli chcemy w JS sprowadzić liczbę z częścią ułamkową do liczby całkowitej możemy wykorzystać metodę Math.round(liczba).

Metoda ta przyjmuje jeden parametr, jest to liczba, która zostanie zaokrąglona wg prawideł matematycznych. Co jednak kiedy chcemy uzyskać zadaną liczbę miejsc po przecinku?

Nie ma wprost metody zaokraglanie(liczba, doMiejscPoPrzecinku). Można jednak łatwo napisać funkcję, która to dla nas zrobi:

Dlaczego new Boolean jest złym pomysłem

Autor wiadomości Luty 23, 2011

Javascript to język w pełni obiektowy. Obiektem jest wszystko: funkcja - obiekt, obiekt - obiekt, zmienna - obiekt... Eh, no i ta pełność ma swoje "widzimisie" i problemy.

Wartości logiczne

W klasycznej logice są dwie: true i false (prawda i fałsz). W JS istnieje jednak konstruktor dla wartości logicznych:

var oBool = new Boolean(false);

Rozszerzanie typu obiektu

Autor wiadomości Styczeń 19, 2011

W poradzie dotyczącej dodawania nowych metod do istniejących obiektów wspomniałem, że da się dodawać metody do wszystkich obiektów - nie tylko do tego jednego wybranego.

Przykładowy kod

String.prototype.letterSpacing = function()
{
    var n = this.length;
    var str_result = '';
    for(var i=0; i &lt; n; i++)
    {
        str_result += this.charAt(i) + ' ';
    }
    return str_result;
}

Rozszerzanie obiektu

Autor wiadomości Styczeń 19, 2011

Każdy obiekt w JS [niezależnie od tego w jaki sposób stworzony] może być rozszerzany. W tym artykule pokażę, jak rozszerzać istniejący obiekt JavaScript.

Stwórzmy sobie obiekt [String]:

var txt = new String('To jest mój napis');

Różne sposoby konkatencji stringów w JS

Autor wiadomości Styczeń 12, 2011

Jest kilka sposobów na łączenie cięgów znaków. W tym artykule opiszę 3.

Sposób I - "optymistyczny"

Optymistyczny dlatego, że używa się samych plusów.

var string_1 = 'Ala ma ';
var string_2 = 'kota';
alert(string_1 + string_2);

Korzystając z tej metody pamiętaj o różnych niespodziankach związanych z wykorzystywaniem operatora `+', który jest też wykorzystywany do dodawania liczb.