[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 11/04 03:18 / Filesize : 386 KB / Number-of Response : 1023
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向システムの設計 170



1 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:08:42.31 ID:pIEuB3Z3.net]
オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ
オブジェクト指向は役割でオブジェクトに分割するものであって
処理で分割するものではない。

237 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 12:48:55.39 ID:tJT0ttjQ.net]
>>232
unkoクラスのgetPPメソッド

238 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 12:50:25.29 ID:soSMk704.net]
ifの中で真偽値と比較するコードなんて捨ててしまえ

239 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 12:54:33.11 ID:x8NBN55x.net]
>>233
ということであれば、単体/unitテストでは、正しいも間違っているも判定しない。

240 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 14:26:28.50 ID:fuTkOmr9.net]
このように意味のないことを堂々巡りに考えるのがOOP脳患者
無駄なことに時間を費やしたくない人は
OOPが得意な部分だけを上手に利用することだけを考えておけばよい
ほとんどの実用的な言語がマルチパラダイムを選択していることからもわかる通り
当たり前に得手不得手があるし
一つの考え方だけでうまくいくほど世の中単純ではないことは子供以外は誰でも知っている

241 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 16:51:41.22 ID:9Sgsnltg.net]
>>228
コードだけ見て判断できるものもあるし、仕様書読まないと判断できないものもあるとしか言えない。
どっちを参照しても分からないなら作った人に聞くべきだけど、それはテストじゃなくてレビューになる。

それとも仕様書無しでソースあり、さあテストを書けって場合を考えている?
そんな苦役を振られたら、仕様書を作って欲しいのか確実に動かないバグを潰して欲しいのか確認するところから始めましょう。

242 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 18:22:00.20 ID:55Jnw5v7.net]
>>237
いや、オブジェクト指向だとテストが減るとか言ってるアホがいたから

243 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 19:13:46.82 ID:IPFd2Mdr.net]
>>238
オブジェクト指向の目的聞かれて回答しないままトンずらした奴だろ。

244 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 22:51:27.39 ID:3RkkmY6H.net]
>>212
> 仕様書に書いてあるだろ?

仕様書には「整数」って書いてあるけど、
そしたら、無限にある整数を全部テストしろって話でしょう?w

245 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:08:39.30 ID:soSMk704.net]
そんなときこそFormal methods
複雑になるとUndecidableなのが玉に瑕



246 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:26:10.98 ID:55Jnw5v7.net]
>>240
駄目な仕様書だな
上限も下限も定義されてないでモノなんて作れっかよ
全く仕事やってない証拠

オブジェクト指向なんかどうでもいいから
設計書きっちり書けよって話

247 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:37:42.96 ID:3RkkmY6H.net]
>>242
> 駄目な仕様書だな
> 上限も下限も定義されてないでモノなんて作れっかよ

作れるだろ?Pythonは無限リストを作れるのが特徴だ。
無限リストには上限も下限もない。

248 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:40:01.75 ID:3RkkmY6H.net]
RubyのBigNumも上限も下限もないな。
docs.ruby-lang.org/ja/2.2.0/class/Bignum.html

あえて言えばメモリサイズによる制限は受けるが、
じゃあメモリサイズいっぱいの桁数の数値(何桁だと思う?w)を
全部テストするのかとw

249 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 23:58:48.20 ID:fuTkOmr9.net]
ほら頭悪いでしょ

250 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:01:57.95 ID:57ESL53T.net]
>>245
仕方ないんじゃないかな?
馬鹿なんだからそういういちゃもんを付けるしかないんだと思うよ。

251 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:04:49.79 ID:fpUAqgyP.net]
そもそもテストを行う実時間の問題だから
組合せ爆発でも起こしたら、本当に何万年とか
かかってしまうのがテストなんだよね。
仕様書に上限や下限をつけた所でなんの対策にもなっていない。

252 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:08:30.87 ID:LbxBbQld.net]
下限や上限が決まっていたら、閾値界隈のテストできるでしょ
下限も上限も決まってなかったら本当にテストできない
下限も上限も決めないのは馬鹿

253 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:24:19.96 ID:4VbjelCP.net]
今話をしてるのはテストを行う実時間の話。
上限や下限が出てきたのは「整数」ではだめって文脈からだろ。

整数に上限や下限をつけた所でその範囲のすべての整数の
数は膨大なのだからテストに何万年もかかる。

そういう話をしてるのよ?わかる?

