20 września 2010

Compojure w akcji - trasowanie i obsługa parametrów

W artykule Clojure w aplikacji webowej z Compojure oraz Ring i Hiccup przedstawiłem szkielet aplikacji webowych Compojure zbudowany na języku Clojure. Compojure jest w tak aktywnym rozwoju, że mimo wersji 0.4.1 już dorobił się kilku bibliotek wspierających - hiccup oraz clout, a sam jest nakładką dla innej biblioteki ring. Nie stanowią one bardzo obszernych rozwiązań - szkieletów aplikacyjnych, do których przyzwyczaiłem się w Java EE i zrozumienie sensu istnienia wspomnianych stanowi dla mnie nie lada wyzwanie. A gdzie tu jeszcze umiejętne użycie.

W tym odcinku-artykule w serii o roboczej nazwie "Poznajemy Clojure praktycznie" przedstawię sposób, w jaki Compojure obsługuje trasowanie (wyznaczanie tras, tj. routing) oraz parametry z formularzy (aczkolwiek w tym odcinku formularza nie będzie i będzie jedynie przekazywanie parametrów przez adres URL).

Zainteresowanych zapraszam do lektury artykułu Compojure w akcji - trasowanie i obsługa parametrów.

Jest to kolejny krok ku zrozumieniu narzędzi budowania aplikacji webowych w Clojure i praktycznego jego wykorzystania - budowania aplikacji webowych (co oczywiście nie oznacza, że jest to dobrze dobrane narzędzie do problemu). Siła Clojure płynie przede wszystkim z użycia makr, które tłumaczone są na właściwe wywołania funkcji (w postaci bajtkodu) podczas kompilacji. Clojure nie jest językiem interpretowanym, więc tym samym Compojure staje się DSLem do tworzenia aplikacji webowych. DSL w założeniu ma być językiem dziedzinowym, a skoro mowa o aplikacjach webowych, to dobrze jest korzystać z języka, które takie aplikacje wspiera wprost. Java zdecydowanie takim językiem nie jest - jest zbyt ogólna i możnaby powiedzieć, że jest zbyt niskopoziomowa, podobnie jak C czy assembler.