请注意!如果这个系列的文章你从第一篇一直看到了这里,那么你很有做码农的潜质。前面动手操作的过程中我们发现写代码有时会出错,千方百计终于改好以后,是不是很想把这段代码存进保险柜——可不能弄丢了!码农必须要考虑代码管理的问题,万一丢了,可能就是几个月白干了,今天就来聊一下写好的代码应该如何保存。
代码管理的核心思想是用较少的存储空间保存最多的历史版本,并提供快速浏览、比对、冲突解决、回退等功能。最流行的代码管理工具是Git和Svn,前者是分布式的,后者是集中式的。
简单来说,分布式就是每个人的电脑里都保存所有的版本信息(这个信息的集合叫做代码仓库Repo),版本比对、回退这些操作都可以在本地进行,只有涉及多人协作时,一个作为代码数据中心的服务器才是必要的。每个人电脑里的代码仓库都要上传到服务器势必会面临冲突的问题,一般每次修改代码前都会从服务器获取最新的版本,但如果在你修改完成并打算提交到服务器的这段时间内,另外一个人也修改了同一段代码,这时候冲突就发生了,解决觉冲突是代码管理流程的基本操作。Git工具在管理代码时的基本操作就是:pull/commit/push,其中pull/push是在跟服务器交互,commit 则是把这次修改相关的东西记录在Repo里面。
集中式的Svn我们从操做上就可以看出区别,它没有pull和push,因为所有的操作都要跟服务器交互,相当于本地只保存一个版本,就算是只有一个人写代码也得有个服务器,其它功能和操作则是同Git类似的。我个人比较喜欢Git。
说到Git就不得不提GitHub,对,它们是不同的东西,Git是一套工具、系统、一种方法,GitHub则是一个开源社区、一个用于管理代码的网站。开源就是码农们本着众人拾柴火焰高的心态,提倡的一种代码共享的思想,大家写的代码都放在那里,互相学习互相参考、合作开发,充分发挥集体的智慧,最终做出伟大的产品。GitHub早期就是这样一个开源传教士,他鼓励大家把代码都共享出来,创建私有项目则必须付费,不过现在这位传教士的信仰大概也不那么虔诚了,它把自己卖给了一家商业软件公司,创建私有项目也不用花钱了。
GitHub在国内使用可能会不太顺畅,我们也有很多类似的替代,比如gitee.com,我用的是一个原本比较小众的网站,叫做coding.net,存取代码速度非常快,后来感觉也被收购了,不过有很多便宜实用的功能,后面可以介绍一下。
到这里,有了这些方法和工具,就可以开始安心写代码了对不对?No No No!还不到时侯,此时此刻你应该潜下心来好好学一门编程语言了,就像潘石屹同学做的那样。对了,既然到了这一步,我不得不告诉你一件事情:从我这儿什么都学不到的,得看书。
学完Python之后你可以再自学一下 Tensor Flow、DeepLearning、LSTM、seq2seq以及学习过程中碰到其他陌生知识,这些全都学完以后我们可以一起动手写一个基于神经网络的聊天机器人,对,就是能跟你对话的那种。如果你学完了发现我还没发新文章,那也不要奇怪,再等等看,因为我还没学完呢。好的,再见,今天提到很多次服务器,下次就科普一下什么是服务器。
原文始发于微信公众号(EZApps):科普:码农如何保存代码?