Joined on Nov 8, 2010
,那时才大一,在那之后的那么长的日子里我都没有登录过。也许是因为我学的不是计算机,到了今天——2015.3.9
,我才发现这其实是程序员的社交网站。Hello,World
。在二十世纪而七十年代末和八十年代初,为了防止自己的软件被竞争对手所使用,大多数厂家停止分发其软件源代码,并开始使用版权和限制性软件许可证,来限制或者禁止软件源代码的复制或再分配。随后,Richard Matthew Stallman(Richard Matthew Stallman)发起了自由软件运动,他开创了 Copyleft 的概念:使用版权法的原则来保护使用、修改和分发自由软件的权利,并且是描述这些术语的自由软件许可证的主要作者。最为人所称道的是GPL(被z广泛使用的自由软件协议)。1
也许你需要在自己的程序或文档中用到本书的代码,但除非大篇幅地使用,否则不必与我们联系取得授权。例如,用本书中的几段代码编写程序无需请求许可,blabla。
WTFPL(Do What The Fuck You Want To Public License,中文译名:你他妈的想干嘛就干嘛公共许可证)是一种不太常用的、极度放任的自由软件许可证。它的条款基本等同于贡献到公有领域。3
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.
2.1.3
,一共有 152 个 commit。我们可以看到如下的提交信息: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。
…or create a new repository on the command line
…or push an existing repository from the command line
jQuery
Linux
、hhvm
、docker
dotfiles
oh-my-zsh
Homewbrew
和Bower
free programming books
,You-Dont-Know-JS
,Font-Awesome
Resume
你存在,我深深的脑海里
Selenium
、Jasmine
、Cucumber
等等的框架,看到过类似于下面的测试Travis-CI
来跑我们的测试.travis.yml
示例:README.md
之后,就有了之前那张图。jslint
这类的工具,只能保证代码在语法上是正确的,但是不能保证你写了一堆 bad smell 的代码。Code Climate
是一个与 GitHub 集成的工具,我们不仅仅可以看到测试覆盖率,还有代码质量。奋斗了近半个月后,将 fork 的代码读懂、重构、升级版本、调整,添加新功能、添加测试、添加 CI、添加分享之后,终于 almost finish。
Require.js
进行管理:main.js
配置如下:.travis.yml
配置如下所示:package.json
里面添加脚本mocha.opts
,所以我们还需要配置一下 mocha.opts
test/spec
是指定测试的目录。JSLint定义了一组编码约定,这比ECMA定义的语言更为严格。这些编码约定汲取了多年来的丰富编码经验,并以一条年代久远的编程原则 作为宗旨:能做并不意味着应该做。JSLint会对它认为有的编码实践加标志,另外还会指出哪些是明显的错误,从而促使你养成好的 JavaScript编码习惯。
Mocha 是一个优秀的JS测试框架,支持TDD/BDD,结合 should.js/expect/chai/better-assert,能轻松构建各种风格的测试用例。
require.js
来管理浏览器端,在后台写测试来测试的时候,我们也需要用他来管理我们的依赖,这也就是为什么这个测试这么长的原因,多数情况下一个测试类似于这样子的。(用 Jasmine 似乎会是一个更好的主意,但是用习惯 Jasmine 了)Code Climate consolidates the results from a suite of static analysis tools into a single, real-time report, giving your team the information it needs to identify hotspots, evaluate new approaches, and improve code quality.
lib/database/sqlite_helper.js
,因为其中有两个坏味道lib/database/sqlite_helper.js:58…61 < >
受 Growth 3.0 开发的影响,最近更新文章的频率会有所降低。今天,让我们来谈谈一个好的 Git、SVN 提交信息是怎样规范出来的。
[T] upgrade react native elements
。对应的我修改的代码就是:package.json
和 yarn.lock
中的文件。一般来说,建议小步提交,即按自己的 Tasking 步骤来的提交,每一小步都有对应的提交信息。这样做的主要目的是:防止一次修改中,修改过多的文件,导致后期修改、维护、撤销等等困难。[PHODAL-0001] ladohp & phodal: update documents
,解释如下:PHODAL-0001
,业务的任务卡号,它可以帮我们找到某个业务修改的原因,即点出相应 bug 的来源ladohp & phodal
,结对编程的两个人的名字,后者(phodal)一般是写代码的人,出于礼貌就放在后面了。由于 Git 的提交人只显示一个,所以写上两个的名字。当提交的人不在时,就可以问另外一个人修改的原因。update documents
,我们做了什么事情[T] tabs: add icons
。其中的 T
表示这是一个技术卡,tabs
表示修改的是 Tabs,add icons
则表示添加了图标。[SkillTree] detail: add link data
。其中的 SkillTree
表示修改的是技能树 Tab 下的内容,detail
则表示修改的是详情页,add link data
则表示是添加了技能的数据docs(changelog): update change log to beta.5
中:Conventional Commits
的规范,建议采用相似的形式。Read the Docs 托管文档,让文档可以被全文搜索和更易查找。您可以导入您使用任何常用的版本控制系统管理的文档,包括 Mercurial、Git、Subversion 和 Bazaar。 我们支持 webhooks,因此可以在您提交代码时自动构建文档。并且同样也支持版本功能,因此您可以构建来自您代码仓库中某个标签或分支的文档。查看完整的功能列表 。
为了更好的代码。
写代码容易,读代码难。
没有测试的重构
。uMarkdown
是一个用于将 Markdown 转化为HTML的库。代码看上去就像一个很典型的过程代码: