@@ -66,6 +66,7 @@ <h1>GitHub 漫游指南</h1>
66
66
< nav id ="TOC ">
67
67
< ul >
68
68
< li > < a href ="#前言 "> 前言</ a > < ul >
69
+ < li > < a href ="#关于作者 "> 关于作者</ a > </ li >
69
70
< li > < a href ="#我与github的故事 "> 我与GitHub的故事</ a > < ul >
70
71
< li > < a href ="#github与收获 "> GitHub与收获</ a > </ li >
71
72
< li > < a href ="#github与成长 "> GitHub与成长</ a > </ li >
@@ -258,6 +259,42 @@ <h1>GitHub 漫游指南</h1>
258
259
</ ul >
259
260
</ nav >
260
261
< h1 id ="前言 "> 前言</ h1 >
262
+ < h2 id ="关于作者 "> 关于作者</ h2 >
263
+ < p > 黄峰达(Phodal Huang)是一个创客、工程师、咨询师和作家。他毕业于西安文理学院电子信息工程专业,现作为一个咨询师就职于 ThoughtWorks 深圳。长期活跃于开源软件社区 GitHub,目前专注于物联网和前端领域。</ p >
264
+ < p > 作为一个开源软件作者,著有 Growth、Stepping、Lan、Echoesworks 等软件。其中开源学习应用 Growth,广受读者和用户好评,可在 APP Store 及各大 Android 应用商店下载。</ p >
265
+ < p > 作为一个技术作者,著有《自己动手设计物联网》(电子工业出版社)、《全栈应用开发:精益实践》(电子工业出版社,正在出版)。并在 GitHub 上开源有《Growth: 全栈增长工程师指南》、《GitHub 漫游指南》等七本电子书。</ p >
266
+ < p > 作为技术专家,他为英国 Packt 出版社审阅有物联网书籍《Learning IoT》、《Smart IoT》,前端书籍《Angular 2 Serices》、《Getting started with Angular》等技术书籍。</ p >
267
+ < p > 他热爱编程、写作、设计、旅行、hacking,你可以从他的个人网站:< a href ="https://www.phodal.com/ " class ="uri "> https://www.phodal.com/</ a > 了解到更多的内容。</ p >
268
+ < p > 其它相关信息:</ p >
269
+ < ul >
270
+ < li > 微博:< a href ="http://weibo.com/phodal " class ="uri "> http://weibo.com/phodal</ a > </ li >
271
+ < li > GitHub: < a href ="https://github.com/phodal " class ="uri "> https://github.com/phodal</ a > </ li >
272
+ < li > 知乎:< a href ="https://www.zhihu.com/people/phodal " class ="uri "> https://www.zhihu.com/people/phodal</ a > </ li >
273
+ < li > SegmentFault:< a href ="https://segmentfault.com/u/phodal " class ="uri "> https://segmentfault.com/u/phodal</ a > </ li >
274
+ </ ul >
275
+ < p > 当前为预览版,在使用的过程中遇到任何问题请及时与我联系。阅读过程中的问题,不妨在GitHub上提出来: < a href ="https://github.com/phodal/fe/issues "> Issues</ a > </ p >
276
+ < p > 阅读过程中遇到语法错误、拼写错误、技术错误等等,不妨来个Pull Request,这样可以帮助到其他阅读这本电子书的童鞋。</ p >
277
+ < p > 我的电子书:</ p >
278
+ < ul >
279
+ < li > 《< a href ="https://github.com/phodal/github-roam "> GitHub 漫游指南</ a > 》</ li >
280
+ < li > 《< a href ="https://github.com/phodal/fe "> 我的职业是前端工程师</ a > 》</ li >
281
+ < li > 《< a href ="https://github.com/phodal/serverless "> Serverless 架构应用开发指南</ a > 》</ li >
282
+ < li > 《< a href ="https://github.com/phodal/growth-ebook "> Growth: 全栈增长工程师指南</ a > 》</ li >
283
+ < li > 《< a href ="https://github.com/phodal/ideabook "> Phodal’s Idea实战指南</ a > 》</ li >
284
+ < li > 《< a href ="https://github.com/phodal/designiot "> 一步步搭建物联网系统</ a > 》</ li >
285
+ < li > 《< a href ="https://github.com/phodal/repractise "> RePractise</ a > 》</ li >
286
+ < li > 《< a href ="https://github.com/phodal/growth-in-action "> Growth: 全栈增长工程师实战</ a > 》</ li >
287
+ </ ul >
288
+ < p > 我的微信公众号:</ p >
289
+ < figure >
290
+ < img src ="./img/wechat.jpg " alt ="作者微信公众号:phodal-weixin " /> < figcaption > 作者微信公众号:phodal-weixin</ figcaption >
291
+ </ figure >
292
+ < p > 支持作者,可以加入作者的小密圈:</ p >
293
+ < figure >
294
+ < img src ="./img/xiaomiquan.jpg " alt ="小密圈 " /> < figcaption > 小密圈</ figcaption >
295
+ </ figure >
296
+ < p > 或者转账:</ p >
297
+ < p > < img src ="./img/alipay.png " alt ="支付宝 " /> < img src ="./img/wechat-pay.png " alt ="微信 " /> </ p >
261
298
< p > 我的GitHub主页上写着加入的时间——< code > Joined on Nov 8, 2010</ code > ,那时才大一,在那之后的那么长的日子里我都没有登录过。也许是因为我学的不是计算机,到了今天——< code > 2015.3.9</ code > ,我才发现这其实是程序员的社交网站。</ p >
262
299
< p > 过去,曾经有很长的一些时间我试过在GitHub上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在GitHub上也是很重要的。</ p >
263
300
< p > 在这里,我会试着将我在GitHub上学到的东西一一分享出来。</ p >
@@ -700,16 +737,16 @@ <h3 id="测试">测试</h3>
700
737
< p > 本地测试都通过了,于是我们添加了< code > Travis-CI</ code > 来跑我们的测试</ p >
701
738
< h3 id ="ci "> CI</ h3 >
702
739
< p > 虽然node.js不算是一门语言,但是因为我们用的node,下面的是一个简单的< code > .travis.yml</ code > 示例:</ p >
703
- < div class ="sourceCode "> < pre class ="sourceCode yml "> < code class ="sourceCode yaml "> < span class ="fu "> language:</ span > node_js
740
+ < div class ="sourceCode "> < pre class ="sourceCode yml "> < code class ="sourceCode yaml "> < span class ="fu "> language:</ span > < span class =" at " > node_js</ span >
704
741
< span class ="fu "> node_js:</ span >
705
742
< span class ="kw "> -</ span > < span class ="st "> "0.10"</ span >
706
743
707
744
< span class ="fu "> notifications:</ span >
708
- < span class ="fu "> email:</ span > false
745
+ < span class ="fu "> email:</ span > < span class =" at " > false</ span >
709
746
710
- < span class ="fu "> before_install:</ span > npm install -g grunt-cli
711
- < span class ="fu "> install:</ span > npm install
712
- < span class ="fu "> after_success:</ span > CODECLIMATE_REPO_TOKEN=321480822fc37deb0de70a11931b4cb6a2a3cc411680e8f4569936ac8ffbb0ab codeclimate < coverage/lcov.info</ code > </ pre > </ div >
747
+ < span class ="fu "> before_install:</ span > < span class =" at " > npm install -g grunt-cli</ span >
748
+ < span class ="fu "> install:</ span > < span class =" at " > npm install</ span >
749
+ < span class ="fu "> after_success:</ span > < span class =" at " > CODECLIMATE_REPO_TOKEN=321480822fc37deb0de70a11931b4cb6a2a3cc411680e8f4569936ac8ffbb0ab codeclimate < coverage/lcov.info</ span > </ code > </ pre > </ div >
713
750
< p > 代码来源: < a href ="https://github.com/phodal/lettuce " class ="uri "> https://github.com/phodal/lettuce</ a > </ p >
714
751
< p > 我们把这些集成到< code > README.md</ code > 之后,就有了之前那张图。</ p >
715
752
< p > CI对于一个开发者在不同城市开发同一项目上来说是很重要的,这意味着当你添加的部分功能有测试覆盖的时候,项目代码会更加强壮。</ p >
@@ -850,12 +887,12 @@ <h3 id="代码模块化">代码模块化</h3>
850
887
< p > 当然函数也是一个对象。</ p >
851
888
< h3 id ="自动化测试 "> 自动化测试</ h3 >
852
889
< p > 一直习惯用Travis CI,于是也继续用Travis Ci,< code > .travis.yml</ code > 配置如下所示:</ p >
853
- < div class ="sourceCode "> < pre class ="sourceCode yml "> < code class ="sourceCode yaml "> < span class ="fu "> language:</ span > node_js
890
+ < div class ="sourceCode "> < pre class ="sourceCode yml "> < code class ="sourceCode yaml "> < span class ="fu "> language:</ span > < span class =" at " > node_js</ span >
854
891
< span class ="fu "> node_js:</ span >
855
892
< span class ="kw "> -</ span > < span class ="st "> "0.10"</ span >
856
893
857
894
< span class ="fu "> notifications:</ span >
858
- < span class ="fu "> email:</ span > false
895
+ < span class ="fu "> email:</ span > < span class =" at " > false</ span >
859
896
860
897
< span class ="fu "> branches:</ span >
861
898
< span class ="fu "> only:</ span >
@@ -2227,7 +2264,7 @@ <h3 id="数据导入">数据导入</h3>
2227
2264
date_re < span class ="op "> =</ span > re.< span class ="bu "> compile</ span > (< span class ="vs "> r"([0-9]</ span > < span class ="sc "> {4}</ span > < span class ="vs "> )-([0-9]</ span > < span class ="sc "> {2}</ span > < span class ="vs "> )-([0-9]</ span > < span class ="sc "> {2}</ span > < span class ="vs "> )-([0-9]+)\.json.gz"</ span > )
2228
2265
2229
2266
fn_template < span class ="op "> =</ span > os.path.join(< span class ="st "> "march"</ span > ,
2230
- < span class ="co "> "{year}- {month:02d}- {day:02d}- {n}.json.gz"</ span > )
2267
+ < span class ="st "> "</ span > < span class =" sc " > {year}</ span > < span class =" st " > - </ span > < span class =" sc " > {month:02d}</ span > < span class =" st " > - </ span > < span class =" sc " > {day:02d}</ span > < span class =" st " > - </ span > < span class =" sc " > {n}</ span > < span class =" st " > .json.gz"</ span > )
2231
2268
kwargs < span class ="op "> =</ span > {< span class ="st "> "year"</ span > : year, < span class ="st "> "month"</ span > : month, < span class ="st "> "day"</ span > : day, < span class ="st "> "n"</ span > : < span class ="st "> "*"</ span > }
2232
2269
filenames < span class ="op "> =</ span > glob.glob(fn_template.< span class ="bu "> format</ span > (< span class ="op "> **</ span > kwargs))
2233
2270
@@ -2258,7 +2295,7 @@ <h3 id="redis">Redis</h3>
2258
2295
pipe.execute()</ code > </ pre > </ div >
2259
2296
< p > 系统返回了< code > 227.0</ code > ,试试别人。</ p >
2260
2297
< div class ="sourceCode "> < pre class ="sourceCode bash "> < code class ="sourceCode bash "> < span class ="op "> >>></ span > < span class ="ex "> pipe.zscore</ span > (< span class ="st "> 'osrc:user'</ span > ,< span class ="st "> "dfm"</ span > )
2261
- < span class ="op "> <</ span > < span class ="ex "> redis.client.StrictPipeline</ span > object at 0x104fa7f < span class ="op "> 50 ></ span >
2298
+ < span class ="op "> <</ span > < span class ="ex "> redis.client.StrictPipeline</ span > object at 0x104fa7f50 < span class ="op "> ></ span >
2262
2299
< span class ="op "> >>></ span > < span class ="ex "> pipe.execute</ span > ()
2263
2300
[< span class ="ex "> 425.0</ span > ]
2264
2301
< span class ="op "> >>></ span > </ code > </ pre > </ div >
0 commit comments