Dépot Copyright

 CopyrightFrance.com

Cours Python

  1. Introduction à Python
  2. Ide Python
  3. Premier programme Python
  4. Les variables en Python
  5. Les commentaires en Python
  6. Les opérateurs Python
  7. Les fonctions en Python
  8. Structure If else... Python
  9. For While Python
  10. Formatage des chaines Python
  11. Les listes en Python
  12. Les tuples en Python
  13. Les dictionnaires en Python
  14. Les ensembles en Python
  15. POO et classes en Python
  16. Héritage en Python
  17. Les exceptions en Python
  18. Le gestionnaire des packages pip
  19. Télécharger le cours complet
  20. Les modules en Python
  21. Le module OS
  22. Module datetime Python
  23. Le module Platform
  24. Le module virtualenv
  25. Le Module PyInstaller
  26. Les fichiers en Python
  27. Les fichiers ouverture & lecture
  28. Les fichiers ouverture & écriture
  29. Les fichiers CSV en Python
  30. Les Fichiers JSON En Python
  31. Fichier de configuration .ini
  32. Python & SQLite database
  33. DB Browser for SQLite
  34. Interface Graphique Tkinter
  35. Les Windgets Tkinter
  36. Bibliothèque d'images PILLOW
  37. Module de style tkinter.ttk
  38. Liste déroulante ttk Combobox
  39. le module filedialog
  40. Projet: Création éditeur de texte
  41. Bibliothèque graphique wxPython
  42. Bibliothèque graphique PyQt5
  43. Télécharger le cours complet
  44. Le module Math
  45. La bibliothèque matplotlib
  46. Le module Python statistics
  47. Bibliothèque Sympy
  48. Bibliothèques Numpy
  49. Bibliothèques Scipy
  50. Bibliothèques Pandas
  51. Bibliothèques Scikit Learn
  52. Bibliothèques TensorFlow
  53. Python Machine Learning
  54. Introduction à Django
  55. Installation de Django
  56. Premier Projet Django
  57. Interface administrateur
  58. Créer une application django
  59. Les modèles de django
  60. Templates Django
  61. Les formulaires Django
  62. Fichiers Statiques Django
  63. Upload des fichiers django
  64. Exercices Python: les bases
  65. Exercices Python: les classes
  66. Exercices Python: les fichiers
  67. Tous les TP Python
  68. Création Editeur de Texte en Python Partie1
  69. Carnet d'adresse en Python
  70. Formation Python-partie1

Cours Java

Développement Web

  1. Introduction au langage HTML
  2. Structure d'un document HTML
  3. Mise en forme d’un document HTML
  4. Liens hypertexte
  5. Insertion d’images
  6. Les attributs de la balise BODY
  7. Les tableaux HTML
  8. Les listes HTML
  9. Les Frames HTML
  10. Les formulaires HTML
  11. Les caractères spéciaux HTML
  12. Ressources et références HTML
  13. Exercices HTML avec correction
  1. Introduction au langage CSS
  2. Propriétés d'un sélecteur
  3. La propriété Text CSS
  4. La propriété background CSS
  5. La propriété Font CSS
  6. La propriété border CSS
  7. Propriétés margin et padding
  8. Propriétés Height & Width
  9. Class et les ID CSS

Javascript Basique
  1. Introduction au langage Javascript
  2. Variables, fonctions et operateurs Javascript
  3. Les structures de contrôle et les boucles Javascript
  4. Les événements Javascript
  5. Le modèle Objet du Javascript
  6. L'objet array Javascript
