Zeals TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社Zealsの技術やエンジニア文化について発信します。現在本ブログは更新されておりません。新ブログ: https://medium.com/zeals-tech-blog

Omotesando.rbに登壇&参加してきました!

f:id:zeals-engineer:20190218004109j:plain

皆さんこんにちは! ZEALSでバックエンドエンジニアをやっているRyutoooooです!

最近はもっぱらDBのリファクタリングでビジネスサイドより、開発側が喜ぶことをメインでやらせてもらっています!

さて今回ですが、有名なRubyコミュニティの『.rb』系の表参道での会に参加してきました!!
同じくZEALSのサーバサイドエンジニア福本と参加ました。

僕は参加しただけですが、福本は当日LTを実施したのでその内容も含めてイベントの模様をお届けできればと思います!

『技術を使わない問題解決 ~チームが10人越えたら考えたいgem周り~』

なんともエモいテーマのLTですね!
実際に登壇をした時の反響もよく、Twitterでも好評でした。
(詳しくはこちらです)

こちらが登壇で使用したスライド資料です↓

speakerdeck.com

紹介したGemとOSS(4~14枚目)

今回問題解決の方法として、Gem等をいくつか紹介しました!

Danger:プルリク秩序の乱れ

github.com

PRに一定のルールを設定し、それを破るとコメントしてくれるというgemです!

実際にZEALSで導入した時の記事はこちらです。

Okuribito:技術的負債の増加

コードを静的解析し、未使用の可能性が高いメソッド等を列挙する github.com

コードを動的に解析し、外部呼び出しも含め分析する github.com

上記の2つをうまく用いて、使われていないコードを判断して葬ることができます!

CircleCI Bundle Update PR:gem updateの責任なすりつけ

Gemfile.lockとbundle updateの差分を検知して、自動でPRまで作成してくれます!
日常のレビューフローの中にgem updateを入れてあげることで、より安全にRailに乗っていくことができますね! github.com

エンジニアにとっての問題解決(15~22枚目)

個人的にはこの部分が一番好きな話でした。

僕が良いと思ったところは「問題解決にはレベルがある」ということです!

最も良いのが「技術を使わないで問題を解決すること」で、
最も良くないのが「難しい技術を使っているだけ…」なこと。

僕は「エンジニアなら技術使ってなんぼでしょ?」と思っていたので、最初はよく理解できませんでした...

では「なぜ技術を使うべきではないのか?」という理由について、以下の3つを挙げていました。

・技術は必ず陳腐化する
・技術は必ず属人化する
・技術は必ず負債になる

この3つを聞いて、凄く納得しました。
エンジニアだからこそ、技術をどう使うかをしっかりと考えたいと改めて感じました。

会場の皆さんからの反響もよく、ZEALSとしてすごく良いLTができたと思います!

個人的に印象に残ったLT

「kibela2esaと正規表現」

Ruby界隈ではご存知の方も多いうなすけさんが今回登壇していました。

登壇内容は、社内で使っていた情報共有ツールを違うサービスに乗せ替えるために、正規表現で全ての情報を取得するというものでした。
正規表現での苦労やRubyで書いたからこそ良かった点等々熱く語ってくださり、思わず聞き入ってしまいました!

github.com

「Railsでモデルのステータスを扱うベタープラクティス」

ngmtさんはモデルのステータスをどのように制御したらよいかをお話していて、共感するところが多くありました!

ポイントとしては、下記の3点です。

PlantUMLとレビューで設計共有・更新を漏らさない

シーケンス図を手早く書けるドメイン言語のPlantUMLを書き、常に設計を共有しておくということ。
スクラッチだったりスタートアップでは共有するのもコストでどうしても共有が疎か…なんてこともあったりしますね…

AASM gemでステータス管理・実装をカンタンに

僕は知らなかったgemなのですが、モデルのステータスをmodule化して定義できるみたいです。 github.com

最初はほんとに小さく始める、DB設計が正規化されていれば後からでもなんとかなる

これは間違いないですね...
正規化した後も大事で、DBのメンテナンスを疎かにしていると、後で痛い目を見ます(経験談)

speakerdeck.com

全体的な感想

Rubyのコミュニティは他の言語のコミュニティに比べて規模が大きいと感じました。
他の.rbもそうですが、これからもRubyコミュニティにどんどん参加し、1人のRubyエンジニアとして界隈を盛り上げていきたいと思いました!(登壇もしたい…)

Omotesando.rbは毎月第一木曜日に開催していますので、ぜひ参加してみてください!!! コミュニティの公式ページはこちらです。

omotesandorb.connpass.com