
JavaWebアプリ開発勉強会レポート Vol.5
1.今回のテーマと内容
最終回のテーマは、「JDBCプログラムとDAOパターン」、「リーダブルコード」です。いよいよDBとの接続についての講義です!MVCモデルでは、M(Model)に位置するところのDBですが、Webアプリケーションとどうやって接続するのか実技を交えて勉強していきます。
もう一つのテーマの「リーダブルコード」ですが、プログラマを目指す方なら必須です!!プログラムは動けば良いってものではありません。後々のメンテナンスのことも考えて誰が見てもわかりやすいコードを書く必要があります。美しいコードが書けるようしっかりとノウハウを学びましょう。座学でしっかりと解説して、実際に自分でプログラムを作って体験しましょう。
では、今回のコンテンツです。
1-1.JDBCプログラムとDAOパターン
ここでは、大きく2つのテーマについて勉強します。まずは「JDBCプログラム」です。
「JDBCプログラム」とは、JavaプログラムがRDBにアクセスするためのプログラムで、標準Java APIで用意されています。
これらのAPIを使用してDBにアクセスするのですが、実はアクセスするためには特有のコードをたくさん書かなければなりません。それを軽減するために「DAO」という仕組みを使います。
ということで2つ目のテーマは「DAOパターン」です。「DAOパターン」は、DBにアクセスする部分を実装します。そうすることで、DBアクセスに関わる部分をビジネスロジックから分離することができます。
大まかな講義の流れは次の通り。
①データベースの基礎知識
②JDBCプログラム
③DAOパターン
①データベースの基礎知識
データベースとは、
・検索や蓄積が容易にできるように整理された情報の集まりのこと。
・テーブル(表)形式での管理を採⽤しているRDBが主流である。
・RDBでは1件分のデータを1⾏で表現しレコードと⾔う。
データベース管理システム(DBMS)とは、
・データベースの管理を⾏うソフトウェアのこと。
・DBMSを操作する専⽤⾔語としてSQLが広く⽤いられている。
②JDBCプログラム
JDBCプログラムとは、
・JavaプログラムでRDBにアクセスするためのプログラムのこと。
JDBCプログラムを使用するために必要なもの
・Java.sqlパッケージのクラスとインターフェース(JavaのAPIに含まれている)
プログラム内でインポートして使用する。
・JDBCプログラム
使⽤するデータベースの開発元からライブラリ(JARファイル)を⼊⼿する。
※ライブラリ(JARファイル)とは、よく使う複数のプログラムを再利⽤できるようにひとまとまりにしたものをライブラリと⾔い、コンパイルの際に作成されるclassファイルを⼀つに集めて圧縮したファイルをJARファイルと⾔う。
③DAOパターン
DAOパターンとは、
・データアクセスに関するデザインパターン(プログラムの構造を誰もが理解しやすいようパターン化したもの)のこと。
・DAOの特徴としては、
1.データを操作するためのインターフェイス(メソッド)を提供することで、ビジネスロジックとデータ操作を分離できる。
2.データストアの詳細をData Access Objectの利用側から隠蔽することで、データストア技術を更新/置換したとしてもアプリケーション全体への影響を最小限にすることができる。
Webアプリケーション(MVCモデル)とDAOパターンの関係
・DAOはサーブレットクラス、JSPファイル、Modelクラスのいずれからでも利⽤する事ができる。
・MVCモデルにおいてアプリケーションで扱う情報の管理はModelの役割のため、Modelクラス(〜Logicクラス)からDAOを利⽤する事が⼀般的である。
最終回にとても大切な内容が講義されていますが、みなさん真剣にメモを取りつつ講義を受けています。今はピンときていなくても大丈夫です!この後にハンズオンで実技がありますので、実際に動くもの自分で作ってみれば理解も深まりますね。レポートには詳しく書けないのが残念ですが、興味のある方はぜひ受講してくださいね!
1-2.リーダブルコード
続いては、「リーダブルコード」です。
リーダブルコードは、プログラミングをする上でのお作法のようなものと考えると理解し易いかもしれませんね。プログラミングの技術力も大切ですが、この「リーダブルコード」がきちんと理解できて、実践できる人が一流のプログラマと言えるのはないでしょうか。では、大まかな講義の流れは次の通り。
①読みやすさの基本定理
②優れたプログラムとは
③命名規則
④コメント
①読みやすさの基本定理
コードは他⼈が最短時間で理解できるように書くこと。
⇒ 「このコードは理解しやすいだろうか︖」と⾃問⾃答してみる
②優れたプログラムとは
・同じ処理を2度書かない
同じ処理を複数箇所に書いていると、問題が発⽣した時に複数箇所全て修正する必要があり、保守性が低下してしまう。「コピペしたらプログラマーとして負け・・・」
・クラス/関数/変数に分かりやすい名前を付ける
パッと⾒て意味が頭に⼊ってくる名前を付ける。分かりやすいコードを書けばコメント書かなくても理解できる。「コメントを書かなければ理解できないコードは⾒直す」
・なるべくif⽂を書かない
条件⽂が多いと⾔う事は、それだけバグが潜んでいる可能性がある。条件⽂を減らしデータ構造を⾒直す。「条件⽂の数だけバグが増えると考える」
・クラスや関数の機能をシンプルにする
1つのクラスに1つの役割を、1つの関数に1つの機能を徹底する。
設計がシンプルになり保守のしやすいプログラムになる。
「何でもできるクラス/関数は何もできないのと同じである」
ここでは、プログラミングだけでなく設計する時にも気を付けなければいけないポイントがあります。「プログラマ」とは、コードを書くだけでなくプログラムを設計できる人のこと言いますので当然ですね。
③命名規則
ここでは、代表的な命名規則を紹介します。命名規則は案件毎に異なる可能性がありますので、自分の参画しているプロジェクトの命名規則と比較してみるのもいいですね。
<クラス名>
・パスカル記法
先頭及び⾔葉の区切りを⼤⽂字で表記し、それ以外は⼩⽂字で表記する
<メソッド名>
・キャメルケース記法
⾔葉の区切りは⼤⽂字で表記し、それ以外は小文字で表記する(先頭も小文字で表記)
<定数>
・スネークケース記法
全て⼤⽂字で表記し、 複合⽂字の場合は区切りを”_”で結合する。
<変数名>
・キャメルケース記法
⾔葉の区切りは⼤⽂字で表記し、それ以外は小文字で表記する(先頭も小文字で表記)
<ちょっと気にすると良い点>
・名前を⾒るとデータの中⾝が想像できる
・⻑すぎない/短すぎない
・ローマ字を使⽤しない
・決められた記法で統⼀する
④コメント
プログラムにおけるコメントの目的は、コードの書き⼿の意図を読み⼿に知らせること。
コメントを読むことでその分コードを読む時間が少なくなるようになっていることが大事である。
コメントを書く時の注意点としては、
<読み手の立場になって考える>
・コードを読んだ⼈が「えっ︖」と思う所を予想してコメントする。
・読み⼿が驚くような動作は⽂章化する。
・クラスには「全体像」のコメントを書く。
・コードブロックにコメントを付けて概要をまとめる。
<コメントすべきでは「ない」こと>
・コードからすぐに抽出できること
・酷いコード(酷い名前のメソッド等)を補う補助的なコメント
この内容もとても大切ですね!
どうしても技術ばかりに興味が行きがちですが、プログラムを作るのは自分でも直すのは他人かもしれません。業務としてプログラムを作成する以上、最低限のルールを守って作成する必要があります。
技術だけでなく、業務としてプログラムを作成するための注意点も講義内容に含まれているなんてさすがですね!!
このような講義ができるのも現場での経験が豊富な社員が講師をやってくださるからこそです、感謝です!
以上で全ての座学が終了しました。いよいよ最後の実技講習に移ります!
今回も実技の課題が盛りだくさんです。
1-3.ハンズオン(スッキリわかるサーブレットJSP)
ハンズオンでは、座学で学んだことを実際に自分でプログラムを作成して確認します。「覚える」のではなく「作れる」ようになる!!を目指して受講者のみなさん、全力でチャレンジ中!!
今回の課題は、データベースへの接続です。さぁ、時間内に終わるのでしょうか?!
そして、なんと第4回で課題となっていた成果物に対して、実際にデータベースアクセスを組み込んでしまおうというオマケ付きです!!
最後の実技講習とあって、みなさんの熱気もすごいですね。
これでもか!というくらいに講師の方を質問攻めです(笑)
今まで習ってきたことも含めての総決算ですし、みなさん「作れる」ようになるために半年間頑張ってきたので、最後ですから聞きたいことは全部聞いてしまいましょう!
1-4.成果物の発表
今回は、特別に課題の成果物も発表しちゃいましょう!
Webアプリケーションの勉強会なのに、動くものでなくて申し訳ないですが。。。
いかがですか、受講生のみなさんが半年間取り組んだ結果です!
それぞれに今自分ができることに取り組んで、しっかりと結果を出していますね!
今回、初めて自分でWebアプリケーションを作成した人にはとても自信になったと思います。
これからも、自己研鑽に励んで、スキルアップをしていきましょう!
2.受講者の声と評価
今回の参加人数6名、辛口の受講者アンケートでは、満足度が平均がなんと「99点」を獲得です!
「webアプリケーションの基本的な動きが分かるようになり、とても良かった。」「Javaを始めて間もない私にとってwebとの連携を勉強するきっかけとなりました。」「ハンズオンが多く時間が経つのが早く感じた一方で、時間が足りないとも感じた。」など、多くの評価を頂きました。
毎回、満足度の高いこの勉強会。最後はほぼ満点の評価です!
講義と実技のバランスがいいのはもちろんですが、経験豊富な講師がポイントを押さえて即実践で役に立つノウハウも実技を通してしっかりと伝えられているからだと思います。
3.勉強会で伝えたい事
受講生のみなさん、半年間大変お疲れさまでした。今回は最終回いうこともあり、より実務的な内容もお伝えしましたが、いかがだったでしょうか。この勉強会で講義した内容は本当に基礎の基礎ですが、この基礎がないと作れるようにはなりません。
今期はこれで勉強会は終了となりますが、当勉強会では、「覚える」のではなく「作れる」ようになる!を合言葉に、プログラミングを実際に経験してプログラミングの楽しさ、面白さを学んで現場で活躍できることを目指します。
そのために、実技多めで楽しく技術を身につけられる様に工夫しています。今後も自分で試してみて失敗しながら経験して技術を身に着けていってください。一緒にプロフェッショナルを目指して頑張りましょう!!
本勉強会は、メイン講師2名(によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。ぜひ、見学に来てね!!