Framework JQuery
  1. Introduction au Framework jQuery
  2. Premier pas avec le framework jQuery
  3. Les Sélecteurs jQuery
  1. Introduction au langage PHP
  2. Premier programme php
  3. Variables et Fonctions php
  4. Opérateurs arithmétiques et logiques
  5. Les structures de contrôle en php
  6. Les tableaux en php
  7. Control des formulaires en php
  8. Upload des fichiers en php
  9. Gestion des dossiers et des fichiers en php
  10. Colorisation syntaxique en php
  11. Cookies php
  12. Les variables globales php
  13. Sessions php
  14. Les variables php d’environnement
  15. Les classes et la poo php
  16. La librairie php_gd2 des images
  17. Lecture d’un fichier xml en php
  18. Les expressions régulières en php
  19. Moteurs de template php : smarty et fast temp…
  1. Langage MySql
  2. Introduction au langage MySql
  3. Installation du Serveur MySql
  4. Manipulation des bases de donnée MySql
  5. Manipulation desTables MySql
  6. Insértion de données MySql
  1. Installation Wordpress
  2. Modification du theme Wordpress
  3. Installation d'un plugin
  4. Gestion des catégories
  5. Gestion des articles
  6. Gestion des menus Wordpress
  7. Gestion des pages
  8. Gestion des Plugins
  9. Gestion des Widgets
  10. Gestion des Médias
  11. Gestion des commentaires
  12. Création formulaire de contact
  13. Outil Importation & exportation
  14. Gestion des extensions
  15. Réglage et paramètres
  1. Introduction à Joomla
  2. Installation Joomla
  3. Architecture de Joomla

TICE & Multimédias

Math Pour Informatique

Utilisateurs en ligne

Users: 22 Guests, 6 Bots

Annonces Google

La Séparation des préoccupations c’est quoi ?

En informatique, la séparation des responsabilités ou séparation des préoccupations (SoC Separation Of Content en anglais), est un principe de conception pour séparer un programme informatique en sections distinctes de telle sorte que chaque section aborde une préoccupation distincte. Il représente le “S” dans le principe solide. Une préoccupation est un ensemble d’informations qui affecte le code d’un programme informatique. Une préoccupation peut être aussi générale que “les détails du matériel d’une application”, ou aussi spécifique que “le nom de la classe à instancier”. Un programme qui incarne bien SoC est appelé programme modulaire. La modularité, et donc la séparation des préoccupations, est obtenue en encapsulant des informations dans une section de code qui a une interface bien définie. L’encapsulation est un moyen de cacher l’information. Les conceptions en couches dans les systèmes d’information sont un autre mode de réalisation de la séparation des préoccupations (par exemple, couche de présentation, couche de logique métier, couche d’accès aux données, couche de persistance).




La séparation des préoccupations entraîne plus de degrés de liberté pour certains aspects de la conception, du déploiement ou de l’utilisation du programme. Parmi ceux-ci, la liberté accrue de simplification et de maintenance du code est courante. Lorsque les préoccupations sont bien dissociées, les possibilités de mise à niveau, de réutilisation et de développement indépendant des modules sont plus nombreuses. Masquer les détails d’implémentation des modules derrière une interface permet d’améliorer ou de modifier la section de code d’une seule préoccupation sans avoir à connaître les détails des autres sections et sans avoir à apporter des modifications correspondantes à ces autres sections. Les modules peuvent également exposer différentes versions d’une interface, ce qui augmente la liberté de mettre à niveau un système complexe de manière fragmentaire sans perte de fonctionnalité provisoire.

La séparation des préoccupations est une forme d’abstraction. Comme pour la plupart des abstractions, séparer les préoccupations signifie ajouter des interfaces de code supplémentaires, créant généralement plus de code à exécuter. Ainsi, malgré les nombreux avantages de préoccupations bien séparées, il y a souvent une peine d’exécution associée.

2 – Quelques exemples de séparations des préoccupations

Commençons par un exemple un peu moins abstrait. Dans la programmation Web, il existe un principe de conception qui stipule que la mise en œuvre de votre site Web doit être séparée en trois domaines:

  1. Style & présentation – l’aspect visuel du site.
  2. Business Logic Layer (Couche Logique Métier) – la façon dont le site se comporte en réponse aux actions des utilisateurs.
  3. Contenu – les données réelles présentées, telles que le contenu ou les articles du  blog.

