mageekblog Le blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.

Aller au contenu | Aller au menu | Aller à la recherche

cv | twitter | linkedin subversion atoum

À propos de phpng et de PHP 7

Il y a quelques jours, Johannes Shlüter a donné une conférence à propos du fonctionnement de phpng.

Pour ceux qui l’ignorerait, Johannes a été le « release master » de la version 5.3 du langage, et phpng sera le remplaçant du Zend Engine 2 dans ce qui sera PHP 7, qui correspond à la prochaine version majeure du système et qui prendra donc la suite de PHP 5.

Vous avez bien tout suivi ? Si ce n’est pas le cas, relisez le paragraphe précédent en faisant abstraction de vos connaissances en arithmétique élémentaire…

Le mariage de PHP 7 et de phpng devrait être consommé dans approximativement un an, d’après Zeev Suraski.

Grâce à phpng, PHP 7 devrait donc apporter un gain de performance très significatif, comme d’habitude avec chaque nouvelle version du langage…

Lire la suite...

Réussir dans la vie…

Il faut que tu travailles bien à l’école pour réussir dans la vie.

Il faut que tu travailles bien et beaucoup pour réussir ta carrière.

Il faut que tu aies une Rolex à ton poignet avant 50 ans pour réussir ta vie.

Il faut… pour réussir…

Je pense que nous avons tous entendu cette ritournelle à minima une fois dans notre vie, même si parfois, elle est exprimée de manière presque subliminale.

Pendant longtemps, je me suis interrogé sur la signification de ce « réussir » que nos parents, les politiques et la société nous servent à toutes les sauces sous une forme ou sous une autre.

En effet, je ne me sentais pas à l’aise avec la définition implicite qui émane de tous ces leitmotivs récurrents qui semblent systématiquement attacher à la notion de réussite l’argent, le travail et le matérialisme.

Et puis, au détour d’un film, j’ai eu « ma » définition de la réussite, celle qui correspond à mes valeurs, qui est en accord avec mes convictions et avec laquelle je suis parfaitement en phase :

Réussir, ce n’est pas toujours ce qu’on croit.

Ce n’est pas devenir célèbre, ni riche ou encore puissant.

Réussir, c’est sortir de son lit le matin et être heureux de ce que l’on va faire durant la journée, si heureux qu’on a l’impression de s’envoler.

C’est travailler avec des gens qu’on aime.

Réussir, c’est être en contact avec le monde, et communiquer sa passion.

C’est trouver une façon de rassembler des gens qui n’ont peut-être rien d’autre en commun qu’un rêve.

C’est se coucher le soir en se disant qu’on a fait du mieux qu’on a pu.

Réussir, c’est connaître la joie, la liberté et l’amitié.

Je dirais que réussir, c’est aimer.

Et si je me base sur cette définition, aujourd’hui, je n’ai pas réussi, et malheureusement à plus d’un titre.

Il est donc plus que temps que je fasse en sorte d’y parvenir !

À propos de la programmation orientée objet #2

J’ai eu quelques commentaires à propos de mon dernier billet dans lequel je dis qu’il n’est pas prudent, lorsqu’on fait de la programmation orientée objet, de se baser à l’intérieur d’une méthode de classe sur une valeur retournée par ce qui est communément appelé un « getter » pour prendre une décision.

Étant donné que je suis un peu masochiste, j’ai pris le temps de coder quelques lignes pour démontrer qu’il s’agit d’une mauvaise pratique.

Étant amateur de (bonne) bière, je me suis permis de choisir comme cas d’usage la réalisation d’une commande par un client dans un bar à bière, de la demande au paiement.

De plus, afin de limiter la portée de l’exemple, j’ai fait quelques concessions sur la réalisation technique.

Ainsi, mon code ne contient pas d’interface, alors que dans un cas réel, afin d’augmenter le niveau d’abstraction, il faudrait y recourir afin de pouvoir par exemple remplacer le barman par une pompe à bière automatique, ou bien le client par un Autrichien sachant parler le français et payer en euro.

De plus, je n’ai pas utilisé d’injection de dépendance pour la création de mes objets et au moins une méthode assure une méthode qui ne devrait pas être de la responsabilité de la classe, mais j'ai choisi dans ce cas la facilité, car la méthode concernée est périphérique et n'apporte rien au propos.

Lire la suite...

À propos de la programmation orientée objet

Il y a quelque temps, un vieux serpent de mer est ressurgi puisque quelqu’un a demandé si atoum est aujourd’hui capable de tester des méthodes protégées.

J’ai tout d’abord laissé le rasta blanc ainsi que d’autres utilisateurs répondre à la question et justifier le fait qu’atoum ne propose pas cette fonctionnalité.

Cependant, du code censé me démontrer l’utilité de cette possibilité m’a été présenté, et je suis alors rentré dans le débat en expliquant que lorsque les concepts de base de la programmation orientée sont respectés, il est inutile de tester des méthodes protégées.

Et je ne justifierais pas ici et maintenant une nouvelle fois cela, car ce n’est pas l’objet de ce billet, d’autant que je l’ai déjà fait.

La discussion a en effet dévié du sujet initial pour se focaliser sur la programmation orientée objet et ses concepts, et je me suis rendu compte à cette occasion qu’en réalité nous ne faisions pas toujours de la programmation orientée objet, moi compris.

Lire la suite...

PHP au Nirvana

Il y a encore peu de temps, dans un monde pas si vieux que cela, Zend régnait en maître dans l’écosystème PHP.

En effet, le Zend Engine était la seule et unique solution viable pour exécuter du code PHP, et si son code est libre et ouvert, Zend exerce suffisamment de contrôle sur son développement pour pouvoir le maîtriser plus ou moins ouvertement.

Mais depuis quelque temps, la situation a beaucoup évolué, puisqu’il existe maintenant des alternatives viables et surtout plus performantes.

J’avais déjà évoqué il y a deux ans le projet Bianca mis au point par Clever Cloud comme solution de remplacement au Zend Engine, mais depuis, d’autres solutions sont apparues, à commencer par HHVM, conçu par Facebook.

Lire la suite...

- page 1 de 95