国産DIコンテナSeasar ..
[2ch|▼Menu]
977:デフォルトの名無しさん
06/12/08 00:34:54
超適当なインターフェイスの作り方

1.実装クラス〜Implを先に作る。
2.Eclipseでクラスを右クリック→リファクタリング→インターフェースの抽出を選択
3.インターフェイスに定義したいpublicメソッドを選んで、クラス名からImplを外して実行
4.パッケージが〜.implだった場合は、パッケージ名を修正して出来上がり

だいたい15秒くらいでできるよw

978:wildcats
06/12/08 00:39:36
>>975
別に手間をケチってる訳じゃないよ?
インタフェイス抽出なんて僅かな手間だよね。

979:デフォルトの名無しさん
06/12/08 00:54:55
そもそも、この議論の起点になった奴が必要なときには
インターフェイスの抽出で済むじゃんって言ってるが、
多分、大体のときに必要になるのはインターフェイスを抽出する作業じゃなくて、
インターフェイスを残して、実装を退避させる作業なんだと思うけどなぁ。

それに、実クラスだとどうしても直接インスタンスを生成できちゃうから、
面倒なときにはDI使わずに自分で new しちゃったりするんよねぇ。
そーゆーのを後から抽出したインタフェイスに置き換えていくのって面倒じゃない?

「ぎょぎょ、業務で固有なロジック限定って言ったでしょ!!誤読厳禁!」

つってるけど、週次処理をこの場合には特別に実行するだとか、
そーゆー風に利用箇所が分散する観点がすっぽり抜け落ちてる。

多分Seasar全般に言えるんだろうけど、作り捨ての雰囲気が強いよな。
自分らの作ったシステムをしっかり保守していける体勢を作ろうという観点が
非常に欠けてる。

最近の迷走ぶりは今日早く家に帰れることを重視するあまり
将来困ろうが知っちゃこった無いって発想に近いと思う。

980:デフォルトの名無しさん
06/12/08 01:26:49
改めて >>907 を読み返すと、
最後の意見はかなりの電波だな。
最初の意見は信仰する宗教の違いと思えなくも無いが。
二番目の意見は・・・Implって名前が嫌いなだけなのか?主張が分からん。

981:970
06/12/08 02:01:32
うーん、漏れは972みたいな状況になったことって一度もないんだが。
自分は、小さな開発規模しか経験してないってことなのかな。


だってさー、問題あったら、直接ロジックいじるじゃん?

別に協力会社が作ったソースであっても。


982:デフォルトの名無しさん
06/12/08 02:04:48
>>975
俺は一箇所しか使わない & 直接書いた方が判りやすい場合はわざわざ定数化するよりマジックナンバー書いちゃうけど、だめかな?
なんでも定数だとかえって読みづらくなる気がするんだけど・・・。

983:972
06/12/08 02:26:15
>>981
おまいは、俺の発言をちゃんと理解したのか?(誤字が多すぎて読みにくかったと思うが)
現在正常に動いているものを変更すると変更後のものが動作の正常性を保障できないだろ?
テストクラスが準備されていたとしてもそれが本当に十分に記述されてるのか分からない。

そーゆー場合には、実績として動くことが保障されているクラスはそのまま残しておいて、
そのクラスをコピペしてから内部実装に手を入れていくべきだと思う。
そして、コピペ元は新しいクラスが十分な動作実績を持ったと判断したときに削除する。

俺が書いてるのはあくまで開発だけで閉じた話ではなくて、
障害発生時の一次対応の迅速さまで考えた話だから
「ばぐっすか?はいはい〜、なおしました。これでどうすか?オッケーすよね」
っていうアジャイルな流れとは相容れないかもしれない。

年間システム停止時間1時間以内とか、そういう目標を課せられたプロジェクトに
密に関わってる人間じゃないとそーゆー視点は育たないのかなーとも思う。

984:デフォルトの名無しさん
06/12/08 02:26:58
直接書いた方が判りやすい場合はそれで良いでしょ。

985:デフォルトの名無しさん
06/12/08 02:43:17
>>983
まぁ熱くならずに。
字面を追っただけで利点を実感できたら、そいつは多分天才。
一度でも「あの時 interface 作っとけば・・・」な経験した後じゃないと、
事例挙げられても「ふーん?」で終わりですよ。

986:デフォルトの名無しさん
06/12/08 03:53:49
>>972
>クラスに実装してたら、元ののバージョンを取得しようにも
>他のクラスに手が入ってて入っている部分と切り出して
>チェックアウトするのがかなり難しいかもしれない!!

これって単にインターフェイスを定義するかどうかだけじゃなく、
ロジックを整理してクラス分割した上で、そのクラス同士を疎結合にできているかどうかまで
問われるよね?

まぁ結局そこまで考えると、インターフェイスを使わずにクラス結合なんて考えられなくなるから
結果としては同じことになるんだけど
ようするに、そもそもなんでインターフェイスを挟んでクラス間を疎結合にしようとしているのか
大元からしっかり考えないと、メリットを掴むのは難しいと思う。
単にインターフェイスを定義しても、そこで作ったロジッククラスが
一つだけのメソッドに1000行書いてるような巨大なトランザクションスクリプトだったりしたら
「設定ファイル一つで簡単に置き換える」とかいうわけにもいかないわけで・・・

987:デフォルトの名無しさん
06/12/08 07:49:14
次スレ

国産DIコンテナSeasar その8
スレリンク(tech板)

988:デフォルトの名無しさん
06/12/08 10:35:00
>>970
>Action - Logic - Dao
ここでのLogicってなに?
トランザクションスクリプト?ドメイン?サービス?
多分、層が1つ足りないぜよ。

>>977
いいけど、そうなるとTDDじゃなくね?

>>986
例えば、もともとトランザクションスクリプトなクラスAがあったら、
コピーして修正を加えたA'クラス(もちろんトランザクションスクリプトだけど)をつくって、
差し替えるだけだろ。
トランザクションスクリプト>ドメインモデルの切り替えは、DI云々以前に高コスト&高リスクな作業だと思う。

>>987


989:デフォルトの名無しさん
06/12/08 12:57:04
結局、
>>985
これが真理

990:デフォルトの名無しさん
06/12/08 20:37:10
>>987


なんでファウンデーションスレをテンプレに貼ってないのかと思ったら、
変なのの隔離場所になってるのね。

991:デフォルトの名無しさん
06/12/08 22:19:02
やることがいちいち姑息だよな

992:981
06/12/08 22:52:51
>>983
なるほどねー。
やはり、今までになかったですねー、そういうのは。

>>988
サービスですね。
Action - Logic - Daoは、S2JSFのEmployeeサンプルに倣って書きました。


993:デフォルトの名無しさん
06/12/09 00:28:21
そろそろ埋めるか

994:デフォルトの名無しさん
06/12/09 00:40:58
埋める?S2Containerを?楽しそうだぜ!!

995:デフォルトの名無しさん
06/12/09 00:44:06
沖縄の守り神の獣肉(゚д゚)ウマー

996:デフォルトの名無しさん
06/12/09 01:05:36
食ったんかいw

997:デフォルトの名無しさん
06/12/09 01:06:55
URLリンク(cap.from.tv)

998:デフォルトの名無しさん
06/12/09 01:55:49
ume

999:デフォルトの名無しさん
06/12/09 02:43:00
1000だったらS2Spring作る

1000:デフォルトの名無しさん
06/12/09 02:54:13
日テレはルパンにひどいことをしたよね(´・ω・`)

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5396日前に更新/235 KB
担当:undef