Postanowiłem wstrzymać wszystkie moje prace Open Source, na rzecz jednego projektu, który w moim przekonaniu jest najlepszym projektem w całym moim życiu (życiu krótkim, acz niewzykle ciekawym;) ). Framework (albowiem projekt będzie szkieletem aplikacji) ten ma jako jeden z pierwszych umożliwić szybkie i bezbolesne tworzenie gier MMOG (ang. Massive Multiplayer Online Game) oraz aplikacji RIA (ang. Rich Internet Application) działających w "czasie rzeczywistym" (czyt. automatycznie aktualizowanych po stronie klienta)
Tego rodzaju aplikacje stawiają bardzo duże wymagania przed programistą. Tworzy je się zupełnie inaczej niż standardowe web-aplikacje. Jest tu znacznie więcej technik AJAXowych i DHTMLa (co przy dużej liczbie metod podmieniających fragmenty stron może być niezwykle uciążliwe). Programista musi zaimplementować skomplikowane mechanizmy aktualizacji danych u użytkowników. Użycie standardowych frameworków jest tu zupełnie nie na miejscu, ze względu na zbyt duże obciążenie procesora i pamięci (w tego typu aplikacjach ilość użytkowników naraz korzystających z aplikacji mierzy się w tysiącach). Ponadto trudo jest coś takiego sklastrować. Zadaniem frameworka będzie więc ułatwienie życia programisty poprzez dostarczenie mu gotowych mechanizmów, po to, aby mógł się skupić jedynie na implementacji rozgrywki i zaprojektowaniu GUI.
Projekt jest dość śmiały technologicznie choć nie nazbyt przesadzony. Aby mówić o wersji gotowej do użytku będę musiał stworzyć własny serwer WWW, nieco różniący się od istniejących rozwiązań (obecnie zrobiony w 20%), pseudo obiektową bazę danych (coś na wzór prevlayera, ale trochę z innym zastosowaniem), mechanizm "dirty templates" (moja kodowa nazwa na szablony dynamicznie zmieniające się w czasie) oraz parę innych równie ważnych mechanizmów.
Oczywiście użytą technologią będzie Ruby, ze względu na to, że do takich zastosowań jak prototypowanie język ten nadaje się znakomicie.
W ciągu najbliższych kilku dni dodam projekt, na którymś z portali Open Source (Sourceforge albo RubyForge). Ponadto stworzę jakieś wiki (prawdopodobnie na swik.net) oraz blog (mam własnego VPSa więc nie będzie z tym problemu).
Blog about everything which has something to do with Java, programming and web applications.
Wednesday, February 22, 2006
Tuesday, January 17, 2006
Watir rocks!
Ruby coraz bardziej daje o sobie znać na świecie. Nie tylko dlatego, iż jest świetnym językiem programowania, ale także dlatego, że powstaje w nim coraz więcej genialnych projektów.
Szukając sposobu na testowanie gui aplikacji webowych nie mogłem do tej pory znaleźć idealnego rozwiązania. Używałem JMetera, który posiada możliwość porównywania strony wynikowej z żądaną zawartością, jednak takie rozwiązanie było dość ograniczone (nie można było testować AJAXowych aplikacji). Tymczasem technologia idzie do przodu - coraz więcej stron używa skomplikowanego JavaScriptu, więc i narzędzia do testowania muszą się zmieniać. JMetera mogłem ze spokojem odłożyć na półkę, gdy na rubyforge.org znalazłem świętego grala do testów aplikacji webowych.
Watir to projekt umożliwiający symulowanie interakcji użytkownika z przeglądarką. Umożliwia symulowanie działań użytkownika - klikania na buttony, wypełniania formularzy a nawet poruszania myszką. Zasada działania programu jest prosta: piszemy program (test jednostkowy), który odpala przeglądarkę, wykonuje określone czynności i sprawdza wyniki. Podczas testu na żywo widzimy co dzieje się w przeglądarce. Podsumowując program genialny bo prosty i intuicyjny. Oczywiście cały kod testujący piszemy w Ruby :D
Szukając sposobu na testowanie gui aplikacji webowych nie mogłem do tej pory znaleźć idealnego rozwiązania. Używałem JMetera, który posiada możliwość porównywania strony wynikowej z żądaną zawartością, jednak takie rozwiązanie było dość ograniczone (nie można było testować AJAXowych aplikacji). Tymczasem technologia idzie do przodu - coraz więcej stron używa skomplikowanego JavaScriptu, więc i narzędzia do testowania muszą się zmieniać. JMetera mogłem ze spokojem odłożyć na półkę, gdy na rubyforge.org znalazłem świętego grala do testów aplikacji webowych.
Watir to projekt umożliwiający symulowanie interakcji użytkownika z przeglądarką. Umożliwia symulowanie działań użytkownika - klikania na buttony, wypełniania formularzy a nawet poruszania myszką. Zasada działania programu jest prosta: piszemy program (test jednostkowy), który odpala przeglądarkę, wykonuje określone czynności i sprawdza wyniki. Podczas testu na żywo widzimy co dzieje się w przeglądarce. Podsumowując program genialny bo prosty i intuicyjny. Oczywiście cały kod testujący piszemy w Ruby :D
Friday, January 13, 2006
Ruby forever!
Minęły 2 miesiące od kiedy poraz pierwszy zetknąłem się z językiem Ruby. Jednak przez ostatni miesiąc szczególnie się nim interestowałem - odwiedzałem serwisy jemu poświęcone, stawiałem różnorodne railsowe web-aplikacje, no i oczywiście programowałem w nim (i w Ruby on Rails również).
Muszę przyznać, że Ruby stał się moim ulubionym językiem. Pomimo, iż w Javie programuję już szmat czasu, to jednak Java chyba nigdy nie wydawała mi się tak genialna jak Ruby. Programując w nim mogłem zapomnieć o conajmniej kilkunastu wzorcach projektowych (w Rubym są one po prostu niepotrzebne!).
Poczułem w końcu (od czasów gdy stworzyłem swoją pierwszą stronę w PHP) przyjemność tworzenia - świadczyć może o tym fakt, iż odpowiednik biblioteki Olitext (napisanej w Javie) stworzyłem w Rubym w zaledwie tydzień (czyli ponad 4x szybciej niz w Javie!). Nie zdarzały mi się momenty gdy technologia stawała mi na drodze - momenty gdy więcej musiałem się zastanawiać nad sposobem użycia bibliotek czy nad strukturą klas aniżeli nad samą implementacją.
Dlatego i Wam szczególnie polecam ten język! :)
Muszę przyznać, że Ruby stał się moim ulubionym językiem. Pomimo, iż w Javie programuję już szmat czasu, to jednak Java chyba nigdy nie wydawała mi się tak genialna jak Ruby. Programując w nim mogłem zapomnieć o conajmniej kilkunastu wzorcach projektowych (w Rubym są one po prostu niepotrzebne!).
Poczułem w końcu (od czasów gdy stworzyłem swoją pierwszą stronę w PHP) przyjemność tworzenia - świadczyć może o tym fakt, iż odpowiednik biblioteki Olitext (napisanej w Javie) stworzyłem w Rubym w zaledwie tydzień (czyli ponad 4x szybciej niz w Javie!). Nie zdarzały mi się momenty gdy technologia stawała mi na drodze - momenty gdy więcej musiałem się zastanawiać nad sposobem użycia bibliotek czy nad strukturą klas aniżeli nad samą implementacją.
Dlatego i Wam szczególnie polecam ten język! :)
Monday, November 28, 2005
Początki z Ruby cz. 3. - Rails
No i doszedłem w końcu do technologii wywołującej osatnimi czasy największe rumieńce u programistów aplikacji webowych. Chodzi oczywiście o Ruby on Rails - framework, który ma szansę stać się najpopularniejszym szkieletem aplikacji wszechczasów.
Aplikacje webowe to szczególny rodzaj oprogramowania. Wiele czynności, które musi wykonać programista jest powtarzalna - od stworzenia mechanizmu dispatchującego, poprzez akcje, widoki i model.
Railsy spełniają wszystkie podstawowe wymogi, które stawiane są nowoczesnym szkieletom web-aplikacji. Można więc w nim korzystać z kontrolerów i szablonów. Można także korzystać z mapowań OR i interfesów web serviceów (to raczej nie często się spotyka w typowych frameworkach).
Mamy więc gotowe samowystarczalne rozwiązanie do pisania małych, średnich a nawet dużych webaplikacji - nie trzeba używać zewnętrzych bibliotek np. do wysyłania maili czy operacji na bazie danych.
Ruby on Rails to także szkielet z bardzo silnym wsparciem dla AJAXu. Mamy zbiór komend, które znacznie skracają czas pisania prawdziwie interaktywnych aplikacji. Co jednak sprawia, że w Railsach zakochuje się coraz większa ilość programistów dawniej przekonanych o potędze Javy? PRZYJEMNOŚĆ Z TWORZENIA i CZAS JAKI TRZEBA POŚWIĘCIĆ NA NIEWAŻNE Z PUNKTU WIDZENIA UŻYTKOWNIKA RZECZY.
W następnym wątku opiszę po krótce mój pierwszy dzień tworzenia projektu Communities Website System, który pisany jest właśnie w Railsach.
Railsy spełniają wszystkie podstawowe wymogi, które stawiane są nowoczesnym szkieletom web-aplikacji. Można więc w nim korzystać z kontrolerów i szablonów. Można także korzystać z mapowań OR i interfesów web serviceów (to raczej nie często się spotyka w typowych frameworkach).
Mamy więc gotowe samowystarczalne rozwiązanie do pisania małych, średnich a nawet dużych webaplikacji - nie trzeba używać zewnętrzych bibliotek np. do wysyłania maili czy operacji na bazie danych.
Ruby on Rails to także szkielet z bardzo silnym wsparciem dla AJAXu. Mamy zbiór komend, które znacznie skracają czas pisania prawdziwie interaktywnych aplikacji. Co jednak sprawia, że w Railsach zakochuje się coraz większa ilość programistów dawniej przekonanych o potędze Javy? PRZYJEMNOŚĆ Z TWORZENIA i CZAS JAKI TRZEBA POŚWIĘCIĆ NA NIEWAŻNE Z PUNKTU WIDZENIA UŻYTKOWNIKA RZECZY.
W następnym wątku opiszę po krótce mój pierwszy dzień tworzenia projektu Communities Website System, który pisany jest właśnie w Railsach.
Subscribe to:
Posts (Atom)