5月26日(火)Java・システム開発演習(4日目)~コーディング開始~

 

皆様、こんにちは。

本日は、「Java・システム開発演習(11日間)」の4日目です。

昨日までで大方、データベース設計を終えて、今日から実装する作業に移ります。

 

昨日の日報では、こんな振り返りコメントがありました。

 

(プログラミング初心者の方)

「作業が効率的に進むように、作業の優先順位を決めた。

 また、1時間に1回の休憩の前に、次の作業時間でなにをするかを

 決めるようにした。」

 

(プログラミング経験者の方)

「他のグループの話し合いの様子を見学しに行き、

 他と比較して自分のグループの進行が遅いことが分かった。

 原因としては、メンバー同士で細かく慎重に調整しすぎているからだと気づけた。」

 

最終日の発表会を除くと、実質10日間の研修です。

4日目を迎えるにあたり、「どのように効率的に進めるか」を強く意識して

実習を進めている人が多いですね。

 

本日から、役割分担をして進めるところがほとんどですが、

リモートで作業する分、コーディングスキルに対する不安を解消しづらかったり、

その都度何をすべきなのか、認識合わせが難しかったりするかと思います。

とにかくこまめに進捗を確認して、取り組んでいきましょう。

 

 

さて、朝一番は、各グループの進捗報告から始まりました。

 

f:id:insblog:20200526174536j:plain

 

発表では、

「『Keep』としては、「クラス図や画面遷移図を作成したことで、

 視覚的にプロジェクトを理解できるようになったので、他のものにも応用したい。」

 

「『Problem』でプログラム一覧を作成する際に、

 細かい部分ばかり話して進捗が遅れてしまった。

 『Try』として、まず大枠を決めることを優先し、

 講師にフィードバックをもらって軌道を固めてから、

 細かい部分を詰めるようにする」

という発表がありました。

 

 

今日も一日、グループワーク主体で進めていきます。

 

f:id:insblog:20200526174545j:plain

 

あるグループでは、昨日夕方に完成させた

「クラス図」と「画面遷移図」を仕上げるため、

講師にレビューを依頼していました。

 

「クラス図と画面遷移図を合わせて合成するなんて、珍しい書き方したね。(笑)」

「提出するドキュメントではないですけど、このほうが分かりやすいと思ったので!」

「なるほど、そうしたら、細かい部分を説明してもらおうか。」

「ログイン画面からログインしたら、まず、商品一覧画面に遷移します。

 その際は、○○ファイルで○○の処理をします。

 新規登録時にポイントが付与される仕組みを実装したいので、

 ○○クラスを設定しています」

という形で、処理の流れを詳しく説明しています。

 

それに対して講師は、

「TopServeletのファイルって、処理はあるのかな?」

「通常、詳細画面を表示するときは、データベースから

 情報を持ってきて商品詳細ページを作るけど、

 この構図だと、4つだけのページを作ることになってしまうと思う。

 そのあたりはどういう話をしてこうなったの?」

「カート機能の実装が難しそうだね~」

と、いろいろな質問をしながら、受講者と認識を合わせ、意見していきます。

 

 

f:id:insblog:20200526174601j:plain

 

あるグループでは、当初より少し進捗が遅れており、

サブ講師のフォローを受けながら、再度データベース設計の見直しをしています。

 

「『ORDER_DESC』テーブルだけど、これって購入品の合計の数が入るから、

 ○○テーブルとも連携するはずだよね。」

「『ORDER_DESC』テーブルと『ORDER_MAIN』テーブルに

 データが入るタイミングによって、

 データベースに保存するかしないかも決まってくるよね」

「データベースに入れた場合、データを削除する操作も必要になってくる

 ってことだよね」

 

講師が提示したサンプルも確認しつつ、

必要なデータとそうでないデータをもう一度整理し直していました。

 

 

午後も、午前中の続きを進めています。

 

あるグループでは、データベースに仮にデータを入れるために、

phpMyAdminを操作していました。

どうにもエラーが解決できず、講師にヘルプを求めます。

 

f:id:insblog:20200526174615j:plain

 

エラーが出ても、グループが複数あるので、

