Mon application – Le codage

Dans l’article précédent, nous avons installé un environnement de développement performant à partir de 2 logiciels et 4 lignes de commandes. Ces deux logiciels peuvent être utilisés quelque soit la technologie web souhaitée. Maintenant passons au codage. Je ne vais pas détailler les objets mais donner des méthodes pour simplifier votre code. Pour les langages, Internet regorge de tutoriaux.

Décrivons

La première étape est de partir de la description du besoin : nos notes et le diagramme des cas d’utilisation (DCU). Nous avons décrit les acteurs et les objets de l’application. Dans un cadre professionnel, cela correspond à des ‘spécifications fonctionnelles détaillées’. L’étape qui précède le codage est la transformation en objets techniques dans un document nommé ‘spécifications techniques détaillées’. 

Mais écrire un pavé de 100 pages, pour une petite application, dans un article de 737 mots, ce n’est pas possible. Si dans le Café philosophie #5 je décrivais le monde du point de vue informatique, je vais ici ne décrire que mes objets : le joueur, le créateur, le questionnaire, la question, la réponse, le résultat et la participation.

Les objets ont des relations entre eux. Un questionnaire est un ensemble de questions, … Les objets ont des propriétés. Un joueur a un pseudo et une adresse mail, … Les objets réalisent des actions. Un joueur participe à un questionnaire, … 

Suivant la technologie utilisée, chaque objet est décrit dans un ou plusieurs fichiers qui seront interprétés ou compilés afin de retourner le résultat attendu. Un code est un fichier texte dont le contenu est interprété directement ou indirectement par la machine. Il est possible d’ajouter des commentaires. Si ces derniers détaillent le comportement attendu et que le code correspond, notre application fera ce que nous voulons. 

Un autre moyen d’améliorer son code est de se baser sur un framework (un cadre de travail). Il s’agit d’un environnement où les problématiques techniques sont déjà réalisées. Cela évite de recréer des objets techniques existants (accès aux données, sécurité, …) et de ne se consacrer qu’aux objets métiers décrits plus tôt. 

L’inconvénient d’un framework est qu’il doit être appris. Mais il facilite tellement le développement qu’il serait dommage de s’en passer. C’est pour cela que j’ai proposé Symfony et nous allons créer notre premier objet : la réponse

Écrivons

Mais avant cela, revenons dans notre environnement de développement. Plaçons nous sous notre répertoire utilisateur et créons notre projet ‘Quiz’ en écrivant dans un terminal la commande suivante :

cd ~; symfony new quiz --full; cd quiz; code .

Dans le nouveau VSC ouvert, modifions le fichier ‘.env‘ pour définir la base de données en remplaçant la ligne DATABASE_URL=mysql://db_user … par DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db

Maintenant que nous avons défini et créé la base de données, nous allons créer l’objet ‘réponse‘. Une réponse est un texte court et une valeur (par exemple un nombre : ‘1’ si la réponse est exacte et ‘0’ si c’est une mauvaise réponse). Dans le terminal, écrivons : 

symfony console make:entity Reponse

Des questions s’affichent dans le terminal afin de définir les propriétés de notre objet : un libelle et une valeur. Suite à la création de votre objet, Symfony se propose de le créer dans la base en 2 étapes en nous indiquant 2 commandes à entrer dans le Terminal :

symfony console make:migration

symfony console doctrine:migrations:migrate

Maintenant créons les écrans qui nous permettront de définir de nouvelles réponses : 

symfony console make:crud Reponse

Et testons nos premiers écrans. Il faut démarrer le serveur symfony server:start -d et depuis notre navigateur nous connecter à l’adresse indiquée en ajoutant le nom de l’objet créé https://127.0.0.1:8000/reponse. À la première connexion, il faut accepter les alertes de sécurité.

En 4 commandes, nous avons créé notre premier objet. De la même manière nous créerons les autres objets :

  • ‘question’ – un texte et une liste de réponses dont une ou plusieurs sont exactes,
  • ‘questionnaire’ – un titre et une liste de questions,
  • … 

Ensuite, nous modifierons les écrans pour les rendre plus agréables à regarder, nous ajouterons dans les différents objets des fonctions plus précises pour implémenter les règles particulières de l’application, nous sauvegarderons notre travail pour le rendre disponible pour d’autres plateformes (d’où l’installation du composant git), … 

C’est le travail d’un développeur. Beaucoup de texte (code) à écrire ou à générer par des lignes de commandes. Un bon environnement de développement automatise partiellement cela, et mon article  précédent nous a permis de le définir. 

Partager l'article !!

J’ai de la chance !!!