トップページ⇒tech
1001コメント376KB

国産DIコンテナSeasarとくーす その3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
一部で話題になっている国産オープンソースDIコンテナSeasar V2(略してS2)。
ってどうよ?みんなもう使ってるの?
使用経験とか、実戦配備情報とか、つかえねーよボケ、とかいろいろ書いてね。

あと、開発プロセス「くーす」の話題もこちらでどうぞ。


本家 seasar.org
http://www.seasar.org/

Seasar Projectグループ
http://seasarproject.g.hatena.ne.jp/

ひがやすをのここだけの話
http://d.hatena.ne.jp/higayasuo/


前スレ
その1 http://pc5.2ch.net/test/read.cgi/tech/1092044210/
その2 http://pc5.2ch.net/test/read.cgi/tech/1098885253/


関連スレ(なのか?)

Java Spring Frameworkを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1077465099/
0138デフォルトの名無しさんNGNG
就職してボーナスが出るまで
0139デフォルトの名無しさんNGNG
>>137
それじゃ大きすぎないかな。

支払を管理する支払テーブルがあったとして
支払に関連するものとして、
通常の買掛金に対する支払と
売掛金返金に伴う支払と2つあった時に、
トランザクション単位で考えれば業務は2つだけど
支払データ生成ロジックは共通で使いたいでしょ。

この場合、買掛金消込、売掛金返金、支払データ生成
の最低3つを業務と捉えるのが望ましいと思うんだけど。
トランザクションの数とは一致しない。

とはいえ、確かに殆どの場合は
トランザクションと一緒で問題ないかもね。
0140デフォルトの名無しさんNGNG
http://d.hatena.ne.jp/higayasuo/20041219#1103445985

単一責任がどーのこーの言う前に、まずオブジェクト指向の基礎から学び直していただきたい。
0141デフォルトの名無しさんNGNG
>140
ナイーブの意味もついでに調べてみよう
0142デフォルトの名無しさんNGNG
>>140
データと振る舞いが一緒だとオブジェクト指向だと思っている
単純なやつはけーん。
0143デフォルトの名無しさんNGNG
140じゃないけど、どの辺りを読むとそういう結論になるのか分からん。
157には同意
0144デフォルトの名無しさんNGNG
>>141
ナイーブなオブジェクト指向、っていうことばなんだけどさ、

http://www.ogis-ri.co.jp/otc/hiroba/OoBook/Beginner/B3.html

OOSE以前のオブジェクト指向設計方法論の
「OOピュアたるべし、ユースケースはOOじゃない」
みたいな考え方を指していたと思うんだけど、
いつの間に凝集性の低いクラスを作ることを「ナイーブなオブジェクト指向」と呼ぶようになったの?
0145デフォルトの名無しさんNGNG
>>144
よーどんさんたちの言う
「ナイーブなオブジェクト指向」は知らないけど
普通に「ナイーブ」なオブジェクト指向って事なら
142の煽りのような意味で取りますわな。文脈からしてさ。
そういう意味でひがたんは使ってると読んだんだけど・・・

なにっ?もしかして、OOワールドでは
コードやヨードンが厳密に定義した言葉として
認識されてるのかっ?
0146デフォルトの名無しさんNGNG
>>143
そうだな。確かに>>157はいいことを言ってる。俺も禿胴だ。
014744NGNG
>>135

[ 業務A ]
ログイン機能 ---> use isExpired()

[ 業務B ]
社員給料計算機能 ---> use calculatePay

[ オブジェクトZ ]
------------
社員クラス
------------
+isExpired
+calculatePay
------------

この場合のオブジェクトZは単一責任の原則をやぶってると思う?
おれは思わないよ。
0148デフォルトの名無しさんNGNG
>>145

違う概念を同じ名前で表したら混乱を招くでしょ。
014944NGNG
http://d.hatena.ne.jp/higayasuo/20041220#1103504150
>工数は、リッチな業務ロジック層とDTOパターンのほうが少なくなります。
>DTOとEntityを相互変換する手間がかからないためです。

