15

1. 面向接口编程,而不是实现编程
2. 优先使用对象组合,而不是类继承
3. 将可变的部分和不可变的部分分离
….

参考资料:http://www.ibm.com/developerworks/cn/java/reuse/

31

      这段时间我在学习设计模式,感触颇深。其中有不少设计模式我在项目开发中已使用过,只是受到了本身水平限制,当时我还不知道自己使用了设计模式。o(∩_∩)o…

再接再厉,前途是光明的。

01

参考条件:
1、数据表名:popadv,里面就一个字段:adv,用来保存广告链接,大概有100条记录
2、在随机选广告的基础上尽量实现平均,就是这100条广告最好被选中的机会相差不大,不要出现一个广告被选了50次,另一个才选上2次
3、每天大概有30万次浏览,就是说你的程序性能必须要能承载每天30万次的访问


/**
* 负载均衡算法
*
* 以用户访问的毫秒为基数 可大大提升广告显示的平均值
*/
$mtime = explode(' ', microtime());
// 链接缓存数组
$adv = array('链接1', '链接2', '链接3', '链接4', '链接5');
$i = $mtime[0] % count($adv);
echo $adv[$i];
?>

26

还是PHP受欢迎啊 o(∩_∩)o…

百度指数:http://index.baidu.com/main/board.php?bid=13395

25

最近对自己的PHP水平分析一下,得出以下结论:

我实践经验丰富,担理论知识还需要加强,称得上是高手中的新手。

虽然做过很多PHP的项目(网站、B/S系统),担都是需要相应的知识时才会去学,并没有按步就班的学习。就拿我买的PHP&Mysql高级编程这本书,我就没有全看完,只捡需要了解的看。

决定下一步的学习方向是:PHP编程思想、英语。

22

相关软件:
EasyPHP2
ActivePerl-5.8

配置步骤:
1. 将EasyPHP2安装到D:\EasyPHP2
2. 安装ActivePerl-5.8到D:\usr目录下
3. 启动EasyPHP2,并打开Apache2配置文件D:\EasyPHP2\conf_files\httpd.conf
4. LoadModule cgi_module modules/mod_cgi.so 前的#号去掉
5. 搜索 Options Indexes 在后面加上 ExecCGI 注意间隔空格
6. 搜索 DirectoryIndex 在后面加上 index.cgi
7. 重启 EasyPHP2
8. 完成

以上步骤也适应其它LAMP环境

17

原文:http://reinholdweber.com/?p=19
英文版权归Reinhold    Weber所有
中译文作者yangyang(aka    davidkoree)

1. 不会利用如phpDoc这样的工具来恰当地注释你的代码
2. 对优秀的集成开发环境如Zend StudioEclipse PDT视而不见
3. 从未用过任何形式的版本控制系统,如Subclipse
4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实
5. 不使用统一开发方式
6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函数
7. 不在编码之前彻底规划你的程序
8. 不使用测试驱动开发
9. 不在错误开启状态下进行编码和测试(译注:参考PHP函数error_reporting
10. 对调试器的好处视而不见
11. 不重构你的代码
12. 不使用类似MVC模式把程序的不同层次划分开
13. 不知道这些概念:KISS, DRY, MVC, OOP, REST
14. 不用return而是直接在你的函数或类中输出(echo/print)内容
15. 对单元测试或通用测试的优点视而不见
16. 总是返回硬编码的HTML,却不返回纯粹的数据,字符串,或对象
17. 总是对“消息”和“配置参数”进行硬编码
18. 不对SQL查询语句做优化
19. 不使用__autoload(译注:参考PHP手册相关描述
20. 不允许智能错误处理(译注:参考PEAR的ErrorStack
21. 使用$_GET替代$_POST来做具有破坏性的传递操作
22. 不知道怎么利用正则表达式
23. 从未听说过SQL注入或跨站脚本
24. 不允许简易配置,也不允许类的构造函数接受参数传递而后执行set/get方法,或运行时的常量定义
25. 不理解面向对象编程(OOP)的优势和劣势
26. 不视情形大小而滥用OOP
27. 自认为实现可复用的软件一定等于/需要让你的代码遵循OOP
28. 不利用智能缺省值
29. 没有单一的配置文件
30. 不想暴露文件源码,却用.inc后缀名取代了.php
31. 不使用数据库抽象层
32. 不能保持DRY作风,即不重复自己,如果你总是在复制粘贴一些东西,说明你设计得很差劲
33. 没有实现让一个函数/类/方法只做一件事,也不能组合利用它们
34. 没能尝试OOP的特长,如抽象类、接口、多态、继承,访问控制修饰符(译注:如public, private, protected)
35. 不用现有的设计模式优化你的程序体系设计
36. 不允许你的用户在你拥有很多文件或目录的情况下定义基础目录
37. 污染了名称空间,比如用常见字符串命名你的库函数
38. 使用数据库表时不使用表前缀
39. 不使用统一的模板引擎
40. 不关注已有的PHP开发框架,懒于探索;其实先进的开发理念和美妙代码就蕴含其中。

我觉得我就是菜鸟了…

15