Développement Web moderne
Le marché égyptien du développement de logiciels souffre d’une pénurie d’experts par rapport au marché international. Dans ce cours, nous couvrirons les dernières pratiques stables de développement de logiciels, l'architecture de projet, les modèles de conception et la technologie dans le domaine du développement Web.
Ce cours s'adresse à ceux qui ont l'intention de poursuivre une carrière dans le développement de logiciels ou qui souhaitent créer un MVP à faible coût pour une startup. Après ce cours, vous devriez être familiarisé avec l'état actuel de la technique, capable de prendre des décisions éclairées concernant votre pile de développement.
La structure de ce cours est largement motivée par l'idée selon laquelle un développeur novice commence par adopter des frameworks et utiliser des bibliothèques sans réfléchir de manière critique à la question de savoir si cet outil est adapté au travail.
Déroulement du cours
- Ce cours sera composé de 13 séances
- Chaque session comprendra 2 parties, exercice et discussion
- Pendant l'exercice, vous résoudrez le devoir du cours
- Au cours de la discussion, nous discuterons de la prochaine mission
- Tous les concepts abordés sont documentés dans les devoirs
- Je vais expliquer des concepts qui ne sont pas clairs
- Après chaque session, je mettrai à jour le matériel de cours en fonction de nos progrès.
- Les devoirs coûtent 10 % chacun parce que je dois vous noter sur quelque chose.
- Les notes sont attribuées à la fin (jugées complètes par moi).
- Les devoirs sont notés au cours des séances.
- Les notes peuvent être partielles en fonction du niveau d'achèvement.
- Les 10 meilleures missions sont prises en compte
- De préférence, lisez ou commencez à résoudre le devoir avant la session.
- Si vous êtes incapable de terminer le devoir, vous pouvez obtenir la permission de le terminer avant le prochain créneau d’exercice.
- La première séance est uniquement une séance de discussion.
- La dernière séance est une séance de devoirs uniquement.
- Nous devrions tous manger de la pizza à la fin du cours.
Vous aurez besoin
- Un ordinateur portable avec un shell bash (OS de base Unix ou Windows 10 avec terminal Ubuntu)
- Un navigateur moderne, par exemple le dernier Google Chrome
- Internet
- NoeudJS
- Git
- Éditeur de texte tel qu'Atom
Séances de cours
Dans ce cours, nous présenterons
1. Historique des applications Web
Dans cette session, nous parlerons du paysage existant des choses qu'un développeur peut apprendre et de ce que nous couvrirons pendant ce cours.
- Définir les attentes pour le cours.
- Les problèmes que nous allons résoudre.
- Historique des applications Web.
- Mise en place d'un projet ES6 avec babel et node
- Pack Web
Devoir pour la prochaine fois
- Créez une application Web simple sans aucune bibliothèque
- Les problèmes fondamentaux auxquels nous sommes confrontés
- Diviser le code en fichiers séparés
- OOCSS et BEM
2. Vie d'une application moderne : affichage des données
Dans cette session, nous commencerons par un récapitulatif des fonctionnalités de base de Javascript et passerons en revue les concepts de programmation fonctionnelle.
- Boîte flexible
- chaînes de modèle de fonctionnalité es6
- composants rendant les données au format HTML
Devoir pour la prochaine fois
- Code de rendu complet en HTML
3. Vie d'une application moderne : les actions mettent à jour les données
- Événements DOM
- Portée de notre code
- Programmation basée sur les événements avec le modèle d'observateur
Devoir pour la prochaine fois
- Architecture de flux (données vers le bas, action vers le haut)
4. Vie d'une application moderne : tests
- Rendu HTML des tests unitaires
- Fonctions pures
- Magasin d'État
- Mocks et talons
- Injection de dépendance
Devoir pour la prochaine fois
- Tester nos fonctions de rendu
- Test de nos répartiteurs d'action
- Tester nos actions en faisant muter le magasin
5. Vie d'une application moderne : les vues déclenchent des événements
- NodeJS : modules
- outils de construction : gulp
- rendre un dom virtuel
- exécuter notre tâche de test
- navigateur
Devoir pour la prochaine fois
- Développer un nouveau type d'élément de tâche appelé compteur
- les éléments à faire peuvent maintenant être modifiés
6. Vie d'une application moderne : code asynchrone
- La boucle d'événements Javascript
- Promesses avec récupération
- Création d'un serveur REST simple avec express
- Prises
- Asynchrone
- Programmation réactive
7. Intégration et déploiement continus
- Front end avec les pages Git * Résister à Git * Déployer votre code sur github avec un CI * SSH avec Nginx et chiffrons
- Backend avec Capistrano (node Flight) * Déploiement sur un serveur avec ssh * Automatisation avec le CI de notre acceptation git pull request * Utilisation du plan de vol pour le déploiement
8. Tout ce dont vous avez besoin pour un MVP
- Base de feu * *
- Test avec Firebase * *
8. Architecture pour applications massives : problèmes
- Réagir * *
- Applications Web progressives * *
9. Architecture pour applications massives : frameworks
- Réagir * *
- GraphQL * *
10. Réagissez au script natif
- Installation * *
- Notification poussée *
11. Supplément pour le temps perdu
- Électron * *
12. Supplément pour le temps perdu
Remarques
#Cours