これは厄介な間隔のあるタイプのスタイルですか?


9

他のプログラマーのコードを読む際、彼は私が見たことのないフォーマットを使用しています。例えば

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

私は認めます...このコードは私を怒らせます。このスタイルを実現することは困難です。IDEのビジュアルスタジオが提供するデフォルトのフォーマットと戦う必要があります。

このスタイルには正当な理由があることを知っていれば、この錠剤をもう少し簡単に飲み込むことができます。このスタイルは他のプログラミング言語/ IDEに由来していますか?


5
それはただ奇妙です。私の18年間の開発では、そのような慣習を見たことがありません。

5
推測しなければならないのですが、プログラマーは中括弧がまったく必要ないことに少し気が動転し、構文のすべてのサブトークンをインデントするのに慣れているPython変換者だと思います。
Telastyn

21
CTRL K + CTRL D!
RYFN

2
@ゼウス-ああ、これは型破りなフォーマットを解決するのに非常に多くの時間を節約してくれます。あなたはそのためのいくつかの回答ポイントを取得する必要があります。
P.Brian.Mackey

1
その再フォーマットのショートカット(Ctrl K + Ctrl D)は、Visual StudioのHTMLファイルやその他の形式でも機能します。
2012年

回答:


19

はい:http : //en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

Wsmithartスタイルとも呼ばれるWhitesmithsスタイルは、今日ではあまり一般的ではありません...もともとは、最初の商用CコンパイラであるWhitesmiths Compilerのドキュメントで使用されていました。それは、影響力のある3つのWindowsプログラミングブック、DurantによるProgrammer's Guide to Windows、Carlson&Yao、PetzoldによるProgramming Windows、Norton&YaoによるWindows 3.0 Power Programming Techniquesで使用されたため、Windowsの初期にも人気がありました。 。

このスタイルは、制御ステートメントに関連付けられた中括弧を次の行にインデントして配置します。中括弧内のステートメントは、中括弧と同じレベルにインデントされます...

このスタイルの利点は、ブロックが制御ステートメントとは明確に区別されている点で、Allmanスタイルの利点と似ています。ただし、Whitesmithsスタイルでは、ブロックは、空白で囲まれた無関係なコードのブロックのように見えるのではなく、依然として制御ステートメントに視覚的に接続されています。別の利点は、ブレースとブロックの位置合わせにより、ブロック全体が概念的に(およびプログラム的に)単一の複合ステートメントであるという事実が強調されることです。さらに、中括弧をインデントすると、それらが制御ステートメントに従属することが強調されます。

このスタイルの欠点としては、末尾のブレースが概念的に属しているステートメントと一致しないことが提案されています。ただし、閉じ中括弧は制御ステートメントではなく、開き中括弧に属します...

それは私が練習したのを見たことがないものです、IPUに感謝します。

Eclipseにはc ++用の組み込みのWhitesmithコードスタイルがあります。誰もがその言語で同じスタイルを使用することになっているため、Javaに悩まされる可能性があります。


4
「ありがとうIPU」とはどういう意味ですか?グーグルは私に教えてくれません...
amara

4
見えないピンクのユニコーン。 en.wikipedia.org/wiki/Invisible_Pink_Unicorn
Scott C Wilson

Whitesmithsスタイルは、行の終わりにタブを含みません。行の最初以外の場所にあるタブはすべて邪悪であり、火で殺す必要があります。
tdammers

6

同僚のコーディングスタイルは奇妙で、醜く、読みにくいです。

  1. コーディング標準がない場合は、そのフォーマットはどれも有効です。

  2. 彼らが書き込んだファイルに触れるたびにコードを再フォーマットすると、変更を追跡するのが非常に難しくなります。VCSを使用して差分を実行すると、すべてではないにしても多くのコード行が変更されます。

これが、コーディング標準が必要な理由です。これにより、誰もが何をすべきかを理解しやすくなり、再フォーマットに固執していない場合は再フォーマットを正当化することが容易になります。

それでも彼らがあなたの会社で働いているなら、それについて彼らに話してみましたか?


この人はずっと私の時間を過ごしています。さて、マイクロソフトフレームワークのデザインガイドラインを順守します。
P.Brian.Mackey

9
その場合、変更を加える前に(たとえば、特定の変更を追跡しやすくするため)、コードの再フォーマットを個別のチェックイン(Ctrl K + Ctrl Dなど)としてチェックインすることをお勧めします。
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.