我有几年的背景,使用CakePHP进行服务器端MVC应用程序开发,还有一些使用vanilla PHP。遗憾的是,我不能对JS应用程序说同样的话,尽管我确实有使用Mootools调整静态页面的经验。
所以现在我正在尝试研究客户端应用程序构建,到目前为止我的成功并不是那么好。由于我所触及的唯一MVC是CakePHP,因此每个JS MV *框架充其量都是不可理解的。它完全没有帮助,我已经习惯于编写整齐的CakePHP和Mootools类代码,大块JS代码感觉无序。
我甚至试图通过模仿CakePHP来编写我自己的简单的类似MVC的lib,主要用于学术用途。我想不用说我没有真正得到它。
我在学习和编写自己的MVC时意识到的一些事情:
我还下载了TodoMVC,并尝试检查不同的框架,但收效甚微。它的主要问题是它只是单页(动作发生在不同的URL但布局保持不变),实现是如此不同,以至于我很难理解基础知识,更不用说找到最合适的框架了为了我。此外,它不以任何方式与服务器通信,这是一个巨大的失望,因为我想看看不同的框架是如何做到的。
因此,这个问题的最佳答案是链接到一本名为客户端JavaScript MV * For Dummies(谁只有服务器端MVC经验)的书,这将为您赢得除了常规的StackOverflow奖励之外,还有大约500个互联网。
我非常感谢任何关于我任何漫无边际写的问题主题的见解(全部链接)。您将获得标准+ 1s奖励,作为进一步奖励,我保证会在便利贴上写下您的昵称,并将其保存在我的显示器上,以备下个月使用。有帮助的人当然得到一个接受,另外还可以提供一张沿着他们的昵称打印的图片,以便附在我的显示器上。
答案 0 :(得分:0)
我很想知道你最终在哪一方面。 PHP是我的初恋,虽然我仍然喜欢这种语言的简易性,但是当它被明确地逐步淘汰以获得更快,更具可扩展性的技术时,很难真正认真对待它。
你认为javascript的异步使事情变得复杂,但它确实为性能提升打开了大门。有很多库(更多用于node.js而不是客户端工作)旨在使javascript写成同步 - 再次我不认为它有助于你当前的问题,但是知道其他人分享你的痛苦是很好的。
我认为javascript中的MVC可以这样想:
M:模型只是对数据的解释。所以如果你有一个人,你可以说每个人都有一个字符串的名字,一个int的年龄等等。现在,无论何时创建新人,都可以进行验证。模型,客户端,往往非常简单,我发现。
V:观点是另一件有趣的事情。有些人喜欢拥有一大堆包含HTML(ew)字符串的渲染函数。其他人喜欢让视图成为像handlebars.js这样的模板引擎的包装器(可能是更好的解决方案)。
C:与PHP中的控制器几乎完全相同。
我对你的建议是不要自己写,而是采用Backbone.js(快速成为行业标准),内外学习,也许建立在它之上。
祝你好运!