Outils
Objectifs
- Estimer son travail
- Avoir un environnement de travail fonctionnel
- Utiliser GitLab et GitHub Classroom
Rendu
- Rapport individuel en Markdown à rendre avant le prochain cours
- GitHub Classroom : https://classroom.github.com/a/9GFgSJJf
- Nom du fichier :
report.md
à la racine du répertoire
- Présentation individuelle à rendre sur Cyberlearn
- Nom du fichier :
presentation-prenom-nom.pdf
- Nom du fichier :
- Délai: 1 semaine
Tâches
Comptes GitHub et GitLab
- Commencer par indiquer ses pseudo GitHub et GitLab sur Cyberlearn.
- Créer les comptes si nécessaire et les lier à des adresses e-mail privées afin de ne pas perdre l'accès à la fin de la formation.
Estimer son travail
- Estimer le temps nécessaire pour réaliser ce travail dans le rapport.
- Découper le travail en tâches pour faciliter l'estimation.
- Une fois terminé, comparer le temps estimé avec le temps réellement passé.
- Le but n'est pas d'estimer correctement, mais de comprendre comment améliorer ses estimations.
Tâche | Temps estimé | Temps passé | Commentaire |
---|---|---|---|
Estimation | 10m | 15m | ... |
... | ... | ... | ... |
Total | 2h | 1h30 | ... |
Environnement de travail
Conseils
- Préférer les versions stables (LTS) aux versions de développement plus récentes.
- Moins de bugs potentiels.
- Préférer les versions officielles aux versions tierces (p. ex. Python au lieu de Anaconda).
- On n'installe que les outils nécessaires.
- Les gestionnaires de versions (nvm et pyenv) permettent d'avoir plusieurs versions installées sur la machine.
- Pour Windows
- Installer Windows Terminal.
- Utiliser Chocolatey pour installer les outils.
- Utiliser cmder comme terminal (disponible via Chocolatey).
- Intégration avec Windows Terminal.
- Possible problème d'alias d'exécution de Python à désactiver.
Installer et vérifier les outils suivants (mettre à jour si nécessaire):
- Visual Studio Code
- Git
- Vérifier avec
git --version
.
- Vérifier avec
- Docker
- Vérifier avec
docker --version
. - Vérifier avec
docker compose version
.
- Vérifier avec
- Node.js
- Au moins la dernière version LTS.
- Vérifier avec
node --version
. - Possibilité d'utiliser nvm pour gérer plusieurs versions de Node.js.
- Python
- Vérifier avec
python --version
. - Possibilité d'utiliser pyenv pour gérer plusieurs versions de Python.
- Vérifier avec
- Poetry
- Vérifier avec
poetry --version
. - Utiliser les virtualenvs en local avec
poetry config virtualenvs.in-project true
.
- Vérifier avec
- MiniKube
- Vérifier avec
minikube version
.
- Vérifier avec
- Java
- Au moins la dernière version LTS.
- Vérifier avec
java --version
.
- Maven
- Vérifier avec
mvn --version
.
- Vérifier avec
GitLab
- Créer un projet privé sur GitLab dans votre groupe personnel.
- Depuis le groupe, cliquer sur
New project
>Create blank project
. - Nom du projet :
DOP Python
. - Identifiant du projet (laisser par défaut) :
dop-python
.
- Depuis le groupe, cliquer sur
- Ajouter
blueur
etGeraudSilvestri
comme membre du projet.- Trouvez le bon rôle qui permet de mettre à jour les merge requests (MR) sans pouvoir changer les paramètres du projet.
- Protéger la branche
main
.- Personne ne doit pouvoir pousser directement sur la branche.
- Seuls les mainteneurs peuvent fusionner des MR.
- Cloner le répertoire sur votre machine.
- Vérifier que vous ne pouvez pas pousser directement sur la branche
main
.
- Vérifier que vous ne pouvez pas pousser directement sur la branche
- Créer une issue (ticket) dans le projet.
- Titre :
Rendu labo 01
. - Assigner l'issue à soi-même.
- Titre :
- Sur son ordinateur, créer une nouvelle branche
feature/01-tools
et aller dessus.- Créer un projet Vue 3 dans le dossier
/frontend
.- https://vuejs.org/guide/quick-start.html#creating-a-vue-application
- Depuis la racine du répertoire, exécutez
npm create vue@latest
.- Project name:
frontend
- Add TypeScript?
Yes
- Add JSX Support?
No
- Add Vue Router for Single Page Application development?
No
- Add Pinia for state management?
No
- Add Vitest for Unit testing?
No
- Add an End-to-End Testing Solution?
No
- Add ESLint for code quality?
Yes
- Add Prettier for code formatting?
Yes
- Project name:
- Installer les dépendances avec
npm install
- Tester le serveur de développement avec
npm run dev
- Créer un commit avec les changements et pousser la branche sur GitLab.
- Créer un projet Poetry dans le dossier
/backend
.- https://python-poetry.org/docs/basic-usage/#project-setup
- Depuis la racine du répertoire, exécuter
poetry new backend
. - Depuis le dossier
/backend
, installer FastAPI.- https://fastapi.tiangolo.com/#installation
poetry add fastapi uvicorn[standard]
oupoetry add fastapi "uvicorn[standard]"
(pour zsh).- S'il y a le dossier
/backend/backend
:- Créer un fichier
main.py
dans/backend/backend
avec le code ci-dessous. - Tester le serveur de développement avec
poetry run uvicorn backend.main:app --reload
.
- Créer un fichier
- S'il y a le dossier
/backend/src/backend
:- Créer un fichier
main.py
dans/backend/src/backend
avec le code ci-dessous. - Tester le serveur de développement avec
poetry run uvicorn src.backend.main:app --reload
.
- Créer un fichier
- Voir la documentation de l'API à l'adresse http://127.0.0.1:8000/docs
- Ajouter un fichier
.gitignore
adapté au projet.
- Créer un projet Vue 3 dans le dossier
- Créer un commit avec les changements et pousser la branche sur GitLab.
- Créer une MR pour fusionner la branche feature dans
main
.- Lier la MR à l'issue
Rendu labo 01
(plusieurs façons possibles). - Assigner la MR à soi-même (assignee).
- Demander une revue de code à
GeraudSilvestri
(reviewer).
- Lier la MR à l'issue
- Essayer l'outils de suivi du temps de GitLab pour ses estimations.
/estimate 2h
pour estimer le temps nécessaire pour la MR./spend 1h30m
pour indiquer le temps réellement passé.
/backend/backend/main.py
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
Question rapport
- Indiquer le lien vers la MR dans le rapport.
- Quelles sont les bonnes pratiques pour les messages de commit?
Configuration
- Configurer son ordinateur pour qu'il affiche les extensions des fichiers.
- macOS : Finder > Préférences > Avancé > Cocher "Afficher toutes les extensions de fichier".
- Windows : Explorer > Affichage > Options > Modifier les options des dossiers et de recherche > Affichage > Décocher "Masquer les extensions des fichiers dont le type est connu".
- Configurer son ordinateur pour qu'il affiche les fichiers cachés.
- macOS : Finder > Cmd + Shift + ..
- Windows : Explorer > Affichage > Options > Modifier les options des dossiers et de recherche > Affichage > Cocher "Afficher les fichiers, dossiers et lecteurs cachés".
Présentation
- Écrire une brève présentation de soi avec notamment
- Son parcours académique
- Ses centres d'intérêt
- Ses compétences en informatique et en DevOps
- Pourquoi avoir choisi ce cours/cette formation
- Ses attentes pour le cours
- …
- Rendre la présentation au format PDF nommé
presentation-prenom-nom.pdf
(avec votre prénom et nom, tout en minuscule, sans accent, sans espace avec des tirets) sur Cyberlearn.
Bonus : Réécriture de Git
- Cloner le répertoire Git Exercise
- Faire les exercices indiqués dans le README