プログラミングに関する質問です。最近PHPやPerlをかじり始めたばかりの初心者です。


関数の中など、読みやすいように字下げをするのが一般的だと思うのですが、あれは「タブ」で行う方がいいのでしょうか。それとも「半角スペース」で行う方がいいのでしょうか。もし半角スペースなら、基本は何個あけますか?一般的な作法として、みなさんどうしておられるのかお聞きしたいです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/05/05 02:04:58
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答7件)

id:Reiaru No.1

回答回数152ベストアンサー獲得回数38

ポイント18pt

タブで行なうのが一般的です。


と言いますのは、タブの方がファイルサイズを減らせる為です。

インタプリタ型の言語である以上、これは未だに重要視されています。mod_perl などはともかく。


私が今まで見てきた限りでは「タブ = 半角スペース 8 つ分」というのが多かったですね。

次が 16、その次が 4 です。その前提で以下に話を移します。


見かけ上は同じに見えますが、半角スペースでタブと同じ見た目にしようとすれば、

4 文字 ~ 16 文字 (= バイト) を消費する事になります。

これはタブを使うよりも 4 ~ 16 倍の記憶領域を消費するという事です。


また、そもそもコーディング時にそんな馬鹿馬鹿しいスペースキーの連打もしていられません。

もしも、その様な事を要求するクライアントがいたとすればそちらの方がおかしいでしょう。

無駄に開発時間が延びる為、それは人件費の増加に繋がります。

(タブにしておいて、後から半角スペースに置換という事もできますが)


ただ、タブというのにも問題はありまして、見る側の設定如何でその見え方が変わる事があります。

ですので、「タブを半角スペース何個分としてコーディングするか」は最初に決めておく必要があります。

id:mine-D

なるほど、スペースはバイト数を消費してしまうんですね。それは考えていませんでした。あと、やっぱりスペース何度も打つのはめんどいんですね。ありがとうございます。

2007/05/05 01:50:23
id:memo77 No.2

回答回数238ベストアンサー獲得回数20

ポイント17pt

どっちでもいいというのがほんとのところです。

とにかくタブとスペースを混在させないこと。

複数人での開発環境ではスペースで字数を統一するのがよいのでは。

ちなみに最近のVisual Stdio .Netなどでは勝手にインデントされるようになっているので、もう意識することもないです。

実際のファイルにはスペースで埋め込まれています。

id:mine-D

勝手にインデントされる環境もあるんですね。ありがとうございます。

2007/05/05 01:50:57
id:yuki_furuya No.3

回答回数83ベストアンサー獲得回数4

ポイント17pt

自分は、メモ帳とかでも見やすいように半角スペース4つでインデントしています。

id:mine-D

スペース派でいらっしゃいますね。やはり四つですか。

2007/05/05 01:51:27
id:wm5775 No.4

回答回数351ベストアンサー獲得回数4

ポイント17pt

私もタブ派で、半角スペース4つでコーディングするのが好みです。

確かに、タブの表示幅が定義できないメモ帳などがあると見づらくなりますが、半角スペースでインデントされると個人的には非常に見づらいです。

#業務では、事前にルールを決めると思いますが、スペースでのインデントを指定されたことは未だかつてありません。

また、余談になりますが、pythonはコンテクストをタブによるインデントで判断するように設計されています。

個人的にはタブをお奨めします。

id:mine-D

タブで、半角四つに設定という事ですね。ありがとうございます。「pythonはコンテクストをタブによるインデントで判断」というのは、まったく触った事がないので、面白いと思いました。調べてみます。

2007/05/05 01:52:52
id:yuu9821 No.5

回答回数14ベストアンサー獲得回数0

ポイント17pt

私はtabを使ってます。タイプが楽なので。

tab幅は半角スペース4個分に設定しとります。

ターミナルでvi使う事が多いので、8だと横に延びすぎて不便。

#このあたりは好みの問題でしょうな。

逆にWindowsでのプログラミングならば、tab幅が8でも変わらない

気がします。結局、使ってる環境次第ですね。

あとは規約でどうしてるかどうか。

業務で行ってる開発ならば、コーディング規約あるでしょうし。

id:mine-D

環境次第という事ですね。個人的な話をしますと、coLinuxでWindows内に環境を作って、そこで勉強していこうと思っていて、viを使うつもりですので、参考になります。ありがとうございます。業務ではまったく…。むしろ業務でやらせてほしいくらいですが。

2007/05/05 01:54:38
id:studiokingyo No.6

回答回数47ベストアンサー獲得回数2

ポイント17pt

字下げ(タブ、半角スペース)は自分が見やすいならばどのようにしても良いと思います。

http://astyle.sourceforge.net/

のようなツールを使い、提出先が好むスタイルに変換してしまえばよいと思います。(Ruby,Perlは対応していませんが)

http://www.6809.net/tenk/html/lib/doc/astyle_j.htm

にインデントのスタイルが名前と共に例示されています。


私はRubyを書くときは情報量を集約するため、横スクロールを極力しないため、タブキーは押しにくいため 「半角スペース1つ」で行っています。

昔は1タブ4文字でした。ですが、4文字でもフォントの設定により横スクロールが面倒だと感じたため今の状態に落ち着いています。

id:mine-D

フォーマッターというんですか、こういうものもあるんですね。まったく知りませんでしたので、非常に勉強になります。横スクロールをできるだけしないというのも、なるほどという感じです。ありがとうございます。

2007/05/05 01:56:44
id:oldtyper No.7

回答回数1ベストアンサー獲得回数0

ポイント17pt

Tab でも スペース でもかまわない.

私は Editor で Tab(4) に設定しています.

Tab(8) では Indentが 深くなったときに 右に行き過ぎる.

id:mine-D

エディタで設定という事ですね。感謝。

2007/05/05 01:57:07
  • id:studioes
     私はハードタブ派。 エディタの設定は、1タブ4文字。
     前にいた会社じゃソフトタブ統一だったが、6文字だったな。
     別にどっちでも問題は無いが、スペースで作ると、容量が微妙に増えるんで、狭いレンタルサーバに大量のコードを突っ込むと、案外差が出る。
    http://sonic64.com/2004-12-23.html
  • id:kurukuru-neko
    PEAR(PHP) 標準コーディング規約
    インデント
    空白 4 つのインデントを使用します。
    タブは使いません。
    http://pear.php.net/manual/ja/standards.php
  • id:b-wind
    Python 以外は個人的な趣向がモロに出そうですね。
  • id:mine-D
    どうも。PEARの規約を見たのが、この質問をしてみようと思った強い動機ではあります。みなさんのご意見を参考にしつつ、自分にあったやり方を見つけてみたいと思います。感謝。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません