文档章节

我为什么要做 zendAPI 项目

zendapi
 zendapi
发布于 2017/09/11 15:32
字数 1270
阅读 2K
收藏 6

经过紧张的开发,我终于费了九牛二虎之力将 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://http://www.php-cpp.com/ 做了很久了,也算比较成熟了。
PHP-X 官网网址:https://github.com/swoole/PHP-X 国内 PHP 大牛韩天峰(swoole 框架作者)的项目

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

#个人情怀

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

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

© 著作权归作者所有

zendapi

zendapi

粉丝 12
博文 12
码字总数 9448
作品 1
程序员
私信 提问
加载中

评论(4)

l
lidonghe
很棒,支持
zendapi
zendapi 博主

引用来自“盗宜有道”的评论

php 扩展开发没怎么用过,之前看过php7的扩展开发,确实没找到什么文档(英语水平不是很好),都是各大牛自己的总结,但我觉得把现在的 Zend API 的文档如果有人维护起来,那么 php 扩展开发的门槛会降低很多,很期待未来能够看到你的 zendapi

回复@盗宜有道 : 这样可以节省咱们大量的时间。
Tian-XC
Tian-XC
php 扩展开发没怎么用过,之前看过php7的扩展开发,确实没找到什么文档(英语水平不是很好),都是各大牛自己的总结,但我觉得把现在的 Zend API 的文档如果有人维护起来,那么 php 扩展开发的门槛会降低很多,很期待未来能够看到你的 zendapi
六月是你的谎言
六月是你的谎言
支持
polarphp 0.0.1 alpha 发布:全新 PHP 运行时环境

polarphp 项目介绍 是一个全新的语言的运行时环境,基于目前最新的进行打造,支持最新的语言规范,同时提供了自己的运行时标准库 ()。 简单来说之于语言的关系跟之于语言一样,在引擎基础之上...

polarphp
2019/01/28
1.4W
52
[php-src] Php扩展开发的琐碎注意点、细节

内容均以php-5.6.14为例. 函数中接收的字符串参数长度不包含结尾的0,在 zendupdateproperty 中,长度的参数是 int len,一般都使用 ZEND_STRL(NAME)自动填充字符串和长度,它的长度实现是 ...

ercom
05/14
0
0
使用5种编程语言开发PHP扩展

使用C语言开发 介绍参考链接:http://blog.csdn.net/heiyeshuwu/article/details/44267021 https://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/ 2. 使用C......

老查
2017/11/10
134
0
[研究] 深入PHP内核之ZendAPI扩展篇

PHP_NEW_EXTENSION(php_hello, php_hello.c, $ext_shared) 前面插一个很好笑的报道:“2009/02/27日新浪:首节战罢,火箭命中率27.8%对上骑士17.6%,篮板15对7,助攻4对1”,这是我看过最搞笑...

长平狐
2012/11/19
1.4K
0
Node.js的颠覆者:PHP的Swoole扩展

最近2年Node.js很火,异步与协程是网络开发方面热门的话题。在追求新技术的同时,也应该反思下这里面存在的陷阱。Node.js确实是一门有趣好玩有个性的语言和技术,动态性,全异步回调的方式,...

PHP群:223494678
2013/08/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux中实用但很小众的11个炫酷终端命令

今天给大家分享Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章将向大家展示一系列的Linux命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。...

osc_50znnx42
11分钟前
5
0
GPRS(Air202) Lua开发: GPIO中断

1.原理图 2.配置GPIO5中断,上拉输入 1.点击按钮进入下降沿中断 2.松开按钮进入上升沿中断 module(...,package.seeall) --固定写法,具体百度lua文件加载(初学者不需要考虑,直接写上这句话即可...

osc_mf7xwvy6
13分钟前
9
0
相机激光标定算法:从理论到实践

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 本文是标定系列解读第三篇,介绍了Camera-Lidar标定,通过对一些基础知识和小细节进行讨论和理论推导,给出了一些可以提升标定精度的...

osc_s2b5kacl
13分钟前
7
0
webpack4.0 把自己总结'吐'的一篇文章

上大学的时候老师讲一门语言,上来的第一节课就是配置各种环境,而通常看到那些脑袋都是一种快要炸的状态🤯。随着后来对Linux的学习之后发现,并没有那么头疼配置的东西(对于命令这么复杂...

osc_mor4smaq
15分钟前
11
0
实现一个“真”的网页

@一个“真”的网页 实现一个真的网页~ 经过了前几次的实验,相信大家已经对网页布局有了初步的了解,那么这一次就让我们来做个“真网页”吧!复制代码 文章展示页是非常非常常见的东西,几...

osc_7ekszy4a
16分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部