SmartHR Advent Calendar 2023シリーズ2の6日目です。
SmartHRは、RubyKaigi2023やKaigi on Rails 2023などRuby系のテックカンファレンスやRailsガイドに協賛しており、また、イベントでの登壇や書籍の執筆などRubyに精通したエンジニアが数多く在籍しています。
それゆえ、多くのプロダクトでRuby(Rails)が採用されたりもしています。
そんなRubyな会社にRuby未経験で入社(2023/4〜)した私が、これまで生き延びるためにすがりついている活用しているツールやサービスを「三種の神器」として紹介します。
その1 RubyMine
言わずとしれたJetBrains社製のIDEです。以下の機能をよく利用しています。
コードジャンプ
調べたい変数やオブジェクトの定義元にジャンプします。定義元では、使用箇所の一覧を参照することもできます。
コード補完
かなり精度高く、書きたいコードをサジェストしてくれます。
ブレークポイント
ブレークポイントを設定した箇所で処理が中断され、中断された時点のプログラムの状態をGUIで参照できます。対話形式のコンソールを操作することも可能で、任意の変数やオブジェクトを参照したり操作したりできます。
※今気づいたのですが、RubyMine公式サイトでより詳細に機能が紹介されているので、併せて参照してみてください。
その2 binding.pry
Pry
ソースコード内にbinding.pry
を差し込んでプログラムを実行すると、該当箇所で処理が中断され、中断時点のスコープでPryセッションが開始されます。Pryセッションでは対話的操作でプログラムの状態を参照したり操作したりできます。デバッグの際に重宝します。
IDEのブレークポイントでも同じことができますが、なんら設定が不要で思い立ったら即使えるため、よく利用しています。
※今気づいたのですが、SmartHR TechBlogでより詳細な解説記事がありましたので、併せて参照してみてください。binding.pryキホンのキ
その3 AIサービス
GitHub Copilot
ReturnキーとTabキーを連打するだけでプログラムがかけてしまう魔法のツールです。(※これはボケです)
設計や処理内容が頭に入ってさえいれば、適切なコメントを書くだけでほぼ正確なコードをサジェストしてくれます。未だにRubyの細かなシンタックスに慣れていない部分があるので...本当に心強いです。
※今気づいたのですが、GitHub Copilotさんに頼り切っているからいつまで経ってもシンタックスを覚えられないのかもしれません。
ChatGPT
ハマったときによく相談します。私自身がそうですが、誰かに相談するとき、相談内容の整理に時間をかける方は少なくないと思います。ChatGPTさんは、わからないことがわかってない状態の相談でも真摯に対応してくれます。怒られることも馬鹿にされることも絶対にないので、安心して相談ができます。
※これらAIサービスはSmartHRにおけるAIサービス利用方針に基づき、その範囲内で利用しています。
まとめ
以上、Ruby未経験者がRubyな会社で生き延びるための三種の神器として
- RubyMine
- binding.pry
- AIサービス
を紹介しました。
私はこれらのツールやサービスを駆使することで、曲がりなりにも成果を上げ(ているはず...多分)、なんとか生き延びることができています。
これすなわち、適したツールやサービスを駆使することで特定領域の経験/知識不足を多少は補える。ということなんだと思います。
本当にいい時代...。
使えるものは使い頼れる人には頼りながら、引き続きチャレンジングな仕事に首を突っ込んで行きます!!