这一年又这样过了,这几天一直在准备,感觉不知从何开始,与往常一样,就这样平淡的度过了一年

这一年比较好的是有很多时间专门写代码的时间,进来个产品帮我做了大部分不是技术开发做的事,少了很多无效率的会议,产品设计等工作, 在技术上:

  1. 详细测试、阅读了大量php开源项目,如Symfony, yii2, cphalcon, laravel等, 公司框架也借鉴了他们的设计思路与代码, 阅读并测试的开源组件twig, fastRoute, mongolog, doctrine2, php-debug, pimple, runkit等
  2. 完成公司框架组件化,原有框架功能臃肿,在这一年花了近两个月的时候拆分为20多个组件项目,独立维护
  3. 搭建公司composer私有源管理与维护
  4. 搭建公司git项目远程服务管理与维护
  5. 在swoole扩展的支持编写了php在网络通信服务公用组件,Tcp, http, yar等协议的服务
  6. 在包装的tcp, http, yar组件的基础上,实现了一个通用的Api组件, 实现高效服务端Api接口
  7. 编写与整理的php代码超过12w行(包括注解在内, 不包含开源项目), 编写代码量应该超过了前三年的总和
  8. githup发由了第一个开源项目 syar, 得到了swoole官方帮忙推广(感谢)
  9. 学习了go的基础语法及协程
  10. 尝试Vue.js在实际项目的应用, 了解了Vue-route, vuex
  11. 尝试学习了nodeJs, es6语法及基础包管理, 并尝试使用了webpack打包工具及各种Loader
  12. 平均每月2+技术博文(未达到年初计划)
  13. 了解并简单测试了docker

在工作上:

  1. 了解调研VR产品
  2. 搭建了公司各类分站(奇台、府河)
  3. 平台引入IM, 工单系统
  4. 调研了解并搭建完善微商务系统
  5. 参与开发了招商宝、销售宝系统
  6. 着手开发公司自己的IM系统
  7. 致力于组件化、模块化、服务化方面的尝试及相关的准备工作
  8. rap接口文档的尝试

学习了以下书籍(部分书籍粗浅的、片断阅读):

  1. 技术管理之道
  2. 从0到1
  3. 黑客与画家
  4. 软件设计师
  5. 自控力
  6. Linux系统编程
  7. phpunit-book电子书
  8. Symfony_components_3电子书
  9. Symfony_best_practices_3.0电子书
  10. Symfony_book_3.0电子书
  11. Symfony_cookbook_3.0电子书
  12. Symfony_best_practices_3电子书
  13. phalcon-php-framework电子书
  14. Yii 2.0 权威指南
  15. JavaScript高级程序设计 电子书
  16. 其它

在生活上:严重不及格,很多计划都未实现

PHP_Depend

https://pdepend.org/documentation/what-is-php-depend.html

phploc

https://github.com/sebastianbergmann/phploc

phpmd

https://phpmd.org/about.html

phpcpd

https://github.com/sebastianbergmann/phpcpd

 

名词概述

  • satis:
    http://docs.phpcomposer.com/articles/handling-private-packages-with-satis.html
  • 资源包:
    http://docs.phpcomposer.com/02-libraries.html
    http://docs.phpcomposer.com/04-schema.html
  • 资源库:
    http://docs.phpcomposer.com/05-repositories.html

外部dist包存储到私有资源库

statis配置

由于之前未定义require, autoload配置项,导致安装后无法安装相关依赖及配置psr4映射

让composer递归加载包

参考:
http://docs.phpcomposer.com/faqs/why-can%27t-composer-load-repositories-recursively.html

statis配置

 

使用statis

登录252服务器

可以下载一些常用的开源包缓存到公司

生成静态资源包

生成过程中如果需要输入Token, 访问提示的地址, 在github生产新token即可
配置nginx

使用私有包

将安全连接关闭

配置项目composer源


可一并配置git项目用户访问权限

安装包

安装项目


 

为何用swoole来实现 Yar server

  • 提升Yar服务端执行效率
  • 学习swoole, yar(在此感谢laruence,rango及swoole开发团队)

Requirements

  1. php5.4+
  2. ext-swoole 1.8.8+
  3. ext-msgpack 如果yar使用msgpack编码方式

Installation

简单性能测试

测试脚本 example/benchmark.php, 测试环境(虚拟机)

  • cpu: i5 – 4460
  • mem: 4G
  • os: centos6.5
  • php: php7(fpm: 20进程, swoole: 18进程(8 worker + 10 task)

脚本一共完成44次接口调用:

  1. 简单接口调用 2次
  2. 数据库查询接口调用2次
  3. 并发简单接口调用 20次
  4. 并发数据库查询接口调用 20次

在当前测试环境下,fpm环境下的执行时间大概是syar下的4 — 6倍左右, 稍后做更详细的压力测试,服务器、客户端资源占用情况测试

github:https://github.com/stcer/syar