Coder proprement pour sauver du temps!

Le méthodologie du clean code, lancé par Robert Martin, aussi connu sous le nom de Uncle Bob, a pour but est de faire sauver du temps à tout le monde qui devra travailler sur votre projet ainsi qu’à vous-même. Que ce soit pour l’entretien de votre projet, la compréhension de votre code ou tout simplement pour vous faire aimer de vos collègues. De plus, vous augmenterez le rendement de votre équipe et si d’autres gens prennent le relais suite à votre passage, vous deviendrez une source de référence.

Vous codez pour les autres

Lorsque je suivais mes cours de conduite, le professeur disait toujours de conduire pour les autres parce qu’on ne sait jamais comment ils vont réagir. Cette théorie est aussi vrai pour un programmeur. Vous ne devriez jamais programmer en étant la seule personne à comprendre votre code. Encore pire, si vous devez changer ce que vous avez fait plusieurs mois après parce que votre client veut quelque chose de nouveau, vous ne devriez pas avoir à le passer en revue au grand complet pour vous comprendre. Codez plutôt dans l’optique que vous écrivez un livre, et comme dans un livre vous ne devriez pas avoir besoin de remonter dans votre code pour voir à quoi servent vos variables. Afin de réussir ce coup fumant, il faudra le faire sans aucun commentaire et simplement avec l’aide de vos variables et de vos méthodes!

/* Pas de commentaire */

Vous ne devriez pas avoir besoin d’avoir recours aux commentaires et ce pour plusieurs raisons :

  • Attire l’attention sur autre chose que le code
  • Écrire des commentaires de qualités prend du temps
  • Si le code change, vous devez prendre le temps de modifier les commentaires
  • Il peuvent devenir désuet et semer la confusion s’ils sont mal maintenu

Voici deux exemples flagrant de commentaires inutiles qui nuisent à la lecture du code :

///summary
/// Méthode permettant de transformer le texte
///summary
/// <returns>Retourne le texte transformé</returns>
private string TransformerTexte(){
[…]
return monTexteTransforme;
}

private string TransformerTexte(){
[…]
//retourner mon texte transformé
return monTexteTransforme;
}

Dans le premier exemple, le nom de la méthode est suffisamment parlant pour ne pas avoir à expliquer son but et votre nom de variable est très claire également. Pour le deuxième, les commentaires viennent créer un doublons puisque vous dites exactement la même chose que la variable. Vous pouvez donc retirer commentaires sans nuire à la compréhension. N’oubliez pas que l’absence de commentaire est plus utile qu’un mauvais commentaire. Si toutefois vous sentez le besoin d’expliquer votre méthode ou vos variables, c’est probablement parce qu’elle est trop longue ou que les noms sont mal choisis.

C’est ici que vos noms de variables et les noms de vos classes CSS entrent en action!

Des noms de variables qui parlent!

Lorsqu’un autre programmeur lit votre code, vos noms de variables doivent lui indiquer ce que vous êtes en train de faire. Par exemple si vous déclarer un booléen, choisissez un autre nom que

bool estValable = false;

dites plutôt ce que vous vérifiez en nommant votre variable convenablement :

bool imageDeTailleCorrecte = false;

Vos noms de variables seront plus long la plupart du temps mais vous allez voir ce qui « est valable » au premier coup d’œil et vous n’aurez donc pas besoin d’une ligne de commentaire pour expliquer ce que vous validez.

N’oubliez pas de les déclarer juste avant de les utilisez pour facilité la lecture et de ne pas donner des noms stylisés du genre « int nombre = 1 ».

Vos noms de classes CSS vous servent de carte géographique

Tout comme vos variables, vos nom de classes doivent parler à la personne qui doit utilisez votre code et lui indiquer à quel endroit cette classe est utilisée.

Par exemple, la classe suivante pourrait facilement être renommée :

<div class="contenu">Vive le chocolat</div>

Au lieu de simplement dire que les styles de cette classe s’applique au contenu, dites plutôt à quelle endroit se trouve ce contenu.

<div class="contenu-page-accueil">Vive le chocolat</div>

De cette façon, si quelqu’un doit modifier ce que vous avez fait, il sera simple de savoir où cette classe est appliquée et vous sauverez du temps.

Autre point très important pour vos classes CSS, évitez de les faire avec des noms qui ressemblent à du « inline style » comme par exemple :

<div class="gras petit-padding titre-page-accueil">Vive le bacon</div>

.gras{
font-weight:bold;
}
.petit-padding{
padding:5px;
}

Dans cet exemple il serait beaucoup plus efficace de regrouper tout vos styles sur la classe « titre-page-accueil » pour ne pas créer de doublons dans votre CSS et grandement faciliter l’entretien de votre projet.

La longueur compte

