Conventions de codage Utilisation et pas les configurations

Conventions de codage Utilisation et pas les configurations

  

Problème Vous voulez faire de votre JavaScript constructions plus efficaces en appliquant les rails "convention plutôt que configuration" principe à eux. Theory Vous mai-être déjà familier avec la plate-forme de programmation Ruby on Rails, qui est utilisé pour construire des applications Web. Le but de cette recette n'est pas Ruby on Rails, mais un aspect de Ruby on Rails à savoir la Convention sur la configuration (voir http://en.wikipedia.org/wiki/ Ruby_on_Rails pour plus de détails). Imaginez l'écriture de tests et de comprendre que vous utilisez un même jeu d'instructions, encore et encore. Lorsque vous convertissez le code à partir du code répétés dans le code générique, vous créez un cadre. Le cadre peut être créé dans l'une des deux façons. La première façon est de créer des infrastructures et des fils ensemble, et le deuxième est de faire des hypothèses sur votre code. Considérez ce qui suit JavaScript test JsUnit:

testsToRun var = (/ / Début du code JavaScript pour les cas de test ici testPlainVanilla: function () (/ / Some code testManager.success ();) / / Fin du code JavaScript pour les cas de test); testManager.setTestCases (testsToRun);

Les détails de ce que les variables et les classes ne sont pas pertinentes. Ce qui est important est de savoir comment ils sont connectés ensemble. La variable testsToRun contient un certain nombre de méthodes qui sont utilisées pour exécuter des tests particuliers. Lors de chaque essai est terminée avec succès, la méthode testManager.success est appelée. La variable testsToRun n'est pas associée à une autre méthode, membre de données ou d'une fonction tout simplement, testsToRun est accrochée comme un drapeau au vent. Bien entendu, nous ne voulons pas testsToRun à accrocher dans le vent, nous voulons que les essais à exécutée.

Les tests sont exécutés par la variable TestManager, et TestManager n'a pas connaissance de testsToRun. Le défi est de trouver comment faire TestManager conscients de testsToRun et, une fois qu'il est au courant, pour exécuter les tests de contenu. Le câblage des TestManager à testsToRun peut être une convention ou d'une configuration. Dans l'exemple précédent, la solution utilisée pour faire TestManager conscients de testsToRun est configuration. En termes de programmation classique, on peut penser à la configuration comme étant un fichier sur un disque dur avec des morceaux de texte qui sont analysées par un algorithme. Ce processus est une configuration, mais c'est juste un type de configuration. Un autre type connu sous le nom Configuration par programmation comprend le code source des classes dire comment tout est relié ensemble. Je ne vais pas à couvrir les avantages et les inconvénients des différents types de configuration il suffit de dire que la configuration est utilisée pour plusieurs fils ensemble des implémentations inconnu pour créer un système qui fonctionne. La configuration est souvent utilisée car elle est un moyen facile de créer un système qui fonctionne. Configuration ne nécessite pas un algorithme de déduction, mais plutôt, il a juste besoin d'un algorithme qui peut analyser un fichier de configuration ou d'un programmeur qui facilitent l'interconnexion des implémentations ensemble. En un mot, la configuration nécessite le programmeur ou administrateur pour faire une partie du levage lourd qu'à déterminer quelle pièce est câblée à l'autre pièce. Si quelque chose ne fonctionne pas, alors le système peut dire: «Attention, cela ne fonctionne pas.

Try again. " Convention peut sembler être une façon plus compliqué de créer un système de travail qui est plus un art qu'une science. Par analogie, dans le film I, Robot, L'acteur Will Smith joue un policier, Del Spooner, qui n'aime pas les robots. Pendant la scène d'interrogatoire de robots, Spooner clin d'œil à un autre policier de quitter la pièce en question. Le robot demande vouloir ce que signifiait le clin d'oeil, et Spooner explique que le clin d'oeil est quelque chose que l'homme sait. À un point plus tard dans le film, le robot utilise un clin d'oeil à envoyer à unMessage Spooner. Spooner est surpris, mais il sait ce qu'il signifie et agit en conséquence. Alors, comment le clin d'oeil se rapportent à la convention? Pour quelqu'un qui sait ce qui est le clin d'oeil, c'est un morceau simple et unique d'information qui a de nombreuses implications. Pour quelqu'un qui ne sait pas ce qui est le clin d'oeil, il est rejeté comme non pertinente.

