文档章节

我为什么要做 zendAPI 项目

zendapi
 zendapi
发布于 2017/09/11 15:32
字数 1270
阅读 970
收藏 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

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

评论(4)

l
lidonghe
很棒,支持
zendapi
zendapi

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

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

回复@盗宜有道 : 这样可以节省咱们大量的时间。
程小天
程小天
php 扩展开发没怎么用过,之前看过php7的扩展开发,确实没找到什么文档(英语水平不是很好),都是各大牛自己的总结,但我觉得把现在的 Zend API 的文档如果有人维护起来,那么 php 扩展开发的门槛会降低很多,很期待未来能够看到你的 zendapi
六月是你的谎言
六月是你的谎言
支持
使用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
0
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
1K
0
zendAPI —— Zend Engine 的 C++ 封装

该项目是对 Zend Engine 的 C 接口使用 C++11 进行而面向对象的封装,从而屏蔽了底层 Zend Engine API 的接口复杂性,加快开发 PHP 扩展的效率。

两味真火
2017/09/09
34
0
zendapi/zendapi

zendAPI 是什么? zendAPI 是对 Zend Engine 的 C 接口使用 C++ 的最新标准 C++11 进行而面向对象的封装,从而屏蔽了底层 Zend Engine API 的接口复杂性,加快开发 PHP 扩展的效率。从而让 ...

zendapi
2017/09/08
0
0
10月新增开源项目:号称最快的 Node.js 应用框架来了

立冬已过,人们认为这是夏天的终结,冬天的开始。立,建始也;冬,终也,万物收藏也。不过在开源的世界里,开发者并不畏惧寒冷,对技术的不懈追求也未曾终结。 开源的世界总是精彩纷呈,十月...

编辑部的故事
2017/11/07
0
16

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
11
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部