GithubHelp home page GithubHelp logo

concepts_bases_rails's Introduction

Les concepts de base de ruby on rails

Ce fichier propose quelques explications sur les concepts de bases de ruby on rails. Les explications prennent les concepts dans le cadre générale et ne remettent pas forcement les concepts dans le contexte de ruby on rails.

Sommaire

En fonction des échanges qu'un site peut avoir avec ses utilisateurs, il est statique ou dynamique.

Statique : le site ne requiert pas d'informations de la part de l'utilisateur et une page ne peut offrir qu'un affichage unique. On peut faire une analogie avec une constante en programmation. Exemple de page statique.

Dynamique: le site interpelle l'utilisateur pour récupérer des informations, et réagit différemment en fonction de ce qu'il reçoit de l'utilisateur. Ainsi une même page peut avoir plusieurs affichages différents(si l'utilisateur se connecte ou pas par exemple). On peut faire une analogie avec une variable en programmation dont la valeur peut changer. Exemple: page d’accueil de Youtube qui change en fonction de si on est loggé ou pas.

MVC (Model, View, Controler) est l'architecture des applications Rails. Chaque appli Rails est constitué de:

  • modèles (Model) qui communiquent avec la BDD et permettent de recuperer ou d'inserer des eléments.
  • vues (view) qui sont des visuels de sites web présentés à l’utilisateur et qui constituent l'interface entre le programme et l'utilisateur.
  • controlleur (controller) qui peuvent être comparé à des robots qui font un travail précis à l’intérieur de l'ordinateur. Ces robots sont contactés par un message provenant de l'interface qui est appelé route. Ils vont ensuite aller passer par le décodage des modèles pour récupérer des données dans la BDD puis récupérer un affichage en fonction des données récupérés dans les vues et enfin, transmettre cet affichage à l'interface qui va le présenter à l'utilisateur. alt text

Les routes peuvent être considérés comme des messages qui vont être transmis à un robot(controller) précis. Chaque route induit l'activité d'un controller précis qui va déclencher une cascades d'actions précises. Cette page web approfondit bien le concept.

Les bases de données (BDD) permettent d'enregistrer les informations d'un site web pour pouvoir le récupérer plus tard. Les principales bases de données sont MySQL, PostgreSQL, oracle, SQLServer, SQLite.Ils sont comparables à des tableur Excel géants. Pour dialoguer avec ces BDD il faut utiliser le language Sql et émettre des instructions qui sont appelées des requêtes. Quelques exemples de requêtes.

GET et POST sont deux méthodes de requête-réponse entre le client et le server dans le protocole HTTP. HTTP(Hypertext Transfer Protocol) à été crée pour permettre la communication entre un client et le serveur. Un navigateur peut être le client et une application sur un ordinateur qui héberge un site web, le server.

Quelques differences entre GET et POST

GET POST
paramètres dans l'url paramètres dans body
limitation de longueur pas de limitation de longueur
gardé dans le cache pas gardé dans le cache

Voici une page qui approfondit ces méthodes.

La conception d'un site web se fait la plus part de temps en local. Le programme interagis avec une base de données(BDD) local et toutes les modifications que le programme fera à la BDD locale seront a refaire lorsque qu'on mettra le site en ligne. C'est là qu'interviennent les migrations.

Une migration comporte un schema et des changements qui sont indépendants de la BDD et qui sont ainsi transportable à toute les autres BDD. Elles sont écrites avec la syntaxe de Ruby ce qui ce qui peut faciliter la tâche par raport au requete SQL. Page qui explique le concept plus en profondeur.

Une relation est un lien entre deux tables de BDD,qui associe les données de la première avec celle de la deuxième.

  • les relations peuvent s'établir d'un enregistrement à un seul autre (1 à 1). Exemple : Deux tables contenant l'une les informations civile des utilisateurs, et l'autre ,les informations médicales, ont un lien unique qui est l'identifiant des clients.
  • d'un enregistrement à plusieurs autre (1 à ∞). Exemple: Un article peut avoir plusieurs commentaires, mais un commentaire n'est lié qu'a un article.
  • de plusieurs enregistrement à plusieurs autres( de ∞ à ∞). Exemple: un produit peut avoir plusieurs vendeur et un vendeur peut vendre plusieurs produits.

L'acronyme CRUD (Create ou création,Read ou lecture, Update ou modification, Delete ou suppression) indique les 4 opérations de base pour gérer tout type de données. Chaque fonctions est importantes et s'il en manque un dans un logiciel, celui ci est incopmplet. Chaque composante du CRUD peut être associée à un type de requête SQL ainsi qu'à une methode HTTP.

Operation SQL HTTP
Create INSERT POST
Read (Retrieve) SELECT GET
Update (Modify) UPDATE PUT
Delete (Destroy) DELETE DELETE

Écrit par arnold_domaya/Slack:@domaya_arnold

concepts_bases_rails's People

Contributors

arnolddomaya avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.