Портирование jQuery на CoffeeScript? - PullRequest
7 голосов
/ 13 июня 2011

CoffeeScript выглядит как многообещающая новая технология, и я обязательно попробую ее в моем следующем проекте.

Кажется, что jQuery можно легко использовать с CoffeeScript как есть - однако это будет иметь какой-то смыслполностью перенести jQuery на CoffeeScript (таким же образом подчеркивание было портировано), или это будет просто трата времени?

  • Какими преимуществами можно было бы воспользоваться от такого порта?
  • Помимо возможных проблем совместимости - может ли это также вызвать проблемы (т. Е. Возможны хитрости в чистом js jQuery, которые невозможны в CoffeeScript?)

Ответы [ 4 ]

9 голосов
/ 13 июня 2011

Подчеркивание было портировано только как демонстрация силы и лаконичности CoffeeScript. Кроме того, аннотированный источник CoffeeScript предоставляет более ясную документацию для тех, кто знаком с CoffeeScript. Но официальная версия 1002 * все еще поддерживается в чистом JS, а не скомпилирована из CoffeeScript.

Я думаю, что аналогичным образом было бы целесообразно перенести jQuery на CoffeeScript только для того, чтобы любопытные кодировщики могли наслаждаться аннотированным исходным кодом, который сделает внутреннюю работу библиотеки более понятной. jQuery пользуется вниманием достаточно сильных программистов на JavaScript, поэтому я сомневаюсь, что от его переноса на CoffeeScript произойдут какие-либо улучшения.

Хотелось бы, чтобы кто-то сделал это, хотя бы при условии, что они создали отличный код с эквивалентным поведением. Я думаю, что адаптер должен тщательно рассмотреть вопрос о том, как переносить именованные функции (function foo()) на неназванные функции (foo = function()), поскольку CoffeeScript поддерживает только последние (из-за несовместимости между браузерами в некоторых случаях) и оба имеют различное поведение. JavaScript == не должен быть проблемой, так как я могу обнаружить, что он используется в исходном коде jQuery только в x != null, что можно сделать в CoffeeScript с помощью x?.

5 голосов
/ 13 июня 2011

Исправьте, что Coffeescript является генератором Javascript.Также исправьте, что исходный код может быть более понятным.В js нет абсолютно никаких трюков, которые нельзя сделать в Coffeescript - вы можете перейти на чистый js, если вам нужно - и я не уверен, что когда-либо слышал о том, чтобы кто-то нуждался в этом,Если вы хотите перейти в Javascript, просто заключите выражение в обратные черты:

`var foo = 42`

Я бы не согласился, что код «больше».Я бы утверждал, что большинство дополнительных байтов в коде - это те, которые вы должны были бы вставлять так или иначе, но не хотели - как добавление обертки пространства имен вокруг вашего собственного кода.В некоторых случаях у Coffeescript есть умные помощники, которые выделяют общие шаблоны использования, поэтому они не кодируются одноразово.Вы можете выяснить, что это, прочитав сгенерированный js немного.

С точки зрения преимуществ, я думаю, это во многом зависит от того, как вы думаете о коде.Я фанат инкапсуляции функциональности в классе и ненавижу определение объектов на основе прототипов Javascript.Coffeescript более Rubyish или Pythonesque с точки зрения объявления классов, а также с точки зрения наследования.

Мой совет вам: 1) Получить Coffeescript book Тревора Бернхэма и получить представление о том, как Coffeescriptработает на практике;2) Соберите несколько простых примеров, которые относятся к вашему виду использования;3) Посмотрите, как вам это понравится после того, как вы освоитесь с синтаксисом.

Примечание. Coffeescript Google Group - отличный ресурс, и люди там быстро отвечают на вопросы - скорее всего, кто-то сталкивалсячто бы ни озадачивало тебя раньше и поделится ответом.Тревор перечисляет полный набор ресурсов в своей книге.(Нет, мне не платят за то, что он дал ему реквизит в книге:)

2 голосов
/ 13 июня 2011

Примите во внимание, что coffescript - это просто еще один способ кодировать javascript, поэтому все, что вы можете сделать в javascript, можно сделать в coffescript и наоборот ...

Очевидно, что единственным преимуществом coffescript является более четкий исходный код, который облегчает чтение и кодирование. Недостатком является то, что javascript, который генерирует coffescript, будет гораздо более очевидным, чем текущий ... что за библиотека - довольно большая проблема ...

Так что было бы интересно иметь одну версию coffescript в качестве документа документации для людей, пытающихся понять, как работает jQuery, но это не изменило бы использование coffescript в основном коде

1 голос
/ 18 января 2014

Я знаю, что опоздал на два года, но портировал jQuery на CoffeeScript.Код предназначен для просмотра в целях сравнения (код jQuery .js с кодом .coffee), поскольку я не сосредоточился на добавлении комментариев

Просмотр http://github.com/sharikul/jQuery-Coffee

...