こんにちは。いなおです。
僕が知識ほぼゼロの未経験からシステム開発会社へ入社した際、こんなプログラミング研修を受けたよ~というお話【その4】です。
【その1】【その2】【その3】を読んでない人は↓からどうぞ。
[kanren postid=”870,908,957″]
いよいよ今回でラストです!それでは早速いきましょー。
全体カリキュラム
- 社会人としてのマナー
- セキュリティ教育
- Java言語とは
- Java学習 基礎編
- Java学習 応用編
- HTML学習
- Javascript学習
- SQL学習
- Webシステムとは
- Webシステム開発 入門編
- Webシステム開発 実践編 ← 今回はココ
研修内容⑨ Webシステム開発 実践編
いよいよ最後の研修課題となりました。
ここでは、実際に1人でWebシステムの開発を行いました。どんなシステムをつくるかは、設計書が用意されているのでそれをもとにつくっていきます。
実際の現場でも設計書をもとにシステムをつくっている
実際のWebシステム開発の現場においても、プログラマーは設計書をもとにシステムをつくっていきます。また、つくった後は、設計書どおりに動くかどうかをテストします。
プログラマーの仕事は、設計書をもとにシステムをつくって、つくったらテストして、期待通りに動かなかったらつくりなおして、またテストして、の繰り返しです。
どんなWebシステムをつくったのか?
さて一体どんなWebシステムをつくったのか?
ざっくり一言で言うと社内のパソコンを管理するシステムです。
主な機能を並べてみると、
- ログイン認証がある
- 社内のPC情報(スペックや使用者など)を登録できる
- 登録したPC情報を変更/削除できる
- PCを検索して一覧で確認できる
- このシステムを使うユーザーを登録できる
- 登録したユーザー情報を変更/削除できる
- ユーザーを検索して一覧で確認できる
- ユーザーには権限(閲覧/更新/管理者)を付与できる
ざっとこんな感じです。
これを約1ヶ月のスケジュールでつくります。もちろんテストも含めて。
機能の中に、PC情報の登録やユーザー登録がありますが、これらはすべてデータベースに登録しなければいけません。
ですので、Java, HTML/CSS, Javascript, SQL といった、これまでの研修で学んできたプログラミング言語すべてを駆使しないとつくれません。
さらに、この課題ではフレームワークと呼ばれる Java のライブラリを使うよう指示されました。
フレームワークって?
フレームワークとは、テンプレートや枠組みといったイメージです。
例えば、履歴書を書くときって、普通はコンビニなどで履歴書を買ってきて、そのフォーマットに沿って書きますよね。真っ白な紙にフォーマットから自分で書く人はいないですよね。
なんでかっていうと、真っ白な紙にフォーマットから全部自分で書くより、買ってきたフォーマットに沿って書く方が圧倒的に楽だからですよね。
履歴書には必要な項目がある程度決まっているので、フォーマットをテンプレート化できちゃうんですよね。だからメーカーがそれをつくって売っている。
利用者はテンプレート化できない部分、つまり自分の情報を書くことだけを考えればいいから楽なんですね。
どんなフォーマットにしようか?なんかいちいち考えなくていい訳です。
このテンプレート化をWebシステムに当てはめたものがフレームワークです。
つまり、ある程度決まっている部分、Webシステムでいうと、画面遷移だったり、データの受け渡しだったり、入力チェックだったり、お決まりの処理がある訳です。
こういった、どのWebシステムにも当てはまる共通的な部分をあらかじめテンプレート化したものがフレームワークです。
フレームワークを使うと、プログラマーは、お決まりの共通的な部分を一から自分でつくったり、はたまたどうやってつくろうか?と悩むことをしなくて済みます。
そのシステム固有の処理をつくることだけに集中してプログラミングできる訳です。(履歴書でいうところの、自分の情報を書くことだけを考えればいい状態)
フレームワークを使うことによって生産性が格段にアップします。
現実は甘くなかった・・・
フレームワークを使えば楽チン^^なんて現実は甘くなかった・・・
僕が使ったフレームワークは「Struts」という、当時 Java では割とメジャーなフレームワークでした。
しかしこれがプログラミング初心者にはキツかった。
Struts って、画面遷移や受け渡すデータの定義を、専用の設定ファイル(xml)に書いていくってルールなんです。
さらに書き方にもルールがあって、これを覚えるのが大変ですし、少しでも書き方を間違えるとエラーになるし、エラーメッセージを見ても何言ってるのかサッパリ分からない訳です。
当時はホントに訳分からず、行き当たりバッタリでプログラミングしてましたね^^;まーそれでもなんとかなったのですが(笑)
最近だと、もっと分かりやすいフレームワークがありますね。僕は「Spring Boot」っていうフレームワークがお気に入りです。
これから Java の学習をする人は「Spring Boot」がオススメです!
初めてのテスト
いろいろありつつも、なんとか1画面ずつコツコツと完成させていった訳ですが、つくったら次はテストをしなくてはいけません。
一体どんなテストをすればよいのか?
まー設計書に書かれている通りに動くことを確認できればいいんだけど、これがなかなか大変でした。
ここでは詳しく書きませんが、ひとつの機能を確認するだけで何パターンものテストが必要になるってことを思い知りました。場合によっては何十とか何百パターンも必要になりますヨ・・・
あとは、どんなテストをするのか(したのか)、テストの結果がどうだったのか、という結果報告書をつくらないといけませんでした。
報告書自体はエクセルのフォーマットが用意されていたので、フォーマットに従ってつくりましたが、それとは別にエビデンスなるものもつくらないといけませんでした。
テストではエビデンスが必要
エビデンスの言葉の意味は「証拠」です。
Webシステム開発におけるテストのエビデンスも意味的にはだいたい合っています。
つまり、テストした証拠を資料として残しておくんですね。
具体的に言うと、テストしたときの画面のキャプチャやデータベースのデータを証拠として残します。
実際の現場では、プロジェクトによってエビデンスの種類や取得方式などが微妙に異なりますが、その目的は同じです。
一番の目的は、お客さんに対してちゃんとテストしたよ!っていう証拠として提出するためです。
あとは、チームメンバーがしっかりとテストしているのかリーダーがチェックするためにエビデンスを取らせるといった場合もあります。
なんとか無事に研修終了
こうしてテストも無事に終えて、なんとかひととおりの研修を終えることができました。
約3ヶ月間という短い期間で駆け足気味でしたが、形はどうであれ、自分ひとりでWebシステムをつくりあげた、という実績がついたのは確かです。
まだまだ不安だらけではありつつも、これから現場で実務としてのシステム開発が始まると思うと「ついにここまできたか!」という達成感に溢れた気分でした。
まさにプログラマーになった瞬間でした!
おわりに
いかがでしたでしょうか。
自分が知識ほぼゼロの未経験で入社した際に受けたプログラミング研修を4回に分けて、途中に解説を交えながらご紹介いたしました。
IT業界に興味のある人や、これからプログラマーを目指す人にとって何かのキッカケやヒントになれば幸いです。
ひとつ言えることは、プログラミングは正しく学ぶ環境さえあれば、あとは諦めずに時間をかければ誰にでも習得できるスキルということです。
しかも時間をかけるといっても、せいぜい3ヶ月~6ヶ月程度のものです。自分は3ヶ月でしたが、たとえ6ヶ月かかったとしても、人生のスパンで考えると6ヶ月なんて大したことないですよね。
少しの勇気で一歩踏み出し、3ヶ月本気で頑張れば、人生変えられるってことです。
あなたにとって、よりよい人生を歩めることを祈っています。
お互い頑張っていきましょー!
それでは。
コメント