NOBLEME
DISCUTER
LIRE
JOUER
EN
Afficher le menu latéral

Coulisses de NoBleme

Une plongée publique dans les entrailles du site

Depuis le redesign de NoBleme en 2012, j'ai décidé de rendre le développement de NoBleme aussi transparent que possible. Pour ce faire, j'ai rendu publics les plans de développement du site via la liste des tâches et son plan de route, tout en proposant aux utilisateurs de soumettre leurs idées en ouvrant un ticket. En parallèle, je discute de sujets touchant parfois au développement du site sur le blog de développement. Pour accompagner tout ça, j'ai également rendu public l'intégralité du code source du site.

En complément de cette politique d'ouverture, j'ai crée les coulisses de NoBleme - la page que vous lisez en ce moment même - afin de discuter des raisons pour lesquelles j'ai choisi de rendre transparent le développement de NoBleme, pour expliciter mes convictions en tant que développeur, pour parler des technologies qui font fonctionner NoBleme, et pour partager avec vous le code source du site.




Code source de NoBleme

Le code source de NoBleme est hébergé dans un dépôt public sur Bitbucket :


Par désir de transparence, l'intégralité du code source de NoBleme est open sourcé : Si vous vous avez des connaissances en développement et que vous vous demandez comment un aspect de NoBleme est géré, vous pouvez trouver la réponse à vos questions dans la source publique du site.

Le code source de NoBleme utilise une licence très permissive (MIT license). Cela signifie que vous êtes libres de réutiliser des bouts du code source de NoBleme pour vos projets personnels ou professionels sans me demander ma permission si vous en avez envie, tant que vous me créditez et que vous incluez une copie de la (courte) licence de NoBleme dans chaque fichier contenant du code réutilisé.

La source du site est très vieille (le site est dévelopé en continu depuis 2005), et utilise par choix des technologies qui ne sont pas très modernes (PHP procédural sans framework, javascript sans framework, MySQL), mais elle est tout de même modernisée régulièrement afin de rester en concordance technologique avec son temps.

L'intégralité du code source est commenté de façon exhaustive, et les commentaires sont faits pour être aussi explicites que possible. Ainsi, même si vous ne maitrisez pas totalement les langages de programmation utilisés, vous devriez quand même pouvoir suivre la logique du code sur n'importe quelle page.

Le choix de Bitucket pour héberger la source est technologique : Le dépôt de NoBleme est versionné avec Mercurial plutôt que git (préférence personnelle), ce qui exclut d'utiliser des sites comme Github qui ne gèrent pas Mercurial. Au moment de la création du dépôt, parmi les sites gratuits qui géraient Mercurial, Bitbucket avait la meilleure infrastructure et le plus de fonctionnalités utiles. Le choix était donc logique.



Contribuer au code source de NoBleme

Lorsque je travaille seul sur un projet, ma méthode de développement est très pointilleuse et perfectionniste. Par conséquent, je préfère refuser toutes les contributions à NoBleme, car je risque de toutes les rejeter.

Si vous avez repéré un problème dans le code source de NoBleme ou que vous avez des ajouts constructifs à y faire, vous pouvez ouvrir un ticket et/ou venir en discuter sur IRC. Même si je rejette les contributions directes, ce type de contributions indirectes est toujours très fortement apprécié.




Les convictions qui s'appliquent au développement de NoBleme

Gratuit et sans publicités : De mon point de vue, Internet est un merveilleux milieu d'expression libre, qui est gâché à beaucoup d'endroits par l'aspect financier. Il est compréhensible qu'un site à grande échelle a besoin de financement pour vivre, mais il est inexcusable qu'un petit site ruine l'expérience de ses utilisateurs pour gagner au mieux deux ou trois dollars par mois les bons mois. Quand j'ai lancé NoBleme, j'ai assumé la responsabilité du financement, et il est pour moi crucial que le site reste gratuit, sans publicité, sans sponsoring, sans intérêts tiers. Je n'accepte pas les donations. Contentez-vous de profiter.

Aucune conservation des données personnelles : À l'inscription, je ne vous demande qu'un pseudonyme, un mot de passe (bien entendu chiffré de façon à ce que je ne puisse pas le voir), et un e-mail. Je ne vérifie même pas l'autheniticité de l'adresse e-mail, elle sert seulement d'outil de secours si jamais vous perdez votre mot de passe. À part ça, la seule donnée que je collecte sur les utilisateurs sont la dernière adresse IP dont ils se sont servis. De votre côté, un cookie est stocké dans votre navigateur si jamais vous désirez rester connecté à votre compte entre vos visites, et un second cookie sert à retenir d'une visite à l'autre le langage que vous utilisez (pour nos amis anglophones). C'est tout. Si vous avez le moindre doute, n'oubliez pas que le code source de NoBleme est public, vous pouvez aller vérifier par vous-mêmes.

Une transparence pédagogique : J'ai toujours abordé le développement avec une vision pédagogique. À mes yeux, le rôle d'un développeur est non seulement de développer, mais aussi de transmettre ses compétences. Les métiers des sciences informatiques demandent une telle quantité de connaissances qu'une personne seule ne pourra jamais s'approcher d'une maitrise globale du sujet. Ainsi, plus il y a de développeurs qui partagent activement leur savoir, plus le niveau collectif des développeurs augmente. C'est en grande partie pour cela que le processus de développement de NoBleme est transparent et que le code source est public. Par ailleurs, le canal #dev du serveur IRC NoBleme est un lieu de partage de connaissances permanent entre informaticiens, qui est ouvert à tous, des débutants aux confirmés.

Un effort de compatibilité : Toutes les pages du site sont passées au validateur W3C et testées avec les principaux navigateurs ainsi que sur mobile et tablette. Plutôt que de devoir adapter vos outils à NoBleme, c'est NoBleme qui doit s'adapter aux outils que vous utilisez pour naviguer sur le site.




L'infrastructure technologique de NoBleme

Si jamais ça peut assouvir la curiosité de quelques personnes, voici une liste plutôt exhaustive des applications, services et technologies qui sont utilisées dans le développement de NoBleme :