也就是说,Web框架不会为您做很多事情.像Rails和jQuery这样的恕我直销框架已经取得了成功,因为他们试图将80%带到那里,留下接下来的20%. 80%的效果使它们足够灵活,可以广泛使用而不会变得过于紧缩或笨拙.所以问题就变成了,你如何处理剩下的20%,特别是当你的应用程序变大时?
过去1.5年,我们开发并维护了一个Rails / jQuery-UI应用程序.如上所述,这些框架的无限制功能证明了我们能够快速提高速度,保持生产力和加强优秀设计.然而,在过去的几个月里,我开始认为我们应该能够更快地开发和部署新功能,并且我已经开始觉得我们没有在Rails和jQuery给出的基础上建立足够的基础我们.新功能似乎必须从每次80%的点开发,而不是优选的90-95%.
为什么您的战略超越了Web框架?您曾经使用过哪些技术或技术将80%的起点移近90-95%?您遇到或克服了构建自己的应用程序框架或工具包的哪些具体障碍?在vanilla Rails和jQuery上开发的难点是什么促使您寻求更紧密的应用程序集成?
解决方法
就个人而言,我使用了许多PHP框架,我在其中构建自定义库和功能,帮助我将项目提升到90-95%的水平. 15%的项目差异非常重要.该代码的一些示例包括:实用程序函数,权限系统,内部api和模板管理器(它们有助于使用您的视图呈现数据).
至于客户端,Javascript,库(jQuery,Prototype,Dojo等),听起来你没有想到长期.越来越多的人意识到在考虑使用哪个库之前,他们需要从严格的Javascript应用程序结构开始.库提供了绑定事件,选择元素等的一些标准方法,但似乎没有一个内置大规模应用程序逻辑.您需要自己构建它.
松耦合(或Pub/Sub – 发布订阅)已经变得非常流行,并且有一些很棒的库可以帮助MVC和查看状态,如jQuery BBQ和Backbone.js(如@Raynos建议).此逻辑可帮助您以适合应用程序的标准方式扩展和正确管理新功能.也就是说,您应该仍然了解并开始使用您理解的纯库无应用程序结构.我在这里写了一篇很好的101帖子(http://darcyclarke.me/development/javascript-applications-101/),Addy Osmani也为此提供了很好的资源(http://addyosmani.com/blog/large-scale-jquery/).与服务器端稍有不同,我建议您在深入决定使用哪个库之前构建15-20%.毕竟,它们具有许多相同的功能,不应仅仅依赖于构建客户端应用程序.
我仍然认为你最好不要使用这些工具,而是从头开始构建自己的工具,但我认为你需要开始构建自己的工具集.