@@ -1553,16 +1553,17 @@ <h3 id="spaces-operators"><a class="anchor" href="#spaces-operators"></a><a clas
15531553< div class ="sect2 ">
15541554< h3 id ="safe-navigation "> < a class ="anchor " href ="#safe-navigation "> </ a > < a class ="link " href ="#safe-navigation "> Safe navigation</ a > </ h3 >
15551555< div class ="paragraph ">
1556- < p > Avoid chaining of < code > &.</ code > . Replace with < code > .</ code > and an explicit check.
1556+ < p > Avoid long chains of < code > &.</ code > . The longer the chain is, the harder it becomes to track what
1557+ on it could be returning a < code > nil</ code > . Replace with < code > .</ code > and an explicit check.
15571558E.g. if users are guaranteed to have an address and addresses are guaranteed to have a zip code:</ p >
15581559</ div >
15591560< div class ="listingblock ">
15601561< div class ="content ">
15611562< pre class ="rouge highlight "> < code data-lang ="ruby "> < span class ="c1 "> # bad</ span >
1562- < span class ="n "> user</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span >
1563+ < span class ="n "> user</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > < span class =" o " > & </ span > < span class =" p " > . </ span > < span class =" nf " > upcase </ span >
15631564
15641565< span class ="c1 "> # good</ span >
1565- < span class ="n "> user</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > </ code > </ pre >
1566+ < span class ="n "> user</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > < span class =" p " > . </ span > < span class =" nf " > upcase </ span > < /code > </ pre >
15661567</ div >
15671568</ div >
15681569< div class ="paragraph ">
@@ -1571,15 +1572,15 @@ <h3 id="safe-navigation"><a class="anchor" href="#safe-navigation"></a><a class=
15711572< div class ="listingblock ">
15721573< div class ="content ">
15731574< pre class ="rouge highlight "> < code data-lang ="ruby "> < span class ="c1 "> # bad</ span >
1574- < span class ="n "> user</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span >
1575+ < span class ="n "> user</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="o "> &&</ span > < span class ="n "> user</ span > < span class ="p "> .</ span > < span class ="nf "> address</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > < span class =" o " > && </ span > < span class =" n " > user </ span > < span class =" p " > . </ span > < span class =" nf " > address </ span > < span class =" p " > . </ span > < span class =" nf " > zip </ span > < span class =" p " > . </ span > < span class =" nf " > upcase </ span >
15751576
15761577< span class ="c1 "> # good</ span >
15771578< span class ="k "> class</ span > < span class ="nc "> User</ span >
15781579 < span class ="k "> def</ span > < span class ="nf "> zip</ span >
15791580 < span class ="n "> address</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span >
15801581 < span class ="k "> end</ span >
15811582< span class ="k "> end</ span >
1582- < span class ="n "> user</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > </ code > </ pre >
1583+ < span class ="n "> user</ span > < span class ="o "> &</ span > < span class ="p "> .</ span > < span class ="nf "> zip</ span > < span class =" o " > & </ span > < span class =" p " > . </ span > < span class =" nf " > upcase </ span > < /code > </ pre >
15831584</ div >
15841585</ div >
15851586</ div >
@@ -8473,7 +8474,7 @@ <h2 id="spread-the-word"><a class="anchor" href="#spread-the-word"></a><a class=
84738474</ div >
84748475< div id ="footer ">
84758476< div id ="footer-text ">
8476- Last updated 2025-03-31 18:25:47 UTC
8477+ Last updated 2025-03-31 18:26:04 UTC
84778478</ div >
84788479</ div >
84798480</ body >
0 commit comments