我的JavaScript模式/实践太臭了。 我应该在哪里寻求帮助?
过去几年来,我几乎一直在完成后端任务,而且我刚刚注意到,大多数JavaScript(和CoffeeScript)项目在我缺席的情况下都变得更漂亮了。
我主要在一个rails环境中工作,几乎所有的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; })
除了callback之外,就是这样。
无论如何,只是浏览其他人的代码,并注意到许多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现代模式和做法?
JavaScript资源
大规模JavaScript应用程序体系结构的模式
初学者必备的JavaScriptdevise模式,第1卷。
JavaScript模式
jQuery的具体
jQuery应用程序体系结构的工具
CoffeeScript的
以下是我收集的一些链接:
一般
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的模块图案过度使用危险和血性-annoying.html
新的关键字
JavaScript的“新”关键字被认为是有害的? http://ejohn.org/blog/simple-class-instantiation
closures
JavaScriptclosures如何工作? 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/
对象文字
http://blog.rebeccamurphey.com/2009/10/15/using-objects-to-organize-your-code
原型
http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/
我喜欢CoffeeScript食谱 。 它解释了很多,并包含很多例子。
你可能喜欢第12章所谓的devise模式
你需要一本好书,像“ JavaScript模式 ”,伴随着像“ 小提琴 ”一样的良好的IDE /环境的练习。
我不认为阅读常见的模式将帮助你写出真正好的代码。 适中的代码,但不是很好的代码。 我会login到irc.freenode.net,并在## javascript和#coffeescript中寻求帮助 – 至less在#coffeescript中,有很多人可以帮助你改进代码。
我没有看到你的旧代码的问题。 或者用较新的代码。 基本上,只要遵循与Ruby相同的原则:无情地重构,让好的架构从重构中浮现出来。
如果你需要玩一个大规模的JavaScript参考架构的完整实现,请看:
它是一个模式的集合和一些好的库与现成的示例应用程序的集成开始。 我写了几个大型JS项目后分享了我的经验。