我于2017年11月6日加入公司,开始了这段时间不久的PHP后端开发工作.虽然短暂,但也受益良多.体验了一个项目或功能从0到1的过程.伙伴们的协同工作.感受可谓心有灵犀,沁人心脾.作为一个技术爱好者,我感到很快乐.
1. 这两个月
2017的最后两个月对我来说是神奇的两个月,有太多想要分享的.做了一些工作,串成线可以描述为,公司B2B平台(9daye.com.cn)首页后端(Admin)的debug开始,一直到接手首页写活的部分接口,再到CRM项目的一度开展,最终在12.25收官的用于团购的平台活动以及返现的代码编写.过山车般的两个月真的收货不小.
0x00. Admin后台Debug
这是我最艰难的时期,由于从来没有使用过Yii2
框架,我必须保证在工作的时候持续学习Yii2
框架.也是这个时候,我感觉每天需要48小时来处理工作,并且周末比工作日更加勤奋.
记得有一个bug是”用户没有权限”,现在看来很简单,就是由于Admin站用了RBAC
来管理不同用户组的权限,所以需要在对应的数据表中添加当前的控制路径,否则没有权限.但是由于对Yii2
和Admin的陌生,这直接导致了我从index.php
入口文件开始,进入yii\web\Application
,yii\base\Application
,yii\base\Module
,yii\di\ServiceLocator
,yii\base\Object
一路跟踪了包括DI
,配置
,MVC
,数据库
等几乎Yii2
框架的整个流程.其中,Controller
和Action
的创建,以及路由的解析
,我看了不下5遍,才在一个Controller
的角落发现了这段让我记忆犹新的权限查询SQL.
究其原因,是因为以前ZendFramework3
给我留下的印象,导致了很多概念上的重组(个人BLOG中有详细说明的文章),比如Module
这个概念完全颠覆了我的三观,再如习惯了DI
的我突然接触到到相当规模的Reflection
实例化(Reflection效率很低)案例的懵那啥.再如Yii2
的默认非单例,也是踩了不少坑.
0x01 首页写活
这个时期,我已经掌握了Yii2
框架的内容,主要存在的问题是与其他小伙伴的协作上.
当时,有个业务要求输出主页上的楼层,小伙伴们也是人啊,所以肯定会要求自己的那部分作业越简单越好,所以,前端要求接口一气呵成,传输给他一切要素(同一接口).表示震惊之余还是帮他实现了这样的设计,最后遭到质疑,索性这节改叫分分钟教你做人吧.
之后,我产出的接口全部遵循服务器压力最小的前提下,适当减轻前端小伙伴的工作量.并坚定的执行,虽然有时候我语气很硬,但其实心中还是很绵和的,忘前端小伙伴千万不要怪我,虽然他们看不到这篇文章.
0x02 CRM
这个项目证明了公司对我的信任,也象征着托付给我未来的责任,我将尽我所能,完成这个项目的开发.
最近的调研全部与这个项目有关,包括书籍<<大型网站技术架构:核心原理与案例分析>>李智慧 著.
也包括后续的扩展,组件会越来越多的前提下,决定使用Docker
容器,来部署网站,以减轻部署难度.还有考虑到后续架构的升级和变化,正在思考如何解耦业务和架构,实现真正的可扩展性(横向)和高容错.并且能使用异步非阻塞的IO调用,绝不使用同步阻塞.在一开始就带入这样的设计理念,可以让后续的维护工作不受这期间工作的制约.
迄今为止,商品信息管理类接口基本无太大问题,但是架构方面的初期设计依然重于泰山,起码能做到各层用最低的成本实现横向扩展,是这阶段的目标.
0x03 12.25平台活动
这个项目虽然不小,对于这时候已经熟悉Yii2
框架的我来说是很轻松的(不是指时间方面).做了两个版本,其中一个中途遭受了需求更改而作废.另一个则被使用在平台12.25活动当天.
这个项目进展还算顺利,收获也很不少.给了我一些设计思路上的灵感,由于活动是经常性开展的,为了便于项目的可扩展性,能不能使用观察者模式来设计如下单,支付,返现等模块,在需要新功能时直接编写相应的观察者即可,无需增改先前代码.或者直接使用Yii2框架不太擅长的事件驱动模型,建立下单等事件,在活动来临之际直接为事件绑定Listener
即可,实现了比观察者更加解耦的新境界.
0xFF 总结
这就是我的2017.11-2017.12.从学习技术到学习做人,再到技术的反思及前瞻.我经历的的确是过山车般的两个月.
2. 2018前瞻
2018即将来临,其实我不善于以年为单位来做计划,因为浪费一年的成本太高了,我支付不起.我跟愿意用月,甚至是周来计划人生.所以以下的计划,只能叫做意淫.
0x00 PHP扩展
2018我会熟练的使用C来开发PHP扩展.这也是让我留在PHP阵营目前最有力的筹码.
0x01 重构数学知识,迎接智能时代
给一个技术人打分的最重要标尺有两把,数学和英语. —-某大牛
我深信不疑,同时也充满了动力去再一次搞清楚拉格朗日中值定理,矩阵的秩,以及贝叶斯定理等基础.直到可以顺畅的阅读起码CNKI上的关于智能算法的paper.当然,逼格高到能阅读Science或者Natural是我的理想.
0x02 继续每周一篇博客
维护个人BLOG,已经成为我周末必不可少的度过方式之一.
法乎其上,得乎其中.
2018,加油!