Convenciones de codificación de usar y no Configuraciones deConvenciones de codificación de usar y no Configuraciones de
Problema que usted desea hacer su JavaScript construcciones más eficiente mediante la aplicación de Rails "convención sobre la configuración" principio para ellos. Teoría Es posible que ya esté familiarizado con la plataforma de programación Ruby on Rails, que se utiliza para crear aplicaciones Web. El enfoque de esta receta no es Ruby on Rails, sino un aspecto de Ruby on Rails es decir, el Convenio sobre la configuración (ver http://en.wikipedia.org/wiki/ Ruby_on_Rails para más información). Imagine escribir ensayos y darse cuenta de que se utiliza un mismo conjunto de instrucciones una y otra vez. Al convertir el código del código repetido en el código genérico, está creando un marco. El marco se puede crear en una de dos maneras. La primera manera es crear la infraestructura y alambre juntos, y la segunda es hacer suposiciones acerca de su código. Considere la siguiente prueba JavaScript JsUnit: testsToRun var = (/ / Start código JavaScript para casos de prueba aquí testPlainVanilla: function () (/ / Algunos testManager.success código ();) / / Fin de código JavaScript para casos de prueba); testManager.setTestCases (testsToRun); Los detalles de lo que las variables y las clases no son pertinentes. Lo relevante es la forma en que están interconectados. La variable testsToRun contiene una serie de métodos que se utilizan para ejecutar las pruebas en particular. Cuando cada prueba se ha realizado correctamente, se llama al método testManager.success. La variable testsToRun no está asociado con cualquier otro método, datos de los miembros, o de la función simplemente, testsToRun cuelga como una bandera al viento. Por supuesto, no queremos testsToRun para colgar en el viento, nosotros queremos que las pruebas que se ejecutado. Las pruebas son ejecutadas por la variable de TestManager, y TestManager no tiene conocimiento de testsToRun. El reto es encontrar la manera de hacer que TestManager consciente de testsToRun y, una vez que se tenga conocimiento, para ejecutar las pruebas contenidas. El cableado de TestManager a testsToRun puede ser una convención o una configuración. En el ejemplo anterior, la solución utilizada para hacer TestManager consciente de testsToRun es configuración. En cuanto a la programación clásica, se puede pensar de la configuración como un archivo en un disco duro con trozos de texto que son interpretadas por un algoritmo. Ese proceso es una configuración, pero es sólo un tipo de configuración. Otro tipo conocido como configuración programática incluye el código fuente de las clases diciendo cómo todo se une. No voy a cubrir las ventajas y desventajas de los diferentes tipos de configuración basta con decir que la configuración se utiliza para implementaciones de alambre junto desconocido para crear un sistema de trabajo. Configuración se utiliza a menudo porque es una manera fácil de crear un sistema de trabajo. De configuración no requiere un algoritmo de deducción, sino que sólo necesita un algoritmo que puede analizar un archivo de configuración o un programador que puede cablear implementaciones juntos. En pocas palabras, la configuración requiere que el programador o administrador para hacer algunas de las cargas pesadas de averiguar qué pieza está conectada a la otra pieza. Si algo no funciona, entonces el sistema se puede decir, "¡Uy, que no funciona. Prueba otra vez. " Convenio puede parecer una forma más complicada para crear un sistema de trabajo que es más arte que ciencia. Como una analogía, en la película Yo, Robot, El actor Will Smith desempeña un policía Del Spooner, que no le gustan los robots. Durante la escena del interrogatorio robot, guiños Spooner a otro policía salir de la sala de interrogatorio. El robot pide a Will lo que significaba el guiño, y Spooner, explica que el guiño es algo que un ser humano lo sabe. En un momento posterior en la película, el robot utiliza un guiño a enviar amessage a Spooner. Spooner es sorprendido, pero él sabe lo que significa y actúa en consecuencia. Entonces, ¿cómo se relacionan con el guiño de convención? Para alguien que sabe lo que el guiño es, es una simple pieza única de información que tiene muchas implicaciones. Para alguien que no sabe lo que el guiño es, es descartada como irrelevante. Una persona que rechaza el guiño que falta una pieza de información vital y podría ser considerado fuera del círculo de conocimiento. El guiño representa una parte complicada de la información que requiere un contexto para entender completamente. Una crítica de Ruby on Rails es que es más arte que ciencia, y por lo tanto no es lógico, ya que utiliza la convención en otras palabras, es como un abrir y cerrar, y si usted no tiene el contexto para entender, no tiene sentido. Quisiera hacer frente a esta configuración utiliza la convención, y por lo tanto es una convención. En el caso más simple, la configuración se explica por sí mismo, pero en el caso más complejo, un archivo de configuración es un convenio por su cuenta. Para entender la configuración, usted necesita entender la convención de la configuración, lo cual plantea la pregunta, ¿por qué utilizar una configuración? La respuesta es que a veces una configuración es la solución adecuada, ya que ofrece flexibilidad, Con la convención, de hacer las cosas según un plan general predeterminado. La configuración de la razón se ha convertido en una convención es que en muchos casos, los desarrolladores piensan que necesitan utilizar la configuración para obtener flexibilidad, cuando en la convención de hecho hubiera sido suficiente. Convenio de aplicación requiere la utilización de reflexión, porque para tomar una decisión basada en el Convenio, lo que necesita saber el contexto actual. La gran ventaja de utilizar la convención es que no es necesario para mantener la configuración cuando se producen cambios de una convención automáticamente recoge los últimos cambios. Los siguientes son algunos escenarios en los que se utiliza la convención sobre la configuración: • Cuando tenga que actualizar constantemente y gestionar la información de referencia (por ejemplo, columnas de base de datos que se asignan a los miembros de datos de clase). • Cuando la configuración es sólo de importancia para un desarrollador y no un administrador. Por ejemplo, se podría esperar que un administrador desea configurar la base de datos que la aplicación va a conectar. Pero usted no esperaría que su administrador para configurar qué modelo pertenece a la que ver y en qué controlador de Amodel-View-Controller (MVC) la arquitectura. • Cuando se puede utilizar métodos de reflexión y llamar de forma anónima, sin saber el tipo de información. Es posible aplicar los convenios utilizando lenguajes de programación como C # y Java, ya que apoyar la reflexión, pero la capacidad de llamar a los métodos de forma anónima es mucho más complicado. Uso de lenguajes dinámicos como Ruby y JavaScript, es muy fácil llamar a los métodos o las propiedades de los tipos. • Cuando tenga que proporcionar a los usuarios (y usted) con toques, si algo va mal. Cuando se utiliza convenciones, es muy importante para indicar claramente lo que está mal cuando algo no funciona. Ruby on Rails es un muy buen trabajo de proporcionar pistas sobre qué hacer cuando algo va mal. Esta característica es importante porque el código escrito para un sistema que utiliza la convención sólo funciona si usted sabe de la convención. Solución Para esta receta, vamos a convertir la unidad marco de las pruebas descritas anteriormente en una convención completamente basada en el sistema. Entonces, al escribir las pruebas unitarias, nuestra única tarea será la de poner en práctica una serie de pruebas en una estructura, y la unidad marco de las pruebas hará el resto. A modo de ejemplo, echemos un vistazo a la plantilla de la prueba de la unidad de nuevo e identificar las piezas que deben ser convertidos a partir de un enfoque de configuración a un enfoque de la Convención. Fuente: / Jaxson / trunk / web / root / scripts / templates / testcontract.html
Las líneas en negrita en el ejemplo anterior, representan la configuración basado en el código que se convertirá en la convención basada en el código. Al convertir de configuración basado en el código de la convención basada en el código, puede aplicar uno de los dos enfoques. El primer enfoque es volver a escribir las clases utilizadas por la unidad de pruebas de marco para que sean completamente convención basada. La ventaja de este enfoque es que las clases son delgados y resolver la tarea. El segundo enfoque es mantener la funcionalidad de configuración, y escribir una capa en la parte superior que implementa la funcionalidad de la convención. La ventaja de este enfoque es que las soluciones de convenio se pueden aplicar varias, pero la desventaja es una sobrecarga adicional. Vamos a aplicar el segundo enfoque aquí, y mantener tanto la configuración y la capa de convención tan delgado como sea posible. Idealmente, la capa de configuración debe contener sólo la funcionalidad requerida por la Convención. Funcionalidad adicional en la configuración añade equipaje innecesario. La unidad base de pruebas de archivo cuando se convierte en un archivo de convenio es similar a la siguiente. Fuente: / web / ROOT / ajaxrecipes / JavaScript / conventionconfiguration.html El código modificado incluye tres ensayos, pero el anuncio de reducción drástica en el código en este ejemplo. También observe que el código de ciertas construcciones están implícitos y no necesitan ser escritas explícitamente (por ejemplo, testManager.success). Desde una perspectiva de usuario, la reducción y la simplificación del código es una buena cosa, pero en realidad hay muchos aspectos ocultos que tendrás que ser consciente, porque cuando algo sale mal, lo que necesita saber por qué sucedió. El los detalles de cómo se aplica este código no se cubren en la receta que se analizan en este artículo, pero los conceptos generales siguientes se aplican: • El código HTML que contiene los botones se genera dinámicamente mediante un archivo de inclusión estratégicamente situados (conventiontest.js). El archivo se coloca en el que es para que las variables ya se han declarado y disponibles para la inicialización. • La variable es un testsToRun implícita a existir variable y es inspeccionado por las pruebas disponibles. Para cada método de prueba, un botón se genera, donde el nombre del botón es el nombre del método de prueba. • Cada método utiliza un proxy para encapsular y controlar automáticamente los errores o las pruebas con éxito adecuadamente. Al crear su propia convención basada en el código, tenga en cuenta los siguientes puntos: • Inicialización: En la configuración del código base, usted es responsable de la inicialización de las variables y los objetos; en la convención basada en el código, el código es la principal responsable de la inicialización de sí mismo. Es como empezar un coche: se espera que el coche a la alimentación de combustible del motor, y lo que desea es girar la llave y ser capaz de conducir. El problema con la inicialización es que no siempre conocemos el contexto. • Usted tiene dos maneras de inicializar. La primera es para inicializar y configurar cuando el código JavaScript se ha cargado, como se ilustra en la fábrica de XMLHttpRequest en la receta de 2-4. El segundo es para inicializar cuando la primera acción tiene lugar. En el segundo escenario, una bandera que indica el estado de inicialización se establece en false cuando se carga el JavaScript. Entonces, como la primera acción se lleva a cabo, la inicialización que pasa. • La comprobación de errores: Los sistemas convencionales de esperar que algunas variables o tipos declarados, y si no se declaran, surgen los problemas. Un sistema de convención debe tener rutinas de error que captura todos los errores y explicar en detalle lo que salió mal. Muchos desarrolladores se podría pensar que un sistema de convención debe ser adaptable y el trabajo no del todo alrededor de código correcto. Esta es una idea equivocada ofrecer soluciones hace que para un desarrollador descuidado. Convenio basado en el código requiere buenas prácticas de codificación, de modo que los códigos de todo el mundo a la misma convención. No tome atajos. • Nombres de la coherencia: Cada vez que los identificadores de etiqueta, tiene que ser coherente. El nombre del identificador debe ser tan obvio como sea posible. No trate de ser inteligente, astuto, o crípticas. Ruby on Rails es exitoso por muchas razones, una de ellas es que las convenciones de nomenclatura son evidentes, consistente e intuitiva. un artículo presentado por Sonja Lande Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "convenciones de codificación de usar y no Configuraciones" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
|||||||||||||||
| Online: 259 users browsing the articles directory |
|
|