講師がつきっきりでフォローできないタイミングもあります。

 

「フォローしてもらえない間はこっちを進めよう」

とうまく切り替えながら進めていました。

リーダーが決めるばかりではなく、全員が「今」できることを

考え続けながら続けているようです。

 

今日はページ同士のリンクを作ることを目標に頑張ろう、と決めて進めています。

 

プログラミングがどうしても苦手という方は、

「まずはテキストの内容を確認しながら、コードを書いてみました!」と

5分程度で簡単なフォームまで作りました。

「パスとかもきちんと書き換えても、こんなエラーが出ます」と画面共有しながら、

受講者にフォローを求めています。

 

 

その後も、

「フォーム作ったんだけど、何故か次のページに送れない…」

「コード見せて!ん?!ここ、GETじゃなくてPOSTだよ!(笑)」

「そうか~!すごく忘れてた!復習しなきゃだめですね(笑)」

「DAOを作ってるんですけど、ちょっと見てもらえますか?」

というように、気になっているところを聞いて、解決して、を繰り返していました。

 

詰まってしまったときは、あまり一人で抱え込まずにサクサクと相談しているので、

いいペースで進んでいますね。

 

 

さあ、明日は早くも5日目に入ります!

発表会に向けて、資料の作成も進める必要がありますので、

より一層、時間を意識して頑張りましょうね!

 

本日も、一日お疲れさまでした。

 

 

5月25日(月)Java・システム開発演習(3日目)~データベース設計を仕上げよう~

 

皆様、こんにちは。

週末が明け、本日は、「Java・システム開発演習(11日間)」の

3日目に入りました。

 

先週の日報には、こんなコメントがありました。

 

(プログラミング初心者の方)

システム開発に必要なドキュメントがこれほど多いとは思わなかった。

 研修でこの量であるならば、規模の大きいシステムは

 どれほど多くのドキュメントを作成しているのだろうか。

 実際にシステム開発を行うことで、流れを把握でき、

 非常に貴重な体験をできていると感じている。」

 

(開発実習リーダーの方)

「個人の作業に入ったら、より時間と進捗の管理が大切になると思う。

 全体の状況を常に把握できるように、個人の作業中はこまめに連絡を取り合い、

 補えるところは早めに補いたい。」

 

全員で共通認識を取って進めるグループと、

それぞれ分担作業をしているグループとありますが、  

「ここまで終わった」「この部分で詰まったので相談したい」

と発信することを心掛けているようです。

 

こまめに認識をすり合わせて、円滑に進める方法を模索してほしいと思います。

 

f:id:insblog:20200525182345j:plain

 

さて、朝は、各グループのKPT方式」の進捗報告から始めました。

一日の終わりにチームでその日の進め方を振り返り、

「K(Keep:良かったこと)」、

「P(Problem:問題だと感じていること)」、

「T(Try:継続したいこと、問題を改善するための施策)」

を話し合ってもらいます。

 

発表では、

「『Problem』はチーム内でのイメージ共有が難しいことです。

 『Try』の改善策として、ホワイトボード機能を使い、

 イメージ画像を共有することを意識します!」

というように、具体的な行動を宣言してもらいました。

 

週末をはさんでいるので、エンジンがかかるのに少し時間がかかるかと思います。

振り返ったことを念頭に置いて、今週も頑張っていきましょう!

 

 

本日も先週に引き続き、ドキュメント作成とデータベース設計に取り組んでいます。

進行が速いグループでは、画面設計の定義をするドキュメントを仕上げています。

 

f:id:insblog:20200525182422j:plain

 

「各画面に表示するリンクも、一覧にして整理しましょうか。」

「トップページが表示されるのは、会員としてログインした後ってことでしたよね?」

「そうですね~、ログインした後は、トップページに商品の一覧を載せるのが

 いいですね」

「そうしたら、商品の一覧画面から、商品の詳細を見る画面もいりますね!」

「画面遷移の話でもかなり話膨らむな、1時間あっという間だ…!

 『いつまでに終わらせる』と決めてやらないと、すぐ時間が経っちゃう!」

「作る画面の分担もこれからだし、大丈夫かなあ。」

