Web2py – czyli nowe przyszło szybciej niż się spodziewałam

No i zdarzyło się, że dostałam propozycję, by popracować trochę pisząc aplikacje wykorzystujące zupełnie nowy dla mnie framework web2py. To bardzo ciekawy i zgrabny framework do szybkiego tworzenia aplikacji webowych. Zainicjowany w 2007 roku rozwija się prężnie i ciągle jest aktualizowany, choć jeszcze w oparciu o wersję 2.7 Pythona. W 2011 projekt zdobył nagrodę „Bossie Award” dla najlepszego oprogramowania opensource a w 2012 zdobył nagrodę „Technology of the Year” magazynu InfoWorld. Brzmi dobrze nie? Pewnie za jakiś czas poznam też ciemną stronę tego frameworka ale na razie podzielę się moimi wrażeniami z pierwszego wejrzenia.

Struktura

Framework z założenia opiera się na wzorcu MVC, w sumie nic nowego. Struktura katalogów bardzo przypomina tę, z którą miałam do czynienia w przypadku frameworków Yii i Kohana. Trudno się dziwić, to logiczny i wygodny układ i nie ma sensu wymyślać koła od nowa.

web2py struktura katalogów
Grafika pochodzi z oficjalnej dokumentacji

Widać wyraźny podział na katalogi przechowujące modele, kontrolery, widoki etc. Wnioskuję więc, że stosunkowo łatwo będzie mi się przyzwyczaić, choć przeskakując ostatnio między PHP (Symfony) a Pythonem (Django, web2py) doznaję dziwnego wrażenia, że grozi mi coś w rodzaju schizofrenii.

Łatwość

Twórcy web2py chwalą się, że ich framework jest bardzo łatwy, fachowo to się ostatnio mówi, że ma niski próg wejścia. Postulują skrócenie czasu nauki i zmniejszenie kosztów rozwoju i utrzymania aplikacji. Coś w tym jest. Kiedy przez ostatnie kilka miesięcy dokańczałam pewną aplikację w Symfony moja frustracja sięgała zenitu. Większość mojej pracy polegała na oprogramowaniu formularzy i tabelek. Zatem koncentrowała się na warstwie widoku w którym ponad dwadzieścia razy musiałam stworzyć strukturę tabeli za pomocą HTML, twig i pętli. Nuuuudy, cała frajda z tworzenia nowego oprogramowania wyparowała.

W web2py nie robi się takich przeraźliwie nudnych rzeczy. Znaczy robi się formularze i tabelki ale jest to zautomatyzowane na tyle, że wystarczy użycie odpowiedniej kontrolki, sparametryzowanie jej i wrzucenie do widoku. Tadam! I jest tabela z filtrami, podświetlonymi naprzemiennie liniami, przyciskami kontrolnymi i tym wszystkim co jest potrzebne ale nudne. I tu znów dostrzegam duże podobieństwo do Yii, który też oferuje podobne rozwiązania.

Podobnie w półautomatyczny sposób generuje się cały panel administracyjny, co z resztą ma też miejsce i w Django. Ponad to automatyczne generowanie formularzy, eksportów w wielu formatach oraz cały mechanizm autoryzacji i uwierzytelnienia. Zatem do oprogramowania naprawdę zostaje głównie „mięcho”.

DAL

Na pierwszy rzut oka zaimplementowany w web2py ORM wydał mi się bardzo podobny do tego z jakim można się spotkać w Django. A abstrakcyjna warstwa dostępu do bazy danych zapewnia duże bezpieczeństwo i zabezpiecza bazę przed wstrzykiwaniem SQL, zapewnia pełną walidację. Poza tym umożliwia współpracę z różnymi bazami danych. Mnie przyjdzie się zmierzyć z MSSQLem, ale o tym kiedy indziej.

I to by było tyle tych pochwał i komplementów. Tak jak wspomniałam na razie nie zauważyłam większych wad (no może poza tą wersja Pythona), ale tak często bywa przy pierwszym wejrzeniu. Jak jakieś się ujawnią i zalezą mi za skórę to niechybnie dam znać.

PS zapomniany link to projektu: WEB2PY

web2py

2 komentarze do wpisu „Web2py – czyli nowe przyszło szybciej niż się spodziewałam”

Dodaj komentarz

%d bloggers like this: