Développer la partie back-end d’une application web ou mobile
Description de la compétence – processus de mise en œuvre
À partir des fonctionnalités décrites dans le dossier de conception technique, et dans le respect des bonnes pratiques de développement et de sécurisation d’application web, coder, tester et documenter les traitements côté serveur, afin d’assurer la collecte, le traitement et la restitution d’informations numériques.
Publier l’application web sur un serveur.
Pratiquer une veille technologique, y compris en anglais, pour résoudre un problème technique ou mettre en oeuvre une nouvelle fonctionnalité ainsi que pour s’informer sur la sécurité informatique et les vulnérabilités connues.
Partager le résultat de sa veille avec ses pairs.
Contexte(s) professionnel(s) de mise en œuvre
Cette compétence s’exerce seul ou en équipe. Le développement d’une application web s’effectue à partir d’un environnement de développement intégré, supportant les différents langages serveur.
L’application web est optimisée pour les équipements mobiles à travers la mise en place de mécanismes asynchrones de chargement et restitution de données (Ajax, …).
Critères de performance
- Les bonnes pratiques de développement sont respectées.
- Les composants serveur contribuent à la sécurité de l’application.
- Le code source des composants est documenté ou auto-documenté.
- Les tests garantissent que les traitements serveurs répondent aux fonctionnalités décrites dans le dossier de conception technique.
- Les tests de sécurité suivent un plan reconnu par la profession.
- L’application web est publiée sur un serveur.
- L’objet de la recherche est exprimé de manière précise en langue française ou anglaise.
- La documentation technique liée aux technologies associées, y compris en anglais, est comprise (sans contre-sens, …).
- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité.
- La veille sur les vulnérabilités connues permet d’identifier et corriger des failles potentielles.
- Le partage du résultat de recherche et de veille est effectué, oralement ou par écrit, avec ses pairs.
Savoir-faire techniques, savoir-faire organisationnels, savoir-faire relationnels, savoirs
- Utiliser un environnement de développement intégré y compris en anglais.
- Écrire un algorithme.
- Développer dans un langage objet.
- Développer la partie dynamique de l’application avec des composants serveurs, dans un style défensif, et éventuellement en asynchrone.
- Appeler des Web Services dans un composant serveur.
- Documenter les pages de code.
- Sécuriser la liaison entre le client et le serveur web.
- Gérer la sécurité de l’application (authentification, permissions…) dans la partie serveur.
- Utiliser des composants d’accès aux données.
- Réaliser un jeu de tests de l’application web.
- Prendre en compte les contraintes des applications multilingues.
- Tester la sécurité du site, avec un guide de test reconnu (par exemple, celui d’OWASP).
- Publier l’application développée sur un serveur web.
- Faire effectuer un test d’intrusion.
- Prendre en compte un rapport de test d’intrusion et les corrections possibles pour traiter la vulnérabilité.
- Utiliser un outil de gestion de versions de code source.
- Rechercher une réponse pertinente à une difficulté technique de développement.
- Rechercher des informations sur des sites Internet, des forums et des FAQ francophones ou anglophones.
- Utiliser un outil collaboratif de partage de fichiers.
- Connaissance du vocabulaire anglais professionnel associé au web.
- Connaissance d’un environnement de développement intégré.
- Connaissance des principes de communication du web.
- Connaissance liée aux objets connectés (protocole de communication, …).
- Connaissance des concepts de la programmation objet.
- Connaissance des bonnes pratiques de qualité et d’écoconception web.
- Connaissance des bases de la cryptographie et des mécanismes de sécurité du web.
- Connaissance du rôle de l’infrastructure et des protocoles réseau dans la sécurité d’une application web.
- Connaissance des langages du développement web coté serveur.
- Connaissance de l’architecture d’un serveur web.
- Connaissance des principales failles de sécurité des applications web (XSS, CSRF, …) et de leurs parades.
- Connaissance des bonnes pratiques d’architecture : rôles du client et du serveur web dans la sécurité (authentification et permissions, validations des entrées).
- Connaissance des bonnes pratiques de sécurisation du développement web (scripts client et pages serveur).