Veille

Conventions de codage en AS3

Adobe vient de publier un document fort intéressant intitulé « Flex SDK coding conventions and best practices ». Le titre est trompeur puisqu’il n’est point question de Flex mais bien d’AS3, ce qui est révélateur quand à l’obsession maladive d’Adobe sur Flex (au détriment de Flash en tant qu’IDE, oserais-je avancer). Plus généralement, cette louable initiative, parmi d’autres, tend à montrer à quel point la firme californienne cherche à se créer une crédibilité auprès des « vrais » développeurs.

La lecture ou au moins le survol de ce document est recommandé. C’est un condensé de bon sens qui tranche avec le grand n’importe quoi de l’AS1 et de l’AS2 (”monClip1_mc”, David T. style). Et celà peut servir d’arbitrage lors d’un désaccord entre développeurs.

Pour autant, on y relève un certain de nombres de passages un peu surprenants :

Tableaux typés

Do this:
var a:Array /* of String */ = [];
Not this:
var a:Array = [];

Étrange… Cette pratique rapelle la méthode utilisée à l’époque par le compilateur alternatif MTASC. Certes, c’est bien commode pour la complétion dans FlashDevelop par exemple, mais c’est en concurrence avec la méthode officielle Flex (lourdingue) : ArrayElementType metadata tag. La prochaine version de l’EcmaScript, et donc logiquement le futur AS4, integrera en natif les tableaux typés. En attendant, si on est courageux, on peut utiliser des classes de tableaux typés (MovieClipArray, etc) que l’on trouve dans pas mal de frameworks AS.

int plutôt que uint

Use int for integers, even if they can’t be negative. Use uint only for RGB colors, bit masks, and other non-numeric values.

Tout simplement absurde. Adobe préconise cette pratique en oubliant de préciser qu’elle découle d’un bug dans le player Flash : Types in AS3: ints not so fast, uints slow!

imports

Import specific classes, interfaces, and package-level functions rather than using the * wildcard.
Do this:
import mx.controls.Button;
import flash.utils.getTimer;

Not this:
import mx.core.*;

Mouais. Ou comment avoir 30 lignes d’imports au début de chaque classe. Je pense pas que ce soit très utiles pour les classes intrinsèques du player Flash (import flash.display.*; rules !)

À part ça, que du bon. À revisiter quand le document sera terminé.

Flex SDK coding conventions and best practices

Le 26 avril 2008 par nerik

Tags = ["", "", ""];

2 commentaires pour “Conventions de codage en AS3”

  1. matthieu dit :

    Hum en effet fort intéréssant, merci pour le lien !
    Dommage que ca tombe aussi tardivement, et c’est toujours pareil, le temps que tout le monde se penche dessus, tous les développeurs seront pas parfaits tout de suite.
    Faudrait déjà que tous connaissent la méthode hongroise…

  2. PingooO dit :

    Je viens de tester “/* of String*/” dans FlashDevelop, ça n’a pas l’air de marcher. (Seul /*String*/ est pris en compte). Hum… il faudra le signaler à Philippe…

Laisser un commentaire