tutorial react que objects javascript coffeescript

javascript - react - ¿Alguien ha usado Coffeescript para una aplicación de producción?



coffeescript vs typescript (7)

Coffeescript ve muy bien. ¿Alguien lo ha usado? ¿Cuáles son sus ventajas y desventajas?


Casi un año después, vale la pena publicar algunas actualizaciones:

  1. Ruby on Rails 3.1 incorpora la compatibilidad oficial de CoffeeScript, lo que significa que verá un uso mucho más real. Pronuncié una conferencia en RailsConf el mes pasado, donde la mayoría de los asistentes no habían oído hablar antes de CoffeeScript y, dado el sólido respaldo de dhh, estaban ansiosos por participar.
  2. Hay un libro sobre CoffeeScript, actualmente en eBook y próximamente impreso de The Pragmatic Bookshelf. Se llama CoffeeScript: Desarrollo de JavaScript acelerado , y es verdaderamente tuyo. Está basado en CoffeeScript 1.1.1.
  3. El lenguaje ha cambiado muy poco en los seis meses entre 1.0 y 1.1.1; casi todos los cambios califican como "correcciones de errores". Tuve que hacer muy pocos ajustes al código en el libro para la transición de 1.0.1 a 1.1.1. Sin embargo, estoy seguro de que el lenguaje verá cambios más significativos en el futuro.

La lista más definitiva de proyectos de CoffeeScript está en la página In the Wild de la página CoffeeScript.

Diría que la mayor parte del uso de producción de CoffeeScript hasta ahora está en conjunto con Appcelerator para crear aplicaciones de iPhone / Android. (Wynn Netherland de The Changelog desdibujó mi libro al describir CoffeeScript como "mi arma secreta para iOS, Android y el desarrollo móvil de WebOS"), pero va a haber mucho más uso en las aplicaciones de producción de Rails -y, espero, en otro lado- en los próximos meses.


Coffeescript realmente solo hace que escribir JS sea más fácil. Terminas con un código más limpio y eficiente.

Dicho esto, todavía puedes hacer lo que sea que puedas hacer en JS vainilla. Una vez que utiliza coffeescript lo suficiente, se vuelve mucho más fácil escribir JS (bueno).

Entonces, si no has usado mucho JS, te sugiero que aprendas coffescript. Obtendrás un código mejor, más limpio y menos problemático. Si ya dominas JS, no sería una buena idea empezar a utilizar coffeescript en una aplicación "real".

(Además, coffeescript me molesta un poco porque parece alentar un código bastante "flojo". No sé si es algo bueno o algo malo, pero parece un caso extremo de TMTOWTDI)



Hemos comenzado a utilizar CoffeeScript en nuestro producto, un sitio web que no es público, que básicamente es una aplicación para navegar por ciertos tipos de datos. Usamos CoffeeScript como un compilador de línea de comandos (no en el servidor, que finalmente nos gustaría hacer).

PROS (para nosotros):

  • Se deshace de un montón de desorden innecesario en javascript (por ejemplo, llaves, punto y coma, algunos corchetes) en la medida en que el código es más limpio y más fácil de comprender de un vistazo que javascript
  • 20-30% menos líneas de código que javascript (para hacer exactamente lo mismo)
  • CoffeeScript no solo elimina el ruido sino que agrega palabras clave, clases y funciones como heredocs para hacer que la codificación sea más limpia y algo más agradable.
  • Teniendo en cuenta los puntos anteriores, es indudablemente más rápido codificar en CoffeeScript una vez que aprende las cuerdas

CONTRAS

  • Al utilizar el compilador de línea de comandos: para depurar, está buscando un código diferente al resolver el problema (javascript) como cuando escribe el arreglo (coffeescript). Sin embargo, algo increíble, nuestro CoffeeScript es tan increíble que nunca hemos necesitado depurarlo.

Es importante destacar que podemos regresar en cualquier momento. Nuestro compilador de coffeescript solo está produciendo javascript legible, por lo que si alguien cambia de idea o no puede resolver algo, entonces podemos volver a utilizar el javascript que produjo coffeescript y seguir codificando.


Realmente amo Coffeescript estos días. Básicamente, toda la aplicación HotelTonight iPhone está escrita en ella (utilizando Appcelerator Titanium, que le permite escribir aplicaciones "nativas" en JavaScript; no son aplicaciones web, como Phonegap). Elegí usar Coffeescript en este caso porque hace que organizar y mantener una gran cantidad de JS sea mucho más fácil. También me parece mucho más placentero escribir código con Coffeescript (frente a JavaScript). También usamos Coffeescript para JS en nuestra aplicación Rails, pero esta es una cantidad increíblemente pequeña / pequeña de código en relación con la aplicación telefónica completa.

Los profesionales principalmente tienen que ver con ser una sintaxis más agradable, pero también que estandariza un mecanismo de OO, y luego agrega algunas adiciones agradables (listas de comprensión, algunas cosas de alcance, etc.).

Las desventajas son casi cero para mí. El principal es que es una capa adicional para depurar. Tendrá que mirar el JS generado (que es MUY legible y agradable) y luego asignarlo a su código de Coffeescript. Para nosotros, esto no ha sido un problema en absoluto, pero YMMV.

Al final, mi opinión es que no hay ningún riesgo en términos de usarlo en una aplicación de producción, así que no dejes que sea un bloqueador. Entonces, ve a probarlo. Escriba un código con él, compare eso con lo que escribiría en JS, mire el código generado para ver si está cómodo con poder leerlo para las necesidades de depuración. Además, pasar el rato en el IRC #coffeescript, las personas son buenas allí. Y finalmente, vea cómo se integraría con su aplicación, por ejemplo, cuál es su proceso de "compilación" (por ejemplo, para Rails, pruebe Barista, para algo independiente, simplemente use el "coffee -w" incluido, etc.).


Tenga en cuenta que aunque hay un compilador, no obtiene una comprobación estática debido a la naturaleza dinámica de JavaScript. Como está escrito en las preguntas frecuentes:

Análisis estático

CoffeeScript usa un compilador directo de fuente a fuente. No se realiza ninguna verificación de tipo, y no podemos determinar si una variable existe o no. Esto significa que no podemos implementar características que otros lenguajes pueden construir de forma nativa sin costosas comprobaciones en tiempo de ejecución. Como resultado, no se tendrá en cuenta ninguna característica que dependa de este tipo de análisis.

El soporte de IDE es menos maduro que el de JavaScript (Cloud9 tiene soporte de resaltado de sintaxis, pero Eclipse JSDT tiene refactorizaciones y más): https://.com/questions/4084167/ide-or-its-add-in-for-coffescript-programming


Usamos coffeescript para todos los javascript en BusyConf . Una gran parte de BusyConf es una aplicación del lado del cliente que se ejecuta en los navegadores, incluida la compatibilidad con el modo fuera de línea.

Todo nuestro código coffeescript está completamente probado. Las pruebas en sí están escritas en coffeescript, y usan el marco Qunit (que está escrito en javascript). También escribimos una extensión del marco Qunit que hace que las pruebas sean más agradables. La extensión de Qunit está escrita en Coffeescript . Nuestra aplicación tiene una versión móvil que está escrita en CoffeeScript y utiliza el marco Sencha Touch (que está escrito en javascript).

Lo más importante es que puede entremezclar libremente las dependencias de javascript en su aplicación, pero todo el código que escribe (código de su aplicación, pruebas, etc.) puede ser (y debería ser) coffeescript.