254 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:34:26.00 ID:LbxBbQld.net]
閾値近辺だけテストすりゃよいだろ
そりゃ君はクライアントに無限大を約束するらしいから無限のテストが必要なのかもしれないが
それは君だけの話であって
我々は上限を設けて、その範囲内でだけ動くことを約束するって言ってるんだから
閾値のチェックだけで済むわけだ

255 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:42:42.22 ID:xWVfr+QL.net]
ちょっとレベルが低過ぎる。
まったく意味がない話になってるからテストの話はいい加減にしろ。
オブジェクト指向設計と関係ないし。



256 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:55:16.41 ID:4VbjelCP.net]
>>250
上限下限がないならば、閾値の内側だけを調べればいいんだよ。

257 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 00:57:20.52 ID:4VbjelCP.net]
もう少し丁寧に書くわ

上限下限があるから、閾値近辺をテストしなければならないのであって、
上限下限がないならば、閾値近辺というのがそもそも存在しないので
任意の値でテストすれば十分

258 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:06:46.65 ID:LbxBbQld.net]
そんで、メモリが足りなくて動かなかった時のクライアントへの説明はどうなるの?
休日出勤するの?
入力の段階で「数値が大きすぎます、100未満にしてください」って弾いとけば
クライアントからしても何がダメだったか明確だろ

259 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:09:56.34 ID:4VbjelCP.net]
> そんで、メモリが足りなくて動かなかった時のクライアントへの説明はどうなるの?

なんでメモリの話が関係してくるんだ?
いみわからんwww

260 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:10:26.17 ID:4VbjelCP.net]
> 入力の段階で「数値が大きすぎます、100未満にしてください」って弾いとけば

ある数値を二乗する関数があったとして
「数値が大きすぎます、100未満にしてください」wwwww

261 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:11:03.14 ID:V5ojovFM.net]
>>253
整数という条件だったら 0 とその前後、それから
SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, SHRT_MIN, SHRT_MAX, USHRT_MAX
INT_MIN, INT_MAX, UINT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX
LLONG_MIN, LLONG_MAX, ULLONG_MAX とその前後の48パターンくらいはテストしとけ

262 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:13:46.42 ID:4VbjelCP.net]
>>257
上限下限なくてもそれだけやればOKですよねwww

263 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:42:13.61 ID:V5ojovFM.net]
>>258
> 任意の値でテストすれば十分

こんな事言うより100倍マシ

264 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 01:56:10.56 ID:4VbjelCP.net]
>>259
上限や下限がある場合は、その限界値で
動作を変えないといけないからテストする必要があるんだよ。

数学的に考えろ。nとn+1で何も違いがないならば、
そこはテストする必要ないんだよ。

265 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 02:08:57.65 ID:V5ojovFM.net]
もういいよ



266 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 02:20:08.63 ID:4VbjelCP.net]
いいならレスするなよw

267 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 02:53:40.31 ID:aDP5A1Yp.net]
結局>>217のECPと>>241のFormal methodsで済むところを
何レスも消費するんだから君たちはw

268 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 07:25:35.73 ID:G3tCMEbl.net]
オブジェクト指向はなんの品質も上げないカス技術って現実を直視しろよ

269 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 10:24:41.45 ID:OvJcIN1K.net]
>>264
じゃあ、どの技術が良いの?

270 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 12:36:11.91 ID:PZUaPR2n.net]
c++のオブジェクト機構をカス技術と言うのなら微妙にYes.
品質の向上≒自由度の制限って関係が成り立つので
c++は自由度が大きすぎて使用者が意識して制限しないと
容易に巨大なウンコが出来上がる

271 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:01:13.49 ID:c8+13QXR.net]
> オブジェクト指向はなんの品質も上げないカス技術って現実を直視しろよ

>>264 みたいなバカが使うとね w

272 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:17:35.90 ID:LK0McYVX.net]
>>264

煽るのもいい加減にしろ
己のキンタマでもかいて、糞して寝ろ

273 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:37:19.72 ID:TPst5vg3.net]
>>265
プログラムを組める設計書や仕様書を書く技術
設計書や仕様書通りにプログラムを組む技術

雑誌やインターネットには載ってないけど
一番大事な技術です

274 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:39:23.11 ID:xWVfr+QL.net]
具体的な例で意見交換しようとしてもさぼってUMLすら書かない。
抽象的な話をすると言葉尻と曲解に基づいて無意味な言い争いをする。
なかなか意味のある会話にならないなあ。

