Rechercher dans ce blog

samedi 20 juillet 2019

Développement web - Le MVC

Qu'est ce que le MVC ?

MVC est un terme qui veut dire : Modèle-Vue-Contrôleur, ou en anglais : Model-View-Controller. Derrière ce terme barbare se trouve une logique de développement très utilisé maintenant pour créer des sites internet.

Le principe du MVC, est de décomposer en trois morceaux chaque pages d'un site internet :
  1. Le modèle qui s'occupe des données
  2. La vue qui s'occupe du visuel
  3. Le Controller qui fait le lien

Modèle

Le modèle définit une classe, un élément orienté objet donc qui va s'occuper du traitement et de l'analyse des données. Par exemple la lecture et l'écriture de données dans la base de données, correspond à un modèle. Lire/écrire dans un fichier aussi car se sont des données que l'on traite.

Vue

La vue est le visuel de votre page internet, c'est à dire tout ce qui est affiché à l'écran. La vue utilise les données fournie par le modèle mais ne fait pas de traitement sur les données, elle se contente d'afficher à l'écran.

Controller

Le contrôleur, s'occupe de faire le lien entre le modèle est la vue. C'est lui qui reçoit les requêtes adressées à la page internet, qui va alors appeler le bon modèle et lui fournir les informations à partir desquels il va travailler, puis récupérer un résultat qu'il passe ensuite à la vue.

Structure d'un MVC

Le MVC requiert donc une structure des dossiers afin de bien faire la séparation. Chacun appel les dossiers à sa convenance, par convention cependant on retrouve en général les dossiers suivants :
  • model
  • view
  • controller
Chacun ayant donc son rôle bien spécifique : model pour le traitement de données, view pour le visuel et controller qui reçoit la demande  (par exemple soumission d'un formulaire) et appel le model et la view concernés.

Pourquoi tan d'utilisation de ce principe ?

Et bien cela permet de bien séparer les choses et de s'y retrouver plus facilement ensuite, que se soit dans la structure ou dans le code. Ce principe permet aussi d'être à plusieurs en même temps sur la même chose.

Dans les framework web actuels type Symfony, on a plus vraiment cette hiérarchie, on a toujours le principe mais encore plus découpés. Ainsi on aura par exemple :
  • entity : les entités sont des classes ayant pour but de correspondre à la table de données et dont les données y seront stockés après lecture dans la BDD ou pour enregistrer dans la BDD
  • form : les formulaires ont leur propre classe pour générer les formulaires
  • repository : les repository sont des classes associées aux entités permettant de créer des requêtes SQL personnalisées
  • translations : les  traductions sont aussi des classes bien souvent ou de simples fichiers contenant les traductions
Pour les exemples, je m'arrête là car elles sont nombreuses. Tout les éléments présents sont des modèles : ils traitent des données. Le découpage est plus important car chacun à un rôle bien définit, mais cela reste des modèles.

Avec les framework modernes et ce principe de tout séparer, on s'y retrouve facilement et le développement se fait bien plus rapidement avec moins de problèmes, d'où l'intérêt de ce système.

Pourquoi tout le monde ne s'en sert pas ?

Et bien certains ne connaissent pas ou maîtrisent pas ce principe ; il arrive aussi que certains développeurs ne connaissent même pas la programmation orientée objet et ne peuvent donc pas utiliser ce genre de procédé.

jeudi 11 juillet 2019

Bienvenue

Bienvenue sur mon blog. Vous pouvez retrouver toute sorte de choses ici : du gaming, de la programmation, des informations sur les crypto-monnaies, le crypto-trading ou encore le crypto-mining.

Le but de ce blog, est simplement de regrouper au même endroit mes pensées, mes idées qui peuvent servir à tous et sur pleins de sujets différents dont j'ai donné une liste (qui peut évoluée avec le temps ^^).

Le but de ce blog, est d'apporter avant tout du débat, mais aussi donner des informations sur mes projets par exemple.
Mais je vais pas vous faire une tartine, je vous laisse plutôt regarder les différents articles de ce blog et commenter ces derniers.

Encore bienvenue à vous.

ETS2Routes

Le site ETS2Routes


Qu'est-ce que c'est ?

ETS2Routes est un site internet que j'ai créer et dont la version finale est en cours de développement. Ce site est consacré au jeu Euro Truck Simulator 2 (ETS2).

ETS2 est un jeu vidéo de simulation de conduite de camions. Le jeu dispose d'un système de gestion d'entreprises via une IA qui va conduire et nous rapporter de l'argent. Le système étant assez basique et le multi n'étant pas vraiment présent (pas officiellement en tout cas), je me suis dis que ça serait sympa de créer un site internet permettant d'avoir une vraie dimension entreprise.

Ainsi est né l'idée de ETS2Routes, un site internet où les joueurs se regroupent au sein d'une VTC (Virtual Truck Company). Chacun fait ses trajets de son côté certes, mais le fait que chacun va inscrire son trajet et différentes informations spécifiques comme l'XP gagné, l'argent gagné, etc. permet de regrouper les joueurs ensemble comme s'ils étaient dans une entreprise de transport.

Le site permet quoi concrètement ?

En fait, l'utilisateur crée un compte (gratuitement) sur le site, puis il va créer un ou plusieurs personnages selon la limite définie dans l'administration du site. A partir de là, il se connecte sur le personnage et peut créer une VTC ou candidater dans une existante.

Une fois que le personnage fait partie d'une compagnie, il a juste à remplir le rapport de trajet en fournissant les informations. Le site propose aussi d'indiquer quand on a des accidents par exemple ou autres événements particuliers.

Chaque mois, le personnage touche une rémunération décidée par le chef de la compagnie (en accord avec l'employé du coup ^^). Chaque trajet apporte un complément en tan que commission, et tout les mois le joueur reçoit alors un e-mail (ou un message sur le site, à voir pas encore décidé sur ce point ^^) indiquant pour son personnage, l'argent qu'il a gagné.


ETS2Routes, apporte une dimension RolePlay et une gestion d'entreprise que ne fourni pas le jeu. A terme, pleins de choses seront possible : acheter des garages, acheter des camions, personnaliser les camions etc. pour l'entreprise. Mais se sont des fonctionnalités qui feront leur apparition au fil du temps.

Le site est déjà en ligne ?

Il y a une vieille version actuellement en ligne à l'adresse suivante mais il ne gère pas encore les personnages et il y a beaucoup de bugs. Une nouvelle version est en cours de développement, dont l'actualité est actuellement présente sur Facebook mais ce blog, servira à donner un peu plus d'informations et noter mes idées.