Tuesday, January 19, 2021

Goodhart’s Law on Software Development


Goodhart's law is an adage named after British economist Charles Goodhart, who advanced the idea in a 1975 article on monetary policy in the United Kingdom, Problems of Monetary Management: the U.K. Experience (wiki 2020) 


There are numerous concepts related to this idea, at least one of which predates Goodhart's statement of 1975



Monday, January 18, 2021

Clean Code et bonne pratiques en général

 

Règles générales concernant la longueur des classes et méthodes

  1. Les méthodes devraient avoir au plus 20 lignes

  2. Les classes devraient avoir au plus 200 lignes

  3. Une classe devrait contenir au plus 10 méthodes

  4. Plus les méthodes et les classes sont grandes, moins elles sont réutilisables   

    Principe de proximité

    • Regrouper ensemble une méthode publique avec ses méthodes privées

      • Permet de lire le fichier comme un journal : Grand titre = méthode publique, sous-titres = méthodes privées, etc.
      • Éviter les régions

        • Moyen artificiel d'organiser les fichiers
        • Dissimulent la véritable longueur d'un fichier et sa complexité
        • Ne valent pas mieux que les commentaires si on les compare au code auto-documenté


Créer une branche de feature dans Visual Studio et Azure DevOps

Sur Visual Studio

  1. Basculer sur la branche master.

    • S'il y a des modifications dans la branche courante, il faudra les valider (commit) ou les annuler (undo) avant de basculer sur master.
  2. Tirer la dernière version de la branche master.

    image.png

  3. Créer une nouvelle branche à partir de la branche master locale et la nommer selon la règle de nomenclature.

    image.png

Sur Azure DevOps

  1. Sélectionner New Branch à partir de la branche master.

    image.png

  2. Nommer la branche selon la règle de nomenclature.

    image.png

  3. Tirer la nouvelle branche sur Visual Studio

    • S'il y a des modifications dans la branche courante, il faudra les valider (commit) ou les annuler (undo) avant de tirer la nouvelle branche.

    • Récupérer la liste de branches distantes à partir du serveur (fetch).

      image.png

    • Basculer vers la nouvelle branche en faisant un double clique sur son nom. La branche sera automatiquement tirée.

      image.png