Elixir Phoenix: Tworzenie aplikacji z testami (Część 1: Konfiguracja)

aktualizacja: 16.01.2019

Learn by doing

moim preferowanym sposobem uczenia się jest uczenie się przez działanie. Mogę czytać i oglądać rzeczy przez cały dzień, ale dopóki nie zejdę i nie pobrudzę kodem, to tak naprawdę nie zatonie. Świetnym sposobem na naukę przez robienie jest zbudowanie aplikacji, więc to jest to, co zamierzamy zrobić!

nie będzie to przegląd wysokiego poziomu, który wyjaśnia wszystko, co się dzieje. Jest to bardziej przejście dla tych, którzy mają pewne znajomości z Elixir i Phoenix, ale jeszcze zbudować swoją pierwszą aplikację. Używam Phoenix 1.4 i Elixir 1.8 do tego samouczka.

funkcjonalność będzie prosta. Możesz utworzyć konto. Możesz wyszukiwać i wyświetlać filmy. Możesz dodawać nowe filmy. Pojawią się pewne zawiłości, takie jak pobieranie informacji z interfejsu YouTube API w celu dodawania filmów i używanie CSS Tailwind zamiast domyślnego miligramu (miligram zastąpił Bootstrap w Phoenix 1.4). Ponieważ jednak już zadałem sobie trud walki z kodem, aby wszystko działało, wszystko powinno przebiegać gładko.

Daj mi znać, jeśli w którymś momencie utkniesz, a chętnie Ci pomogę. Zaczynajmy!

UWAGA: Jeśli utkniesz w dowolnym momencie, możesz zostawić mi komentarz lub sprawdzić repo na Githubie. Każda część ma własną gałąź i będzie połączona na początku z (GitHub). Pojawią się również skróty zatwierdzania, dzięki czemu będziesz mógł zobaczyć, co zostało zrobione dla danej sekcji. Będą wyglądać jak poniżej (70ea207) Jeśli znajdują się one w podtytule, commit odnosi się do całej tej sekcji. W przeciwnym razie commit zostanie udostępniony na końcu odpowiedniego tekstu.

Wygeneruj aplikację (70ea207) (GitHub)

będziemy budować Catcasty. Będzie to miejsce do udostępniania ulubionych filmów z kotami z YouTube. Użytkownik zostanie utworzony po zalogowaniu się w Google. Filmy zostaną utworzone poprzez zamieszczenie adresu URL do API YouTube i odzyskanie informacji. Informacje te zostaną wykorzystane do utworzenia strony z osadzonym filmem.

Jeśli jeszcze nie masz zainstalowanych Elixira i Phoenix, możesz postępować zgodnie z instrukcjami Elixira i Phoenix. Teraz zakładając, że jest to zrobione, czas stworzyć naszą aplikację. Uruchamiamy mix phx.new catcasts, aby wygenerować naszą aplikację, a gdy zapyta „Pobierz i zainstaluj zależności? „powiemy”y”.

Skonfiguruj Postgres (975847b)

pod koniec generowania naszej aplikacji otrzymujemy pomocne instrukcje dotyczące tego, co musimy zrobić dalej.

wyjście z generowania naszej aplikacji

pierwszą rzeczą, którą musimy zrobić po uruchomieniu cd catcasts I przed uruchomieniem mix ecto.create div > to konfiguracja naszej bazy danych. W zależności od tego, jak masz swoją lokalną konfigurację Postgres, jest duża szansa dla Twojego lokalnego środowiska nazwa użytkownika to twój katalog domowy (dla mnie byłby to katalog domowy), a pole hasła jest puste. Otwórzmy nasz plikconfig/dev.exs I skonfigurujmy naszą bazę danych.

Uwaga: Jeśli nie masz skonfigurowanego Postgres na swojej lokalnej maszynie, Heroku ma pomocny przewodnik, aby go skonfigurować. Jeśli używasz Homebrew, możesz zamiast tego uruchomić brew install postgresql w wierszu poleceń.

config / dev.exs

Możesz następnie uruchomić mix ecto.create, Twoja aplikacja się skompiluje, a następnie zobaczysz wspaniały komunikat „baza danych dla Catcastów.Utworzono Repo.”W tym momencie możesz uruchomić mix phx.server I odwiedzić http://localhost:4000, aby zobaczyć ” Witamy w Phoenix!”

UWAGA: jeśli zobaczysz komunikat podobny do „Czy mam zainstalować rebar3? (jeśli działa nieinteraktywnie, użyj ” mix local.rebar — force”)”, śmiało i wybierz”y”.

mamy również trzy testy, które zostały utworzone za pomocą aplikacji, które obecnie przechodzą. Aby je zobaczyć, musimy najpierw zaktualizować ustawienia bazy danych w config/test.exs.

config / test.exs

Możesz teraz uruchomić testy używając mix test (Twoja aplikacja skompiluje się przed uruchomieniem testów) i zobaczyć piękny zielony tekst „3 testy, 0 niepowodzeń”.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.