少し前提に帰ると設計のときはUMLあるいはなんらかのモデリングをしてるよな?
モデリングすらしてないで書き込んでる中学生がちらほら見受けられるのは生暖かく見守るとして
しっかりモデリングしてる印象を受けないんだが。

275 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 13:41:55.04 ID:xWVfr+QL.net]
>>269
>>264-265のやり取りに対する回答になってない。
まともなコミュニケーションすらできない中学生がいきがってるのはかっこ悪いぞ。



276 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 14:01:30.68 ID:3R6cnOzA.net]
>>254
なぜテストする側の都合で制限かけるんだ?休日出勤したくないから機能制約かけます?
話題にあった整数だってint全件でも2^32だぞ

drawText(String str)
str : ラテン語小文字(a - z)10文字まで
お望み通りすごい制限つけたぞ、10文字しか入力できない、しかもラテン小文字のみw
でテストケースは26^10
どっちが多いか分かりますか?

取りうる範囲の広さなんて関係ないんだよ
現実的に全件網羅テストできる場合の方が少ないんだから
限定的な組み合わせで最大限の効果があるものは何か?ってのを考えるのが筋だろ

277 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:08:06.73 ID:OvJcIN1K.net]
>>269
どゆこと?

オブジェクト指向の設計をしないとして、どういう手法の設計が
良いのか聞いたんだけど。

それと一番なのは人間を上手に使う技術でしょ。
雑誌やインターネットには載ってないけど、皆知ってることだよ。

278 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:40:36.20 ID:xWVfr+QL.net]
>>273
人間を上手に使う技術が設計で一番大事って…。
無能を何人管理しても無駄でしかないのが設計というもの。

279 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:45: ]
[ここ壊れてます]

280 名前:03.44 ID:xWVfr+QL.net mailto: いい設計は芸術。
人月管理で考えてるようじゃお話にならない。
[]
[ここ壊れてます]

281 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:52:47.06 ID:TPst5vg3.net]
>>273
なんて言うんかな?
オブジェクト指向設計をしないでってのが正確かも
こいつはソフトウェア開発の歴史の中でもゴミ中のゴミ

普通に仕様書(こう動きます)書いて
データフロー図書いて
処理の入力、出力書いて
データのフォーマット(DB含む)書いて
シーケンス図とか状態遷移図書いて
って昔ながらのソフトウェア開発だけでいいよ
クラス設計するな
もしくは最後に回せ

それだけでうまく行くと思う

282 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:53:19.52 ID:TPst5vg3.net]
>>275
それじゃ金出す人いないよ(笑)

283 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:56:54.09 ID:xWVfr+QL.net]
>>276
それじゃ複雑な機能の整理が難しいんだよ。
ちょっと前に出てた>>129-130に対する設計案を作ってごらん。

284 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 15:57:42.23 ]
[ここ壊れてます]

285 名前: ID:xWVfr+QL.net mailto: クラスじゃなくてモジュールなりなんなり好きな単位に区切っていいから。 []
[ここ壊れてます]



286 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 16:55:55.15 ID:iJVPPkrY.net]
作ってごらんとか

287 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 17:23:11.56 ID:OvJcIN1K.net]
>>274
有能だろうが無能だろうが面従腹背されたら何の成果も出せない。
部下の能力・特性に合わせて仕事を振って上手に使うことこそが
一番大事な技術。設計書とか仕様書の書き方はその次。

>>276
ゴミ中のゴミが世の中の主流になれるわけがないだろw

もしかして自分がオブジェクト指向設計ができないからって
ディスってるだけじゃないだろうな?

288 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:20:54.89 ID:G3tCMEbl.net]
>>281
少なくともオブジェクト指向でテスト項目が減るとか品質が上がるとか言ってたクズよりは理解はしてると思ってまつよ

289 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:37:03.25 ID:xWVfr+QL.net]
>>281
無能な奴を従わせても無意味なんだよ。
それにその口調だとお前自身は設計能力がないだろ。
能力がない奴ほど人の管理と言うよね。

290 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:39:05.80 ID:xWVfr+QL.net]
>>282
で、>>278の回答は?
口だけかよw

291 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 18:57:10.17 ID:OvJcIN1K.net]
>>282
だったら、全否定の具体的な根拠を言ってみ。
理解してるなら当然、得意・不得意を理解してるだろうから簡単だよね。

