13


1

セミコロンの前にスペースを入れるのが悪いのはなぜですか?

perlstyleポッドの状態

_ セミコロンの前にスペースはありません _

その理由はわかりません。 私は英語では2つの部分からなる文字( '?'、 ';'、 '!'のような)の前にスペースがあってはいけないことを知っていますが、Perlコードを書くときこれがなぜ規則になるのかわかりません。

私は個人的にセミコロンの前にスペースを使用していると自白します。 私の理由は、それが声明をもう少し明確にするということです。 私はそれがそれほど強い理由ではないことを知っていますが、少なくともそれが理由です。

print "Something\n with : some ; chars"; # good
print "Something\n with : some ; chars" ; # bad??

2番目が悪いのはなぜですか?

10 Answer


17


説明セクションの最初の段落から

_ もちろん、各プログラマーはフォーマットに関して独自の好みを持っていますが、プログラムを読み、理解し、保守しやすくする一般的なガイドラインがいくつかあります。 _

説明セクションの3番目の段落から:

_ コードのレイアウトの美しさに関して、Larryが強く気をつけている唯一のことは、複数行のブロックの閉じ中括弧が、構造を開始したキーワードと並ぶことです。 それ以外に、彼はそれほど強くない他の好みを持っています: _

これはPerlプログラマーの間でのスタイルに関する慣習です。 気に入らなければ、無視することもできます。 私はそれをhttp://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html[SunのJavaスタイルのガイドライン]またはhttp://en.wikipedia.org/wiki/Indent_style#K.26R_styleと比較します。 [Kで字下げするための提案 環境によっては独自のガイドラインがあります。 たまたまこれらはPerlのための提案です。

この質問に対するhttps://stackoverflow.com/questions/1266551/why-is-it-bad-to-put-a-space-before-a-semicolon/1266579#1266579 [Jon Skeetは削除された回答で述べました] :

_ 他の人が好きなものと矛盾することに満足しているなら、最も読みやすい形式で書いてください。 自分のコードを他の人と共有する可能性がある場合、特にそれらが他の人もコードを提供する場合は、一貫したスタイルに同意することをお勧めします。 _


8


これは私の意見にすぎませんが、私は人々がさまざまな方法でコードを読むので「悪い」は相対的であることも理解しています。 あなたが自分のコードを見たことがある唯一の人であるなら、あなたはあなたが好きなことを何でもすることができます。 しかし、たくさんのPerlコードを見たことがあるので、私は2、3人が文の区切り文字の前にスペースを入れるのを見ただけでした。

あなたが世界の他の国々がしていることとは非常に異なる何かをしているとき、違いは他の人々に際立っています。 逆に、違うことをすると、同じ理由で他の人のコードを読むのが難しくなります。予想される視覚的なパターンが見えないのです。

私の基準は、視覚的な混乱を避けることであり、私は文脈の島を見るべきです。 目立つものは(あなたが望むように)注意を引きますが、私は通常1行に1つのステートメントしか持っていないので、私は私のステートメントセパレータに注意を引く必要はありません。 私が実際に見る必要がないものはすべて、視覚的背景に薄れていくはずです。 セミコロンが目立つのは嫌いです。 私にとって、セミコロンは小さな問題であり、私の目が明確なグループとして見るものの数を減らしたいのです。

句読点が重要な場合があります。それらを目立たせたいのですが、その場合はセミコロンに_out_をつける必要があります。 私はしばしば条件演算子でこれを行います、例えば:

私の$ foo = $ブール? $ some_long_value:$ some_other_value;

あなたが新しいコーダーであるならば、その駄目な文の区切り文字をタイプすることはあなたの生活の中で大きな苦痛かもしれません、しかしあなたの苦痛は時間の経過とともに変わるでしょう。 後で、ある痛みを軽減するために選択した流行が痛みになります。 あなたは結局構文に慣れるでしょう。 もっと良い質問は、なぜ彼らはすでに際立っていないのでしょうか。 重くて大きい句読点を持つ優れたプログラマフォントを使用している場合は、それらを簡単に確認できます。

あなたがあなたのコードの中でそれをすることに決めたとしても、私は人々が彼らの文章でそれをするのは奇妙だと思います。 私は本当にStackoverflowの前にそれに気づいたことはありませんが、ここにいる多くのプログラマーは、ほとんどの句読点の前にスペースを入れます。


4


