【问题标题】:What is the best way to learn backbone.js? Any other alternatives? [closed]学习backbone.js的最佳方法是什么?还有其他选择吗? [关闭]
【发布时间】:2011-08-26 20:37:00
【问题描述】:

我刚刚开始接触backbone.js。它看起来很复杂,不会是你可以只看一个例子然后说,“嗯,这很容易!”并开始使用它。不过看起来确实不错。

文档还可以,但我发现自己不太了解“大局”,以及所有这些组件如何协同工作。事件在各种视图中的绑定和渲染方式实际上看起来像很多纠缠不清。我理解关注点分离的必要性,但我实际上想知道它是否只是有点过度设计。

基本上...我无法立即使用backbone.js 提高工作效率。我认为会有一两天的学习曲线。

进入backbone.js 的最佳方式是什么?继续努力,还是有一些更大的示例应用程序可以下载到某个地方查看?

是否有更好的替代品可能更容易学习并提供相同的好处?对我来说,生产力和直观性非常重要。我觉得backbone.js 的工作方式有点陌生。那可能就是我。

换一种说法,在没有像主干这样的库的情况下开发我的应用程序并在某种程度上有机地创建像主干.js 这样的框架可能会更好,但更像是对我来说更直观的东西,并且与生成的代码库更内联?

我一直在尝试获取简单的示例来使用我自己的代码,并且我没有收到任何 Javascript 错误...但它不起作用。 “一件小事”很有可能是错误的......但我开始觉得调试我的主干应用程序可能是一个问题......所以也许有机地发展我自己的可能实际上是我自己理智的更好选择.在黑暗中调试是真正的生产力杀手……老实说,如果这样可以节省我数小时无休止的调试,我宁愿自己构建框架并编写自己的代码。

我不知道该怎么做 - 因此我问这个问题。

【问题讨论】:

  • 我写了一个完整的帖子,然后在意识到它对于你所要达到的地方来说太基础后删除了它......本质上,如果你不认为每个组件都需要,那么不要使用它。我什至没有开始使用Controllers,直到我离构建 Web 应用程序的道路还很远。仅使用您了解需要的组件来开发您的应用程序,而忽略其余部分。
  • 继续使用骨干网并一次只使用一个部件对我来说安全吗?我让模型和集合开始工作......所以也许我可以从那里开始,这样我就不必再编写低级 ajax 调用了。我刚刚了解了其他几种选择。我也需要一些时间来了解它们(sproutcore、javascriptmvc 等)。选项很棒,但也可能是压倒性的。选项也会降低你的工作效率,因为你必须决定更多的事情:)
  • Hrm,我还读到 Backbone 不支持嵌套集合,或者说做得不好。这是一个交易破坏者。我还没有到这一点,但我将拥有需要处理这个问题的功能。
  • 是的,只使用 Backbone 的某些部分而不使用其他部分绝对没问题。主干的想法不会在您的代码上强加一些过度的结构。至于嵌套集合,文档给出了一个例子:documentcloud.github.com/backbone/#FAQ-nested
  • 我实际上自己做了一个框架,它的出现真的很棒。我希望有一个地方可以显示代码。它类似于 Backbone,但它的工作方式更简单,我认为它更直观。实际上并没有花我那么长时间。我从视图中分离出“控制器事件” - 人,这在概念上创造了一个不同的世界。我还简化了对象监听其他对象的方式。这是一个简单的发布/消费界面。视图可以简单地监听集合或模型并使用它想要的任何/所有事件。我实际上更喜欢我这样做的方式。

标签: javascript ajax backbone.js


【解决方案1】:

与学习大量与编程相关的东西一样,我的建议是:

  • 选择您认为适合您所从事的工作的任务
  • 尝试执行该任务
  • 如果您发现卡住了,请展示您拥有的代码并解释您认为应该发生的情况。请务必检查文档以验证您的功能是否按预期工作。
  • 随着你的进步,人们也会向你展示更标准、更有效的做事方式
  • 继续这样做,直到您更加熟悉事情的运作方式
  • 现在,深入查看文档以帮助全面掌握其工作原理,并继续提出问题
  • 很快你就会回答问题而不是提问

