完成人生的第一次代码贡献 - 新手村任务

简介: 完成人生的第一次代码贡献 - 新手村任务

任务列表


  • 任务一:  做一个合格的代码贡献者


  • 如何下载代码?


  • 如何运行代码?


  • 如何给天天造轮子提交代码贡献?


  • 任务二:  编写一个符合TDD标准的代码


  • 如何使用TDD(测试驱动方式)开发一个Helloworld?


最近然叔的天天造轮子栏目得到了大家的欢迎,但是吃瓜的多,真正加进来的少呀,

为了不做那种只看球,不踢球的中国球迷。


然叔特意给打大家带来了,天天造轮子新手村任务


任务一:做一个合格的代码贡献者


网络异常,图片无法展示
|


下载和提交代码


首先我们说说, 如何下载和提交代码 这个主要都是git相关操作。


fork代码


登陆github


github.com/su37josephx…


网络异常,图片无法展示
|

网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


clone代码


然后你就可以在自己的github中下载你的代码了。


注意 不是su37josephxia/wheel-awesome


注意 不是su37josephxia/wheel-awesome


注意 不是su37josephxia/wheel-awesome


git clone git@github.com:youname/wheel-awesome.git


网络异常,图片无法展示
|


同步最新代码


首先说一下为什么要这么做,这是因为在你开发的时候,其他人也在做,很有可能你fork的代码已经不是最新代码了 这时候你就需要不断更新你的代码 至少保证 push前 更新一次,这样才能确保不和主版本库代码冲突。


首先 建立一个新的origin(源)


添加新远程分支


这个只需要做一次


git remote add upstream git@github.com:su37josephxia/wheel-awesome.git


拉去合并远程分支到master分支


这个需要随时做 保持你的master分支永远是官方最新成果。


# 抓取源仓库修改 master分支
git fetch upstream master
# 切换分支
git checkout master
# 合并远程分支
git merge upstream/master
复制代码


网络异常,图片无法展示
|


编写代码


后面的章节我们会讲如何跟新代码 这里面我们就做一个基础的代码更新练习。 大家可以作为练习把自己的名字更新到天才榜中。


网络异常,图片无法展示
|


commit代码


git add .
git commit -am 'add ranshu to helloworld '


网络异常,图片无法展示
|


push代码


git push


网络异常,图片无法展示
|


提交PullRequest到造轮子项目


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


后面就等然叔给你commit了 , 以下然叔我的动作,你那里没有 看看就行了


网络异常,图片无法展示
|


任务二:编写一个符合TDD标准的代码


开源代码,自动化测试试标配。主要用于回归测试。 比如你提交了一行代码,代码管理者需要在最短时间分析出他对以前功能的影响。最有效的方法就是跑一遍原来已经编写好的测试用例。


反过来你的代码也一定要由自动化测试case才可以。


运行和测试代码


安装依赖


网络异常,图片无法展示
|


运行测试用例


网络异常,图片无法展示
|


编写Helloworld代码


module.exports = (callback) => {
    callback && callback('hi')
    return 'hello world'
}


编写测试用例


describe("Helloworld", () => {
  test("返回参数正确", () => {
    const hello = require("../index");
    const fn = jest.fn();
    hello();
    expect(hello(fn)).toBe("hello world");
  });
  test("回调函数被正确调用", () => {
    const hello = require("../index");
    const fn = jest.fn();
    hello(fn);
    const calls = fn.mock.calls;
    expect(calls.length).toBe(1);
    expect(calls[0][0]).toBe("hi");
  });
});


网络异常,图片无法展示
|


相关文章
|
3月前
|
机器人 程序员 C++
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
60 0
|
7月前
|
Cloud Native Linux Go
开源项目在面试中的作用:如何用你的贡献加分
开源项目在面试中的作用:如何用你的贡献加分
47 0
|
7月前
|
架构师 程序员
置顶两个月!《程序员如何向架构师转型》神作在Github持续霸榜
企业架构在过去十年中取得了长足的进步。随着越来越多新技术出现,充分利用这些因素来将企业架构创建得更好十分重要。通过将新技术集成到企业架构中,即使在困难时期,也能取得丰硕的成果。
|
8月前
|
消息中间件 分布式计算 Kubernetes
爆款阿里P5到P7晋升之路,九大源码文档助我超神果然努力幸运并存
前言 相信有许多的程序员,工作了这么多年;但是依然不知道自己掌握的技术栈+项目,究竟达到了阿里的什么职级,还有薪资水平是什么样的;
|
SQL JavaScript 程序员
编程中有没有遇到被自己蠢哭的BUG;想学go,有未来吗;如何保持持续学习的热情 |极客观点
编程中有没有遇到被自己蠢哭的BUG;想学go,有未来吗;如何保持持续学习的热情 |极客观点
|
机器学习/深度学习 人工智能 算法
Interview:算法岗位面试—10.25早上—上海某电公司算法岗位(偏图像算法,国企)技术面试之比赛历程、项目收获(Pytorch和Tensorflow)、未来方向
Interview:算法岗位面试—10.25早上—上海某电公司算法岗位(偏图像算法,国企)技术面试之比赛历程、项目收获(Pytorch和Tensorflow)、未来方向
|
开发者
新人程序媛解疑:前辈是如何看待拥抱变化和女性tl的
这周与主管的one-one沟通解答了很多我作为新人的疑虑和困惑。以下记录了我个人比较关心的就拥抱变化和女性tl的问答和思考,希望给同为新人或有同样疑虑的小伙伴一些启发。怎么看待拥抱变化拥抱变化是阿里的一种特有文化,其体现的是阿里作为一个整体的巨大执行力,阿里人作为一个个体的强大自驱力、饱满精力(我觉得这样筛选出的没有离职的阿里人在外界看来挺恐怖的,难怪那么多阿里人的传言,无论好坏,都源于非阿里人在
392 0
|
物联网 项目管理
崮德好文连载 - 工作要围绕自己而展开
很多人,在开展工作的时候,喜欢被动接受工作安排,这个和传统企业或者国有企业的氛围有关系,那种很少面临快速变化的企业,确实喜欢自上而下管理,员工只要按照要求做好自己的份内工作就可以了,其他的事情就不归自己管了。而现在的BAT等互联网公司,每天都在快速变化,每天都在快速创新,如果还套用传统的工作方式,必然面临尴尬的局面。
|
存储 供应链 安全
平均薪资 38.4 万!3 步教你成为区块链开发者,收好这份学习指南!
时至年关,又到了转(tiao)行(cao)季节,这几天很多小伙伴来问我,2020到底哪个行业最有前景?虽说这两年ABCD(即人工智能AI、区块链Blockchain、云计算Cloud Computing、大数据Big Data)四大技术的发展有目共睹,但作为这四大领域中真正意义上的「新技术」,营长还是更看好区块链。
1522 0
平均薪资 38.4 万!3 步教你成为区块链开发者,收好这份学习指南!
|
程序员 API 数据安全/隐私保护
GitHub火热!程序员小哥不得不知的所有定律法则(附项目链接)
本文介绍了最近 GitHub 上很火的“定律合集”项目。
1832 0