第二話 特別授業
特別授業はあっさりと承諾された。
広く門戸を広げるようだ。人手は必要だけど、欲しいのは人材だ。今後の就職に役立つと言う理由で開発を学びたいとか言っている連中まで相手にできるわけが無い。戸松先生と津川先生を見ると、目線を外された。はしごを外された気分だ。
そして、俺はなぜか壇上に立っている。
俺が仕切りを任されたようだ。最初は、戸松先生が簡単に授業の趣旨を伝える。津川先生が、生徒たちをいくつかのグループに分ける。
挨拶だけをして、各グループを確認する。面談をしていく。
なぜ?
開発の”か”の字もわからないで、この授業を受ける?
確かに、卒業には関係ないし、赤点もない授業だけど、無駄だよね?
戸松先生も津川先生も、しっかりと趣旨を説明したと言っている。
”学校で使うシステムの開発”
この授業の趣旨だ。
各グループで、役割を持ってやってもらうしか方法は無いが、これなら、俺が作ると宣言したほうが楽だったな。
ん?そうだ、俺は”客”になればいい。
俺が全部を仕切る必要はない。
趣旨を改めて説明する。
開発を教える場ではない事も認識してもらう。就職に役立つような知識を得られるかどうかは、本人の努力次第であると明言しておく。
正直な話、電脳倶楽部の面々が残れば十分だと思っている。
テスターは必要だが、最悪は生徒会のメンバーを使えばいい。
最初の30分を使って、趣旨の説明と今後の流れを説明した。
開発を行うが、開発言語の習得を行うのを目的にしていない。開発に関する質問や助言はするが、習熟を行うためではない。あくまで、システムを完成させる為に行うのだ。
まずは、書式の統一を行う。
最初にやっておかないと、後から統一するのは難しい。
俺が報告の為に使っている様式で大丈夫だろう。
設計を行うのは、電脳倶楽部の面々に任せる。戸松先生が見てくれる。
サーバを分ける形での設計を進める方向で合意した。電脳倶楽部は、二つの班に分けて、サーバの設計を行う班と、アプリケーションの設計を行う班に分けた。サーバの設計を行う班は、設計が終了したら、サーバの構築を開始する。開発を行うのに、テストができるサーバが必要になってくるからだ。
「篠崎!」
「十倉さん。どうしました?」
「あぁ悪い。あのな・・・」
「はい」
「お前に時間が出来たのなら、開発の手順や用語を教えてくれないか?」
教室を見ると、確かに、電脳倶楽部以外の面々は何も出来ない状況だ。時間の無駄と言えば時間の無駄だ。それに、俺が開発に関わらないのに言い訳にもちょうど良いかもしれない。ざっと見ると、14-5人だろう。
「触りだけですよ?」
「構わない。最初は、質問形式でもいい。俺たちにも、何か出来なかと思ったが、電脳倶楽部の話にも加われない。この特別授業の間だけで構わない。頼めないか?」
「いいですよ。十倉さんには世話になっていますからね」
結局、開発を教えることになってしまったが、”システム開発”を優先するという約束さえ守ってもらえれば、空き時間に教える位なら問題はない。
「そうか、ありがとう」
人数を数えると、16名だ。1年生が多い。3年生は十倉さんともう一人だけだ。
「それでは、どうします?質問に答える形にしますか?」
「そうだな。俺が質問をまとめて、篠崎に質問する形でいいか?」
「いいですよ。もし、追加で聞きたい内容が出てきたら、その時に質問をして下さい」
「わかった。15分くらい時間を貰えるか?」
「いいですよ」
俺は、自分が持ってきているノートパソコンをプロジェクターに繋げる。
ブラウザを表示して、質問内容に関するサイトを表示できるようにする。
「篠崎。その勉強会、電脳倶楽部の面々も参加していいよな?」
「え?開発が遅れなければ・・・。って、スケジュールも出ていないから、遅れるも無いだろうけど・・・。問題は無いですよ」
「わかった。十倉と話をする」
戸松先生や津川先生からの要望だ。
開発の勉強会と言われたら、確かに勉強会だ。
10分くらいで話がまとまったようだ。
「篠崎」
「はい」
「すまん。まずは、開発言語に関して聞きたい。いろいろ有りすぎて、何を勉強したら良いのかわからない」
よく聞く話だ。
「そうですね。言語は、それほど重要では無いのです」
「そうなのか?」
「えぇこの言語を勉強しておけば大丈夫という様な物はありません」
「そうなのか?Javaをやっておけばとか、PHPが・・・。とか、よく聞くぞ?」
「うーん。適材適所ですよ。この言語だけやっておけば大丈夫というのは存在しません。流行だと考えて下さい」
「そうなのか?」
「はい。Javaは、確かに強力な言語で、動作するOSや環境は多いです」
「ほぉ」
「しかし、どうしても、ネイティブに書かれたモジュールには速度では敵いません」
「そうなのか?」
「条件が整えば、Javaのほうが早い可能性はありますが、それは他の言語でも同じです。やりたい事で、言語を変えるのが理想的です」
「それだと、いくつも、覚える必要があるのか?」
「そうなります。でも、言語の違いを認識していれば、それほど難しくはないです」
「そうなのか?」
「はい。言語は、いろいろありますが、基本は5つです。代入して、比較して、計算して、繰り返して、出力する」
「え?篠崎。でも、いろいろ、あるのだろう?その、クラスとか、構造なんちゃらとか、難しく書いてあるぞ?」
「あぁそれは、決め事です。ルールと言うよりも、マナーと考えてもらったほうが良いかもしれません。そうですね。十倉さんは、サッカー部でしたよね?」
「あぁ」
「それなら、ピッチ内で相手選手が倒れていたら、ボールを外に蹴り出しますよね?あれは、マナーというか、お約束ですよね」
「そうだな。プレイ再開で、相手にボールを返すのも、約束だな」
「そうですよね。ルールに明記されていません。プログラムも同じです。わかりやすくする為に、開発手法があるのです。作った物が動かなければ、客が満足しなければ、どんなに素晴らしい言語で、どんなに最新の手法を用いても、意味がないのです」
「そうだな。それは、わかる。サッカーでも、最終的に勝たなければ意味がない」
「話が逸れてしまいましたが、開発言語はそれほど重要ではないのです」
「篠崎。そう言っても、始めるに当たって、言語が解るような何かが欲しい」
「そうですね。次の特別授業に参考になる物を作ってきますよ」
「助かる」
「他には?」
「今回のシステムだけど、データベースを別に作るのだよな?分ける意味はあるのか?」
「そうですね。セキュリティ対策の意味もありますが。主な理由は、メンテナンスとパフォーマンスのためです」
「セキュリティはなんとなく解るが、メンテナンスとパフォーマンス?」
「そうです。同じサーバにデータベースと閲覧するためのプログラムが入っていると、メンテナンスの為に止めると、その間はサービスが止まります」
「あぁ」
「でも、データベースが別れていれば、同じ構成のサーバを用意しておいて、メンテナンス開始と同時にデータベースをコピーして接続し直せば、それでサービスが継続出来ます。もう少し手順は必要ですが、メンテナンス性を高める為の一つの方法です」
「ほぉ」
「パフォーマンスは、簡単に言えば、使えるサーバのスペックが問題です」
「ん?でも、篠崎。最低スペックは十分に満たしているし、推奨スペック以上なのだろう?」
「そうですね。データベースを動かすだけなら十分なスペックです」
「すまん。意味がわからない。俺が読んだ本では、3倍のスペックがあれば安全だと書かれていた。学校のサーバなら、そのくらいはあるのだろう?」
「そうですね。スペックを数値にして比較するのは難しいのですが、十分なスペックです」
「??」
「データベースの上で、動くプログラムがあります。それを動かす為には、さらにスペックが必要になります」
「ん?それは、別のサーバで動かすのではないのか?」
「設計で変わってきますが、ある程度は、データベースサーバが行ったほうが、効率がよくなります」
「どういうことだ?」
「これも、言語の話と被る話なので、来週に持ち越しとさせて下さい」
「わかった」
その後も、十倉さんがまとめた質問を俺が答えて、一回目の特別授業が終わった。
来週は、今週の持ち越しの質問に答える形になる。
電脳倶楽部は、設計を1週間でまとめられる部分をまとめて、発表を行う。それを皆で聞いて質問をぶつける形になる。