Parę słów o sobie...

Tytułem wstępu

Nazywam się Andrzej Żukowski. Jestem programistą. Programowanie to moja pasja. Największą przyjemność sprawia mi projektowanie aplikacji. Budowanie odpowiednio przemyślanych struktur danych, dostosowanych do specyfiki aplikacji, tworzenie między nimi powiązań, a także "podłączenie" tej wewnętrznej architektury do interfejsu użytkownika, i wreszcie rozwijanie działającej aplikacji poprzez dokładanie kolejnych funkcjonalności - to wszystko jest dla mnie najprzyjemniejszą stroną programowania. Równie przyjemne jest też projektowanie baz danych, na których będzie oparta aplikacja. Testowanie i poprawianie błędów już mnie tak nie fascynuje. Ostatnio szczególnie przypadło mi do gustu tworzenie frameworków MVC i systemów CMS.

Dlaczego coś mnie ciągle gna?

Pasja ta skłania mnie do poszukiwania inspiracji do projektów. Gdy już pomysł znajdę, staram się go jak najszybciej wcielić w życie. Siadam do komputera i piszę. Jednak jestem przy tym niecierpliwy - chcę, aby implementacja była gotowa natychmiast. Coś mnie "w środku gna", abym tworzył funkcjonalność za funkcjonalnością. Z tego powodu niestety zatracam radość tworzenia i przyjemność samego pisania. Owszem, gdy uda mi się stworzyć jakieś przemyślane rozwiązanie, zgrabną metodę lub algorytm, spójną architekturę klas czy inne takie, odczuwam radość i satysfakcję. Ale to szybko mija... Dzień, dwa i już tego miłego doznania nie ma. Jego miejsce zajmuje czająca się za plecami presja ukończenia projektu. I zawsze, ale to zawsze, przy każdym projekcie mam złudne przekonanie, że gdy projekt będzie gotowy, ja będę cieszył się z jego używania. W praktyce okazuje się, że mając ukończony projekt, nie bardzo mi się chce go używać. Wraca nuda i pytanie "co dalej?". Chyba tylko poszukiwanie kolejnych inspiracji...

I znowu mam projekt!

Na kolejną inspirację nie trzeba było długo czekać. Powstał pomysł nauczenia się Javy. Najlepiej w zastosowaniach webowych. Wziąłem się więc za Javę Enterprise Edition. Znalazłem darmową platformę deweloperską na OpenShift. Jest to bardzo wygodny i nowoczesny hosting oparty na chmurze. Darmowe konto na hostingu umożliwia uruchomienie do trzech aplikacji. Na moje potrzeby wystarczy. Na platformie tej zacząłem tworzyć następnego CMS-a, ale tym razem w Javie. Projekt ten nazwałem Java CMS. Serwis jest już praktycznie gotowy, teraz wystarczy wypełnić go treścią, czyli napisać artykuły. Muszę się zastanowić, jakie stworzyć kategorie i jak pogrupować artykuły.

Nie umiem usiedzieć na miejscu...

... i cieszyć się tym, co zrobiłem. Moje projekty bardzo szybko tracą w moich oczach na atrakcyjności. Taki rodzaj "starzenia się" technologicznego. Poszukuję więc nowych tematów, nowych technologii do opanowania. Ostatnim tego przykładem jest framework AngularJS. Od razu wpadł mi w oko, głównie dlatego, że chciałem spróbować swoich sił w aplikacjach typu Single Page Application. Stworzyłem taki projekt Angular CMS, z którego jestem nawet zadowolony, choć ciągle jeszcze coś w nim poprawiam. Jakiś czas temu zainteresowałem się technologią MEAN Stack (skrót od MongoDB, Express.js, Angular oraz Node.js). Wygląda obiecująco. Skrypt serwera i aplikacji klienckiej pisze się w JavaScripcie, nie ma tam nic skomplikowanego, wszystko jest przejrzyste i wygodne, komunikacja z bazą danych odbywa się prostym protokołem REST API, baza operuje na obiektach JavaScriptowych, dane przekazywane są w formacie JSON - a więc wszystko jest proste, spójne i jednorodne. Jest to ogromny atut, który zdecydował, że się zająłem tym "stosem technologicznym". Przygotowałem na platformie OpenShift prostą aplikację demo, gdzie możecie sobie coś poklikać, napisać, poprzeglądać i takie tam. I najważniejsze - umieściłem tam instrukcję wdrożenia własnej aplikacji. Na stronie głównej podałem link do kodu na GitHubie.