1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1, shrink-to-fit=no ">
6
+ < title > zendAPI - The C++ layer for Zend Engine</ title >
7
+ < link rel ="stylesheet " href ="/statics/css/common.css " />
8
+ < link rel ="icon " href ="/zendapi.ico " type ="image/ico "/>
9
+ < script type ="text/javascript " src = "/statics/js/manifest.js "> </ script >
10
+ < script type ="text/javascript " src = "/statics/js/vendors.js "> </ script >
11
+ < script type ="text/javascript " src = "/statics/js/common.js "> </ script >
12
+
13
+
14
+ </ head >
15
+ < body >
16
+ < div id ="fakeLoader "> </ div >
17
+ < script type ="application/javascript ">
18
+
19
+
20
+ window . ARTICLE_DATA = {
21
+ title : "我为什么要做 zendAPI 项目" ,
22
+ date : "2017/07/20 22:29:02" ,
23
+ content : [ "<p>经过紧张的开发,我终于费了九牛二虎之力将 zendAPI 的项目官网做好上线了,眨眼已经入职奇虎一年了,我也走完了我的职业生涯规划的第一年,别问我之前4年干啥去了,我去潇洒了 (拉着几个大学同学创业去了)。回想这一年一路走来有太多的酸甜苦辣了,不过总体来说吉人自有天相过程还算顺利。</p>" , "<p>曾经有人问我,你为什么要做开源项目呢?现在开源项目这么多,在 Github 上大到操作系统,小到一个网页按钮的颜色设置都有相应的开源项目,我们拿来用就可以了,为什么还得自己去费这么大的力气去做一个根本不赚钱的项目呢?平时工作已经这么忙了,还得挤出时间去研究和开发。</p>" , "<p>对于这个问题我想从如下几个方面进行回答:</p>" , "<h3 id=\"php-nei-he-xiang-mu-de-xian-zhuang\"><a href=\"#php-nei-he-xiang-mu-de-xian-zhuang\" class=\"header-anchor\">#</a><a href=\"#PHP-内核项目的现状\" class=\"headerlink\" title=\"PHP 内核项目的现状\"></a>PHP 内核项目的现状</h3><p>随着 PHP7 的发布,其实 PHP 在语言特性和运行速度上来说已经可以满足了绝大数的系统开发,在易用性和稳定性上都没有什么问题,同时文档书籍丰富,非常容易入手。但是在另一个方面 PHP 社区在 zend engine 也就是 PHP 内核开发上就不是很用心了,接口难用,基本没有什么好的文档,大大增加了扩展的开发。曾经有一个笑话说 PHP 社区里面的几个重要成员要是同时失踪了,PHP 内核项目估计就完蛋了,盘子太大不好接。笑话归笑话,但是也从侧面反映了 PHP 社区确实在做的不好,核心引擎的文档实在太匮乏。另一方面是因为是 C 开发,虽然速度快,但是开发效率不是很高,项目代码量大了加上各种宏调用,可读性确实不高。</p>" , "<p>为了改善这种情况,我尝试做 zendAPI 项目,使用现代的 C++11 对 zend engine 的核心数据结构和接口进行二次封装,同时保证封装出来的接口都有文档描述。努力在不降低性能的前提下,大大降低 PHP 扩展的开发难度。</p>" , "<h3 id=\"ge-ren-cheng-chang-jing-li\"><a href=\"#ge-ren-cheng-chang-jing-li\" class=\"header-anchor\">#</a><a href=\"#个人成长经历\" class=\"headerlink\" title=\"个人成长经历\"></a>个人成长经历</h3><p>我对计算机是有很大的兴趣,回想当年高考就立志要成为一名牛叉的程序员,高中时候就买了很多计算机书籍,不过都被高中老师收缴了,高考之后就迫不及待报考了计算机,在大学开始了自己的自学历程。这个阶段我是处于一个朦胧的阶段,相信自己的自学能力,但是事实证明没有好的导师指导,光靠自己不行。总得来说,从大三开始到入职奇虎这5年,一直处于自己探索阶段,各种折腾,浪费了不少青春,收获总得来说不是很大。这个人生经历让我具备了一般人所没有的危机感,正是这种危机感让我一刻也不敢松懈。入职奇虎之后,有了一份稳定的工作,从此一天当作两天来用,恶补我之前浪费的青春。<br>总结来说,我不怕折腾。</p>" , "<h3 id=\"guan-yu-cong-xin-fa-ming-lun-zi-wen-ti\"><a href=\"#guan-yu-cong-xin-fa-ming-lun-zi-wen-ti\" class=\"header-anchor\">#</a><a href=\"#关于从新发明轮子问题\" class=\"headerlink\" title=\"关于从新发明轮子问题\"></a>关于从新发明轮子问题</h3><p>有人曾经问我,很多开源项目都已经有了,为什么还要重新发明轮子, 比如像 zendAPI 这种项目有类似的项目</p>" , "<p><em>PHP-CPP</em> 官网网址: <a href=\"http://http://www.php-cpp.com/\" target=\"_blank\" rel=\"external\">http://http://www.php-cpp.com/</a> 做了很久了,也算比较成熟了。<br><em>PHP-X</em> 官网网址:<a href=\"https://github.com/swoole/PHP-X\" target=\"_blank\" rel=\"external\">https://github.com/swoole/PHP-X</a> 国内 PHP 大牛韩天峰(swoole 框架作者)的项目</p>" , "<p>是不是别人做了,我们就放弃做了?放弃享受架构与实现整个项目的乐趣,或者为自己的懒惰找一个借口?<br>我感觉答案是否定的,我感觉我们不但要做,而且就是要着重去重新发明这个轮子,我们的重点不在轮子本身,而是发明轮子这个过程,轮子的成败其实对我们个人来说没有过程重要,在重新发明轮子的过程中,相信我,您会收获很多的。</p>" , "<h3 id=\"ge-ren-qing-huai\"><a href=\"#ge-ren-qing-huai\" class=\"header-anchor\">#</a><a href=\"#个人情怀\" class=\"headerlink\" title=\"个人情怀\"></a>个人情怀</h3><p>一直以来,我都在思考一个问题,作为一名程序员,我应该做到什么程度,才对得起自己,没有白活一生,我一直都很羡慕国外的那些大牛,为整个领域做出了杰出的贡献,我也很想跟他们一样,为后人留下点什么。所以我一直在追求着一样东西,目标一直就没有变,zendAPI 以后算我留下的一个作品,我会一直在路上,这个只是一个开始。</p>" , "<p>在文章的最后,借用 Linux 中一句很出名的话结束这篇博文, Have a lot of fun !</p>" , "" ] ,
24
+ prev : null ,
25
+ next : { "title" :"Hello world, zendAPI 项目官方网站正式上线" , "url" :"/2017/06/26/welcome/index.html" }
26
+ } ;
27
+
28
+ window . SITE_CATEGORIES = [ { "name" :"网站首页" , "url" :"/" } , { "name" :"手册" , "url" :"/manual" } , { "name" :"API文档" , "url" :"/api" } , { "name" :"博客" , "url" :"/blog" } , { "name" :"关于我们" , "url" :"/about" } ]
29
+
30
+ </ script >
31
+ < div class ="uk-offcanvas-content ">
32
+ < div id ="header-wrapper " class ="uk-container uk-margin-remove uk-container-expand site-header " uk-sticky ="show-on-up: true; animation: uk-animation-slide-top; "> </ div >
33
+ < script src ="/statics/js/pages/article.js "> </ script >
34
+ < link rel ="stylesheet " href ="/statics/css/article.css ">
35
+ < div id ="container "> </ div >
36
+ < div id = "footer-wrapper "> </ div >
37
+ < div id ="offcanvas-push " uk-offcanvas ="mode: slide; overlay: true ">
38
+ < div class ="uk-offcanvas-bar " id = "sidebar ">
39
+ < button class ="uk-offcanvas-close " type ="button " uk-close > </ button >
40
+ < div class ="menu-container ">
41
+
42
+ < ul class = "uk-text-left uk-width-1-1 ">
43
+
44
+ < li class ="uk-width-1-1 "> < a href = "/ "> 网站首页</ a > </ li >
45
+
46
+ < li class ="uk-width-1-1 "> < a href = "/manual "> 手册</ a > </ li >
47
+
48
+ < li class ="uk-width-1-1 "> < a href = "/api "> API文档</ a > </ li >
49
+
50
+ < li class ="uk-width-1-1 "> < a href = "/blog "> 博客</ a > </ li >
51
+
52
+ < li class ="uk-width-1-1 "> < a href = "/about "> 关于我们</ a > </ li >
53
+
54
+ </ ul >
55
+
56
+
57
+ </ div >
58
+ </ div >
59
+ </ div >
60
+ </ div >
61
+ </ body >
62
+ </ html >
0 commit comments