「…まずは先にこの一覧を仕上げて、一息休憩入れましょう!」

 

とても集中力が高い分、決まるのも早いのですが、

気が抜けない分、少しばかり疲れやすい面もあるようですね。

 

 

午後も、グループワークです。

このグループでは、習ったMVCモデルに照らし合わせて、

作成するJavaファイルを整理しています。

 

「計算処理が必要なファイルはどれだ?」

「とりあえず、機能に合わせて並べてみるか」

「DAOの概念ってどう使えばいいのかな?」

 

「内容を忘れてしまった」という人に向けて、プログラミング経験者の方が

丁寧に解説している場面もありましたね。

 

f:id:insblog:20200525182543j:plain

 

ドキュメントが大方完成したグループは、サブ講師にレビューをしてもらっています。

テーブル定義書について、

「この設計だと、カート機能に購入情報が入ったままになるので、

 今回については、テーブルを作るよりも、

 セッションで組むほうが良いかもしれない」などとコメントしています。

 

講師から指摘を受けた点を適宜修正し、

phpMyAdmin上でデータベース設計を始めました。

コーディングする時間も限られているので、

残り時間を意識しながら、集中して取り組んでいます。

 

 

またあるグループでは、Zoomのホワイトボードの活用を強く意識しているようで、

JSPファイル同士の関係性を図にして整理しています。

できた後には、Zoomから「png」ファイルとしてダウンロードできるので、

議論した内容を振り返るのにも便利です。

 

 

午後の後半の時間は、5人グループの中で2人、

他のグループに偵察にいく人を決め、様子を観察しに行ってもらいました。

(スパイ活動!と地味に盛り上がっています)

 

朗らかに、

「いってきまーす!」「いってらっしゃーい!楽しんで!」と声掛けをしていました。

 

緊張感が漂う…こともなく、

「これからは、どんなふうに作業分担する予定ですか~?」

「まだコーディング作業には入っていないですね~。

 現時点でのガントチャートはこんな感じです」

「なるほど!うちもどっちかとレイアウトを先に決めてるんですよ!

 時間が足りるか、悩みますよね~」

「議論ってどんなふうに進めています?」

「わりと話す人が多いから、みんなで話すことは時間の中で、

 全員で決めようって意識していますよ!」

とお互いに不安な点を解消しつつも、

テーブル一覧や画面遷移一覧などのドキュメントを誇らしそうに見せ合っています。

 

f:id:insblog:20200525182623j:plain

 

他のグループから戻ってからは、

「ただいま~」「おかえり~」とウェルカムモードで話し始め、

他のグループの進捗がどうだったかを和やかに話していました。

(どことなく安心感が漂います)

 

「研修後に残業しないように、1時間に1回とか方向性確認してやっていきたいね!」

「何するかを明確にして始めたら、うまく進められるんじゃないかな」

と、明日からどう進めるかも考えています。

 

3日目にもなると、コーディングにかけられる時間が少しずつ減っていくので、

本当に成果物ができるのか、不安を感じ始めている人も多いようですね。

 

明日以降は、さらにタイムマネジメントが肝になってきますので、

試行錯誤を繰り返して、軌道修正していきましょう!

 

本日も、一日お疲れさまでした。

 

5月22日(金)Java・システム開発演習(2日目)~ECサイトの基本設計~

皆様、こんにちは。

早くも金曜日になりました。あっという間ですね!

本日は、「Java・システム開発演習(11日間)」の2日目です。

 

昨日の日報には、オンラインでのコミュニケーションの工夫について、

書いている人が多い印象でした。

「話し合いをする際は、文字だけでなく画像や図などを共有しながら進める。

 また、次の作業に進む前に決定内容を再度確認し、

 グループ内で認識の齟齬がないようにする。」

 

「顔を合わせずに開発をするため、発言が重なるなどのWeb特有の問題が発生する。

 意思の疎通のために、発話だけでなくホワイトボードなどで図を書くなどの

 工夫が必要。」

 

また、昨日グループメンバーにECサイトの発想を称賛されて、

グループリーダーになった方は次のように書かれていました。

