mirror of
https://github.com/phodal/github
synced 2026-05-22 08:38:23 +00:00
Adjust build github projecT
This commit is contained in:
parent
43e8803a95
commit
e136ae7a48
12 changed files with 180 additions and 206 deletions
|
|
@ -74,8 +74,8 @@
|
|||
|
||||
因而,在Github寻找合适的候选人,已经是一种趋势。
|
||||
|
||||
###扩大人脉
|
||||
###扩大交际
|
||||
|
||||
如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -1,49 +1,5 @@
|
|||
#Git基本知识与Github使用
|
||||
|
||||
##Github
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
> GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner
|
||||
使用Ruby on Rails编写而成。
|
||||
|
||||
当然让我们看看官方的介绍:
|
||||
|
||||
> GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.
|
||||
|
||||
|
||||
它还是什么?
|
||||
|
||||
- 网站
|
||||
- 免费博客
|
||||
- 管理配置文件
|
||||
- 收集资料
|
||||
- 简历
|
||||
- 管理代码片段
|
||||
- 托管编程环境
|
||||
- 写作
|
||||
|
||||
等等。看上去像是大餐,但是你还需要了解点什么?
|
||||
|
||||
###版本管理与软件部署
|
||||
|
||||
jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以看到如下的提交信息:
|
||||
|
||||
- Ajax: Always use script injection in globalEval … bbdfbb4
|
||||
- Effects: Reintroduce use of requestAnimationFrame … 72119e0
|
||||
- Effects: Improve raf logic … 708764f
|
||||
- Build: Move test to appropriate module fbdbb6f
|
||||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
|
||||
> Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
|
||||
|
||||
> GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
|
||||
|
||||
[^jQuery]: jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。
|
||||
|
||||
##Git
|
||||
|
||||
从一般开发者的角度来看,git有以下功能:
|
||||
|
|
@ -108,6 +64,49 @@ $git status
|
|||
|
||||
可以看到状态的变化是从黄色到绿色,即unstage到add。
|
||||
|
||||
|
||||
##Github
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
> GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner
|
||||
使用Ruby on Rails编写而成。
|
||||
|
||||
当然让我们看看官方的介绍:
|
||||
|
||||
> GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.
|
||||
|
||||
|
||||
它还是什么?
|
||||
|
||||
- 网站
|
||||
- 免费博客
|
||||
- 管理配置文件
|
||||
- 收集资料
|
||||
- 简历
|
||||
- 管理代码片段
|
||||
- 托管编程环境
|
||||
- 写作
|
||||
|
||||
等等。看上去像是大餐,但是你还需要了解点什么?
|
||||
|
||||
###版本管理与软件部署
|
||||
|
||||
jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以看到如下的提交信息:
|
||||
|
||||
- Ajax: Always use script injection in globalEval … bbdfbb4
|
||||
- Effects: Reintroduce use of requestAnimationFrame … 72119e0
|
||||
- Effects: Improve raf logic … 708764f
|
||||
- Build: Move test to appropriate module fbdbb6f
|
||||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
|
||||
> Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
|
||||
|
||||
> GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
|
||||
|
||||
###在Github创建项目
|
||||
|
||||
接着,我们试试在上面创建一个项目:
|
||||
|
|
@ -178,7 +177,7 @@ C | 2
|
|||
- 资料收集: 如``free programming books``,``You-Dont-Know-JS``,``Font-Awesome``
|
||||
- 其他:简历如``Resume``
|
||||
|
||||
##创建Pull Request
|
||||
##Pull Request
|
||||
|
||||
除了创建项目之外,我们也可以创建Pull Request来做贡献。
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#构建Github项目
|
||||
|
||||
##用好Github
|
||||
##如何用好Github
|
||||
|
||||
如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
|
||||
|
|
@ -155,13 +155,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
|
||||
这就意味着我们可以对上面的代码进行重构,他们是重复的代码。
|
||||
|
||||
###重构
|
||||
|
||||
不想在这里说太多关于``重构``的东西,可以参考Martin Flower的《重构》一书去多了解一些重构的细节。
|
||||
|
||||
这时想说的是,只有代码被测试覆盖住了,那么才能保证重构的过程没有出错。
|
||||
|
||||
##从模块分离到测试
|
||||
##模块分离与测试
|
||||
|
||||
在之前说到
|
||||
|
||||
|
|
@ -184,7 +178,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
|
||||
等等。
|
||||
|
||||
###Skillock模块化
|
||||
###代码模块化
|
||||
|
||||
在SkillTree的源码里,大致分为三部分:
|
||||
|
||||
|
|
@ -342,7 +336,7 @@ branches:
|
|||
Link Test
|
||||
✓ should return link label & url
|
||||
|
||||
###测试用例
|
||||
###测试示例
|
||||
|
||||
简单地看一下Book的测试:
|
||||
|
||||
|
|
@ -404,7 +398,7 @@ it('should return book label & url', function () {
|
|||
|
||||
最后的断言,也算是测试的核心,保证测试是有用的。
|
||||
|
||||
##Code Climate来clean code与重构
|
||||
##代码质量与重构
|
||||
|
||||
- 当你写了一大堆代码,你没有意识到里面有一大堆重复。
|
||||
- 当你写了一大堆测试,却不知道覆盖率有多少。
|
||||
|
|
@ -546,4 +540,4 @@ SQLiteHelper.prototype.getData = function (url, callback) {
|
|||
|
||||
重构完后的代码比原来还长,这似乎是个问题~~
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -69,4 +69,4 @@ React.render(
|
|||
|
||||
而不是需要繁琐的步骤才能进行下一步。
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -234,4 +234,4 @@ req.end();
|
|||
});
|
||||
});
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -408,4 +408,4 @@ public class replaceTemp {
|
|||
}
|
||||
```
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -321,4 +321,4 @@
|
|||
3. 设计
|
||||
4. 。。。
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
|
@ -169,5 +169,4 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
};
|
||||
```
|
||||
|
||||
|
||||
<hr>
|
||||
---
|
||||
122
github-roam.md
122
github-roam.md
|
|
@ -75,58 +75,14 @@
|
|||
|
||||
因而,在Github寻找合适的候选人,已经是一种趋势。
|
||||
|
||||
###扩大人脉
|
||||
###扩大交际
|
||||
|
||||
如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#Git基本知识与Github使用
|
||||
|
||||
##Github
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
> GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner
|
||||
使用Ruby on Rails编写而成。
|
||||
|
||||
当然让我们看看官方的介绍:
|
||||
|
||||
> GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.
|
||||
|
||||
|
||||
它还是什么?
|
||||
|
||||
- 网站
|
||||
- 免费博客
|
||||
- 管理配置文件
|
||||
- 收集资料
|
||||
- 简历
|
||||
- 管理代码片段
|
||||
- 托管编程环境
|
||||
- 写作
|
||||
|
||||
等等。看上去像是大餐,但是你还需要了解点什么?
|
||||
|
||||
###版本管理与软件部署
|
||||
|
||||
jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以看到如下的提交信息:
|
||||
|
||||
- Ajax: Always use script injection in globalEval … bbdfbb4
|
||||
- Effects: Reintroduce use of requestAnimationFrame … 72119e0
|
||||
- Effects: Improve raf logic … 708764f
|
||||
- Build: Move test to appropriate module fbdbb6f
|
||||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
|
||||
> Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
|
||||
|
||||
> GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
|
||||
|
||||
[^jQuery]: jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。
|
||||
|
||||
##Git
|
||||
|
||||
从一般开发者的角度来看,git有以下功能:
|
||||
|
|
@ -191,6 +147,49 @@ $git status
|
|||
|
||||
可以看到状态的变化是从黄色到绿色,即unstage到add。
|
||||
|
||||
|
||||
##Github
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
> GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner
|
||||
使用Ruby on Rails编写而成。
|
||||
|
||||
当然让我们看看官方的介绍:
|
||||
|
||||
> GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.
|
||||
|
||||
|
||||
它还是什么?
|
||||
|
||||
- 网站
|
||||
- 免费博客
|
||||
- 管理配置文件
|
||||
- 收集资料
|
||||
- 简历
|
||||
- 管理代码片段
|
||||
- 托管编程环境
|
||||
- 写作
|
||||
|
||||
等等。看上去像是大餐,但是你还需要了解点什么?
|
||||
|
||||
###版本管理与软件部署
|
||||
|
||||
jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以看到如下的提交信息:
|
||||
|
||||
- Ajax: Always use script injection in globalEval … bbdfbb4
|
||||
- Effects: Reintroduce use of requestAnimationFrame … 72119e0
|
||||
- Effects: Improve raf logic … 708764f
|
||||
- Build: Move test to appropriate module fbdbb6f
|
||||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
|
||||
> Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
|
||||
|
||||
> GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
|
||||
|
||||
###在Github创建项目
|
||||
|
||||
接着,我们试试在上面创建一个项目:
|
||||
|
|
@ -261,7 +260,7 @@ C | 2
|
|||
- 资料收集: 如``free programming books``,``You-Dont-Know-JS``,``Font-Awesome``
|
||||
- 其他:简历如``Resume``
|
||||
|
||||
##创建Pull Request
|
||||
##Pull Request
|
||||
|
||||
除了创建项目之外,我们也可以创建Pull Request来做贡献。
|
||||
|
||||
|
|
@ -304,7 +303,7 @@ CLA即Contributor License Agreement,在为一些大的组织、机构提交Pul
|
|||
|
||||
#构建Github项目
|
||||
|
||||
##用好Github
|
||||
##如何用好Github
|
||||
|
||||
如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
|
||||
|
|
@ -459,13 +458,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
|
||||
这就意味着我们可以对上面的代码进行重构,他们是重复的代码。
|
||||
|
||||
###重构
|
||||
|
||||
不想在这里说太多关于``重构``的东西,可以参考Martin Flower的《重构》一书去多了解一些重构的细节。
|
||||
|
||||
这时想说的是,只有代码被测试覆盖住了,那么才能保证重构的过程没有出错。
|
||||
|
||||
##从模块分离到测试
|
||||
##模块分离与测试
|
||||
|
||||
在之前说到
|
||||
|
||||
|
|
@ -488,7 +481,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
|
||||
等等。
|
||||
|
||||
###Skillock模块化
|
||||
###代码模块化
|
||||
|
||||
在SkillTree的源码里,大致分为三部分:
|
||||
|
||||
|
|
@ -646,7 +639,7 @@ branches:
|
|||
Link Test
|
||||
✓ should return link label & url
|
||||
|
||||
###测试用例
|
||||
###测试示例
|
||||
|
||||
简单地看一下Book的测试:
|
||||
|
||||
|
|
@ -708,7 +701,7 @@ it('should return book label & url', function () {
|
|||
|
||||
最后的断言,也算是测试的核心,保证测试是有用的。
|
||||
|
||||
##Code Climate来clean code与重构
|
||||
##代码质量与重构
|
||||
|
||||
- 当你写了一大堆代码,你没有意识到里面有一大堆重复。
|
||||
- 当你写了一大堆测试,却不知道覆盖率有多少。
|
||||
|
|
@ -850,7 +843,7 @@ SQLiteHelper.prototype.getData = function (url, callback) {
|
|||
|
||||
重构完后的代码比原来还长,这似乎是个问题~~
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#创建项目文档
|
||||
|
||||
|
|
@ -923,7 +916,7 @@ React.render(
|
|||
|
||||
而不是需要繁琐的步骤才能进行下一步。
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#测试
|
||||
|
||||
|
|
@ -1161,7 +1154,7 @@ req.end();
|
|||
});
|
||||
});
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#重构
|
||||
|
||||
|
|
@ -1573,7 +1566,7 @@ public class replaceTemp {
|
|||
}
|
||||
```
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#Github连击
|
||||
|
||||
|
|
@ -1898,7 +1891,7 @@ public class replaceTemp {
|
|||
3. 设计
|
||||
4. 。。。
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#如何在Github"寻找灵感(fork)"
|
||||
|
||||
|
|
@ -2071,8 +2064,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
};
|
||||
```
|
||||
|
||||
|
||||
<hr>
|
||||
---
|
||||
|
||||
#Github用户分析
|
||||
|
||||
|
|
|
|||
142
index.html
142
index.html
|
|
@ -71,40 +71,39 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<li><a href="#为什么你应该深入github">为什么你应该深入Github</a><ul>
|
||||
<li><a href="#方便工作">方便工作</a></li>
|
||||
<li><a href="#获得一份工作">获得一份工作</a></li>
|
||||
<li><a href="#扩大人脉">扩大人脉</a></li>
|
||||
<li><a href="#扩大交际">扩大交际</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><a href="#git基本知识与github使用">Git基本知识与Github使用</a><ul>
|
||||
<li><a href="#git">Git</a><ul>
|
||||
<li><a href="#git初入">Git初入</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#github">Github</a><ul>
|
||||
<li><a href="#版本管理与软件部署">版本管理与软件部署</a></li>
|
||||
<li><a href="#github与git">Github与Git</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#git">Git</a><ul>
|
||||
<li><a href="#git初入">Git初入</a></li>
|
||||
<li><a href="#在github创建项目">在Github创建项目</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#github流行项目分析">Github流行项目分析</a></li>
|
||||
<li><a href="#创建pull-request">创建Pull Request</a><ul>
|
||||
<li><a href="#pull-request">Pull Request</a><ul>
|
||||
<li><a href="#我的第一个pr">我的第一个PR</a></li>
|
||||
<li><a href="#cla">CLA</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><a href="#构建github项目">构建Github项目</a><ul>
|
||||
<li><a href="#用好github">用好Github</a><ul>
|
||||
<li><a href="#如何用好github">如何用好Github</a><ul>
|
||||
<li><a href="#敏捷软件开发">敏捷软件开发</a></li>
|
||||
<li><a href="#测试">测试</a></li>
|
||||
<li><a href="#ci">CI</a></li>
|
||||
<li><a href="#代码质量">代码质量</a></li>
|
||||
<li><a href="#重构">重构</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#从模块分离到测试">从模块分离到测试</a><ul>
|
||||
<li><a href="#skillock模块化">Skillock模块化</a></li>
|
||||
<li><a href="#模块分离与测试">模块分离与测试</a><ul>
|
||||
<li><a href="#代码模块化">代码模块化</a></li>
|
||||
<li><a href="#自动化测试">自动化测试</a></li>
|
||||
<li><a href="#jshint">Jshint</a></li>
|
||||
<li><a href="#mocha">Mocha</a></li>
|
||||
<li><a href="#测试用例">测试用例</a></li>
|
||||
<li><a href="#测试示例">测试示例</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#code-climate来clean-code与重构">Code Climate来clean code与重构</a><ul>
|
||||
<li><a href="#代码质量与重构">代码质量与重构</a><ul>
|
||||
<li><a href="#code-climate">Code Climate</a></li>
|
||||
<li><a href="#代码的坏味道">代码的坏味道</a></li>
|
||||
</ul></li>
|
||||
|
|
@ -126,7 +125,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
</ul></li>
|
||||
<li><a href="#fake-server">Fake Server</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#重构-1">重构</a><ul>
|
||||
<li><a href="#重构">重构</a><ul>
|
||||
<li><a href="#为什么重构">为什么重构?</a></li>
|
||||
<li><a href="#重构umarkdown">重构uMarkdown</a><ul>
|
||||
<li><a href="#代码说明">代码说明</a></li>
|
||||
|
|
@ -235,48 +234,10 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<h3 id="获得一份工作">获得一份工作</h3>
|
||||
<p>越来越多的人因为Github获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。</p>
|
||||
<p>因而,在Github寻找合适的候选人,已经是一种趋势。</p>
|
||||
<h3 id="扩大人脉">扩大人脉</h3>
|
||||
<h3 id="扩大交际">扩大交际</h3>
|
||||
<p>如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果</p>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="git基本知识与github使用">Git基本知识与Github使用</h1>
|
||||
<h2 id="github">Github</h2>
|
||||
<p>Wiki百科上是这么说的</p>
|
||||
<blockquote>
|
||||
<p>GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner 使用Ruby on Rails编写而成。</p>
|
||||
</blockquote>
|
||||
<p>当然让我们看看官方的介绍:</p>
|
||||
<blockquote>
|
||||
<p>GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.</p>
|
||||
</blockquote>
|
||||
<p>它还是什么?</p>
|
||||
<ul>
|
||||
<li>网站</li>
|
||||
<li>免费博客</li>
|
||||
<li>管理配置文件</li>
|
||||
<li>收集资料</li>
|
||||
<li>简历</li>
|
||||
<li>管理代码片段</li>
|
||||
<li>托管编程环境</li>
|
||||
<li>写作</li>
|
||||
</ul>
|
||||
<p>等等。看上去像是大餐,但是你还需要了解点什么?</p>
|
||||
<h3 id="版本管理与软件部署">版本管理与软件部署</h3>
|
||||
<p>jQuery<a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a>在发布版本<code>2.1.3</code>,一共有152个commit。我们可以看到如下的提交信息:</p>
|
||||
<ul>
|
||||
<li>Ajax: Always use script injection in globalEval … bbdfbb4</li>
|
||||
<li>Effects: Reintroduce use of requestAnimationFrame … 72119e0</li>
|
||||
<li>Effects: Improve raf logic … 708764f</li>
|
||||
<li>Build: Move test to appropriate module fbdbb6f</li>
|
||||
<li>Build: Update commitplease dev dependency</li>
|
||||
<li>…</li>
|
||||
</ul>
|
||||
<h3 id="github与git">Github与Git</h3>
|
||||
<blockquote>
|
||||
<p>Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。</p>
|
||||
</blockquote>
|
||||
<h2 id="git">Git</h2>
|
||||
<p>从一般开发者的角度来看,git有以下功能:</p>
|
||||
<ol type="1">
|
||||
|
|
@ -317,6 +278,44 @@ $ git config --global user.email "电子邮箱"</code></pre>
|
|||
<img src="./img/after-add.png" alt="After add" /><figcaption>After add</figcaption>
|
||||
</figure>
|
||||
<p>可以看到状态的变化是从黄色到绿色,即unstage到add。</p>
|
||||
<h2 id="github">Github</h2>
|
||||
<p>Wiki百科上是这么说的</p>
|
||||
<blockquote>
|
||||
<p>GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner 使用Ruby on Rails编写而成。</p>
|
||||
</blockquote>
|
||||
<p>当然让我们看看官方的介绍:</p>
|
||||
<blockquote>
|
||||
<p>GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over eight million people use GitHub to build amazing things together.</p>
|
||||
</blockquote>
|
||||
<p>它还是什么?</p>
|
||||
<ul>
|
||||
<li>网站</li>
|
||||
<li>免费博客</li>
|
||||
<li>管理配置文件</li>
|
||||
<li>收集资料</li>
|
||||
<li>简历</li>
|
||||
<li>管理代码片段</li>
|
||||
<li>托管编程环境</li>
|
||||
<li>写作</li>
|
||||
</ul>
|
||||
<p>等等。看上去像是大餐,但是你还需要了解点什么?</p>
|
||||
<h3 id="版本管理与软件部署">版本管理与软件部署</h3>
|
||||
<p>jQuery[^jQuery]在发布版本<code>2.1.3</code>,一共有152个commit。我们可以看到如下的提交信息:</p>
|
||||
<ul>
|
||||
<li>Ajax: Always use script injection in globalEval … bbdfbb4</li>
|
||||
<li>Effects: Reintroduce use of requestAnimationFrame … 72119e0</li>
|
||||
<li>Effects: Improve raf logic … 708764f</li>
|
||||
<li>Build: Move test to appropriate module fbdbb6f</li>
|
||||
<li>Build: Update commitplease dev dependency</li>
|
||||
<li>…</li>
|
||||
</ul>
|
||||
<h3 id="github与git">Github与Git</h3>
|
||||
<blockquote>
|
||||
<p>Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。</p>
|
||||
</blockquote>
|
||||
<h3 id="在github创建项目">在Github创建项目</h3>
|
||||
<p>接着,我们试试在上面创建一个项目:</p>
|
||||
<figure>
|
||||
|
|
@ -453,7 +452,7 @@ git push -u origin master</code></pre>
|
|||
<li>资料收集: 如<code>free programming books</code>,<code>You-Dont-Know-JS</code>,<code>Font-Awesome</code></li>
|
||||
<li>其他:简历如<code>Resume</code></li>
|
||||
</ul>
|
||||
<h2 id="创建pull-request">创建Pull Request</h2>
|
||||
<h2 id="pull-request">Pull Request</h2>
|
||||
<p>除了创建项目之外,我们也可以创建Pull Request来做贡献。</p>
|
||||
<h3 id="我的第一个pr">我的第一个PR</h3>
|
||||
<p>我的第一个PR是给一个小的Node的CoAP相关的库的Pull Request。原因比较简单,是因为它的README.md写错了,导致我无法办法进行下一步。</p>
|
||||
|
|
@ -482,7 +481,7 @@ git push -u origin master</code></pre>
|
|||
<p>他们都要求我签署CLA。</p>
|
||||
<hr>
|
||||
<h1 id="构建github项目">构建Github项目</h1>
|
||||
<h2 id="用好github">用好Github</h2>
|
||||
<h2 id="如何用好github">如何用好Github</h2>
|
||||
<p>如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.</p>
|
||||
<h3 id="敏捷软件开发">敏捷软件开发</h3>
|
||||
<p>显然我是在扯淡,这和敏捷软件开发没有什么关系。不过我也不知道瀑布流是怎样的。说说我所知道的一个项目的组成吧:</p>
|
||||
|
|
@ -618,10 +617,7 @@ after_success: CODECLIMATE_REPO_TOKEN=321480822fc37deb0de70a11931b4cb6a2a3cc4116
|
|||
<li>Similar code found in two :expression_statement nodes (mass = 86)</li>
|
||||
</ul>
|
||||
<p>这就意味着我们可以对上面的代码进行重构,他们是重复的代码。</p>
|
||||
<h3 id="重构">重构</h3>
|
||||
<p>不想在这里说太多关于<code>重构</code>的东西,可以参考Martin Flower的《重构》一书去多了解一些重构的细节。</p>
|
||||
<p>这时想说的是,只有代码被测试覆盖住了,那么才能保证重构的过程没有出错。</p>
|
||||
<h2 id="从模块分离到测试">从模块分离到测试</h2>
|
||||
<h2 id="模块分离与测试">模块分离与测试</h2>
|
||||
<p>在之前说到</p>
|
||||
<blockquote>
|
||||
<p>奋斗了近半个月后,将fork的代码读懂、重构、升级版本、调整,添加新功能、添加测试、添加CI、添加分享之后,终于almost finish。</p>
|
||||
|
|
@ -641,7 +637,7 @@ after_success: CODECLIMATE_REPO_TOKEN=321480822fc37deb0de70a11931b4cb6a2a3cc4116
|
|||
<li>自动部署</li>
|
||||
</ul>
|
||||
<p>等等。</p>
|
||||
<h3 id="skillock模块化">Skillock模块化</h3>
|
||||
<h3 id="代码模块化">代码模块化</h3>
|
||||
<p>在SkillTree的源码里,大致分为三部分:</p>
|
||||
<ul>
|
||||
<li>namespace函数: 故名思意</li>
|
||||
|
|
@ -755,7 +751,7 @@ line 21 col 62 Strings must use singlequote.</code></pre>
|
|||
✓ should return book label & url
|
||||
Link Test
|
||||
✓ should return link label & url</code></pre>
|
||||
<h3 id="测试用例">测试用例</h3>
|
||||
<h3 id="测试示例">测试示例</h3>
|
||||
<p>简单地看一下Book的测试:</p>
|
||||
<div class="sourceCode"><pre class="sourceCode javascript"><code class="sourceCode javascript"><span class="co">/* global describe, it */</span>
|
||||
|
||||
|
|
@ -807,7 +803,7 @@ line 21 col 62 Strings must use singlequote.</code></pre>
|
|||
<span class="op">}</span>)<span class="op">;</span>
|
||||
<span class="op">}</span>)<span class="op">;</span></code></pre></div>
|
||||
<p>最后的断言,也算是测试的核心,保证测试是有用的。</p>
|
||||
<h2 id="code-climate来clean-code与重构">Code Climate来clean code与重构</h2>
|
||||
<h2 id="代码质量与重构">代码质量与重构</h2>
|
||||
<ul>
|
||||
<li>当你写了一大堆代码,你没有意识到里面有一大堆重复。</li>
|
||||
<li>当你写了一大堆测试,却不知道覆盖率有多少。</li>
|
||||
|
|
@ -1015,7 +1011,7 @@ line 21 col 62 Strings must use singlequote.</code></pre>
|
|||
<span class="va">SQLiteHelper</span>.<span class="va">prototype</span>.<span class="at">basic</span>(sql_command<span class="op">,</span> callback)<span class="op">;</span>
|
||||
<span class="op">};</span></code></pre></div>
|
||||
<p>重构完后的代码比原来还长,这似乎是个问题~~</p>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="创建项目文档">创建项目文档</h1>
|
||||
<p>我们需要为我们的项目创建一个文档,通常我们可以将核心代码以外的东西都称为文档:</p>
|
||||
<ol type="1">
|
||||
|
|
@ -1074,7 +1070,7 @@ React.render(
|
|||
document.getElementById('container')
|
||||
);</code></pre>
|
||||
<p>而不是需要繁琐的步骤才能进行下一步。</p>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="测试-1">测试</h1>
|
||||
<h2 id="一次测试驱动开发">一次测试驱动开发</h2>
|
||||
<p>虽然接触的TDD时间不算短,然而真正在实践TDD上的时候少之又少。除去怎么教人TDD,就是与人结对编程时的switch,或许是受限于当前的开发流程。</p>
|
||||
|
|
@ -1242,8 +1238,8 @@ beforeEach(function() {
|
|||
.toEqual(data);
|
||||
});
|
||||
});</code></pre>
|
||||
<hr>
|
||||
<h1 id="重构-1">重构</h1>
|
||||
<hr />
|
||||
<h1 id="重构">重构</h1>
|
||||
<p>或许你应该知道了,重构是怎样的,你也知道重构能带来什么。在我刚开始学重构和设计模式的时候,我需要去找一些好的示例,以便于我更好的学习。有时候不得不创造一些更好的场景,来实现这些功能。</p>
|
||||
<p>有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到Github上,也就有了<a href="https://github.com/artisanstack">Artisan Stack</a> 计划。</p>
|
||||
<p>每个程序员都不可避免地是一个Coder,一个没有掌握好技能的Coder,算不上是手工艺人,但是是手工人。</p>
|
||||
|
|
@ -1466,7 +1462,7 @@ str <span class="op">=</span> <span class="at">tableHandler</span>(str<span clas
|
|||
}
|
||||
}
|
||||
}</code></pre></div>
|
||||
<h4 id="重构-2">重构</h4>
|
||||
<h4 id="重构-1">重构</h4>
|
||||
<p>选中<code>basePrice</code>很愉快地拿鼠标点上面的重构</p>
|
||||
<figure>
|
||||
<img src="./img/replace.jpg" alt="Replace Temp With Query" /><figcaption>Replace Temp With Query</figcaption>
|
||||
|
|
@ -1522,7 +1518,7 @@ public class replaceTemp {
|
|||
}
|
||||
|
||||
}</code></pre>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="github连击">Github连击</h1>
|
||||
<h2 id="天">100天</h2>
|
||||
<p>我也是蛮拼的,虽然我想的只是在Github上连击100~200天,然而到了今天也算不错。</p>
|
||||
|
|
@ -1728,7 +1724,7 @@ public class replaceTemp {
|
|||
<h3 id="编程的基础能力">编程的基础能力</h3>
|
||||
<p>虽说算法很重要,但是编码才是基础能力。算法与编程在某种程度上是不同的领域,算法编程是在编程上面的一级。算法写得再好,如果别人很难直接拿来复用,在别人眼里就是shit。想出能work的代码一件简单的事,学会对其重构,使之变得更易读就是一件有意义的事。</p>
|
||||
<p>于是,在某一时刻在Github上创建了一个组织,叫<a href="https://github.com/artisanstack">Artisan Stack</a>。当时想的是在Github寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。</p>
|
||||
<h4 id="重构-3">重构</h4>
|
||||
<h4 id="重构-2">重构</h4>
|
||||
<p>如果你懂得如何写出高可读的代码,那么我想你是不需要这个的,但是这意味着你花了更多的时候在思考上了。当谈论重构的时候,让我想起了TDD(测试驱动开发)。即使不是TDD,那么如果你写着测试,那也是可以重构的。(之前写过一些利用Intellij IDEA重构的文章:<a href="https://www.phodal.com/blog/intellij-idea-refactor-extract-method/">提炼函数</a>、<a href="https://www.phodal.com/blog/intellij-idea-refactor-replace-temp-with-query/">以查询取代临时变量</a>、<a href="https://www.phodal.com/blog/thoughtworks-refactor-and-intellij-idea/">重构与Intellij Idea初探</a>、<a href="https://www.phodal.com/blog/intellij-idea-refactor-inline-method/">内联函数</a>)</p>
|
||||
<p>在各种各样的文章里,我们看到过一些相关的内容,最好的参考莫过于《重构》一书。最基础不过的原则便是函数名,取名字很难,取别人能读懂的名字更难。其他的便有诸如长函数、过大的类、重复代码等等。在我有限的面试别人的经历里,这些问题都是最常见的。</p>
|
||||
<h4 id="测试-2">测试</h4>
|
||||
|
|
@ -1783,7 +1779,7 @@ public class replaceTemp {
|
|||
<li>设计</li>
|
||||
<li>。。。</li>
|
||||
</ol>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="如何在github寻找灵感fork">如何在Github“寻找灵感(fork)”</h1>
|
||||
<blockquote>
|
||||
<p>重造轮子是重新创造一个已有的或是已被其他人优化的基本方法。</p>
|
||||
|
|
@ -1931,7 +1927,7 @@ public class replaceTemp {
|
|||
<span class="va">request</span>.<span class="at">setRequestHeader</span>(<span class="st">'X-Requested-With'</span><span class="op">,</span> <span class="st">'XMLHttpRequest'</span>)<span class="op">;</span>
|
||||
<span class="va">request</span>.<span class="at">send</span>(data)<span class="op">;</span>
|
||||
<span class="op">};</span></code></pre></div>
|
||||
<hr>
|
||||
<hr />
|
||||
<h1 id="github用户分析">Github用户分析</h1>
|
||||
<h2 id="生成图表">生成图表</h2>
|
||||
<p>如何分析用户的数据是一个有趣的问题,特别是当我们有大量的数据的时候。除了<code>matlab</code>,我们还可以用<code>numpy</code>+<code>matplotlib</code></p>
|
||||
|
|
@ -2369,11 +2365,5 @@ pipe.execute()</code></pre></div>
|
|||
0. 0. 0. 0. 0. 0. 0.
|
||||
0. 0. 0. 0. ]</code></pre>
|
||||
<p>真看不出来两者有什么相似的地方 。。。。</p>
|
||||
<section class="footnotes">
|
||||
<hr />
|
||||
<ol>
|
||||
<li id="fn1"><p>jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。<a href="#fnref1">↩</a></p></li>
|
||||
</ol>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Reference in a new issue