Netbeans 7.4では、メソッドルールごとに「最大10行」が導入されています。このルールはどこから来たのですか?[閉まっている]


80

NetBeans 7.4 ベータは現在一般にダウンロード可能であり、デフォルトで奇妙な警告ルールが導入されています。

メソッドの長さは16行です(10行許可)

私の質問は:これは受け入れられたコード規約のルールであり、どこかで何らかの形で証明することができますか?NetBeansのサポート/開発者は、これはバグではないと述べていますが、10行しか許可されていない理由と、このルールの起源はどこにあるのかについては説明していません。


25
10行に空白が含まれているという事実によってさらにばかげたルールです。

13
はい、すべて空の行を削除しましょう...コードが改善されます:)
Chris Laarman 2013年

2
空白はもう含まれていません。NBインストールをパッチ1に更新します。netbeans.org/ bugzilla / show_bug.cgi?id
Ben

5
私が理解したように:それは、コードを書くときに私たちの心をよりよく計画することを私たちに強制するものです。つまり、もっと長くする必要がある場合は、分割することができます。
SaidbakR 2014年

回答:


129

NetBeansオプションでメソッド/関数の最大長の警告動作を変更できます(下にあります) ツール- >オプション- >エディタで、ヒントの「下、タブが多すぎる行のチェックボックスリストの」セクション)。

そこで、最大行数、警告方法などを設定できます。

このルールはNetBeans開発者によって導入されたと思います。チームで作業する場合、QAがコードを「検査」するために使用する自動ツールが長いメソッド宣言/関数本体にフラグを立てるからです。残念ながら、「コードアナリスト」による自動化ツールの使用は増加していますが、その背後にある理由についての理解はまだ限られています。関数の長さを数百行にする必要があるとは言いませんが、これはまったく間違っていますが、コーディング法としてハードコードされた数値が登場します。


6
公平を期すために、私が見たすべてのメトリックは、関数の長さが長くなるとコードの可読性が低下することを示しています。コードも、これまでのところその保守性を約ライン50で急激に低下し始めると言うするようになり2コンプリート
cwallenpoole

1
NetBeansに複数のコーディング言語をインストールしている場合は、最初に「言語」ロールアップを「PHP」に切り替えることを忘れないでください。
panticz

保守可能なソフトウェアの構築におけるJoostVisserは、15行と述べています。しかし、それはコードベース全体との関連で考慮されるべきです。15行より長い数ユニットは問題になりませんが、100行数ユニットは問題になります。
アロンソデルアルテ

25

「10行ルール」は、テスト駆動開発の実施と関係があります。理論では、10行を超えるメソッドは、テスト可能なユニットに分割する方が適切です。理論的には持ちこたえますが、実際には、このような警告は役立つというよりも厄介です。


9
「10行ルール」により、1日の
大半

0

それについての慣習はないと思いますし、特に大きなプロジェクトで小さな機能を動作させるのは非常に難しいです。

NetBeans(またはルール)の問題は、角かっこまたはドキュメントが1つしかない行を数えることだと思います。

この記事は彼に5-15行の書き込み関数についての意見を与えます。


0

私は常にこの警告と、ネストされたブロックが多すぎるという警告を無効にします。私は大きなメソッドを持たないという考えを理解していますが、多くの場合それは実用的ではありません。他の誰かが言ったように、IDEをなだめるためだけにコードを任意の関数に分割し続けると、スパゲッティコードがいたるところにジャンプしてしまいます、リファクタリングは後で大きな問題になります。

行の長さの制限の警告と同じように、おそらく1985年に50文字の長さの行で横にスクロールしましたが、今日ではより大きなモニターがあります(現在もカラーです!)。制限内に収まるように変数名を短縮してコード行を切断し、完全に読み取り可能なコード行を、制限内に収まるように判読できない混乱に変えるのを見てきました。

個人的には、これら3つのルールが合わさって、読み取り可能/テスト可能なコードの作成に役立つよりも多くのガベージスパゲッティコードが発生したと思います。


-1

そのようなルールはないと思います。私はいつも、良い慣習は、スクロールせずに読むことができるよりも多くのコード行がクラスにないことだと思っていました。10行は私にはあまり思えませんが、一般的には概要を説明し、テストを簡単にするためのものです。


5
私にとって、1ページのクラスも絶対に目指すべきものではありません。行数を制限するルールを設定するのは簡単ですが、それでもコードロジックをどこかに配置する必要があります。また、頭の中で一緒に保持できる関数/クラスのジャンプインとジャンプアウトの数にも制限があります。
userfuser 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.