关于网站架构的一点感想
一个稳健的网站架构, 不管有意或者无意, 至少应该包含以下几个方面
- 会话管理. 仅仅依赖于容器的session管理是不够的. 一个专业的网站, 确切的说, 一个面向公众的专业站点, 应该有自己的session实现. 在这个基础上, 才可以自由进行SSO, ACL等扩展
- 用户权限管理. ACL没有普适的实现, 但是有普适的思想, 就是角色管理, 页面拦截, 对象校验. 一个好的ACL实现, 首先要足够严密, 其次要有很好的扩展性和可配置性, 再次就是执行的效率. 在实际的工作中, 发现很多人以为只要控制某个链接的显示或隐藏就达到了权限控制的要求, 这种做法风险就不说了, 在我的项目里零容忍.
- 完全分离的视层. 易于前端开发人员处理的模板是特别重要的, 我比较喜欢像smarty, freemarker这样的模板机制, 尽可能保留了模板对美工人员的友好度. 而像OGNL这样的标签语言, 或者是wordpress里面的模板方式, 在模板中混杂了太多概念和后端代码, 普通美工很难上手.
- 简洁快捷的多国化实现. 在项目的开始就预留多国化的扩展性. 你可以不做, 但是不能没有.
- 缓存, 静态化和集群大量的用在高负载站点上, 但是每种技术都有各自适用的范围, 要付出各自的实现代价, 不同的站点应该根据访问量和使用习惯量力而行, 并非最前沿的技术就最好, 最合适的才是最好.一个完全动态实现的网站, 在独立db服务器, 缓存的辅助下, 也可以轻松应付日数十万PV的流量, 稍加动静态分离和CDN, 就可以适应更大的访问, 并不一定非要完全静态化.
Session management
ACL
Designer friendly templates
i18n
Cache