「今回の開発実習のグループで私がリーダーに決定した。

 私はプログラミングの経験がなく、初めてで慣れていないこともあり、

 設計段階でメンバーに適切な仕事を割り振ることができるか、

 リーダーとしてチームをまとめることができるか不安に感じている。」

 

グループ全員が「作って面白い」と思える企画を出せたことも素晴らしいので、

ぜひ自信を持って進めてもらえたら、と思います。

 

f:id:insblog:20200522172947j:plain

 

朝は、昨日の進捗報告のプレゼンテーションから始まりました。

各グループのリーダーから、現状の進捗と、課題について共有してもらいます。

 

実際の開発工程でも、しっかりとスケジュールを立てて、

進捗に遅れがあるか、その場合はどうリカバリーするかを軌道修正しながら

進める必要がありますので、毎日PDCAをまわして進めていきましょう。

 

どのチームもコンセプトが面白いので、どんなECサイトができるのか楽しみです!!

 

 

さあ、本日は構築するECサイトの基本設計をしていきます。

スケジュールを立てるガントチャート

システムの概要を説明する要件定義書、

遷移する画面と、各種機能を記載する画面一覧など、

様々なドキュメントを作ってもらいます。

 

f:id:insblog:20200522173002j:plain

 

ドキュメントができたら、講師に確認してもらうように指示しており、

講師は、修正点や説明が足りていない部分を指導しています。

 

進め方については、特に講師が細かく指導することはなく、

受講者の自主性に任せて、様子を見守っています。

どのグループも、特に議論が詰まったり、

雑談して議論がよそ道にそれることもないようです。

 

あるグループでは、昨日時点で立てたスケジュールに沿って進めていました。

まずは午前11時を目標に、要件定義書を作りはじめます。

 

f:id:insblog:20200522173048j:plain

 

効率よくすすめるためか、やることリストを作って、

決めるべき内容を着実に決めていました。

 

このチームは「○○ジュース」を売るサイトを考えていますが、

商品のカスタマイズをどこまでできるようにするかで画面設計が変わることに気づき、

「ドリンクサイズ」「氷の量」など、

カスタマイズの種類を絞り込んで議論しています。

 

f:id:insblog:20200522173100j:plain

 

またあるグループでは、同じ時間帯に画面一覧の作成を終え、

データベースに登録するデータについてディスカッションしています。(速い!)

議事録を共有するために、「グループチャット」も活用しており、

Zoom機能を「使いこなしている感」があります。

※冒頭のグループリーダーさんが、しっかり指揮をとって進めています。

 

 

午後の時間も、グループで進めていきます。

 

f:id:insblog:20200522173107j:plain

 

もう一つのグループでは、

「データベースとの連携が不得意」

サーブレットがよく分からない」という受講者に対して、

プログラミング経験者の人が資料をまとめて、丁寧に説明する時間を作っていました。

全員が「分かった」と言ってから進められるように、考慮しているようです。

 

このグループでは、クラス一覧を作るところまで進めており、

誰がどのページを作成するのか、役割分担を進めています。

「データベースを扱うことに挑戦したいので、注文機能を担当したいです」

「デザインは得意なので、画面のたたき台、つくりますよ!」

と得意・不得意について相談しながら、進めていましたね。

 

f:id:insblog:20200522173117j:plain

 

また、「商品を閲覧する」「商品をカートに追加する」などの機能と

データベースの関係をうまく図にして整理しています。

画面のデザインも、PowerPointを使って図式化していました。

 

オンラインで共通認識がとりにくいからこそ、ということで

早速、日報で振り返ったことを実践しています!素晴らしいですね。

 

 

グループによって、一つのことを火花を散らして議論しているところと、

深く議論を進めず、いったん前に進めることを優先しているところと、

進め方は違いますが、

なんとか今日目標としていたところまでは終えたようです。

 

来週は、メンバーで分担してWebページを作っていきます。

チームワークを存分に発揮して、頑張ってください!

 

本日も、一日お疲れさまでした。

5月21日(木)Java・システム開発演習(1日目)~システム開発概論、ECサイト設計開始!~

皆様、こんにちは。

今日から、「Java・システム開発演習(11日間)」に入ります。

 

