Skip to content

Java基礎、オブジェクト指向、JDBC、Servlet、JSPのテキスト、演習部分のプログラム

Notifications You must be signed in to change notification settings

fullness-java2020n502/java-text

Repository files navigation

開発演習

成果物

  • クラス図
  • ソースコード
  • Javadocドキュメント
  • 発表資料

プロジェクト構成

  • eclipseで動的Webプロジェクトを新規作成し、プロジェクト名はbookinfoにする。
  • Tomcatのバージョンは9にする
├── README.md(プロジェクト概要を説明するテキストファイル Markdown形式)
├── WebContent
│   ├── META-INF
│   │   └── MANIFEST.MF
│   ├── WEB-INF
│   │   ├── jsp(以下にフォルダを作るのはOK)
│   │   │   └── xxxx.jsp
│   │   └── lib
│   │       ├── jstl-api-1.2.jar
│   │       ├── jstl-impl-1.2.jar
│   │       └── postgresql-42.2.8.jar
│   └── css
│       └── style.css(ファイル名は任意)
├── doc
│   └──(JavaDoc形式ドキュメント)
├── src
│   ├── controller
│   │   └── XxxServlet.java
│   ├── infrastructure
│   │   ├── dao
│   │   │   └── XxxDAO.java
│   │   └── db
│   │       └── ConnectionManager.java
│   ├── model
│   │   └── value
│   │       └── Xxx.java
│   └── service
│       └── XxxService.java
└── plan
    ├── doc
    │   └── (発表資料など、その他資料)
    ├── uml
    │   ├── class-all.plantuml(概要クラス図)メソッドとかフィールドななくていい、クラス、パッケージ名と関連だけ
    │   ├── class-all.png
    │   ├── class-package-controller.plantuml
    │   ├── class-package-controller.png
    │   ├── class-package-infrastructure.plantuml
    │   ├── class-package-infrastructure.png
    │   ├── class-package-service.plantuml
    │   ├── class-package-service.png
    │   ├── class-package-model.plantuml
    │   └── class-package-model.png
    └── sql
        ├── create_table.sql
        └── create_user.sql

DB定義

create_user.sql

create user bookinfo with password 'bookinfo';
create database bookinfo owner bookinfo;

create_table.sql

create table t_book(
	id integer primary key,
	title varchar(100),
	author varchar(200),
	status varchar(2),
	start_date date,
	end_date date
);

create table t_user(
	id integer primary key,
	password varchar(10),
	name varchar(40)
);

毎日の進め方

  • お昼は12:00〜13:00は固定
  • それ以外は1hに10分ほどの休憩は可

演習評価基準

  • 学習したスキルを使っているか
  • 品質(Quality)
    • 設計
      • 正確性
      • わかりやすさ・見やすさ
      • 統一感
      • 最初は粗い粒度で設計して実装に取り掛かり、実装完了後に設計を見直すのが良い
    • ソースコード
      • バグのないコードになっているか
      • 不要なコードが含まれていないか
      • わかりやすいクラス名、変数名・メソッド名になっているか
      • インデントレベルはあっているか
      • Javaのコーディング規約を守っているか
    • セキュリティ・脆弱性
      • 認証・認可(セッション周り)
      • SQLインジェクション
      • クロスサイトスクリプティング
      • 二重投稿(クロスサイトリクエストフォージェリ)
    • ユーザビリティ(低)
    • 見栄え・デザイン(低)
  • 納期(Delivery)
    • 期限までに完成できるか

機能追加について

  • まずは要件通りのものを初期バージョンとして開発する
    • 要件通りのものが完成したらbookinfo-v1.zipという名前でプロジェクトをzip圧縮する
  • 要件通りのものが完成したら機能追加バージョンとして検討し開発する
    • 機能追加版はbookinofo-v2.zipでzip圧縮する
    • 機能追加版はDB定義の変更をしてもよい
      • その場合はcreate_user.sqlcreate_table.sqlは修正する
    • 初期バージョンから機能追加・変更した場所は必ず明記する
      • README.mdを作成してそこに記載する

納品方法

  • bookinfo-v1.zip(機能追加がある場合はbookinfo-v2.zipも)を提出する

「壁」にぶち当たったら

  • 冷静になる
  • エラーメッセージをしっかりみる
    • エラー箇所を特定する
    • エラーメッセージを「ググって」みる
      • 英語サイトにも有益な情報がたくさんあるので見る(Stack Overflowなど)
  • エラーが発生しない箇所まで戻す
    • 徐々に戻したものにコードを追加して原因を特定する
  • それでもダメだったら講師に相談してください

About

Java基礎、オブジェクト指向、JDBC、Servlet、JSPのテキスト、演習部分のプログラム

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published