mercredi 28 octobre 2015

J'ai oublié de vous dire… #1

J’ai oublié de vous dire que je donnerais demain une conférence à la Blend Web Mix à propos de la programmation orientée « vers l’est », également connue sous le nom de programmation orientée objet. Cette conférence est la synthèse du (long et difficile) chemin que j’ai parcouru en 18 mois lorsque  […]

Lire la suite

mardi 12 mars 2013

La POO expliquée par Steve Jobs

Objects are like people. They're living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we're  […]

Lire la suite

mercredi 29 décembre 2010

private, protected et public sont dans un bâteau...

Suite à mon billet sur l'intérêt des tests unitaires sur les méthodes privées ou protégées, j'ai eu beaucoup de commentaires au sujet de l'encapsulation et sur sa mise en œuvre.

Récemment, cousin @ub sans bermuda, l'un de mes collègues chez PMSIpilot,  a relancé le débat via un sondage, même si son objectif était plutôt de lancer un débat sur le thème la composition contre l'héritage.

J'ai donc décidé de prendre mon clavier pour à la fois essayer de répondre à ces interrogations et mettre à plat ma propre réflexion sur le sujet.

L'encapsulation, dans le cadre de la POO, consiste dans le fait de masquer à l'utilisateur d'une classe les détails de son implémentation.

En PHP, elle est mise en œuvre à l'aide des mots-clefs private, protected et public, qui sont applicables au choix sur les propriétés d'une classe ou ses méthodes.

Le mot-clef private permet donc très logiquement de masquer à l'utilisateur final les propriétés et les méthodes sur lesquelles il est appliqué, alors que public, à contrario, permet de rendre les éléments sur lesquels il est appliqué totalement accessibles.

Enfin, tout ce qui est protected a un statut particulier, dans le sens ou tout ce sur quoi il est appliqué se comporte comme étant privé pour l'utilisateur de la classe, et comme étant publique dans les classes dérivées.

Lors de la conception d'une classe, le développeur doit donc choisir entre ces différents niveaux de visibilité, et cela à bon escient, car un mauvais choix à ce niveau peut avoir des répercussions parfois très gênantes pour les utilisateurs.

Or, il n'y a aucune règle explicite gouvernant l'utilisation de ces mots-clefs, car elle dépend très étroitement du contexte.

Lire la suite

lundi 26 avril 2010

svneeg : la classe sparkline ou héritage vs. composition

svneeg ayant pour but de représenter sous forme graphique le nombre de commits quotidiens effectués sur un dépôt svn en général et le trunk de PHP en particulier, je me suis dis que les sparklines étaient le type de graphique le plus adapté.

En effet, leur créateur, à savoir M. Edward Tufte, les décrit comme, je cite, des graphiques intenses en données, de design simple, et ayant la taille d’un mot.

Ce format est donc très adapté à mon besoin puisque je souhaitais pouvoir intégrer le graphique n'importe où de manière simple.

De plus, l'information représentée par le graphe étant simple, la petitesse de sa représentation induite par ce format ne devient pas un frein à sa compréhension.

La solution trouvée et validée, il ne restait plus qu'à la mettre en œuvre.

Et pour une fois, contrairement à mon habitude de réinventer la roue, je me suis mis à la recherche d'un code PHP tiers qui me permette de générer mes sparklines.

On me reproche en effet régulièrement de bafouer le mantra Don't reinvent the wheel !, et je m'étais dis que ce on pouvait ne pas avoir tort.

Lire la suite

mercredi 24 mars 2010

L'INRIA parle de la maintenance logiciel

Je me permet de relayer une informations intéressante pour tout utilisateurs de PHP ou de tout autre langage permettant de faire de la programmation orientée objet de Lille et de ses environs.

Lire la suite