Codage efficace pour les débutants: écrire du code réutilisable

Je vais vous révéler un secret. Vous devez vous promettre de ne le partager avec personne. D'ACCORD? Ici c'est b ... Les meilleurs codeurs écrivent le moins de code. Cela semble un peu contre-intuitif, n'est-ce pas? Mais ce n'est pas. Maintenant, un codeur expérimenté peut écrire des moteurs 3D qui sont évidemment beaucoup plus de lignes de code que quelqu'un qui écrit un menu. Ce à quoi je veux en venir, c'est que si un développeur junior et senior résolvait le même problème, le développeur senior aurait écrit moins de code. La raison en est que le développeur senior a appris à être paresseux. Ils ont appris à coder efficacement et à tirer parti de l'ancien code pour le réutiliser. Dans cet article, je vais partager avec vous quelques-uns des trucs et astuces que j'ai appris au fil des ans.

Toutes les lignes de code ne sont pas uniques

Il existe un mantra commun dans le monde du codage. Écrivez du code réutilisable. Vous le voyez sur les offres d'emploi, les tutoriels, les articles de codage (comme celui-ci), etc. Il y a une bonne raison à cela. Plus vous pourrez réutiliser, moins vous aurez à écrire à chaque fois. Cela économise du temps et de l'argent, ce qui est toujours une bonne chose. Cependant, pour tout ce discours sur la manière de s'assurer que le code est réutilisable, cela peut en fait être un concept difficile pour les nouveaux codeurs de comprendre. Les codeurs inexpérimentés utilisent généralement l'une des deux méthodes suivantes. Soit ils regardent leur code et pensent que tout ce qu'ils ont fait est une situation ponctuelle et que rien ne sera à nouveau nécessaire, soit ils vont trop loin et essaient de tout rendre réutilisable. C'est ce premier scénario que nous allons aborder en premier.

Il est très facile de regarder un gros bloc de code et de se dire «oh, ce code est unique, je n’aurai plus jamais besoin de l’utiliser» et vous avez probablement raison. Cependant, le truc pour être paresseux est de décomposer le code en plus petits morceaux et de regarder à nouveau. Recherchez les petites choses qui semblent simples mais qui doivent être faites tout le temps. Peut-être qu'ils ne prennent qu'une ligne ou deux de code, mais ces petites choses s'additionnent avec le temps.



Une chose qui pose toujours problème dans Flash est de s'assurer que le texte est sur des pixels entiers. Si ton champ de texte ne se trouve pas sur un pixel entier, le texte ne sera pas rendu correctement.

myTextField.x = 12; //instead ofmyTextField.x = 12.2;

Pour résoudre ce problème, vous pouvez écrire ceci:

myTextField.x = int(12.7);

Assez simple, sauf que vous auriez converti la valeur en entier chaque fois que vous vouliez placer du texte.

La méthode réutilisable consiste à créer une classe de base pour votre TextFields et de l'utiliser à chaque fois que vous avez besoin de texte.

public class WholePixelText extends TextField { public function WholePixelText () { super(); } public override function set x(value:Number):void { super.x = int(value); } public override function set y(value:Number):void { super.y = int(value); } }

Maintenant au lieu d'aller nouveau Champ de texte(); tu dirais nouveau WholePixelText (); et ne vous inquiétez plus jamais que votre texte puisse être sur un demi-pixel. Peu importe ce à quoi nous définissons les propriétés x et y, elles seront toujours réduites en nombres entiers. Nous venons de nous épargner d'innombrables secondes et frappes de frappe int (xVal) encore et encore. De plus, nous avons éliminé un point d’échec en nous assurant que notre texte sera rédigé correctement.

Une autre façon de réduire la quantité de code que vous écrivez consiste à enregistrer des fonctions importantes. Les fonctions mathématiques sont quelque chose dont j’ai toujours du mal à me souvenir, alors j’ai pris l’habitude de sauvegarder des méthodes importantes pour la fin. Par exemple, combien de fois avez-vous eu besoin d'un nombre aléatoire entre deux entiers?

les entreprises qui ont changé leur logo

Vous pouvez essayer de vous souvenir de ceci:

var myRand:int =Math.random()*(max-min)+min;