本日からの単元が、最後の研修になります。

システム・アプリケーション開発の一連の工程を理解し、

最終的には、開発チームで設定したスケジュールに沿って、

グループで1つのECサイトを構成することを目指しています。

 

ここまでに習ってきた知識を結集して、

グループ一体となってECサイトを完成させましょう!

 

まず午前中は、システム開発の全容を理解してもらいました。

 

これまでの研修ではあまり触れてこなかった、

コーディング以外の知識を詳しく学んでいきます。

 

f:id:insblog:20200521165847j:plain

 

冒頭に、「良いシステムとは何か?」という講師の問いかけがありました。

エンジニアにとっては「バグがなく、予想通りに動くシステム」かもしれませんが、

システムを使うユーザーにとっては、

「業務効率が向上し、売上アップの役に立つ」ものですよね。

 

そういったシステムを開発していくうえで、

「システムを作るには、どんな工程が必要なのか?」

「どのように役割分担をして、開発を進めるのか」といった視点は、必要不可欠です。

 

開発工程の中でも、特にシステム設計とテストについて、

講師から説明がありました。

 

f:id:insblog:20200521175521j:plain

 

・「ヒアリングの際は、機能やデザインを『どうしましょうか』と聞くのではなく、

 『こう考えますが、いかがでしょうか』と、より具体的な提案ができるように

  準備すること」

・「ユーザーの立場や、システムを使用する環境によっても、

  テストを行う条件が変わる」

・「バグを多く発見できるということは、テストを徹底して行っていることの証明。

  信頼度を上げることにも繋がるので、テストの実施を怠らないこと」

といった、現場に即した考え方を、丁寧に受講者の皆さんに伝えていました。

 

スケジュールを立てていく工程があることや、

システム設計に様々なドキュメントを作る必要があることも学んでもらいました。

 

 

午前の終わりから、午後の時間にかけては、

開発チームで構築するサイトのコンセプトを決めてもらいました。

 

あるグループをのぞいてみました。

「みんなが興味を惹かれるサイトをつくったほうが、作るのが楽しいよね!」

「そもそもECサイトって、誰を対象とするのがいいんでしょうね~」

「BtoB、CtoC、まれにCtoBもありますかね?」

「ちょっとお昼に自分で考えてみて、考えた企画をプレゼンしてみますか!」

 

というところまで話して、お昼に入りました。

 

お昼休憩後、5名が一人一人、考えたものをプレゼンしていきます。

 

f:id:insblog:20200521165859j:plain

 

「形のないものを売れるサイトを考えました」

「架空だけど、日常生活の不便なもの、

 あったらいいものを売るってアイデアがいいかなと。

 シャワーが最初から温水になるとか、瓶のシールがすぐはがれるとか…?」

「着眼点がすごくいいね~!」

「技術とかスキルを買うなら、購入者と出品者の両者で価格を決める、

 オークション形式も面白そうだね~」

「スキルを購入者と出品者で『交換できる』ってアイデアは、どうですか?!」

と、研修が始まって以来、一番楽しそうな顔で議論しています。

 

チャット機能を使って、いいアイデアに1票投票するという方法をとっていましたが、

結果的には、「○○さんのアイデアも取り入れよう!」と

イデア盛りだくさんになりました。

 

午後の後半は、出てきたアイデアを、

お渡ししたフォーマットに沿ってまとめていきます。

なかには、文書とメモ書きの配置を工夫しながら、文書を作っているグループも。

 

f:id:insblog:20200521173327j:plain

 

システムのコンセプトや機能を考えるだけではなく、

ガントチャートを作ってスケジュールを決めたり、

様々なECサイトのHTMLを見て、

画面のデザインはどうするかも話したりしています。

 

講師陣が、すべてのグループを同時にモニタリングしている限りにおいては、

すべてのグループが、オンラインで全員が同じ画面に集中しているからなのか、

議論を進めるペースも、書面を作るペースも、

とてもサクサク進んでいるように見受けられます。

 

完全に「仕事」として、きちんと舵を取って進めようとしている姿勢が、

前向きで良いですね。

 

