logo telecom ipp

Module Interface Web

  • nature du module
  • langages
  • options

Nature du module interface Web

Le module interface web consiste en la création d’un site web, ce qui peut se découper en deux parties :

  • le logiciel serveur qui répond aux requêtes du navigateur et envoie les données
  • les données d’affichage qui sont rendues dans le navigateur

Les données d’affichage sont des pages Web. Elles construisent l’interface dans le navigateur et combinent des données à afficher, des éléments de style et des images, des éléments d’interaction et des programmes gérant les interactions.

Le serveur peut être selon les cas :

  • un simple serveur de fichiers qui traduit les URLs en nom de fichier et envoie des fichiers existants
  • un serveur de données dynamiques qui calcule pour chaque demande des contenus spéficiques à envoyer
  • un mélange des deux précédentes options, selon les URLs

Le serveur peut aussi, au besoin, répondre à des requêtes qui ne viennent pas d’un navigateur mais d’une application. Dans ce cas, les données fournies peuvent être de nature autre que pages web, par exemple du XML ou du JSON.

Options

Les options sur le serveur sont:

  • node.js / JavaScript: un serveur node.js est programmé en JavaScript. C’est le moteur JavaScript de Chrome qui a été packagé comme un programme indépendant en y ajoutant un serveur HTTP. C’est une technologie dont le développement est très, très actif, et vous n’aurez aucun mal à trouver des solutions à vos problèmes. La documentation est parfois un peu en retard sur les développements, mais j’ai beaucoup d’expérience sur JavaScript et node.js et je recommande cette solution comme une solution d’avenir dont la connaissance sera un atout dans votre CV. Il vous faudra apprendre JavaScript, plus que simplement pour faire des pages Web
  • PHP: un serveur PHP est la chose la plus documentée et la plus utilisée pour faire des serveurs Web. Wordpress est écrit en PHP et représente 75% des sites au monde. Il y a beaucoup de bons tutoriels et de bons cours de PHP, et à tous niveaux. Vous n’aurez aucun mal à trouver de l’aide sur des problèmes spécifiques. Par contre, c’est une technologie qui a plus de 15 ans et qui est en perte de vitesse. J’ai de l’expérience sur PHP, assez pour vous guider, mais je ne recommande pas le choix de cette solution, sauf si vous avez déjà une compétence PHP.
  • Django/python: un serveur Django est un serveur écrit en python. C’est une technologie stable, bien documentée. Je ne pourrai pas vous aider beaucoup, car je n’ai pas d’expérience avec cette solution. Par contre, vous connaissez déjà python, probablement. C’est le seul avantage de cette solution.

Langages

  • JS ou JavaScript : un langage interprété qui a une syntaxe proche de Java mais qui est très différent. Il est utilisé dans les pages Web pour gérer l’interaction, et dans le serveur node.js. Mon cours sur JavaScript est ici et ici pour la partie navigateur
  • HTML : c’est le langage de description des pages web, un langage à tags qui est lu et rendu par les navigateurs. Mon cours sur HTML est ici
  • CSS : c’est le langage de description des styles de pages web, le langage est beaucoup plus simple que HTML, mais le fonctionnement des styles est assez compliqué. Mon cours sur CSS est ici
  • PHP : c’est un langage un peu baroque, interprété, avec une syntaxe spécifique. C’est difficile à débugger. Utiliser PHP ne vous dispensera pas d’apprendre JavaScript car c’est utile dans les pages Web.
  • python: le langage que vous connaissez, la difficulté sera dans l’apprentissage du framework Django. Utiliser python/Django ne vous dispensera pas d’apprendre JavaScript car c’est utile dans les pages Web.

En général, le cours INF203 contient des informations intéressantes pour ce module : https://perso.telecom-paristech.fr/dufourd/cours/inf203

node.js en pratique

Pour installer node.js sur votre machine: https://nodejs.org/en/download/

C’est assez léger, il y a des packages pour tous les OS, même avec une vieille machine peu puissante ça ne posera aucun problème.

Vous pouvez développer en Eclipse, IntelliJ, VSCode, Atom…

Il y a un gestionnaire de packages JavaScript qui s’appelle npm qui vient avec node.

Je recommande l’utilisation du module express et ses plugins.

PHP en pratique

Pour installer PHP sur votre machine, choisir WAMP sous Windows, MAMP sous Mac et LAMP sous Linux.

WAMP = Windows Apache Mysql Php * Apache = serveur HTTP * MySQL = base de données * Php = langage de programmation de tout ça

Il y a un outil d’administration de tout ce système appelé phpMyAdmin, qui est une interface Web

Vous pouvez développer en Eclipse, IntelliJ, VSCode, Atom…

C’est un peu plus lourd dans mon souvenir, mais reste OK y compris avec de vieilles machines peu puissantes.