Le développeur, le mainteneur et la vision technique

Avez-vous déjà réfléchi sur le rapport entre confiance, partage des connaissances et propriété du code ?

Une décision collective m’a amené sur ce terrain il y a quelques jours.

Une décision qui sur le moment m’a laissé une impression d’insatisfaction sans que je ne sache correctement l’expliquer. J’ai dû y réfléchir plus longuement pour mieux comprendre ce sentiment et l’expliquer.

Lire la suite

Début de Rinosc

Cet article est le quatrième de la série débutée par RAML et Silex : duo gagnant ?

Dans les épisodes précédents, nous avons mis en place une API REST avec Microrest puis permis de chercher et d’enregistrer des posts sur viedemerde.fr via un lancement en ligne de commande.

L’API REST ne répond cependant pas à la spécification exprimée dans le fichier RAML. Nous allons donc nous y employer.

L’objectif final est de pouvoir générer le squelette de code via ce fichier RAML. Mais dans un premier temps il sera fait à la main.

Lire la suite

Cilex et Goutte : webscraping en ligne de commande

Cet article est le troisième de la série débutée par RAML et Silex : duo gagnant ?

Dans l’article précédent, nous avons réalisé une API REST très basique permettant de lire et insérer des posts en base de données.

Maintenant nous allons récupérer ces posts sur le site http://www.viedemerde.fr/

C’est une étape intermédiaire puisqu’elle ne concerne pas vraiment la création de l’API REST.

Lire la suite

La verbalisation des code-reviews

Il y a quelques jours, je discutais de code-review avec des collègues. En particulier de la subjectivité de certaines remarques qui se basent sur l’intuition du développeur mais sans avoir plus d’argument à apporter qu’un « je pense que ce serait mieux ».
La question qui se pose alors est de savoir s’il faut modifier le code pour les prendre en compte ou le laisser tel-quel. De savoir si le développeur doit suivre le conseil sans motivation valable (« je ne comprends pas pourquoi il faut que je modifie mon code mais bon il le faut… ») ou si le code-revieweur doit laisser tomber sa remarque (« mince, je sens bien qu’il y a un truc qui cloche mais bon je n’arrive pas à l’expliquer, tant pis »).

Lire la suite

Serveur de développement : installation de Xdebug

Après avoir installé un environnement de développement nous allons l’enrichir petit à petit.

Dans cette étape, j’explique comment j’installe et configure Xdebug pour afficher de l’information utile (var_dump restylé et stack-trace des erreurs PHP), interagir avec l’IDE pour placer des points d’arrêt dans le code, réaliser du profiling.

Lire la suite

VM + LAMP = serveur de développement – L’initialisation

Dans mon précédent billet, je monte une machine virtuelle qui me permet automatiquement de créer les RPMs nécessaires à l’installation d’Apache et de PHP sous une CentOS 6.4.

Désormais je vais les utiliser et commencer mon serveur de développement.
Pour rappel, celui se basera sur :

  • CentOS 6.4
  • Apache 2.4
  • PHP 5.5
  • MariaDB 5.5

Pour tester l’installation, je vais développer une petite interface web utilisant Silex.
Ne vous méprenez pas : un peu d’affichage et de requêtes en base suffiront, ce n’est pas l’objectif de ces billets – en tout cas, pas les premiers.

Lire la suite

Construire des RPM pour Apache et PHP sous CentOS 6.4

Je veux installer une machine virtuelle de développement avec la stack LAMP (CentOS, Apache, MariaDB, PHP) dessus.

Plusieurs raisons me mènent à construire mes propres RPMs pour Apache et PHP.
Tout d’abord les dépôts standards ne me fournissent pas les versions voulues, en particulier pour PHP.
De plus, comme je passe par Vagrant avec la possibilité de souvent détruire/reconstruire les machines virtuelles, j’aime éviter de trop nombreux téléchargements ou compilations qui ralentissent le démarrage de la VM.
Construire mes RPMs me permet aussi de garder les mêmes versions des briques applicatives entre deux installations de VM.
Enfin, je n’ai encore jamais construit de RPMs, c’est l’occasion 🙂

Comme nous le verrons par la suite, pour les compilations il est nécessaire d’installer des packages qui ne sont pas utiles sur la VM de développement.
J’ai donc pris le parti de dédier une VM pour la construction des RPMs et comme Vagrant me permet de la détruire et de la reconstruire à volonté, cette VM dédiée ne présente aucune gêne quand elle ne sert pas.

Si je résume les objectifs.

La VM doit me permettre de faciliter l’installation d’un environnement de développement contenant :

  • CentOS 6.4
  • Apache 2.4.6
  • PHP 5.5.3

Pour cela, elle doit automatiquement :

  • Installer les outils nécessaires à la compilation de sources
  • Récupérer les sources nécessaires
  • Résoudre les dépendances nécessaires à la compilation des sources
  • Compiler les sources
  • Construire et mettre à disposition les RPMs prêts à l’emploi

Lire la suite