A la découverte d’un nouveau langage

Lors de mon stage de seconde année, j’ai pu découvrir un nouveau langage de programmation. D’où le titre de cet article…

J’ai donc pu me pencher sur le langage Elixir qui, en plus d’être un langage que je ne connaissais pas, m’a été ‘vendu’ par mon maître de stage, Vincent Jousse, comme un langage avec un paradigme fonctionnel. J’ai donc été voir la page wikipédia et j’ai pu lire que finalement c’est un langage multi-paradigme… Bon, super… Déjà que je ne voyais pas ce qu’était un paradigme en programmation ’ai pu voir qu’il y en avait plein et donc commencer la lecture des différentes pages wikipédia qui traitaient du sujet…

Une fois cette lecture terminée j’ai pu lire (oui encore) de la documentation à propos de Elixir et du framework Phoenix. Malheureusement par manque de temps je ne me suis pas penché sur l’apprentissage du langage Elixir en lui même mais directement sur le framework. Sur lequel j’ai d’ailleurs passé la moitié de mon temps de stage pour en lire finalement que la moitié avant de pouvoir développer une API fonctionnel.

La documentation lue était sous forme de tutoriel par mini-projet, j’ai dû mettre en place l’envrionnement de développement avant de pouvoir réellement commencer. J’ai donc démarré par l’installation d’Erlang, qui est le langage de programmation sur lequelle est construit Elixir. Étant sur archlinux à l’origine il ma juste suffi d’installer directement le packet d’elixir via AUR. De plus celui-ci gère les dépendances donc il m’a automatiquement installé le packet d’erlang.

yaourt -S erlang

Mais lorsque j’ai voulu installer une version de démonstration sur le serveur de mon lycée pour mon épreuve oral de BTS, j’ai rencontré quelques difficultés pour l’installer… car certains packets comme celui d’erlang ou de node n’étaient soit pas à jour soit pas disponible…

Il a donc fallu commencer par l’installation du repository d’Erlang via la commande suivante :

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb

Puis de mettre à jour la liste des packets et de commencer les installations nécessaires :

sudo apt-get update && sudo apt-get install esl-erlang elixir

Il faut ensuite installer la dernière version stable de node en la compilant depuis les sources ainsi que le packet postgresql.

Une fois les dépendances nécessaire installées, on peut passer à la mise en place de la base de donnée puis l’installation de l’API elle même.

Pour la base de donnée, l’ajour d’un utilisateur et l’autorisation de celui-ci pour la création de la base de données est nécessaire :

CREATE USER demo WITH PASSWORD 'P@ssword';
ALTER USER demo CREATEDB;

Une fois le repository cloné via https://framagit.org/NeodarZ/the_transcriber_backend.git il faut modifier quelque fichier de configarations, nottament pour ce qui est de la connection à la base de données.

Si la base de données est en local, il suffit simplement de modifier les fichiers config/dev.exs et config/test.exs avec les paramètres suivant :

[...]
username: "demo",
password: "P@ssword",
[...]

Une fois la configuration terminée il faut installer l’API en commancant par l’installation des dépendances :

mix deps.get

Dans mon cas je n’ai pas installé hex qui est nécessaire lors de l’installation des dépendances mais, heuresement pour nous, les développeurs du framework Phoenix on pensé à tout et propose de l’installer pour nous :

Could not find Hex, which is needed to build dependency :phoenix
Shall I install Hex? (if running non-interactively, use: "mix local.hex --force") [Yn]

Une fois les dépendances installées, il nous que le framework créer les bases de données nécessaire à son bon fonctionnement.

mix ecto.create && mix ecto.migrate

Une fois toute les étapes passées sans erreur la simple commande mix mix phoenix.server devrait être necessaire au démarrage de l’API.