WEB程序代码优化入手的几方面

上一篇 / 下一篇  2008-02-18 18:51:12

查看( 2976 ) / 评论( 16 )
原文:http://www.coderhome.net/zifa/?p=197

这里对web程序方面的优化作一个总结,虽然我用的是PHP其实不管理是什么语言方向都是一样的。
1.编码规范化可读性优化
编码规范我想一般程序员不会不了解,如果你这方面是空白你应该好好补补基础了,做到编码规范是一个好的程序员的最基础要求,一个团队也应该有自己的编码规范。所以程序的优化也应该包含到这个方面,在你开发程序的过程中可能会有些遗漏,所以在我们进行编码规范化可读性优化是很有必要的。其实一份再好的程序代码若干年后你自己都未必能看的懂更不用说别人来看你的代码,使你自己写出的代码有更好的可读性,这个是一个好的程序员应该做的,并且是对一个团队和你自己作品的责任感。
优化方向就是使你的代码更清析更易懂。
2.程序效率、流程逻辑优化
程序效率的优化是最重要的,程序运行速度是程序代码好坏最重要的因素,程序逻辑其实就是你的解决思路,解决思路并不是唯一的,所以我们可以对它进行优化。逻辑的设计也和可读性有一定的关系,逻辑清晰可读性就更强。
优化的方向就很明确了提高速度,清晰逻辑。简单的逻辑并不代表一定是速度快,复杂的逻辑并不一定是慢的。所以在这两方面是关联。
3.SQL优化,减少查询次数
在使用数据库的程序中我们知道数据库的查询是在整个程序执行中占很大比例的,所以SQL的优化是非常重要的。
优化的方向一方面是SQL语句本身的优化,熟悉SQL的人应该会知道,不同的SQL写法执行的效率差别是很大的,如:尽量不对字段加函数操作,更多的大家可以去查找高效SQL这方面的资料。第二在一个页面中减少查询次数,这个道理很清楚,我们可以把整个页面的SQL都输出来进行分析,是否可以合并语句,是否可以做冗余字段等等,尽量减少SQL的查询次数,坚绝不在循环中使用查询。
4.缓存优化
缓存优化其实就是对上一点的补充,但缓存优化是很重要的,所以可以单独列为一点。缓存的数据主要就是从数据库中读取出来的。对缓存的一些介绍:http://www.coderhome.net/zifa/?p=195,当然缓存也应该适当,应该只把需要缓存的数据进行缓存。
5.html,css,js文件优化,减少冗余代码
这一点与服务端程序没有关系,主要是与浏览器相关的几方面。html的结构是会影响到浏览器的解析,所以好的html代码也会影响访问速度。相比之下客户端的代码就不允许有一点无用的东西存在,能把文件减少一K就应该减少。js虽然是在客户端执行但也应该去考虑它的效率问题,网络上也有这方面的文章介绍。
6.可用性优化
可用性优化主要指的是UED方面的,并不是每一个团队都有专门的UED,作为web程序的开发人员也应该有这方面的意识,去了解用户,而不是埋头写代码。努力使你开发的页面对用户更友好,更容易使用。
7.框架架构优化
如果有使用到开发框架,也应该考虑到对框架的优化,减少框架本身占用的资源。
其它:服务器架构优化、数据库优化
这些方面和程序开发没有直接关系,但和web程序的运行也是关系密切的,所以顺便提一提。

TAG: 优化

peter.chen ct_174880859 发布于2008-02-18 20:13:55

airwin的个人空间 airwin 发布于2008-02-19 09:58:54
好文章~
专攻php+ajax blankyao 发布于2008-02-19 21:47:39
不错  顶下
志凡的个人空间 dzjzmj 发布于2008-02-20 16:29:25

Linvo's Blog linvo 发布于2008-02-20 22:18:09
“坚绝不在循环中使用查询”
那遇到这种情况怎么办?可以怎么改进?
深空发布于2008-02-20 23:51:17
3.SQL优化,减少查询次数
这个不一定是正确的,大表连接很消耗资源,有时候需要拆分成多个简单的SQL
深空发布于2008-02-20 23:52:07

QUOTE:

原帖由 linvo 于 2008-2-20 22:18 发表
“坚绝不在循环中使用查询”
那遇到这种情况怎么办?可以怎么改进?
可以将条件合并一次查询
spiritxia发布于2008-02-21 09:28:26

QUOTE:

原帖由 深空 于 2008-2-20 23:51 发表
3.SQL优化,减少查询次数
这个不一定是正确的,大表连接很消耗资源,有时候需要拆分成多个简单的SQL
太较真了吧 ,减少查询次数是大原则啊,几十个字说明数据库的优化,难道还能面面说到
志凡的个人空间 dzjzmj 发布于2008-02-21 10:48:02
我有提到做冗余字段

当然不可能写的面面具到
志凡的个人空间 dzjzmj 发布于2008-02-25 18:04:38

fly_yang的个人空间 fly_yang 发布于2008-03-04 10:37:10
不错~顶一下~
志凡的个人空间 dzjzmj 发布于2008-03-25 19:35:51

looking的个人空间 looking 发布于2008-03-26 08:59:06
很有策略感,很有计划心, 很有细腻度
phpvista的个人空间 phpvista 发布于2008-03-26 09:17:56
顶,加上服务器文本文件压缩(apache的mod_deflate,lighttpd的mod_compress,php的ob_gzhandler等),反向代理,缓存等,飞一样的速度,非一样的lamp
dancebear发布于2008-03-26 15:50:51
数据库结构设计的有问题你程序里再怎么优化效果也有限。
夜.泪无痕'Blog xox9001 发布于2008-03-26 20:26:11
顶!
我来说两句

(可选)

Open Toolbar