Rails)Tweet【結論】presenceメソッドとは、RailsのActiveSupportによって提供されるObjectクラスのメソッド。レシーバーがnilの場合はfalseを返し、nili以外の場合はレシーバーを返す。【本題】presenceメソッドについてpresenceメソッドとは、ActiveSupportによって提供されるRailsのメソッドです。Objectクラスのメソッドなので、全てのオブジェクトに対して実行する事が出来ます。レシーバーがnilや空の文字列/配列の場合はfalseを返し、nili以外の場合はレシーバーを返すという働きをします。Railsでは他にもpresent?という同じ様にオブジェクトの有無を判定して、trueかfalseを返すメソッドが存在し、そちらの方が広く使われている傾向にあります。presenceの方が可読性が高まるシーン多くあるので、今回はそれを紹介します。名前が存在する場合は名前を出力し、無い場合には無記名と返す式が書く場合、present?を利用すると以下の様になります。"山田"これをpresenceメソッドで書き換えると、以下の様になります。'無記名'がtrueとなり、それをそのまま返します。||演算子は、左辺がtureの場合、右辺は評価されないので、name.presenceが存在すれば、name.presenceだけを返します。条件が増えるほど恩恵が大きいこれだけだと、恩恵が少ない様に見えますが、条件が増えると、その恩恵は大きくなります。以下は条件を増やしたコードです。100endこの様に、presenceメソッドの方が見通しが良い事が分かります。オブジェクトの有無の判定は、多くの場面で用いると思いますので、ぜひ活用して行きたいです。社内勉強会にて、ユーザーストーリーマッピングについて学んだ。ビズ側や他の開発メンバーと、仕様について認識合わせが上手くいかないことに課題を感じていたので、非常に参考になった。これまでは、手戻りを最小限にする為に、開発に取り組む前に要件を細かく箇条書きで洗い出し、それを道しるべに開発に取り組んでいた。考慮すべき仕様の抜け漏れが発生したりと上手く機能しない場面が多かったので、それの解決策になりそうだと考えている。ユーザーストーリーマッピングとは少し離れるが、ユーザーストーリマッピングの形式で、開発進捗ごとにバックログを分けて管理する手法に転用するのも良いと感じた。ガントチャートだと進捗状況(遅延/前倒し)が視覚的に分かりやすいが、タスクの優先順位/依存関係や現在着手中のタスクがどれか?というのが分かりづらいのが難点だと感じていたので、ぜひ取り入れたい。管理ツールについては、「Trello」が以前使った時に非常に使いやすかった記憶があるので、個人的にそちらの方を試してみて、もし良さそうならチームに展開したい。日)IBMのWatsonきっかけでエンジニアに憧れて28歳未経験でWebエンジニアへ転職。2018年12月から3年間で「10000時間」をプログラミングに捧げる計画を立て、学んだことをブログの投稿中。Activitiesryoutakuこのサイトについてプライバシーポリシ。