Mot-clé - bonnes pratiques

Fil des billets - Fil des commentaires

18 avr. 2013

Beautiful Code : qu'est-ce que du "beau" code ?

Alors que l'année a démarrée en fanfare sur ce blog, avec presque autant d'articles publiés en 3 mois que sur toute l'année dernière, l'activité s'est tassée au mois d'avril. Il y a une raison derrière ça : je suis actuellement pris par trois projets différents, chacun nécessitant nécessitant de ma part une implication assez forte.

Le premier projet viens de se terminer : j'ai donné aujourd'hui même une petite présentation aux élèves de l'école Polytech Marseille (anciennement l'ESIL) - je remercie d'ailleurs les personnes qui ont mis en place ce rendez vous avec les étudiants, et en particulier M. Tisserand et M. Durand.

Le sujet de cette présentation ? La beauté du code.

Lire la suite...

18 juin 2012

Petit détour par le pipeline de production

bodyZBrush02.png[1] Non, il ne s'agit pas d'écrire un article parlant de pétrole ou de gaz. Je souhaite juste, par cet article, revenir à l'une des source de ma passion dévorante pour le développement : les jeux vidéo.

Mais plutôt que de vous parler de programmation, je vais vous parler d'autre chose, moins connu - mais certainement plus important. Aujourd'hui, je vais vous parler de ce qu'on appelle dans le jargon pas si obscure du développement des jeux un pipeline de production, c'est à dire une suite d'outil permettant la création, la mise au point, et l'intégration de données (et de code, même si je vais sciemment laisser ce point de coté) dans un jeu vidéo.

Et vous allez voir, ce n'est pas nécessairement simple.

Note

[1] Image (c) 3D Training Academy

Lire la suite...

10 oct. 2011

Dangers et pièges des systèmes de suivi des références

On conçoit aisément qu'il est très difficile de bien concevoir une application ou une libraire : cela demande des connaissances pointues en design ainsi qu'une imagination débordante. Par contre, il est très facile de mal faire : il suffit de se laisser appeler par les sirènes des différents pièges qui, nonchalamment, s'installent sur notre route.

Ce billet traite de l'un de ces pièges : la notion de propriété des objets dans un programme.

Je sais, vous avez déjà lu cette introduction récemment...

Lire la suite...

18 août 2011

De la gestion des gestionnaires

On conçoit aisément qu'il est très difficile de bien concevoir une application ou une libraire : cela demande des connaissances pointues en design ainsi qu'une imagination débordante. Par contre, il est très facile de mal faire : il suffit de se laisser appeler par les sirènes des différents pièges qui, nonchalamment, s'installent sur notre route.

Ce billet traite de l'un de ces pièges : l'omniprésent gestionnaire, qu'on retrouve à peu prêt partout, et dont on sait peu de choses.

Lire la suite...

14 mar. 2011

De la gestion de la mémoire

Et bien, il était temps ! Après plus d'un mois sans nouvelle, ce blog commençait à se dessécher, et sa peau parcheminée commençait même à craquer. A ma décharge, je dois dire que je prépare un volumineux, très volumineux scénario pour Dungeons & Dragons 4 qui devrait paraître dans un numéro ultérieur du webzine Petit Dragon, et que cette activité est tout aussi chronophage que mes activités sur ce blog (ce qui pose un problème puisque les journées n'ont que 24h). Mais je vais tenter de publier un autre article d'ici la fin du mois (et si j'en ai le temps, je tenterais d'être plus régulier à l'avenir).

Maintenant que tout est en ordre, attaquons le sujet du jour, et parlons justement de ces gestionnaires de mémoire. Je ne vais pas ici vous livrer le code d'un gestionnaire de mémoire ; inutile de me poser des questions sur les algorithmes à utiliser ; tout ceci est un problème d'implémentation, alors que pour une fois (étrange, me direz vous) c'est le coté fonctionnel et la vision architecturale qui m'intéresse. Incroyable, non ?

Lire la suite...

11 août 2010

Proposition de mise à jour du standard UML

Bien évidemment, une telle proposition est principalement destinée à mes lecteurs, car il et peu probable qu'un membre du comité de normalisation passe par là et se l'approprie (sait-on jamais).

UML est un bon langage de modélisation. Il a toutefois un défaut : l'approche purement objet qu'il utilise rends complexe la modélisation de code dans des langages autres que Java ou C#. On peut modéliser une partie d'un projet écrit en C++, mais il est impossible d'en modéliser la totalité. Cette limitation vient du fait que UML ne permet pas de modéliser une fonction qui n'est pas attachée à une classe. Hors une telle fonction peut avoir une importance capitale dans la conception - la librairie <algorithm> du C++ ne serait que modérément utile si elle n'était pas composée que de fonctions libres ; en fait on peut argumenter que toute autre approche aurait été une erreur de conception.

Cette proposition élimine cette limitation.

Lire la suite...

30 juil. 2010

Les ORM sont-ils une bonne chose ?

Axiom Database LogoCes dernières années, avec l'explosion du web dynamique et les avancées liées à la programmation objet, on a vu se développer des systèmes permettant de faire des liens plus ou moins directs entre le monde objet et le monde relationnel. Ces ORM (pour Object/Relational Mapping) proposent de créer une couche entre votre application et les données sous-jacente. En somme, ils gèrent ce qu'on appelle la persistance des données, en tentant de répondre à une question toute simple : comment faire pour les utiliser simplement tout en gardant une architecture claire, concise et efficace ?

Bien évidemment, ils échouent à apporter la bonne réponse à cette question.

Lire la suite...

17 déc. 2009

template<typename T> struct do_not_misuse

En C++, être capable d'abstraire un type de données pour qu'il puisse être utilisé sous une forme paramétrée est à la fois tentant, amusant, difficile et très souvent inutile. Je vais laisser de coté le dernier point (j'y reviendrait peut-être dans un article futur, et ceux qui lisent ce blog régulièrement savent que j'ai déjà traité le sujet dans un billet datant de 2007) pour me concentrer sur le précédent : la difficulté intrinsèque liée à la programmation générique en C++.

Mesdames et messieurs, venez vous assoir - le show va commencer...

Lire la suite...

26 fév. 2008

Pire que goto ?

Je ne pensais pas vraiment cela possible (même si, dans mon expérience, j'ai vu des morceaux de code dont la pertinence n'avait d'égal que la régularité avec laquelle ils ne fonctionnaient pas), mais j'ai trouvé une construction de code qui a le mérite d'être :

  • illisible
  • dangereuse
  • génératrice d'exceptions

Le tout, sans utiliser de goto.

Lire la suite...

13 août 2006

V comme Visiteur

Non, ce n'est pas le titre d'une série télévisée, la discussion qui s'en suivrait si tel était le cas n'aurait de toute façon aucune espèce d'intérêt dans le cadre d'un billet parlant d'architecture orientée objet. Le visiteur auquel je fais référence est bien évidemment le patron de conception du même nom.

Lire la suite...

- page 1 de 2