Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

テンプレートパターン指向

前回のスピーカのコメントのなかで、(まっちゃさんから)「業務アプリは数パターンのロジックで全部かける!」というのが有りました。
OOP世界では、GOFのデザインパターン23種類が有名ですが、これは、デザインレベルで抽象化されていて、心を理解していないと、綻びがでます。
パターン化という姿勢は、昔からある考えで、工業化の手順とも言えます。クリエイティブ部分が残るか否かは別問題です。製品の品質とクリエイティブ仕事も別問題です。
汎用機アプリ(コボル等)の業務開発の現場では、抽象化パターンよりも、実ソースのテンプレートとなるパターンをベースにすることが多いようです。
同列には言えないのですが、(職場限定の)パターン文化と言う意味で確立しているので、パターンを習得していれば、職場内では仕事がこなせます。
対象となる、修正箇所は、項目名称や計算式、帳票レイアウト、コントロールブレークなどで、半固定されます。
作成工程は、定型化され流れ作業化され、テスト項目も粗方決まります。
テンプレート化すれば、その部分は既製品になるので、テストが軽減されます。テンプレートで変更した箇所のテストとなるので、テスト項目が限定されます。パターン外の要素が入ると、テスト項目が増えるので、ソースが短くなるメリット以上の、テスト項目等のコスト増になるとされます。
この思想は、オープン系開発にも取れ入れられて、開発フレームワークとして、テンプレートを提供する現場も増えているようです。
ソフトを工業製品とみなすならば、このような製造方式も有意義だと思います。
 工業的には上記工程は是とされますがソースのスマートさや品質面では非する人もいます。両立は難しものです。
テンプレート化で気を付けなければ、ならないのは陳腐化です。技術進歩が早いので、定期的に、テンプレートの見直しが必要です。頻繁に見直すとテンプレートにならないという矛盾がありますね。
 汎用機開発は、スタイル変化がユックリなので、テンプレートパターン文化が成り立つのでしょうね。
開発者の職人的満足度と工業製品生産過程とのギャップは、実在するので、どこで調整するかも、重要な課題です。

投稿日時 : 2009年4月24日 0:10

Feedback

# re: テンプレートパターン指向 2009/04/24 10:16 インドリ

?定期的に、テンプレートの見直しが必要です。

そう。そこなんですよね。
結局ソフトウェア開発は職人が必要だという事だよね。
それに、プログラミングは芸術でもあるからやっぱり人間が打たないとね♪
ジェネレータを研究した事があるボクはそれがよく分かる。
でもそんな当たり前の事を知らない人が多いのか、この業界って人を大事にしないよね(溜息)
これは研究結果から分かった事なんだけど、テンプレート系は人数の力押しではなくて、少数精鋭にすれば上手くいくよ。
職人たちがテンプレートを手足の様に使えば、人数なんて関係なくなる。
それが一番効率のいい開発方法だとボクは思う。

# re: テンプレートパターン指向 2009/04/24 11:49 biac

今流に発展させると、 例えば MS の Software Factory
http://msdn.microsoft.com/ja-jp/library/ms954811.aspx#softfact3_rev_topic4
だったりして。

※ ソフトウェアファクトリのドキュメントをいくつか読んでみたけど。 「プロダクトライン開発」 (某自動車会社にたとえると、 「カローラファミリーを開発 (≠製造) するための基盤作り」 ) の中できちんと実証すべし、 ってことが書いてないような気がする。 ファミリーの各プロダクト ( フィールダーだの RAV4 だの etc. ) の開発に掛る前に、 カローラの開発がちゃんと出来ると実証 ( つまり、 開発完了 ) しとかんとイカンはず。


> 少数精鋭にすれば上手くいくよ。

そのとおりだと思います。
けれど、 その精鋭をどうやって育てるかが大問題。

# re: テンプレートパターン指向 2009/04/24 12:10 インドリ

>けれど、 その精鋭をどうやって育てるかが大問題。

そうなんですよね・・・
それを考慮するとファクトリ系は逆に非効率的といえると思う。
どんな天才だって実務がなければタダの凡人。
人を育てるという部分が抜けていますよね。
そこを解決するのが王道なのに、この業界は如何にして上前をはねるしか考えていないように思えてなりません。

# re: テンプレートパターン指向 2009/04/25 0:10 Pasie.

 よくわからない。
 全体的に、パターン化を批判した内容にも読めるのですが、真意がどこにあるのかがつかめませんでした。