当初は、受講者の方同士の仲が深まるか、心配していましたが、

普段の研修とは打って変わって、

「休憩中することないから、雑談しよう~」と呼びかけて、

休憩中ずっとおしゃべりをしているグループもありました。

 

明日以降は、毎日、グループごとに進捗を発表してもらいますので、

楽しみにしています。

 

本日も、一日お疲れさまでした。

 

 

5月20日(水)Webアプリケーション・セキュリティ技術研修(最終日)~データベースとの連携、確認テスト~

皆様、こんにちは。

本日は、「Webアプリケーション・セキュリティ技術研修(6日間)」の最終日。

総まとめの日です。

明日からはいよいよ開発実習に入りますので、

今日までに出た不明点を、きっちり確認する気持ちで臨みましょう。

 

昨日の日報を見ていると、スコープの違いによるサーブレットJSP間での

データ連携の違いに、戸惑いを感じる人も増えてきたようです。

 

「動作確認までを終わらせることを目標にコードを書いていたため、

 処理の流れを理解しきれていない場所がいくつか発生してしまった。

 今回作成したコードを最初から読み、処理の流れを自分なりに

 コメントにまとめる。」

 

他の方も、「人に説明するときはホワイトボード機能を使って図説する」など、

処理の流れのイメージをもつように、工夫しようとする姿勢が見受けられました。

自分だけでなく、他の受講者にとっても、どのように整理したらわかりやすくなるか

考えながら、研修に臨んでほしいと思います。

 

 

本日は、データベースとの連携がテーマで、

作成したWebアプリケーションなどのJavaのコードから、

データベースのデータを読み書きする方法を学びます。

 

f:id:insblog:20200520174435j:plain

 

午前中、まずは、「JDBCプログラミング」の方法と、

「DAOクラス」を介してデータベースとやり取りする方法について、

テキストに沿って学習しました。

 

SELECT文を準備・実行してデータを取得する流れがありますが、

「JDBCプログラミング」は特有のコードを書く必要があるため、

コードが複雑で分かりにくくなりがちですね。

 

f:id:insblog:20200520174412j:plain

 

続いて、昨日作成した「つぶやき」Webアプリケーションについて、

データの保存先を、ServletContext(アプリケーションスコープ)から

データベースに変更する作業を行いました。

 

まずは、データベースと連携する準備を進めていきます。

データベースに触れるのは、4月15日、16日の

「データベース基礎研修(2日間)」以来で、

「SELECT文の書き方を忘れました~」という人も(笑)

 

エラーが出た方が何人かいましたが、解消できるよう、

講師が一人ひとり丁寧にSQL文を確認していました。

 

午後は、グループに分かれてコードを打ち込みながら完成に近づけています。

 

f:id:insblog:20200520174423j:plain

 

一通りの入力が終わると、

「入力終わりましたか~?」と誰からともなく声をかけ、

「JSPファイルで、○○というエラーが出ました」 

「私も同じ!」

「××を変えたら、動きますかね…、動かないですね!」

「どうにもならないんで、講師の方にヘルプを求めてみます!」

というやりとりがあり、

どうしても解決できないところがある場合は、

講師にデバッグを支援してもらっていました。

 

※Zoomのブレークアウトセッションのときには、

 「ヘルプを求める」という機能があり、

 何か講師に質問したいときには、いつでもメッセージを送ることができるように

 なっています。

 

前よりも、簡単なエラーについての質問は少なくなっており、

自身でデバッグできるバリエーションが増えたんだなあ、と感心しています。

 

f:id:insblog:20200520174446j:plain

 

早く課題を終えた方には、

コードの一部をアレンジしようという講師から追加の課題が出ました。

 

 

さあ、いよいよ確認テストが実施されました。

前回同様、ひっかけ問題には注意してください!

と重々注意しておりましたが、結果は…?

 

恐るべし…、全体の平均点は80点という結果になりました!!

かなり速いペースで研修が進んでいたかと思いますが、よく理解していましたね。

 

一方で、満点を取っている人と、正答数が半分ほどだった人と、

理解度に差があることが浮き彫りになった結果とも取れました。

 

