カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-1

教材で学ぶことを理解しよう

SpringBoot中規模チュートリアル

本教材では、JavaのデファクトスタンダードであるフレームワークSpringBootを用いたWebAPIの開発を行います。

本教材の開発を通し、SpringBootでアプリケーションを開発する現場で開発するための基礎習得を目指します。

なぜJavaを学ぶのか

2022年現在において、業務アプリケーションにおけるJavaの利用率が高いためです。

Stackoverflow Developer Survey 2022より、プロの現場において33.4%の回答者がJavaを利用していると回答しています。全言語中6位ですが、サーバーサイドで使用される言語に絞ると43.51%のPythonに次ぐ2位の結果であり、Javaはプロの現場で多く使用されていることがわかります。

なぜSpringBootを学ぶのか

2022年現在において、SpringBootが最も良く使用されているJavaフレームワークであるためです。

SpringBootはJavaのフレームワークの1つです。JVM Ecosystem Report 2021の結果によると、アンケート回答者のうち57.6%がSpringBootを用いており、2位であるSpring MVCの28.7%を大きく上回っています。また、SpringBootはSpring MVCをより簡易に使用できるようにラップしたフレームワークであるため、基本的にはSpring MVCと同一です。以上から、2021年においてJavaアプリケーションの86.3%はSpringで開発されていることがわかります。

SpringBootは、Convention over configuration(設定よりも規約)という思想に基づいており、煩わしい設定不要で実装できることを目指して作られています。これにより、少ないコード量で手軽にアプリケーションを実装できます。

本教材が終えたらどのような状態になっているか

  • SpringBootを用いてWebAPIを開発するうえで必要な設計~テスト・デバッグまでの一連のフローを学習し、実務可能な状態になります。
  • 保守性の高いソースコードを開発するための考え方を学習し、中長期視点で効率の良い開発ができる状態になります。
  • WebAPIとして考慮すべき非機能要素を学習し、実装できる状態になります。

受講における必要条件

  • Javaの基礎(インターフェース・クラス・インスタンスなど)を理解していること。
  • RDBMSの概要を理解していること。

Javaを一度も触ったことがない方はProgate等で触ってみることをお勧めします。

この教材の対象者

  • Javaの構文は学んだが、実践的なアプリケーション開発経験はない方。
  • SpringBootによる開発経験はあるが、自動テストの経験はない方。
  • SpringBootによる開発経験はあるが、非機能を考慮した実装手法を学びたい方。

学ばないこと

本教材はサーバーサイドのSpringBootアプリケーション開発習得を目的としています。下記の解説は行いません。

  • サンプルアプリケーションのフロント実装。
  • RDBMSおよびSQL。

本教材で開発していただくAPI動作確認用の画面はReactで開発しています。Reactによる画面開発に今日のある方は別途Reactの教材を用いて学んでいただくことをお勧めします。

本教材の対応バージョン

2022年7月時点で最新のLTSであるJava17をターゲットにいたします。

  • Java:17 (OpenJDK)
  • SpringBoot:2.7.0
  • spring-boot-starter-security:5.7.2
  • mybatis-spring-boot-starter:2.2.2

本教材に対応している環境

  • Windows 11 Home

作成するアプリケーションのイメージをつかもう

以下の機能を持つSlack風のチャットアプリケーションを開発します。

  • ユーザー登録
  • 認証
  • チャンネル作成・更新・削除
  • メッセージ投稿
  • メッセージ検索

アプリケーションのデモ画像

学習における注意点

特にございません。

執筆者について

IT企業に勤める現役エンジニアです。
サーバーサイドに強みを持っており、インフラ構築からアプリケーション実装まで広く経験しています。
パブリッククラウドを用いた開発も行っており、AWS・Azure・Google Cloudを用いています。

目次

0章 はじめに

本教材で開発するサンプルアプリとアーキテクチャの概要をご説明します。

1章 環境構築をしよう

本教材を進めるうえで必要となる環境を構築します。

2章 プロジェクトを作成しよう

SpringBootの最初のプロジェクトを作り、Hello worldを動かしてみます。

3章 テストの基礎を学ぼう

spring-testとDBUnitを用いて、WebAPIのテスト方法を学びます。

4章 チャンネル作成機能を作ろう

SpringBootの基礎を学びながらチャンネル作成機能を開発します。

5章 チャンネル更新機能を作ろう

チャンネル作成機能をベースにチャンネル更新機能を追加します。

6章 メッセージ投稿機能を作ろう

チャンネル内にメッセージを投稿する機能を追加します。

7章 メッセージ検索機能を作ろう

メッセージの部分一致検索を行う機能を追加します。

8章 チャンネル削除機能を作ろう

チャンネルおよびチャンネル内のメッセージを削除する機能を追加します。

9章 認証機能を作ろう

spring-sessionを用いて認証機能を追加します。

10章 DBをH2からMySQLに変更しよう

RDBMSとしてMySQLを導入し、アプリケーションを停止してもデータが永続化されるようにします。

11章 非機能品質を向上しよう

ログ出力やエラーハンドリングなど、ユーザー向けの直接的な機能以外の品質を向上させます。

現在のパート (0)
全パート (15)
みんなで助け合おう!
現在のパートのディスカッション 全0件