見出し画像

Springフレームワーク01:導入

授業が始まってから今まで4か月間、めちゃくちゃ手書きノートをとってまして、もうJavaの授業なんて50ページにわたる大作になっちゃってたのですが…

ここにきて突然の電子化w

なぜならば!花粉症で!鼻水たれるからだよ!!!…いや、それもあるけれど、URLをメモしたりコピペしたりするからです。

ハイでは、授業の際に見返したりするので、今日もちょっと未来の自分のためにノートを書きますね。

※ あくまでも授業ノートなので私が間違った解釈をしている可能性もあります


画像2

【Springフレームワーク(Spring Tool Suits)とは】
■フレームワークとは
フレームワークはアプリ開発をする際に、開発の効率を上げるために便利な機能がたくさん詰まったツール

■Springフレームワーク
ほとんどのWebアプリケーションはデータベースを使う。
手動で設定を行うとコードが複雑になるため、
あらかじめDB接続など定型の機能が簡単に利用できるように用意されたもの。

<特徴1:テストがしやすい>
「Spring MVC Test」という専用のテストプログラムを使うことができる。

<特徴2:保守性が高い>
「AOP(Aspect Oriented Programming)」というプログラミングを用いることができる。

<特徴3:再利用性が高い>
「AOP」の仕組みにより、共通のプログラムをまとめやすくなるので、再利用することも容易になる。

<特徴4:拡張性が高い>
フレームワークの基本的な機能の大部分が「インターフェース」として提供されている。
必要な機能だけを外部から使うことができるので、無駄がない。

<特徴5:変更に強い>
Spring Frameworkでは、DI(Dependency Injection)と呼ばれる仕組みが導入されている。
日本語でいうと、「依存性の注入」。

画像2

【アーキテクチャという概念】

■なぜアーキテクチャが必要か
アーキテクチャ・・・「構造」「共通の方式」
ユーザーインターフェースの仕組みやデータベースへのアクセスの仕組みなど、
システムの骨格にあたる部分のこと。

<<開発の目標>>
設計するにあたっての目標
① 機能要求やレスポンスタイムなどの非機能要求などユーザーの要求を満たす
② 開発期間の厳守、機能追加・変更、テストが容易であるなど、開発者や運用者の目標

開発効率
・ 設計の意図を把握し易く、理解し易い構造
・ テストが容易に実施できる構造

柔軟性
・ 変更し易く、機能追加し易い構造
・ 将来の環境の変化にも対応できる構造

※まず、ユーザーの要件を満たすことが前提条件となるが、
開発者や運用者の要求も満たすことができれば、
結果的に開発や運用のコストを下げることになり、
ユーザーに対して大きく貢献することになる。


<<開発効率とアーキテクチャの必要性>>
アーキテクチャを理解する際に数千ページもあるドキュメントの内容や、
理解していないコードを埋め込まなければ機能しないのでは、
開発効率の点で重大な支障がある。
テストも同様で、あるオブジェクトをテストするのにWebコンテナの用意・膨大な量のクラスパスの設定、テストのために実装を変更などを行うと工数が増大する。
そのため実装とテスト用のオブジェクトで擬似環境を用意する必要がある。

<<ライフサイクルの必要性>>
変更や機能追加のし易さ、将来の環境の変動に耐えられる柔軟さが必要な理由は、
Webアプリケーションに対するユーザーの要求が、時代や運用に合わせて変化するため。
「リリース」「要求の変化」「変更や機能追加」の状態を、Webアプリケーションが不要となり破棄されるまで繰り返す。
システム開発中でもリリース後でも、ユーザーからの要求変更に対して柔軟に対応できるアプリケーションアーキテクチャが必要である。

もしも気に入ったら、サポートお願いします! おやつを買いますので、餌付けができます。