资讯专栏INFORMATION COLUMN

我为什么要做 zendAPI 项目

MyFaith / 2295人阅读

摘要:总得来说,从大三开始到入职奇虎这年,一直处于自己探索阶段,各种折腾,浪费了不少青春,收获总得来说不是很大。入职奇虎之后,有了一份稳定的工作,从此一天当作两天来用,恶补我之前浪费的青春。

经过紧张的开发,我终于费了九牛二虎之力将 zendAPI 的项目官网做好上线了,眨眼已经入职奇虎一年了,我也走完了我的职业生涯规划的第一年,别问我之前4年干啥去了,我去潇洒了 (拉着几个大学同学创业去了)。回想这一年一路走来有太多的酸甜苦辣了,不过总体来说吉人自有天相过程还算顺利。

曾经有人问我,你为什么要做开源项目呢?现在开源项目这么多,在 Github 上大到操作系统,小到一个网页按钮的颜色设置都有相应的开源项目,我们拿来用就可以了,为什么还得自己去费这么大的力气去做一个根本不赚钱的项目呢?平时工作已经这么忙了,还得挤出时间去研究和开发。

对于这个问题我想从如下几个方面进行回答:

PHP 内核项目的现状

随着 PHP7 的发布,其实 PHP 在语言特性和运行速度上来说已经可以满足了绝大数的系统开发,在易用性和稳定性上都没有什么问题,同时文档书籍丰富,非常容易入手。但是在另一个方面 PHP 社区在 zend engine 也就是 PHP 内核开发上就不是很用心了,接口难用,基本没有什么好的文档,大大增加了扩展的开发。曾经有一个笑话说 PHP 社区里面的几个重要成员要是同时失踪了,PHP 内核项目估计就完蛋了,盘子太大不好接。笑话归笑话,但是也从侧面反映了 PHP 社区确实在做的不好,核心引擎的文档实在太匮乏。另一方面是因为是 C 开发,虽然速度快,但是开发效率不是很高,项目代码量大了加上各种宏调用,可读性确实不高。

为了改善这种情况,我尝试做 zendAPI 项目,使用现代的 C++11 对 zend engine 的核心数据结构和接口进行二次封装,同时保证封装出来的接口都有文档描述。努力在不降低性能的前提下,大大降低 PHP 扩展的开发难度。

个人成长经历

我对计算机是有很大的兴趣,回想当年高考就立志要成为一名牛叉的程序员,高中时候就买了很多计算机书籍,不过都被高中老师收缴了,高考之后就迫不及待报考了计算机,在大学开始了自己的自学历程。这个阶段我是处于一个朦胧的阶段,相信自己的自学能力,但是事实证明没有好的导师指导,光靠自己不行。总得来说,从大三开始到入职奇虎这5年,一直处于自己探索阶段,各种折腾,浪费了不少青春,收获总得来说不是很大。这个人生经历让我具备了一般人所没有的危机感,正是这种危机感让我一刻也不敢松懈。入职奇虎之后,有了一份稳定的工作,从此一天当作两天来用,恶补我之前浪费的青春。
总结来说,我不怕折腾。

关于从新发明轮子问题

有人曾经问我,很多开源项目都已经有了,为什么还要重新发明轮子, 比如像 zendAPI 这种项目有类似的项目

PHP-CPP 官网网址: http://www.php-cpp.com/ 做了很久了,也算比较成熟了。
PHP-X 官网网址:https://github.com/swoole/PHP-X 国内 PHP 大牛韩天峰(swoole 框架作者)的项目

是不是别人做了,我们就放弃做了?放弃享受架构与实现整个项目的乐趣,或者为自己的懒惰找一个借口?
我感觉答案是否定的,我感觉我们不但要做,而且就是要着重去重新发明这个轮子,我们的重点不在轮子本身,而是发明轮子这个过程,轮子的成败其实对我们个人来说没有过程重要,在重新发明轮子的过程中,相信我,您会收获很多的。

个人情怀

一直以来,我都在思考一个问题,作为一名程序员,我应该做到什么程度,才对得起自己,没有白活一生,我一直都很羡慕国外的那些大牛,为整个领域做出了杰出的贡献,我也很想跟他们一样,为后人留下点什么。所以我一直在追求着一样东西,目标一直就没有变,zendAPI 以后算我留下的一个作品,我会一直在路上,这个只是一个开始。

在文章的最后,借用 Linux 中一句很出名的话结束这篇博文, Have a lot of fun !

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25835.html

相关文章

  • zendAPI 项目简介

    摘要:项目是什么是对的接口使用的最新标准进行而面向对象的封装,从而屏蔽了底层的接口复杂性,加快开发扩展的效率。国内同类型的项目推荐目前国内有一个跟比较类似的项目,这个项目是项目作者开发,值得推荐。项目名字项目的地址是大家有兴趣可以研究。 项目Logo showImg(https://segmentfault.com/img/bVVtW8?w=716&h=218); zendAPI 是什么? ...

    Pluser 评论0 收藏0
  • 360正式开源zendAPI 项目,让 PHP 的扩展开发成为一种享受

    摘要:从而让的扩展开发成为一种享受,不用在考虑不同版本带来的差异性,让开发者专注于自身的业务逻辑。怎么参与交流下面是我们项目的线上交流群和微信的二维码,大家可以扫码加入技术圈欢迎大家在这两个平台上与我们进行互动特别感谢无线电安全研究部独角兽团队 360开源项目介绍: 360开源官方github: https://github.com/qihoo360 今天给大家介绍一个360最新开源的产...

    DrizzleX 评论0 收藏0
  • 什么要基于 PHP-CPP 去实现 zendAPI 项目

    摘要:目前的情况是我从未开发过项目我从来没有开发过扩展我需要一个由我控制的项目,实施自己的想法,可能不成熟基于这三个条件,我急需要一个类似的项目作为原型进行开发,所以选择了。在研究我也可以实践编程和熟悉接口,为进一步改进奠定坚实的基础。 背景: 记得去年的这个时候,我刚来奇虎的时候,在研究 PHP 的时候无意之中发现了 PHP—CPP 这个项目,立刻就被她吸引了,原来 PHP 的扩展居然还可...

    codercao 评论0 收藏0
  • zendAPI 项目开发计划

    摘要:如果内核这方面如果做得好的话,估计也没有我们这个项目了。规范化版本号与版本发布流程,针对主流平台进行测试,提供相应的二进制包等等。 因为时间有限,开发在每天的上午6点到9点,晚上9点到12点以及周末,所以项目周期可能比正常的要长一点,我的计划如下: 7月到8月完成对 zend engine 的一些核心数据库的封装 这个阶段主要针对 zend engine 一些常用的数据接口做一些面向对...

    nevermind 评论0 收藏0
  • C++ 开发 PHP 7 扩展之模块入口定义

    摘要:每一个扩展必须有一个描述对象,在中我们类主要的作用主要完成这个功能。表示我们扩展导出符号给其他库使用。文章使用的编程文档的引用连接参考手册参考手册原文链接开发扩展之模块入口定义 zendAPI 项目不提供任何底层的功能,只是封装了 zend engine 提供的功能,对上提供一个易用的编程接口。这篇文章中,我们将介绍 C++ 世界与 C 世界交汇的地方,在这里也是 zendAPI 的接...

    dabai 评论0 收藏0

发表评论

0条评论

MyFaith

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<