33
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

変数や配列とかの縦位置を揃えないほうがいい?

Last updated at Posted at 2015-01-24

概要

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

あんまり英語わからないんで…超意訳が入ってる場合もあると思います…

33
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?