Ginza.rb 第59回

Ginza.rb 第59回 GitLabのお宝を拝見しよう!に行った。会場はメドピアさん。

ginzarb.doorkeeper.jp

今回もイントロダクション芸人として定評の y-yagi さんが以下 Gist を用意してくれて道案内をしてくれた。いつもありがとうございます。

https://gist.github.com/y-yagi/30e62bb2b305250e5c59fb781d719d3e

個人的な GitLab の印象は、綺麗に Rails way から離れた Rails という印象だった。どういうことかというと外れるべきところには、きちんと説明が記されたドキュメントがあり、GitLab として Rails way から外れるべき選択をしたことが残されていること。それはドキュメントはリポジトリのリソースの中で完結していて、何々については何処何処を見てといったリソースの分散がない点も良さそうだった。

そんな感じで GitLab は秩序を考えながらいろいろと魔改造している感あったが、中でも印象に残ったのはデータベースのマイグレーションでダウンタイムが発生するかどうかを、マイグレーションファイルに明示するあたり。以下はひとつの実例より

class AddTypeToLabels < ActiveRecord::Migration
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = true
  DOWNTIME_REASON = 'Labels will not work as expected until this migration is complete.'

DOWNTIME を真にした場合は、DOWNTIME_REASON にその理由を示すようにしており、これは良さそうな拡張だと思った。

以前の Ginza.rb で Discourse を読む会があったが、(背景があるのはもちろんのこと) 作り手次第でいろいろな色がつくことを再確認しつつ面白く参加させてもらった。今回もありがとうございました。