全部覚えるのはかなり難しいのですが、まずは繰り返し講義で取り扱った、

内容を重点的に復習してほしいと思います。

 

 

明日からは、待ちに待った開発実習ですね!!

チーム開発するメンバーは固定で、これまでの講義の理解度と個々の性格を踏まえ、

編成しております。

 

技術に強いプログラミング経験者の方、話を広げるのが上手な方、

人と話しながら問題を整理できるタイプの方など、いろいろなタイプの方がいます。

 

ぜひそれぞれの個性を存分に出し、チームで自分が果たせる役割を考えながら、

頑張ってもらいたいと思います!

 

本日も、一日お疲れさまでした。

 

 

5月19日(火)Webアプリケーション・セキュリティ技術研修(5日目)~アプリケーションを実装しよう~  

皆様、こんにちは。

早いもので、「Webアプリケーション・セキュリティ技術研修(6日間)」も

残すところあと2日になりました。

 

昨日の日報のコメントに、こんな意見が出ていました。

 

「習った3種類のスコープの区別がつかないことが問題。

 それぞれのスコープに対する理解が不十分であるため、

 実装する際に目的とは別のスコープを用いてしまった。」

 

昨日は3つの「スコープ」について一度に学んだため、

なかなか情報の整理ができなかった方もいらっしゃったようです。

 

定着していないことをいきなりアウトプットするには、

「不明点を整理して、欲しい情報を探し出す」ことが大切です。

間違えることも、成長の第一歩ととらえて、今日も頑張っていきましょう!

 

 

本日は、一日かけて、昨日までに習った「スコープ」や

「JavaBeans」などの知識を使って、

Webアプリケーションの実装にとりかかってもらいました。

 

午前中は、テキストに記載されている、RPG(ロールプレイングゲーム)の

Webアプリケーションのソースコードを確認し、

受講者同士で、気づいたことについてレビューをしてもらいました。

自分で解釈をしていくのが楽しかったのか、

グループ内で議論に熱中していたようです。

 f:id:insblog:20200520113848j:plain

 

レビューをした後は、グループワークで気づいた注意点に気を付けながら、

実際にコードを打ち込んで、アプリケーションを実装しました。

 

なかには、まるで講師のように、他の受講者の方に説明している方もいて、

この研修の間に、どんどん新しい知識を吸収しているな、と嬉しくなります。

 

 

午後からは、テキストのコードを確認しながら、

「つぶやき」として考えたことを簡単に発信できる、

Webアプリケーションを作ってもらいました。

 

SNSサイトのように、会員としてログイン・ログアウトする機能や、

投稿した内容を閲覧する機能などを含んでいます。

 

アプリ名の「○○○○」が「○○××」になっていたり、

案外簡単なタイプミスが原因で、アプリケーションが動作しないことも。

 

スコープに関しては、配列に保存したインスタンスを取得するのに

苦戦していましたが、

チームワークを発揮して、エラーと悪戦苦闘しながら、挙動を確認していました。

 

f:id:insblog:20200520113902j:plain

 

「この部分、どうしても動かなくて…どうしてエラーがでるのだろう?」

「コードとブラウザの挙動、画面共有で見せてもらってもいい?」

「サーバーのポート番号がふさがっている?!」

というやり取りがあり、進捗が遅れがちな受講者の方をフォローしていました。

 

最終的には、講師もヘルプを出しながら、

Webアプリケーションを完成させることができました!

 

オンライン研修でも、助け合いの精神を大事にしている受講者の方が多いので、

このまま開発実習に入っても、心配事は少ないように思っています。

 

明日が単元の最終日。確認テストも実施されますので、

復習をしっかりして、研修に臨んでくださいね。

本日も、一日お疲れさまでした。

 

 

5月18日(月)Webアプリケーション・セキュリティ技術研修(4日目)~じゃんけんゲームを作ろう~

皆様、こんにちは。

週末が明け、「Webアプリケーション・セキュリティ技術研修(8日間)」の

4日目になりました。

 

今日は、サーブレットクラスとJSPファイルの間で、

インスタンスを共有することができる「スコープ」などについて学び、

徐々にスキルアップしていきます。

 

