查看完整版本: PHPer,你真的用了最节能的算法了吗?

cwk32 2008-1-1 09:24

PHPer,你真的用了最节能的算法了吗?

作品我看了下,很不好~!H"q"ww`Gl
!F u t;B BR2q7f
用着模棱两可的MySQL查询请求
J y a6vW K.f? $vX'n{9d$xy!a9ZF|
用着什么事都用Cache的习惯
S1j+yM*ny#g.Y2{ ]ZH7i+kR
没有多想想本地与数据库两个之间的距离~!#Wu-ptA
@\+ycaqJq:a

:E+D2~2S$Z$ZC.~:| 这是17DST中大多数PHPer都会犯的错误!
K"q!Hn!{v
oE p[8Hy,~ 一:MySQL请求0f,`!I-JW
,rhi^~4l Z
要写就应该写规范,新的MySQL对请求的要求越来越严格,如果还用着这种模棱两可的请求,就只能给你一大行E文!为什么这个连代码最”不科学”的PW也做到的东西,你们怎么就做不到?
#]d+Sa4h-h[+x5e 5QW6G(lUyA
二:Cache
.R/F e%g1{U"`r
[0G+?Vm4Jj 记录时间 记录一个数字 甚至记录一堆混合数据,你有没有想过节能呢?z3F*J]V!~#sP

/zL8i'y8Rv 记录时间,用touth,直接记录给一个0字节的文件(Windows系统的FTP不允许上传0字节文件,用touth可以创建) s'H @+o(`

k)D1G/_#Y9P| 记录数字,如果你只要记录一个数字,那么直接file_put_contents过去,虽然不能用include简便地引用,但是一句file_get_contents不算难吧?
Ks-W~2y:?uK"Bi PP,AR&M;[
2F`w-a8J W]/F2z
记录一堆混合数据,像config.inc.php的:
'e!@ ^%S9w(@i K&|9C+K(AnN
一个数据一行(转行一个\n)!读取时list(XXXXXX,XXXXXX)=explode('\n',file_get_contents("./XXXXX"));a\M m"|;\ EI
3^b{!s7B B&V
如果有array,那么就这么做: |-gs%S s9l6B^ f*q&Q

ER;I0\4C G 一个数据一行(\n),array按array(XXX,XXX),字符串””或'',数字不用——就这样!f4{ EM0Iv YY(`^
4Y*uewQq-o2`
$a=explode('\n',file_get_contents("./XXXXX"));}"w'T ^$e5GW7jA] r
$b=array(XXXXXX,XXXXXX,XXXXXX);
3^S V {B.o'}R z5C)o foreach($a as $c){%xS3_/EY,pf7V
eval("$".array_shift($c)."=".$a);
cV#tdH@ YG }
x2S'_f$W
$vrAJ!jx&J 不要担心可能被黑客利用什么的,只要你这个XXXXX能做好保护就可以了,如果别人能修改这个,那么要攻击你的服务器还成问题?

习明 2008-1-1 23:23

回复 1# 的帖子

一 MySQL请求 }I:m/wR9qd
首先我不清楚LZ所说的不规范指什么 不过我认为 把DST的"PHPer"和所谓代码最”不科学”的PW做比较本身就不科学 毕竟DST中的PHPer大都是接触时间不久的新手 不是专业开发人员 专业开发人员有其自己或团队的代码风格和标准 PW作为一个公司 其本身必然会对产品进行规范要求 这没有可比性 对于新手好的代码习惯是很关键的 有一些经验的人可以引导而不是指责 当然更不是把自己的习惯强加给别人 "你们怎么就做不到" 请问LZ刚接触PHP+MySQL的时候就能完全按照规范写代码么 每个人成长都需要时间和空间 如果觉得有必要可以提供一些比较通用的规范供大家学习
cL8Lmwx s
O*tZ|(Q:w 二 CACHE SLA9Z#A8YH+h-O
记录时间: 很少遇到单独记录的情况 不发表看法
#w+|\$r M.THyt /I-|:I#NUt-ige
记录数字: file_put_contents 需求PHP5.0以上 尽管PHP官方已经不在支持PHP4.X 但还是有很多网站在使用低于5.0的版本 特别是一些虚拟主机或免费空间 IDC可不会管那么多 记录单个数字的情况也不常见 通常都是一组数据 这就属于下一条内容了吧
y}&L:\x\F
0t u.X:zT 记录一堆混合数据: 目前常见的PHPcache 虽然耗能 include效率也不比单纯的file_get_contents高 但有一个特点是便于开发 写入cache后可以通过阅读cache文件判断是否正常 开发阶段用cache比较方便 象插件或一些开放的程序 容易被阅读和除错是比较重要的 用纯文本缓存数据的方法我也用过 不过不是list或者eval 而是serialize/unserialize 后期维护很成问题 所以很少用 相信用LZ的方法并不比我的方法简单多少2mSh!{&b

6Y3n4yZb-U 节能增效是个很值得深思的问题 不是节约硬盘和内存就节能了 关键还是增效 软件工程有一个理论是空间换时间 在允许的范围内增加硬盘或内存消耗而减少程序执行时间 对比来讲 cache的写<<读 如何提高读取并转化为可用数据的整个过程的效率才是主要问题 另一个主要问题是程序的后期维护(包括二次开发 升级 除错等)  如果程序就一个人开发、维护和使用 完全可以使用任何个人能理解的方式来处理 但事实上这种模式的程序不可能在DST出现 试想一下 DZ的cache都用纯文本来处理 会给后期开发和升级造成多大难度 再比如 面向对象本身比面向过程并不节能 但前者的开发效率和后期维护方面都较后者强 再联系到DST的人员组成上来 很多人开始的时候都只是照猫画虎 会用cache缓存数据也是慢慢摸索出来的 一步难登天 有些更快捷更方便的方法 或许连PHP从业若干年的专业人士都未必了解 还是那句话 象LZ这样的前辈 多提供些经验、技巧、资料供大家学习吧v7`e$R@8qm;{

%rT%N`UH_2q 综上 我支持在程序设计中尽可能的节能增效 也支持使用符合规范的语法和结构 但是这些需要经验和积累 DSTer真正专门从事开发的PHPer没有几个 前辈达人应该多一些宽容和引导 并给予大家更多的支持和鼓励*K[0s3ZPe-DaO

:Z'a I$Z Lj6@ 以上是个人的一些看法 如有不当请LZ指正
页: [1]
查看完整版本: PHPer,你真的用了最节能的算法了吗?