Y a-t-il une performance tangible ou une avantage de lisibilité à utiliser des balises par rapport à la CFScript?

StackOverflow https://stackoverflow.com//questions/9689847

Question

J'utilise Coldfusion 8 et 9.

Je lisais quelques meilleures pratiques de Coldfusion hier. Je suis tombé sur une section qui a conseillé de toujours utiliser la CFScript autant que possible. Le raisonnement était que chaque CFSe est une demande distincte et doit être ouverte et fermée par le serveur (ou quelque chose à cet effet). Étant donné que CFScript est traité comme un bloc de code unique, un seul ouvert et une ferme est nécessaire, prenant ainsi moins de temps pour le processus serveur. Ce conseil a été donné explicitement pour Coldfusion 5.

Je me demande si ce conseil est vrai aujourd'hui, presque une décennie plus tard. Personnellement, j'utilise CFScript 99% du temps. Je travaille toutefois avec des personnes qui utilisent uniquement des balises. Dans un projet sur lequel je travaille, j'ai rencontré ce code dans une fonction:

<cfset LOCAL.TrackingInfo = structnew()>
<cfset LOCAL.TrackingInfo.referral = CGI.HTTP_REFERER>
<cfset LOCAL.TrackingInfo.ipaddress = CGI.REMOTE_ADDR>
<cfset LOCAL.TrackingInfo.useragent = CGI.HTTP_USER_AGENT>
<cfset LOCAL.TrackingInfo.querystring = CGI.QUERY_STRING>

Je le modifierais pour ressembler à ceci:

<cfscript>
    LOCAL.TrackingInfo = structNew();
    LOCAL.TrackingInfo.referral = CGI.HTTP_REFERER;
    LOCAL.TrackingInfo.ipaddress = CGI.REMOTE_ADDR;
    LOCAL.TrackingInfo.useragent = CGI.HTTP_USER_AGENT;
    LOCAL.TrackingInfo.querystring = CGI.QUERY_STRING;
</cfscript>

Pour moi, la prestation est la lisibilité. Et, il est vraiment facile d'aller de retour entre CFScript et JavaScript et Java (le petit Java que j'ai fait).

Y a-t-il une lisibilité ou une prestation de performance tangible pour utiliser cfscript? Y a-t-il une raison d'un non-débutant de continuer à utiliser des étiquettes CF?

Était-ce utile?

La solution

Aucune différence de vitesse réelle à parler dans les versions modernes de la langue. En ce qui concerne la lisibilité complètement subjective pour qui fait la lecture. Je travaille avec un large éventail de personnes cf. Certaines de ces personnes ont très fort du temps après la CFScript et d'autres personnes qui essaient tous d'être utilisées (presque au point de surkill). Personnellement, je dis que je vais aller avec quelle approche que vous êtes le plus à l'aise avec et c'est aussi une approche de l'équipe de personnes avec qui vous travaillez est acceptable. Je pense que le but ultime ici est de produire du code que tous les membres de l'équipe peuvent facilement comprendre et soutenir si jamais besoin. Un exemple d'arguments de lisibilité pourrait être que je connais quelqu'un ici qui dirait que votre bloc CFScript n'est pas aussi lisible que ceci:

<cfscript>
    LOCAL.TrackingInfo  = { referral = CGI.HTTP_REFERER, 
                            ipaddress = CGI.REMOTE_ADDR, 
                            useragent = CGI.HTTP_USER_AGENT, 
                            querystring = CGI.QUERY_STRING };
</cfscript>

Je ne pense pas que l'un de vous soit "plus juste" que l'autre. Juste des différences dans les styles de codage personnel.

ou un autre exemple que je travaille avec une personne qui insiste sur le fait que toutes les balises CF sont en lettres majuscules ainsi que des attributs. Leur raison indiquée est qu'il aide à la lisibilité. Je ne trouve pas plus plus facile ou plus difficile de lire quand il est dans toutes les casques. Si quelque chose que je trouve juste un problème pour toujours maintenir le kit de décalage ou frapper le verrouillage des capuchons lors de la messagerie avec le code sur ces projets spécifiques.

Autres conseils

Lorsque cela a été posé à l'équipe des FC, il a été indiqué qu'il y avait une différence négligeable dans l'utilisation de CFScript, mais il est si petit que personne ne devrait jamais s'en inquiéter.Cela vient la manière dont les fonctions CFScript ont été écrites (dans les balises), il existe donc un coût minuscule associé à l'appel de fonction supplémentaire.Si vous remarquez une différence de tout type de chargement ou de vitesse, je serais surpris.

Modification rapide: les trucs que vous utilisez dans votre exemple ci-dessus, il n'y aurait aucune différence, la déclaration que je fais ne serait qu'en ce qui concerne les nouvelles améliorations de la langue CFScript en CF9.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top