インターン前半では、はてな独自のWebサービス開発手法について、各サービスを担当するエンジニアやディレクターが講義しました。全7回の講義を通じて、企画、設計から開発、リリース、運用に至るまで、Webサービス制作過程の全体を学びます。1日目から5日目までの講義では毎回課題が出され、全課題をクリアした参加者のみが、後半の「アプリケーション開発」に進めます。

1日目 Perl事前課題のフォローアップ

はてなで主に利用されているプログラミング言語「Perl」の基本的な使い方を確認するために、事前課題が用意されています。課題では、Perlを用いてソート(並べ替え)やリスト構造を記述したり、Twitterのようなアプリケーションの一部をオブジェクト指向で開発したりします。Perlやオブジェクト指向の基礎知識に加え、データ構造やアルゴリズムといったプログラミングの基礎力も試されます。

栗林健太郎 (id:antipop)

2日目 ORマッパーを用いたデータベース操作

Webアプリケーションの開発では、一般にデータベース管理システムと呼ばれる、大量のデータを効率よく管理するソフトウエアが用いられます。このデータベースへのアクセスを便利にするのが、「ORマッパー(ORM)」と呼ばれるソフトウエアです。はてなでは、独自開発の「DBIx::MoCo」というORマッパーを利用しています。このMoCoを使って、ブログを題材にデータベースにおける読み書きの基本を学びます。

大坪弘尚 (id:motemen)

3日目 Ridgeを用いたWebアプリケーション開発

2日目に作ったプログラムを元にして、ブログをWebアプリケーションに仕上げていきます。はてなではWebアプリケーションの開発を効率化するために、「Ridge」と呼ばれる独自のWebアプリケーションフレームワークを用いています。Ridgeは、多くのWebアプリケーションフレームワークと同様に、MVC(Model、View、Controller)の3つに分割してアプリケーションを開発できます。

渡辺博文 (id:cho45)

4日目 JavaScriptによる動的なページ操作

昨今のWebアプリケーション開発において、クライアントサイドで動作するJavaScirptはとても重要です。はてなでもユーザーインターフェースを中心に、積極的にJavaScriptを活用しています。4日目の講義では、まずWebにおけるJavaScriptの基本といえるイベントやコールバックの概念を理解します。課題では、表示しているページの動的な変更、具体的には表示しているブログを画面遷移なしで編集する機能を実装していきます。

外山真 (id:nanto_vi)

5日目 Webサービスの企画と独自機能の開発

4日目までに作ってきたブログに、はてなならではの企画手法や設計手法で、独自の機能を追加します。まず付箋紙などを活用して、どんどんアイデアを出します。参加者同士で議論しながら、出たアイデアをさらに膨らませます。開発する機能を決めたら、画面設計を経て、開発、実装していきます。

二宮鉄平 (id:nmy)

6日目 はてなWebサービスのインフラストラクチャ

はてなは、国内でも有数の大規模Webサービス事業者です。サーバー台数は数百台、トラフィックはGbpsのオーダーです。6日目の講義では、この規模を支えるためのネットワークやサーバーといったインフラストラクチャを学びます。はてなで開発するアプリケーションが、どのような環境で動作するかを知ることで、堅牢で効率の良いコードを書く重要性を学びます。この講義には課題はありません。

村松雄介 (id:halfrack)

7日目 はてなのスマートフォンアプリ開発

iPhoneやAndroid端末といったスマートフォンで動作するアプリケーションの開発について学びます。まずスマートフォンの現状や、開発ツールなどの概要を簡単に確認します。続いて「はてなブックマーク」アプリを例に、アプリ開発の手順や、現状での良い開発のやり方、注意すべき点などを知ります。この講義も課題はありません。

浅野慧 (id:ninjinkun)
後半の課題成果を見る
Copyright (c) 2011 Hatena. All Rights Reserved.
閉じる 写真を全て表示