どなブロ

エンジニアァのブログです

メソッドチェーンで改行する場合のドットの位置

メソッドチェーンして開業する時のドットの位置って次の行に置くのが自然かと思ってましたが、行末に置くのもメリットあると知りました。

行頭

  obj.hoge(param1, param2).fuga(param3)
     .piyo(param4)
  • 綺麗に揃って見える
  • 縦にザーッと眺めた時にメソッドチェーンがあるとわかりやすい
  • (デメリット)irbやpryにコピーすると1行目だけ実行されてエラーになる

行末

  obj.hoge(param1, param2).fuga(param3).
      piyo(param4)
  • 横に読んでるとメソッドが続くのがわかりやすい
  • irbやpryにコピーした時に1行目でエラーにならない
  • (デメリット)ザッと読んでると行末のドットは気づきづらい

まとめ

一長一短ですね。
好みで言えば行頭です!

参考記事

Rubyコーディングアンチパターン - Qiita