Une personne qui rejette le clin d'oeil il manque un élément d'information essentielle et pouvait être considéré comme hors de la boucle de la connaissance. Le clin d'oeil représente un morceau compliqué d'informations qui nécessite un contexte pour comprendre complètement. Une critique de Ruby on Rails est que c'est plus un art qu'une science, et donc pas logique, car il utilise la convention en d'autres termes, c'est comme le clin d'oeil, et si vous n'avez pas le contexte pour le comprendre, il ne fait pas sens. Je tiens à contrer cette configuration utilise la convention, et est donc une convention. Dans le cas le plus simple, la configuration est auto-explicatif, mais dans le cas plus complexe, un fichier de configuration est une convention d'ensemble sur les siens. Pour comprendre la configuration, vous devez comprendre la Convention de la configuration, ce qui pose la question, pourquoi utiliser une configuration? La réponse est que, parfois, une configuration est la solution appropriée parce qu'elle offre souplesse; Avec la convention, vous faites les choses selon un schéma global prédéterminé. La configuration de la raison est devenue une convention est que dans de nombreux cas, les développeurs pensent qu'ils ont besoin d'utiliser la configuration pour gagner en flexibilité, lorsque la convention fait aurait été assez bon. Convention d'application ne requiert en utilisant la réflexion, parce que pour prendre une décision basée sur la convention, vous avez besoin de connaître le contexte actuel. Le gros avantage de l'utilisation de convention est que vous n'avez pas besoin pour maintenir la configuration à chaque nouvelle modification d'une convention capte automatiquement les derniers changements. Voici quelques-uns des scénarios dans lesquels vous utiliseriez Convention au cours de configuration:

• Lorsque vous devez constamment mettre à jour et gérer les recouper les informations (par exemple, des colonnes de base de données qui sont mappés à des données membres de la classe).

• Lors de votre configuration est seulement une importance à un promoteur et non pas un administrateur. Par exemple, vous pouvez vous attendre à un administrateur d'souhaitez configurer quelle base de données de votre application se connecte. Mais ne vous attendez pas à votre administrateur de configurer le modèle appartient à quel point de vue et le contrôleur dans aModel-Vue-Contrôleur (MVC) architecture.

• Lorsque vous ne pouvez utiliser la réflexion et appeler des méthodes de manière anonyme, sans connaître les informations de type. Il est possible d'appliquer les conventions en utilisant les langages de programmation tels que C # et Java, car elles contribuent à la réflexion, mais la capacité d'appeler des méthodes anonyme est beaucoup plus compliquée. Utilisant des langages dynamiques tels que le JavaScript et Ruby, il est très facile d'appeler des méthodes ou des propriétés sur les types.

• Lorsque vous devez fournir à vos utilisateurs (et vous-même) avec des notes si quelque chose tourne mal. Lorsque vous utilisez des conventions, il est très important d'indiquer clairement quel est le problème quand quelque chose ne fonctionne pas. Ruby on Rails fait un très bon travail de fournir des indications sur la marche à suivre lorsque quelque chose tourne mal. Cette fonction est importante car le code écrit pour un système qui utilise la Convention ne fonctionne que si vous connaissez la Convention. Solution Pour cette recette, nous convertissons le framework de tests unitaires décrits précédemment en une convention entièrement basé système. Puis à l'écriture des tests unitaires, notre seule tâche sera de mettre en œuvre une série de tests dans une structure, et le framework de test unitaire fera le reste. À titre d'exemple, examinons le modèle du nouveau test unitaire et d'identifier les pièces qui doivent être converties à partir d'une approche de configuration à une approche de la convention.

 Source: / jaxson / trunk / site / root / scripts / templates / testcontract.html  Contrat page de test 

Tests disponibles

Tester État
value = "prototype de test" /> Pas courir

La sortie de trace

