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