Clojure – Environment setup

Wybór narzędzi za nami, więc wypadało by zacząć z nich korzystać.
Spalmy więc trochę czasu na użeranie się z ich konfiguracją.

Skupimy się na najważniejszych – IntelliJ IDEA i Leiningen.

IntelliJ możemy pobrać stąd.
A Leiningen jest dostępny tutaj.
Poza tym potrzebujemy oczywiście też JDK (ja używam wersji 32bit)

Po zainstalowaniu wszystkiego możemy przystąpić do tworzenia przykładowego projektu.
Odpalamy konsole i wklepujemy:

lein new app nazwa-aplikacji

Warto zwrócić tu uwagę na fragment “app” – leiningen posiada szablony z których można korzystać przy tworzeniu nowego projektu. Szablon “app” umożliwia nam odpalenie kodu w formie aplikacji konsolowej.

Zatem odpalmy nasz nowy projekt wpisując (w katalogu projektu):

lein run

Powinniśmy uzyskać słynną wiadomość:

Hello, World!

Ok, leiningen działa, teraz pora na IntelliJ. (btw leiningen sam pobiera sobie najnowszą wersję clojure więc o to nie musimy się martwić)

Przy pierwszym uruchomieniu IntelliJ możemy wygodnie dodać Cursive (plugin dla clojure).
Po dodaniu cursive możemy zaimportować projekt stworzony przez leiningen (project.clj). (Opcji tworzenia nowych projektów w IntelliJ/Cursive w tej chwili nie ma)

Powinniśmy mieć teraz coś w stylu:

IntelliJ na początku
IntelliJ na początku

Odpalmy sobie teraz okienko do leiningena:

Zakładka leiningen
Zakładka leiningen

Jak widać poniżej, Leiningen udostępnia nam obsługę tasków i zależności:

Leiningen zadania
Leiningen zadania

Sprawdźmy czy wszystko działa uruchamiając task “test”…

Poprawnie niedziałający test
Poprawnie niedziałający test

Error – czyli działa!

No ale jak działa jak jest błąd?

A no bo nasz test nie przechodzi przecież 🙂

Pamiętaj – lepiej żeby test generował fałszywie negatywny wynik niż fałszywie pozytywny!

Poprawmy nasz test zamienijąc obecną zawartość pliku core_test.clj na:

(deftest a-test
	(testing "I will work!"
		(is (= 0 0))))

Upewnijmy się, że działa odpalając test jeszcze raz:

Poprawnie działający test
Poprawnie działający test

Success!

Teraz przejdźmy do tego jak uruchamiać naszą aplikacją w IntelliJ.

Edycja konfiguracji
Edycja konfiguracji

Dodajmy REPL jako nową konfigurację:

Dodajemy REPL
Dodajemy REPL

Teraz możemy za pomocą przycisku w prawym górnym rogu uruchamiać interaktywną konsole clojure.
Z REPL (read-evaluate-print-loop) będziemy bardzo często korzystać w trakcie developmentu.
Zarówno testując małe fragmenty kodu jak i uruchamiając całe moduły aplikacji.

Możemy nawet ładować całe pliki do konsoli REPL (wszystkie zależne pliki zostaną również załadowane).

Ładowanie pliku clojure do REPL
Ładowanie pliku clojure do REPL

Tutaj widać, że możemy w REPL odwołać się do naszej funkcji w pliku po lewej:

Załadowny kod do REPL
Załadowny kod do REPL

A docelowo chcemy osiągnąć taki widok:

IntelliJ po doszlifowaniu z Overtone w tle
IntelliJ po doszlifowaniu z Overtone w tle

U mnie jest to: [struktura aplikacji | kod produkcyjny | testy | REPL].

Jeżeli wszystko poszło zgodnie z planem to środowisko mamy gotowe.

Ostatnim elementem są ustawienia klawiatury ale o tym w następnym poście. (A jest o czym pisać!)

Be First to Comment

A penny for your thoughts