ou vous pouvez écrire ceci une fois, puis ajouter une classe Utils statique qui contient ceci:

public static function randomInt(min:int=0,max:int=1):int { return Math.random()*(max-min)+min; } //Then the next time you need a random int //this is all you need to remember:var myRand:int = Utils.randomInt(min,max);

Vous pouvez également inclure des fonctions pour obtenir l'angle entre deux points ou convertir des degrés en radians et inversement. Ce sont des fonctions importantes que vous vous retrouverez à utiliser encore et encore. Pas besoin de les écrire à chaque fois à partir de zéro. Embrassez le paresseux, écrivez une fois. Utilisez partout.

Il est également important de pouvoir identifier graphiquement où les choses sont très différentes, mais partagent en réalité une grande partie du même code sous-jacent. Les boutons en sont un bon exemple. Les boutons peuvent sembler très différents, mais ils ont tous des éléments communs. Ils ont tous des zones touchées et des effets de retournement. Un excellent moyen de gérer cela est d'écrire une classe de base commune pour tous les boutons que vous utilisez. De cette façon, vous pouvez éliminer certaines des tâches répétitives associées à la création de boutons.

Voici un exemple de classe de base de bouton de base:

public class ButtonBase extends Sprite { public function ButtonBase() { setupHit(); this.buttonMode=true; this.mouseEnabled=true; this.mouseChildren=false; this.addEventListener(MouseEvent.ROLL_OVER, onOver, false, 0, true); this.addEventListener(MouseEvent.ROLL_OUT, onOut, false, 0, true); } protected function setupHit():void { this.graphics.clear(); this.graphics.beginFill(0xffffff, 0); this.graphics.drawRect(0, 0, this.width, this.height); this.graphics.endFill(); } protected function onOver(e:Event):void { } protected function onOut(e:Event):void { } }

Ensuite, pour le personnaliser pour votre bouton particulier, vous remplacez simplement le onOver et onOut fonctions pour créer vos propres effets. Cela vous fait gagner beaucoup de temps puisque vous n’avez pas à vous soucier de la zone touchée, en vous assurant boutonMode est activé ou en ajoutant des écouteurs pour les roll-overs.

Des boutons d

Des boutons d'assortiment qui ont tous un aspect différent mais qui utilisent tous la même base de code commune

Ne rendez pas tout réutilisable

L'autre erreur, que j'ai déjà mentionnée, que font beaucoup de codeurs est d'essayer de rendre tout ce qu'ils font réutilisable. En théorie, c'est une excellente idée, mais en réalité, vous pouvez finir par faire plus de travail que si vous venez de l'écrire à partir de zéro lorsque vous en avez besoin, ce qui va à l'encontre de nos idéaux paresseux.

La barre de défilement du code en est un bon exemple. Les barres de défilement sont de toutes sortes de formes et de tailles. Il est logique d'essayer d'écrire du code pour une barre de défilement que vous pouvez réutiliser encore et encore. Le piège de la barre de défilement vient d'essayer de créer une barre de défilement qui en fait trop ou qui est trop difficile à utiliser. La plupart des barres de défilement sont verticales ou horizontales. Mon estimation folle est que 98% de toutes les barres de défilement sont utilisées dans l'une de ces deux configurations avec une forte inclinaison vers la verticale. Cependant, lors de l'écriture de code comme celui-ci, la tentation pour certains est de créer une barre de défilement qui peut être utilisée sur n'importe quel angle, que ce soit 90, 180 ou 127. 90 et 180 ne sont pas une évidence, mais cela n'a pas vraiment de sens de passer des heures / days codant quelque chose qui sera utilisé si rarement.

Le codeur paresseux que nous nous efforçons d'être ne ferait jamais cela. Le codeur paresseux ne se soucie pas des cas extrêmes. Ils codent pour la grande majorité des cas et s'inquiètent de ceux qui surviennent.

J'espère qu'avec ces conseils et idées, vous pourrez commencer à penser paresseusement. Enregistrez ces touches et arrêtez de perdre un temps précieux en écrivant du code supplémentaire. Gardez toutes ces choses à l'esprit et vous aussi pouvez être The Lazy Coder.