# re: テンプレートパターン指向 2009/04/25 1:07 Ognac


>例えば MS の Software Factory
この記事は、見落としてました。教えて頂いて、ありがとうございました。
プログラムは、工業製品であるべきか否かを考えさせられますね。少なくとも芸術作品ではないと思うのです。
 その反面、ソースのスッキリ性は追求すべきだと考えていますので、そこにギャップを感じる日々です。

>開発がちゃんと出来ると実証 ( つまり、 開発完了 ) しとかんとイカンはず。
>少数精鋭にすれば上手くいくよ。
基礎力の教育コストを何所が負うのかも問題でしょうしね。


>この業界は如何にして上前をはねるしか考えていないように思えてなりません。
老婆心になりますが、業界批判だけでは、愚痴にしか聞こえません。批判の先に楽しい幸せな開発環境作りが必要では..と感じるのです。


>全体的に、パターン化を批判した内容にも読めるのですが、真意がどこにあるのかがつかめませんでした。

通じなかったですか?  文章力のなさ...orz.
批判ではなく、プログラム工業化を進めて収益を上げる面からみれば、必要な手法だと思ってます。
エンドユーザーの要件を満たせば、冗長な品質であっても良しとするのは、アリなのも理解できます。
ただ、職人的開発者とすれば、ソフト品質を追求したいし、満足度の高い状態で納品したいとも思います。
コスト問題があるので、どこかで妥協が必要になるのも理解できます。 その間に立って、どの立場で判断するかが
困難ですね。葛藤は、ずっと続くと思います。

# re: テンプレートパターン指向 2009/04/25 1:56 Pasie.