リッチなドメインオブジェクトパターンではDTOは(めったに)使わないですよ。
0150デフォルトの名無しさんNGNG
>>145
厳密に定義されてなければ、同じ言葉を別の意味でつかっても混乱をまねかない、ってもんじゃないだろ。
0151デフォルトの名無しさんNGNG
>>147
>この場合のオブジェクトZは単一責任の原則をやぶってると思う?

システム領域の機能とビジネス領域の機能を一緒に持たせて単一責任も何も。
ナイーブすぎませんか?
015244NGNG
> オブジェクト指向について意見を書くことは、特にデータと
> 振る舞いを1つにすることが、常に正しいとは限らないなんて
> 書くことは、私にとってものすごくリスクの高い&なんのメリット
> のないことです。
>
> にもかかわらず、あえて書いているのは、正しくオブジェクト
> 指向を実践しているように見えても、それが保守性の低下を招く
> 場合もあるということを認識して欲しいということです。

これの例として

> EntityDを使う新たな業務機能が追加されるたびにEntityDに
> メソッドを追加していくと、EntityDは次第に複雑に
> なってきます。

を挙げられているようですが、
EntityDが複雑になる原因は、データと振る舞いを1つにしたことではなく、機能の追加によって次第にEntityDの責務が単一でなくなっていくからです。
このような場合、「データと振る舞いを分割する」のような極端な方法に走らなくとも、EntityDが持つ責務に応じてExtract Classしてやればよいと思います。


> 薄いサービス層とリッチなドメインオブジェクトパターンは、
> 業務機能Aに仕様変更が入っても業務機能Bに仕様変更が入っても
> EntityDを修正することになります。

業務Aから呼ばれようが、業務Bから呼ばれようが
EntityDの持つ責務に変更が入ったのだからEntityDに修正が入るのは
当然だと思いますが。
015344NGNG
>>151
どちらがシステム領域で、どちらがビジネス領域?
両方ビジネス領域だと思いますが?
0154デフォルトの名無しさんNGNG
だから、「ナイーブなオブジェクト指向」じゃなくて
「ナイーブな」オブジェクト指向、って感じで普通に使ったんじゃないの?て話。

148も150も、ナイーブって言葉をはじめて聞いたんでしょうか?
俺、もっと普通に使う言葉だと思ってましたよ。
151がさりげなく使ってるように。

ばかばかしいからこの話やめな。
「ナイーブなオブジェクト指向」って言葉は
テクニカルタームとして、ヨードン、コードが定義した内容でフィックスされてて
ひが氏の使い方は間違い、で、俺の負け、それでいいよ、もう。
0155デフォルトの名無しさんNGNG
ナイーブだナイーブだ言ってる人たちは

http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?DomainModel

を知ってるのだろうか。
0156デフォルトの名無しさんNGNG
>>153
確かに、ログインした職責によって
権限を切り替えたりとか、ビジネス領域ですね。

ただ、認証クラスが処理した結果取得出来た属性(IDや職責)を
社員クラスにセットしてやるだけで後はいいじゃん、とか
給料計算を社員自身にさせるのはどうかなあ、とか
議論のある所だと思います。

正解がないだけに色々と人によってまちまちになっちゃうから
いっその事統一ルールで、データの振る舞いは
全部分けちゃえって話だと読みましたがどうでしょう。
0157デフォルトの名無しさんNGNG
>>155
前スレでその話は出たのです。
貧血症でも金欠症よりはましだという
はぶさんの言葉もありましたな。
0158デフォルトの名無しさんNGNG
別にS2使うからといってくーすを守らないといけないかというとそんなことはないし
くーすが気に入ったからと言ってS2でないと駄目ってことでもないし。
そもそもどっちもマイナーなんだし放置でいいんじゃないのと思うのは俺だけか?
0159デフォルトの名無しさんNGNG
>>153
>両方ビジネス領域だと思いますが?

J2EEが提供するような低水準サービスと間違われたか? スマソ
情報システム以前に存在する概念(実体)とシステム化に伴う
概念とを一緒にするのがどうかってことなんだけど。
ところでシステムにログインできるのは社員だけ?
役員や派遣社員は? バイトを雇ったら?
漏れはログインに関わる機能が社員にあるのは、
例としても不適切すぎると思うが、
44氏はアダルト、で、俺の負け、それでいいよ、もう。
0160デフォルトの名無しさんNGNG
>>159
おっしゃることはわかりました。けど