【讨论】:

  • 是的,我对大多数事情都这样做。我认为让backbone.js 更令人困惑的是,它更像是一个白盒而不是黑盒框架......所以所有这些魔法都在幕后发生,这使得甚至很难知道发生了什么。该文档没有解释魔术 - 只是小部分。我认为文档应该在它们如何协同工作上花费相同的时间 :( 我也在最后一个小时内发现了所有这些其他框架:Sammy、SproutCore、JavaScriptMVC 等 - 我完全感到惊讶和不知所措。
  • 我不想在使用一个框架时陷入困境,而另一个框架实际上对我来说可能是一个更好的解决方案。我只是没有很多 ajax 编码经验来了解这一点并做出良好的判断 - 我主要是服务器端程序员,或者我从事过其他类型的项目,如游戏或其他复杂的库和框架事物。 Javascript 本质上不是我经常玩的世界,尽管我知道很多基本的 javascript 和 jquery - 只是不知道这些框架。
  • 希望我能多次支持这个答案。它不仅与 Backbone.js 有关,而且与几乎所有事物有关。这似乎是一个简单的概念,但实际上我认为并非如此。 @onteria_ 你认为这就是有多少专业和受人尊敬的用户(在各种主题,如编程)成为他们的方式?有时我会问自己这个问题。我很高兴听到意见。
【解决方案2】:

我看到了 Addy Osmani 的《Developing Backbone.js Applications》这本很棒的书。 Addy 已经清楚地解释了 MVC、编写模块化代码、使用 jasmine 测试 JS 代码等等。

编辑:

same book 也有一个开源版本。

【讨论】:

  • 那本书还没发行?
  • 我已经读过那本书,至少两次,在我看来,Addy 的解释相当混乱,根本不清楚。如果您没有使用该框架的经验,我不会推荐这本书。我认为这本书适合当你已经了解很多 Backbone 的时候,然后在他的非工作的简单事物的巨大示例中,你会抓住这个想法。他向你解释了一头牛是如何向你展示三小时前一头狮子吃了一头牛的照片的。
【解决方案3】:

部分回答您的问题。我也有同样的问题,也打算放弃。这些示例都不起作用,后来我认为您应该将所有主干 javascript 放在文档的末尾,以便您的页面已加载并且主干可以使用它。

下划线,然后是骨干
我认为最好的方法是,首先浏览一次 underscore.js 文档。你会感觉到它是关于什么的,backbone.js 文档没有解释下划线的东西。所以,你一定会对它是什么感到困惑。但是一旦你知道下划线是什么,backbone.js 就会变得更有意义。

在向我的几个同事教授​​骨干课程后,我也意识到了这一点。
学习 Backbone.js 有 3 个部分——这是我的主观意见:


1) 你应该知道 JavaScript(不仅仅是 jquery 的使用,而是诸如什么是对象、函数如何工作、什么是上下文、它在 javascript 中是如何工作的——如果您不太了解 javascript,您会有些迷茫。

2) 有些事情您必须假设并记住 - 这就是结构的工作原理,这就是基本应用程序的设置方式。刚开始的一些事情没有意义,只是背诵它们。

3)其他你必须了解的事情,实际发生的事情。

这需要时间来确定哪个是 2 哪个是 3,这是在框架上工作过的人教你的时候,你会很容易上手。再次是我的主观意见。

如果您希望在很短的时间内完成并开始工作学习曲线较短,请尝试使用 Knockout JS,您很快就会掌握它。

【讨论】:

    【解决方案4】:

    我总是发现自己通过截屏视频更容易学习新事物。可能是视觉识别,不确定。无论如何,我发现relevant Peepcode screencasts 对理解 Backbone.js 的基础知识和意识形态非常有帮助。希望他们也能帮助你。

    【讨论】:

    • 看来 peepcode 链接正在重定向到 Pluralsight 课程,需要订阅。
    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 2013-06-25
    • 2015-01-13
    • 2013-04-13
    • 2019-06-07
    • 2010-11-04
    • 2011-10-18
    • 1970-01-01
    相关资源
    最近更新 更多