ビルド自動化ツールは、企業のソフトウェア開発プロセス全体を高速化するプログラムです。これらは、ソース コードのコンパイル、バイナリ データのパッケージ化、自動テストの維持などを処理するツールです。簡単に言えば、開発者は多くの簡単なタスクを処理しながら、できるだけ早く最終的な実行可能ファイルに到達できます。開発プロセスはプログラミング言語、ターゲット プラットフォーム、展開方法の選択によって異なるため、これらのビルド自動化ツールも同様です。
アジャイル チームに最適なビルド自動化ツール
自動化ツールは、要件と開発方法論によって大きく異なります。このガイドでは、バイナリの作成、構成管理、継続的統合、メタ ビルド、およびビルド スクリプトの生成に使用されるツールについて説明します。そのため、このガイド全体を通して、開発ニーズに最適なオプションを見つけてください。
1.作る
これは間違いなく、プログラマーにとって最も頻繁に使用される自動化ツールの 1 つです。 make ユーティリティを使用すると、開発者は、Makefile と呼ばれるテキスト ファイルから指示を読み取ることによって、ライブラリだけでなくバイナリも自動的にビルドできます。 Stuart Feldman は元の Unix システム用の make を作成し、現在では複数の make 実装が存在します。 Linux ユーザーは、主に GNU make 実装を使用します。 make は 40 年以上前に開発されたにもかかわらず、今でも広く使用されています。
メイクの特徴
- これにより、エンドユーザーはコンパイル ロジックを理解する必要なく、プログラムをコンパイルしてインストールできます。
- make ユーティリティは、プログラムのどの部分が変更されたかを理解しているため、変更時にプログラム全体をコンパイルするわけではありません。
- make は特定のプログラミング言語に限定されないため、開発者は make を使用して追加のタスクを実行できます。
- Makefile は、複数のソース ファイルとライブラリを使用してターゲット アプリケーションを派生させる方法を定義するルールで構成されます。
2.アパッチアリ
Apache Ant は、Java 用の最高のオープンソース ビルド自動化ツールの 1 つです。この人気のあるプロジェクトは、Unix の make ユーティリティの代わりとして 2000 年に始まりました。デザインと使い方はmakeとよく似ています。ただし、Ant は Java アプリケーション向けであり、Java ランタイムが必要です。また、プレーンテキストの Makefile の代わりに、XML ドキュメントを使用してプログラム作成ワークフローを定義します。 Ant は TDD (テスト駆動開発) の採用を容易にします したがって、アジャイル開発に適しています。
Apache Ant の機能
- Apache Ant には、移植可能な自動化スクリプトを簡単に作成できる組み込み関数が多数用意されています。
- 階層化され、順序付けられ、相互リンクされているため、XML ビルド手順を簡単に記述できます。
- Apache Ant は、すべての主要な Linux ディストリビューションで利用でき、ドキュメントのサポートも充実しています。
- Apache Ant のオープンソース コードベースにより、開発者は手間をかけずにソースにアクセスして変更できます。
3.ジェンキンス
Jenkins は、その豊富な機能セットとオープンソース コードベースにより、エンタープライズ向けの最高のビルド自動化ツールの 1 つです。これは基本的に、最新のソフトウェア ソリューションの構築、テスト、展開を容易にする自動化サーバーです。 Jenkins は、分散ビルドを管理し、継続的インテグレーション (CI) および継続的デリバリー (CD) サービスを提供するために、サーバーベースのマスター/スレーブ アーキテクチャを採用しています。さらに、Jenkins を完全に理解することで、高給のコンピューター サイエンスの仕事に就くことができます。
ジェンキンスの特徴
- Jenkins は自己完結型の Java プログラムとして利用でき、Windows、Linux、Mac OS 用のバイナリ インストーラーを提供します。
- 開発者は、多数の再利用可能なプラグインと拡張機能から選択することで、Jenkins の機能を簡単に拡張できます。
- Jenkins により、開発チームはワークロードを複数のマシンに分散し、ビルド時間を短縮できます。
- この自動化ツールの直感的なウェブ インターフェースは、サーバーをオンザフライで構成し、エラーをチェックするのに役立ちます。
- Jenkins には、よりエキサイティングな機能を提供するためにシームレスに取り組んでいる開発者の強固なコミュニティがあります。
4.バック
Buck は、Facebook によって開発され、オープンソース製品としてリリースされた革新的なビルド自動化ツールです。開発者が小型のモジュール式コンポーネントを使用することを奨励し、一般的なプログラミング言語とコンピューティング プラットフォームの広範なリストをサポートします。 Buck は、再利用可能なビルドを簡単に作成できるモジュラー設計により、非常に人気があります。さらに、オープンソースのコードベースは GitHub でホストされているため、開発者は必要に応じてツールを拡張できます。
バックの特徴
- Buck はインクリメンタル ビルド時間を短縮し、複数の CPU コアを活用してビルド プロセスを可能な限り高速化します。
- Buck は事前定義された入力のみを許可するため、使用しているシステムに関係なく、結果は常に同じになります。
- ユーザーは buck プロジェクト コマンドを使用して、Buck を PyCharm や Eclipse などの多くの一般的な Linux IDE と統合できます。
- Buck を使用すると、開発者は buck クエリ コマンドを使用してビルドの依存関係を簡単に理解できます。
5.グラドル
Gradle は、従来のデスクトップ ソフトウェアと共にモバイル アプリやマイクロサービスに使用できる洗練されたビルド ツールです。これは非常にエキサイティングなプロジェクトであり、Netflix や LinkedIn を含む多数のテクノロジー企業によって使用されています。 Gradle は、Java、Kotlin、Scala などの JVM 言語を使用するプロジェクトに最適な自動化ツールとして浮上しています。さらに、そのオープンソース コードベースと Apache ライセンスにより、サードパーティによる変更が奨励されます。また、開発者の生産性が向上するシンプルなデザインも気に入っています。
Gradle の機能
- Gradle は、Java、C++、Python、Kotlin などの従来のプログラミング言語で記述されたすべてのプロジェクトをサポートします。
- その豊富な API と成熟したエコシステムにより、開発者は複雑なビルド モデルを作成し、統合をより簡単に行うことができます。
- Gradle を使用するプロジェクトは、その高度なキャッシングとコンパイル方法により、非常に高速なビルド時間を享受できます。
- Gradle は、Android Studio、Eclipse、Jetbrains IDEA、NetBeans など、多くの一般的な Linux IDE を優れた方法でサポートしています。
- エンタープライズ プランは、ビルド時間を大幅に短縮し、壊れたビルドのエラーを見つけるのに役立ちます。
6.トラビス CI
Travis CI は、GitHub または BitBucket でホストされているプロジェクトのビルドとテストを容易にする効率的な継続的インテグレーション サービスです。 Travis の主な利点の 1 つは、無料プランと有料プランの両方を提供していることです。そのため、開発者は簡単にビルド パフォーマンスをテストし、プロになるかどうかを判断するために簡単に使用できます。さらに、Travis CI は、オープン ソース プロジェクトの生涯無料テストを提供します。その他の機能には、ライブ ビルド ビュー、プリインストールされたデータベース サービス、クロスプラットフォーム サポートなどがあります。
Travis CI の機能
- Travis CI は、C、C++、Java、JavaScript、Python、Ruby など、20 を超えるプログラミング言語を事前にサポートしています。
- 企業向けの便利なサブスクリプション プランと、詳細なドキュメントとチュートリアルを提供します。
- Travis は、ビルドごとにクリーンな仮想マシンを提供し、安全な環境暗号化をサポートします
- 開発者は、この自動化ツールが提供する強力な API を活用して、堅牢な自動化スクリプトを作成できます。
7.アパッチメイブン
Apache Maven は、最も人気のあるオープンソースのビルド自動化ツールの 1 つです。 Maven は主に Java プロジェクトに使用されますが、Python、Ruby、Scala などの他のプログラミング言語にも利用できます。 Project Object Model (POM) を使用して開発され、最新のソフトウェアの構築、レポート、および文書化に使用できます。 Maven は、Gradle などの代替ビルド ツールともうまく統合されます。さらに、これは Apache プロジェクトであるため、Maven のコードベースは誰でも検査および変更できるように公開されています。
Apache Maven の機能
- Apache Maven は、開発者が数秒で新しいプロジェクトまたはモジュールを開始できるようにするシンプルなプロジェクト設定に従います。
- 開発者は、サードパーティの拡張機能を使用したり、独自のプラグインを作成したりして、このビルド ツールの機能を簡単に拡張できます。
- Maven は、すぐに使用できる多数のライブラリとメタデータを提供し、最新バージョンをリアルタイムで利用できるようにします。
- JAR の中央リポジトリ、自動更新、依存関係の閉鎖など、強力な依存関係管理機能を提供します。
8.竹
Bamboo は、開発者が堅牢なマルチステージ ビルド プランを作成できる、漸進的なビルド自動化ツールです。これは、人気のあるソフトウェア メーカーである Atlassian によって販売されており、継続的な統合、展開、および配信のための機能を提供します。 Bamboo サーバーの目的は、DevOps の専門家に簡単で高速な CI/CD サービスを提供することです。あらゆるタイプの企業に適しており、競争力のある料金プランを提供しています。さらに、30 日間の無料試用版を使用して、Bamboo を簡単にテストできます。
竹の特徴
- バンブー サーバーにより、開発者は自動テストを並行して実行し、カスタム エージェントを重要なビルドとデプロイに割り当てることができます。
- このソフトウェアには必要な機能がすべて含まれており、ユーザーが新しいプラグインや拡張機能をインストールする必要はありません。
- Bamboo は、ビルド、テスト、リリースなどのタスクを 1 つのワークフローに組み合わせることで、シームレスな開発エクスペリエンスを提供します。
- Git、BitBucket、SVN、CVS、Mercurial、Perforce など、ほとんどのソースコード管理ソリューションを事前にサポートしています。
9.サークルCI
CircleCI は、中規模企業向けの継続的インテグレーションおよびデリバリー ツールです。開発者は、このツールを GitHub または BitBucket と簡単に統合でき、コミットごとに新しいビルドが作成されます。 CircleCI の優れた機能には、拡張されたキャッシュ機能、監査ログ、安全なユーザー管理などがあります。このビルド ツールは、クラウドまたは個人用サーバーでホストできます。 CircleCI の価格オプションも非常に競争力があります。 Spotify や Facebook など、多くのテクノロジー企業で使用されています。
CircleCI の機能
- CircleCI は、ビルド時間の短縮、フィードバック サイクルの短縮、フレームワークやツールチェーンの選択の自由を提供します。
- すべてのビルドに関する要約された分析情報を表示する、シンプルかつエレガントなインタラクティブ ダッシュボードが付属しています。
- CircleCI はクリーンな仮想マシンまたはコンテナでパイプラインを実行し、開発者が最新のすべてのコミットをテストできるようにします。
- 通過するパイプラインをターゲット環境に自動的にデプロイし、Docker コンテナの最高のサポートを提供します。
- 開発者は、特定のパイプラインに必要な CPU リソース (コンピューティング/メモリ) の数を構成できます。
10.アンシブル
Ansible は、広く使用されているオープンソースのビルド自動化ツールの 1 つです。これは、Red Hat Incorporation によって開発されたソフトウェア プロビジョニングおよび展開ツールです。 Ansible は完全にクロスプラットフォームであり、多層展開、クラウド プロビジョニング、エージェントレスの自動化、効率的なオーケストレーション手法などの機能を提供します。 Ansible は拡張性が高く、モジュールを作成するためのすべての主要なプログラミング言語をサポートしています。さらに、AWS、CISCO、Windows、VMWare などを含む膨大な数の統合が付属しています。
Ansible の機能
- Red Hat は、テクノロジー サービスの管理に Ansible を活用したい企業向けに優れた料金プランを提供しています
- チームは、サイト セキュリティ対策のスキャンと修復を Ansible 自動化ポリシーに直接統合できます。
- Ansible と Red Hat Ansible Tower を併用すると、仮想インスタンスまたはクラウド インスタンスを生成するプロセスを非常に簡単に合理化できます。
- Ansible Playbook は、開発者がサイクル全体を通してアプリケーションを適切にデプロイおよび管理するのに役立ちます。
- Ansible モジュールは、Python、Ruby、Scala など、JSON オブジェクトを出力できる任意のスクリプト言語で記述できます。
11. GoCD
GoCD は、開発者が手間をかけずにビルド、テスト、およびリリースのサイクルを自動化および合理化できるスマートな CI/CD サーバーです。これは、効果的なパイプラインを非常に簡単に作成できる、無料のオープンソースの自動化ツールです。 GoCD は、パイプラインと関連する分析を表示するための使いやすいダッシュボードを提供します。このツールのバリュー ストリーム マップは、優れたエンド ツー エンドの視覚化を提供します。これにより、開発者は外部プラグインを必要とせずに、ジョブ間を移動してパフォーマンスを最適化できます。
GoCD の機能
- GoCD はクラウドネイティブ開発に重点を置いており、AWS、Docker、Kubernetes への継続的デリバリー ワークフローを合理化しています。
- 開発者は、堅牢なモデリング アーティファクト、並列実行、効果的な依存関係処理方法を使用して、複雑な CD パイプラインを作成できます。
- この継続的デリバリー ツールの高度なトレーサビリティ機能により、壊れたパイプラインのトラブルシューティングが非常に簡単になります。
- ユーザーは、増え続ける外部プラグインのリストから選択するか、GoCD の豊富な API を使用して独自のプラグインを作成できます。
- GoCD は、並列実行、クロスプラットフォーム実行、洗練されたレポートなどの便利なテスト機能を提供します。
12.チームシティ
TeamCity は、Jetbrains によって開発された強力なビルド管理および継続的統合ツールです。これは、最も人気のある独自のビルド自動化ツールの 1 つであり、最新のパイプラインに必要なすべての主要機能をサポートしています。 TeamCity は再利用可能なコンポーネントを強調し、開発者がコードの品質を簡単にチェックできるようにします。開発者は直感的なユーザー インターフェイスを使用して、ビルド履歴の表示、ユーザーの管理、統合、拡張を行うことができます。さらに、便利なプラグインの精選されたリストにより、このビルド ツールに新しい機能を簡単に追加できます。
TeamCity の機能
- 開発者は、Amazon EC2、VMware vSphere、Microsoft Azure、および Kubernetes クラスターで TeamCity ビルド エージェントを動的にスケールアウトできます。
- TeamCity は、Docker、Apache Maven、Visual Studio Team Services、GitHub など、すぐに使用できる多くの便利な統合を提供します。
- この CI サーバーは、ビルド スクリプト、TeamCity REST API、または公式の TeamCity プラグインでサービス メッセージを使用して簡単にカスタマイズできます。
- TeamCity は、バックアップの作成、復元、ディスク使用分析の表示など、システム メンテナンスのための機能をいくつか提供しています。
13.ビルドマスター
BuildMaster は、アプリケーションのリリース プロセスを処理するシンプルで効果的なビルド自動化ツールです。これは、現在 Linux および Microsoft Windows で実行される独自のソフトウェアです。 BuildMaster は、コーディングやドラッグ アンド ドロップ インターフェイスとして使用できるシンプルなプラン エディターを提供します。この継続的インテグレーション ツールは、コードとしてのパイプライン、問題追跡、PowerShell 統合、イベント リスナー、インフラストラクチャ構成の同期などの機能も提供します。さらに、料金プランは非常に堅牢で、無料利用枠、複数のエンタープライズ利用枠、およびカスタム サブスクリプション モデルが含まれています。
BuildMaster の機能
- BuildMaster には、アプリケーションの構築、テスト、パッケージ化、展開、検証、およびリリースに必要なすべての機能が付属しています。
- この有料の自動化ツールを使用すると、開発者は .NET、Java、NodeJS、PHP などのさまざまなプラットフォームで作業できます。
- 開発者は、Jenkins、TeamCity、ユニバーサル リポジトリなど、他の CI/CD ツールからアーティファクトを簡単に参照またはインポートできます。
- BuildMaster を使用すると、開発者は Docker コンテナ、クラウド サービス、Kubernetes など、あらゆるターゲットのビルド オブジェクトを作成または管理できます。
14.うなり声
Grunt は、フロントエンド開発者向けの最高のオープンソース ビルド自動化ツールの 1 つです。このツールを使用すると、コードの縮小、単体テスト、linting などの一般的なタスクを非常に簡単に自動化できます。 Grunt は NodeJS を使用して構築されており、JavaScript 開発者によって広く使用されています。 Grunt のビルド ワークフローは、通常 JavaScript または CoffeeScript で記述された Gruntfile を中心に展開します。さらに、Grunt には、追加機能を提供するプラグインの膨大なコレクションがあります。これが、Twitter や Adobe などの企業がフロントエンドに Grunt を使用している理由です。
グラントの特徴
- Grunt を使用すると、開発チームは最小限の労力で反復的なフロントエンド タスクを自動化でき、ワークフローがシンプルになります。
- このビルド ツールは、JavaScript、CSS、SASS、LESS、単体テスト ファイルなど、多くの種類のファイルを縮小できます。
- Grunt には、4,000 を超える便利なプラグインと拡張機能で構成される非常に大きなエコシステムがあります。
- このツールには、開発時間を短縮し、フロントエンドの生産性を向上させるための組み込みタスクがいくつか用意されています。
15.レーキ
Rake は、Ruby プログラミング言語用の単純な make に似たツールです。このビルド自動化ツールの目的は、タスクをグループ化し、Ruby 構文を使用して依存関係を構築することです。 Makefile の代わりに Rakefile を使用して構成され、XML ファイルは必要ありません。開発者は、各タスクとその依存関係を名前空間に簡単に定義できます。 Rake のもう 1 つの重要な利点は、インストールと構成が非常に簡単なことです。全体として、Rake は make に似たツールを探している開発者に適した選択肢です。
レーキの特徴
- Rake は、暗黙的なタスクを合成するための優れたルール パターンと、パスとファイル名を操作するための柔軟な FileList を提供します。
- パッケージ化されたタスクのライブラリが付属しているため、堅牢でパフォーマンスの高い Rakefile を非常に簡単に作成できます。
- Rake には、タスクの並列実行のサポートが組み込まれており、make に関連する多くの癖がなくなります。
- このビルド ツールはオープンソースであるため、開発者は手間をかけずにソフトウェアを変更または拡張できます。
- 有益で詳細なドキュメントにより、新しいテクニックの習得や不要なバグのトラブルシューティングが容易になります。
16. gulp.js
gulp.js は堅牢で効果的な JavaScript ツールで、通常はフロントエンド ビルド システムのストリーミングに使用されます。このビルド ツールの目的は、開発ワークフローで時間のかかるタスクを自動化することです。 2000 を超える便利なプラグインを備えた成長中のエコシステムがあり、完全にプラットフォームに依存しません。 gulp.js の最小限の API により、習得が容易になり、初心者の学習曲線が短縮されます。全体として、gulp.js は、JavaScript スタックを扱うフロントエンド開発者にとって優れたビルド ツールです。
gulp.js の機能
- この JavaScript 自動化ツールを使用すると、時間のかかる反復的なタスクを堅牢なビルド パイプラインに簡単に組み込むことができます。
- 開発者は、作業負荷を軽減し、生産性を向上させるために、コミュニティによって構築されたプラグインの大規模なセットから選択できます。
- gulp.js はファイルをストリームとして読み取り、ディスクに何かを書き戻す前に必要なすべての変換を実行します。
- 個々のタスクを作成し、それらをより大きな操作に構成できるため、gulp が高速になり、パフォーマンスの問題が解消されます。
17.コードシップ
Codeship は、継続的な統合、展開、および配信サービスをシンプルに取り入れたものです。プロプライエタリですが、Codeship は 1 か月あたり最大 100 のビルドを作成できる優れた無料利用枠を提供します。さらに、料金プランは非常に競争力があります。これにより、ビジネスの開始と成長に適した選択肢となります。直感的な Web インターフェイスのおかげで、Codeship の設定は非常に簡単です。開発者は、構成オプションをファイルに設定することもできます。全体として、Codeship は、割安な価格でプレミアム機能を探しているチームにとって有益な代替手段です。
コードシップの特徴
- Codeship Pro には、Docker コンテナやその他のクラウド サービスのすぐに使えるサポートが付属しています。
- リポジトリ主導の CI / CD ワークフローを実装して、変更の追跡とバージョン管理を容易にします。
- 開発者は、ビルド マシンのサイズとコンピューティング パフォーマンスを完全に自由に選択できます。
- Codeship は、同じ Linux 仮想マシンで複数の異なるビルドを実行することにより、開発コストを節約するのに役立ちます。
- 開発チームは、ビルド時間を短縮するために、テストを簡単に分割して並行して実行できます。
18. AWS CodeBuild
AWS CodeBuild は、コードをコンパイルし、必要なテストを実行し、デプロイ可能なユニットをパッケージ化するフルマネージド CI サービスです。独自のサーバーをプロビジョニング、スケーリング、または管理する必要がなくなり、チームはアプリケーション自体に集中できます。さらに、CodeBuild には事前にパッケージ化された膨大な数のビルド環境が付属しているため、ユーザーはできるだけ早く作業を開始できます。 Amazon の製品である CodeBuild は、機能に関してすべての適切なスポットを刻んでいます。
AWS CodeBuild の機能
- CodeBuild は完全に管理されているため、開発者はビルド サーバーと CI サービスを設定、管理、更新、またはパッチを適用する必要はありません。
- 「従量課金制」の料金プランでは、ビルドに必要な分数だけ課金されるため、コストが大幅に削減されます。
- CodeBuild を使用すると、スケーリングが非常に簡単になり、ビルドの要求に合わせて自動的にスケールアップおよびスケールダウンできます。
- チームは、パッケージ化されたツールと一緒に独自のビルド ツールと環境をインポートすることで、ビルド サービスを拡張できます。
- CodeBuild は AWS Identity and Access Management (IAM) と統合され、AWS Key Management Service を使用してアーティファクトを暗号化します。
19.シェフ
Chef は、エンタープライズ インフラストラクチャ向けの革新的な自動化スイートです。インフラストラクチャをコードに変換できるため、IaaS (Infrastructure as a Service) 製品を販売する企業に適しています。 Chef は基本的に 2 つのスイートの組み合わせです。1 つは Enterprise Automation Stack で、もう 1 つは Effortless Infrastructure スイートです。 Facebook、IBM、Walmart など、世界最大級の企業が Chef を使用しています。全体として、成長するテクノロジー ビジネスにとって優れたプラットフォーム自動化ツールです。
シェフの特徴
- Chef の継続的デリバリー パイプラインは非常に洗練されており、アプリケーションが想定どおりに機能していることを確認します。
- 一般的なビルド自動化ツール、仮想環境、クラウド サービスと非常によく統合されています。
- この自動化ツールを使用すると、レガシー ソフトウェアを簡単に移行してモダナイズし、アジリティとスピードを向上させることができます。
- Chef は、現在の DevOps プラクティスによって導入された、リスクとアジリティの間のセキュリティのトレードオフを減らすことを目指しています。
- コンプライアンス ガイドラインを維持しながら、製品の出荷速度を向上させるための最適な自動化ツールの 1 つです。
20. Azure DevOps サーバー
Azure DevOps サーバーは、AWS CodeBuild に対する Microsoft の答えです。これは、アプリケーション ライフサイクルのすべての側面をカバーする非常に強力なソリューションです。 Azure DevOps サーバーには、プロジェクトの管理、ビルドの自動化、テストの実行、レポート、およびビルドのリリースを行う機能があります。これは、かなり競争力のある価格設定オプションを備えた有料サービスです.また、その製品を見てみたい企業向けに無料利用枠も提供しています。全体として、Azure DevOps サーバーは、マネージド サービスを探している企業にとって優れた選択肢です。
Azure DevOps サーバーの機能
- 開発者は、パッケージを簡単に作成、ホスト、チーム メンバーと共有し、パイプラインにアーティファクトを追加できます。
- Azure 拡張機能マーケットプレイスは、オープンソース開発者によって構築されたアプリやサービス向けの多数の拡張機能をホストしています。
- カスタマイズ可能なカンバン ボード、バックログ、その他の強力な計画ツールを使用して、効率的で機敏な開発ステップを非常に簡単に計画できる
- チームは、任意のプログラミング言語を使用してアプリケーションを構築およびテストし、任意のクラウド サービスにデプロイできます
結末
ビルド自動化ツールには、ソフトウェア開発と最終製品の展開の間のギャップを減らすことを目的としたさまざまなツールが含まれます。テクノロジー環境は絶えず進化しており、企業は増大するビジネス ニーズに対応する必要があります。幸いなことに、さまざまな問題を解決するために多数の自動化ツールを利用できます。さらに、企業が多額の費用を支払う必要のないオープンソースのビルド自動化ツールも数多くあります。これらは、成長する企業にとって良い出発点となります。
編集者は、読者が最適な自動化プラットフォームを決定するのに役立つ上記の 20 のツールを選択しました。さらに推奨事項がある場合は、忘れずにコメントを残してください。