you arent gonna need it.

今想定しているシステムでは
-社員のログイン
-社員の給料計算
しかやらないのでこれで十分ですw
必要になったらリファクタリングしましょう。
0161デフォルトの名無しさんNGNG
>>159
その話は面白いので、いいよもうで逃亡しないで
もっとやって下さい。

ログインが159の言う意味でのシステム領域か
ビジネス領域かは案件によって様々で
一概にはいえないと思いますけど、
後半は全く同意で御座居ます。
0162デフォルトの名無しさんNGNG
勝ち負けの争いだったのか。
ということは、傍観してる俺の勝ち。
0163デフォルトの名無しさんNGNG
http://d.hatena.ne.jp/higayasuo/20041219#1103445985
>
> http://d.hatena.ne.jp/makotan/20041219#p4
>
> で、うまくまとめられてると思いますが、できる限りスコープ(役割)を小さく抑えることで、
> 修正が入ったときの影響範囲が小さくなり、保守性が増します。

リンク先を読みましたが、データと振る舞いを分けるメリットが
よく分かりません。
データと振る舞いを分けるとなぜ修正の影響範囲が小さくなるのでしょうか?

また、私には逆にデメリットばかりが思いつきます。

-データ構造を公開することにより、疎結合性を妨害
-ポリモーフィックな振る舞いを持てない
-いくつかのデザインパターンの適用を妨げる(Compositeパターン等)


> それを考えるには色々な情報が必要になって一概に言えないので
> 簡略化する為に常にデータと処理を分離することにする。

簡略化するために常に分離しないことにしても良いのでは?
016444NGNG
> 2chとのやりとりは、正直ブルーだったけど、44氏にありがとうといわれて、
> うれしかったです。これからも、よろしくお願いします。

そんなご丁寧にw
こちらこそよろしくお願いします。
0165デフォルトの名無しさんNGNG
ナイーブな人だな。
0166デフォルトの名無しさんNGNG
>>147
これ実際のプロジェクトでやられたら激しくやだ
calculatePayはどう考えても社員クラスにもたすべきじゃない。
44は実務でこんな設計してんの?それとも実務を知らない学生さんなのか?
0167デフォルトの名無しさんNGNG
給料が社員自身のパーソナリティに強く依存している会社なんだよ。
月給=体重/(身長*身長) 万円 とか。
016844NGNG
>>166
> >>147
> これ実際のプロジェクトでやられたら激しくやだ
> calculatePayはどう考えても社員クラスにもたすべきじゃない。
> 44は実務でこんな設計してんの?それとも実務を知らない学生さんなのか?

アジャイルソフトウェア開発の奥義の125Pから持ってきた例なので、
文句があるならロバート・C・マーティンへどうぞw

冗談はさておき、calculatePayを社員へ持たすべきじゃない理由を教えてほしいんだけど。
0169デフォルトの名無しさんNGNG
さむいねw>167
0170デフォルトの名無しさんNGNG
S2Dao使ってるんだけど、ログのレベルどうにかならないかな。
SQL文のログと、「トランザクションを〜」のログレベルが同じなのはどうかと思う。
SQL文って障害解析時に使うけど、「トランザクションを〜」が同じレベルで存在してると、ウザイ。
0171デフォルトの名無しさんNGNG
実運用時にSQLをログに吐いたりするもんなのか?
0172デフォルトの名無しさんNGNG
>>168
>アジャイルソフトウェア開発の奥義の125Pから持ってきた例なので、
>文句があるならロバート・C・マーティンへどうぞw
書いたのが誰であれ、自分が引用したんだから、自分で責任もって答えたらどうなの?
やっぱり学生さんなのか?