それは_rule_ではなく、Larry Wallのスタイル設定の一つです。 スタイル設定は、あなたとあなたのコードを管理する他の人々が情報を素早く正確に視覚的に吸収するのに役立つものです。

私はこのケースではラリーに同意し、セミコロンの前のスペースを醜くて読みにくくしていますが、あなた自身のような他の人は正反対を見つけるかもしれません。 私は、もちろん、あなたが私が好きな種類のスタイルを使うのを好むでしょう、しかしそれについての本にはいかなる法律もありません。

まだ。


4


他の人が言っているように、これはスタイルの問題であり、厳格で速いルールではありません。 例えば、私は字下げのために4つのスペースが好きではありません。 私はブロックレベルのインデント/プログラマーのようなものを並べるためのスペースの本当のタブなので、私は perlstyleのその部分を無視します。

私はスタイルの理由も必要です。 あなたがあなたが与えられたスタイルを好む理由を明確に述べることができないならば、そのとき規則は無意味です。 この場合、その理由はかなりわかりやすいです。 不要な空白は、何かに注意を向けたり、読みやすくするために使用されます。 それで、セミコロンは特別な注意に値するでしょうか? すべての式(制御構造を除く)はセミコロンで終わり、ほとんどの式は1行に収まります。 したがって、予想されるケースに注意を向けることは、プログラマーの時間と注意を無駄にするように思われます。 これが、ほとんどのプログラマが1行で終わっていないという事実に注意を喚起するために式の続きである行をインデントする理由です。

私の$ fhを開く、 "<"、$ fileまたはdie "は '$ file'を開けませんでした:$!"

さて、私たちが空白文字を使う第二の理由は何かを読みやすくすることです。 です

foo( "bar");

より読みやすい

foo( "bar");

私はセミコロンに注意を向けているので、読みにくくすると思いますが、ファイルが正しくフォーマットされている場合は、ほとんどの場合、セミコロンについては気にしません。 確かにPerlは気にかけています、そして私がそれを見逃しているならば、それはそれについて私に言うでしょう。


4


スペースを自由に置いてください。 重要なことはあなたが一貫しているということです。一貫性を保つことで、エラーを簡単に見つけることができます。

という興味深いコーディングスタイルが1つあります。次の行の先頭(字下げ後) それは私の好みではありませんが、一貫している限りはうまくいきます。

更新:そのコーディングスタイルの例(私はこれを支持しません):

;サブキャプチャ(

防衛はここで見つけることができます:http://perl.4pro.net/pcs.html。

(2011更新:そのページはAWOLになったようです。救済されたコピーはここで見られます:http://ysth.info/pcs.html)


2


まあ、それは_style_、ルールではありません。 スタイルルールは、定義上、かなり任意です。 セミコロンの前にスペースを入れない理由は、それがThe Way Is Doneであるからです。 Perlだけでなく、Cやその他のC、C、C#、Objective C、Javascript、Java、PHPなどのC言語に戻る他のすべてのcurly-and-セミコロン言語で


1


人々はそれを期待していないからです。 あなたがそれをするとき、それは奇妙に見えます。


1


私が引用する理由は、プロジェクト内で一貫していることです。 私は、大多数のプログラマーがスペースを挿入しないで1人のプログラマーが挿入するプロジェクトに参加しています。 彼が欠陥に取り組んでいるならば、彼は定期的に彼が調べているコードの行にスペースを追加するかもしれません。

使用されているビジュアル差分ツールはこれを判断できないため、変更されたものが1つだけでレビューが困難になったときに大量の行の変更を表示します。 (OKこれはより良い差分ツールのための議論かもしれませんが、埋め込まれた仕事はツール選択をもっと制限する傾向があります)。

多分これのための適切なガイドはあなたがあなたのために欲しい形式を選択することでしょうセミコロンがあなたがステートメント自体を変更しない限り他を変更しないでください。


0


私は本当に嫌いです。 しかしそれはあなたがしなければならない100%個人的な決断そしてグループの慣習です。


0


コードスタイルは、コードの読み取りと保守を容易にするための一連の規則です。 本当の悪いスタイルはありませんが、他のものより受け入れられているものもあります。 そしてもちろん、それらはいくつかの「宗教的な戦い」(中括弧スタイルと呼ぶために;-))の元になります。

実生活を比較するために、赤、黄/オレンジ、緑のトラフィックライトがあります。 色の心理的影響にもかかわらず、パープル、ブラウン、ピンクを使うのは間違っていませんが、私たち全員が色に慣れているからといって交通事故は少なくなります。