Ответ 1
Ресурсы JavaScript
Шаблоны для крупномасштабной архитектуры приложений JavaScript
Основные шаблоны проектирования JavaScript для начинающих, том 1.
jQuery specific
Инструменты для архитектуры приложений jQuery
В течение последних нескольких лет я работаю почти исключительно над задачами back-end, и я только заметил, что большинство проектов 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;
})
Отказы в сторону, это в значительной степени было.
Во всяком случае, просто просматривал код других людей и заметил, что в мое отсутствие многие javascriptеры стали намного красивее. Это не сложно, но это типично для более нового/лучшего подхода к 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 современные модели и практики?
Шаблоны для крупномасштабной архитектуры приложений JavaScript
Основные шаблоны проектирования JavaScript для начинающих, том 1.
Инструменты для архитектуры приложений jQuery
Вот некоторые ссылки, которые я собрал:
Общие
http://eloquentjavascript.net/
Шаблоны
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
Затворы
Как работают блокировки 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/
Объект Literal
http://blog.rebeccamurphey.com/2009/10/15/using-objects-to-organize-your-code
Прототип
http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/
Мне нравится Coffeebook Cookbook. Это объясняет много и содержит много примеров.
Вам, вероятно, нравится 12-я глава под названием Design patterns
Вам нужна хорошая книга, например "" Шаблоны JavaScript ", сопровождаемая одинаково хорошей идеей/средой вроде Fiddle" для практики.
Я не думаю, что чтение общих шаблонов поможет вам написать действительно хороший код. Умеренно хороший код, но не очень хороший код. Я бы зашел на сайт irc.freenode.net и спросил в ## javascript и #coffeescript для получения справки - по крайней мере, в #coffeescript есть много людей, которые помогут вам улучшить код, который вы добавили в gist.
Я не вижу проблемы с вашим старым кодом. Или с новым кодом. В основном, просто следуйте тем же принципам, которым вы будете следовать с Ruby: беспощадно рефакторинг и пусть хорошая архитектура возникнет из рефакторинга.
Если вам нужно играть с полной реализацией крупномасштабной архитектуры ссылок JavaScript, посмотрите:
Это набор шаблонов и интеграция некоторых хороших библиотек с готовым образцовым приложением для начала. Я написал его, чтобы поделиться своим опытом после работы над несколькими крупными проектами JS.