Мои шаблоны / практики JavaScript воняют.Куда мне обратиться за помощью? - PullRequest
47 голосов
/ 17 ноября 2011

Последние несколько лет я почти исключительно работал над серверными задачами, и я только что заметил, что большинство проектов JavaScript (и CoffeeScript) стали чертовски красивее в мое отсутствие.

Я работаю в основном в рельсовой среде, и почти все мои JavaScript / jQuery выглядели так:

$(an_element).an_event(function() {
  stuff_i_want_to_do;
})

$(another_element).some_other_event(function() {
  some_other_stuff_i_want_to_do;
})

За исключением обратных вызовов, это почти так.* Во всяком случае, просто просматривал код некоторых других людей и заметил, что многие javascripters стали намного красивее в мое отсутствие.Это не сложно, но это типично для более нового / лучшего подхода к JavaScript, который я видел:

jQuery -> 
  if $('#products').length
    new ProductsPager()

class ProductsPager
  constructor: (@page = 1) ->
    $(window).scroll(@check)

  check: =>
    if @nearBottom()
      @page++
      $(window).unbind('scroll', @check)
      $.getJSON($('#products').data('json-url'), page: @page, @render)
#

  nearBottom: =>
    $(window).scrollTop() > $(document).height() - $(window).height() - 50

  render: (products) =>
    for product in products
      $('#products').append Mustache.to_html($('#product_template').html(), product)
    $(window).scroll(@check) if products.length > 0

Я искал ресурсы по современным лучшим практикам / шаблонам для JavaScript (и /или CoffeeScript), но мне не очень повезло.Итак, вкратце, где я должен искать, чтобы быть в курсе всех современных моделей и практик javascript / coffeescript?

Ответы [ 7 ]

5 голосов
/ 30 ноября 2011

Вот несколько ссылок, которые я собрал:

Общее

http://eloquentjavascript.net/

http://jqfundamentals.com/

Шаблоны

http://addyosmani.com/resources/essentialjsdesignpatterns/book/

Наследование

http://blog.vjeux.com/2011/javascript/how-prototypal-inheritance-really-works.html

Шаблон модуля

http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth http://ajaxian.com/archives/a-javascript-module-pattern http://edspencer.net/2009/10/javascript-module-pattern-overused-dangerous-and-bloody-annoying.html

Новое ключевое слово

Является ли JavaScript "новым"Ключевое слово считается вредоносным? http://ejohn.org/blog/simple-class-instantiation

Закрытия

http://www.bennadel.com/blog/1482-A-Graphical-Explanation-Of-Javascript-Closures-In-A-jQuery-Context.htm

Как работают закрытия JavaScript? http://skilldrick.co.uk/2011/04/closures-explained-with-javascript/

Передача по ссылке / значению

http://snook.ca/archives/javascript/javascript_pass

Обучение JavaScript

http://concisionandconcinnity.blogspot.com/2010/03/notes-on-teaching-javascript.html

Это ключевое слово

http://alebelcor.blogspot.com/2011/07/this-keyword-in-javascript.html http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/

Object Literal

http://blog.rebeccamurphey.com/2009/10/15/using-objects-to-organize-your-code

Прототип

http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/

4 голосов
/ 17 ноября 2011

Мне нравится CoffeeScript Cookbook .Это объясняет много и содержит много примеров.

Вам, вероятно, нравится 12-я глава под названием Шаблоны проектирования

2 голосов
/ 17 ноября 2011

Вам нужна хорошая книга типа " Шаблоны JavaScript ", сопровождаемая такой же хорошей идеей / средой, как " Fiddle " для практики.

0 голосов
/ 20 августа 2012

Если вам нужно поиграть с полной реализацией крупномасштабной эталонной архитектуры javascript, взгляните на:

http://boilerplatejs.org

Это коллекция шаблонов и интеграция некоторых хороших библиотек с готовым примером приложения для начала. Я написал его, чтобы поделиться своим опытом после работы над несколькими крупными проектами JS.

0 голосов
/ 17 ноября 2011

Я не вижу проблемы с вашим старым кодом. Или с более новым кодом. По сути, просто следуйте тем же принципам, которые вы применяете в Ruby: беспощадно рефакторинг, и пусть из рефакторинга выйдет хорошая архитектура.

0 голосов
/ 17 ноября 2011

Не думаю, что чтение по общим шаблонам поможет вам написать действительно хороший код. Умеренно хороший код, но не очень хороший код. Я бы зашел на irc.freenode.net и попросил помощи в ## javascript и #coffeescript - по крайней мере, в #coffeescript, есть много людей, которые помогут вам улучшить код, который вы вводите в gist .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...