2011-06-13 25 views
7

CoffeeScript parece una nueva tecnología prometedora, y definitivamente la probaré en mi próximo proyecto.¿Cómo transferir jQuery a CoffeeScript?

Parece que jQuery se puede usar fácilmente con CoffeeScript como está, sin embargo, ¿tiene sentido portar jQuery completamente a CoffeeScript (de la misma manera en que se portó underscore), o será solo una pérdida de tiempo?

  • ¿Qué ventajas disfrutaría de tal puerto?
  • Aparte de los posibles problemas de compatibilidad - ¿podría también causar problemas (? Es decir, posibles trucos utilizados en js puros de jQuery que no son posibles en CoffeeScript)

Respuesta

2

Tener en cuenta que coffeescript es sólo otra forma de código JavaScript, entonces todo lo que puede hacer en javascript se puede hacer en coffescript y viceversa ...

Dijo que es obvio que la única ventaja de coffescript es un código fuente más claro, lo que hace que sea más fácil de leer y codificar. La desventaja es que el javascript que genera coffescript será mucho más grande que el actual ... lo que para una biblioteca es un gran problema ...

Sería interesante tener una versión de coffescript como documento de documentación para las personas que intentan entender cómo funciona jQuery, pero no sería diferente usar coffescript en el código principal

9

El subrayado solo se portó como una demostración de la potencia y concisión de CoffeeScript. Además, la fuente anotada de CoffeeScript proporciona una documentación más clara para los que están familiarizados con CoffeeScript. Pero el official version todavía se mantiene en JS puro, no compilado de CoffeeScript.

Creo que, de forma similar, tendría sentido portar jQuery a CoffeeScript solo para que codificadores curiosos pudieran disfrutar de un código fuente anotado que aclararía el funcionamiento interno de la biblioteca. jQuery se beneficia de la atención de suficientes programadores de JavaScript que dudo que se produzcan mejoras al trasladarlo a CoffeeScript.

Me encantaría ver a alguien hacerlo, suponiendo que tuvieran un código atractivo con un comportamiento equivalente. Lo único que creo que el adaptador debería considerar es cómo portar las funciones con nombre (function foo()) a las funciones sin nombre (foo = function()), ya que CoffeeScript solo es compatible con este último (debido a inconsistencias entre navegadores en algunos casos) y las dos tienen diferentes comportamientos de alcance. El == de JavaScript no debería ser un problema, ya que los únicos casos en los que puedo encontrarlo en jQuery son x != null, que se puede hacer en CoffeeScript con x?.

5

Corregir que Coffeescript es un generador de Javascript. También corrija que el código fuente puede ser más claro. No hay absolutamente ningún truco que se pueda hacer en js que no se pueda hacer en Coffeescript, puede ingresar en js puros si es necesario y no estoy seguro de haber escuchado que alguien necesite hacer esto. . Si quiere caer en Javascript, sólo tiene que encerrar la expresión entre comillas sencillas:

`var foo = 42` 

estoy de acuerdo que el código es "más grande". Yo afirmaría que la mayoría de los bytes adicionales en el código son los que debería haber estado insertando de todos modos, pero no lo hizo, como agregar un contenedor de espacio de nombres alrededor de su propio código. En algunos casos, Coffeescript tiene ayudantes inteligentes que tienen en cuenta los patrones de uso comunes, por lo que no se codifican de manera puntual. Puedes averiguar cuáles son leyendo un poco las js generadas.

En términos de ventajas, supongo que depende mucho de cómo piense el código. Soy un fan de encapsular una losa de funcionalidad en una clase y odio la definición de objeto basada en el prototipo Javascript. Coffeescript es más Rubyish o Pythonesque en términos de clases que declaran y también en términos de herencia.

Mi consejo es: 1) Obtener Trevor Burnham's Coffeescript book y obtener una idea de cómo funciona Coffeescript en la práctica; 2) Adopte juntos algunos ejemplos simples que abordan su tipo de caso de uso; 3) Vea cómo le gusta después de que se sienta cómodo con la sintaxis.

Nota: El Coffeescript Google Group es un gran recurso y las personas responden preguntas rápidamente allí - es probable que alguien haya encontrado lo que le desconcierta antes y que comparta una respuesta. Trevor enumera un conjunto completo de recursos en su libro. (No, no me pagan para darle accesorios en el libro :)

1

Sé que tengo más de dos años de retraso pero porté jQuery a CoffeeScript. El código está destinado a ser visto con fines comparativos (el código .js de jQuery contra el código .coffee) ya que no me centré en agregar comentarios.

Ver http://github.com/sharikul/jQuery-Coffee

Cuestiones relacionadas