Quelqu'un at-il utilisé coffeescript pour une application de production? [fermé]

StackOverflow https://stackoverflow.com/questions/2954557

  •  23-10-2019
  •  | 
  •  

Question

coffeescript est plutôt cool. Quelqu'un at-il utilisé? Quels sont ses avantages et inconvénients?

Était-ce utile?

La solution

Nous avons commencé à utiliser CoffeeScript dans notre produit - un site de revêtement non-public, qui est essentiellement une application pour la navigation de certains types de données. Nous utilisons CoffeeScript comme compilateur de ligne de commande (pas sur le serveur, que nous finirais comme de le faire).

PROS (pour nous):

  • Il se débarrasse de beaucoup de désordre inutile en javascript (par exemple, des accolades, des points-virgules, des parenthèses) dans la mesure où le code est plus propre et plus facile à comprendre à un coup d'oeil que javascript
  • 20-30% moins de lignes de code que javascript (pour faire exactement la même chose)
  • CoffeeScript supprime non seulement le bruit, mais ajoute des mots clés, des classes et des fonctionnalités telles que heredocs pour rendre plus propre codage et un peu plus agréable
  • Compte tenu des points précédents, il est sans doute plus rapide à code CoffeeScript une fois que vous apprenez les cordes

CONS

  • Lorsque vous utilisez le compilateur de ligne de commande: pour déboguer, vous cherchez à un code différent pour résoudre le problème (javascript) que lors de l'écriture du correctif (coffeescript). Cependant, un peu incroyable, notre CoffeeScript est tellement génial que nous avons jamais eu besoin de le déboguer!

Il est important, nous pouvons revenir en arrière à tout moment. Notre compilateur coffeescript est simplement produit javascript lisible, donc si quelqu'un change leur esprit ou ne peut pas trouver quelque chose, nous pouvons alors juste retomber à utiliser le javascript qui coffeescript produit -. Et garder le codage

Autres conseils

Nous utilisons coffeescript pour tous du javascript BusyConf . Une grande partie de BusyConf est une application côté client qui fonctionne dans les navigateurs, dont l'appui pour le mode hors ligne.

Tous notre code coffeescript est testé. Les tests eux-mêmes sont écrits en coffeescript, et utiliser le cadre QUnit (qui est écrit en javascript). Nous avons écrit également une extension du cadre de QUnit qui fait la plus belle des tests. L'extension QUnit est écrit dans CoffeeScript . Notre application dispose d'une version mobile qui est écrit en CoffeeScript, et il utilise le Sencha tactile cadre de ( qui est écrit en javascript).

