実務のコードは膨大すぎて大変だった!
Railsで下記のサービスを作ったことはありますが、やはり、実務としてのコードは膨大すぎて、初めて実務に入った時は大変な思いをしました。
私だけがわからなかったことかもしれませんが、膨大なコードを把握するために知っておくといい項目をいくつかまとめてみようかと思います。
環境
- Rails
- VSCode
- macOS
Railsのコードの動きの把握
最初にRailsのコードの把握するコツを紹介します。
どこにも定義されてないメソッドについて
例えばpost_controller.rb
に定義されてないのに使われているメソッドがありますね。
それは主にmodelで定義されたメソッド
かgem専用のメソッド
の可能性が高いです。
まずはpost_controller.rb
なので、model/post.rb
を調べてみましょう。モデルメソッドがコントローラーで使われているかもしれません。
そして初心者なので、全てのgemを把握しているわけではないので、モデルメソッドではない場合はGoogle検索してみましょう。
メソッドがどこに定義されているかをVScodeで検索する方法としては下記の虫眼鏡アイコンか、command
+shift
+f
になります。
この検索機能を利用して、どこで定義されたのか、他ではどういうふうに使われているのかが確認できます。
ちなみに、Javascirptではお馴染みのgo to definition
(F12
キー)はrailsではデフォルトではないようで下記の記事に沿って設定を行うとF12キー
でメソッドジャンプができるようになります。
そしてRailsはDBのテーブルごとに役割がわかりやすく分けられているので、
VSCodeでcommand
+'P'でファイルの検索すると、作業効率が上がります。
viewで話からないメソッドはhelper
とdecorater
を見てみよう!
viewでもどこに定義されているかわからないメソッドがあります。
その時はhelper
ファイルとdecorate
ファイルを確認しましょう。
詳しい説明は下記の記事を読んでいただければなと思います。
schema.rb
ファイルを読んでみよう!
上にもお話ししましたが、テーブルごとに役割が分かれているので、Schema.rb
ファイルを読んでみると、大体の動きがわかります。
routes.rb
ファイルも読んでみよう!
routes.rb
ファイルは学習でも結構慣れてきたと思いますが、私にとっては全体の動きを把握するために結構読んでました。
最後に
Railsはとても便利ですが、その分、省略されすぎていてむしろわかりにくくなる!というのが駆け出しエンジニアの私が感じたことです。
自動importよりReactみたいにimportを明記してくれればわかりやすいなと思ったりもしますが、慣れてくるとサービス全体の動きが把握しやすいフレームワークだと思います。
この記事はここまでにしたいと思います。
ご指摘や、その他のコードの動きの把握のコツがございましたら、教えてください。