新卒エンジニアとして入社して8~9ヶ月経過して、ruby
なら少しは慣れたような気がしたので、今の気持ち(ポエム)を書こうかなと思い立ちました😳
以下のような新卒エンジニア向けの記事です!
・本格的な中〜大規模のrails
は初めてで
・エンジニアインターンでGitの使い方を知っていて
・railsを少し触った事があって
・国籍がコロンビアである🇨🇴
以下に限ったことではないのですが、僕の中で実践して良かったなと思った事だけなので🚷
これはruby
に関するtipsがメインです
メソッド名をググらない
method名すぐ忘れますよね
methods.grep()
を使うと良いと思いました!
> Date.today.methods.grep /begin.*day/
=> [:beginning_of_day, :at_beginning_of_day]
rspecを書く
特に大事なのはrspecを一番書ける人と仲良くなって、rspecの書き方を教えてもらった事です!
初めてのrpsecは書き方のイメージがつかないので、とりあえず書いてレビューしてもらおう😈
結果的に仕様を再確認したり、自分のコードのバグを見つけられます!
Better Specs は初めて読むと何とも思わないけど、色々と自分で書いたら、意味がわかったし、学びもあった!
次のステップとして、rspecのレビューをする
があると思います。
スラスラ書けても、スラスラレビューできないのがrspecなんだなと思いました!
(書き方が色々あったり、裏技があったり、ややこしいんですよね😒)
同じ実装を個人開発でも作ってみる
会社の技術をコピペしろということではなく、同じ機能を自分で実装するのです。
結果と手順は知っているので、調べながら、どうしてもわからない場合は出勤した時にコードを少し読んで、どんなライブラリを使っているのか確認しましょう😎
僕はこれでrescue
の仕組みや、DeviseTokenAuth
の仕組みを勉強しました!
0→1
にフェーズでしか実装しない(その後、改修されない)仕組みは自分から学ぼうとしないと、わからないので、大事だと思いました!
gemのソースコードを読む
rubyのgemは素晴らしいです。
とにかく読みやすい!!👀
また、普段何気なく使っているが意図がわからなかったdo~endブロック
の挙動とかもわかります!
PR → 【ruby】簡単ッ! do~endブロックって?
何より、機能を見に行けばqiitaには書かれていないmethodを見つけることもできます。
とにかくsource_location
を使おう!
> User.method(:take).source_location
=> ["/Users/****/Desktop/****/vendor/bundle/ruby/2.5.0/gems/activerecord-5.1.6.1/lib/active_record/querying.rb", 3]
端から読むのでなく、興味のある所だけ摘むだけでokだと思います。
将来的には全部知りたいですね。
Object(オブジェクト)を意識する
hoge.class
でクラス名を知るだけで検索効率が全然違います。
何より、わからなければソースコードを読めば良いのです👾
> Array.new.each.class
=> Enumerator
とにかくレビューする
これはruby
に関わらないことなんですが、、
やっぱり身近にいる優秀なエンジニアのコードを読むのが一番良いです☺️
もちろん自分で書いてレビューしてもらうのも大事ですが、レビューしないと視野が広がらないと思いました。
とにかく、レビューして自分では思いつかない箇所をその都度勉強すべし!
所感
レビューの話と似たようなことなのですが、とにかく優秀な先輩の仕事は全てストーキングしてます🕵️♀️
先輩のslackは全てスレッドフォローして普段からも疑問は質問して、勝手に学ぶのが一番近道だなと思います。
以上です!
来年は、もっと成長してたら良いな〜🚀