>>283
どんな分野だろうと組織で仕事をするなら人間の制御が一番難しくて
重要なのは言うまでもない。
あんた設計以前に働いたことないのか?
それとも部下をもったことないのか?

292 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:02:51.57 ID:xWVfr+QL.net]
>>285
あのさー、もともと>>264-265の流れだろ。
設計技術について話してるのにどうして「組織で仕事」とかって出てくるの?
お前さあ、コミュニケーション能力が弱いよ。
そんなんでよく「組織で仕事」とか偉そうに言えると呆れる。

293 名前:デフォルトの名無しさん [2016/06/03(金) 19:14:10.84 ID:eHY6P3Rv.net]
設計てクラス構成まで考えないなぁ
業界によるんだろう

294 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:17:02.92 ID:xWVfr+QL.net]
>>287
クラス構成を考えないオブジェクト指向設計プロセスなんて聞いたことないけど
誰が提唱してんだ?

295 名前:デフォルトの名無しさん [2016/06/03(金) 19:28:25.70 ID:eHY6P3Rv.net]
>>288
誰も提唱してないと思うけど
Webだからかapiの仕様決めたら実装に入っちゃうな
ドワンゴやtwitterの活用事例なんかを聞いてもクラス構成まで設計するとはあんま聞かないからwebは緩いんだと思う



296 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:36:08.48 ID:xWVfr+QL.net]
>>289
単純なWebシステム限定では。

297 名前:デフォルトの名無しさん [2016/06/03(金) 19:44:25.76 ID:eHY6P3Rv.net]
>>290
権限周りは割りと複雑だなー
仕様自体はしっかり詰めといてるし
Scalaの表現力と型安全性のおかげで割りと綺麗になってるしdocとテストは書いてる
関数型の設計てのは聞かないし

298 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:48:21.01 ID:xWVfr+QL.net]
>>291
権限周りが複雑だと思ってるだけで客観的に見たら大したことないんだろ。
複数のクラスが絡み合うような状況ならクラス設計が必要にならない訳がない。

299 名前:デフォルトの名無しさん [2016/06/03(金) 19:52:01.46 ID:eHY6P3Rv.net]
>>292
ニコニコ動画の権限周り書き直した人もクラス図書いたとは聞いてないな
継続モナドを使って実装したって言ってた

300 名前:デフォルトの名無しさん [2016/06/03(金) 19:52:37.00 ID:eHY6P3Rv.net]
認証だった

301 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:53:32.24 ID:aDP5A1Yp.net]
TDD・BDDでやってるからか最初にわざわざクラス図書いても結局かけ離れたものになる

302 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:54:00.85 ID:xWVfr+QL.net]
>>293
設計書は文章だけってこと?
図は?

303 名前:デフォルトの名無しさん [2016/06/03(金) 19:57:21.13 ID:eHY6P3Rv.net]
表は書いたけど図は書いてない(うちの場合)
インフラ周りの構成は図を書いてる

304 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:57:58.75 ID:xWVfr+QL.net]
>>295
複数人が関わる場合、何かなけりゃ協業は不可能だと思うんだけど…。
どうしてるの?

305 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:02:05.59 ID:aDP5A1Yp.net]
強いて言うならコンポーネントレベルでパッケージ階層化かな
ここに関してはドキュメントあるし更新もされる



306 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:02:18.65 ID:OvJcIN1K.net]
>>286
>>269,>>283の流れだけど?
元々皮肉のつもりだったんだけどねw

てかお前のほうこそコミュ症じゃね?w

307 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:07:09.66 ID:xWVfr+QL.net]
>>299
公開されてるメソッドも分からないのにどうすんだ?

308 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:09:46.25 ID:xWVfr+QL.net]
>>300
意味不明。
皮肉だかなんだか知らないけど、そもそもスレタイを関係ない会話をするのは
ほめられたことじゃないからやめようね。

309 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:13:31.79 ID:xWVfr+QL.net]
>>297
そんな会社もあるのか…。
多少なりとも複雑なプロセスがあるなら文章だけで正確に表現するように工夫するより
モデリングしちゃったほうがむしろ簡単じゃないかな。

310 名前:デフォルトの名無しさん [2016/06/03(金) 20:13:43.10 ID:eHY6P3Rv.net]
guiプログラミングならクラス図欲しいかも
でもサーバーって状態が少ないからね
コントローラーがサービスをサービスがdaoを呼ぶみたいに関数を呼び感じになりやすいし
状態扱いたいならactorとか使うかな

