2012-04-24 20 views
18

Así que, básicamente, tengo una serie de problemas que me retenía desde CoffeeScript:el momento adecuado para usar CoffeeScript

  1. No estoy realmente un experto en js embargo, a pesar de que lo estoy usando para todo Hace 3 años todavía siento que me estoy perdiendo algo importante al respecto. Dado que es sobre todo una tecnología de apoyo para mí, nunca encuentro tiempo para profundizar en js (que, lo admito, podría ser una actitud equivocada).

  2. conocimiento Mi JS será aún peor si voy a empezar a utilizar CoffeeScript

  3. No estoy seguro de si realmente puedo confiar coffeescript, es decir, el código JS que se compila a

  4. A veces No entiendo el código de js coffeescript compila y, lo que es peor, por qué se compila así.

Me gustaría saber su opinión sobre los puntos anteriores. El más importante es: ¿Cómo afecta el coffeescript su conocimiento de js? ¿Y qué tan importante crees que es comprender por completo js antes de cambiar a coffeescript?

+4

La mejor pregunta debería ser _ "5. ¿Qué script de café nos da excepto el código ilegible" _! – gdoron

+0

Si su trabajo/trabajo potencial exige que use coffeescript, entonces supongo que debe hacerlo. De lo contrario, simplemente vaya con js normal. –

+4

* "No soy realmente un experto en js todavía" * - luego aprende JS. ve a buscar un libro y lee. prueba [VaporJS] (http://vaporjs.com/) mientras estás en ello. ¿Por qué pasar por todos los problemas usando coffeescript? – Joseph

Respuesta

11

Debería entender qué problemas debe resolver Coffeescript. Y para eso, debes tener un conocimiento básico de las "partes malas" de JavaScripts. Sugiero leer a Douglas Crawford sobre eso (hay un libro, pero también muchos recursos en internet. Solo google "partes malas de JavaScript"). Básicamente, la idea es que "Debajo de todos esos refuerzos y puntos y comas, JavaScript siempre ha tenido un magnífico modelo de objetos en su corazón. CoffeeScript es un intento de exponer las partes buenas de JavaScript de una manera sencilla". (tomado del sitio de coffeescript).

Hay una herramienta para ayudar a los programadores a evitar las trampas de javascript llamadas jslint. Esta herramienta analiza su código y da advertencias sobre errores comunes, como variables globales, inserciones de punto y coma, contaminación del espacio de nombres, etc. ...

Coffeescript se traduce a javascript. Pero el javascript que genera es un subconjunto cannocical, altamente compatible con jslint. Además, genera código JavaScript válido en todos los navegadores. Así que no es solo una agradable capa de azúcar sintáctica, realmente ayuda a generar código sólido.

1

Creo que lo más importante que hay que recordar aquí es que Coffeescript es javascript. Cada declaración de Coffeescript u operador de magia tiene una representación concreta distinta en Javascript. Por ejemplo, (x) -> x * x en Coffeescript se traducirá directamente al function (x) { return x * x; }.

No se puede escribir Coffeescript sin tener en cuenta el Javascript que generará. Por un lado, el Javascript generado es lo que tendrá que depurar. En todo caso, creo que escribir Coffeescript podría mejorar tu comprensión de Javascript, porque te obliga a tomar decisiones que son exclusivas de Javascript. Por ejemplo, cuando en Coffeescript, decide utilizar => en lugar de ->, en realidad está tomando una decisión sobre si desea o no vincular this, un problema muy real de Javascript.

¿Cuándo (o si) comienza a usar Coffeescript? Creo que la respuesta a esto depende más o menos de ti. Pruébelo, y si siente que es más fácil realizar sus tareas con Coffeescript, entonces cúmplalo. Si le resulta difícil escribir el código en un idioma diferente del que se ejecuta (y, por lo tanto, el que debe depurar), vuelva a Javascript.

6

Me gustaría dirigir sus preocupaciones.

1) Si ha estado usando JS durante tres años, probablemente tenga una comprensión bastante sólida de JS. Si aún no ha adquirido una sólida comprensión, puede ser hora de complementar su conocimiento con uno de los buenos libros de JS.

2) Coffee-script probablemente no empeore su conocimiento de JS. La forma en que diseñe las aplicaciones Coffee-script es de la misma manera que diseñaría una aplicación JS (en su mayor parte), por lo que las habilidades de diseño que gane se transferirán. El diseño del programa, en mi opinión, es el aspecto más importante de la programación.

3) ¿Por qué no confías en el JS? ¿Por qué confías en alguno de los otros compiladores/intérpretes/otras herramientas que usas? Dudo que Coffee-script esté libre de errores, pero muchas personas lo usan para muchos propósitos. Esto significa que se ha probado un gran conjunto de comportamientos, a menudo en producción, por lo que su caso de uso probablemente ya haya sido probado.

4) Por supuesto, el JS generado por Coffee-script parecerá extraño para usted, ya que las reglas para generarlo no tienen legibilidad humana como prioridad. Sin embargo, leerlo aumentará tu conocimiento de JS cuando veas cómo se ejecutan curiosamente los programas. Esto nos lleva de nuevo al punto 1.

+0

He votado su respuesta, pero en general creo que la legibilidad humana es en realidad una prioridad (quizás no la más alta) del diseño del compilador CoffeeScript. No creo que necesite ver el código JavaScript compilado muy a menudo, pero cuando lo hago, no tengo problemas para conectarlo a la intención de mi CoffeeScript. Dicho eso, tu idea de leerla aumenta el conocimiento de JavaScript está bien hecho ... como el resto de tu respuesta. –

+0

+1 también aquí, pero no estoy de acuerdo con el aspecto extranjero/no legible tampoco. Coffeescript tiene reglas muy claras sobre cómo se traduce a Javascript, y es bastante fácil reconocer el código compilado. Las reglas están ahí, en la página principal de http://coffeescript.org/ – AHM

1

Así que aquí es lo que pienso sobre el tema:

  1. JS no es una tecnología de apoyo (soporte para qué?). Es un lenguaje que se usa principalmente en el front-end y hay una nueva tendencia de usarlo en back-end. Dado que el navegador no es compatible con CoffeeScript de forma nativa, a menos que lo utilice como servidor, entonces no creo que exista un punto en el uso de CoffeeScript. Aunque aprender un nuevo idioma siempre es una buena idea.

  2. No, en absoluto. En realidad, usar CoffeeScript es como usar un lenguaje diferente. Aprender uno no puede hacerte más tonto en el otro. A menos que dejes de aprender el otro.

  3. No hay evidencia de que CoffeeScript se compile con errores o código lento. En realidad estoy usando CoffeeScript por un tiempo y no he observado ningún golpe de rendimiento.

  4. En realidad no es necesario que comprenda por qué se compila de esta manera. Si está utilizando CoffeeScript en el back-end, entonces ni siquiera tiene que mirar el código en el que compila (solo necesita el código fuente). En cuanto a usarlo para hacer scripts del navegador, entonces sí, puede ser un poco difícil trabajar con él (depuración). Es por eso que siempre recomiendo escribir normal JavaScript para navegadores y usar CoffeeScript en back-end.

Ahora en cuanto a la última pregunta: No creo que CoffeeScript afectó mi conocimiento JS en absoluto. Los trato como idiomas separados. Además, no necesita conocer JS para cambiar a CoffeeScript (aunque debería hacerlo) a menos que desee utilizar CoffeeScript en el front-end.

También dominar JavaScript es siempre una buena idea, no importa qué. :)

Cuestiones relacionadas