第一部分: 技术的三个阶段
实现 ---> 借鉴 ---> 优化
实现:为了实现功能,不考虑可读性。
借鉴:阅读开源代码,开源程序,学到编程思想。
优化:可读性,可执行。
阶段一:实现
多做事,多接触技术
1、多做事
多接触各种类型的网站:门户、SNS、BBS、商城等等。
多接触各方面的技术:前端、后端、服务器等。
什么没做过就是做什么。
这个阶段的程序员容易加班、熬夜。
2、要接触各种技术
前端技术
HTML,css,js,
phonegap,
cocos2d,
response
核心问题:特效
后端技术
PHP,java,
python,nodejs
OPP,MVC,AOP,
REST,SOA,
Webservice
核心问题:程序架构
系统底层
Linux,Apache,
nginx,mysql,LVS,
mongodb
核心问题:高并发
阶段二:借鉴
善于分析别人的代码
五种分析代码的方法:
看文档 开发文档、phpDocument
做调试 Xdebug
自带函数 debug_backtrace
debug_print_backtrace
var_export
var_dump
get_included_files
SocketLog 1、不能var_dump的地方: ajax、api;
2、var_dump了也看不见的地方:cron脚本、队列。
思维整理 UML图像、思维导图(xmind)
分析代码方法一:看文档
看代码
---> 编程思想
看文档
注释提取成文档
phpDocumentor 官网地址:http://www.phpdoc.org/
四种安装方法
生成文档的命令:
phpdoc -o HTML:frames:earthli -d ./code -t./docs
在代码目录内:输入以上命令
-o 生成文档的风格
-d 代码的目录
-t 生成文档的目录
分析代码方法二:做调试
Xdebug
具体使用教程:https://netbeans.org/kb/docs/php/debugging_zh_CN.html
分析代码方法三:PHP自带函数
打印调用栈:
debug_backtrace(); 打出调用栈,可以查看调用的文件和方法,返回值。
debug_print_backtrace(); 打出调用栈,可以查看简单的调用栈,返回值。
ThinkPHP的执行流程:
index.php 加载 ThinkPHP
ThinkPHP 执行 Think:start()
Think.class.php 中执行 App:exec()
App.exec() 中用反射方法调用了控制器
输出变量:$arr=array(‘a‘=>‘aaa‘, ‘b‘=>‘bbb‘);
echo $arr; ---> var_dump($arr); //可以看到结构
//记录日记结构
//var_export 变量原样输出
file_put_content(‘./log.log‘, $arr); ---> file_put_content(‘./log.log‘, var_export($arr, true), FILE_APPEND);
获取所有加载的文件 get_included_files() 返回值
分析代码方法四:SocketLog
用SocketLog做微信调试
用户 ->发消息-> 微信 ->请求接口-> 服务器
用户 <-显示给用户<- 微信 <-返回内容(xml)<- 服务器
var_dump调试 -> 服务器
SocketLog原理:
php程序 -> WebSocket -> 浏览器
php程序 -×-> 浏览器
SocketLog 使用方法:
浏览器 安装插件
设置插件
websocket 启动websocket服务:
node sever/index.js
php程序 导入类库
include ‘SocketLog.class.php‘;
配置设置
slog($arr, ‘set_config‘);
发送日志
slog($log[,type])
Github地址:https://github.com/luofei614/SocketLog
分析代码方法五:思维整理
思维导图。
软件:xmind
UML图像:理清类的关系
原文:http://www.cnblogs.com/yhdsir/p/4935575.html