前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/
類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/09/26(火) 07:20:38.98ID:qu+DPehL
388デフォルトの名無しさん
2017/10/07(土) 07:43:58.72ID:PgxJwh6E389デフォルトの名無しさん
2017/10/07(土) 08:28:19.15ID:nPfSE+SF >>384
手続き型みたいなのでバグ探すと、大体1ファイルの中見て
処理の流れもその中だけ追えば良くて
シンプルな流れだからチョイチョイってできるけど
完全なオブジェクト指向だと、
「この値を設定してるのは、ここ、
…、
じゃなくて、コイツ他のとこで設定してるのか〜、
ここ?
あ、もっと上か〜」
みたいにあちこち辿っていくから
あんまり良いことに感じないけど。
影響範囲も広いし。
考えなくていいのは、製造するときに何が何をすると
ハッキリと決められてる時で
どこにバグあるかとか見るときは
「ここだろう」と最初に思ったとこではなかったりしなくね?
設計が難しいなら、
バカでもできる簡単な設計で済む手続き型最強な気がする。
手続き型みたいなのでバグ探すと、大体1ファイルの中見て
処理の流れもその中だけ追えば良くて
シンプルな流れだからチョイチョイってできるけど
完全なオブジェクト指向だと、
「この値を設定してるのは、ここ、
…、
じゃなくて、コイツ他のとこで設定してるのか〜、
ここ?
あ、もっと上か〜」
みたいにあちこち辿っていくから
あんまり良いことに感じないけど。
影響範囲も広いし。
考えなくていいのは、製造するときに何が何をすると
ハッキリと決められてる時で
どこにバグあるかとか見るときは
「ここだろう」と最初に思ったとこではなかったりしなくね?
設計が難しいなら、
バカでもできる簡単な設計で済む手続き型最強な気がする。
390デフォルトの名無しさん
2017/10/07(土) 08:32:25.87ID:nPfSE+SF >>389は詳細設計書位しかなくて、クラス図とかもろもろないケースの話で。
391デフォルトの名無しさん
2017/10/07(土) 08:45:17.84ID:XbHkmFTG392デフォルトの名無しさん
2017/10/07(土) 08:56:39.98ID:YsvN5rHZ ワンインスタンス内ではメンバはグローバル変数みたいに振る舞うから
継承多くなるとっていうかある時点でクソ言語になるんだよね
継承多くなるとっていうかある時点でクソ言語になるんだよね
393デフォルトの名無しさん
2017/10/07(土) 08:59:42.95ID:gjULmNh3394デフォルトの名無しさん
2017/10/07(土) 09:01:52.28ID:YsvN5rHZ395デフォルトの名無しさん
2017/10/07(土) 09:07:01.43ID:gjULmNh3396デフォルトの名無しさん
2017/10/07(土) 09:13:58.30ID:XbHkmFTG397デフォルトの名無しさん
2017/10/07(土) 09:33:31.18ID:gjULmNh3398デフォルトの名無しさん
2017/10/07(土) 09:45:04.94ID:cHXvfEBn >>397
どこにそんなの書いてあるんだよ
どこにそんなの書いてあるんだよ
399デフォルトの名無しさん
2017/10/07(土) 09:45:43.21ID:fUAr46yo 呼び出し階層が深いだけで可読性が低いなら抽象化が下手なだけで、オブジェクト指向に限った話じゃない
呼び出し元や定義にジャンプする機能のないエディタ使ってると辛いとか
DIでコンフィグから実装を注入してると追うのが面倒くさいとかなら分かる
呼び出し元や定義にジャンプする機能のないエディタ使ってると辛いとか
DIでコンフィグから実装を注入してると追うのが面倒くさいとかなら分かる
400デフォルトの名無しさん
2017/10/07(土) 09:55:17.34ID:XbHkmFTG401デフォルトの名無しさん
2017/10/07(土) 10:08:41.11ID:HG4cr/37402デフォルトの名無しさん
2017/10/07(土) 10:17:47.53ID:b4KK/o19 いろんな考えかたの人がいる
それは認めるべきだ
オブジェクト指向が好きなやつも手続き型が好きなやつもみんな自由と権利を持っている
でもここはオブジェクト指向のスレなので
手続き型に興味があるなら手続き型スレで議論を深めればいいんじゃないかな?
手続き型システムの設計 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1500282714/
オブジェクト指向がわかりにくくて嫌いだからといってもオブジェクト指向のコミュニティを荒らしてもいい理由にはならないだろう
住み分けは大事だ
それは認めるべきだ
オブジェクト指向が好きなやつも手続き型が好きなやつもみんな自由と権利を持っている
でもここはオブジェクト指向のスレなので
手続き型に興味があるなら手続き型スレで議論を深めればいいんじゃないかな?
手続き型システムの設計 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1500282714/
オブジェクト指向がわかりにくくて嫌いだからといってもオブジェクト指向のコミュニティを荒らしてもいい理由にはならないだろう
住み分けは大事だ
403デフォルトの名無しさん
2017/10/07(土) 10:24:12.14ID:cHXvfEBn404デフォルトの名無しさん
2017/10/07(土) 10:24:39.29ID:b4KK/o19 >>403
スタックオーバーフロー潰してくれ
スタックオーバーフロー潰してくれ
405デフォルトの名無しさん
2017/10/07(土) 10:32:38.68ID:cHXvfEBn >>404
どのレスだよ
どのレスだよ
406デフォルトの名無しさん
2017/10/07(土) 10:33:11.71ID:AzEsxXfu ガチガチに手続き型で組んだプログラムなんて見とうないわ
あちこちに飛ぶから云々ってマジでいってんのか
あちこちに飛ぶから云々ってマジでいってんのか
407デフォルトの名無しさん
2017/10/07(土) 10:44:43.23ID:b4KK/o19 あちこち飛ぶからいいんじゃねえか
飛ばなかったら全ての処理が一箇所に集まってパンクするだろw
飛ばなかったら全ての処理が一箇所に集まってパンクするだろw
408デフォルトの名無しさん
2017/10/07(土) 11:50:23.50ID:h9kzLMoI 飛び方がキレイな木の枝のようになっていればよい
枝から枝へモモンガのように飛ぶ処理が入っていたら地獄だ
枝から枝へモモンガのように飛ぶ処理が入っていたら地獄だ
409デフォルトの名無しさん
2017/10/07(土) 14:53:33.77ID:8/GtqdSW というか、オブジェクト指向はクラスに責任を持たせることで
責任が遡ったり他へ波及するのを防ぎデバッグも局所化して容易にする思想なので
どこかで一目でわかるように「この値を設定する一意の責任を持つのはおまえ」と
責任を持った誰かがいて、正しく作ってればそこから周りにゴミが飛び散るはずがないので
>「この値を設定してるのは、ここ、
>…、
>じゃなくて、コイツ他のとこで設定してるのか〜、
>ここ?
>あ、もっと上か〜」
とか、それのどこがオブジェクト指向だ。>>393と同じ感想
責任が遡ったり他へ波及するのを防ぎデバッグも局所化して容易にする思想なので
どこかで一目でわかるように「この値を設定する一意の責任を持つのはおまえ」と
責任を持った誰かがいて、正しく作ってればそこから周りにゴミが飛び散るはずがないので
>「この値を設定してるのは、ここ、
>…、
>じゃなくて、コイツ他のとこで設定してるのか〜、
>ここ?
>あ、もっと上か〜」
とか、それのどこがオブジェクト指向だ。>>393と同じ感想
410デフォルトの名無しさん
2017/10/07(土) 15:00:30.34ID:2+lwKRbT >>409
だからインターフェースだって
だからインターフェースだって
411デフォルトの名無しさん
2017/10/07(土) 16:02:05.40ID:kNgxClsQ412デフォルトの名無しさん
2017/10/07(土) 16:08:52.04ID:b4KK/o19 素人がインターフェースを使うと実装に強く依存してしまうことがある
実装クラスの内部的な挙動を前提にするとかね
実装クラスの内部的な挙動を前提にするとかね
413デフォルトの名無しさん
2017/10/07(土) 16:19:22.15ID:s04ZU/0N おまえらおしゃべりしたいだけだろ
リアルで交流しろや
リアルで交流しろや
414デフォルトの名無しさん
2017/10/07(土) 17:51:59.67ID:HG4cr/37415デフォルトの名無しさん
2017/10/07(土) 19:44:56.82ID:XbHkmFTG >>412
Javaのデフォルトメソッドとか
Javaのデフォルトメソッドとか
416デフォルトの名無しさん
2017/10/07(土) 20:05:29.97ID:sBPFzIIo しっかり役割を分担しないとオブジェクト指向の利点をいかせないと言うことか
417デフォルトの名無しさん
2017/10/07(土) 21:05:16.73ID:XbHkmFTG >>416
利点も何も役割分担できてないならそもそもオブジェクト指向じゃないよ
利点も何も役割分担できてないならそもそもオブジェクト指向じゃないよ
418デフォルトの名無しさん
2017/10/07(土) 21:37:16.03ID:b4KK/o19 一言でクラスの役割を言えなければ設計ミス
419デフォルトの名無しさん
2017/10/07(土) 21:55:08.92ID:E9rJLdk9 >>418
神クラス
神クラス
420デフォルトの名無しさん
2017/10/07(土) 22:17:55.42ID:kNgxClsQ >>418
いやだから、インターフェイスってそういうもんじゃん
いやだから、インターフェイスってそういうもんじゃん
421デフォルトの名無しさん
2017/10/08(日) 09:02:57.57ID:jBiYbWN1 オブジェクト指向の設計の話をしてると
このクラスはこのことを知ってるべきだ、イヤ知らないべきだ
なんて話がよくあるが
アスペの代表的な特徴として自分の視点でしか考えられない
ということかあるのでアスペにOOは無理
このクラスはこのことを知ってるべきだ、イヤ知らないべきだ
なんて話がよくあるが
アスペの代表的な特徴として自分の視点でしか考えられない
ということかあるのでアスペにOOは無理
422デフォルトの名無しさん
2017/10/08(日) 09:11:34.28ID:Iqz4qArZ423デフォルトの名無しさん
2017/10/08(日) 09:24:12.05ID:p3iPkAzZ アスペルガー指向
424デフォルトの名無しさん
2017/10/08(日) 09:24:39.06ID:jBiYbWN1425デフォルトの名無しさん
2017/10/08(日) 09:27:10.43ID:4gVJmCxE そういう現場は多いよ
見積もりしやすいとかいう頭が悪い理由で、画面を作業単位にして割り振るから
神画面クラスがいくつも出来上がる
挙げ句の果てにその見積もりも根拠なしの適当な数字ときたもんだ
見積もりしやすいとかいう頭が悪い理由で、画面を作業単位にして割り振るから
神画面クラスがいくつも出来上がる
挙げ句の果てにその見積もりも根拠なしの適当な数字ときたもんだ
426デフォルトの名無しさん
2017/10/08(日) 09:31:28.00ID:Iqz4qArZ >>424
お前がアスペだったか
お前がアスペだったか
427デフォルトの名無しさん
2017/10/08(日) 09:39:58.73ID:jBiYbWN1 >>426
説明できないと何の論拠も無く相手をアスペで片付けるんだね
説明できないと何の論拠も無く相手をアスペで片付けるんだね
428デフォルトの名無しさん
2017/10/08(日) 09:51:49.98ID:jBiYbWN1429デフォルトの名無しさん
2017/10/08(日) 10:04:06.91ID:St7l03cQ でも見積り出せない作業じゃお金もらえないから
430デフォルトの名無しさん
2017/10/08(日) 10:17:02.42ID:jBiYbWN1 単価を品質に見合ったものにしろ
431デフォルトの名無しさん
2017/10/08(日) 10:58:52.79ID:tomnUErs おまえらアスペとかADHDとか言ってるけど
せめてググってwikipediaや解説サイトぐらい見れば話が合うような言葉を選んでくれ
10人にADHDの説明させたら10通りの回答が出てくる現状では
技術的な議論に使う言葉じゃないと思うんだわ
せめてググってwikipediaや解説サイトぐらい見れば話が合うような言葉を選んでくれ
10人にADHDの説明させたら10通りの回答が出てくる現状では
技術的な議論に使う言葉じゃないと思うんだわ
432デフォルトの名無しさん
2017/10/08(日) 11:01:13.46ID:4gVJmCxE 見積もりは出したふりでいい
客も見積もりに意味ないことは分かってるから上司への説明など適当にうまくやってくれる
その辺は阿吽の呼吸ですよ
客も見積もりに意味ないことは分かってるから上司への説明など適当にうまくやってくれる
その辺は阿吽の呼吸ですよ
433デフォルトの名無しさん
2017/10/08(日) 11:04:17.48ID:p3iPkAzZ 関わるのも面倒だからそういうのはメンバーにいない方がマシ
434デフォルトの名無しさん
2017/10/08(日) 11:16:34.14ID:ZEE0bNSu >>427
自分が誰よりも上位にあることを見せかける上で便利だからねアスペ認定は
自分が誰よりも上位にあることを見せかける上で便利だからねアスペ認定は
435デフォルトの名無しさん
2017/10/08(日) 11:18:28.86ID:A99pIV6O ここオブジェクト指向スレなんですが?
アスペがアスペを叩いていて笑う
アスペがアスペを叩いていて笑う
436デフォルトの名無しさん
2017/10/08(日) 11:25:19.20ID:4gVJmCxE アスペクト指向ってどうなったの
437デフォルトの名無しさん
2017/10/08(日) 11:36:48.97ID:FYLwhXQv438デフォルトの名無しさん
2017/10/08(日) 15:55:36.81ID:0lUaooNs >>436
DIで若干使われてなかったっけ?
DIで若干使われてなかったっけ?
439デフォルトの名無しさん
2017/10/08(日) 20:27:37.02ID:CWK8ZE8n そういや一時期流行ったな
実装のまずさを誤魔化す手段という認識しかなかった
実装のまずさを誤魔化す手段という認識しかなかった
440デフォルトの名無しさん
2017/10/08(日) 22:01:40.54ID:4gVJmCxE デコレーター
属性バリデーション
シリアライズ
apiプロキシ
…
aopは意識しないだけで結構使ってるな
属性バリデーション
シリアライズ
apiプロキシ
…
aopは意識しないだけで結構使ってるな
441デフォルトの名無しさん
2017/10/09(月) 08:04:01.64ID:tvCeOLo3 メッセージリソース管理クラスの素晴らしい設計を教えてください
void SomeAppMethod() {
// do something
view.AddMessage("MSG_0123")
// do something
}
こんな感じでリソースIDがシステム中にばら撒かれて制御不能状態になっています
メッセージリソースを管理するクラスを作って解消したいのですが良いAPIが決まりません
void SomeAppMethod() {
// do something
view.AddMessage("MSG_0123")
// do something
}
こんな感じでリソースIDがシステム中にばら撒かれて制御不能状態になっています
メッセージリソースを管理するクラスを作って解消したいのですが良いAPIが決まりません
442デフォルトの名無しさん
2017/10/09(月) 08:13:01.79ID:1ju7bjVC >>441
何が困ってるの?
何が困ってるの?
443デフォルトの名無しさん
2017/10/09(月) 08:52:42.35ID:PA3EvPtr >>441
OOPではリソースIDのような物理的な情報は隠蔽しなければならない
public interface ILowLevelMsgManager {
string GetMsg(string msgId, params object[] placeHolderArgs);
}
public interface IMsgManager {
string GetHogeMsg(); // ほげええええ
string GetFugaMsg(int num); // ふがふが{num}ふがふが
}
public class MsgManager : IMsgManager {
private ILowLevelMsgManager llmm;
public MsgManager(ILowLevelMsgManager pllmm) { llmm = pllmm; }
public string GetHogeMsg() { return llmm.GetMsg("MSG_0001"); }
public string GetFugaMsg(int num) { return llmm.GetMsg("MSG_0002", num); }
}
OOPではリソースIDのような物理的な情報は隠蔽しなければならない
public interface ILowLevelMsgManager {
string GetMsg(string msgId, params object[] placeHolderArgs);
}
public interface IMsgManager {
string GetHogeMsg(); // ほげええええ
string GetFugaMsg(int num); // ふがふが{num}ふがふが
}
public class MsgManager : IMsgManager {
private ILowLevelMsgManager llmm;
public MsgManager(ILowLevelMsgManager pllmm) { llmm = pllmm; }
public string GetHogeMsg() { return llmm.GetMsg("MSG_0001"); }
public string GetFugaMsg(int num) { return llmm.GetMsg("MSG_0002", num); }
}
444デフォルトの名無しさん
2017/10/09(月) 09:16:54.02ID:L5aecCRz >>443
それになんの意味があるのかさっぱりわからんな
メッセージなんてでかいプロジェクトだと500個とか行っちゃって
詳細なんかわかんなくていいんじゃないの?
もうメッセージ一覧で確認することは諦めろよ的な
それになんの意味があるのかさっぱりわからんな
メッセージなんてでかいプロジェクトだと500個とか行っちゃって
詳細なんかわかんなくていいんじゃないの?
もうメッセージ一覧で確認することは諦めろよ的な
445デフォルトの名無しさん
2017/10/09(月) 09:24:41.04ID:L5aecCRz メッセージでこれまで見た中で一番多いのは3000だった
そこまで構えろとはいわんけどそういう性質のものではある
ソースの該当箇所に一つ一つ置いていく手間は省略できない
メッセージリソースIDとメッセージが照合できればそれでその作業は終わりじゃねーのか?
後、何を管理してもらいたい?
そこまで構えろとはいわんけどそういう性質のものではある
ソースの該当箇所に一つ一つ置いていく手間は省略できない
メッセージリソースIDとメッセージが照合できればそれでその作業は終わりじゃねーのか?
後、何を管理してもらいたい?
446デフォルトの名無しさん
2017/10/09(月) 10:08:03.54ID:PA3EvPtr447デフォルトの名無しさん
2017/10/09(月) 10:21:29.30ID:Y2JfmrWo 客の都合でID体系変更になってリテラル全部調べて置き換えて再テストしたトラウマ
する価値ないと思ってもとりあえずでいいから抽象化しておいて損はない
する価値ないと思ってもとりあえずでいいから抽象化しておいて損はない
448デフォルトの名無しさん
2017/10/09(月) 10:22:07.29ID:FteGtpX4 別ファイルに切り出して読み込めばいいと思う
449デフォルトの名無しさん
2017/10/09(月) 10:44:55.28ID:3IBabimx >>446
いやぁ、だからさ
ソースのエラー箇所に自動配置なんかできないんだからそこは300だろうが3000だろうが30000だろうが手動じゃん
IDとエラーメッセージが組にさえなってたらどういう構造にしようがやることかわんねーよ的な
いやぁ、だからさ
ソースのエラー箇所に自動配置なんかできないんだからそこは300だろうが3000だろうが30000だろうが手動じゃん
IDとエラーメッセージが組にさえなってたらどういう構造にしようがやることかわんねーよ的な
450デフォルトの名無しさん
2017/10/09(月) 10:48:47.25ID:3IBabimx visualstudioのjaファイルとかその辺の仕組み使えばいいんじゃないの?
ローカライズするならやっとかないと死ぬよ
ローカライズするならやっとかないと死ぬよ
451デフォルトの名無しさん
2017/10/09(月) 10:50:11.84ID:Vj0lVF94 rm = new ResourceManager(locale)
un = rm.get("property.name.user-name")
msg = rm.get("validation.error.max-length", un, 10)
print msg # ユーザー名は10文字以下で入力してください
スッキリ
un = rm.get("property.name.user-name")
msg = rm.get("validation.error.max-length", un, 10)
print msg # ユーザー名は10文字以下で入力してください
スッキリ
452デフォルトの名無しさん
2017/10/09(月) 10:55:11.14ID:PA3EvPtr453デフォルトの名無しさん
2017/10/09(月) 11:29:45.24ID:3IBabimx >>452
いやぁでもこの数やる気にはなんないなぁ
いやぁでもこの数やる気にはなんないなぁ
454デフォルトの名無しさん
2017/10/09(月) 11:31:53.98ID:3IBabimx455デフォルトの名無しさん
2017/10/09(月) 11:34:13.65ID:3IBabimx このケースで余計に一層設けるのはメリット薄いんじゃない?
って言いたい
って言いたい
456デフォルトの名無しさん
2017/10/09(月) 11:44:58.84ID:M//uOX8+ >>441
C#なら素直に.resx使う
少なくとも存在しないIDを使った場合に
コンパイルエラーになる仕組みを使う
種類ごとにグループ化(階層化)して管理しやすくする
メジャーなフレームワーク参照したら分かると思うがMSG_0123みたいな命名自体も悪手
もうどうしようもないのかもしれんが
C#なら素直に.resx使う
少なくとも存在しないIDを使った場合に
コンパイルエラーになる仕組みを使う
種類ごとにグループ化(階層化)して管理しやすくする
メジャーなフレームワーク参照したら分かると思うがMSG_0123みたいな命名自体も悪手
もうどうしようもないのかもしれんが
457デフォルトの名無しさん
2017/10/09(月) 11:50:08.07ID:3IBabimx458デフォルトの名無しさん
2017/10/09(月) 11:59:06.73ID:RdvZrZJ8 コードジェネレータがいいよ
メッセージID, メッセージテキスト, パラメータ数
Hoge, ほげ, 0
Fuga, {0}はふがです, 1
これをエクセルで管理してメッセージ管理クラスを出力
class MessageManager {
public static string Hoge() => "ほげ";
public static string Fuga(object p0) => string.Format("{0}はふがです", p0);
}
んでデータ数が増えてきたらエクセルをやめてデータベースで管理
エクセルを使えばお客様もお喜びになられるので一石二鳥
メッセージID, メッセージテキスト, パラメータ数
Hoge, ほげ, 0
Fuga, {0}はふがです, 1
これをエクセルで管理してメッセージ管理クラスを出力
class MessageManager {
public static string Hoge() => "ほげ";
public static string Fuga(object p0) => string.Format("{0}はふがです", p0);
}
んでデータ数が増えてきたらエクセルをやめてデータベースで管理
エクセルを使えばお客様もお喜びになられるので一石二鳥
459デフォルトの名無しさん
2017/10/09(月) 12:17:44.19ID:M//uOX8+ >>457
メンテナンス性を犠牲にしても
命名負荷を下げたいという意思決定をしてるんならいいんじゃないの
神クラス・神テーブルと同じアプローチだけど
物によってはそれが適切な選択の場合もあるんだろうから
メンテナンス性を犠牲にしても
命名負荷を下げたいという意思決定をしてるんならいいんじゃないの
神クラス・神テーブルと同じアプローチだけど
物によってはそれが適切な選択の場合もあるんだろうから
460デフォルトの名無しさん
2017/10/09(月) 12:35:04.44ID:1orfMMQz >>441
> メッセージリソース管理クラスの素晴らしい設計を教えてください
メッセージリソースなんてものを作らない。
view.AddMessage("あーがこーでどうなりました")
って日本語で書けばいい。
多言語化したいなら、gettextなどの言語やフレームワーク標準の
多言語化ライブラリを使えばいい話。
その場合は、英語でメッセージを書いて、日本語化するってことが
よく行われるが逆でもいいだろう。
> メッセージリソース管理クラスの素晴らしい設計を教えてください
メッセージリソースなんてものを作らない。
view.AddMessage("あーがこーでどうなりました")
って日本語で書けばいい。
多言語化したいなら、gettextなどの言語やフレームワーク標準の
多言語化ライブラリを使えばいい話。
その場合は、英語でメッセージを書いて、日本語化するってことが
よく行われるが逆でもいいだろう。
461デフォルトの名無しさん
2017/10/10(火) 07:21:02.20ID:JGhyCx0Y462デフォルトの名無しさん
2017/10/10(火) 08:31:03.78ID:v9JcaVeZ ゲームをオブジェクト指向で作ると作りにくいよ
相互作用の処理が多過ぎてオブジェクトに閉じない
相互作用の処理が多過ぎてオブジェクトに閉じない
463デフォルトの名無しさん
2017/10/10(火) 12:08:00.54ID:RxOfGqdN それは設計どころかゲームそのものとしての落とし込みが不十分
ゲームとか一定のルールに則った動作をするだよ
ゲームとか一定のルールに則った動作をするだよ
464デフォルトの名無しさん
2017/10/10(火) 12:15:07.34ID:duckiwE1465デフォルトの名無しさん
2017/10/10(火) 23:46:15.72ID:WxQVAUFU 「オブジェクト指向だからステージの俳優が全員なんか言ってきて
カントクは一人一人対応なんかしてたら死ぬな!!www」
…いや、間違った理解をした奴はまあそういうドマヌケやらかしがちだが
普通はステージステータスに集約されて、ディレクターは
そのステータスを見て上から必要な個々に指示が送られるように作るからね…
カントクは一人一人対応なんかしてたら死ぬな!!www」
…いや、間違った理解をした奴はまあそういうドマヌケやらかしがちだが
普通はステージステータスに集約されて、ディレクターは
そのステータスを見て上から必要な個々に指示が送られるように作るからね…
466デフォルトの名無しさん
2017/10/11(水) 00:09:15.15ID:i63/Wje0 ゲームは油断するとすぐにキャストや型判定だらけになってしまう
特定のクラス同士の時だけ発生する相互作用とか
特定のクラス同士の時だけ発生する相互作用とか
467デフォルトの名無しさん
2017/10/12(木) 12:26:13.92ID:UV6Mfibu ゲームとか業務とかピンキリだろ
468デフォルトの名無しさん
2017/10/12(木) 21:48:31.48ID:Drh75QCI お客さんが属性バリデーションも他のバリデーションフレームワークも使っちゃダメって言うんだけど
どうすれば楽にバリデーションできる?
言語はC#
テキストリソースは全てDBで管理されている
ロケールによってエラーテキストを変えなければならいとする
どうすれば楽にバリデーションできる?
言語はC#
テキストリソースは全てDBで管理されている
ロケールによってエラーテキストを変えなければならいとする
469デフォルトの名無しさん
2017/10/12(木) 22:09:08.92ID:o8TlX9Z0470デフォルトの名無しさん
2017/10/12(木) 22:34:53.95ID:Drh75QCI >>469
属性やフレームワークは設定方法がよくわからないのでメンテナンスの時に困るから
ひたすら単調にif文をズラズラと書いてるんだけどシンドイ
項目数が100近いPageもあってそれぞれが何種類かのバリデーションを行うからバリデーションだけで数百行のメソッドになることもある
属性やフレームワークは設定方法がよくわからないのでメンテナンスの時に困るから
ひたすら単調にif文をズラズラと書いてるんだけどシンドイ
項目数が100近いPageもあってそれぞれが何種類かのバリデーションを行うからバリデーションだけで数百行のメソッドになることもある
471デフォルトの名無しさん
2017/10/12(木) 23:00:42.84ID:o8TlX9Z0 >>470
xmlでルール書くやつは敬遠されるのは理解できなくもないが
単純な属性ベースは分かりやすいしメンテしやすいのにね
楽しようとすれば結局自前で簡易的なフレームワーク風のものを作ることになる
あまりにも数が多いならコード生成という選択肢も
xmlでルール書くやつは敬遠されるのは理解できなくもないが
単純な属性ベースは分かりやすいしメンテしやすいのにね
楽しようとすれば結局自前で簡易的なフレームワーク風のものを作ることになる
あまりにも数が多いならコード生成という選択肢も
472デフォルトの名無しさん
2017/10/12(木) 23:06:26.57ID:njn1yLjW >>470
ライセンス的に問題がないものをコピーすればいい
ライセンス的に問題がないものをコピーすればいい
474デフォルトの名無しさん
2017/10/13(金) 01:47:19.56ID:l1jERKvk >>470
Frameworkを使わないc#ってどんだけマゾなの?ランタイム自分で書いてんの?
Frameworkを使わないc#ってどんだけマゾなの?ランタイム自分で書いてんの?
475デフォルトの名無しさん
2017/10/13(金) 01:48:05.83ID:nTgCE4U5 >>470
そんな理由にならない理由に従おうとする方がバカ
そんな理由にならない理由に従おうとする方がバカ
476デフォルトの名無しさん
2017/10/13(金) 02:48:12.40ID:s0+Jkp8l 今回みたいな例だとライブラリを使わないで自作するとしたら
使った場合に比べて何倍ぐらいの金額を請求する?
使った場合に比べて何倍ぐらいの金額を請求する?
477デフォルトの名無しさん
2017/10/13(金) 02:56:05.56ID:GlXmqXn2 バリデーションが全体の工数に占める割合がわからないとなんともいえないけど、数倍なんてなるわけないだろアホ
どんだけバリデーションばっかやってるプロダクトを想定してんだよ
客に費用の話をするとき、「通常この規模だと20人月ですが、バリデーションライブラリが使えないので+50人月かかります」とでも言うのか
どんだけバリデーションばっかやってるプロダクトを想定してんだよ
客に費用の話をするとき、「通常この規模だと20人月ですが、バリデーションライブラリが使えないので+50人月かかります」とでも言うのか
478デフォルトの名無しさん
2017/10/13(金) 03:43:57.20ID:s0+Jkp8l はぁ? 増えた分の請求は当然するだろ。当たり前のことを当たり前にするだけだぞ
479デフォルトの名無しさん
2017/10/13(金) 04:33:13.10ID:l1jERKvk >>476
なんでいきなりフレームワークじゃなくてライブラリの話になってんの?
なんでいきなりフレームワークじゃなくてライブラリの話になってんの?
480デフォルトの名無しさん
2017/10/13(金) 04:36:24.84ID:zVcBlnUR481デフォルトの名無しさん
2017/10/13(金) 04:37:49.67ID:zVcBlnUR ごめん勘違い
工数の膨らみ方が半端なさ過ぎて非現実的ってのが言いたかった
工数の膨らみ方が半端なさ過ぎて非現実的ってのが言いたかった
482デフォルトの名無しさん
2017/10/13(金) 04:40:34.82ID:qOElJcq/ ひとまず使って組んで元の処理コピーして置き換えちゃえばいいんちゃう?
バリデーションのソースってあんでしょ?
バリデーションのソースってあんでしょ?
483デフォルトの名無しさん
2017/10/13(金) 05:21:13.13ID:s0+Jkp8l >>479
バリデーションのフレームワークなんてないでしょw
バリデーションのフレームワークなんてないでしょw
484デフォルトの名無しさん
2017/10/13(金) 07:46:49.24ID:DI18WdpZ >>483
フレームワークの一部としてバリデーションがあるやろ
フレームワークの一部としてバリデーションがあるやろ
485デフォルトの名無しさん
2017/10/13(金) 14:51:54.32ID:+zTlsJiZ バリデーションのフレームワーク普通にあるだろw
486デフォルトの名無しさん
2017/10/13(金) 16:33:32.34ID:kRlRrFWL ごめん、何言ってんだかよくわかんないんだけど、
まず、>>468のバリデーションって、一体何に対するバリデーションの話してるの?
まず、>>468のバリデーションって、一体何に対するバリデーションの話してるの?
487デフォルトの名無しさん
2017/10/13(金) 23:02:45.05ID:6pOkahl4 if (!validateRequired("#foo")) {
var msgFormat = getResource("error.required");
var label = getLabel("#foo");
addMessage(msgFormat, label);
addCss("#foo", "input-error");
}
以下100項目繰り返し
これ以上簡潔で保守性の高いバリデーションが存在しない件
OOPは物事を無駄に複雑化するばかりで役に立たん
var msgFormat = getResource("error.required");
var label = getLabel("#foo");
addMessage(msgFormat, label);
addCss("#foo", "input-error");
}
以下100項目繰り返し
これ以上簡潔で保守性の高いバリデーションが存在しない件
OOPは物事を無駄に複雑化するばかりで役に立たん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 「高市人気」どこに? 自民候補が福島市長選で大敗、葛飾区議選でも苦戦 衆院早期解散論に冷や水 [1ゲットロボ★]
- 【ホタテ】中国が水産物輸入停止を伝達「ビクビクしながら…」北海道の水産業者からは落胆の声 [おっさん友の会★]
- 日銀「利上げなんだけど」高市さん「そういうことね、よしなに🙂」 [881878332]
- 高市早苗「つい言い過ぎた」公邸で一人ひきこもる😲 [861717324]
- 【悲報】普通の日本人「総理が高市さんになって日本が正常化していく…!」 [714769305]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- JAL、ANA「国内線赤字です」「新幹線に負けるので値上げどころかセール連発で値下げします」👈ビジネス的にもう厳しくね [943688309]
- 外務省局長「答弁撤回は拒否する。薛剣はクビにしろ。訪日自粛やめろ。あと在留邦人の安全確保しろ」 [834922174]
