第12回 学んだことを生かして家計簿ツールを作る家計簿ツールを改良して様々な機能を加えてみよう
出典:日経ソフトウェア 2008年6月号
pp.110-117
(記事は執筆時の情報に基づいており、現在では異なる場合があります) この連載では,Javaを使って普段の仕事をラクにするツールを作ってきました。最終回である今回は,前回説明したオブジェクト指向を利用して,連載で作成してきたツールの集大成を作り上げましょう。
こちらからサンプルプログラムをダウンロードできます。
前回は,リスト1のようなコードを作成しました。覚えていますでしょうか。正直,きれいとは言えないプログラムでしたね。今回は,このコードに改良を加えていきます。 前回までに実装した機能は以下の通りです。
今回は,新たに次のような機能を追加していきます。
図2●実行結果の画面
機能追加に入る前に,前回のコードを整理しながら復習してみましょう。このコードは,テキスト・ファイルから家計簿を読み込み,項目(食費や光熱費など)ごとに集計して,月ごとの集計結果を表示します(図1)。リスト1の(1)のブロックで入力するファイルを読み込み,変数を用意します。そして,(2)のブロックで「=(イコール)」で分割して合計を計算し,(3)のブロックで出力します。一応ですが,目的の結果は得られています(図2)。
図1●作成する家計簿ツールのイメージ
コードを整理してきれいにしようリスト1の実装は,あまりにも入力するファイルの内容に依存しすぎています。「2008/2」という文字列があったり,「janSum」のように合計値を計算するための変数を用意していますが,1月と2月の変数しかありません。これでは入力ファイルに3月以降の項目があった場合は,動作しません。 そこで,まずはコードを整理して汎用性を高めてみましょう。コードを整理する際に重要なことは,「機能を何も変更しない」ということです。 リスト1であれば,実行結果の出力を一切変更することなく,コードを変更します。これは,「コードを整理してきれいにする」という作業と「機能を追加する」という作業を明確に区別するということです。 コードをきれいにするのは意外に難しいものです。下手するとバグを埋め込んでしまいます。きれいにすると同時に新規機能を追加しようとすると,さらに作業が難しくなります。バグを生みやすくなるうえ,生じたバグの原因も非常にわかりにくくなってしまいます。
>>Mapインタフェースで集計する月を追加する
連載新着連載目次へ >>
|