新米パパの育児留学

新米パパの育児留学

未経験からエンジニアへの転職体験談など "リアル" な情報を発信

30代未経験からIT・Webエンジニアに転職した私のロードマップ
30代未経験からIT / Webエンジニアへのリアルな転職体験談1 ”エンジニアを目指し求人応募へ”
クロスバイク  LIG(リグ) MOVE 700Cの組み立て手順まとめ
本当に使えるものだけ!出産準備品・ベビー用品で実際に買ってよかったおすすめ10選
Ruby初心者におすすめの学習方法「プロを目指す人のためのRuby入門」
Ruby on Rails チュートリアル 完全攻略 概要と演習解答総まとめ

30代未経験からwebエンジニアへ転職した私のキャリア構築プロセス(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の関係性について勉強になった。
知ってたらなんてことないけど、知らなかったらハマってしまう。