Le blog d'un geek devenu directeur technique

Billets libellés temma

Mes projets sur GitHub

J’ai migré sur GitHub un certain nombre de projets dont je mène le développement.

L’URL est simple : https://github.com/Amaury

Voici une rapide présentation des projets en question.

Temma

Le framework que j’ai développé au sein de mon entreprise. C’est un framework MVC écrit en PHP, qui accélère les développements par son fonctionnement très facile à appréhender.

Toute la documentation est disponible sur http://www.temma.net

FineFS

C’est le système de fichier redondé utilisé là aussi dans mon entreprise. Son principe est de permettre l’accès à des fichiers depuis plusieurs machines d’un même cluster, avec un fonctionnement à la fois synchrone et asynchrone. Il est codé en PHP.

En attendant que toute la documentation soit migrée sur GitHub, elle est toujours visible sur GoogleCode : http://finefs.googlecode.com

FineBase

Il s’agit d’une bibliothèque de fonctionnalités basiques, écrite en PHP. C’est la brique de base sur laquelle Temma et FineFS sont fondés. Les fonctionnalités offertes sont :

  • Système de lock, pour empêcher plusieurs exécutions concurrentes d’un même programme ou plusieurs accès simultanés à une même ressource.
  • Système de log, pour écrire des messages qui vont être publiés (dans un fichier, sur la sortie d’erreur, via syslog, ou transmis à des handlers) en fonction de leur criticité et des seuils de criticité minimale définis pour chaque couche logicielle. Cela permet par exemple d’avoir un programme pour lequel on verra les erreurs des couches les plus basses, et tous les messages de débuggage pour les couches les plus hautes.
  • Un objet de gestion unifiée des sessions, un autre pour la base de données, un autre pour l’accès au cache (utilisant Memcache).
  • Un wrapper sur HTML Tidy pour nettoyer du code HTML généré par WYSIWYG.
  • Une file de messages stockée en base de données.
  • Une extension au SoapClient de PHP, pour supporter l’authentification WSSecurity.
  • Un chronomètre de temps d’exécution.
  • Un objet de registre, un objet d’écriture ANSI sur la ligne de commande, quelques objets d’exception, …

HeaderBrowser

C’est un outil de génération de documentation à partir de code source en C ou en C++. Dans l’idée, il est assez similaire à JavaDoc ou PHPdoc, se basant sur des commentaires contenant des marquages spéciaux. Par contre, la documentation générées est affichée d’une manière qui facilite grandement la navigation ; vous pouvez en trouver un exemple pour la bibliothèque Ylib (voir plus bas).

PLUS »

Le manifeste « micro PHP »

Je suis tombé récemment sur le manifeste micro PHP.

Le manifeste

Plutôt que de faire un copier-coller bête et méchant de la version originale, voici une traduction approximative :

Je suis un développeur PHP
Je ne suis pas un développeur Zend Framework ou Symfony ou CakePHP.
Je pense que PHP est déjà suffisamment compliqué.

J’aime créer des choses simples
J’aime créer des choses simples avec des objectifs simples.
J’aime créer des choses qui résolvent des problèmes.
J’aime créer des choses simples qui, mises ensemble, résolvent des problèmes complexes.

Je veux moins de code, pas plus
Je veux écrire moins de code, pas plus.
Je veux gérer moins de code, pas plus.
Je veux maintenir moins de code, pas plus.
Chaque morceau de code que j’ajoute à un projet doit être justifié.

J’aime le code simple et lisible
Je veux écrire du code qui se comprend facilement.
Je veux du code qui se teste facilement.

Le détail

Le créateur de ce manifeste explique sa pensée plus en détail sur son blog. Dans un premier post, il donne sa vision d’ensemble. Mettons de côté sa comparaison musicale (il compare l’installation de deux batteurs, pour dire qu’il se voit comme un codeur punk, et non pas comme un codeur rock-progressif… mais on s’en fout un peu).

Ce qui est intéressant, c’est lorsqu’il donne un exemple de code, censé être typique des applications Zend Framework :

PLUS »

Présentation du framework Temma

Il y a quelques temps déjà, j’ai rapidement parlé d’un projet sur lequel je travaille. Il s’agit de la publication sous licence libre du framework MVC en PHP que j’ai développé pour les besoins de mon entreprise.

C’est fait. Le framework se nomme Temma, et il est disponible sur le site www.temma.net.
N’hésitez pas à y faire un tour, il y a une introduction rapide et une documentation détaillée.

L’approche générale du framework est de trouver le bon équilibre entre simplicité, modernité et bonnes pratiques.
Il suffit réellement de 3 minutes pour en comprendre les bases et l’utiliser sur de vrais sites. Il a été développé en utilisant des notions modernes (namespaces, autoload, …), avec quelques idées intéressantes − notamment au niveau de la gestion des données. Il est modulaire et configurable, ses fonctionnalités peuvent facilement être étendues en passant par des extensions (contrôleurs, vues, plugins). Quelques extensions sont déjà disponibles sur le site, mais j’espère étoffer tout ça rapidement.
La page de FAQ explique certaines spécificités de Temma.

La documentation n’est pour le moment disponible qu’en français ; c’était plus simple pour la publier rapidement. Néanmoins, tout est là pour sortir une version en anglais, un fois que tout sera traduit.

Un petit programme facilite la création de sites basés sur Temma. Ce script, ainsi que le code source brut du projet sont téléchargeables sur le site. Pour faciliter les contributions, je suis en train de mettre en place un dépôt sur GitHub.

J’attends avec impatience les premiers retours, qu’il s’agisse de questions ou de remarques concernant la documentation, de retours d’expérience sur l’utilisation du framework, ou de contributions sous forme de code source.

Edit : Merci à Éric (zenprog.com) pour avoir fait les premiers tests sur un environnement différent du mien, et m’avoir fait quelques remontées pleines d’intelligence.