モバイルアプリエンジニアの山下です。
LCLでは全てのWebサイト・APIや社内ツールでRuby / Ruby on Railsを採用しています。
当ブログでも開発中に得た色々な知見がアウトプットされてきました。
そこで今回は、Ruby / Ruby on Railsに関する過去の記事を振り返ってみようと思います。
※ 記事中には古い情報が含まれている可能性があるためご注意ください
DB関連
LCLでは効率的に開発を進めるためにチームメンバーが誰でもマイグレーションできる状態にあります。これを支えているのがスキーマ設計ガイドラインと運用ルールです。これらを守ることによりマイグレーションによる障害やパフォーマンスの低下を回避できています。
最近では更なる効率化を求め、新規開発中のサービスにRidgepoleを採用しました。 初期段階では変更も多いため、マイグレーションの手間が掛かりがちですが、手間から解放されて期待通り効率的な開発ができています。
バッチ処理
弊サービスは比較サイトという特性から多くの情報を取得・加工しており、毎日多数のバッチ処理が走っているのですが、これを支えてるのが大量にデータを扱うときの知見です。バッチ処理についての知見は思ったよりも記事に出来ていなかったので、これからアウトプットしていければと思いました。
Gem紹介
サービス開発から日々の作業まで多くの場面でRubyは欠かせない存在となっています。その理由のひとつに便利なGemがたくさん公開されていることですね。最近はあまりどういうGemを利用しているか紹介できていないのでサービス開発に欠かせないもの日常的に使っているものまで紹介していけたらと思います!
運用・保守
※ 廃止は延期となりました
GemやRubyGems自体の更新、記事にはありませんがRuby自体のバージョンアップなど、これらもできる限り追従するように頑張っています。大切なデータを危険にさらさぬようにセキュリティアップデートもしっかり対応して安全なサービスづくりを目指しています!
RubyMine
RubyMineは私ももっと多くの機能を使えるようになりたいと思いつつも、なかなか使いこなすことができていません..
LCLではバックエンドエンジニア全員にライセンスを配布しており、雇用形態問わず誰でも使用することが出来るので、RubyMineの設定や操作のノウハウもチーム内で共有し合いそれをアウトプットしていけたらと考えています。
デプロイ
これらの記事では主にデプロイの環境についてGem等を利用して便利にしているノウハウが書かれています。ちなみにLCLでは、WebサービスやAPIをSlackからデプロイできるようになっており、それらの裏側のツールもRubyで作っています。
Danger
コードレビューの機械的な指摘はDangerに任せる - LCL Engineers' Blog
チーム開発をする上でDangerは欠かせない存在となっています。このツール自体は他の言語書くことも可能ですが、LCLではやはりRubyで書いています。
おわりに
Ruby / Ruby on Railsが中心となっていますが振り返ってみるとあまり記事が書けていないように思いました。もっと誰かのお役に立てそうな知見はたくさんあるはずなので、チーム一同これからどんどんアウトプットしていければと思います。
LCLでは、Rubyが好きでRubyを使ってサービスを開発したいという仲間を絶賛募集中です!