311 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:17:06.64 ID:aDP5A1Yp.net]
>>301
公開されてるメソッドには全部ユニットテストあるし
結合テストにもユーザーシナリオを網羅するようにはしてる

312 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:19:12.10 ID:xWVfr+QL.net]
>>305
メソッドの一覧は?って話だぞ。
他の人が担当しているクラスを呼び出したいこともあるだろ。
メソッドが決まってなけりゃ作れないだろ。
クラスを作る側だって何を用意すりゃいいのか分からないし。

313 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:26:19.40 ID:aDP5A1Yp.net]
>>306
コンポーネント間のAPIはわかりやすくするようには努力してる
その下のクラスは基本単一責任だからそのクラスにどんなメソッドがあるかは何となくわかる
そもそもクラスやメソッドなんてリファクタリングでどんどん変化してくものだし

314 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:31:12.76 ID:xWVfr+QL.net]
>>307
プログラムって何となくでどうにかなるものじゃないだろ。バグ量産だと思うぞ。
どんどん変わってちゃ工数が増えるし。

開発チームは何人くらいで期間はどのくらい?
開発者が多いプロジェクトでリファクタリングでどんどん変化するというのは不可能だと思うんだけど。

315 名前:デフォルトの名無しさん [2016/06/03(金) 20:35:06.28 ID:7emugrZg.net]
そのためのテスト
後そのためのレビュー?



316 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:42:25.76 ID:aDP5A1Yp.net]
一つのコンポーネントにつき5、6人のチームだけど2つのチームに入ってるメンバーもいる
アクティブに開発されてるコンポーネントは今は3つくらいかな
スクラムなんで2週間のイテレーションをぐるぐる回す
もちろんレビューもあるけど、そもそもテスト全部通らないとコミット&デプロイできないようになってるから
バグ量産ということはないかな

317 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:42:40.50 ID:xWVfr+QL.net]
>>309
テストが自動化されていてもコーディングを変更する手間はかかるし
メソッドが変わればテストも変更必要になるんだが。

318 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:45:59.26 ID:xWVfr+QL.net]
>>310
コンポーネントの単位は?
クラス、コンポーネントをまたがる場合、クラスが事前に明確になってないのに
どうやって開発するんだ?
テストは何を見て開発するのか?

319 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:49:30.78 ID:OvJcIN1K.net]
>>302
話膨らませてきたのおまえだろw
ほんとコミュ症だなw

今後は無駄に突っかかってくるの辞めようねw

320 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:51:52.67 ID:xWVfr+QL.net]
>>313
「人の管理」だの「組織の仕事」だのお前以外の誰が言ってんだよ?
読み直してから書き込めよ。
頭おかしい奴みたいだから相手するのやめる。
レスつけられても無視するから。

321 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:55:39.30 ID:c8+13QXR.net]
外部に公開してるメソッドがころころ変わるとか
どうみてもニートが妄想全開で書いてるだけ
そもそも TDD やってたらテストから書き直しになるしな

322 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:59:39.13 ID:aDP5A1Yp.net]
>>312
コンポーネント化の判断基準は他のプロジェクトでも再利用できるんじゃね?(するとは言っていない)
最初にわかればいいんだけど後々分割することもあった。多分これが一番労力かかる

一つのユーザーストーリーがそのままテストになる。

>>315
もちろんテストもリファクタリングするけど
それが負担になるような現場はテストの書き方がなってないと思うよ
xUnit test patternsを読むべし

323 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:05:16.92 ID:PB6+Z1HI.net]
>>284
>>282じゃないが将棋は手の評価ロジック自体が本体であり全てみたいな感じだからOOPに向いてないと思うよ
OOPL前提で書くにしても駒に合法手の問い合わせなんかしない、盤面も移動範囲も整数配列でいい
以前遊びで組んだのはこんな感じだった

思考モジュール
※ルールと棋譜DB盤面テーブルなどをコンポジットしたクラス
・盤面テーブル =11×11の整数2次元配列+手駒リスト
→※駒の種別や盤外、効きの有無、成り、どちらの駒か等全てここにビットフラグで持つ
→9×9でないのは外周を外周を示す駒で埋める事で外周かどうかの判定を省くため
・ルール判定各種
→※局面によってルールの適用の要不要があるのでそれぞれ独立して持つ
→・駒の移動範囲テーブル
→・各種禁じ手判定など
・棋譜DB
→・定石を抽出して探索の枝切りや手抜きに使う
・評価関数
→※思考の本体であり盤面テーブルから次の手を探索する
→・ルール、DB、盤面テーブルは全てここで使う
・探索ツリー
→評価関数が吐き出した結果の保持用
→手番ごとに1から探すのは無駄なので探索結果はツリーの状態で保持

