概要
github
でコードリーディングしてるとき、見やすいように配列の要素の縦位置を整形していたpull request
が取り込まれなかった理由に「へぇー」と思ったのでまとめた。
※こうすべきっていうことを主張してるわけではありません
とりあえずコード比較
sample1
$value = 1;
$value_123 = 2;
$arr = array('a', 'b', 'c', 'd', 'e');
$arr_123= array('foo', 'bar', 'baz', 'quux');
sample2
$value = 1;
$value_123 = 2;
$arr = array('a' , 'b' , 'c' , 'd', 'e');
$arr_123 = array('foo', 'bar', 'baz', 'quux');
配列とかも要素が揃ってるほうが、対応してるところが見やすいし、
ぱっと見、下のコードのほうがきれいで読みやすそう。
でも、これにも欠点はある
縦位置を揃えると問題になること
例えば、名前が長いvalue_123456
って変数と$arr_123456
って配列が新しくできたとすると
$value = 1;
$value_123 = 2;
$value_123456 = 3
$arr = array('a' , 'b' , 'c' , 'd', 'e');
$arr_123 = array('foo', 'bar', 'baz', 'quux');
$arr_123456 = array('aaaa', 'bbbb', 'cccc', 'dddd', 'eeee');
レイアウトが崩れちゃったからほかの行も修正
$value = 1;
$value_123 = 2;
$value_123456 = 3
$arr = array('a' , 'b' , 'c' , 'd', 'e');
$arr_123 = array('foo' , 'bar' , 'baz' , 'quux');
$arr_123456 = array('aaaa', 'bbbb', 'cccc', 'dddd' , 'eeee');
位置調整のためだけに、他の行も修正しているし、下記のようなことに困ることもありそう。
- リビジョン管理していて
diff
するときとか、本来の修正とは無関係であるはずの変更点がいっぱいできて邪魔になる。 - 何より無関係の行の修正をしたくない。
- 長い変数を短くより分かりやすいものに置き換えるとかの単純なリファクタリングの心理的ハードルが上がる。
- レイアウトずれたときに、しっかり他の行もそろえてくれる人ばかりではない。そうなったら、このレイアウトもすぐに壊れる。
- Editorでフォント設定に影響される。プロポーショナルフォントを使っている人には見え方が違う。(そんな人いるのか?)
参考
Align all array items #199
Vertical alignment
あんまり英語わからないんで…超意訳が入ってる場合もあると思います…