Cod*_*oso 13 php model-view-controller dao data-access-layer pac
我正在重写一个大网站,需要非常扎实的架构,这里是我的几个问题,请原谅我混合苹果和橙子,也许还有奇异果:)我做了很多研究,最后完全糊涂了.
主要问题:您将采用哪种方法来构建一个预计会以各种方式增长的大型网站?
单个入口点,数据库中的页面数据,通过将GET变量与数据库条目相关联来拉出(?pageid = whatever)
单个入口点,页面数据在单独的文件中,包含基于GET变量(?pageid =包含whatever.php的任何内容)
MVC(好吧,伙计们,我都是为了这个,但是除了检查所有的教程和框架之外无法掌握这个概念,他们是否将"视图"存储在数据库中?从示例中可以看出,如果你有1000页相同的话它们可以由1个模型塑造,但我仍然需要1000个"视图"文件?)
PAC - 这对我来说听起来更合乎逻辑,但没有找到太多资源 - 如果这是一个好方法,你能推荐任何书籍或链接吗?
DAL/DAO/DDD - 在发布问题之前,我通过努力阅读堆栈溢出来了解这些术语.不确定它是否属于此列表
坐下来创建我自己的架构(如果没有人在这里启发我可能会这样做:)
没有提到的东西......
谢谢.
网站的可扩展性/可用性(低流量)可以通过您提及的任何项目得到最好的解决.特别是第1点和第2点; 将页面定义存储在数据库中是绝对禁止的.MVC和其他类似模式更多的是用于代码清晰度和维护,而不是用于可伸缩性.
丢失信息的一个重要部分是您期望的并发命中/秒数是多少?有时,没有建立高流量网站的人会对实际构成"可扩展性噩梦"的命中率感到惊讶.
有关于如何设计可扩展体系结构的书籍,因此SO帖子将不能用于主题正义,但是一些非常顶级的概念,没有特别的顺序,是:
此时,您已经优化了一台服务器上的行为,并且您必须"向外扩展".现在,事情变得非常复杂.各种类型的负载均衡方案(分片,DNS驱动,哑平衡等),将读取数据与不同数据库上的写入数据分离,转到像Google Apps这样的虚拟化解决方案,将静态内容卸载到大型CDN服务,使用像Erlang或Scala这样的语言,并将你的应用程序并行化......