Elixir Phoenix: Creazione di un’app con test (Parte 1: L’installazione)

Aggiornato: 16 gennaio 2019

Impara facendo

Il mio modo preferito per imparare è imparare facendo. Posso leggere e guardare le cose tutto il giorno, ma fino a quando mi metto giù e sporco con il codice, in realtà non affondare in. Un ottimo modo per imparare facendo è quello di costruire un app in modo che è quello che ci accingiamo a fare!

Non sarà una panoramica di alto livello che spiega tutto ciò che sta accadendo. E ‘ più di un walk-through per coloro che hanno una certa familiarità con Elixir e Phoenix, ma devono ancora costruire la loro prima applicazione. Sto usando Phoenix 1.4 ed Elixir 1.8 per questo tutorial.

La funzionalità sarà semplice. È possibile creare un account. È possibile cercare e visualizzare i video. È possibile aggiungere nuovi video. Ci saranno alcune complessità come ottenere informazioni dall’API di YouTube per aggiungere video e utilizzare Tailwind CSS invece del milligrammo predefinito (Milligrammo sostituito Bootstrap in Phoenix 1.4). Tuttavia, dal momento che ho già avuto la briga di combattere il codice per far funzionare le cose, tutto dovrebbe andare liscio per te.

Fammi sapere se ti trovi in difficoltà in qualsiasi momento e sarò felice di aiutarti. Cominciamo!

NOTA: se rimani bloccato in qualsiasi momento, puoi lasciarmi un commento o controllare il repository su GitHub. Ogni parte ha il proprio ramo e sarà collegata all’inizio con (GitHub). Ci saranno anche hash di commit in tutto in modo da poter vedere cosa è stato fatto per una particolare sezione. Essi sarà simile al di sotto (70ea207). Se sono in una sottovoce, il commit riguarda tutta quella sezione. In caso contrario, il commit verrà condiviso alla fine del testo pertinente.

Genera l’app (70ea207) (GitHub)

Costruiremo Catcast. Sarà un luogo per condividere i tuoi video preferiti di YouTube cat. L’utente verrà creato accedendo con Google. I video verranno creati pubblicando un URL sull’API di YouTube e recuperando le informazioni. Queste informazioni verranno utilizzate per creare una pagina con il video incorporato.

Se non hai già installato Elixir e Phoenix, puoi seguire la guida Elixir e la guida Phoenix. Ora presumendo che è fatto, il tempo di creare la nostra applicazione. Eseguiamo mix phx.new catcasts per generare la nostra app e quando chiede ” Fetch and install dependencies? “diremo ” y”.

Imposta Postgres (975847b)

Alla fine della nostra app generata, otteniamo alcune istruzioni utili su ciò che dobbiamo fare dopo.

Output da generare la nostra app

La prima cosa che dobbiamo fare, dopo l’esecuzione di cd catcasts e prima dell’esecuzione di mix ecto.create configurare il nostro database. A seconda di come hai la tua configurazione Postgres locale, c’è una buona possibilità per il tuo ambiente locale che il nome utente sia la tua home directory (per me sarebbe thebrianemory) e il tuo campo password è vuoto. Apriamo il nostro fileconfig/dev.exs e configuriamo il nostro database.

Nota: Se non hai impostato Postgres sul tuo computer locale, Heroku ha una guida utile per configurarlo. Se si utilizza Homebrew, è invece possibile eseguire brew install postgresql nella riga di comando.

config / dev.exs

Puoi quindi eseguire mix ecto.create, la tua app verrà compilata e quindi vedrai il meraviglioso messaggio, ” Il database per i Catcast.Repo è stato creato.” A questo punto è possibile eseguire mix phx.server e visitare http://localhost:4000 per vedere ” Benvenuti a Phoenix!”

NOTA: se viene visualizzato un messaggio simile a ” Devo installare rebar3? (se si esegue in modo non interattivo, utilizzare ” mix local.rebar-forza”)”, andare avanti e selezionare “y”.

Abbiamo anche tre test che sono stati creati con l’app che stanno attualmente passando. Per vederli passare, per prima cosa dobbiamo anche aggiornare le nostre impostazioni del database inconfig/test.exs.

config / test.exs

Ora puoi eseguire i test usandomix test (la tua app verrà compilata prima di eseguire i test) e vedere il bel testo verde “3 test, 0 fallimenti”.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.