>冗談はさておき、calculatePayを社員へ持たすべきじゃない理由を教えてほしいんだけど。
1.社員の情報だけじゃ給与計算なんて出来ん
勤怠情報とか、税金とか、手当てとか、あと成果主義の会社だったら
会社の業績とかが給与計算に必要なわけで、calculatePayを社員にもたすと
社員とその他もろもろのあいだに依存関係が出来る。
2.calculatePayを社員にもたすと給与計算の変更があるたびに社員クラスを変更しなければならない
そのときに社員クラスにバグを作りこまないという保証がない。
3.calculatePayは月給を計算するんだとして、ボーナスはどうするのか、出張旅費清算はどうするのか?
社員クラスにcalculateボーナスメソッドを持たすとして、会社の制度が変更になってボーナスがなくなったらどうすんの?
0173デフォルトの名無しさんNGNG
>>168
やっぱり給与計算となると、
皆自分の経験したり勉強した
実務の事考えちゃうんだと思う。

そうなるとはぶ氏のいってるような事を
考えちゃって、違和感を感じる、と。

>160で、この例ではそこまで想定してないから
YAGNIだって書いてあるけども
簡略すぎて逆にイメージ湧かないんだと思います。
0174173NGNG
おっと、ちょうどそんなレスとかぶった。
>172
そんな訳で、このお題に関しては、そこまではYAGNIらしいんだ。
0175デフォルトの名無しさんNGNG
44に逆に質問
図形クラスがあったとして、saveメソッドを図形クラスに持たせるべきかどうか?
複数の保存形式をサポートしたい場合、saveメソッドを図形クラスに持たせた場合と
別のクラスに持たせる場合で修正の影響範囲ばどちらが小さいか?

、saveメソッドを別のクラスに持たせる場合
-データ構造を公開することにより、疎結合性を妨害
-ポリモーフィックな振る舞いを持てない
-いくつかのデザインパターンの適用を妨げる(Compositeパターン等)
というデメリットが実際に起こるかどうか?

44はくーすがどうたらいう前に、オブジェクト指向を勉強しなおした方がいいと思う。
0176173NGNG
>172
何度もすんません。せっかくだから自分でも考えてみた。

1はなるほど。

2は、社員クラスだろうと給与計算だろうと、変更のリスクは同じかなーと。
どちらかというと、そのリスクを回避するために、
テストがよりしやすいのはどっちかな?って話に持ってった方が吉だと思う。

3は、給与計算に出張旅費生産を組み込むのはちょっと仕事させすぎだと思う。
俺だったら経費の支払と給与計算は別にする。
仕訳も作ったりする場合、まったく別だしね。

最終的に銀行に振り込む情報を管理する機能(例えばFBデータを管理するクラスとか)や
給与明細を出力する機能はこれまた別じゃないか、と。

3はちょっと揚げ足気味かな、ごめん。でも気になったので。
ボーナスは、うーん、どうしよう。
0177デフォルトの名無しさんNGNG
170に賛成。
171は、障害出たとき、スタックトレースだけを頼りにしてるのか?
SQLExceptionだったら、どうするんだ?SQL文なくても分かるのと、分からないのあるだろ。
0178デフォルトの名無しさんNGNG
> それを考えるには色々な情報が必要になって一概に言えないので
> 簡略化する為に常にデータと処理を分離することにする。

MMRのキバヤシの口調に似てる。
0179デフォルトの名無しさんNGNG
ところではぶさんの日記みて、思ったんだが、直接S2とは関係ない、全般的な問題だとは
思うが、Strutsを使った時のDTO <--> ActionForm変換の手間をなんとかできんものか....
0180デフォルトの名無しさんNGNG
おれは逆に、「トランザクションを〜」のメッセージも障害解析時に使う、と
思ったんだけどどうだろうか。「あーここでロールバックしてるわ」とかそういう
情報になるしさ。
0181デフォルトの名無しさんNGNG
>>170
org.seasar.extension.jtaだけINFOにするとかで止めれるんじゃない?
0182デフォルトの名無しさんNGNG
どこに責任があるとかないとか考えて、モノによって処理が書いてある場所が微妙に違うのが一番困る。
0183デフォルトの名無しさんNGNG
それは無責任ですな。
018444NGNG
>>172
1と3のような要件の時にはcalculatePay持たすべきじゃないかもしれないけど、
「社員の給与は社員の役職によってのみ決まる」という場合には社員に持たせてもいいと思うんだけど、どう?