プログラミング経験のある受講者の方でも、

サーブレットやJSPの知識がある方は多くはなく、

経験者の方からも「理解が難しい」といった声が聞かれています。

昨日の日報では、こんなコメントがありました。

 

(プログラミング経験者の方)

「記述するコードがどこにリクエストを送り、

 どこへレスポンスをしているのかをすぐに把握できない。

 コードをいきなり記述するのではなく、一度図にし、流れを把握する。

 データがどのように遷移しているのかを図で把握する。」

 

(プログラミング初心者の方)

「テキストやインターネットを使って、

 エラーの原因を調べて突き止められたことがあったので、

 さらに知識を増やして対応できる幅を広げる。」

 

テキストに書いてあるサンプルコードも、初めに比べて長くなり、

どんな処理を行っているのか、一目で把握しにくくなっていると思います。

仲間の力や、インターネットの検索を活用して、

自分でいろいろなヒントを探しながら学んでいきましょう。

 

f:id:insblog:20200518174435j:plain

 

午前中は、すぐに講義内容に入るのではなく、

先週学んだ内容を使って、「数当てゲーム」を作ってもらいました。

数値を入力するフォームを作って、あらかじめ基準を決めておき、

数値を入力すると「正解/不正解」が出力されるプログラムです。

 

1時間程度経ったところで、グループになり、

プログラムを完成させた人を中心に共有し合いました。

 

なかには、デバッグをしてほしい、とメンバーに頼み、

全員でエラーを解消する場面も。スペルミスが原因でした。

自分では気づかないことも、他者の力を借りると、

一瞬で解決できることもありましたね。

 

 

午後は、先ほどのグループで「じゃんけんゲーム」を作ってもらいました。

テキストにはない、独自の課題です!

 

「グループの全員が同じファイル構成になるように」

という講師が指定した条件のもと、

自分たちでJSPファイルの名前やデータ型を決めて、コードを書き始めました。

講師も全部のグループを回って、

与えた条件がきちんと満たされているか確認し、適宜軌道を修正しています。

 

f:id:insblog:20200518174641j:plain

 

グループでは、こんなやり取りがされています。

「1問目は、セッションスコープは使わずに書ける問題かな?」

「セッションスコープを使うことにこだわる必要はないけど、

 この次のお題はセッション使うみたいだね!

 …ここまではみんな理解できた?」

「プロジェクト名を『Janken』にしたら、

 なぜかプロジェクトが作れないんですけど…」

「なんでかな…いろいろ試したけど分からないから、

 みんな『Janken2』で作ろう!!」

 

先導できる人が決めてしまうのではないかと懸念しておりましたが、

決して誰も置いていくことはなく、全員で歩調を合わせて進めていました。

 

初心者の方も、プログラミングへの苦手意識を克服できたのか、

とても積極的に発言していました。

 

f:id:insblog:20200518174517j:plain

 

ラジオボタンの書き方ってなんだっけ?」

「『input type = “radio”』だね!」

「ここで宣言するStringは2つで大丈夫かな?」

と、メンバーに聞いたりしながら、コツコツと書いています。

 

皆さん、どうにかプログラムを完成させたかったようで、

なかには、「あと1時間、時間が欲しいです!」という申し出もありました。

 

 

研修の終わりには、グループ内で、

今日学んだ「リクエストスコープ」「セッションスコープ」

「アプリケーションスコープ」の3つの違いを振り返りました。

 

「分からないことあるー?」という問いかけに、ぶんぶん、と首を振る受講者も(笑)

分からない人に対しては、

「まずはスコープの概念を説明してみるところから、かな」

「テキストのコードをいろいろ打ち込んで、

 どう違うかをしっかり確認するとよくわかるよ」

と、受講者同士でいろいろなアドバイスが飛び交っていました。

 

ここまで一緒に受講していて、信頼関係ができているのは頼もしいですね。

 

本日は、一つのことにのめりこんで、時間があっという間に過ぎましたね!(笑)

明日は、ここまでの4日間の知識を手に、

会員ログイン機能などの機能を持ったWebアプリケーションを作成します。

がんばりましょう!

 

本日も一日、お疲れさまでした!