Les lignes en gras dans l'exemple précédent représentent basé sur la configuration du code qui sera converti en fondées sur les conventions de code. Lors de la conversion de la configuration de base de code pour fondées sur les conventions de code, vous pouvez appliquer l'une des deux approches. La première approche consiste à réécrire les classes utilisées par l'unité d'essais cadre de manière à ce qu'ils deviennent complètement convention fondée. L'avantage de cette approche est que les classes sont maigres et de résoudre la tâche. La deuxième approche consiste à maintenir les fonctions de configuration, et d'écrire une couche au-dessus qui implémente les fonctionnalités de convention. L'avantage de cette approche est que les solutions de convention multiples peuvent être appliquées, mais l'inconvénient est une charge supplémentaire. Nous allons mettre en œuvre la deuxième approche, ici, et garder les deux la configuration et la couche de convention aussi maigre que possible. Idéalement, la couche de configuration ne doit contenir que les fonctionnalités requises par la Convention. Une fonctionnalité supplémentaire dans la configuration ajoute bagages inutiles. L'unité de base des tests de fichiers une fois convertis dans un fichier de convention est similaire à la suivante.

 Source: / website / ROOT / ajaxrecipes / javascript / conventionconfiguration.html  Convention au cours de configuration 

Le code modifié comprend trois épreuves, mais il faut noter la réduction drastique de code dans cet exemple. Notez également que le code de certaines constructions sont implicites et n'ont pas besoin d'être écrit de manière explicite (par exemple, testManager.success). Du point de vue utilisateur, la réduction et la simplification du code est une bonne chose, mais en fait il existe de nombreux aspects cachés que vous aurez besoin pour être au courant, parce que quand quelque chose va mal, vous avez besoin de savoir pourquoi c'est arrivé. Le Détails de la façon dont ce code a été mis en œuvre ne sont pas couverts dans la recette, ils sont décrits dans cet article mais les notions générales suivantes sont appliquées:

• Le code HTML qui contient des boutons est généré dynamiquement par un stratégiquement placés include file (conventiontest.js). Le fichier est placé là où il en est ainsi que les variables auront déjà été déclarées et disponibles pour l'initialisation.

• La variable implicite est une testsToRun-à-exister variable et est inspecté pour tests disponibles. Pour chaque méthode d'essai, un bouton est généré, où le nom du bouton est le nom de la méthode d'essai.

• Chaque méthode utilise un proxy pour intégrer et gérer automatiquement les erreurs ou les essais réussis de façon appropriée. Lorsque vous créez votre propre convention code axé sur les, gardez à l'esprit les points suivants:

Initialisation: Dans la configuration du code en fonction, vous êtes responsable de l'initialisation des variables et des objets, en congrès à base de code, le code est principalement responsable de l'initialisation lui-même. C'est comme le démarrage d'une voiture: vous vous attendez de la voiture pour alimenter en carburant du moteur, et tu veux juste tourner la clé et être capable de conduire. Le problème avec l'initialisation est que vous ne savez pas toujours le contexte.

• Vous avez deux façons d'initialiser. Le premier consiste à initialiser et configurer lorsque le code JavaScript est chargé, comme illustré par l'usine XMLHttpRequest dans la recette 2-4. La seconde consiste à initialiser lors de la première action a lieu. Dans le second scénario, un drapeau indiquant l'état d'initialisation est définie sur false lorsque le code JavaScript est chargé. Alors que l'action a lieu la première, l'initialisation se passe.

Vérification des erreurs: Systèmes Convention attendons certaines variables ou types déclaré, et si elles ne sont pas déclarés, des problèmes surgissent. Un système de convention doit avoir des routines d'erreur qui capture toutes les erreurs et expliquer en détail ce qui s'est mal passé. De nombreux développeurs pourrait penser qu'un système de la Convention devraient être adaptables et contourner le code n'est pas entièrement correct. C'est une idée fausse grands fournissant des solutions de contournement fait pour un développeur bâclée. Fondées sur les conventions de code nécessite de bonnes pratiques de codage, de sorte que les codes de tous à la même convention. Ne prenez pas de raccourcis.

Nommer la cohérence: Chaque fois que vous l'étiquette d'identification, vous devez être cohérents. Le nom de l'identifiant doit être aussi évidente que possible. N'essayez pas d'être intelligent, habile, ou cryptique. Ruby on Rails est un succès pour plusieurs raisons, dont l'une est que les conventions de nommage sont évidents, cohérente et intuitive.

un article présenté par Sonja Lande


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Conventions de codage Utilisation et pas de configuration" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 308 users browsing the articles directory