虽然您的问题非常明确,但网站优化是一个非常广泛的主题。
大多数流行的Web开发框架由于某种原因,非常低效。
传统的n层Web应用程序开发方式仍然非常重要,并且根据W3C的最佳实践仍然被认为是最佳实践。如果您花一点时间阅读最受欢迎的Web开发框架的源代码结构,您会发现它们在服务器上运行比必要的代码更多。
这可能看起来有点简单,但是您在服务器上运行的代码越少,客户端上运行的代码越多,您的服务器就会工作得越快。有时将框架代码与传统方式进行对比是了解此问题的最佳方法。这里是一个完全工作的迷你Web应用程序链接,代表W3C最佳实践,并在服务器上运行最少量的代码和客户端上运行最多量的代码:http://developersfound.com/W3C_MVC_EX.zip,此代码库也符合MVC标准。
这个代码库附带有一个MySQL数据库转储文件、php和客户端代码。要查看此代码运行情况,您需要将SQL dump恢复到MySQL实例(sql dump来自MySQL 8 Community)并添加在php文件(conn_include.php)中找到的用户和模式权限;设置用户对模式具有执行权限。
如果您将此代码库与所有最流行的Web框架进行比较,它会让您认识到这些框架是多么低效。声称是MVC框架的流行PHP框架实际上根本不符合MVC标准。这是因为它们依赖于将PHP标记嵌入HTML标记或反之(根据W3C的规定,这被认为是非常不好的做法)。此外,大多数流行的node框架运行的服务器代码比必要的要多得多。嵌入的标记也会阻止异步调用正常工作,除非该框架支持像Yii 2这样的AJAX dump。
遵循MVC规范的两个最重要的原则是:永远不要将服务器端标签(如PHP标签)嵌入HTML标签或相反(除非有非常好的借口,比如SEO),并且如果可以在客户端运行,就要坚决不编写在服务器上运行的代码。真正的MVC基于层次分离,而MVC框架则基于代码分离。真正的MVC兼容性非常高效。不要误解,MVC框架对很多事情都非常有用,但如果您正在开发一个将获得数百万点击次数的网站,则它们毫无用处,或者至少会让您的云计费飙升,从而真正影响公司的利润。
总之,框架不能够对在客户端或服务器上运行的代码进行精细控制,而且效率非常低,但使用更少的代码可以更快地建立原型。
相比之下,传统的方法需要更多的努力,但您完全控制在服务器上运行的内容和客户端运行的内容。
作为优化的额外建议,请避免使用透传查询和触发器,而选择存储过程。从历史上看,存储过程并不是在MVC作为一种范式存在的时候发明的,但它确实增加了层之间的关注点分离,并且更加高效。
希望这些建议有所帮助。
top
有什么用处?对不起,我的原始问题遗漏了一个关键细节。请看编辑后的面试问题。 - Anish Ramaswamy