「はてなサマーインターン2009」レポート

#2 はてなでの開発の第一歩とは?……インターン第一週

この記事を読むのに必要な時間:およそ 4 分

5日めの講義メモ

5日めの講義は,id:chris4403氏※3による「ユーザインタフェースプログラミング」⁠

  • ユーザインターフェースについて
  • はてなとUI
  • JavaScript
  • はてなで使われているJavaScriptフレームワークTen.js(テン)

という流れで,JavaScriptを使ったユーザインターフェースプログラミングと,Ten.jsを用いてWebアプリケーションのUIを拡張する方法について解説が行われた。参加者のうちJavaScript経験者は2人で,有名どころのJavaScriptフレームワークであるprototype.jsjQueryを使ったことはあるとのことだった。

講義冒頭では,クラス指向OOPインターフェースの作成が可能になっている点,シンプルな実装,グローバルな名前空間の汚染はしない,といったTenの種種のポリシーについて概説された後,Tenでのクラス指向のメソッド定義の書き方(Tenでは重要)やイベント処理,重要度の高いクラスをピックアップして説明があった。

Tenを使ったアプリケーションサンプルは,題して「はてな友達ハイク」⁠Tenの機能を駆使し,はてなIDを使って友達一覧やハイクの表示をするというAjaxアプリケーションの例に解説が進んだ。JavaScriptの持つ自由さ加減に慣れるまでには個性的なコードになりがち,行数が増え見通しが悪くなりがちな点をうまく抑えながら,フレームワークTenを使う手順についてコードを追いながら解説された。その他,JavaScriptにネイティブで用意されている関数を使うのか,Tenを呼び出すかについての指針や,JavaScriptの予約語の落とし穴などヒントも盛り込まれていた。

※3
本サイトgihyo.jpにて,連載Aptana JaxerでサーバサイドJavaScriptを始めてみよう!Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!を寄稿いただきました。書籍『Redmine -もっと手軽にプロジェクト管理!』⁠倉貫 義人/栗栖 義臣/並河 祐貴/前田 直樹著,インプレスジャパン,2009)も好評発売中。

写真6 id:chris4403氏の「ユーザインターフェースプログラミング」

写真6 id:chris4403氏の「ユーザインターフェースプログラミング」

第一週のおわりに:プロダクションコードへのコミット

2日めの最後にはid:cho45氏から「プロダクションコードをいじるうえ」でと題して,これから他の人が書いたコードを「読む」ことが大切になるだろうというスライドが添えられた。一人ではなくチームで共同作業には自分にとって最も美しいコードよりも「統一されたコード」が重要。プログラミングでは「書く」ことには考えなくても意識が向く。⁠読む」ことから他の人のコードから慣習や意図を汲んで,(なら)って書けるようになることが,チームではごく自然と求められる。整合性がとれないとみるみるカオスに陥ってしまうから,自身も日頃から心がけておきたい点としてまとめられていた。

本インターンでは,初日のオリエンテーションで話しがあったとおり,⁠プロダクションコードへコミットできるレベルへの到達」という明確な目標が設定されている。したがって,前半の講義とくに3日め~5日めでは,はてなでの開発の第一歩となる必須ノウハウの習得が大前提となるからHow to的な話しも丁寧に扱われ,実際のコード片を織り交ぜ連日徹底した解説が行われた。

一方,講義中,こうしたいからこうします,といった解説に「なぜ,こうするのか。みなさん,わかりますか?」と時折差し挟んで確認されていた。この繰り返しは,講義を重ねるごとに効いてきていたようだ。本インターンの後半2週間で実施される新機能を作るという実習では,システムに何が必要かを一つ一つ考える積み重ねる作業が待っている。徹底して基本の習得に力点が置かれた第一週の講義を終え,いよいよ第二週。数百万,数千万単位のアクセスを捌(さば)く,Webアプリケーションシステムの開発技法へと焦点が移る。

はてな
URLhttp://www.hatena.ne.jp/
はてなインターン
URLhttp://www.hatena.ne.jp/company/staff/intern