• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

誰でも使えるJava

第12回 学んだことを生かして家計簿ツールを作る

家計簿ツールを改良して様々な機能を加えてみよう

kikaineko 2010/04/01 日経ソフトウエア
出典:日経ソフトウェア 2008年6月号pp.110-117
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 この連載では,Javaを使って普段の仕事をラクにするツールを作ってきました。最終回である今回は,前回説明したオブジェクト指向を利用して,連載で作成してきたツールの集大成を作り上げましょう。

こちらからサンプルプログラムをダウンロードできます。

 前回は,リスト1のようなコードを作成しました。覚えていますでしょうか。正直,きれいとは言えないプログラムでしたね。今回は,このコードに改良を加えていきます。

リスト1●前回のプログラム
[画像のクリックで拡大表示]

 前回までに実装した機能は以下の通りです。

  • 全体の合計を表示する
  • 月ごとの合計を表示する

 今回は,新たに次のような機能を追加していきます。

図2●実行結果の画面
図2●実行結果の画面
  • 項目ごとの合計を表示する
  • PDFファイルに出力する

 機能追加に入る前に,前回のコードを整理しながら復習してみましょう。このコードは,テキスト・ファイルから家計簿を読み込み,項目(食費や光熱費など)ごとに集計して,月ごとの集計結果を表示します(図1)。リスト1の(1)のブロックで入力するファイルを読み込み,変数を用意します。そして,(2)のブロックで「=(イコール)」で分割して合計を計算し,(3)のブロックで出力します。一応ですが,目的の結果は得られています(図2)。

図1●作成する家計簿ツールのイメージ
図1●作成する家計簿ツールのイメージ

コードを整理してきれいにしよう

 リスト1の実装は,あまりにも入力するファイルの内容に依存しすぎています。「2008/2」という文字列があったり,「janSum」のように合計値を計算するための変数を用意していますが,1月と2月の変数しかありません。これでは入力ファイルに3月以降の項目があった場合は,動作しません。

 そこで,まずはコードを整理して汎用性を高めてみましょう。コードを整理する際に重要なことは,「機能を何も変更しない」ということです。

 リスト1であれば,実行結果の出力を一切変更することなく,コードを変更します。これは,「コードを整理してきれいにする」という作業と「機能を追加する」という作業を明確に区別するということです。

 コードをきれいにするのは意外に難しいものです。下手するとバグを埋め込んでしまいます。きれいにすると同時に新規機能を追加しようとすると,さらに作業が難しくなります。バグを生みやすくなるうえ,生じたバグの原因も非常にわかりにくくなってしまいます。

ここから先はITpro会員(無料)の登録が必要です。

次ページ Mapインタフェースで集計する月を追加する
  • 1
  • 2
  • 3
  • 4
  • 5

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る