diff --git a/chapters/01-introduction.md b/chapters/01-introduction.md index 1735c95..e69de29 100644 --- a/chapters/01-introduction.md +++ b/chapters/01-introduction.md @@ -1,47 +0,0 @@ -#介绍 - -##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之间的操作。 - -
如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果
Wiki百科上是这么说的
@@ -290,8 +285,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf-GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
-Git基本知识与Github使用
Git
从一般开发者的角度来看,git有以下功能:
@@ -357,7 +350,146 @@ git push -u origin master
git remote add origin git@github.com:phodal/github-roam.git git push -u origin master如果你完成了上面的步骤之后,那么我想你想知道你需要怎样的项目。
-
+Github流行项目分析
+之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)
++ +
++ + + +用户 +项目名 +Language +Star +Url ++ +twbs +Bootstrap +CSS +78490 +https://github.com/twbs/bootstrap ++ +vhf +free-programming books +- +37240 +https://github.com/vhf/free-programming-books ++ +angular +angular.js +JavaScript +36,061 +https://github.com/angular/angular.js ++ +mbostock +d3 +JavaScript +35,257 +https://github.com/mbostock/d3 ++ + +joyent +node +JavaScript +35,077 +https://github.com/joyent/node +上面列出来的是前5的,看看大于1万个stars的项目的分布,一共有82个:
++ +
++ + + +语言 +项目数 ++ +JavaScript +37 ++ +Ruby +6 ++ +CSS +6 ++ +Python +4 ++ +HTML +3 ++ +C++ +3 ++ +VimL +2 ++ +Shell +2 ++ +Go +2 ++ + +C +2 +类型分布:
++
+- 库和框架: 和
+jQuery- 系统: 如
+Linux、hhvm、docker- 配置集: 如
+dotfiles- 辅助工具: 如
+oh-my-zsh- 工具: 如
+Homewbrew和Bower- 资料收集: 如
+free programming books,You-Dont-Know-JS,Font-Awesome- 其他:简历如
+Resume创建Pull Request
+除了创建项目之外,我们也可以创建Pull Request来做贡献。
+我的第一个PR
+我的第一个PR是给一个小的Node的CoAP相关的库的Pull Request。原因比较简单,是因为它的README.md写错了,导致我无法办法进行下一步。
++const dgram = require('dgram') + - , coapPacket = require('coap-packet') + + , package = require('coap-packet')很简单,却又很有用的步骤,另外一个也是:
++else + cat << END + $0: error: module ngx_pagespeed requires the pagespeed optimization library. +-Look in obj/autoconf.err for more details. ++Look in objs/autoconf.err for more details. + END + exit 1 + fiCLA
+CLA即Contributor License Agreement,在为一些大的组织、机构提交Pull Request的时候,可能需要签署这个协议。他们会在你的Pull Request里问你,只有你到他们的网站去注册并同意协议才会接受你的PR。
+以下是我为Google提交的一个PR
++ +Google CLA +以及Eclipse的一个PR
++ +Eclipse CLA +他们都要求我签署CLA。
+
+构建Github项目
用好Github
如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
敏捷软件开发
@@ -497,163 +629,6 @@ after_success: CODECLIMATE_REPO_TOKEN=321480822fc37deb0de70a11931b4cb6a2a3cc4116重构
不想在这里说太多关于
重构的东西,可以参考Martin Flower的《重构》一书去多了解一些重构的细节。这时想说的是,只有代码被测试覆盖住了,那么才能保证重构的过程没有出错。
-
-Github流行项目分析
-之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)
-- -
-- - - -用户 -项目名 -Language -Star -Url -- -twbs -Bootstrap -CSS -78490 -https://github.com/twbs/bootstrap -- -vhf -free-programming books -- -37240 -https://github.com/vhf/free-programming-books -- -angular -angular.js -JavaScript -36,061 -https://github.com/angular/angular.js -- -mbostock -d3 -JavaScript -35,257 -https://github.com/mbostock/d3 -- - -joyent -node -JavaScript -35,077 -https://github.com/joyent/node -上面列出来的是前5的,看看大于1万个stars的项目的分布,一共有82个:
-- -
-- - - -语言 -项目数 -- -JavaScript -37 -- -Ruby -6 -- -CSS -6 -- -Python -4 -- -HTML -3 -- -C++ -3 -- -VimL -2 -- -Shell -2 -- -Go -2 -- - -C -2 -类型分布:
--
-- 库和框架: 和
-jQuery- 系统: 如
-Linux、hhvm、docker- 配置集: 如
-dotfiles- 辅助工具: 如
-oh-my-zsh- 工具: 如
-Homewbrew和Bower- 资料收集: 如
-free programming books,You-Dont-Know-JS,Font-Awesome- 其他:简历如
-Resume
-创建你的项目
-问题来了,我们在上面需要怎样的项目? 在上章中,我们说到了下面的内容会比较受欢迎:
--
-- 库和框架: 和
-jQuery- 系统: 如
-Linux、hhvm、docker- 配置集: 如
-dotfiles- 辅助工具: 如
-oh-my-zsh- 工具: 如
-Homewbrew和Bower- 资料收集: 如
-free programming books,You-Dont-Know-JS,Font-Awesome- 其他:简历如
-Resume不过,在多数情况下,我想文档类如资料收集会比较受欢迎。但是,并非所有喜欢的程序员都喜欢去收集这样的内容,有时候我们想创造的是一个流行的库,这也是我最想做的开源项目。
-Hello,World
-So,你可以从Hello,World开始试试。
-
-创建Pull Request
-除了创建项目之外,我们也可以创建Pull Request来做贡献。
-第一个PR
-我的第一个PR是给一个小的Node的CoAP相关的库的Pull Request。原因比较简单,是因为它的README.md写错了,导致我无法办法进行下一步。
--const dgram = require('dgram') - - , coapPacket = require('coap-packet') - + , package = require('coap-packet')很简单,却又很有用的步骤,另外一个也是:
--else - cat << END - $0: error: module ngx_pagespeed requires the pagespeed optimization library. --Look in obj/autoconf.err for more details. -+Look in objs/autoconf.err for more details. - END - exit 1 - fiCLA
-CLA即Contributor License Agreement,在为一些大的组织、机构提交Pull Request的时候,可能需要签署这个协议。他们会在你的Pull Request里问你,只有你到他们的网站去注册并同意协议才会接受你的PR。
-以下是我为Google提交的一个PR
-- -Google CLA -以及Eclipse的一个PR
-- -Eclipse CLA -他们都要求我签署CLA。
-
-构建Github项目
从模块分离到测试
在之前说到