Adjust build github projecT

This commit is contained in:
Fengda HUANG 2015-10-24 23:11:44 +08:00
parent 43e8803a95
commit e136ae7a48
12 changed files with 180 additions and 206 deletions

View file

@ -74,8 +74,8 @@
因而在Github寻找合适的候选人已经是一种趋势。
###扩大人脉
###扩大交际
如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果
<hr>
---

View file

@ -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来做贡献。

View file

@ -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>
---

View file

@ -69,4 +69,4 @@ React.render(
而不是需要繁琐的步骤才能进行下一步。
<hr>
---

View file

@ -234,4 +234,4 @@ req.end();
});
});
<hr>
---

View file

@ -408,4 +408,4 @@ public class replaceTemp {
}
```
<hr>
---

View file

@ -321,4 +321,4 @@
3. 设计
4. 。。。
<hr>
---

View file

@ -169,5 +169,4 @@ Lettuce.send = function (url, method, callback, data) {
};
```
<hr>
---

View file

@ -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用户分析

View file

@ -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 &quot;电子邮箱&quot;</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 &amp; url
Link Test
✓ should return link label &amp; 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(&#39;container&#39;)
);</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">&#39;X-Requested-With&#39;</span><span class="op">,</span> <span class="st">&#39;XMLHttpRequest&#39;</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>