php 高效 系统,怎样架构一个高效且稳定、安全的PHP网站系统(讨论)

怎样架构一个高效且稳定、安全的PHP网站系统(讨论)

1.采用什么样的框架;

2.采用什么方式编写代码(面向过程、面向对象);

3.操作数据库时,需要注意哪几点;

4.用什么样的模版;

5.界面有什么要求;

6.采用什么方式测试.

高效

这个比较难界定 如何才算是高效

规划的时候很多东西受这个因素制约

oo是趋势 也利于维护

用框架的话已经解决oo的问题 因为主流的框架都是mvc的

在使用框架的前提下

服务器资源开销的增加免不了的

所要做的就是在框架的前提下 尽量减少不必要的代码

多用PHP基本方法 少做些对自身方法的2次封装

尽可能的减少代码重复利用率 当然 也要考虑个部分日后功能扩展要对部分方法或者类有额外要求 看情况留一个参数备用

当然那是后话了 如果觉得太麻烦 可以写着改着扩展着

如果有个比较详细的项目要求 那更好规划

使用中轻量级的框架 在使用的过程中如果类库不够用 再考虑自己扩展

如果项目变得庞大 那面向过程显然就力不从心 扩展的额外投入会随着项目的复杂程度提高 变得越来越高 而且为日后维护带来了很多不便

操作数据库 这个多看看数据库的优化方面的资料吧 基本的优化技巧掌握后 要考虑到日后 数据量达到各级别时对mysql开销的影响

尽可能得减少query次数 考虑使用缓存 当然这也要根据实际情况来看 有些语句拆开来分次查询开销更小

模板? 不建议用太过复杂的模板引擎

因为增加的开销是客观的

如果能够直接inlcde赋值给变量完成 output 显然是非常高效的 模板里面只包含非常非常少的逻辑

例如

没有您请求的数据

极端点也可以考虑合并php标签用,代替.连接字符串等等 用来微弱提高php的执行效率

单人开发则不用考虑太多 怎么地都行 要是团队开发

视图部分该怎么写才能兼顾美工与phper的开发进度 还有代码可读性 这才是最值得思索的

如果htmler 有php程序基础 哪怕只要那么一点点 能看懂逻辑就能省很多事

界面 萝卜芹菜各有所爱 设计UI的时候原则就是 照顾到绝大部分人的审美习惯

这要根据制作的项目所面向的人群来研究制定 这个调研分析的过程非常非常非常关键

注意: 我用了三个非常 因为再烂的代码 如果有个亲合力高的UI 还是看上比较华丽的

因为做web的核心目的就是将东西 交付给客户浏览 或者方便客户提交某些东西

所有的所有都是 围绕访问群体来定制

还有些需要考虑的界面问题 就是 搜索引擎优化 以及javascript在浏览器下面的性能表现

如果有些东西完全可以交给js让浏览器来计算 而对终端的开销又很小的话 完全没必要在服务端上做 这只限于输出部分 提交的接收部分还是要苛刻一点

测试部分 遵循国际上通常的做法 就是 内部测试版 公开测试版 最终版  分三个环节来测试

要有心理准备 因为就算再严格的内部测试 在对外服务后 也会收到bug信息 不能说内部测试不够全面

先前测试的目的是尽可能减少对外服务后 bug的出现几率 降低市场风险

项目越小 BUG越容易控制 测试部分的投入量要根据项目的复杂程度做等比例或者更高比例的调整

前段时间 深入了解了下 xunlei的下载系统

UI方面 简单明了 符合xunlei的一贯作风

其前台表现特色有下面几点

1 简约单线条 突出内容 很清爽

2 尽量使用web安全色

3 div+css布局 仔细分析 可以看出把栏目导航放在了左边 而代码里面是写在后面的 好处是更容易引导搜索引擎

4 所有的icon都做在一张图片上 通过 设置background里面的坐标来引用不同的icon

(一开始我不太理解这样做的目的 后来想到了web连接数

web打开后每个图片都占一个连接 如果把所有图片集成在一起 一来容易管理 二来可以减少好多连接哦)

5 除了评论部分 其他页面都没有用js框架

6 使用了cookie防刷 防重复提交

光上面6点就有好多值得学习的地方 当然第6条这中方法是否好用 这里就不做过多讨论 每个站的做法都不一样 效果也有不小的差别

xunlei使用这样的比较轻量的做法 我想是为了资源的考虑 毕竟那样的网站所接受的访问量是一般站点所不能比的

对于每一个细节的考虑 哪怕节省一点点的开销 那放大后也是非常可观的

于是我用CI开始临摹这样的网站 虽然不复杂

不过在制作的过程中还是有不少问题值得思考

比如 统计模块的设计

对评论部分的深入分析后 发现 他的评论系统是一个独立的系统

可以为很多栏目提供服务 是以 当前用到评论的url作为查询的条件

当然后台肯定对url参数进行了处理 否则存储那么长的一个字符串是不划算的

如果一个网站有 download  movie article album 几个栏目

那 comment表可以简单规划成这样的结构

id mainkind viewid user ip date

mainkind 存储该评论的栏目分类 viewid则存储对应的编号

很简单的一个东西 却能给所有的栏目服务

总体来说 xunlei的下载频道 是一个小项目 麻雀虽小但是值得借鉴的地方好多的

http://www.phpchina.com/bbs/thread-83398-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值