>冗長な品質であっても良しとするのは
 たとえば、ライブラリや果ては言語なんかも冗長な品質だとみているのでしょうか?共通化手法としての言語やライブラリ、設計手法、スケルトンテンプレートだと思うわけで、テンプレート=共通部品=冗長という図式がいまひとつ腑に落ちないというのが正直なところです。しかもその路線で行くと、Windowsなんて無駄の固まりな訳で…(汗

# re: テンプレートパターン指向 2009/04/25 9:50 Ognac

>たとえば、ライブラリや果ては言語なんかも冗長な品質だとみているのでしょうか?
アプリ開発のユーザーソースを想定してました。
極端例:個々の局所的ソースがテンプレートとして、供給された場合の例。
 入力項目の整合性チェック処理
 DB取得が、必要な都度呼ばれる。1レコード毎にselect文発行になるなど。
個々を見ると、無駄はないのですが、同一ソースが複数登場すると、冗長になります。
 SQL文だと、SUM()や複数件取得SQLに変えたり、
 処理だと、基底クラス、共通関数化したくなります。
 でも、それをすると、テンプレート(パターン)ルール違反とされたりします。
(*)テンプレートがModule提供であっても、同一モジュールCallが同じだけ、発生するので、同意に思います。

>スケルトンテンプレートだと思うわけで...Windowsなんて無駄の固まり
本来なら、 スケルトンテンプレートを原型とて捉え、如何に調理するかが開発者の技量で、冗長になるか否かは、別次元の話でしょう。
テンプレート例
   開始処理
   主処理 until 終了条件
   狩猟処理
で集計業務をするとき、 Sum()文1行で済むのを、各行を読み込み、 sum += 各行; と書いていたりします。
テンプレート基準に乗っているので OKで、SUM()文を使うように変更すると、テンプレート違反とされます。
このような場合、私は、冗長さを感じます。でも、製品品質維持の見地で、不問にするのも理解できるので、葛藤状態に陥るのです。
僅かな効率の為に、テンプレート崩しをすると、トリッキーなソースになり可読性を無くすことにもなるので、バランスも難しいですね。
(*) メーカー提供ライブラリの冗長性有無は不明なので、品質判断は難しいですが。

# re: テンプレートパターン指向 2009/04/25 13:06 Pasie.

 状況にも依りますが、上位者にメリットデメリットを説明してテンプレートの基準を変えるのが正攻法なんでしょうね。パフォーマンスやその他の要素も踏まえて判断ってことになるとは思いますが。ただ、これが原因でクリエイティブでないってのも違うと思うし、陳腐なのも進化が速い以前の問題である様に思う。
 ところでここってトラックバックっ効くんですか?

# re: テンプレートパターン指向 2009/04/25 19:05 Ognac

 状況にも依りますが、上位者にメリットデメリットを説明してテンプレートの基準を変えるのが正攻法なんでしょうね。
パフォーマンスやその他の要素も踏まえて判断ってことになるとは思いますが。
ただ、これが原因でクリエイティブでないってのも違うと思うし、陳腐なのも進化が速い以前の問題である様に思う。

そうですよね。他にも、冗長であっても、確実に動作するのと、汚いソースで確実に動作するのと、どう比べるんだ..とか
要素が、入り組むので、単純評価は難しいですね。自分の思想を表現して、妥協点を探るのが正道かも。

>ところでここってトラックバックっ効くんですか?
Blogは .Textなんですが、単純にURLを引用すれば、トラックバックは自動的に貼ってくれるのですが、
時々、抜けるようです。
 他のブログからは、貼ってくれないようですね。他の方も引用して頂いているようですが、認識出来ていないのが現実です。

# re: テンプレートパターン指向 2009/04/25 23:44 Pasie.

> そうですよね。他にも、冗長であっても、確実に動作するのと、汚いソースで確実に動作するのと、どう比べるんだ..とか
 まあまずは、リファクタリングから始めよう、なんでしょうな。それすら拒否られたらどうしよう?って話はありますが。

> 他のブログからは、貼ってくれないようですね
 そうなんですか。残念ですね。
 他から張られているのがわかるようになればよいのですが。

# re: テンプレートパターン指向 2009/04/26 0:17 Ognac

>それすら拒否られたらどうしよう?って話はありますが。
少しずつでも、理想に近づけるのも仕事かと。

>他から張られているのがわかるようになればよいのですが
どこかで、貼られているのをご存じですかぁ?
なんか、酷評されていそうな気配www。

# re: テンプレートパターン指向 2009/04/26 0:50 Pasie.

>どこかで、貼られているのをご存じですかぁ?
 いや、張ろうと思ったら張れなかったので。

# re: テンプレートパターン指向 2009/04/26 9:27 Ognac

>いや、張ろうと思ったら張れなかったので。
Pasie. さんのURLが知りたいですね。読みたい。

# re: テンプレートパターン指向 2009/04/26 23:15 Pasie.

>URLが知りたいですね
 urlをコメント文中&URL欄に入れてもはねられるんですよね…
 なにがまずいんだろうかなあ…

# re: テンプレートパターン指向 2009/04/26 23:56 Pasie.

http%3a%2f%2fooltcloud%2eat%2ewebry%2einfo%2f200904%2farticle_5%2ehtml

# re: テンプレートパターン指向 2009/04/26 23:57 Pasie.

うーん。
汚してばかりなのでとりあえず撤退。勉強し直します-_-;

# re: テンプレートパターン指向 2009/04/27 0:07 Ognac

>なにがまずいんだろうかなあ…
私が認識している範囲での想像になるのでが。
こちらのBlogシステムの スパムフィルター の規定が厳しすぎるようです。
時々、引用 URLを入力したコメントが、受理されずに、Entryできなくなります。
なんのキーワードで引っかかるのか、不明確で、大凡引っかかる要素がないURLが引っかかったりします。
ネイティブのスラングで引っかかるのかも知れません。知らずにスラング語に該当することもあるように聞きました。
URLを全角に置換して、コメントして頂けないでしょうか。

# re: テンプレートパターン指向 2009/04/27 0:33 Ognac

http://fooltcloud.at.webry.
ここまではOKで
info/をつけると
が引っかかるようですね。
.info/200904/farticle_5.html
として、引用したところ、
「エラー: このリンクは無効です。」と出ますね。
info/ 以下の部分を示して頂ければ、確かめます。

(*) webry....info という用語で引っかかっているように見えます。
間の区切り点を.... でなく "."にすると、エントリ出来ませんでした
怪我の功名で、URLは全角、半角の区別されないことを知りました。

# re: テンプレートパターン指向 2009/04/27 0:35 Pasie.

上のurlエンコードを
 http://wolfside.com/i/x/code.php
で、デコードしちゃってください。

# re: テンプレートパターン指向 2009/04/27 0:49 Ognac

読めました。ありがとうございます。
 でも webry..info がスパムでひっかかるのはねぇ。
納得できませんね。

# re: テンプレートパターン指向 2009/04/27 1:00 Pasie.

 よほどトラックバックスパムが飛んでいるんですかね? -_-;

#  ???????????? | ?????????????????? 2012/10/22 23:10 Pingback/TrackBack

???????????? | ??????????????????

タイトル
名前
Url
コメント