また、2の考えを押し進めると以下の(A)を(B)のようにするべきという話になると思うんだけど、こんなクラス、ちょっとありえないよね。
なので2の考え方は間違ってると考えます。

=== A ===
class Stack
 def push( o )
  ...
 def pop
  ...
end
=== B ===
class StackData
 ...
end

class StackPush
 def push( stack_data, o )
  ...
end

class StackPop
 def pop( stack_data )
 ...
end
018544NGNG
>>175
ごめん、質問の意図がわからないよ。
0186デフォルトの名無しさんNGNG
stackのpushとpopは対(つい)の操作。
calculatePayとisExpiredは無関係。
そんな例示でいったい誰を説得しようというのか。
0187デフォルトの名無しさんNGNG
>>184
> 役職によってのみ決まる

役職によって決まるんなら、役職に持たせれ。
018844NGNG
>>173
そっかー。
いろいろいい例を考えてはみたけど、漏れの貧弱な想像力ではいいサンプルが思い浮かばなかったんでつ orz
0189デフォルトの名無しさんNGNG
役職はクラスじゃないだろう。
給料の計算はPaymentCalculatorクラスにまとめるでどうよ。
019044NGNG
>>186
> stackのpushとpopは対(つい)の操作。
> calculatePayとisExpiredは無関係。
> そんな例示でいったい誰を説得しようというのか。

対の操作 = ひとつのロール、だよね。

172は、例えひとつのロールとして表すべきクラスでも、
エンバグの危険を避けるためにデータと処理を分けるべき、と言っていると思ってるんだけど。

もしそうじゃなかったとしたら、172の2の反論自体無効だね。
だって、おれは複数のロールを持つクラスをロールごとに分割することには賛成なんだもん。
0191デフォルトの名無しさんNGNG
>>189
> 役職はクラスじゃないだろう。

なぜ?
役職によって違うなら、役職ごとに違う処理を役職ごとに実装するのはありだと思うが。
0192デフォルトの名無しさんNGNG
>もしそうじゃなかったとしたら、172の2の反論自体無効だね。
>だって、おれは複数のロールを持つクラスをロールごとに分割することには賛成なんだもん。

calculatePayとisExpiredはひとつのロール?
おれはどう考えても別々のロールだと思うんだけど。

019344NGNG
>>192
> calculatePayとisExpiredはひとつのロール?
> おれはどう考えても別々のロールだと思うんだけど。

コンテキストによる。
0194デフォルトの名無しさんNGNG
おれはインスタンス変数だけで処理が完結するなら、その動作は該当クラスに乗せても
いいと思う。

あくまでモデルの話だけどさ。
0195デフォルトの名無しさんNGNG
>>193
じゃそんな例出すなよ。コンテキストによるなんていわれたら議論のしようがない。
おれはcalculatePayとisExpiredがひとつのロールになるコンテキストなんて現実にはほとんどありえないと思うが。
0196デフォルトの名無しさんNGNG
それに
>>147で
>この場合のオブジェクトZは単一責任の原則をやぶってると思う?
>おれは思わないよ。
ていってるのはなんなんだ?これを見たら普通44はcalculatePayとisExpiredがひとつのロール
だと考えてると思うんじゃない?
0197デフォルトの名無しさんNGNG
役職はStateパターンにして、社員にくっつければ?
0198デフォルトの名無しさんNGNG
> 役職はStateパターンにして、社員にくっつければ?
なんでも適当に言えばいいってもんじゃないぞ
0199デフォルトの名無しさんNGNG
>>198
いや、そんなに悪くないんじゃない?
俺の場合、役職に関する処理が増えた場合はそれを採用するかも。
0200197NGNG
昇進したら役職Stateを取り替えるだけ。
ある役職の処理が変わっても、社員や他の役職のソース修正しなくて済む。
けっこう良かったですよ。
0201デフォルトの名無しさんNGNG
>>200
役職や職責でstateパターンってまだ試した事無いんだけど
どうも永続化が、って逆か、DBから読み込んで
Entityを生成する時が面倒な気が、ぼんやりとするんです。
どうでした?俺が判ってないだけかなー。
0202デフォルトの名無しさんNGNG
役職は状態遷移じゃないだろう。このスレ大丈夫か?

