没有合适的资源?快使用搜索试试~ 我知道了~
首页GitHub漫游指南【精编带目录】-快速入门git-非常推荐
资源详情
资源评论
资源推荐

⽬录 ⽬录
⽬录
前⾔ 5
我与 GitHub 的故事 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
GitHub 与收获 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
GitHub 与成长 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
为什么你应该深⼊ GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
⽅便⼯作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
获得⼀份⼯作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
扩⼤交际 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Git 基本知识与 GitHub 使⽤ 8
Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Git 初⼊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
版本管理与软件部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
GitHub 与 Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
在 GitHub 创建项⽬ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
GitHub 流⾏项⽬分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Pull Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
我的第⼀个 PR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
构建 GitHub 项⽬ 15
如何⽤好 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
敏捷软件开发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
CI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
代码质量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1

⽬录 ⽬录
模块分离与测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
代码模块化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
⾃动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Jshint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Mocha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
测试⽰例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
代码质量与重构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Code Climate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
代码的坏味道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
创建项⽬⽂档 29
README . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
在线⽂档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
可⽤⽰例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
测试 33
TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
⼀次测试驱动开发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
说说 TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
TDD 思考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
功能测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
轻量级⽹站测试 TWill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Twill 登陆测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Twill 测试脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Fake Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
重构 39
为什么重构? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
重构 uMarkdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2

⽬录 ⽬录
代码说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Intellij Idea 重构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Extract Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Inline Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Pull Members Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
重构之以查询取代临时变量 . . . . . . . . . . . . . . . . . . . . . . . . . . 46
如何在 GitHub“寻找灵感 (fork)” 50
Lettuce 构建过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
计划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
实现第⼀个需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
实现第⼆个需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
GitHub ⽤户分析 55
⽣成图表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
数据解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
每周分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
python github 每周情况分析 . . . . . . . . . . . . . . . . . . . . . . . . . 59
Python 数据分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Python Matplotlib 图表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
存储到数据库中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
SQLite3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
数据导⼊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Redis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
邻近算法与相似⽤户 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3

⽬录 ⽬录
GitHub 连击 71
100 天 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
40 天的提升 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
100 天的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
140 天的希冀 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
200 天的 Showcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
⼀些项⽬简述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
google map solr polygon 搜索 . . . . . . . . . . . . . . . . . . . . . . . . . 77
技能树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
365 天 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
编程的基础能⼒ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
技术与框架设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
领域与练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
其他 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
500 天 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
500 天与 10000 ⼩时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
编程的情绪周期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
有意图的练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
预见性练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4

前⾔
前⾔
我的 GitHub 主页上写着加⼊的时间——Joined on Nov 8, 2010,那时才⼤
⼀,在那之后的那长⽇⼦⾥我都没有过到。也许是因为我学的不是计算机,到了今
天——2015.3.9,我也发现这其实是程序员的社交⽹站。
过去,曾经有很长的⼀些时间我试过在 GitHub 上连击,也试着去了解别⼈是如何
⽤好这个⼯具的。当然粉丝在 GitHub 上也是很重要的。
在这⾥,我会试着将我在 GitHub 上学到的东西⼀⼀分享出来。
我与 GitHub 的故事
在我⼤四找⼯作的时候,试图去寻找⼀份硬件、物联⽹相关的⼯作 (ps: 专业是电⼦
信息⼯程)。尽管简历上写得满满的各种经历、经验,然⽽并没有卵⽤。跑了⼏场校园招
聘会后,⼗份简历 (ps: 事先已经有⼼⾥准备) ⼀个也没有投出去——因为学校直接被拒。
我对霸⾯什么的⼀点兴趣都没有,千⾥马需要伯乐。后来,我加⼊了 Martin Flower 所
在的公司,当然这是后话了。
这是⼀个残酷的世界,在学⽣时代,如果你长得不帅不⾼的话,那么多数的附加技
能都是⽩搭 (ps: 通常富的是看不到这篇⽂章的)。在⼯作时期,如果你上家没有名⽓,那
么将会影响你下⼀份⼯作的待遇。⽽,很多东西却会改变这些,GitHub 就是其中⼀个。
注册 GitHub 的时候⼤概是⼤⼀的时候,我熟悉的时候已经是⼤四了,现在已经毕
业⼀年了。在过去的近两年⾥,我试着以⼏个维度在 GitHub 上创建项⽬:
1. 快速上⼿框架来实战,即 demo
2. 重构别⼈的代码
3. 创建⾃⼰可⽤的框架
4. 快速构建⼤型应⽤
5. 构建通⽤的框架
GitHub 与收获
先说说与技能⽆关的收获吧,毕业设计做的是⼀个《最⼩物联⽹系统》,考虑到我们
专业⽼师没有这⽅⾯知识,答辩时会带来问题,尽量往这⽅⾯靠拢。当我毕业后,这个
项⽬已经有过百个 star 了,这样易上⼿的东西还是⽐较受欢迎的 (ps: 不过这种硬件相
关的项⽬通常受限于 GitHub 上硬件开发⼯程师⽐较少的困扰)。
毕业后⼀个⽉收到 PACKT 出版社的邮件 (ps: 他们是在 github 上找到我的),内容
5
剩余89页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0