2014.10.24

【夏休みの過ごし方】Webアプリケーションの開発


みなさん、こんにちは。M2の青木智寛です。

もうすっかり夏は過ぎ去って、気が付くと冬が顔をのぞかせてきていますね。寒いのが苦手な僕としては、穏やかな冬であってほしいなぁと願うばかりです。

さて、今回のお題【夏休みの過ごし方】第2回 です。何を書こうかと思って悩んでいた、今日このごろですが...
9月に行われた毎年恒例の研究室合宿で、島根県隠岐島の海士町を訪問させていただき、ありがたいことに、僕がこれから行う修士研究の実践を実施させていただくことになったので、夏合宿について書かせていただこうかと思いました。...が、番外編で合宿についてはすでに記事が上がっておりますので(こちら)、今回はちょっと外して、普段ゼミや研究室でもあまりお話する機会のない、開発についてのお話をしようかと思います。思い返してみると、実際、夏休みの大半の時間は、修士研究のシステム開発をしていたように思います。

-----------

山内研究室では、研究の領域として、大まかに分けて「空間」「活動」「共同体」「人工物」を対象として、各メンバーがそれぞれ研究を行っているのですが、(詳しくは研究室の紹介のページをご覧ください)僕は山内研に興味を持ったときから「人工物」の領域、すなわちシステム開発(+実践)型の研究をしたいと思っていました。
僕は、学部時代に「学力データを効果的に可視化する」ことをテーマとして、日々の学習履歴をアニメーションの形で可視化するアプリケーションを「processing」という言語兼開発環境を用いて開発していました。processingとは、MITが開発した、グラフィックを描画するのに適した言語(兼開発環境)で、無償で提供されている開発環境を用いて、細かい宣言をほとんどせずにかなり直感的に2D,3DCGを制作できるという便利なものでした。そこで、ある程度はデータを視覚的に表現することに関しては経験がありましたが、いざ修士研究で自分がつくることになったのはWebアプリケーション。どうして作っていこうかと、最初は少し戸惑いがありました。

基本的に、Web上に上がっているリソースを元にして簡単なものから作ってみて、だんだんと複雑化していく、というプロセスは経験上、浮かんでいたものの、どうしていいものかわからなかった時に、お世話になったのがドットインストールなどの無料のプログラミング学習サイトです。Webアプリケーションを作る際に必要な言語(HTML, CSS, PHP, JavaScript, MySQL ... など)についての解説だけでなく、ローカル環境を含む開発環境の設定まで細かく解説されており、最初の数日はこれに浸ってひたすら説明されているとおりに作っていきました。たまに+αとして自分なりのアレンジを加えてみるなどしながら、とりあえず簡単なものが動く状態をつくり、少し安心感が得られました。

次は、簡単な動くものを、自分が作りたいものに近づけていくフェーズです。基本的なステップとしては、開発者の方々がよくされているように、Googleで 「[言語] [やりたいこと] 」のように検索をかけて、フォーラムなどでおなじ質問をしている人の記事を読む、または載せてあるソースコードを自身のコードに適用してみる、といった作業を何回か繰り返してみました。

ところが、コーディング量が多く、正直このままでは間に合わないと判断され...再度焦りが生まれました。そこで、開発を大きく加速させることになったのが、「フレームワーク」の利用です。
フレームワークとは、世間でよく利用されている機能をあらかじめ作っておき、それをまとめてパッケージ化したもので、現在、様々な言語で提供されています。僕はPHPという言語を利用してサーバ通信するアプリケーションを開発していたので、PHPフレームワークとして多く使われているCakePHPを利用することにしました。これによって、"記事の投稿・変更・削除","コメント","ログインなどの認証"が非常に簡単に実装できました。

あとは、オリジナルな部分をいかに作りこむか、というフェーズに入り、「新しい機能を作る→動かす→バグ発見→修正→...」を繰り返して、設計した通りの形にしていき、今に至ります。ここまででちょうど夏休みが終わる9月末となりました。(もちろん、この後、テストしていくうちに安定的に運用できない部分が見つかり、順次修正していくのですが。)

----------

こうして見てみると、当たり前のシステム開発のフローを述べているだけですが、なにごとも初めてのことをするのには何かとハードルが高いものですよね。実際、上記の内容だけ見るとサクサク作っていけたように見えますが、何回も打つ手がなくなって途方に暮れていました(笑)そのようなときは、知り合いのエンジニアの方や、助教の先生方に助けていただき、なんとか切り抜けて行きました。基本は個人プレイなのですが、どうしようもなくなった時に、周りの知識と経験を持った方々の存在は大きかったです。やはり最後はGoogle先生よりもリアルな先生にお世話になりました。

と、いうことで、開発を終えて、これからこのWebアプリをもって、再度、夏合宿で訪れた島根県隠岐郡海士町に行ってまいります。このシステムが、高校生の皆さんのより質の高い学びにつながればと思っています。


さて、次回は第3回、M2池田さんです。

PAGE TOP