Suivre à la lettre le principe DRY peut être source d'over-engineering et conduire à créer du code moins lisible/maintenable inutilement. Avec WET, la duplication de code est autorisé lorsque ce code est utilisée 2 fois, le refactoring du code pour limiter la redondance n'intervient qu'au bout de la 3ème utilisation du code.
Quelques conseils pour écrire la documentation minimale d'un projet git (README, CHANGELOG, commentaires)
- Bad code does too much – Clean code is focused (cf. Single_responsibility_principle)
- The language you wrote your code with should look like it was made for the problem
- It should not be redundant (cf. DRY)
- Reading your code should be pleasant (cf. KISS & YAGNI)
- Can be easily extended by any other developer
- It should have minimal dependencies
- Smaller is better
- It should have unit and acceptance tests
- It should be expressive
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Un reformatteur de code python développé par Google.
$ pip install yapf
$ yapf my_file.py
Suivre aveuglement les bonnes pratiques de développement au lieu de s'adapter aux besoins business peut parfois devenir contre productif.
Un TLDR des conventions de codage pep8 pour python
Un analyseur de code python pour detecter les erreurs et s'assurer de respecter la convention de codage python pep8
Pour rendre un code python automatiquement compliant avec pep8
set -e
: sort automatiquement du script si une commande échoueset -u
: sort automatiquement du script si une variable n'est pas initialiséeset -o pipefail
: sort automatiquement du script si une commande dans un pipe échoueIFS=$'\n\t'
: les chaînes de caractères séparées par un espace sont considérées comme une même chaîne de caractère (seul le saut de ligne et la tabulation sont considéré comme des séparateurs standards)function finish { ... }
&trap finish EXIT
: les instructions de la fonction finish seront toujours exécutés en sortie du script (ex: supprimer des fichiers temporaires, arrêter ou redémarrer une application, ...)
#!/bin/bash
function finish {
# Your cleanup code here
}
trap finish EXIT
Utile pour supprimer un répertoire temporaire quand le script s'arrête par exemple, mais aussi pour redémarrer un service qu'on arrête pour maintenance en début de script
Un guide des bonnes pratiques Python écrit sur GitHub :https://github.com/kennethreitz/python-guide
Utiliser la variable de type array $PIPESTATUS
en bash pour obtenir le code retour d'une commande après un pipe |
Les normes de scripting Shell en vigueur chez Google.
Également dispo pour les autres langages de développement utilisées par Google (C++, Java, Python, HTML/CSS, JavaScript...) à cette adresse:
Pas mal d'astuces sympa dont:
set -u
(ou set -o nounset
) pour que le script se termine s'il doit utiliser une variable nom définie. A tester
Analyseur syntaxique de script shell en ligne ou à télécharger
Bonnes pratiques pour écrire des scripts shell propres