本指南的目的是给想要成为极狐 GitLab 贡献者的后端开发者, 提供一个学习路线图, 也希望能帮助 Mentor 借此路线图为教材, 带领没有 Ruby/Rails 经验的朋友快速上手.
GitLab 的核心功能是基于 Git 构建的, 所以掌握 Git 的使用和原理是非常必要的.
目前需要了解的知识有: Git 的 commit/branch/merge/repository .
GitLab 包含大量的 Ruby 代码. 在深入源码之前, 先简单了解 Ruby 的语法和生态会很有帮助.
Ruby 官方提供的快速上手指南, 能帮助开发者快速了解 Ruby 的基本使用和风格.
MacOS 内置了 Ruby, 在阅读指南时不需要额外的安装.
https://www.ruby-lang.org/en/documentation/quickstart
实际项目中会用到多个不同版本的 Ruby, 需要掌握常用的多版本管理工具.
Ruby 的安装有很多种方式, 这里推荐使用 asdf, 因为 Gitlab Development Kit 的自动安装方式依赖了它 .
什么是 Gem: https://guides.rubygems.org/what-is-a-gem/
制作一个 Gem: https://guides.rubygems.org/make-your-own-gem/
Gem command: https://guides.rubygems.org/rubygems-basics/
什么是 Bundler: https://bundler.io/guides/getting_started.html#getting-started
如何管理依赖和推荐的工作流: https://bundler.io/guides/using_bundler_in_applications.html
bundle 安装命令: bundle install
bundle 执行命令: bundle exec
了解了基本的 Ruby 知识就可以学习 Rails 的内容了.
从官方的例子入手, 你能学到 Rails 的安装, MVC 的代码组织方式, Rails 的基本约定.
当你体验完这个例子之后, 你是否能总结出 Rails 的几大特点? 试着先写几条, 再看看 DHH 怎么说.
了解 Ruby 迭代器.
了解 Ruby 常用类库的使用: String / Array / Hash / Integer / IO / File / Time / Date .
终于来到了 Ruby 的精髓: Ruby 元编程 (第2版) .
通过本书的第一部分(前6章, 第二部分作为扩展阅读), 你会学到什么是元编程, Module 和 Class 的区别联系, 如何定义方法, 如何定义类 .
Rails 引领了一个时代的 Web 框架风格, 在各个功能点上有非常独到的设计.
在学习 Rails 功能的过程中, 可以结合上面元编程的知识, 思考一下 Rails 是怎么实现的.
https://docs.gitlab.com/ee/development/architecture.html
GitLab Development kit (GDK) 为开发 GitLab 和相关的项目提供本地环境.