Go to file
Julien Palard 5e69beabe4
Django : Proofreading.
2023-12-17 22:58:22 +01:00
django-initiation Django : Proofreading. 2023-12-17 22:58:22 +01:00
doddling Dedupicating Makefiles. 2022-09-23 16:14:36 +02:00
drf-initiation Dedupicating Makefiles. 2022-09-23 16:14:36 +02:00
git-initiation Missing files 2023-09-26 09:13:47 +02:00
gnu-linux-initiation Missing files 2023-09-26 09:13:47 +02:00
python-avancé Missing files 2023-09-26 09:13:47 +02:00
python-initiation Missing background. 2023-09-26 09:08:29 +02:00
python-perfs python perf: adding pypy, remove a cache-bypass, rust in release mode. 2023-10-09 23:11:27 +02:00
.gitignore I use dotenv for my venvs. 2023-09-26 09:08:53 +02:00
LICENSE CC-BY. 2021-07-16 09:27:57 +02:00
Makefile Python perfs to prod. 2023-06-15 14:42:36 +02:00
README.md Dedupicating Makefiles. 2022-09-23 16:14:36 +02:00
background.jpg New deploy script. 2023-05-27 09:28:28 +02:00
deploy.sh New deploy script. 2023-05-27 09:28:28 +02:00
requirements.txt CI: Naming steps. 2022-09-23 15:26:01 +02:00

README.md

The slides I use while teaching

Each directory contains a Makefile that builds the slides using mdtoreveal.

Each directory is also uploaded to mdk.fr:

TODO

Notes

Les arguments par defaut conservés peuvent service de memoizer:

def fib(x, memo={}):
    ...

Aucune fonction n'est montée avant le 3, (à part des méthodes sur les types natifs).

Souci : Jour 1 pytest nécessite Jour 2 pip...

La suite du programme avancé

  • Packaging

  • cookiecutter : docs/, tests/, README, setup.cfg, setup.py, ...

  • Multiprocessing / Multithreading / Asyncio

  • IO Bound vs CPU Bound

  • Locks vs Queues

  • Code quality

  • import this, explicit is better

  • sémantique : les ternaires, les listes en compréhension, sont des expressions, elles doivent être utilisées comme des expressions, pas comme des instructions.

  • TDD

  • pas de print, logging FTW.

  • pas de "logging tiers", personne ne connaît, on reste sur logging.

  • -Xdev

  • black, ..., pass

  • pytest, doctest

  • pytest-cov

  • hypothesis

  • flake8

  • flake8-bugbear

  • tox

  • mypy

  • black

  • pdb, breakpoint()

  • EAFP, LBYL

  • Performance

  • Les types natifs : Leur complexité algorithmique

  • Cython

  • pypy

  • cffi

  • cprofile / pstats

  • Libs

  • re

  • argparse

  • pathlib

  • logging

  • numpy

  • jupyter

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

DRF

Side project : https://github.com/JulienPalard/drf-demos

  • Revue des bases et consolidation Python et Django
  • Présentation des types d'API, approfondissement de REST/HATEOAS
  • Rappels autour de la sémantique HTTP
  • django-rest-framework: La sérialisation
  • django-rest-framework: Les différents types de vues
  • django-rest-framework: Les permissions
  • django-rest-framework: Les relations
  • Les tests et la maintenabilité

Objectifs pédagogiques

  • Pouvoir démarrer rapidement un projet DRF.
  • Savoir designer une API.
  • Implémenter un service headless en utilisant DRF.

TP

  • Projet 1 : API « Horloge parlante ».
  • Projet 2 : API « memcached ».
  • Projet 3 : API « file system ».
  • Projet 4 : API « uptime manager ».

Formation Initiation Linux (2 jours)

Cette formation est destinée à toute personne souhaitant utiliser Linux, pour du développement, de l'administration système, ou pour un usage quotidien.

Stagiaires

Maximum 5 par sessions, pour commencer, peut monter à 7.

Pré-requis

Aucun.

Objectifs pédagogiques

  • Pouvoir utiliser une machine sous Linux au quotidien.
  • Être à l'aise avec les interfaces en ligne de commande.
  • Savoir installer et utiliser des logiciels.
  • Manipuler des fichiers, des données.

Plan

Jour 1

  • Présentation de l'environnement Linux.
  • Maniement de l'émulateur de terminal.
  • Approche des commandes classiques :
    • man, cd, ls, pwd, mv, cp, rm, less, …
  • Installer, désinstaller des applications depuis le gestionnaire de paquets.

Jour 2

  • L'accès à l'extérieur avec ssh, rsync, curl, et gestion des sauvegardes.
  • Introduction à la gestion de sources en utilisant git.
  • Manipulation de données en utilisant awk, sed, grep, find.
  • L'édition de texte depuis un terminal en utilisant emacs.
  • Approche du système de fichier : les droits, la sécurité, mount.