En suivant ces règles, on essaierait d’éviter de mélanger la logique métier et la présentation, et il en va de même pour le contenu. Si possible, ces éléments seraient contenus dans différentes sources ou fichiers de données; sinon, ils se trouveraient dans des sections distinctes et facilement identifiables du même fichier.

Il y a plusieurs bonnes raisons à cela:

La première est que ces éléments sont souvent modifiés indépendamment. Par exemple, vous souhaiterez peut-être de présenter le même contenu, avec la même logique métier, mais avec un style différent, ou bien vous pouvez présenter un contenu différent, mais avec le même style et la même logique. Garder ces éléments séparés permet de les remplacer facilement sans affecter les autres, surtout si les interactions entre eux sont formelles et bien définies – il suffit de brancher et de jouer!

Une autre raison est qu’il existe souvent différents rôles d’équipe associés à ces différents éléments. La personne en charge de la gestion du contenu n’est peut-être pas la même que celle qui conçoit l’apparence du site. La séparation des domaines permet aux individus de travailler librement sans marcher les uns sur les autres; cela signifie également qu’ils ne sont pas obligés de comprendre les parties du système qui ne sont pas liées à leur tâche. Ainsi, une personne dont le travail consiste à créer les feuilles de style pour le site n’a pas besoin d’apprendre à gérer une base de données de contenu également; les gens peuvent se spécialiser.

Une troisième raison est organisationnelle: la division de l’implémentation en éléments bien définis facilite la recherche de choses. Si vous essayez de savoir pourquoi le site se comporte d’une manière particulière, vous pouvez limiter votre recherche aux parties de la logique métier, vous n’avez pas à perdre de temps à regarder les fichiers source traitant de la présentation ou du contenu. Cela est conforme au principe général «rendre le code facile à raisonner».

Bien que cette règle particulière de séparation (style, logique, contenu) soit assez standard dans l’industrie du Web, ce n’est pas la seule séparation possible. En fait, j’ai déjà travaillé dans une startup qui faisait des logiciels bancaires; dans cet environnement, il y avait des rôles supplémentaires liés à des domaines tels que l’image de marque et la sécurité, chacun ayant son propre ensemble d’ingénieurs spécialisés. Malheureusement, la technologie à l’époque était trop primitive pour séparer tous ces éléments, ce qui signifiait que changer un élément nécessitait de démêler les détails de l’enchevêtrement de code.

De plus, la séparation en ces trois domaines ne doit pas être la seule séparation! Par exemple, si votre site Web a une page de connexion, une page de profil et une page de gestion de compte, celles-ci doivent également être séparées les unes des autres; et chacune de ces pages aura sa propre présentation, sa logique et ses éléments de contenu séparés des autres.




Voyons maintenant un autre exemple, qui est un serveur Web. Un serveur Web se compose généralement de plusieurs couches. Voici un arrangement possible:

Couche d’entrée: responsable de l’acceptation des demandes HTTP d’entrée, de leur validation pour l’authentification et le format appropriés, puis de leur répartition vers la fonction logique appropriée.
Couche logique – contient les algorithmes qui opèrent sur les données en réponse à l’entrée de l’utilisateur.
Couche d’accès aux données – chargée de lire et d’écrire des représentations en mémoire des enregistrements vers et depuis la base de données, ainsi que d’effectuer des requêtes complexes sur les données.

Encore une fois, l’organisation est telle qu’il est possible de connaître la couche dans laquelle se trouve un morceau de code donné, sans avoir à rechercher toutes les couches. Un avantage supplémentaire est que ces couches peuvent être testées unitairement isolément, permettant un régime de test plus simple et plus facile.

 

Younes Derfoufi
CRMEF OUJDA

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload the CAPTCHA.