Espace de fouille

Espace de fouille personnel

Comment Nommer Ses Tests Unitaires

Bonne idée que celle proposée par cet article pour nommer ses tests unitaires.

L'idée est d'utiliser le nom de la classe à tester comme le sujet de la phrase décrite dans le test. Par exemple :

1
2
3
4
5
6
7
  class HtmlLinkRewriterTest ... {
      void testAppendsAdditionalParameterToUrlsInHrefAttributes(){?}
      void testDoesNotRewriteImageOrJavascriptLinks(){?}
      void testThrowsExceptionIfHrefContainsSessionId(){?}
      void testEncodesParameterValue(){?}
    }

Tests qui peuvent ensuite être compris ainsi :

HtmlLinkRewriter appends additional param to URLs in href attrs.
HtmlLinkRewriter does not rewrite image or JavaScript links.
HtmlLinkRewriter throws exception if href contains session ID.
HtmlLinkRewriter encodes parameter value.

Plusieurs intérêts par rapport à cette méthode. Cela permet :

  • d'expliciter les responsabilités et fonctionnalités de la classe
  • de repérer des "code smell".
    • Ne pas pouvoir utiliser le nom de la classe testée comme premier mot d'une phrase est souvent signe d'une mauvaise place pour le test
    • Une classe difficile à décrire veut souvent dire qu'elle dispose de trop de responsabilités

Certains outils permettent d'ailleurs de formater le nom des tests comme une documentation de la classe. C'est le cas du plugin TestDox.

Créer Un Lien Dans Trello

Trello supporte Markdown pour les descriptions des cartes créées. Ainsi, il est possible d'ajouter un lien cliquable comme dans la description de la tâche suivante :

email image

Plus d'infos ici

Grain+Github Et Nom De Domaine Personnalisé

Grain est un moteur de site web statique écrit en groovy. L'idée est d'utiliser Grain pour générer un blog (cet espace de fouille) et de stocker le tout comme une github page. L'ensemble, bien qu'assez simple et rapide nécessite les étapes suivantes : 1. Téléchargement d'un thème 2. Configuration 3. Sauvegarde du "backend" 4. Génération des pages et publication sur Github 5. Associer un nom de domaine

Téléchargement d'un thème

Un site grain est ce que l'on appelle un thème. L'équipe Grain et la communauté en proposent plusieurs qui peuvent être téléchargés ici : page de thèmes

Il est aussi possible de récupérer un thème directement depuis Github, mais une archive suffit la plupart du temps.

Une fois l'espace de travail de grain créé à partir du thème, la bête se compose ainsi : - content : les différentes pages qui forment le site - theme : les fichiers relatifs au thème, que ce soit les éléments graphiques ou les commandes custom - SiteConfig.groovy : la configuration du site (infos générales, plugins activés, ...)

Tester le site nécessite simplement à exécuter la commande

1
grainw
et à se connecter à http://localhost:4000

Configuration

Tout se passe dans le fichier SiteConfig.groovy. Les commentaires du fichier aident à s'y retrouver.

La configuration du dépôt github se situe dans la variable ghpagesurl.

Sauvegarde du backend

Le dépôt actuel contient les fichiers qui permettront de générer le site. Il convient donc de stocker l'ensemble dans un dépôt différent que le site lui même. De mon côté, j'utilise soit un dépôt privé sur l'un de mes serveurs ou un dépôt privé bitbucket.

1
git remote add origin <gitremoteurl>

Génération des pages et publication sur Github

Dans le cas d'un blog à partir du thème octopress, il est possible de créer un post à partir de la commande :

1
./grainw create-post "Nom du post"

Le fichier correspondant sera créé dans content/blog

Générer les pages en vue d'une publication :

1
./grainw generate

Déployer le site sur github pages:

1
./grainw deploy

J'utilise une organisation github et je pousse les pages générées dans le dépôt .github.io comme précisé dans la doc github pages

Associer un nom de domaine

Par défaut, le site sera accessible via .github.io. Dans la plupart des cas, on préfère un nom de domaine spécifique, comme c'est le cas pour l'espace de fouille.

Pour ce faire, il convient de louer un nom de domaine au près d'un provider comme Gandi ou OVH. Une fois fait, la configuration nécessite la création d'une redirection (CNAME) vers .github.io. Une fois fait, une fois la propagation terminée (pouvant aller jusqu'à 2 jours), il faut préciser à github que le nom de domaine à utiliser pour le site statique est personnalisé.

Cela se fait en ajoutant à la racine du site un fichier CNAME. Pour nous, ce fichier est à créer dans content. Le fichier contient simplement le nom de domaine à utiliser (pour moi : espacedefouille.org).

Une fois le site déployé, il sera accessible via son nom de domaine.

L'espace De Fouille Fait Peau Neuve

Depuis environ 5 ans, je maintiens un espace de fouille personnel qui fut tour à tour un blog, un wiki, un site, ... Il devient aujourd'hui un blog, dans le sens originel du terme : un web log, espace de recherche et de suivi des découvertes qui me semblent intéressantes à garder avant tout pour moi. Si cela peut servir à quelqu'un d'autre, autant partager alors le voici en ligne.

Technique, mais pas que !

A l'origine, l'espace de fouille se concentrait sur la technique : le code, l'administration, ... J'ai un aveu à vous faire : la vie ce n'est pas que l'informatique ! Et j'irai même plus loin : l'informatique n'est qu'un outil, pas une finalité en soi ! Certes, l'informatique peut être un métier, une passion, mais cela reste un outil au même titre qu'un marteau, qu'un pinceau, qu'une voiture, que... Ce n'est qu'une réponse possible à un besoin donné.

Depuis plusieurs années, mes fouilles m'ont amené à explorer bien des domaines, comment vendre, comment raconter des histoires, comment courir, comment communiquer, ... Ainsi, plutôt que de me concentrer sur un seul sujet, autant placer dans un seul cachier de recherche le fruit de mes exploration.

Les besoins et les solutions possibles !

Je parlais plus haut d'outils. Les outils sont intéressants, mais les besoins le sont peut être plus, tout comme les idées de solution. Ainsi, plutôt que de me concentrer sur un seul outil comme je l'ai fait jusqu'à maintenant, j'ai pour intention d'expliciter les besoins que je peux observer, pousser des réflexions aussi loin que possible sur les réels buts qui se cachent derrière. J'ai aussi l'intension d'explorer les solutions possibles et, le cas échéant, explorer la technique et les outils qui permettent de mettre en place ces solutions.