mirror of
https://github.com/phodal/github
synced 2026-05-22 00:29:47 +00:00
change Github to GitHub
This commit is contained in:
parent
d9e5ec8356
commit
709d8d1af9
19 changed files with 2591 additions and 2845 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
include_dir=build
|
||||
source=chapters/*.md
|
||||
title='Github 漫游指南'
|
||||
title='GitHub 漫游指南'
|
||||
filename='github-roam'
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<p>
|
||||
<h1>Github 漫游指南</h1>
|
||||
<p>项目首页: <a href="https://github.com/phodal/github-roam">Github 漫游指南</a></p>
|
||||
<p>By <a href="https://www.phodal.com">Phodal Huang</a>(微博、知乎、Github、SegmentFault: @<a href="http://weibo.com/phodal">phodal</a>)
|
||||
<h1>GitHub 漫游指南</h1>
|
||||
<p>项目首页: <a href="https://github.com/phodal/github-roam">GitHub 漫游指南</a></p>
|
||||
<p>By <a href="https://www.phodal.com">Phodal Huang</a>(微博、知乎、GitHub、SegmentFault: @<a href="http://weibo.com/phodal">phodal</a>)
|
||||
</p>
|
||||
<p>微信公众号</p>
|
||||
<img src="./img/qrcode.jpg" alt=""/>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<dc:title>Github 漫游指南</dc:title>
|
||||
<dc:title>GitHub 漫游指南</dc:title>
|
||||
<dc:creator>Phodal Huang</dc:creator>
|
||||
<dc:rights>Creative Commons Attribution Non-Commercial Share Alike 3.0</dc:rights>
|
||||
<dc:language>zh-CN</dc:language>
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
% Github 漫游指南
|
||||
% GitHub 漫游指南
|
||||
% Phodal Huang
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
#前言
|
||||
|
||||
我的Github主页上写着加入的时间——``Joined on Nov 8, 2010``,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——``2015.3.9``,我也发现这其实是程序员的社交网站。
|
||||
我的GitHub主页上写着加入的时间——``Joined on Nov 8, 2010``,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——``2015.3.9``,我也发现这其实是程序员的社交网站。
|
||||
|
||||
过去,曾经有很长的一些时间我试过在Github上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在Github上也是很重要的。
|
||||
过去,曾经有很长的一些时间我试过在GitHub上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在GitHub上也是很重要的。
|
||||
|
||||
在这里,我会试着将我在Github上学到的东西一一分享出来。
|
||||
在这里,我会试着将我在GitHub上学到的东西一一分享出来。
|
||||
|
||||
##我与Github的故事
|
||||
##我与GitHub的故事
|
||||
|
||||
在我大四找工作的时候,试图去寻找一份硬件、物联网相关的工作(ps: 专业是电子信息工程)。尽管简历上写得满满的各种经历、经验,然而并没有卵用。跑了几场校园招聘会后,十份简历(ps: 事先已经有心里准备)一个也没有投出去——因为学校直接被拒。我对霸面什么的一点兴趣都没有,千里马需要伯乐。后来,我加入了Martin Flower所在的公司,当然这是后话了。
|
||||
|
||||
这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,Github就是其中一个。
|
||||
这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,GitHub就是其中一个。
|
||||
|
||||
注册Github的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在Github上创建项目:
|
||||
注册GitHub的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在GitHub上创建项目:
|
||||
|
||||
1. 快速上手框架来实战,即demo
|
||||
2. 重构别人的代码
|
||||
|
|
@ -20,9 +20,9 @@
|
|||
4. 快速构建大型应用
|
||||
5. 构建通用的框架
|
||||
|
||||
###Github与收获
|
||||
###GitHub与收获
|
||||
|
||||
先说说**与技能无关的收获**吧,毕业设计做的是一个《[最小物联网系统](https://github.com/phodal/iot)》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于Github上硬件开发工程师比较少的困扰)。
|
||||
先说说**与技能无关的收获**吧,毕业设计做的是一个《[最小物联网系统](https://github.com/phodal/iot)》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于GitHub上硬件开发工程师比较少的困扰)。
|
||||
|
||||
毕业后一个月收到PACKT出版社的邮件(ps: 他们是在github上找到我的),内容是关于Review一本[物联网](iot)书籍,即在《[从Review到翻译IT书籍](http://www.phodal.com/blog/review-it-books-with-translate-book/)》中提到的《Learning Internet of Things》。作为一个四级没过的"物联网专家",去审阅一本英文的物联网书籍。。。
|
||||
|
||||
|
|
@ -34,9 +34,9 @@
|
|||
|
||||
也因此带来了其他更多的东西,当然不是这里的主题。在这里,我们就不讨论各种骚扰邮件,或者中文合作。从没有想象过,我也可以在英语世界有一片小天地。
|
||||
|
||||
这些告诉我们,Github上找一个你擅长的主题,那么会有很多人找上你的。
|
||||
这些告诉我们,GitHub上找一个你擅长的主题,那么会有很多人找上你的。
|
||||
|
||||
###Github与成长
|
||||
###GitHub与成长
|
||||
|
||||
过去写过一篇《[如何通过github提升自己](http://www.phodal.com/blog/use-github-grow-self/)》的文章,现在只想说三点:
|
||||
|
||||
|
|
@ -54,13 +54,13 @@
|
|||
|
||||
然后就会相信: **那些没有写测试的项目都是在耍流氓**
|
||||
|
||||
##为什么你应该深入Github
|
||||
##为什么你应该深入GitHub
|
||||
|
||||
上面我们说的都是我们可以收获到的东西,我们开始尝试就意味着我们知道它可能给我们带来好处。上面已经提到很多可以提升自己的例子了,这里再说说其他的。
|
||||
|
||||
###方便工作
|
||||
|
||||
我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在Github上到相应的组件:
|
||||
我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在GitHub上到相应的组件:
|
||||
|
||||
- Promise 支持
|
||||
- Class类(ps:没有一个好的类使用的方式)
|
||||
|
|
@ -70,9 +70,9 @@
|
|||
|
||||
###获得一份工作
|
||||
|
||||
越来越多的人因为Github获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。
|
||||
越来越多的人因为GitHub获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。
|
||||
|
||||
因而,在Github寻找合适的候选人,已经是一种趋势。
|
||||
因而,在GitHub寻找合适的候选人,已经是一种趋势。
|
||||
|
||||
###扩大交际
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#Git基本知识与Github使用
|
||||
#Git基本知识与GitHub使用
|
||||
|
||||
##Git
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ $git status
|
|||
可以看到状态的变化是从黄色到绿色,即unstage到add。
|
||||
|
||||
|
||||
##Github
|
||||
##GitHub
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
|
|
@ -101,21 +101,21 @@ jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以
|
|||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
###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创建项目
|
||||
###在GitHub创建项目
|
||||
|
||||
接着,我们试试在上面创建一个项目:
|
||||
|
||||

|
||||

|
||||
|
||||
就会有下面的提醒:
|
||||
|
||||

|
||||

|
||||
|
||||
它提供多种方式的创建方法:
|
||||
|
||||
|
|
@ -139,9 +139,9 @@ git push -u origin master
|
|||
|
||||
如果你完成了上面的步骤之后,那么我想你想知道你需要怎样的项目。
|
||||
|
||||
##Github流行项目分析
|
||||
##GitHub流行项目分析
|
||||
|
||||
之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)
|
||||
之前曾经分析过一些GitHub的用户行为,现在我们先来说说GitHub上的Star吧。(截止: 2015年3月9日23时。)
|
||||
|
||||
用户 | 项目名 | Language | Star | Url
|
||||
-----|---------- |----------|------|----
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#构建Github项目
|
||||
#构建GitHub项目
|
||||
|
||||
##如何用好Github
|
||||
##如何用好GitHub
|
||||
|
||||
如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
如何用好GitHub,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
|
||||
###敏捷软件开发
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
通常这个会在项目的最上方会有一个项目的简介,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
##README
|
||||
|
||||
README通常会显示在Github项目的下面,如下图所示:
|
||||
README通常会显示在GitHub项目的下面,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
通常一个好的README会让你立马对项目产生兴趣。
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
或许你应该知道了,重构是怎样的,你也知道重构能带来什么。在我刚开始学重构和设计模式的时候,我需要去找一些好的示例,以便于我更好的学习。有时候不得不创造一些更好的场景,来实现这些功能。
|
||||
|
||||
有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到Github上,也就有了[Artisan Stack](https://github.com/artisanstack) 计划。
|
||||
有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到GitHub上,也就有了[Artisan Stack](https://github.com/artisanstack) 计划。
|
||||
|
||||
每个程序员都不可避免地是一个Coder,一个没有掌握好技能的Coder,算不上是手工艺人,但是是手工人。
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#如何在Github"寻找灵感(fork)"
|
||||
#如何在GitHub"寻找灵感(fork)"
|
||||
|
||||
> 重造轮子是重新创造一个已有的或是已被其他人优化的基本方法。
|
||||
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
####寻找
|
||||
|
||||
在Github上搜索了一个看到了下面的几个结果:
|
||||
在GitHub上搜索了一个看到了下面的几个结果:
|
||||
|
||||
- [https://github.com/then/promise](https://github.com/then/promise)
|
||||
- [https://github.com/reactphp/promise](https://github.com/reactphp/promise)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#Github用户分析
|
||||
#GitHub用户分析
|
||||
|
||||
##生成图表
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#Github连击
|
||||
#GitHub连击
|
||||
|
||||
##100天
|
||||
|
||||
我也是蛮拼的,虽然我想的只是在Github上连击100~200天,然而到了今天也算不错。
|
||||
我也是蛮拼的,虽然我想的只是在GitHub上连击100~200天,然而到了今天也算不错。
|
||||
|
||||

|
||||
|
||||
|
|
@ -81,9 +81,9 @@
|
|||
|
||||
##200天的Showcase
|
||||
|
||||
今天是我连续泡在Github上的第200天,也是蛮高兴的,终于到达了:
|
||||
今天是我连续泡在GitHub上的第200天,也是蛮高兴的,终于到达了:
|
||||
|
||||

|
||||

|
||||
|
||||
故事的背影是: 去年国庆完后要去印度接受毕业生培训——就是那个神奇的国度。但是在去之前已经在项目待了九个多月,项目上的挑战越来越少,在印度的时间又算是比较多。便给自己设定了一个长期的goal,即100~200天的longest streak。
|
||||
|
||||
|
|
@ -223,11 +223,11 @@
|
|||
|
||||
给你一年的时间,你会怎样去提高你的水平???
|
||||
|
||||

|
||||

|
||||
|
||||
正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的[Github 孵化器](http://github.com/phodal/ideas) 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。
|
||||
正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的[GitHub 孵化器](http://github.com/phodal/ideas) 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。
|
||||
|
||||
尽管一直在Github上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。
|
||||
尽管一直在GitHub上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。
|
||||
|
||||
这让我想起了充斥着各种气味的知乎上的一些问题,在一些智商被完虐的话题里,无一不是因为那些人学得比别人早——哪来的天才?所谓的天才,应该是未来的智能生命一般,一出生什么都知道。如果并非如此,那只是说明他练习到位了。
|
||||
|
||||
|
|
@ -241,7 +241,7 @@
|
|||
|
||||
虽说算法很重要,但是编码才是基础能力。算法与编程在某种程度上是不同的领域,算法编程是在编程上面的一级。算法写得再好,如果别人很难直接拿来复用,在别人眼里就是shit。想出能work的代码一件简单的事,学会对其重构,使之变得更易读就是一件有意义的事。
|
||||
|
||||
于是,在某一时刻在Github上创建了一个组织,叫[Artisan Stack](https://github.com/artisanstack)。当时想的是在Github寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。
|
||||
于是,在某一时刻在GitHub上创建了一个组织,叫[Artisan Stack](https://github.com/artisanstack)。当时想的是在GitHub寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。
|
||||
|
||||
####重构
|
||||
|
||||
|
|
@ -261,7 +261,7 @@
|
|||
|
||||
从测试开始的TDD,会保证方法是可测的。从功能到测试则可以提供工作次效率,但是只会让测试成为测试,而不是代码的一部分。
|
||||
|
||||
测试是代码的最后一公里。所以,尽可能的为你的Github上的项目添加测试。
|
||||
测试是代码的最后一公里。所以,尽可能的为你的GitHub上的项目添加测试。
|
||||
|
||||
####编码的过程
|
||||
|
||||
|
|
@ -274,7 +274,7 @@
|
|||
|
||||
放到当前的场景就是:
|
||||
|
||||
1. 我想在Github上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。
|
||||
1. 我想在GitHub上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。
|
||||
2. 分解就是一个痛苦的过程。理想情况下,我们应该会有每天提交,但是这取决于你的repo的数量,如果没有新的idea出现,那么这个就变成为了Contributions而Commit。
|
||||
3. 一步步实现
|
||||
|
||||
|
|
@ -288,7 +288,7 @@
|
|||
|
||||
**创造是一种知识的再掌握过程。**
|
||||
|
||||
回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在Github上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了[Lettuce](https://github.com/phodal/lettuce)。
|
||||
回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在GitHub上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了[Lettuce](https://github.com/phodal/lettuce)。
|
||||
|
||||
组合相比于创造过程是一个更有挑战性的过程,我们需要在这过程去设计胶水来粘合这些代码,并在最终可以让他工作。这好比是我们在平时接触到的任务划分,每个人负责相应的模块,最后整合。
|
||||
|
||||
|
|
@ -312,7 +312,7 @@
|
|||
|
||||
###其他
|
||||
|
||||
是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷Github也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。
|
||||
是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷GitHub也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。
|
||||
|
||||
而练习是要分成不同的几个步骤,不仅仅局限于技术:
|
||||
|
||||
|
|
|
|||
BIN
github-roam.epub
BIN
github-roam.epub
Binary file not shown.
|
|
@ -1,19 +1,19 @@
|
|||
|
||||
#前言
|
||||
|
||||
我的Github主页上写着加入的时间——``Joined on Nov 8, 2010``,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——``2015.3.9``,我也发现这其实是程序员的社交网站。
|
||||
我的GitHub主页上写着加入的时间——``Joined on Nov 8, 2010``,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——``2015.3.9``,我也发现这其实是程序员的社交网站。
|
||||
|
||||
过去,曾经有很长的一些时间我试过在Github上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在Github上也是很重要的。
|
||||
过去,曾经有很长的一些时间我试过在GitHub上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在GitHub上也是很重要的。
|
||||
|
||||
在这里,我会试着将我在Github上学到的东西一一分享出来。
|
||||
在这里,我会试着将我在GitHub上学到的东西一一分享出来。
|
||||
|
||||
##我与Github的故事
|
||||
##我与GitHub的故事
|
||||
|
||||
在我大四找工作的时候,试图去寻找一份硬件、物联网相关的工作(ps: 专业是电子信息工程)。尽管简历上写得满满的各种经历、经验,然而并没有卵用。跑了几场校园招聘会后,十份简历(ps: 事先已经有心里准备)一个也没有投出去——因为学校直接被拒。我对霸面什么的一点兴趣都没有,千里马需要伯乐。后来,我加入了Martin Flower所在的公司,当然这是后话了。
|
||||
|
||||
这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,Github就是其中一个。
|
||||
这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,GitHub就是其中一个。
|
||||
|
||||
注册Github的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在Github上创建项目:
|
||||
注册GitHub的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在GitHub上创建项目:
|
||||
|
||||
1. 快速上手框架来实战,即demo
|
||||
2. 重构别人的代码
|
||||
|
|
@ -21,9 +21,9 @@
|
|||
4. 快速构建大型应用
|
||||
5. 构建通用的框架
|
||||
|
||||
###Github与收获
|
||||
###GitHub与收获
|
||||
|
||||
先说说**与技能无关的收获**吧,毕业设计做的是一个《[最小物联网系统](https://github.com/phodal/iot)》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于Github上硬件开发工程师比较少的困扰)。
|
||||
先说说**与技能无关的收获**吧,毕业设计做的是一个《[最小物联网系统](https://github.com/phodal/iot)》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于GitHub上硬件开发工程师比较少的困扰)。
|
||||
|
||||
毕业后一个月收到PACKT出版社的邮件(ps: 他们是在github上找到我的),内容是关于Review一本[物联网](iot)书籍,即在《[从Review到翻译IT书籍](http://www.phodal.com/blog/review-it-books-with-translate-book/)》中提到的《Learning Internet of Things》。作为一个四级没过的"物联网专家",去审阅一本英文的物联网书籍。。。
|
||||
|
||||
|
|
@ -35,9 +35,9 @@
|
|||
|
||||
也因此带来了其他更多的东西,当然不是这里的主题。在这里,我们就不讨论各种骚扰邮件,或者中文合作。从没有想象过,我也可以在英语世界有一片小天地。
|
||||
|
||||
这些告诉我们,Github上找一个你擅长的主题,那么会有很多人找上你的。
|
||||
这些告诉我们,GitHub上找一个你擅长的主题,那么会有很多人找上你的。
|
||||
|
||||
###Github与成长
|
||||
###GitHub与成长
|
||||
|
||||
过去写过一篇《[如何通过github提升自己](http://www.phodal.com/blog/use-github-grow-self/)》的文章,现在只想说三点:
|
||||
|
||||
|
|
@ -55,13 +55,13 @@
|
|||
|
||||
然后就会相信: **那些没有写测试的项目都是在耍流氓**
|
||||
|
||||
##为什么你应该深入Github
|
||||
##为什么你应该深入GitHub
|
||||
|
||||
上面我们说的都是我们可以收获到的东西,我们开始尝试就意味着我们知道它可能给我们带来好处。上面已经提到很多可以提升自己的例子了,这里再说说其他的。
|
||||
|
||||
###方便工作
|
||||
|
||||
我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在Github上到相应的组件:
|
||||
我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在GitHub上到相应的组件:
|
||||
|
||||
- Promise 支持
|
||||
- Class类(ps:没有一个好的类使用的方式)
|
||||
|
|
@ -71,9 +71,9 @@
|
|||
|
||||
###获得一份工作
|
||||
|
||||
越来越多的人因为Github获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。
|
||||
越来越多的人因为GitHub获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。
|
||||
|
||||
因而,在Github寻找合适的候选人,已经是一种趋势。
|
||||
因而,在GitHub寻找合适的候选人,已经是一种趋势。
|
||||
|
||||
###扩大交际
|
||||
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
|
||||
---
|
||||
|
||||
#Git基本知识与Github使用
|
||||
#Git基本知识与GitHub使用
|
||||
|
||||
##Git
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ $git status
|
|||
可以看到状态的变化是从黄色到绿色,即unstage到add。
|
||||
|
||||
|
||||
##Github
|
||||
##GitHub
|
||||
|
||||
Wiki百科上是这么说的
|
||||
|
||||
|
|
@ -184,21 +184,21 @@ jQuery[^jQuery]在发布版本``2.1.3``,一共有152个commit。我们可以
|
|||
- Build: Update commitplease dev dependency
|
||||
- ...
|
||||
|
||||
###Github与Git
|
||||
###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创建项目
|
||||
###在GitHub创建项目
|
||||
|
||||
接着,我们试试在上面创建一个项目:
|
||||
|
||||

|
||||

|
||||
|
||||
就会有下面的提醒:
|
||||
|
||||

|
||||

|
||||
|
||||
它提供多种方式的创建方法:
|
||||
|
||||
|
|
@ -222,9 +222,9 @@ git push -u origin master
|
|||
|
||||
如果你完成了上面的步骤之后,那么我想你想知道你需要怎样的项目。
|
||||
|
||||
##Github流行项目分析
|
||||
##GitHub流行项目分析
|
||||
|
||||
之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)
|
||||
之前曾经分析过一些GitHub的用户行为,现在我们先来说说GitHub上的Star吧。(截止: 2015年3月9日23时。)
|
||||
|
||||
用户 | 项目名 | Language | Star | Url
|
||||
-----|---------- |----------|------|----
|
||||
|
|
@ -301,11 +301,11 @@ CLA即Contributor License Agreement,在为一些大的组织、机构提交Pul
|
|||
|
||||
<hr>
|
||||
|
||||
#构建Github项目
|
||||
#构建GitHub项目
|
||||
|
||||
##如何用好Github
|
||||
##如何用好GitHub
|
||||
|
||||
如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
如何用好GitHub,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.
|
||||
|
||||
###敏捷软件开发
|
||||
|
||||
|
|
@ -856,13 +856,13 @@ SQLiteHelper.prototype.getData = function (url, callback) {
|
|||
|
||||
通常这个会在项目的最上方会有一个项目的简介,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
##README
|
||||
|
||||
README通常会显示在Github项目的下面,如下图所示:
|
||||
README通常会显示在GitHub项目的下面,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
通常一个好的README会让你立马对项目产生兴趣。
|
||||
|
||||
|
|
@ -1162,7 +1162,7 @@ req.end();
|
|||
|
||||
或许你应该知道了,重构是怎样的,你也知道重构能带来什么。在我刚开始学重构和设计模式的时候,我需要去找一些好的示例,以便于我更好的学习。有时候不得不创造一些更好的场景,来实现这些功能。
|
||||
|
||||
有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到Github上,也就有了[Artisan Stack](https://github.com/artisanstack) 计划。
|
||||
有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到GitHub上,也就有了[Artisan Stack](https://github.com/artisanstack) 计划。
|
||||
|
||||
每个程序员都不可避免地是一个Coder,一个没有掌握好技能的Coder,算不上是手工艺人,但是是手工人。
|
||||
|
||||
|
|
@ -1570,7 +1570,7 @@ public class replaceTemp {
|
|||
|
||||
---
|
||||
|
||||
#如何在Github"寻找灵感(fork)"
|
||||
#如何在GitHub"寻找灵感(fork)"
|
||||
|
||||
> 重造轮子是重新创造一个已有的或是已被其他人优化的基本方法。
|
||||
|
||||
|
|
@ -1627,7 +1627,7 @@ public class replaceTemp {
|
|||
|
||||
####寻找
|
||||
|
||||
在Github上搜索了一个看到了下面的几个结果:
|
||||
在GitHub上搜索了一个看到了下面的几个结果:
|
||||
|
||||
- [https://github.com/then/promise](https://github.com/then/promise)
|
||||
- [https://github.com/reactphp/promise](https://github.com/reactphp/promise)
|
||||
|
|
@ -1743,7 +1743,7 @@ Lettuce.send = function (url, method, callback, data) {
|
|||
|
||||
---
|
||||
|
||||
#Github用户分析
|
||||
#GitHub用户分析
|
||||
|
||||
##生成图表
|
||||
|
||||
|
|
@ -2351,11 +2351,11 @@ def get_points(usernames):
|
|||
|
||||
真看不出来两者有什么相似的地方 。。。。
|
||||
|
||||
#Github连击
|
||||
#GitHub连击
|
||||
|
||||
##100天
|
||||
|
||||
我也是蛮拼的,虽然我想的只是在Github上连击100~200天,然而到了今天也算不错。
|
||||
我也是蛮拼的,虽然我想的只是在GitHub上连击100~200天,然而到了今天也算不错。
|
||||
|
||||

|
||||
|
||||
|
|
@ -2434,9 +2434,9 @@ def get_points(usernames):
|
|||
|
||||
##200天的Showcase
|
||||
|
||||
今天是我连续泡在Github上的第200天,也是蛮高兴的,终于到达了:
|
||||
今天是我连续泡在GitHub上的第200天,也是蛮高兴的,终于到达了:
|
||||
|
||||

|
||||

|
||||
|
||||
故事的背影是: 去年国庆完后要去印度接受毕业生培训——就是那个神奇的国度。但是在去之前已经在项目待了九个多月,项目上的挑战越来越少,在印度的时间又算是比较多。便给自己设定了一个长期的goal,即100~200天的longest streak。
|
||||
|
||||
|
|
@ -2576,11 +2576,11 @@ def get_points(usernames):
|
|||
|
||||
给你一年的时间,你会怎样去提高你的水平???
|
||||
|
||||

|
||||

|
||||
|
||||
正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的[Github 孵化器](http://github.com/phodal/ideas) 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。
|
||||
正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的[GitHub 孵化器](http://github.com/phodal/ideas) 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。
|
||||
|
||||
尽管一直在Github上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。
|
||||
尽管一直在GitHub上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。
|
||||
|
||||
这让我想起了充斥着各种气味的知乎上的一些问题,在一些智商被完虐的话题里,无一不是因为那些人学得比别人早——哪来的天才?所谓的天才,应该是未来的智能生命一般,一出生什么都知道。如果并非如此,那只是说明他练习到位了。
|
||||
|
||||
|
|
@ -2594,7 +2594,7 @@ def get_points(usernames):
|
|||
|
||||
虽说算法很重要,但是编码才是基础能力。算法与编程在某种程度上是不同的领域,算法编程是在编程上面的一级。算法写得再好,如果别人很难直接拿来复用,在别人眼里就是shit。想出能work的代码一件简单的事,学会对其重构,使之变得更易读就是一件有意义的事。
|
||||
|
||||
于是,在某一时刻在Github上创建了一个组织,叫[Artisan Stack](https://github.com/artisanstack)。当时想的是在Github寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。
|
||||
于是,在某一时刻在GitHub上创建了一个组织,叫[Artisan Stack](https://github.com/artisanstack)。当时想的是在GitHub寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。
|
||||
|
||||
####重构
|
||||
|
||||
|
|
@ -2614,7 +2614,7 @@ def get_points(usernames):
|
|||
|
||||
从测试开始的TDD,会保证方法是可测的。从功能到测试则可以提供工作次效率,但是只会让测试成为测试,而不是代码的一部分。
|
||||
|
||||
测试是代码的最后一公里。所以,尽可能的为你的Github上的项目添加测试。
|
||||
测试是代码的最后一公里。所以,尽可能的为你的GitHub上的项目添加测试。
|
||||
|
||||
####编码的过程
|
||||
|
||||
|
|
@ -2627,7 +2627,7 @@ def get_points(usernames):
|
|||
|
||||
放到当前的场景就是:
|
||||
|
||||
1. 我想在Github上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。
|
||||
1. 我想在GitHub上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。
|
||||
2. 分解就是一个痛苦的过程。理想情况下,我们应该会有每天提交,但是这取决于你的repo的数量,如果没有新的idea出现,那么这个就变成为了Contributions而Commit。
|
||||
3. 一步步实现
|
||||
|
||||
|
|
@ -2641,7 +2641,7 @@ def get_points(usernames):
|
|||
|
||||
**创造是一种知识的再掌握过程。**
|
||||
|
||||
回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在Github上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了[Lettuce](https://github.com/phodal/lettuce)。
|
||||
回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在GitHub上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了[Lettuce](https://github.com/phodal/lettuce)。
|
||||
|
||||
组合相比于创造过程是一个更有挑战性的过程,我们需要在这过程去设计胶水来粘合这些代码,并在最终可以让他工作。这好比是我们在平时接触到的任务划分,每个人负责相应的模块,最后整合。
|
||||
|
||||
|
|
@ -2665,7 +2665,7 @@ def get_points(usernames):
|
|||
|
||||
###其他
|
||||
|
||||
是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷Github也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。
|
||||
是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷GitHub也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。
|
||||
|
||||
而练习是要分成不同的几个步骤,不仅仅局限于技术:
|
||||
|
||||
|
|
|
|||
BIN
github-roam.mobi
BIN
github-roam.mobi
Binary file not shown.
BIN
github-roam.pdf
BIN
github-roam.pdf
Binary file not shown.
2431
github-roam.rtf
2431
github-roam.rtf
File diff suppressed because one or more lines are too long
124
index.html
124
index.html
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="generator" content="pandoc">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<title>Github 漫游指南 - </title>
|
||||
<title>GitHub 漫游指南 - </title>
|
||||
<style type="text/css">code{white-space: pre;}</style>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
|
|
@ -51,9 +51,9 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<h1>Github 漫游指南</h1>
|
||||
<p>项目首页: <a href="https://github.com/phodal/github-roam">Github 漫游指南</a></p>
|
||||
<p>By <a href="https://www.phodal.com">Phodal Huang</a>(微博、知乎、Github、SegmentFault: @<a href="http://weibo.com/phodal">phodal</a>)
|
||||
<h1>GitHub 漫游指南</h1>
|
||||
<p>项目首页: <a href="https://github.com/phodal/github-roam">GitHub 漫游指南</a></p>
|
||||
<p>By <a href="https://www.phodal.com">Phodal Huang</a>(微博、知乎、GitHub、SegmentFault: @<a href="http://weibo.com/phodal">phodal</a>)
|
||||
</p>
|
||||
<p>微信公众号</p>
|
||||
<img src="./img/qrcode.jpg" alt=""/>
|
||||
|
|
@ -66,33 +66,33 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<nav id="TOC">
|
||||
<ul>
|
||||
<li><a href="#前言">前言</a><ul>
|
||||
<li><a href="#我与github的故事">我与Github的故事</a><ul>
|
||||
<li><a href="#github与收获">Github与收获</a></li>
|
||||
<li><a href="#github与成长">Github与成长</a></li>
|
||||
<li><a href="#我与github的故事">我与GitHub的故事</a><ul>
|
||||
<li><a href="#github与收获">GitHub与收获</a></li>
|
||||
<li><a href="#github与成长">GitHub与成长</a></li>
|
||||
</ul></li>
|
||||
<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="#扩大交际">扩大交际</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><a href="#git基本知识与github使用">Git基本知识与Github使用</a><ul>
|
||||
<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="#github">GitHub</a><ul>
|
||||
<li><a href="#版本管理与软件部署">版本管理与软件部署</a></li>
|
||||
<li><a href="#github与git">Github与Git</a></li>
|
||||
<li><a href="#在github创建项目">在Github创建项目</a></li>
|
||||
<li><a href="#github与git">GitHub与Git</a></li>
|
||||
<li><a href="#在github创建项目">在GitHub创建项目</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#github流行项目分析">Github流行项目分析</a></li>
|
||||
<li><a href="#github流行项目分析">GitHub流行项目分析</a></li>
|
||||
<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="#如何用好github">如何用好GitHub</a><ul>
|
||||
<li><a href="#敏捷软件开发">敏捷软件开发</a></li>
|
||||
<li><a href="#测试">测试</a></li>
|
||||
<li><a href="#ci">CI</a></li>
|
||||
|
|
@ -141,7 +141,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<li><a href="#重构之以查询取代临时变量">重构之以查询取代临时变量</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><a href="#如何在github寻找灵感fork">如何在Github“寻找灵感(fork)”</a><ul>
|
||||
<li><a href="#如何在github寻找灵感fork">如何在GitHub“寻找灵感(fork)”</a><ul>
|
||||
<li><a href="#lettuce构建过程"><a href="https://github.com/phodal/lettuce">Lettuce</a>构建过程</a><ul>
|
||||
<li><a href="#需求">需求</a></li>
|
||||
<li><a href="#计划">计划</a></li>
|
||||
|
|
@ -149,7 +149,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<li><a href="#实现第二个需求">实现第二个需求</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><a href="#github用户分析">Github用户分析</a><ul>
|
||||
<li><a href="#github用户分析">GitHub用户分析</a><ul>
|
||||
<li><a href="#生成图表">生成图表</a><ul>
|
||||
<li><a href="#数据解析">数据解析</a></li>
|
||||
<li><a href="#matplotlib">Matplotlib</a></li>
|
||||
|
|
@ -166,7 +166,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
</ul></li>
|
||||
<li><a href="#邻近算法与相似用户">邻近算法与相似用户</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#github连击">Github连击</a><ul>
|
||||
<li><a href="#github连击">GitHub连击</a><ul>
|
||||
<li><a href="#天">100天</a><ul>
|
||||
<li><a href="#天的提升">40天的提升</a></li>
|
||||
<li><a href="#天的挑战">100天的挑战</a></li>
|
||||
|
|
@ -187,13 +187,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
</ul>
|
||||
</nav>
|
||||
<h1 id="前言">前言</h1>
|
||||
<p>我的Github主页上写着加入的时间——<code>Joined on Nov 8, 2010</code>,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——<code>2015.3.9</code>,我也发现这其实是程序员的社交网站。</p>
|
||||
<p>过去,曾经有很长的一些时间我试过在Github上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在Github上也是很重要的。</p>
|
||||
<p>在这里,我会试着将我在Github上学到的东西一一分享出来。</p>
|
||||
<h2 id="我与github的故事">我与Github的故事</h2>
|
||||
<p>我的GitHub主页上写着加入的时间——<code>Joined on Nov 8, 2010</code>,那时才大一,在那之后的那长日子里我都没有过到。也许是因为我学的不是计算机,到了今天——<code>2015.3.9</code>,我也发现这其实是程序员的社交网站。</p>
|
||||
<p>过去,曾经有很长的一些时间我试过在GitHub上连击,也试着去了解别人是如何用好这个工具的。当然粉丝在GitHub上也是很重要的。</p>
|
||||
<p>在这里,我会试着将我在GitHub上学到的东西一一分享出来。</p>
|
||||
<h2 id="我与github的故事">我与GitHub的故事</h2>
|
||||
<p>在我大四找工作的时候,试图去寻找一份硬件、物联网相关的工作(ps: 专业是电子信息工程)。尽管简历上写得满满的各种经历、经验,然而并没有卵用。跑了几场校园招聘会后,十份简历(ps: 事先已经有心里准备)一个也没有投出去——因为学校直接被拒。我对霸面什么的一点兴趣都没有,千里马需要伯乐。后来,我加入了Martin Flower所在的公司,当然这是后话了。</p>
|
||||
<p>这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,Github就是其中一个。</p>
|
||||
<p>注册Github的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在Github上创建项目:</p>
|
||||
<p>这是一个残酷的世界,在学生时代,如果你长得不帅不高的话,那么多数的附加技能都是白搭(ps: 通常富的是看不到这篇文章的)。在工作时期,如果你上家没有名气,那么将会影响你下一份工作的待遇。而,很多东西却会改变这些,GitHub就是其中一个。</p>
|
||||
<p>注册GitHub的时候大概是大一的时候,我熟悉的时候已经是大四了,现在已经毕业一年了。在过去的近两年里,我试着以几个维度在GitHub上创建项目:</p>
|
||||
<ol type="1">
|
||||
<li>快速上手框架来实战,即demo</li>
|
||||
<li>重构别人的代码</li>
|
||||
|
|
@ -201,8 +201,8 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<li>快速构建大型应用</li>
|
||||
<li>构建通用的框架</li>
|
||||
</ol>
|
||||
<h3 id="github与收获">Github与收获</h3>
|
||||
<p>先说说<strong>与技能无关的收获</strong>吧,毕业设计做的是一个《<a href="https://github.com/phodal/iot">最小物联网系统</a>》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于Github上硬件开发工程师比较少的困扰)。</p>
|
||||
<h3 id="github与收获">GitHub与收获</h3>
|
||||
<p>先说说<strong>与技能无关的收获</strong>吧,毕业设计做的是一个《<a href="https://github.com/phodal/iot">最小物联网系统</a>》,考虑到我们专业老师没有这方面知识,答辩时会带来问题,尽量往这方面靠拢。当我毕业后,这个项目已经有过百个star了,这样易上手的东西还是比较受欢迎的(ps: 不过这种硬件相关的项目通常受限于GitHub上硬件开发工程师比较少的困扰)。</p>
|
||||
<p>毕业后一个月收到PACKT出版社的邮件(ps: 他们是在github上找到我的),内容是关于Review一本<a href="iot">物联网</a>书籍,即在《<a href="http://www.phodal.com/blog/review-it-books-with-translate-book/">从Review到翻译IT书籍</a>》中提到的《Learning Internet of Things》。作为一个四级没过的“物联网专家”,去审阅一本英文的物联网书籍。。。</p>
|
||||
<p>当然,后来是审阅完了,书上有我的英文简介。</p>
|
||||
<figure>
|
||||
|
|
@ -210,8 +210,8 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
</figure>
|
||||
<p>一个月前,收到MANNING出版社的邮件(ps: 也是在github上),关于Review一本<a href="iot">物联网</a>书籍的目录,并提出建议。</p>
|
||||
<p>也因此带来了其他更多的东西,当然不是这里的主题。在这里,我们就不讨论各种骚扰邮件,或者中文合作。从没有想象过,我也可以在英语世界有一片小天地。</p>
|
||||
<p>这些告诉我们,Github上找一个你擅长的主题,那么会有很多人找上你的。</p>
|
||||
<h3 id="github与成长">Github与成长</h3>
|
||||
<p>这些告诉我们,GitHub上找一个你擅长的主题,那么会有很多人找上你的。</p>
|
||||
<h3 id="github与成长">GitHub与成长</h3>
|
||||
<p>过去写过一篇《<a href="http://www.phodal.com/blog/use-github-grow-self/">如何通过github提升自己</a>》的文章,现在只想说三点:</p>
|
||||
<ol type="1">
|
||||
<li>测试</li>
|
||||
|
|
@ -223,10 +223,10 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<p>如果你在用心做这个项目,那么你看到代码写得不好也会试着改进,即重构。当有了一些,你的技能会不断提升。你开始会试着接触更多的东西,如stub,如mock,如fakeserver。</p>
|
||||
<p>有一天,你会发现你离不开测试。</p>
|
||||
<p>然后就会相信: <strong>那些没有写测试的项目都是在耍流氓</strong></p>
|
||||
<h2 id="为什么你应该深入github">为什么你应该深入Github</h2>
|
||||
<h2 id="为什么你应该深入github">为什么你应该深入GitHub</h2>
|
||||
<p>上面我们说的都是我们可以收获到的东西,我们开始尝试就意味着我们知道它可能给我们带来好处。上面已经提到很多可以提升自己的例子了,这里再说说其他的。</p>
|
||||
<h3 id="方便工作">方便工作</h3>
|
||||
<p>我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在Github上到相应的组件:</p>
|
||||
<p>我们可以从中获取到不同的知识、内容、信息。每个人都可以从别人的代码中学习,当我们需要构建一个库的时候我们可以在上面寻找不同的库和代码来实现我们的功能。如当我在实现一个库的时候,我会在GitHub上到相应的组件:</p>
|
||||
<ul>
|
||||
<li>Promise 支持</li>
|
||||
<li>Class类(ps:没有一个好的类使用的方式)</li>
|
||||
|
|
@ -235,12 +235,12 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|||
<li>Ajax 基本的Ajax Get/Post请求</li>
|
||||
</ul>
|
||||
<h3 id="获得一份工作">获得一份工作</h3>
|
||||
<p>越来越多的人因为Github获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。</p>
|
||||
<p>因而,在Github寻找合适的候选人,已经是一种趋势。</p>
|
||||
<p>越来越多的人因为GitHub获得工作,因为他们的做的东西正好符合一些公司的要求。那么,这些公司在寻找代码的时候,就会试着邀请他们。</p>
|
||||
<p>因而,在GitHub寻找合适的候选人,已经是一种趋势。</p>
|
||||
<h3 id="扩大交际">扩大交际</h3>
|
||||
<p>如果我们想创造出更好、强大地框架时,那么认识更多的人可能会带来更多的帮助。有时候会同上面那一点一样的效果</p>
|
||||
<hr />
|
||||
<h1 id="git基本知识与github使用">Git基本知识与Github使用</h1>
|
||||
<h1 id="git基本知识与github使用">Git基本知识与GitHub使用</h1>
|
||||
<h2 id="git">Git</h2>
|
||||
<p>从一般开发者的角度来看,git有以下功能:</p>
|
||||
<ol type="1">
|
||||
|
|
@ -281,7 +281,7 @@ $ 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>
|
||||
<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>
|
||||
|
|
@ -312,21 +312,21 @@ $ git config --global user.email "电子邮箱"</code></pre>
|
|||
<li>Build: Update commitplease dev dependency</li>
|
||||
<li>…</li>
|
||||
</ul>
|
||||
<h3 id="github与git">Github与Git</h3>
|
||||
<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>
|
||||
<h3 id="在github创建项目">在GitHub创建项目</h3>
|
||||
<p>接着,我们试试在上面创建一个项目:</p>
|
||||
<figure>
|
||||
<img src="./img/github-roam-create.jpg" alt="Github Roam" /><figcaption>Github Roam</figcaption>
|
||||
<img src="./img/github-roam-create.jpg" alt="GitHub Roam" /><figcaption>GitHub Roam</figcaption>
|
||||
</figure>
|
||||
<p>就会有下面的提醒:</p>
|
||||
<figure>
|
||||
<img src="./img/project-init.jpg" alt="Github Roam" /><figcaption>Github Roam</figcaption>
|
||||
<img src="./img/project-init.jpg" alt="GitHub Roam" /><figcaption>GitHub Roam</figcaption>
|
||||
</figure>
|
||||
<p>它提供多种方式的创建方法:</p>
|
||||
<blockquote>
|
||||
|
|
@ -344,8 +344,8 @@ git push -u origin master</code></pre>
|
|||
<pre><code>git remote add origin git@github.com:phodal/github-roam.git
|
||||
git push -u origin master</code></pre>
|
||||
<p>如果你完成了上面的步骤之后,那么我想你想知道你需要怎样的项目。</p>
|
||||
<h2 id="github流行项目分析">Github流行项目分析</h2>
|
||||
<p>之前曾经分析过一些Github的用户行为,现在我们先来说说Github上的Star吧。(截止: 2015年3月9日23时。)</p>
|
||||
<h2 id="github流行项目分析">GitHub流行项目分析</h2>
|
||||
<p>之前曾经分析过一些GitHub的用户行为,现在我们先来说说GitHub上的Star吧。(截止: 2015年3月9日23时。)</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
|
|
@ -483,9 +483,9 @@ git push -u origin master</code></pre>
|
|||
</figure>
|
||||
<p>他们都要求我签署CLA。</p>
|
||||
<hr>
|
||||
<h1 id="构建github项目">构建Github项目</h1>
|
||||
<h2 id="如何用好github">如何用好Github</h2>
|
||||
<p>如何用好Github,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.</p>
|
||||
<h1 id="构建github项目">构建GitHub项目</h1>
|
||||
<h2 id="如何用好github">如何用好GitHub</h2>
|
||||
<p>如何用好GitHub,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到CI,再到自动部署.</p>
|
||||
<h3 id="敏捷软件开发">敏捷软件开发</h3>
|
||||
<p>显然我是在扯淡,这和敏捷软件开发没有什么关系。不过我也不知道瀑布流是怎样的。说说我所知道的一个项目的组成吧:</p>
|
||||
<ul>
|
||||
|
|
@ -1025,12 +1025,12 @@ line 21 col 62 Strings must use singlequote.</code></pre>
|
|||
</ol>
|
||||
<p>通常这个会在项目的最上方会有一个项目的简介,如下图所示:</p>
|
||||
<figure>
|
||||
<img src="./img/github-intro.png" alt="Github Project Introduction" /><figcaption>Github Project Introduction</figcaption>
|
||||
<img src="./img/github-intro.png" alt="GitHub Project Introduction" /><figcaption>GitHub Project Introduction</figcaption>
|
||||
</figure>
|
||||
<h2 id="readme">README</h2>
|
||||
<p>README通常会显示在Github项目的下面,如下图所示:</p>
|
||||
<p>README通常会显示在GitHub项目的下面,如下图所示:</p>
|
||||
<figure>
|
||||
<img src="./img/readme-example.png" alt="Github README" /><figcaption>Github README</figcaption>
|
||||
<img src="./img/readme-example.png" alt="GitHub README" /><figcaption>GitHub README</figcaption>
|
||||
</figure>
|
||||
<p>通常一个好的README会让你立马对项目产生兴趣。</p>
|
||||
<p>如下面的内容是React项目的简介:</p>
|
||||
|
|
@ -1245,7 +1245,7 @@ beforeEach(function() {
|
|||
<hr />
|
||||
<h1 id="重构">重构</h1>
|
||||
<p>或许你应该知道了,重构是怎样的,你也知道重构能带来什么。在我刚开始学重构和设计模式的时候,我需要去找一些好的示例,以便于我更好的学习。有时候不得不创造一些更好的场景,来实现这些功能。</p>
|
||||
<p>有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到Github上,也就有了<a href="https://github.com/artisanstack">Artisan Stack</a> 计划。</p>
|
||||
<p>有一天,我发现当我需要我一次又一次地重复讲述某些内容,于是我就计划着把这些应该掌握的技能放到GitHub上,也就有了<a href="https://github.com/artisanstack">Artisan Stack</a> 计划。</p>
|
||||
<p>每个程序员都不可避免地是一个Coder,一个没有掌握好技能的Coder,算不上是手工艺人,但是是手工人。</p>
|
||||
<p>艺,需要有创造性的方法。</p>
|
||||
<h2 id="为什么重构">为什么重构?</h2>
|
||||
|
|
@ -1523,7 +1523,7 @@ public class replaceTemp {
|
|||
|
||||
}</code></pre>
|
||||
<hr />
|
||||
<h1 id="如何在github寻找灵感fork">如何在Github“寻找灵感(fork)”</h1>
|
||||
<h1 id="如何在github寻找灵感fork">如何在GitHub“寻找灵感(fork)”</h1>
|
||||
<blockquote>
|
||||
<p>重造轮子是重新创造一个已有的或是已被其他人优化的基本方法。</p>
|
||||
</blockquote>
|
||||
|
|
@ -1570,7 +1570,7 @@ public class replaceTemp {
|
|||
<li>Jasmine</li>
|
||||
</ul>
|
||||
<h4 id="寻找">寻找</h4>
|
||||
<p>在Github上搜索了一个看到了下面的几个结果:</p>
|
||||
<p>在GitHub上搜索了一个看到了下面的几个结果:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/then/promise" class="uri">https://github.com/then/promise</a></li>
|
||||
<li><a href="https://github.com/reactphp/promise" class="uri">https://github.com/reactphp/promise</a></li>
|
||||
|
|
@ -1671,7 +1671,7 @@ public class replaceTemp {
|
|||
<span class="va">request</span>.<span class="at">send</span>(data)<span class="op">;</span>
|
||||
<span class="op">};</span></code></pre></div>
|
||||
<hr />
|
||||
<h1 id="github用户分析">Github用户分析</h1>
|
||||
<h1 id="github用户分析">GitHub用户分析</h1>
|
||||
<h2 id="生成图表">生成图表</h2>
|
||||
<p>如何分析用户的数据是一个有趣的问题,特别是当我们有大量的数据的时候。除了<code>matlab</code>,我们还可以用<code>numpy</code>+<code>matplotlib</code></p>
|
||||
<p>数据可以在这边寻找到</p>
|
||||
|
|
@ -2108,9 +2108,9 @@ pipe.execute()</code></pre></div>
|
|||
0. 0. 0. 0. 0. 0. 0.
|
||||
0. 0. 0. 0. ]</code></pre>
|
||||
<p>真看不出来两者有什么相似的地方 。。。。</p>
|
||||
<h1 id="github连击">Github连击</h1>
|
||||
<h1 id="github连击">GitHub连击</h1>
|
||||
<h2 id="天">100天</h2>
|
||||
<p>我也是蛮拼的,虽然我想的只是在Github上连击100~200天,然而到了今天也算不错。</p>
|
||||
<p>我也是蛮拼的,虽然我想的只是在GitHub上连击100~200天,然而到了今天也算不错。</p>
|
||||
<figure>
|
||||
<img src="./img/longest-streak.png" alt="Longest Streak" /><figcaption>Longest Streak</figcaption>
|
||||
</figure>
|
||||
|
|
@ -2177,9 +2177,9 @@ pipe.execute()</code></pre></div>
|
|||
<li>提了bug,并解决了。(ps:这是最理想的情况)</li>
|
||||
</ul>
|
||||
<h2 id="天的showcase">200天的Showcase</h2>
|
||||
<p>今天是我连续泡在Github上的第200天,也是蛮高兴的,终于到达了:</p>
|
||||
<p>今天是我连续泡在GitHub上的第200天,也是蛮高兴的,终于到达了:</p>
|
||||
<figure>
|
||||
<img src="./img/github-200-days.png" alt="Github 200 days" /><figcaption>Github 200 days</figcaption>
|
||||
<img src="./img/github-200-days.png" alt="GitHub 200 days" /><figcaption>GitHub 200 days</figcaption>
|
||||
</figure>
|
||||
<p>故事的背影是: 去年国庆完后要去印度接受毕业生培训——就是那个神奇的国度。但是在去之前已经在项目待了九个多月,项目上的挑战越来越少,在印度的时间又算是比较多。便给自己设定了一个长期的goal,即100~200天的longest streak。</p>
|
||||
<p>或许之前你看到过一篇文章<a href="https://github.com/phodal/github-roam/blob/master/chapters/12-streak-your-github.md">让我们连击</a>,那时已然140天,只是还是浑浑噩噩。到了今天,渐渐有了一个更清晰地思路。</p>
|
||||
|
|
@ -2302,17 +2302,17 @@ pipe.execute()</code></pre></div>
|
|||
<h2 id="天-1">365天</h2>
|
||||
<p>给你一年的时间,你会怎样去提高你的水平???</p>
|
||||
<figure>
|
||||
<img src="./img/github-365.jpg" alt="Github 365" /><figcaption>Github 365</figcaption>
|
||||
<img src="./img/github-365.jpg" alt="GitHub 365" /><figcaption>GitHub 365</figcaption>
|
||||
</figure>
|
||||
<p>正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的<a href="http://github.com/phodal/ideas">Github 孵化器</a> 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。</p>
|
||||
<p>尽管一直在Github上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。</p>
|
||||
<p>正值这难得的sick leave(万恶的空气),码文一篇来记念一个过去的366天里。尽管想的是在今年里写一个可持续的开源框架,但是到底这依赖于一个好的idea。在我的<a href="http://github.com/phodal/ideas">GitHub 孵化器</a> 页面上似乎也没有一个特别让我满意的想法,虽然上面有各种不样有意思的ideas。多数都是在过去的一年是完成的,然而有一些也是还没有做到的。</p>
|
||||
<p>尽管一直在GitHub上连击看上去似乎是没有多大必要的,但是人总得有点追求。如果正是漫无目的,却又想着提高技术的同时,为什么不去试试?毕竟技术非常好、不需要太多练习的人只是少数,似乎这样的人是不存在的。大多数的人都是经过练习之后,才会达到别人口中的“技术好”。</p>
|
||||
<p>这让我想起了充斥着各种气味的知乎上的一些问题,在一些智商被完虐的话题里,无一不是因为那些人学得比别人早——哪来的天才?所谓的天才,应该是未来的智能生命一般,一出生什么都知道。如果并非如此,那只是说明他练习到位了。</p>
|
||||
<p>练习不到位便意味着,即使你练习的时候是一万小时的两倍,那也是无济于事的。如果你学得比别人晚,在<strong>很长的一段时间里</strong>(可能直到进棺材)输给别人是必然的——落后就要挨打。就好像我等毕业于一所二本垫底的学校里,如果在过去我一直保持着和别人(各种重点)一样的学习速度,那么我只能一直是Loser。</p>
|
||||
<p>需要注意的是,对你来说考上二本很难,并不是因为你比别人笨。教育资源分配不均的问题,在某种程度上导致了新的阶级制度的出现。如<a href="https://www.phodal.com/">我的首页</a>说的那样: <strong>THE ONLY FAIR IS NOT FAIR</strong>——唯一公平的是它是不公平的。我们可以做的还有很多——<strong>CREATE & SHARE</strong>。真正的不幸是,因为营养不良导致的教育问题。</p>
|
||||
<p>于是在想明白了很多事的时候起,便有了Re-Practise这样的计划,而365天只是中间的一个产物。</p>
|
||||
<h3 id="编程的基础能力">编程的基础能力</h3>
|
||||
<p>虽说算法很重要,但是编码才是基础能力。算法与编程在某种程度上是不同的领域,算法编程是在编程上面的一级。算法写得再好,如果别人很难直接拿来复用,在别人眼里就是shit。想出能work的代码一件简单的事,学会对其重构,使之变得更易读就是一件有意义的事。</p>
|
||||
<p>于是,在某一时刻在Github上创建了一个组织,叫<a href="https://github.com/artisanstack">Artisan Stack</a>。当时想的是在Github寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。</p>
|
||||
<p>于是,在某一时刻在GitHub上创建了一个组织,叫<a href="https://github.com/artisanstack">Artisan Stack</a>。当时想的是在GitHub寻找一些JavaScript项目,对其代码进行重构。但是到底是影响力不够哈,参与的人数比较少。</p>
|
||||
<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>
|
||||
|
|
@ -2326,7 +2326,7 @@ pipe.execute()</code></pre></div>
|
|||
<img src="./img/echoesworks.png" alt="EchoesWorks" /><figcaption>EchoesWorks</figcaption>
|
||||
</figure>
|
||||
<p>从测试开始的TDD,会保证方法是可测的。从功能到测试则可以提供工作次效率,但是只会让测试成为测试,而不是代码的一部分。</p>
|
||||
<p>测试是代码的最后一公里。所以,尽可能的为你的Github上的项目添加测试。</p>
|
||||
<p>测试是代码的最后一公里。所以,尽可能的为你的GitHub上的项目添加测试。</p>
|
||||
<h4 id="编码的过程">编码的过程</h4>
|
||||
<p>初到TW时,Pair时候总会有人教我如何开始编码,这应该也是一项基础的能力。结合日常,重新演绎一下这个过程:</p>
|
||||
<ol type="1">
|
||||
|
|
@ -2337,7 +2337,7 @@ pipe.execute()</code></pre></div>
|
|||
</ol>
|
||||
<p>放到当前的场景就是:</p>
|
||||
<ol type="1">
|
||||
<li>我想在Github上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。</li>
|
||||
<li>我想在GitHub上连击365天。对应于每一个时候段的目标都应该是可以衡量、测试的——即每天都会有Contributions。</li>
|
||||
<li>分解就是一个痛苦的过程。理想情况下,我们应该会有每天提交,但是这取决于你的repo的数量,如果没有新的idea出现,那么这个就变成为了Contributions而Commit。</li>
|
||||
<li>一步步实现</li>
|
||||
</ol>
|
||||
|
|
@ -2346,7 +2346,7 @@ pipe.execute()</code></pre></div>
|
|||
<p>在上上一篇博客中《<a href="https://www.phodal.com/blog/after-500-blogposts-analytics-after-tech/">After 500: 写了第500篇博客,然后呢?</a>》也深刻地讨论了下这个问题,技术向来都是后发者优势。对于技术人员来说,也是如此,后发者占据很大的优势。</p>
|
||||
<p>如果我们只是单纯地把我们的关注点仅仅放置于技术上,那么我们就不具有任何的优势。而依赖于我们的编程经验,我们可以在特定的时候创造一些框架。而架构的设计本身就是一件有意思的事,大抵是因为程序员都喜欢创造。(ps:之前曾经写过这样一篇文章,《<a href="https://www.phodal.com/blog/sorry-i-don't-like-programming/">对不起,我并不热爱编程,我只喜欢创造</a>》)</p>
|
||||
<p><strong>创造是一种知识的再掌握过程。</strong></p>
|
||||
<p>回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在Github上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了<a href="https://github.com/phodal/lettuce">Lettuce</a>。</p>
|
||||
<p>回顾一下写echoesworks的过程,一开始我需要的是一个网页版的PPT,当然这类的东西已经有很多了,如impress.js、bespoke.js等等。分析一下所需要的功能:markdown解析器、键盘事件处理、Ajax、进度条显示、图片处理、Slide。我们可以在GitHub上找到各式各样的模块,我们所要做的就是将之结合在一样。在那之前,我试着用类似的原理写(组合)了<a href="https://github.com/phodal/lettuce">Lettuce</a>。</p>
|
||||
<p>组合相比于创造过程是一个更有挑战性的过程,我们需要在这过程去设计胶水来粘合这些代码,并在最终可以让他工作。这好比是我们在平时接触到的任务划分,每个人负责相应的模块,最后整合。</p>
|
||||
<p>想似的我在写<a href="https://github.com/phodal/lan">lan</a>的时候,也是类似的,但是不同的是我已经设计了一个清晰的架构图。</p>
|
||||
<figure>
|
||||
|
|
@ -2360,7 +2360,7 @@ pipe.execute()</code></pre></div>
|
|||
<p>领域本身也在不断进化。</p>
|
||||
<p>这也是下一个值得提高的地方。</p>
|
||||
<h3 id="其他-1">其他</h3>
|
||||
<p>是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷Github也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。</p>
|
||||
<p>是时候写这个小结了。从不会写代码,到写代码是从0到1的过程,但是要从1到60都不是一件容易的事。无论是刷GitHub也好(不要是自动提交),或者是换工作也好,我们都在不断地练习。</p>
|
||||
<p>而练习是要分成不同的几个步骤,不仅仅局限于技术:</p>
|
||||
<ol type="1">
|
||||
<li>编码</li>
|
||||
|
|
|
|||
Loading…
Reference in a new issue