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:
Odpalmy sobie teraz okienko do leiningena:
Jak widać poniżej, Leiningen udostępnia nam obsługę tasków i zależności:
Sprawdźmy czy wszystko działa uruchamiając task “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:
Success!
Teraz przejdźmy do tego jak uruchamiać naszą aplikacją w IntelliJ.
Dodajmy REPL jako nową konfigurację:
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).
Tutaj widać, że możemy w REPL odwołać się do naszej funkcji w pliku po lewej:
A docelowo chcemy osiągnąć taki widok:
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