CodeGym /Java Blog /ランダム /IntelliJ IDEA: コーディングスタイルとコードフォーマット
John Squirrels
レベル 41
San Francisco

IntelliJ IDEA: コーディングスタイルとコードフォーマット

ランダム グループに公開済み
プログラミング言語は話し言葉と非常によく似ています。唯一の違いは、これが特別な言語であり、その主な目的が、コンピュータに何をさせたいかを説明するためにコンピュータとの通信を容易にすることであるということです。しかし、コンピュータと個人的な会話をすることはできません。プログラミング言語を学習し始めるときは、書籍や CodeGym などの教育リソースを参照しました。このリソースでは、コンピューターが理解できるコードを示しました。しかし、あなたも Java 言語について学ぶにつれてそれを理解する必要があります。他の言語と同様に、プログラミングではいくつかの書式設定規則が採用されています。たとえば、礼儀正しい社会では、「このようなことを書く」ことはマナー違反とみなされます。また、Java では、メソッド名を大文字で始めることは、コーディング規約への重大な違反です。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 1Java コードの規則は、「Java プログラミング言語のコード規則」という文書に記載されています。コーディング規約により、インデントなどの細かい詳細を規制することもできます。インデントに一貫性がなく、ある人はタブを使用し、他の人はスペースを使用する場合、バージョン管理がまったくの悪夢になることを想像してみてください。1 つの方法だけで修正をチェックインする必要があるのに、スペースやタブの違いによりファイル全体が変更されていることに気付いた人はどうなるでしょうか? もちろん、通常の言語と同様に、言語が使用される場所に応じて慣例が変わる場合があります。たとえば、広大な Web では、Google Java スタイル ガイドTwitter Java スタイル ガイドを見つけることができます。。このレビューには被験者が必要です。Gradle ビルド自動化システムを使用します。テンプレートから新しいプロジェクトを作成することで、すぐに始めることができます。Gradle には、Build Init Plugin という優れたプラグインがあります。新しいディレクトリに移動し、そこで次のコマンドを実行してみましょう。 gradle init --type java-application その後、IntelliJ IDEA を起動します。プロジェクトが開いているウィンドウが表示された場合 (つまり、コード エディターとプロジェクト ツリーが表示された場合)、 を使用してこのプロジェクトを閉じますFile -> Close Project。ようこそウィンドウで「Import Project」を実行し、新しいプロジェクトをインポートします。インポートする場合は「Use autoimport」チェックボックスをオンにしてください。最先端の開発ツールを使用して、何とか生活を簡素化できないか考えてみましょう。

IDEA でのコードのフォーマット

プロジェクトをインポートした後、Ctrl+N を押してAppTestクラスに移動します。これはデフォルトのテスト クラスです。次のようになります。

 import org.junit.Test;
 import static org.junit.Assert.*;
 
 public class AppTest {
     @Test public void testAppHasAGreeting() {
         App classUnderTest = new App();
         assertNotNull("app should have a greeting", classUnderTest.getGreeting());
     }
 }
すぐに目に留まるものは何ですか?メソッド宣言と同じ行にアノテーションがありますが、これは見苦しいですよね。これを修正するにはどうすればよいでしょうか? IntelliJ IDEA には、Codeさまざまなコード操作のための「 」メニュー エントリがあります。そのような操作の 1 つが「Reformat Code」で、Ctrl+L を使用して適用できます。これを実行すると、注釈は 1 行に、メソッド宣言は別の行に配置されます。この操作が現在選択されているコードに対して実行されることにすぐに注目してください。選択がない場合は、すべてに対してフォーマット操作が実行されます。次に、新しいテスト メソッドを追加しましょう。

 @Test
 public void testSumOfOddNumbers() {
 	List<Integer> data = Arrays.asList(1, 4, 2, 3, 6, 7, 9);
 	Integer result = data.stream().filter(number -> number % 2 == 0).reduce((n1, n2) -> n1 + n2).get();
 	assertThat(result, is(12));
 }
