ITの世界において、フレームワークとは、システムを開発するための機能群を提供するソフトウェアのことを言います。web3の世界でも様々なフレームワークが提供されており、ブロックチェーン開発者にとっての開発をより容易にしています。
このガイドではweb3のフレームワークについて解説します。
web3のフレームワークとは
本チュートリアルで解説するhardhatをはじめとするweb3のフレームワークは、開発者が行うそれぞれの工程を比較的容易なものにします。「比較的」と言っているのは、これらのソフトウェア群の助けなく開発する場合に比べて効率が良い、という意味で、です。
web3のフレームワークは具体的には、コントラクトの開発、テスト、デバッグ、デプロイといった開発の一連の流れにおけるそれぞれのステップで必要となる機能を提供しています。
web3以前のwebの世界では、フレームワークは雨後の筍のように非常に多くのものが開発、発表されています。web3でもすでに多くのフレームワークがありますが、その中で自分にあったもの、かつ将来性があるものを選ぶことが非常に重要です。将来性=長きに渡ってフレームワークの開発が継続されることが重要です。通常は最も多くの人が使い、メジャーとされているものが長期間使い続ける上での最良の選択となる傾向があります。
どのようなものがあるか
web3開発のためのフレームワークは、さまざまな言語や環境に対応したものがあります。以下に、いくつかの代表的なフレームワークを紹介します。
Hardhat:
- javascript/typescriptベースのフレームワーク。
- スマートコントラクトのコンパイル、デプロイ、テスト、デバッグ等の一連の機能を提供。
- ローカルに擬似ブロックチェーンネットワークをシミュレートしている。
- プラグインが充実。
Truffle:
- javascriptベースのフレームワーク。
- プロジェクト管理やスマートコントラクトの開発において広く使われるフレームワーク。
- ローカル開発環境との統合、内蔵のテストフレームワークが特徴。
- エコシステムが豊富で、多くのプラグインが利用可能。
Brownie:
- Pythonベースのフレームワークで、簡潔な記述とテストの容易さが特徴。
- インストールやセットアップが簡単で、開発者フレンドリーな文法を提供。
- 高度なデバッグ機能やガス最適化もサポートしている。
Foundry:
- Solidityベースのフレームワーク。
- Web3開発のための比較的に新しいフレームワーク。
- モダンな開発環境とモジュール性の高いアーキテクチャが特徴。
- オンチェーンな開発サイクルやセキュリティへの注力があり、新しい技術トレンドに対応。
本チュートリアルでの選択
本チュートリアルでは、主に以下の2つの理由から、hardhatを選択しています。
1つには、javascript/typescriptベースである点があります。多くのケースでは、スマートコントラクトの開発に加えて、フロントエンド(ウェブ画面)の開発を伴いますが、フロントエンドで事実上デファクトスタンダードとなっているのが、javascript/typescriptで、同言語をベースにした開発ができるのは大きなメリットになります。
もう1つの理由は、同じくjavascriptベースであるtruffleと比較した場合、近年ではより利用数が多いのがhardhatであると推測できることです。次のグラフは、2つのフレームワークのトレンドを比較したものになります(npmというパッケージ管理ソフトにおけるダウンロード数の傾向)。
今後については継続して注視する必要がありますが、シェアが大きい(であろう)ことは選択する上での重要な要素になります(理由は前述のとおりです)。
状況によっては、他の選択肢もあり得ると思います。Pythonに習熟していれば、Brownieを選択することは効率的に思えますし、言語を統一したいということであればFoundryという選択肢が有力でしょう。
ご意見をお聞かせください!
この記事、または、web3チュートリアル全体について、是非、あなたのご意見をお聞かせください。
アンケートはこちらからご回答いただけます。
無料相談承ります
オンラインでの無料相談を承っています。ご希望の方は、お問い合わせフォームよりご連絡ください。
ITの専門家があなたのご質問にお答えいたします。
コメント