[表示 : 全て 最新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]
オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ
オブジェクト指向は役割でオブジェクトに分割するものであって
処理で分割するものではない。

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
いやピンポイントでリファクタリングって無理やろ
構造変えるために本来触らんでいいとこまで手を伸ばすじゃん?
そこでバグらんはずのとこまでバグるのが怖いのよ

338 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:53:51.96 ID:G3tCMEbl.net]
>>330
エヘ、やっちゃった(笑)
でだいたいおk

339 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:57:41.98 ID:G3tCMEbl.net]
リファクタリング→破壊は説明つかんな
既存処理破壊は客も何信じていいかわからんなるし
既存処理破壊の可能性があるぐらいならコピーコード作れって客のが多いぐらい

340 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:00:50.66 ID:4VbjelCP.net]
>>331
いらん所まで手をのばすなよ。

バグを修正したり、機能追加するときに
(当然だが許可を得て、これらの作業をしている)
そのときにリファクタリングするんだよ。

どうせテストしてちゃんと動くことを確かめるんだから。

341 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:02:11.77 ID:4VbjelCP.net]
>>333
バグ修正→破壊なら、説明つくのか?

例えば病気を治すために手術をしたら
医療ミスして死にました。

エヘ、殺っちゃったよで許されるとでも?

342 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:03:56.40 ID:4VbjelCP.net]
>>331
> そこでバグらんはずのとこまでバグるのが怖いのよ

そこでバグらんはずのとこまでバグる原因を
取り除くのもリファクタリングの目的の一つなんだよ?

343 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:09:56.36 ID:fYfYnZgZ.net]
>>331
> そこでバグらんはずのとこまでバグるのが怖いのよ
リファクタリングするにはほぼ自動テストが必須
でないと俺も怖くて触れないよ
>>316 はそのテストを変更するとか言ってるからバカにされてるってだけのこと

344 名前:デフォルトの名無しさん [2016/06/03(金) 22:12:30.18 ID:xWVfr+QL.net]
>>337
単体テストは内部もテストするだろ?
そこはどうするんだ?



345 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:13:29.06 ID:LbxBbQld.net]
将棋AIで設計といえば

>→9×9でないのは外周を外周を示す駒で埋める事で外周かどうかの判定を省くため

こういうものとかに代表される、アルゴリズムとデータ構造に興味を持つのが普通
各要素の関連性などどうでもよく、強いて言

346 名前:ヲば
すべての要素がすべて関連性を持っていたとして、だから何?って話
モノリシックな方が速く動くなら、そうするし、そうしないかもしれないし、どちらにせよ本題ではない
前々から言われているとおり、題材が悪い
[]
[ここ壊れてます]

347 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:13:41.97 ID:G3tCMEbl.net]
さわらぬ神に祟りなし!

348 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:14:35.21 ID:xWVfr+QL.net]
ところで、質問への回答がほしいけどどうなの?
クラスのメソッドが変わった場合に対応したテストの書き方ってまったくイメージできないけど
どんなことを意識しろって書かれてるんだ?

本に書かれているなら読んでみるけど、あやしいように感じ始めてもいる…。

349 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:16:55.20 ID:xWVfr+QL.net]
>>339
構成要素間の関係を示すための図はUMLにもあるんだが…。
知ったかぶりは恥ずかしいからやめとけ。

350 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:18:54.91 ID:LbxBbQld.net]
将棋AIにおいては重要でない
題材が悪い
と、言っているわけだが

351 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:20:09.56 ID:xWVfr+QL.net]
>>343
Apery

352 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:21:37.94 ID:4VbjelCP.net]
>>337
テストのリファクタリングはするぞ?
というか、テストコードが正しく動くかどうやって確かめると思ってるんだ?

テストコードのテストを書く?そんなことを言い出す馬鹿が本当に居るから困りものだがw
テストコードはテストコードでテストしない。その代わりにテストコードは人間が目視で読む。

テストコードというのは基本的に、○○をしたら××になる。というシンプルな
形式になるので、ちゃんとしたテストコードであれば可読性は高く目視で読んでも
負担にならない。というか負担にならないようすることが必須。

最初からシンプルにかけていればテストコードもこれ以上リファクタリングすることもないが、
そうでなければ、テストコードであってもリファクタリングする。

通常のコードは仕様変更によって設計変更がありえるから、リファクタリングすることで
実装を変化させることが有るのだが、テストコードではシンプルにする以外のリファクタリングは必要ない。
仕様変更があれば消すだけ。ここに通常のリファクタリングとテストコードのリファクタリングの違いが有る。

353 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:38:20.56 ID:hDVrd4N5.net]
思考アルゴリズムが書けないなら、口を出さないor邪魔にならないところだけ設計するんやで
みんなそれが分かってるからお前の欲しいレスが返ってこないんやで

ワイは将棋の思考AIなんて書けんが
1. ゲームサーバと思考AI/人間のクライアント間で通信を確立
2. 最初の盤面(持ち駒含む)をクライアントに送信
3. ゲーム開始。手番になったクライアントに指し手を要求
4. クライアントから指し手を受け取ってルール違反でないかチェック
5. もう一方のクライアントに指し手を教え、3に戻る
6. 指し手の代わりに投了メッセージが来たら終了
大まかな流れがこんな感じになるから後は任せるわ、で終わる話やで

誰も「ぼくのかんがえた最高の将棋モデル」なんていらんのやで。そんなの参考にする人に思考AI書くのなんて任せられんわ
思考AIの中身も書けんのにこのクラス使えとか階層構造はこうとか指図するような真似はしたらあかん
みんなそれが分かってるからお前の欲しいレスが返ってこないんやで

354 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:41:38.88 ID:xWVfr+QL.net]
>>346
電王戦を知ってればそんな内容は書かないんだが…。
前半部でお前が言ってるとおり、分からないことには口を出さないor邪魔にならないにしような。



355 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:45:37.80 ID:hDVrd4N5.net]
>>344 aperyのソース読んでどこがOOなのか説明してみ?
ちなみにaperyがOOじゃないと前スレの951が指摘してんのに何の反応もしてへんなお前
ttp://echo.2ch.net/test/read.cgi/tech/1463663267/951
まさかクラスを定義してるからOOだなんて言わへんよな?OO界隈から殴られるもんな?

356 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:49:56.25 ID:xWVfr+QL.net]
>>348
だからさ、全然分かってないことについて語んな。
俺がお前に言いたいことを>>346の前半にお前自身が書いてくれているからよく

357 名前:ヌみ直せ。 []
[ここ壊れてます]

358 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:56:41.85 ID:fYfYnZgZ.net]
>>338
ひょっとして TDD のテストコードと単体テストのコードの区別もついてないの?

>>345
テストコードのリファクタリング?
テストコード書いたこと無いだろ w

359 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 22:59:59.68 ID:xWVfr+QL.net]
>>350
ん?単体テストはどうやってるんだ?

360 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:05:59.10 ID:fYfYnZgZ.net]
>>351
普通にホワイトボックステストもやってますがなにか?

361 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:06:31.08 ID:4VbjelCP.net]
>>350
お前が、和田卓人(t_wada)さんより優秀だと認めることが
可能な証拠があるなら信じてやるよw

d.hatena.ne.jp/t-wada/20100228/p1
テストのリファクタリング

第20回 テストコードの重複はアリかナシか
gihyo.jp/dev/serial/01/tdd/0020

362 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:10:48.99 ID:xWVfr+QL.net]
>>352
自動テストなのだとしたらコードを修正したらテストスクリプトの変更が必要になるだろ。

363 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:11:56.40 ID:xWVfr+QL.net]
>>353
誰だよそいつって思ってる人がほとんどだと思う。
自演?

364 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:17:00.62 ID:z+8MoLFP.net]
消費税引き上げ先送りも決まり,日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね

今度の黒田砲は緩慢に効いてくる
海馬がくる,海馬がくる



365 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:19:02.08 ID:4VbjelCP.net]
>>355
誰だよって言った時点で、
お前がモグリだって確定だわw

TDDとかテスト関連を真面目にやってる人なら
知らないわけ無いだろ。

366 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 23:20:02.00 ID:4VbjelCP.net]
「TDD 第一人者」で検索したら一番目に出てきたわw






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

前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