https://www.jianshu.com/p/de6a62148644
分析 ActiveSupport::Concern 模块的源码后,做了些总结。
其实多用用不同产品就好啦,有很多功能点都是相通的,比如用户登录注册,高级一点的比如权限管理、访问控制、还有多租户隔离之类。要读代码的话,先看文档跑起来然后扫一遍依赖和目录结构
从架构看有一个重要组件 Gitaly。要执行 git 操作时,gitlab-shell 和 gitlab backend 都会和它通信。
昨天说的是这个 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/initializers/0_as_concern.rb 支持了 prepend,可以更好地做 AOP 了
他们整合 VUE 的方式没啥好看的,因为现在有了 Webpacker,直接用这个是最好的,他们那个时候太早了
他们搞这么复杂是因为他们的业务复杂呀,实现远端仓库可以看看 B 大 几年前写的 https://ruby-china.org/topics/16295 就几十行