0203デフォルトの名無しさんNGNG
現実世界では役職と状態遷移は違うものでしょうけども
197の提案は、同じ設計パターンが使えませんかねって話なので
202は反論になってないです。

ファウラーに、在庫推移は複式簿記で管理しないだろ、大丈夫かお前?
といってるようなもんじゃないでしょうか。

もうちょっとダメな理由を詳しくよろしく。
0204デフォルトの名無しさんNGNG
>>202
デザインパターンはマニュアル思考しかできない人間を生産してしまう
などというトンチキな批判がうまれる原因w
0205デフォルトの名無しさんNGNG
>>203
処理中心になってしまうかもしれないけど、考え方としてはStrategyパターンで行ったほうが素直なのではないでしょうか?
やっぱり、役職は状態ではないと思う。
話が戻ってしまうかもしれないが・・
0206デフォルトの名無しさんNGNG
>>201
Hibernateにおまかせ。
0207デフォルトの名無しさんNGNG
状態は列挙のうち一つしかもてない。役職は複数もてる(もしくは持たない)ことが一般的。


役職はロール(というオブジェクト)の一種。
組織の規程は、ロールに対して責務を割り当てる。けして個人や部署じゃない。これはビジネスルール。
個人や部署はパーティとしてまとめられる。
パーティはN個のロールを持てる。
組織の規程は、パーティへのロールの割り当て方について制約を課す。これもビジネスルール。
0208デフォルトの名無しさんNGNG
GOFとかちゃんと読んでるのか、おまえら
0209デフォルトの名無しさんNGNG
DIとかくーすに話を戻しましょう。
0210デフォルトの名無しさんNGNG
なんで? もう語ることないじゃん。
手続き型マンセー、Transaction Script上等って結論じゃなかったか?
0211デフォルトの名無しさんNGNG
でもSQLだけは勘弁な
0212デフォルトの名無しさんNGNG
エンティティの責任は、データを保持することなので、それ以上の責任を押し付けてはいけません。
0213デフォルトの名無しさんNGNG
給料が社員によって決まるとしても、社員には給料を決める権限などないのです。
給料計算は、給料計算担当者が。
0214デフォルトの名無しさんNGNG
>>211
Aチーム、なつかしーなおい。
0215デフォルトの名無しさんNGNG
>211はコング
0216デフォルトの名無しさんNGNG
>>213
社員は
-自分の役職
-役職からの給与算出方法
のみを知っていれば「権限」などなくても給与計算できます。
よって給与計算担当者は必要ありません。

もちろん、コンテキストによっては給与計算担当者が必要になることがあるかもしれないことは否定しませんが。
0217デフォルトの名無しさんNGNG
>>216
で、社員ひとりひとりに自分で給与計算させる会社があるの?
モデリングとは話が違うかもしれんけど、社員を渡せば給料が返ってくる、給与計算者がいるほうがいいと思うなぁ。
0218デフォルトの名無しさんNGNG
>「社員の給与は社員の役職によってのみ決まる」

この前提がそもそも非現実的で意味無し。
0219デフォルトの名無しさんNGNG
>>218
サンプルコードに何を求めてるんだろう?
0220デフォルトの名無しさんNGNG
現実的なコードじゃない?
あした使えるコード。
あさって納品できるコード。
0221デフォルトの名無しさんNGNG
サンプルコードに関して、>>216-217のような話は無意味では。
「社員が持つべきケースのサンプル」
と、「計算担当者が持つべきケースのサンプル」があるだけ。
0222デフォルトの名無しさんNGNG
で、社員が持つべきケースなんてほとんどないから、意味がないというかサンプルとして有害じゃないの?
0223デフォルトの名無しさんNGNG
だれが、社員と給与で例を示したんだ?
そいつのせいでスレ違いな書き込みばかりになってるじゃないか!
0224デフォルトの名無しさんNGNG
Seasarもくーすも、話題にするような目立った動きないから、いいんじゃない?
ログ見ても、ナイーブがどうこうとか、某blogのアイドル写真がそろそろ邪魔くさいとか、あまりスレタイとは関係ないし。
0225デフォルトの名無しさんNGNG
>>223
どうやらファウラーらしい
0226デフォルトの名無しさんNGNG
>>156の
> 正解がないだけに色々と人によってまちまちになっちゃうから
> いっその事統一ルールで、データの振る舞いは
> 全部分けちゃえって話だと読みましたがどうでしょう。

