AOP in Android

AOP wiki Aspect-oriented programming, 意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

稀疏文件 Sparse File

稀疏文件介绍

稀疏文件,这是UNIX类和NTFS等文件系统的一个特性

例如:/var/lib/docker 目录,实际占用非常小,但是在系统里面看到的占用是 11G 的文件目录

go vendor 机制讲解

vendor 是 go 1.5 以后支持的,1.6 默认开启,可以关闭则直接 在GOPATH下面查找依赖包

vendor 原则:

  • 当前包下有vendor目录,则从其下查找第三方的包,如果没有找到,则继续执行下一步操作
  • 当前包目录下没有vendor目录,则沿当前包目录向上逐级目录查找vendor目录, ,直到找到 $GOPATH/src下的vendor目录
  • go 1.12 以后,也默认开启 go mod, 那么如果 vendor目录没找到是不会去 GOPATH 寻找,则尝试 go get 如果失败则编译失败
  • go 1.12 以前,在GOPATH下面查找依赖包
  • 在GOROOT目录下面查找依赖包

故兼容的情况下,请使用 GOPATH 保证不出错,兼容 GOPATH 和 go mod 请设置环境变量 GO111MODULE=“on”