J'hésite

Je suis en train de revoir les réglages de mon éditeur préféré du moment (Sublime Text 3), entre autres pour la présentation du code [1], et plus spécialement un des sujets sensible : l’indentation.

Depuis la nuit des temps … de Dotclear, on utilise une indentation avec des tabulations — véritables, équivalentes à 4 espaces ; et j’avoue que la tabulation qui « coûte » 1 octet plutôt que 4 espaces qui en coûtent 4, quand on vient d’un temps où chaque octet était précieux (début des années 80 par exemple), ça m’a toujours paru bizarre que la plupart privilégient les 4 espaces !

Surtout que le précieux, à savoir la mémoire utilisée est toujours d’actualité lorsqu’on parle de bande passante, etc, et c’est d’ailleurs pour ça qu’on utilise la plupart du temps des minifiers qui sont des petits programmes qui enlèvent tout ce qui est superflu comme par exemple tous les espaces utilisés pour l’indentation du code, mais pas que.

<?php

if (!defined('DC_CONTEXT_ADMIN')) {return;}

$this->registerModule(
    "Tidy Administration",                    // Name
    "Customize your dotclear administration", // Description
    "Franck Paul",                            // Author
    '0.7',                                    // Version
    array(
        'requires' => array(array('core', '2.13')), // Dependencies
        'type'     => 'plugin'                      // Type
    )
);

Depuis quelques années ceux qui développent en PHP se sont mis d’accord sur des règles de développement, et une en particulier (PSR-2) concerne la présentation. Celle-ci impose (bien qu’on ne soit jamais tenu de l’appliquer) quatre espaces plutôt qu’une indentation sous forme de tabulation, et quelques autres règles qui changent légèrement des conventions qu’on utilise pour Dotclear.

Étant donné que je suis le dernier développeur vivant chez Dotclear — j’aime bien cette formule ! — j’ai choisi, en commençant par Clearbricks, de basculer sur PSR-2, au fur et à mesure de la reprise du code. Concernant les autres préconisations qui changent aussi (nom des classes, méthodes, espaces de nom, …), je pense que je verrai ça dans un deuxième temps.

Jusque là, tout va bien, on n’a parlé que de PHP et c’est assez simple.

Ensuite se pose la question des conventions à utiliser pour les sources en CSS, Javascript, HTML, …

$(function() {
    // Iconset information
    $('a.iconset-readme').modalText($(window).width() / 2 - 40, $(window).height() / 2 - 40);
    // Iconset delete confirmation
    $('table.iconset_list form input[type=submit][name=delete]').click(function() {
        var p_name = $('input[name=iconset_id]', $(this).parent()).val();
        return window.confirm(dotclear.msg.confirm_delete_iconset.replace('%s', p_name));
    });
});

Pour l’instant pour Javascript, j’ai choisi 4 espaces aussi, mais je sais que certains (et pas des moindres comme chez Google par exemple) préconisent plutôt 2 espaces. Idem pour CSS/Sass, HTML/XML, 4 espaces, bien que j’hésite un peu pour ces derniers (une tabulation coûte moins cher que 4 espaces quand on charge un fichier HTML depuis un serveur).

/* Change admin fonts and make them a little bit bigger */

@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,600,700);
@import url(http://fonts.googleapis.com/css?family=Source+Code+Pro:400,600,700);
body {
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-size: 130%;
}
pre, code, .codemirror {
    font-family: 'Source Code Pro', 'Andale Mono', 'Courier New', monospace !important;
}

À tous les développeurs qui passent par ici, c’est quoi vos habitudes/préférences pour l’indentation, spécialement pour Javascript, CSS et HTML ?

Note

[1] Pour le formattage du code j’utilise le package CodeFormatter pour Sublime Text, extension qui gère PHP, Javascript/JSON, CSS/Sass, HTML/XML, Python, … soit à peu près tout ce qu’on utilise côté Dotclear et Clearbricks.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13648

Haut de page