git教程:廖雪峰的git教程git教程

Git与SVN的区别

  • git是分布式版本控制系统,SVN是集中式版本控制系统。详见: 集中式vs分布式
  • git把内容按元数据方式存储,而SVN是按文件。
  • git版本库可以离线查看所有log,可以离线提交,而SVN不可以。
  • ……更多区别详见: Svn与Git的区别

操作流程

SVN

  1. update(将远程版本库代码更新到本地)
  2. commit(将本地代码提交到远程版本库)

git

  1. commit(将本地代码提交到远程版本库)
  2. fetch(将远程版本库的改动下载到本地(未合并))
  3. merge(合并两个分支(本地、远程))
  4. push(将最新的版本库同步到远程服务器)

显而易见:SVN的操作简单明了,git学习成本比SVN高一点。但是由于git是分布式的,所以不需要联网就可以将代码改动立即提交。提交到本地版本库之后,本地和远程的版本就不一样了,因此需要fetch、merge、push来同步版本库。

那么这点区别有什么意义呢?将代码提交到版本库里就有了记录,就可以查询可以恢复,相当于游戏的存档,而与远程服务器的交互因为需要网络,就有很大的不稳定因素,可能会失败,相当于游戏的打BOSS。SVN是将存档和打BOSS绑定到了一起,要打了BOSS后才可以存档进度;而git由于版本库在本地,所以随时随地可以存档,并且要求打BOSS前必须存档。

使用git最大的感触就是安全(故障率低、易恢复)、速度快

如果你的电脑是 macOS 系统,又比较懒,你可以选择使用下面这行脚本命令全程自动化完成,下面文章就可以不用看了。

打开终端,cd 到你想创建博客的地方,执行这一行命令:

1
curl -O 'https://raw.githubusercontent.com/xaoxuu/hexo.sh/master/hexo.sh' -# && chmod 777 hexo.sh && . hexo.sh -i init

当然,如果你想知其所以然,最好还是看一下本文。

StravaKit 是一个比较新而且代码比较规范的第三方SDK,但是目前还没有上传功能(详见 todo) 。所以我不得已对StravaKit 0.9.5增加上传功能,并进行一些简单封装和改编,使之能够植入到公司项目中。由于时间有限,我只增加了上传fit文件的功能,并且使用了第三方框架Alamofire,所以需要在项目中导入Alamofire

这篇博客把分层架构讲的很形象: 三层架构(我的理解及详细分析)

为什么要分层

代码系统分层就好比管理分层一样,各司其职,优点非常多,对于软件后期的维护来说是十分有必要的。它的优点有:

  • 解耦

    上一层依赖于下一层,如果测试下一层没有问题,那么问题就只有可能发现在本层了,便于发现和改正BUG。体现了“高内聚,低耦合”的思想。

  • 分工明确

    各个层次分工明确,将一个复杂问题简单拆分了。

  • 便于维护

    各层间通过接口解耦,接口与实现分离,从而可以非常简单的替换掉实现,或者实际实现等。

  • 逻辑复用(代码复用)和劳动成本的减少

    分层的根本在于代码的复用和劳动成本的减少。分层的最理想化的结果是实现层与层之间的互不依赖的内部实现,所谓的即插即用。

这是一个综合型的开发工具包,包含对系统类的功能扩展和一些常用控件的封装。

使用AXKit,你可以很大程度上简化一些系统方法的调用,例如:使用block的方式创建一个UI控件并为其添加事件响应或者手势; 使用链式语法进行字符串操作、沙盒文件存取和编辑操作、日期修改操作;万能控制器跳转(push/pop到任意层级的VC、跳转到指定文件名的VC)。 提供了代码冷却函数,一段时间内不会重复执行。内置了简单的主题框架、自定义状态栏、消息弹窗控件等UI模块。