アーカイブ-昔の雑記http://blog.shibu.jp/article/28983162.html上で渋川さんがプログラミングについてまとめてたので、何かしらプログラミングで言いたいなーと思ってしまったので、今やってるプログラミングの作業順番をまとめておきます。私はもともとjavaのプログラマでした。ブログのタイトルはその名残です(小文字始まり・4使用)。プログラムめんどいよ~仕様決める仕事がいいよ~、と思ってPMにジョブチェンジしました。粒度が合わなかったんですね。それはさておき、今回の自動化作業のだいたいの作業の順番について。今回のお仕事お題:ウェブサービスの運営で、定常作業を自動化するのに、perlでプログラミングを組むこと。ゴール:他の人がそれを使って作業を実施できること。問題があっても他の人がメンテナンスできること。何かあったら他の人が改変しやすいこと。1.定常作業から作業項目を洗い出すもともと手作業でやってたのを自動化するので、もとあった手順書からプログラミングすべき作業を洗い出します。この時点で作ろうと思う関数は洗い出しされてます。設計がないと、ここで抜けもれが発生しました(例:conf設定対応とログ)。2.できるところからプロトタイププログラミングも久しぶりだし、perlも手馴れてないんで、できるところから書いては実行です。動いているので安心感があります。この時は面倒なのでファイル1枚で実行し、関数を増やすといった感じ。3.2を繰り返す必要な関数を増やします。一通りできたら、それを使って手順書通りに実行する関数を作ります。ここで終われるものなら楽です。私のやる気ナッシングな領域に。設定ファイルは外部化します。xxx.confとかそんなファイルから読み込めるようにしておきます。使いまわしする予定があるのでー、ファイルと同化してるとダメなんです。テンプレート対応とは、conf設定やtmplファイルに、テンプレート変数を使っていたので、それの対応もしました。これは、confファイルで、出力ファイル名を”xxxx-$today_yyyymmdd.xls”とか設定しておくと、自動的に”xxxx-20090511.xls”とかに変更してくれるような仕組みです。ここらへんで、ファイルを分割してライブラリ専用ファイルを作りました。上記との兼ね合いもあり、再度関数のインタフェース(引数とか返り値とか)を見直しです。4.3.ログ追加ここでようやくログ追加。今思ったけどやっぱり徹底的に文字列は排除しよう。5.資料作成で、上記の設計をまとめた資料を作る予定。関数のインタフェースと機能を決める。シーケンス図があると便利。関数の中身を説明する。