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