Skip to content

Commit eeced23

Browse files
committed
Site updated: 2017-07-20 23:47:21
1 parent 8b23ab8 commit eeced23

File tree

120 files changed

+65
-8489
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+65
-8489
lines changed

2017/06/26/welcome/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
title: "Hello world, zendAPI 项目官方网站正式上线",
2222
date: "2017/06/26 10:03:32",
2323
content: ["<p>经过紧张的开发,我们的 zendAPI 官网正式的与大家见面了,后续的开发动态和项目的文档,我们都会同步的更新到网站上,谢谢大家的支持。</p>","<p>zendAPI 的官网网站的源码托管在 : <a href=\"https://www.github.com/zendapi/zendapi.org\" target=\"_blank\" rel=\"external\">zendAPI official Site</a></p>","<p>下面我将介绍下我们官网开发使用的一些开源项目:</p>","<ul>","<li>Hexo 静态博客生成器</li>","<li>React 框架</li>","<li>UiKit 前端框架</li>","<li>Webpack 打包工具</li>","<li>Doxygen C++文档生成器</li>","</ul>","<p>我们详细介绍下每一种技术在我们的网站制作中承担的任务</p>","<h3 id=\"hexo-jing-tai-bo-ke-sheng-cheng-qi\"><a href=\"#hexo-jing-tai-bo-ke-sheng-cheng-qi\" class=\"header-anchor\">#</a><a href=\"#Hexo-静态博客生成器\" class=\"headerlink\" title=\"Hexo 静态博客生成器\"></a>Hexo 静态博客生成器</h3><p>感谢 <a href=\"http://www.hexo.io\" target=\"_blank\" rel=\"external\">Hexo.io</a> 项目研发团队为我们带来这么好用的博客生成器,官网主要是基于 Hexo 进行二次开发,在其基础之上我们实现了 zendAPI 自己的一套风格。<br>在开发过程中我们遇到的问题是 Hexo 本身是为博客而生成的,将其改造成一个官网的时候还是下了一点功夫。</p>","<h3 id=\"react-kuang-jia\"><a href=\"#react-kuang-jia\" class=\"header-anchor\">#</a><a href=\"#React-框架\" class=\"headerlink\" title=\"React 框架\"></a>React 框架</h3><p>为了让我们的网站后续维护简单,我使用 react 框架对整个网站进行了组件化设计,通过 webpack 进行编译生成 Hexo 所识别的 ejs 模板文件,采用 Hexo 静态生成数据写在网页中,react 进行读取然后渲染出来, 让 react 跟 Hexo 完美的结合在一起。</p>","<h3 id=\"uikit-qian-duan-kuang-jia\"><a href=\"#uikit-qian-duan-kuang-jia\" class=\"header-anchor\">#</a><a href=\"#UiKit-前端框架\" class=\"headerlink\" title=\"UiKit 前端框架\"></a>UiKit 前端框架</h3><p>首先我是一个后端开发工程师,我不是产品也不是设计也不是前端,所以我没有从零开始打造这个网站,而是经过了一些调研,在比较各种前端框架之后最终选择了 Uikit,这个框框非常轻量级,清爽的风格我很喜欢,我们整个网站界面就是基于它进行实现。<br>详情大家可以访问 Uikit 的官方网站:<a href=\"https://getuikit.com/\" target=\"_blank\" rel=\"external\">https://getuikit.com/</a> </p>","<h3 id=\"webpack-da-bao-gong-ju\"><a href=\"#webpack-da-bao-gong-ju\" class=\"header-anchor\">#</a><a href=\"#Webpack-打包工具\" class=\"headerlink\" title=\"Webpack 打包工具\"></a>Webpack 打包工具</h3><p>我们在开发网站的时候,后端采用了 Hexo 引擎, 但是我不是很喜欢 Ejs 的嵌套方式,感觉很乱,所以采用了 Rect 作为前端渲染框架,顺便我们就使用了 webpack 对整个前端页面进行打包,事实证明选择是对的,webpack 解决了很多不必要的麻烦,让维护更简单。</p>","<h3 id=\"doxygen-c-wen-dang-sheng-cheng-qi\"><a href=\"#doxygen-c-wen-dang-sheng-cheng-qi\" class=\"header-anchor\">#</a><a href=\"#Doxygen-C-文档生成器\" class=\"headerlink\" title=\"Doxygen C++ 文档生成器\"></a>Doxygen C++ 文档生成器</h3><p>Doxygen 是一个非常优秀的 C++ 文档生成器, 众所周知 C++ 的文法规则是相当复杂的,但是 Doxygen 识别的准确性还是相当高的,在我们官网中他主要承担的角色就是 zendAPI 的 api 栏目的生成。</p>","<p>为了与网站的整体风格做到和谐统一,我们没有使用 Doxygen 原本的 html 生成器,而是基于 xml 生成结果二次开发,根据 Doxygen 生成的 xml 文件,然后将数据进行解析之后暴露给 Hexo 博客生成器, 利用 Hexo 进行页面的生成,结果显示两者工作的非常完美,详情可以访问 <a href=\"http://www.zendapi.com/api\">文档中心</a> 进行体验。</p>","<p>但是在我们使用 Doxygen 过程中发现它其实在生成 xml 的时候有一些信息已经被探测出来了,但是没有在最终的 xml 中进行体现出来,针对这种情况我对 Doxygen 进行了二次修改,当然只是针对 zendAPI 项目有用的一些修改。修改之后的源码存放在 Github: <a href=\"https://www.github.com/zendapi/doxygen\" target=\"_blank\" rel=\"external\">zendAPI Doxygen</a> 里面。</p>",""],
24-
prev: null,
24+
prev: {"title":"我为什么要做 zendAPI 项目","url":"/2017/07/20/xiangmudongji/index.html"},
2525
next: null
2626
};
2727

2017/07/20/xiangmudongji/index.html

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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

Comments
 (0)