新米パパの育児留学

新米パパの育児留学

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

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

スポンサーリンク

スポンサーリンク

f:id:mochikichi321:20171218132720j:plain

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

この記事を書く目的

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

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

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

業務

・[rails5.0化対応]ダイナミックルーティング廃止

・[rails5.0化対応]バージョンアップの影響評価(ChangeLog評価)

・[rails5.0化対応]belongs_toのデフォルト挙動変更に伴う対応

・コードレビュー

学び

git grepで検索する際は、gitignoreの指定に注意

アプリケーション全体中の文字列を検索するために、アプリケーションディレクトリでgit grepしたが、.gitignoreの中に/vendor/bundle/が含まれており、gemfileが検索対象から外れていてハマった。

*/.gitignore
/vendor/bundle/

[Git] .gitignoreの仕様詳解

extend (Object)

extendメソッドは、オブジェクトの特異クラスにモジュールを取り込み、モジュールのメソッドを特異メソッドとして使えるようにします。取り込むモジュールは引数moduleに指定します(複数指定できます)。戻り値はレシーバ自身です。

extend (Object)

belongs_toのデフォルト挙動変更

belongs_torequired,optionalの挙動(Rails 4.x(<5.x))

required未指定(デフォルト)

デフォルトではrequired: falseの状態
nilを許可する

class Article < ActiveRecord::Base
  belongs_to :user
end
required: trueを指定

nilを許可しない

class Article < ActiveRecord::Base
  belongs_to :user, required: true
end

belongs_torequired,optionalの挙動(Rails 5.x)

optional未指定(デフォルト)

デフォルトではoptional: falseの状態
nilを許可しない

class Article < ActiveRecord::Base
  belongs_to :user
end
optional: trueを指定

nilを許可する

class Article < ActiveRecord::Base
  belongs_to :user, required: true
end

Rails5からbelongs_to関連はデフォルトでrequired: trueになる

ActiveHash系のbelongs_toのデフォルト挙動は変わらない

ActiveHash系(ActiveHash, AvtiveYaml, ActiveFile, ActiveJson)のbelongs_toのデフォルト挙動はRails 5.0になっても変わず、nilを許可する

所感

RailsChangeLogを初めて見た。エンジニアからプルリクエストが投げられて機能の改善が行われていっていて(当たり前なんだけど)Railsってオープンソースなんだなぁ、すごいなぁ、ありがたいなぁと思った。 管理する側も有志だし、改善のプルリクエストを投げるのも有志。良いものを創りたいから知見や時間というリソースをどんどん投入していくという文化っていいな。