SHOEISHA iD

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

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

Developers Summit 2022 レポート(AD)

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

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

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

 Javaフレームワークを利用したソフトウェア開発は、今やすっかり当たり前の開発スタイルになった。今日では数多くのJavaフレームワークが存在するが、中でも特に国内外の数多くのJavaデベロッパーに支持されているのが「Springフレームワーク」だ。その魅力や使いこなしのポイントについて、SB C&S株式会社のDevOps推進チームでさまざまな製品・サービスの情報をデベロッパー向けに発信している佐藤梨花氏と河上珠枝氏に紹介してもらった。

  • X ポスト
  • このエントリーをはてなブックマークに追加
SB C&S株式会社 テクニカルマーケティングセンター ビジネス開発課 佐藤梨花氏(上)、同 河上珠枝氏(下)
SB C&S株式会社 テクニカルマーケティングセンター ビジネス開発課 佐藤梨花氏(上)、同 河上珠枝氏(下)

今、Javaフレームワークが必要とされている理由

 今日のシステム開発においてJavaフレームワークが広く必要とされている背景として、佐藤氏は「ITが果たす役割の変化」を挙げる。

 「2000年代にはITの役割はあくまでもビジネスのための道具、ツールの1つに過ぎませんでした。しかし2010年代に入るとITは業務効率化の手段としてビジネス価値の一部を担うようになりました。そして2020年代になるとITはビジネス差別化のための手段となり、ビジネス価値に直結するようになりました」

 そのため、現代では時代の変化に柔軟に対応でき、かつ高品質のシステムを開発し続けることがビジネス価値と企業競争力を最大化するためには欠かせない。またシステムそのものの特性も、長期安定稼働を何よりの至上命題とする「SoR(System of Record)」のシステムだけでなく、柔軟かつ迅速に顧客ニーズに対応しながら多様な顧客接点を提供する「SoE(System of Engagement)」のシステムが重視されるようになってきた。ここでもまた、柔軟・スピーディーかつ高品質なソフトウェア開発が求められている。

 このようにソフトウェア開発に対するニーズは年々多様化しているにも関わらず、IT人材不足の問題はますます深刻化しつつあり、経済産業省が公開した「DXレポート」によれば2025年には約43万人のIT人材が不足すると予想されている。

ITの重要性が高まる一方、IT人材不足はますます深刻化
ITの重要性が高まる一方、IT人材不足はますます深刻化

 この課題を解決するための手段としてますます重要度を増しているのが開発の効率化であり、Javaプログラムにおいてそれを実現するための仕組みがJavaフレームワークだという。

 「現代のシステムは高度化・複雑化し、ソフトウェア開発に求められる要件は高度化する一方であるにも関わらず、IT人材は不足しています。このジレンマを解決できる手段の1つが、ソフトウェア開発のスピードや品質、安定性を向上できるJavaフレームワークなのです」(佐藤氏)

世界中のJavaデベロッパーの支持を集める「Springフレームワーク」

 開発言語として既に長い歴史を持つJavaは、2020年時点で世界中に680万人もの開発者がおり、Webシステムの実に52%で使われていると言われている。また金融・フィンテックのミッションクリティカルなシステムの44%で使われるなど、信頼性も折り紙つきだ。さらに現在でも定期的なアップデートを続けており、常に進化を続けている。

 このJavaを使ったシステム開発を効率化するためのプラットフォームがJavaフレームワークであり、今日では数多くの製品が存在する。それらの中でもSpringフレームワークは特に数多くの開発者からの支持を集めており、世界中で最も広く利用されているJavaフレームワークの1つである。米VMware社が公開している「2021年 Springの現状」によれば、Springフレームワークを開発プラットフォームとして利用しているユーザーの割合は、2020年の調査と比較して9ポイント増加し、回答者の3分の2近くが「利用している」と回答している。

 同調査に寄せられた回答の中には、Springフレームワークの気に入っている点として「設定なしですぐに利用できるにもかかわらず柔軟である」「安定性、拡張性、安全性に非常に優れている」「コミュニティから高度な専門知識とサポートが得られる」といった声が寄せられている。

今もなお利用者が増え続けているSpringフレームワーク
今もなお利用者が増え続けているSpringフレームワーク

 なおSpringフレームワークには、Javaソフトウェア開発を効率化できるさまざまなツールのほか、ソフトウェア部品が数多く含まれている。佐藤氏によれば、これらの部品をうまく活用することで、Javaソフトウェア開発プロジェクトにさまざまなメリットをもたらすことができるという。

 「既存部品を使って機能を実装することでコード量を減らし、同時にバグも減らすことができます。またコードの保守性や可読性も向上するため、コードレビューやテスト工数を削減する効果もあります。品質に優れたフレームワークを使うことでこうしたメリットを享受でき、ひいてはシステム開発の品質とスピードの向上を実現できるのです」

最大の特徴「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 ポスト
  • このエントリーをはてなブックマークに追加

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

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

この記事をシェア

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

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング