戻る

ソース作成支援のツールで開発を語る

職場で生まれるまで

単なるコピペツールを作ってからしばらく経ち。
当時JAVAでDBアクセスするクラスを作ってた。
functionのヘッダコメントとか宣言とか、内容のうちで項目名のみを排除したソースのスケルトンを用意してコピペツールに登録してあった。
もーコピペしてfunction名変えて、項目名からSQL作成して作業完了という状態でがしがしソースを作れる体制を作ってあった。
みんなが他のファイルの似たような部分からコピーしてきて貼り付けて、余分な箇所を削除して、削りすぎた部分を付け足してテストしてっとやってる横で1人そんなことを準備していた。
開発効率がすでにダンチ。
ある人が2日。ある人が1日かかるような作業をオレだけ3時間とかでやり遂げるくらい違った。ふふ。
しかしてある日こう思うのです。
( ´∀`)<毎回これ書くのめんどいな
Excelにあるテーブル定義書から毎回コピペして、JAVAの書式にしたがって書き換えて〜ってのがめんどくさい。
そのほかの作業が瞬時に終わるのでそれしかやらない印象になってくる。ゆえにめんどくさい。
クリップボードに入れた文字列をその形式に編集するツールも作ってみた。
これでコピペが2種類とあとは補正で終わるようになった。
それでも慣れてくるとめんどくさくなり。
( ´∀`)<リストだけ定義したらそれぞれの編集したらええやん。
対象がDBだけだったので、まずはそのためのツールを作った。
この段階で、使い方さえ覚えたらたいていみんな1時間でテストまで作れるという土台ができた。

ある時暇が出来たので汎化させてみようと思い立った。
( ´∀`)<リストから定型編集する要件があるのは何もDBだけじゃない。ソースは所詮テキストの集合体である事を思えばJAVAに限る必要も無い。
ツールの大改造のはじまりである。
本業のほうは何とかしたうえでのヒマ。ツールを作る余裕は確保したのだ。あとはやるしかっ!。
特にHTMLを混じえたソースを作るのがやたらと楽になった。
複数行のソースを身にまとえるってやってみれたら便利ね。

状況の変化、可能性の模索

とはいえ、はじめは正味あんまり使えてなかった。
無理やりTreeView使ってみたり、慣れないXMLを導入してみたり、項目のカウントとTAB調整なんか今でもちょっとあやしいところがある。
洗練していないせいもあり、周りからも「使い方難しい」という評価があった。
本格的に使い始めたのはJAVAの案件の場所がおわり、C#&ASP.NETの作業に入った以降だ。
なんでか。
JAVAの時は、パッケージシステムでほぼ全工程に対し、それぞれの作業に特化したツールを用意していた。
DBアクセスの部品は選択してから1クリックだし、ファイルの配置や初期状態設定もツールがあったし、
JavaScriptもJAVAもJSPも半自動作成する仕組みを作ってあった。
なので、汎用的なツールの出番があんまりなかったからだ。

しかしてそいつらが使えない環境に移った時に状況は変わる。
特化するツールは業務を理解していないと不毛に終わる。
手を入れるポイントが分らないままに作業を自動化しても、それが即成果に結びつくとは限らないからである。むしろ無駄に終わるほうが多そうだ。
ゆえに初めてやることは技術検証からゆったりと入る。
出来る限り試す。その作業を効率化するためにいつも役に立つのはコピペを楽にするためのツールだ。
あれを使いコレを試しと試行錯誤を繰り返したあと、C#データベースアクセス用の仕組みができた。
リストから代入式だのDataTableを設定するとかSQLを設定値から自動生成するクラスを作ったりとかしたあとで、
メンテナンス画面を作成するベースのソースコードを作り、テストを行い、
テーブル作成から始めて、1からメンテ画面を作りテストを完了するまでの時間を計ってみたら約8時間だった。
それを分解してツールに設定してみた。
DBのアクセス用クラスは、テーブルの項目名を設定し、SELECT文を設定し、データ編集のFunction設定を行い、INSERT、UPDATE、DELETEの各更新文を設定し、WHEREを設定するソースを作る手順を作った。
画面はほぼそれらを呼び出すだけのコード。クラス名が違うだけというソース。
単純にコピペの連続が主な作業となったのだが、先ほどと同じソースを作り終えるまで約30分になった。

コピペアプローチ

おお!設定の仕方次第という気もするけどこれなら他の誰かでも同じようなソースをつくれる(・∀・)!
っと確信して公言できる実績ができた。
多少の使い辛さは補って余りある効果をもって何とかできる。

コピペありきで作成する開発スタイル。
しかして丸ごとコピーで編集という手順ではなく、適切な部分コピーの連続という手順をとる。
これはそーゆーことをするためのツール。

作成支援を使用したコピペアプローチの手法は既存のIDEの便利機能があればさらによい。
メンテナンスしやすい形を作ったうえで、それを量産するための定義を行えばよいのだから。

っとはいうものの。
言うは易し行なうは難し。
その定義を作る事はプログラムを作るということよりもむしろ整理整頓の能力がいる。
それを考える能力があっても、今度はソースコードを理解する能力もいる。
閾値が高いのよねこれ。
使いこなせたら間違いなく設定値作るだけでも十分な仕事になるな〜と最近の仕事で実感。
プログラムコードは100人いたら100様になるけれど、
順番にコピーして貼り付けていくという作業になればそうそう間違える輩はでてこない。
同じようなソースができるところからの改変作業であればコードが崩れる事はほぼ無い。
作成が早い上にメンテナンス製も高く、知らない誰かが作ったソースでも劇的に異なる事がない。
ってことを実現できるのだ。
これで何を意味するか?
それは私が他の誰かのソースをメンテナンスする時にしょんぼりすることが少なくなる!つまり自分が楽できる!!ってことに繋がるのです(´∀`)
CopyRight 2006
(C) BELLCROP
All rights Reserved.