そして 2 つのインポート:

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
ご覧のとおり、ストリームに対する操作は 1 行で行われます。しかし、連鎖メソッド呼び出しが常にピリオド演算子ごとに新しい行に分割されるようにしたい場合はどうすればよいでしょうか? これは手動で行うこともできます。ただし、すべてが自動的に行われることを望んでいることを忘れないでください。確かに、時々手動の手順を忘れることがあり、その場合はどこでも異なる書式設定になってしまいますが、これは良くありません。したがって、IDEA が書式設定に使用するルールを編集する必要があります。選ぶFile -> SettingsIDEA メニューで (または Ctrl+Alt+S を押します)。設定画面の検索欄に「コードスタイル」と入力します。「コード スタイル」セクションでは、Java だけでなく他の言語の設定を指定できます。しかし、私たちが今興味を持っているのは Java です。ご覧のとおり、設定はいくつかのタブに分かれています。非常に便利な機能は、操作の例がウィンドウの右側に表示されることです。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 2スクリーンショットは、「連鎖メソッド呼び出し」を「常にラップ」に設定できることを示しています。つまり、連鎖メソッド呼び出しを常に別の行に分割します。ここで、テスト クラスでもう一度書式設定ボタンをクリックすると、実際に機能することがわかります。ただし、場合によっては、標準の書式規則以外で一部のコードを書式設定する必要がある場合があります。次のように書式設定を設定します。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 3フォーマットを防ぐには、「コード スタイル」セクションでフォーマッタ マーカーを有効にします。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 4これで、コードが再フォーマットされないようにテスト クラスを変更できます。

 @Test
 public void testSumOfOddNumbers() {
 	List<Integer> data = Arrays.asList(1, 4, 2, 3, 6, 7, 9);
 	// @formatter:off
 	Integer result = data.stream().filter(number -> number % 2 == 0)
                              .reduce((n1, n2) -> n1 + n2)
                              .get();
 	assertThat(result, is(12));
 	// @formatter:on
 }
お気づきかもしれませんが、Tab キーを押すと、IDEA はそれをスペースとして解釈します (これがデフォルトの動作です)。ただし、これは「 」セクションで変更できますCode StyleIntelliJ IDEA: コーディング スタイルとコードの書式設定 - 5ご覧のとおり、そこには多くの設定があります。Code style「 」設定の詳細については、「 IDEA ヘルプ: コード スタイル」を参照してください。もう 1 つの重要な書式設定機能があります。それは、インポートの書式設定です。この操作は個別に実行され、「Optimize Imports」と呼ばれます。(Ctrl+Alt+O)の下にありますCode -> Optimize Imports。インポートを最適化すると、不要なインポートが削除され、 Java の「 」設定Importsの「 」タブの設定に従ってインポートが正しい順序で配置されます。Code Styleさらに、この書式設定を自動的に実行したい場合は、良いニュースがあります。保存アクションプラグイン。

コマンドで設定を配布する

書式スタイルを自由にカスタマイズできることを上で見てきました。しかし、チーム内でこのスタイルをどのように活用するのでしょうか? とても簡単に。いくつかのオプションがあります。最も簡単なのは、コード スタイル スキームを保存することです。を使用して IDEA 設定を開きますFile -> Settings(または Ctrl+Alt+S を押します)。「Code Style」セクションに「スキーム」があります。これが私たちの書式設定スキームです。デフォルトでは、「デフォルト」スキームが使用され、「IDE」というラベルが付いています。これは、この設定が IDE にのみ適用され、他のユーザーには影響しないことを意味します。「カスタム」スキームを作成するには、右側のボタンを使用してコピーを作成し、名前を付けます。たとえば、CodeGym IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 6次に、設定をインポートまたはエクスポートできます。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 7 別のオプションは、IDEA 設定をインポートすることです。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 83 番目のオプションは設定リポジトリです。設定リポジトリを使用するには、次のリンクで詳細について IntelliJ IDEA ヘルプ ドキュメントを参照してください:設定リポジトリ"。チームに統一スタイルをプッシュすると言えば、Eclipse からのスタイルの優れたサポートについても触れずにはいられません。 IDE。これを行うには、別のプラグインをインストールする必要があります: ファイル -> 設定 (Ctrl+Alt+S) で IDEA 設定を開き、「プラグイン」セクションに移動します。新しいプラグインを見つけるには、「 」ボタンをクリックしますBrowse Repositories。検索ウィンドウで Eclipse Code Formatter プラグインを見つけます。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 9インストール後、IDEA を再起動する必要があります。これは標準的な手順です。これですべてが完了しました。IDEA 設定に新しいセクション「Eclipse Code Formatter」があります。。次のようになります。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 10

