SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 レポート(AD)

Java開発者御用達! 今も利用者が増え続けている「Springフレームワーク」は何がすごいのか【デブサミ2022】

【17-A-5】Java女子が改めて伝えたいSpringフレームワークの魅力

  • X ポスト
  • このエントリーをはてなブックマークに追加

最大の特徴「DI(依存性注入機能)」はコードに何をもたらすのか

 数あるJavaフレームワークの中でも、特にSpringフレームワークが広く支持されている理由の1つに、「DI(Dependency Injection:依存性注入機能)」と呼ばれる機能がある。これは定数や変数、インスタンスを処理の外部から処理に渡せる機能で、XMLやBean、アノテーションなどで定義することができる。この機能を活用すればコードの依存性を下げ、疎結合性を向上させることができる。

Springフレームワークの最大の特徴である『DI』とは?
Springフレームワークの最大の特徴である「DI」とは?

 プログラムの単体テストなどの場面では、特にこのDIが大きな効果を発揮するという。例えばある特定のクラスの単体テストを行いたいのに、依存する別のクラスの実装が完了していない場合、通常は依存先クラスのスタブを作成してテストを行う。その際、単純なプログラムであればテスト用のコードを大量に書く必要はないが、分岐が数多く存在するような場合、分岐チェック用のテスト用プログラムを新たに記述する必要が出てくる。

 このようなテストコードの記述は、テストコード削除漏れによるバグの作り込みや、継承が増えた場合にコード量がさらに増加するなどさまざまな問題をはらむため、できれば行いたくない。そこでSpringフレームワークのDIを使い、アノテーションを記述して依存性を注入すれば、前述のようなテストシナリオに最小限の記述の追加のみで対応できる。

 具体的には、環境変数の値によって自動的にクラスのインスタンスが作成されるため、テスト用の分岐コードを記述することなく分岐処理のテストが可能になる。また継承が増えたとしても、アノテーションの追加のみで対応できるためソースコードがシンプルになり、再利用性も高められる。そのため河上氏によれば、コード管理の面でもメリットが多いという。

 「余計なコードを書かなくて済むようになるので、ソースコードが見やすく、可読性や保守性が向上するというメリットがあります。また開発者にとっては、単体テストのために記述したコードの削除漏れに起因するバグは常に怖いものですが、そうしたミスも排除できます」

Springフレームワークの導入に向けた学習コストは?

 ただしSpringフレームワークを使った開発は、決して「いいことずくめ」ではない。佐藤氏によれば、実際に導入・利用するうえでの最大のハードルは「学習コスト」だという。

 「Springフレームワークの最大の強みであるDIも、未経験者が理解するまでには時間がかかることが多いですね。チーム内に経験者がいない場合や、学習のための時間や費用を確保できない場合は、なおさら習得のハードルを高く感じると思います」

 ただし幸いなことに、Springフレームワークに関する情報はインターネット上にあふれており、コミュニティも多数存在するため開発者同士の情報交換も活発に行われている。またSpringフレームワークはOSSであるため、導入コストも最小限に抑えられる。そのため「皆さんが思うほど、Springフレームワーク導入のハードルは決して高くありません。確かにある程度の習熟期間は必要ですが、それを『コスト』ととらえるのではなく、開発効率化を実現するための『投資』ととらえるべきではないでしょうか」と佐藤氏は提言する。

 とはいえ、「OSSをそのまま利用するのは、やはりハードルが高い」と感じるデベロッパーも決して少なくないだろう。そんな場合は、VMware社が提供するエンタープライズ版の商用Sprintフレームワーク「VMware Spring Runtime」が適しているという。有償ではあるものの、これを使うことでOSSでは得られないさまざまな付帯サービスや手厚いサポートを受けられるため、OSSを独力で導入する場合と比べハードルがぐっと低くなる。

エンタープライズ版Springフレームワークの導入メリット
エンタープライズ版Springフレームワークの導入メリット

 なおSB C&Sでは現在、DevOpsに関するさまざまな情報や関連製品・サービスの紹介を行う「DevOps Hub」というWebメディアを運営しており、VMware Spring Runtimeに関する情報も積極的に発信しているという。河上氏によれば、今後はDevOpsの新しいトレーニングサービスもこのDevOps Hubを通じて提供していく予定だという。

 「DevOpsを推進するためのチームビルディングやマインドセットを学べるトレーニングコンテンツをパッケージングして提供する予定です。もちろん、今回ご紹介したSpringフレームワークの導入に関するご相談も受け付けていますので、興味のある方はぜひ気軽にDevOps Hubまでお問い合わせいただければと思います」

関連情報

 SB C&Sは、VMware Tanzu をはじめとした DevOps の成功に必要なサービスを提供し、お客さまのDevOps 導入をトータルでサポートします。詳細はこちらから!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2022 レポート連載記事一覧

もっと読む

この記事の著者

吉村 哲樹(ヨシムラ テツキ)

早稲田大学政治経済学部卒業後、メーカー系システムインテグレーターにてソフトウェア開発に従事。その後、外資系ソフトウェアベンダーでコンサルタント、IT系Webメディアで編集者を務めた後、現在はフリーライターとして活動中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15681 2022/04/12 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング