Grailsで家計簿--第1章「なぜGrailsで家計簿なのか」--

次へ

「はじめてのGrails」でGrailsの便利さを実感したので、我が家の家計簿を実際にGrailsアプリケーションで作ってみることにしました。あいにく、たまったレシートを片付ける必要性から、アプリケーションの組立て方は計画性がなく、きわめてヤッツケです。むしろ「きわめてヤッツケなところからも始められるGrailsの良さ」という間隔でお読みください。一方そういう中で、必要に応じてコードをどんどん改良していきますので、「役に立つコード集」にはなっていると思います。

1.1ワタシの家計簿のつけ方

主婦のワタシは毎日スーパーに買い物に行き、その日必要なぶんだけを購入します。なぜまとめ買いをしないかというと、1週間分とか買い物の予定を立てるビジョンもキャパもないからです。ゆえに毎日レシートが溜まります。

さらに、必要なぶんだけ購入するので、パンとか牛乳とかコーヒーとか同じものを2日か3日置きに買います。でも「なくなったら買う」だから、その日の気分で牛乳を鯨飲したりとかで繰り返しは不定期です。

たまーに、10年に1回くらいしか買わないものを買うこともあります。結婚以来「うちに爪楊枝がないな」と思い出しては忘れを繰り返し8年余してようやく買ってからは、その2年後くらいにまた買って、その後まだ切らしてないので買ってません。

かと思うと、うん10万のパソコンを思わずドカーンと買っちゃったり、かと思うと525円(税込み)のジャンボシャチぬいぐるみがカワイすぎるので毎週1匹買って行ったら5週めに残念店頭からなくなっていた、というような短期集中フィーバーもあります。


このように、


という買い物状況を記録するのが、家計簿です。

1.2家計簿の何がめんどくせぇーのか

前項においてすでに「そんな家計簿はメチャクチャっぽいな」という印象を持たれたかと思いますが、さらにこのような家計簿の何が具体的にめんどくさいのかを正直に挙げてみましょう。


(1)もし、家計簿が「記録」という能力しか持たないのであれば、面倒くさいのは以下の2点だけでしょう。

(2)そこで、「同じ項目を何度も記入しない」ように、「よく買うものリスト」を作成してそこから選べるようにすれば、同じ項目はリストから選べばよくなり、「全角/半角」の使い分けもいらなくなります。しかし、これには別の面倒くさい問題が伴います。

1.3 じゃあどんなアプリケーションがいいの

面倒くさい問題が面倒くさくならないようにするには、コレに限ります。

「アプリケーション」とは、「入力フォームと表示ページと表が一組になったもの」のことです。
いつも行くスーパー専用、たまに行くコンビニ専用、パソ屋、家電屋、雑貨屋...そしてなるべくなら使いたくない「その他」と、全部別々のアプリケーションにするのです。Ruby on RailsやGrailsで言えば「小アプリケーション」です。ていうか、これでもうRuby on Railsかその仲間を使う以外に道はないのです。

1.4 なぜGrailsを選んだか

それはひとえにちょうど「はじめてのGrails」を書いた直後に始めた作業で、アタマの中にGrailsがドッカリと収まっていたからです。
それに、どっちかというとRailsのセキシーなコードに比べてGrailsのコードは田舎娘の素朴で実直な感じがして、「たまには田舎料理もよいものぞ」とお代官様のようなセリフをつぶやいてしまいます。
ワタシがこの家計簿作業をするときはだいたい夜も遅まってアタマもボゲァーとしてるのをアーチエネミーなどでようやく起こしつつポチポチ打つものですから、コードもなるべくヒネらないものであってほしい。そのような理由です。

1.5 GrailsとMySQLでやるゼ

ということでGrailsで作ることに決まった家計簿アプリケーションですが、拙著「はじめてのSQL」との決定的な違いは、データベースです。
今度のデータ量は、たとえ平凡な家庭の超凡にヘタレな主婦の買い物記録とは言え、データ量はハンパなくなると予想されます。そこで、データベースは埋め込みHSQLDBではなく、別途MySQLを稼働させそこに接続して保存します。たとえGrailsがフッ飛んでも、データはMySQLに残ります。


次ページに、このGrailsで家計簿プロジェクト用の環境について御紹介しますが、早いとこ「Grailsによるプログラミング」のお話にしたいので、「Grails+MySQL」にゼヒゼヒ必要な環境の話以外は割愛します。たとえばこの家計簿のためにわざわざDellのミニノート「Inspiron Mini」を買ったのョ天板はピンク色でとってもくああいーのョとかいう話をダラダラすることはしません。では次ページに続くぅー。