Lors de l’élaboration d’une méthode, gardez celle-ci la plus courte possible. Une bonne façon de voir si elle est trop longue est si vous réalisez qu’elle est utilisée pour plusieurs choses à la fois.

Voici l’exemple d’une mauvaise méthode :

private void ObtenirItemListePrix (){
//Code pour obtenir les items de la liste nommée Prix
//Code qui ajoute des items dans la liste
}

La méthode sert à deux choses, ce qui invalide son nom. Optez plutôt pour deux méthodes, une qui obtient les items de la liste et une autre qui va ajouter les items.

Pour une méthode la plus claire et simple possible, privilégiez celles de type « void », avec le moins de paramètre possible et sans validation booléenne (faites en deux à la place). Bien entendu il s’agit d’un idéal, il est normal de ne pas toujours y parvenir.

Par la suite, si vous avez des problèmes, il sera beaucoup plus rapide de trouver quelle partie de votre code est en erreur, vos fonctions seront plus courtes donc plus faciles à entretenir, comprendre et lire en plus de décrire véritablement ce qu’elles font, ce qui vous permet de ne pas mettre de commentaire.

Coder proprement, une mentalité

Pendant votre développement vous devrez constamment vous remettre en question et parfois renommer vos variables ou méthodes plus votre code évoluera. Cependant si votre équipe maîtrise bien le concept, vous sauverez un temps considérable pour l’entretien de vos projets et aussi stopper la perte de cheveux devant du code incompréhensible.

Advertisements

Le gestionnaire de conception, sauveur ou casse-tête?

Le gestionnaire de conception, c’est quoi?

Il s’agit d’une nouveauté pour les sites de publication SharePoint 2013. La tâche principale de cet outil est de transformer votre HTML pour en faire une page maître que vous pourrez utiliser dans votre site SharePoint par la suite. Vous pouvez donc créer une page «type» avec votre éditeur préféré (Dreamweaver par exemple) et votre HTML sera converti en une page maitre compatible avec SharePoint. Tout ce qui est requis, tel que les éléments ASP.NET, seront créés par le gestionnaire de conception. Ensuite, vous pourrez faire les modifications que vous souhaitez à l’aide d’éditeur HTML.

Points forts

Créer et éditer votre page maître et vos gabarits de page avec l’éditeur HTML de votre choix.

Facile à exporter et importer avec un seul package «WSP».

Permet la visualisation d’un aperçu de votre gabarit de page. Simplement passer par votre bibliothèque SharePoint qui contient votre gabarit et vous verrez le rendu HTML.

Permet de graduer les éléments suivant :

  • Colonnes
  • Types de contenus qui héritent du type de contenu « page ».
  • Gabarits de page
  • Page maître
  • CSS
  • JavaScript
  • Modèles d’affichage
  • La configuration de votre recherche si vous activez les fonctionnalités suivantes :
    • Types de contenu de données de configuration de recherche
    • Colonnes de Site des données de configuration de recherche
    • Fonctionnalité de recherche Config liste Instance
    • Fonctionnalité de modèle Config de recherche

Points faibles

Il n’est pas possible de retirer un package du gestionnaire de conception après une importation. Si quelque chose se passe mal, vous devrez créer une nouvelle collection de site et recommencer.

Vous ne pouvez pas choisir ce que vous graduez de façon granulaire.

Peu de documentation sur internet, ce qui peut rendre l’entretien et le développement plus complexe.

Le mécanisme n’est pas compatible avec SharePoint Foundation 2013 puisque vous devez activer les fonctionnalités de publication.

Les éléments suivant de sont pas inclus lors de la graduation, vous devrez donc les recréer manuellement :

  • Vos listes et bibliothèque ne seront pas incluses. Si votre code interagi avec une liste que vous avez créée, vous aurez donc une erreur puisque de toute évidence votre liste n’est pas la.
  • Sous sites
  • Propriétés gérées
  • Paramètres de navigation
  • La sécurité
  • Page de recherche par défaut
  • Les pages et les documents de votre collection de sites
  • Paramètres des modèles de site et de mise en page

Un outil qui devra faire ses preuves

Il est encore trop tôt pour dire si l’introduction du gestionnaire de conception deviendra un incontournable dans le monde SharePoint. Cependant, une chose est certaine, si vous choisissez d’utiliser le gestionnaire de conception, l’absence documentation sur le web sera une énorme épine dans votre pied lorsque vous serez en phase de développement ou d’entretien pour votre projet. Pour l’instant, Visual Studio reste le meilleur moyen pour déployer vos composantes, spécialement si vous devez graduer celles-ci à travers plusieurs environnements.

Il faudra toutefois garde un œil sur ce que Microsoft nous proposera comme nouveautés et améliorations à court et moyen terme. Au fur et à mesure que des développeurs partageront le fruit de leurs tests il sera également moins complexe d’intégrer l’outil au sein d’une équipe.