に賛成。
債務とか責任とかを考えて適切な場所に処理を記述とか考えていくと、いろいろなところにコードが分散してしまって、追えなくなってしまう。
DBのViewとかトリガーとかまで考えて適切な場所に処理を記述していくと、もう、どうしようもなくなる。
0227デフォルトの名無しさんNGNG
View やトリガーがあると追えない?
維持すべき設計文書を書いてないだけじゃないかな。
0228デフォルトの名無しさんNGNG
そうすると、一ヶ所に処理を記述したときには、そのソースだけを見ればよかったのが、設計文書とViewなりトリガーなりとJavaのソースと、いろいろなところを見ないといけなくなるわけですね。
しかも、設計文書とJavaソースとViewやトリガは、見るためのツールが違うので、煩雑に。
それだけ追うための手間が増えるわけですよ。

修正の場合も、設計文書を必ず修正する必要があって、この作業は徹底するのにかなりの労力を伴う。
単純に比較すれば、一ヶ所で記述した場合にくらべて、労力自体は増えると思うのですよ。
とくに、設計文書管理の労力。
0229デフォルトの名無しさんNGNG
で、問題はくーすでたびたび話題になってる、作業に関わる人のレベルが一定ではないということですね。
実際には、問題になるのは、レベルではなくて、考え方で。
むしろレベルが高い、考え方の違う人が書いたシステムが非常に追いにくくなるわけで。
システムを追う前に、どのような考え方で書かれたのかをプロファイリングしないといけない。
0230デフォルトの名無しさんNGNG
ドキュメントは非常に儚いので、アプリケーションの枝葉がドキュメントに依存するのは、問題があるんじゃないかと。
アプリケーション独自のロジックに関しては、ドキュメントがなくてもわかるようなものが理想で。

ただし、アプリケーションの骨格がドキュメントに依存するのは仕方がないと思う。
でも、アプリケーションの骨格は、揺るぎにくく共通化しやすいから、その部分をみんなで使えるようにしましょう、と。
で、そのアプリケーションの骨格のドキュメントが、くーすなのかなぁと思う。
0231デフォルトの名無しさんNGNG
シンプルなオブジェクトを複雑に組み合わせるのと、複雑なオブジェクトをシンプルに組み合わせるのと、どっちがいいんだろう?
0232デフォルトの名無しさんNGNG
>>226
> に賛成。
> 債務とか責任とかを考えて適切な場所に処理を記述とか考えていくと、いろいろなところにコードが分散してしまって、追えなくなってしまう。
> DBのViewとかトリガーとかまで考えて適切な場所に処理を記述していくと、もう、どうしようもなくなる。

債務(さいむ)じゃなくて責務(せきむ)な。
0233デフォルトの名無しさんNGNG
ドキュメントが儚い?
恥ずかしげも無くよく言えるな、おい。
XPerもどきの増殖にも困ったもんだ。
0234デフォルトの名無しさんNGNG
>>233
数度の変更を経たにもかかわらず、ちゃんと同期しているドキュメントをみたことがない。
0235デフォルトの名無しさんNGNG
俺も無い

0236デフォルトの名無しさんNGNG
233は、よほど躾の行き届いた組織にいるらしい。
うらやましいな。
0237デフォルトの名無しさんNGNG
ActionFormにインジェクションできますか?
0238デフォルトの名無しさんNGNG
見た事がないというか、出来た事がない_| ̄|○|||
先ず書く、そして打つという手順を守りさえすればそんなはずはない
と上司は言うけれど・・・・・・・・
短期で動くモノを差し出せとせっつかれて、それどころじゃないのです。

アジャイルって本当に素晴らしいモノなのかな?なんか週間連載を
抱えた漫画家みたいって言うか、納期が短い間隔で何回もやってく
る感じで、昔よりも寧ろ過酷になってる様な気がするんですが・・・・・
■ このスレッドは過去ログ倉庫に格納されています