ようやく完成 http://commect.us - by makotoi
2週間ぶりのブログ更新です。 「今までステルスモードで開発していた」といったら聞こえはよいのですが、ただ単に時間がなくて更新できなかっただけです。
もともとドリコムさん提供のサーバーに入れようと思っていたのですが、AwardOnRailsが終了後も開発を続けて行きたいと思い、自前のサーバーとドメインをとって入れることにしました。
http://commect.usです(本当はcommect.itにしようと思い申請していたのですが、イタリアドメイン申請には時間がかかるらしく、急遽usに変更しました)。使い方とかはホームページに書いてあるのでそちらをご参照下さい。
正直提出までに間に合うかどうかかなり微妙でした。
以前にも書いたのですが、ドリコムのAwad on Railsを知ったのが4月半ば。そこからRailsの勉強をしながら最初の作品を作っていたのですが、途中で方針変更。LRUG(London Ruby User Group)で知り合ったAbdelとペアプログラミングをしながら1ヶ月ほどで新たな作品をつくり直しました。なのでリポジトリはcomebuという以前の作品で使う予定だった名前になってます。
二人ともフリーの時間をとるのがなかなか難しく、週に2回ぐらいしか一緒に開発作業ができませんでした。
天気のいい日に二人で一日中スタバにこもったり、お互いの家からスカイプやVNCをつかってリモートペアプログラミングしたりしながらなんとか間に合わせました。JavaプログラミングであるAbdelにとってほぼプログラミング初心者である私とペアを組むのはなかなかストレスたまったと思います。
私のほうもXP開発手法のかなり厳しいおきてにやきもきしました。二人で合える時間はすくなかったので、一人の時に自分で先行してコードを書いても、「テスト開発手法で先にコードをかくなんてありえない」と二人で一からテストを書き直したりしたことも何度もありました。
開発の大部分はRailsとはあまり関係のないモデルの作成に集中していたので、いつまでたっても目に見えるプログラムができないのもあせりに拍車をかけました(ユニットテストの数はちゃくちゃくと増えていったのですが。以下がrake statsの結果です。コードのトータル行数の半分はユニットテストです)。
Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
Helpers | 3 | 2 | 0 | 0 | 0 | 0 |
Controllers | 86 | 67 | 2 | 11 | 5 | 4 |
Components | 0 | 0 | 0 | 0 | 0 | 0 |
Functional tests | 122 | 93 | 2 | 9 | 4 | 8 |
Models | 97 | 78 | 4 | 12 | 3 | 4 |
Unit tests | 224 | 174 | 4 | 22 | 5 | 5 |
Libraries | 0 | 0 | 0 | 0 | 0 | 0 |
Integration tests | 0 | 0 | 0 | 0 | 0 | 0 |
Total | 532 | 414 | 12 | 54 | 4 | 5 |
Code LOC: 147 Test LOC: 267 Code to Test Ratio: 1:1.8
実際にブラウザー上にちゃんとしたものがあわられたのは締切り1週間をきってぐらいからでした。でもデータベースがらみの機能はRailsのActiveRecordの機能を使ってサクサク作れたので、最後の3日を切ったぐらいからWebAppらしいものがいっきにできてきました(モデルにロジックのほとんどが実装されているので、コントローラーの作成は意外と簡単にいきました)。
実際に当初作りたかった半分くらいしか進まず、ログインやアドミン機能を作る時間もなく「すべてゲストユーザー」というかなりシンプルなサイトですが、とりあえずコアとなる部分だけは出来上がったので二人とも満足しています(でもAbdelはもっといまのコードをリファクタリングしたいそうです)。
とりあえずこれからようやく本腰を入れてワールドカップの試合観戦に専念できます(といいつつこのブログはイタリア-ウクライナ戦を見ながら書いていましたが)。