要件の厳格化

IDEA ツールに加えて、ビルド自動化プラグインを使用して要件を強化することもできます。誰かが適切なフォーマットを使用しているかどうかを手動で確認する方法はありません。1チーム5人くらいならできるかもしれない。しかし、会社に 100 人の従業員がいる場合、それは現実的ではありません。そして5つさえ追跡するのは困難です。そして、なぜこんなことに時間を無駄にするのでしょうか?ルールに違反した場合、プロジェクトの構築を阻止する方がはるかに簡単です。実際、これは「コードの検査」と呼ばれるまったく別のトピックです。この記事では、それがどのように機能するかを説明したいと思います。最も人気のある Gradle プラグインの 1 つは (プロジェクトをビルドするため、覚えているでしょう) pmdです。。これを有効にするには、Gradle プロジェクトのビルド スクリプト (プロジェクトのルートにある build.gradle ファイル) に移動し、残りのプラグインの隣に pmd を追加します。

 plugins {
     // Apply the java plugin to add support for Java
     id 'java'
     // Check source code
     id 'pmd'
     // Apply the application plugin to add support for building an application
     id 'application'
 }
これで、同じ場所にさらに詳細な設定を入力できるようになりました。

 pmd {
     ignoreFailures = false
     pmdTest.enabled = true
     ruleSets = [
             'java-basic',
             'java-braces',
             'java-clone',
             'java-codesize',
             'java-comments',
             'java-controversial',
             'java-coupling',
             'java-design',
             'java-empty',
             'java-finalizers',
             'java-imports',
             'java-optimizations',
             'java-strictexception',
             'java-strings',
             'java-typeresolution',
             'java-unnecessary',
             'java-unusedcode'
     ]
 }
私たちのプロジェクトも今では壊れています。実行するgradle buildとエラーが発生します。良い点は、ビルド中にレポートが生成されることです。エラーがある場合は、次のようなメッセージが表示されます。

 BUILD FAILED in 35s
 6 actionable tasks: 6 executed
 7 PMD rule violations were found. See the report at: file:///C:/_study/codestyle/build/reports/pmd/main.html
レポートにアクセスすると、次のような内容が表示されます。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 11さらに、「Problem」列には、pmd プラグインの Web サイトの問題の説明へのリンクが表示されます。たとえば、「headerCommentRequirement Required」エラーの場合、リンクは次のとおりです: pmd — CommentRequired。このエラーは、クラスに JavaDoc がないことを示すヒントです。テンプレートを使用して、クラスの上に JavaDoc を設定できます。 IntelliJ IDEA: コーディング スタイルとコードの書式設定 - 12そして、 の内容を指定しますFile HeaderIntelliJ IDEA: コーディング スタイルとコードの書式設定 - 13その後、App クラスの上のコメントを JavaDoc に変換し、新しいビルドでエラーがなくなっていることを確認できます。

結論

プロジェクトの生産性を最大化するには、コード スタイルが重要です。共有ルールに従って書かれた美しいコードは、同僚がそれをより簡単かつ迅速に理解することを保証し、あなたに耳を貸すことはありません。最新の開発ツールを使用すると、スタイル ルールに従うことはそれほど難しくありません。このレビューがこれが真実であることを証明していただければ幸いです。伝統に従って、このトピックに関する追加の資料を次に示します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION