新米パパの育児留学

新米パパの育児留学

『育児留学』とは、育児を通して異なる視点を得たり新しいことに挑戦して自己成長に繋げること。育児奮闘中の新米パパが育児を通して得た気づきや感じたこと、育休中に習得したプログラミングに関する話題を発信していきます。

未経験からエンジニアへ転職した私のキャリア構築プロセス(32週目)

スポンサーリンク

スポンサーリンク

f:id:mochikichi321:20171218132720j:plain

異業種から未経験でエンジニアへ転職し、Ruby(Ruby on Rails)エンジニアとして新しいキャリアがスタートしました。エンジニアとしてのキャリアを構築していくプロセスを綴っていきます。これからエンジニアを目指される方の参考になれば幸いです。

この記事を書く目的

・学んだことをアウトプットすることで理解を深める

・業務/学習の軌跡を残すことで自分が指導する立場になった時にどこでどういうことにつまづいたかがわかり指導しやすくなる

・エンジニアを目指してプログラミングを学習している方がエンジニアの仕事がどんなものかをイメージしやすくなる(会社によるので一例として)

業務

・独自gemログの集計と解析

・[Rails5.1化] gemのバージョン依存解消

・コードレビュー

学び

prependのレシーバに注意

classにincludeされたmoduleの中のメソッドを書き換えたい場合はレシーバの指定に注意が必要。
先にmoduleがincludeされて、その後にprependされているため書き換わらない。

SampleClass::SampleModule.prepend(After)とすると書き換わらない
SampleClass.prepend(After)とすることで書き換わる

irb(main):001:0> module SampleModule
irb(main):002:1>   def foo
irb(main):003:2>     return "before"
irb(main):004:2>   end
irb(main):005:1> end
=> :foo
irb(main):006:0>
irb(main):007:0* class SampleClass
irb(main):008:1>   include SampleModule
irb(main):009:1> end
=> SampleClass
irb(main):010:0>
irb(main):011:0* SampleClass.new.foo
=> "before"
irb(main):012:0>
irb(main):013:0* module After
irb(main):014:1>   def foo
irb(main):015:2>     return "after"
irb(main):016:2>   end
irb(main):017:1> end
=> :foo
irb(main):018:0>
irb(main):019:0* SampleClass::SampleModule.prepend(After)
(irb):19: warning: toplevel constant SampleModule referenced by SampleClass::SampleModule
=> SampleModule
irb(main):020:0>
irb(main):021:0* SampleClass.new.foo
=> "before"   #書き換わっていない
irb(main):022:0>
irb(main):023:0* SampleClass.prepend(After)
=> SampleClass
irb(main):024:0>
irb(main):025:0* SampleClass.new.foo
=> "after"    #書き換わった

所感

moduleのincludeprependの関係性について勉強になった。
知ってたらなんてことないけど、知らなかったらハマってしまう。