入职我目前的公司已经一个月零五天,为了做公司的一套代码的重构,工作进度总体来说还算在计划之中。作为正式的架构师也已经工作了一个多月,一直忙到现在才有心情和闲暇作个总结。
公司的技术团队虽然不算很大,但是团队的后台php的开发人员已经达到五名,使用的框架为Yii2框架,由于时间紧迫只能对原有系统进行部分重构和整合,其实我还没有完全想好后期该如何进行全部重构,但是工作就是这样,不会等你准备好,大多数时候都不会都给你一个从零开始的系统,解决眼下的问题,并为以后的长远打算留下空间和余地,是我目前能做的。
公司技术团队分为前端,后台,产品,UI,刚进公司时花了大概一天时间用于整体的环境和流程搭建,如下图所示:
后台服务器使用了nginx+php7为基本环境,还使用了redis,mongoDB,rabbitmq,并安装了git管理代码;前端服务较为简单,使用了一台windows服务器,前端技术为vuejs;前后端分离使用api接口通讯,api接口调试及文档管理工具为谷歌插件apizza;产品及Ui使用svn进行文件管理,并在内网nginx上配置了web访问。
迁移的工作是比较繁重的,在迁移的过程中分离出了服务层和数据操作的model,规范化了控制器入口,通用函数及登录验证,并在nginx和php中配置了ajax跨越访问,此为之前没有接触过的技术点。
在nginx中添加(注释部分):
location / {
#以下跨域设置
if ( $request_method = OPTIONS ) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,PATCH,DELETE,OPTIONS,HEAD;
add_header Access-Control-Allow-Headers Origin,X-Requested-With,Content-Type,Accept,Authorization;
return 200;
}
#以上跨域设置
try_files $uri $uri/ /index.php?$args;
}
在php控制器(建议写在通用控制器中)中添加:
public function init() {
parent::init();
header('Access-Control-Allow-Origin:*'); //允许所有来源访问
header('Access-Control-Allow-Method:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS,HEAD'); //允许访问的方式
header("Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept,Authorization"); //允许自定义的头部参数
}
暂时就只写这么多吧,迁移任务目前只完成了三分之一,但大多数技术难关都在这个过程中解决了;还需要继续攻关。