La prise loin de ce que vous pouvez librement Intermix dépendances javascript dans votre application, mais tout le code que vous écrivez (votre code d'application, les tests, etc.) peut (et doit!) Être coffeescript.

Près d'un an plus tard, il vaut la peine de poster des mises à jour:

  1. Ruby on Rails 3.1 intègre le soutien officiel de CoffeeScript, ce qui signifie qu'il va voir beaucoup plus l'utilisation dans le monde réel. J'ai donné une conférence à RailsConf le mois dernier, où la plupart des participants avaient pas entendu parler de CoffeeScript avant et étant donné la forte approbation-étaient de DHP désireux d'y entrer.
  2. Il y a un livre sur CoffeeScript, actuellement dans le livre numérique et bientôt en version imprimée de la Bibliothèque Pragmatique. Il est appelé CoffeeScript: JavaScript accéléré le développement, et il est vraiment par le vôtre. Il est basé sur CoffeeScript 1.1.1.
  3. La langue a très peu changé au cours des six mois entre 1,0 et 1.1.1; presque tous les changements sont des « corrections de bugs. » Je devais faire très peu de coups secs au code dans le livre pour le passage de 1.0.1 à 1.1.1. Cependant, je suis sûr que la langue verra des changements plus importants dans l'avenir.

La liste la plus définitive des projets CoffeeScript est sur le wiki de CoffeeScript Dans le sauvage page.

Je dirais que la plupart de l'utilisation de la production de CoffeeScript jusqu'à présent est en conjonction avec Appcelerator pour créer iPhone / applications Android. (Wynn Netherland de la Changelog blurbed mon livre en décrivant CoffeeScript comme « mon arme secrète pour iOS, Android et WebOS de développement mobile »), mais il va être beaucoup plus utilisé dans la production J'espère que Rails applications et,, elsewhere- dans les prochains mois.

coffeescript a été utilisé dans le lecteur Ars Technica pour iPad http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars

J'aime vraiment coffeescript ces jours-ci. Essentiellement toute HotelTonight application iPhone est écrit en (à l'aide Appcelerator Titanium, ce qui vous permet d'écrire des applications « natives » dans JavaScript - ils ne sont pas des applications web, comme disent Phonegap). J'ai choisi d'utiliser coffeescript dans ce cas, car il rend l'organisation et le maintien d'une grande quantité de JS beaucoup plus facile. Je trouve aussi tout simplement beaucoup plus agréable à écrire du code avec coffeescript (vs JavaScript). Nous utilisons également coffeescript pour la JS dans notre application Rails, mais cela est incroyablement mineur / petite quantité de code par rapport à l'ensemble de l'application de téléphone.

Les pros ont surtout à voir avec juste une syntaxe plus agréable, mais aussi qu'il normalise un mécanisme OO, et ajoute quelques ajouts BELLES (de compréhensions liste, certaines choses de la portée, etc.).

Les inconvénients sont pour moi presque nulle. La principale est que c'est une couche supplémentaire de débogage. Vous aurez besoin de regarder la JS produit (ce qui est très lisible et agréable), puis mapper à votre code coffeescript. Pour nous, cela n'a pas été un problème du tout, mais YMMV.

En fin de compte, mon sentiment est, il n'y a aucun risque en termes d'utilisation sur une application de production, donc, ne laissez pas être un bloqueur. Ensuite, allez l'essayer. Ecrire un code avec elle, les comparer à ce que vous écrivez à JS, regardez le code généré pour voir si vous êtes à l'aise d'être en mesure de lire que pour le débogage des besoins. En outre, traîner en IRC #coffeescript, les gens sont bien là. Et enfin, voir comment il intégrer à votre application, par exemple quel est votre processus "build" (par exemple pour Rails, essayez Barista, pour autonome quelque chose, il suffit d'utiliser le inclus "-w café", etc.).

coffeescript fait vraiment juste écrire JS plus facile. Vous vous retrouvez avec plus propre, un code plus efficace.

Cela étant dit, vous ne pouvez toujours faire tout ce que vous pouvez faire dans la vanille JS. Une fois que vous utilisez assez coffeescript, il ne devient beaucoup plus facile à écrire (bien) JS.

Donc, si vous ne l'avez pas utilisé JS une tonne, je vous suggère de l'apprentissage à la place coffeescript. Vous aurez mieux, plus propre, moins de code bogué. Si vous êtes déjà très couramment JS, il pourrait ne pas être une bonne idée de commencer à utiliser coffeescript sur une application « réelle ».

(Aussi, coffeescript ne me IRK un peu en ce sens qu'il semble encourager plutôt « floofy » code. Je ne sais pas si c'est une bonne chose ou une mauvaise chose, mais il semble un cas extrême de TMTOWTDI)

Notez que bien qu'il y ait un compilateur, vous ne recevez pas le contrôle statique en raison de la nature dynamique de JavaScript. Comme il est écrit dans la FAQ:

Analyse statique

CoffeeScript utilise un compilateur source-source droite. Aucun type la vérification est effectuée, et nous ne pouvons pas travailler si une variable existe même ou pas. Cela signifie que nous ne pouvons pas mettre en œuvre des fonctionnalités que d'autres langues peuvent construire en mode natif, sans contrôles d'exécution coûteuses. Comme un Par conséquent, toute caractéristique qui repose sur ce type d'analyse ne sera pas considéré.

Prise en charge IDE est moins mature que celle de JavaScript (Cloud9 a la syntaxe support en surbrillance, mais Eclipse JSDT a refactoring et plus): https://stackoverflow.com/questions/4084167/ide-or-its-add-in-for-coffescript-programming

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top