UI(表示)モジュール
※こいつらは表示専用でルールや思考ロジックには感知しない
・駒クラス
・盤クラス
・駒台クラス
など

UI側はともかく思考側は細かくクラス分けするメリットは殆ど感じられない、OOPの例題としては向いてないと思うんだ
これが実装中にルールに仕様変更の入るボードゲームなら話は多少違うだろうが…

324 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:10:57.00 ID:G3tCMEbl.net]
リファクタリングなんて勝手にやって既存処理ぶっ壊したら
いいわけでけへんで?

325 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:12:54.17 ID:xWVfr+QL.net]
>>316
Addison-Wesleyから出てる奴?
読んでみるかな。そこそこ高いから立ち読みしたいけど日本語版はあんの?

クラスのメソッドが変わった場合に対応したテストの書き方ってまったくイメージできないけど
どんなことを意識しろって書かれてるんだ?



326 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:19:18.40 ID:xWVfr+QL.net]
>>317
クラスにしたくなけりゃしなくていいと何度も書かれているけど…。
クラスにしたくないならモジュールでも何でもいいって書いたし。

モジュール?の関連性と処理フローは?
こんな機能があるよってことは分かるけど、全体としてどう動作しているか見えない。

327 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:26:41.22 ID:LbxBbQld.net]
ここまで詳細に書いてもらったらもう十分でしょう
いったい何を期待しているのかしらないが
お前の期待に応える義務は誰にもないしな

328 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:31:23.42 ID:xWVfr+QL.net]
>>321
いや分かんねえよw
むしろ構成要素間の関係を考えるのが設計の本番といっていい。
機能列挙は簡単。

329 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:32:00.28 ID:xWVfr+QL.net]
>>321
ってか、機能列挙はすでにされてるよ。

330 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:34:40.38 ID:4VbjelCP.net]
>>318
> リファクタリングなんて勝手にやって既存処理ぶっ壊したら
> いいわけでけへんで?

それはリファクタリングに限ったことか?

例えば、バグ修正を勝手にやって既存処理ぶっ壊して
言い訳できるか?

お前が問題にしているのは「リファクタリング」じゃないよな?

331 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:43:36.54 ID:LbxBbQld.net]
>いや分かんねえよw

自分で考えれば?
自分が理解できるまで説明を受けれて当然という考えがバカ
そんな義務は誰にもない

>むしろ構成要素間の関係を考えるのが設計の本番といっていい。

将棋AIでそれを言い出すお前の頭が心配だ

332 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:47:24.06 ID:G3tCMEbl.net]
>>324
バグ修正は説明が付くじゃん
リファクタリングはやってぶっ壊したら「は?」って言われる

333 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:48:12.67 ID:fYfYnZgZ.net]
>>316
リファクタリングの意味すら理解してないのかよ w

リファクタリングとは、ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善することです。
objectclub.jp/technicaldoc/refactoring/refact-what

外部に公開するメソッド変えたらテストの振る舞いも変わるからそれはリファクタリングじゃねーよ
どうせ TDD とかも用語だけ知ってるってパターンだろ

334 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:48:52.50 ID:xWVfr+QL.net]
>>325
うんうん。お前には設計できないことは分かった。
答えられないなら答えなきゃいいじゃん。無理やり回答を求めようとは思ってないし、そもそもスレのやり取りなんだからそれが常識。

335 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:51:36.54 ID:fYfYnZgZ.net]
>>326
さすがに勝手にバグ修正してデグレードしたら言い訳じゃすまんよ...

マジでやらかした奴がいて客に説明するのに往生したわ



336 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:52:03.28 ID:4VbjelCP.net]
>>326
> バグ修正は説明が付くじゃん

大したバグじゃないけど、バグがあったから、これはいけないと
思い勝手に修正しました。その結果、既存処理を壊しました。


で、お前責任取れるの?

337 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:52:53.57 ID:G3tCMEbl.net]
>>327
いやピンポイントでリファクタリングって無理やろ
構造変えるために本来触らんでいいとこまで手を伸ばすじゃん?
そこでバグらんはずのとこまでバグるのが怖いのよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<386KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef