トップページ⇒tech
991コメント354KB

   オブジェクト設計&デザパタ  2

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2012/02/12(日) 01:58:07.74
   オブジェクト設計&デザパタ     
http://toro.2ch.net/test/read.cgi/tech/1272806908/
0002デフォルトの名無しさん2012/02/12(日) 02:04:04.50
YAGNI

消費税率は変わるわけがない
0003デフォルトの名無しさん2012/02/12(日) 02:06:51.54
YAGNI

消費税率が変わる前に、別のソリューションが見つかるかもしれない

だろ
0004デフォルトの名無しさん2012/02/12(日) 02:08:45.51
YAGNI

マジックナンバーでいい
0005デフォルトの名無しさん2012/02/12(日) 02:11:34.72
>>4
これは本質わかってなさげでネタとしても
イマイチだな
0006デフォルトの名無しさん2012/02/12(日) 02:17:07.63
なんでお前らそんな専門用語知ってるんだよ。いちいちぐぐらないとついてけないぜ
0007デフォルトの名無しさん2012/02/12(日) 02:18:16.28
YAGNIが必ずしも正しいと思っているなら馬鹿。
0008デフォルトの名無しさん2012/02/12(日) 02:18:51.87
日本語でおk
0009デフォルトの名無しさん2012/02/12(日) 02:21:22.81
>>4
マジックナンバーで思い出したけど、昔レビューでマジックナンバーやめて定数にしろって
指摘したらNUM_1、NUM_2って具合に全部NUM_+元の数値って名前で定数作ってきた
強者プログラマーがいたよ。
0010デフォルトの名無しさん2012/02/12(日) 02:21:43.83
だから、ランチなんたらだろ?
全ての場合に有効な戦略が無いわけだ

じゃあ臨機応変に戦略を変えようって?
それも戦略のひとつとして見れるから全ての場合に有効ではない

どうすればいいんだー><
0011デフォルトの名無しさん2012/02/12(日) 02:25:30.13
>>10
ノーフリーランチ定理?
ITの開発って時点で十分に特殊化されてるからYAGNIでも充分やれる
0012デフォルトの名無しさん2012/02/12(日) 02:27:07.98
>>11
本質が分かってないな。それでも理系かよ

問題の集合を限定したって、その全てに対して有効な戦略は無いの
0013デフォルトの名無しさん2012/02/12(日) 02:27:37.64
>>12
完璧でなくても十分にやれるだろw
0014デフォルトの名無しさん2012/02/12(日) 02:28:01.91
これは、株に通じるのな

株って過去のデータから予測すんじゃん。でもその予測があってるかどうかって確かめようが無いの
0015デフォルトの名無しさん2012/02/12(日) 02:28:13.26
必要ない機能が沢山付いているフレームワークは
YAGNIに反するものだが、必要ないと思っていたものが
あとで必要になることはよくあるので、最初に考えておくのもありだろう。
0016デフォルトの名無しさん2012/02/12(日) 02:29:16.33
>>13
まあ俺も現実には十分やれるって思ってるんだけど
実は無理というか、信じるしかないことなんだよ

株も過去データを解析して良さそうって思っても最後は信じるしか無いの
0017デフォルトの名無しさん2012/02/12(日) 02:30:02.36
YAGNIとやら知らないけど

同じ労力で実装できるなら拡張性の高いほうを選ぶな。まあ外部に晒さない程度に
0018デフォルトの名無しさん2012/02/12(日) 02:31:53.79
>>15
結論に飛びつき過ぎだ
必要だったからFWに入ったんだ
利用者の一人に過ぎないおまえが必要と感じなかったことは関係ない
0019デフォルトの名無しさん2012/02/12(日) 09:41:32.01
>>17
同じ労力なんてありえないけどね
どうやって単体試験通すんだっていう
場所によっては仕様と関係ないコードは全部廃棄になる可能性だってある
if文1つ1つに仕様書との関連を求められるところもある

なんかVSのコードカバレッジ機能がついてからそういうの求められるの多くなってきた
0020デフォルトの名無しさん2012/02/12(日) 09:44:02.23
汎用性が増せば当然とりうる値の範囲も広がって単体試験が無駄に大変になるだけっていう
値が限定できるってことは不具合も限定できるってことぐらいはプログラマとして知っておくべき
作って終りなら汎用性重視でもいいけどね
0021デフォルトの名無しさん2012/02/12(日) 10:11:39.34
>>20
それこそYAGNIだ。必要ないテストはしない。
0022デフォルトの名無しさん2012/02/12(日) 11:05:35.10
>>19
だからさー、そんな仕様書重視してるところのことは例外として考えろよ。
デザパタも糞も一切の議論が成り立たなくなるんだから。
0023デフォルトの名無しさん2012/02/12(日) 11:49:09.98
>>22
そうじゃないところなんてそのうち淘汰されるからそれこそ無意味
ついでにお前も淘汰対象
0024デフォルトの名無しさん2012/02/12(日) 12:18:36.61
>>23
じゃぁその時に後悔しますwww
0025デフォルトの名無しさん2012/02/12(日) 12:20:21.61
>>24
それでいいんじゃない
現時点で仕様書いい加減にしてるところが残ってることに驚きだけど
0026デフォルトの名無しさん2012/02/12(日) 12:23:39.52
仕様変更がどの程度発生したか、拡張にともなう書き直しがどれだけ発生したか、
トータルコストが当初の想定に対してどうだったか。
アジャイルな方法論を採用する場合こそ、そういうメトリクスが必須。
効果測定の欠けたアジャイルは「場当たり無秩序開発」を体よく誤魔化してるだけ。
0027デフォルトの名無しさん2012/02/12(日) 12:24:22.93
> 仕様と関係ないコードは全部廃棄になる可能性だってある
> if文1つ1つに仕様書との関連を求められるところもある
いまどき、そんなところが残ってることに驚き。
まぁ儲けなくていいところはのんびりしてるんだろうな。
0028デフォルトの名無しさん2012/02/12(日) 12:29:11.01
>> 仕様と関係ないコードは全部廃棄になる可能性だってある
>> if文1つ1つに仕様書との関連を求められるところもある
>いまどき、そんなところが残ってることに驚き。

驚く奴がいることに驚き。
0029デフォルトの名無しさん2012/02/12(日) 12:33:41.24
いまは仕様書重視だろ
N○Cでも富○通でも三○でも同じような開発方式とってた
日○はもとからアフォかってほど仕様書キチガイだし
もう残ってるとこそんなないだろ
これ以外の方法とってたらプログラマが実は余計なコードばっかり書いてることがわからないから
無駄な金払い続けることになる
0030デフォルトの名無しさん2012/02/12(日) 12:38:15.73
>>29
どこも、儲け出さなくていいからのんびりしてるよね。
0031デフォルトの名無しさん2012/02/12(日) 12:40:35.51
だからさ、仕様書云々は別のとこでやってくれよ
0032デフォルトの名無しさん2012/02/12(日) 12:42:39.70
仕様書とこのスレの内容が切っても切れない関係ということがまったくわからない奴が語る
設計思想なんてゴミクズ以外なにものでもないだろ

まったく同じソースだって仕様書次第ではそれはゴミにもなりうるってことをプログラマなら知っておくべき
0033デフォルトの名無しさん2012/02/12(日) 12:44:21.67
>>30
不具合あってもちょこちょこアップデートすりゃいいとこはノリが軽いよね
0034デフォルトの名無しさん2012/02/12(日) 12:46:38.19
仕様書って後から分かるんだから
先に作るだけ無駄だよ。
0035デフォルトの名無しさん2012/02/12(日) 12:46:58.19
>>33
不具合がなければおk
ですんじゃうところはいいな。
0036デフォルトの名無しさん2012/02/12(日) 12:56:02.23
金でプログラマ動かすの大変だよな。凄いプログラマが趣味で独りで書くのが一番開発効率良さそう
0037デフォルトの名無しさん2012/02/12(日) 12:57:05.14
それでWordとかExcelとか作れればいいんですけどね
0038デフォルトの名無しさん2012/02/12(日) 12:57:36.33
仕様書仕様書言ってる人はこのスレの何が不満なんだ?
最初から仕様書上の設計って前提で話を進めれば何も問題ないじゃん

仕様書とコードの対応が〜とかいうならリファクタリングスレにでもいけよ
0039 ◆QZaw55cn4c 2012/02/12(日) 12:57:56.04
>>29
日立は試すからなあ‥‥‥
0040デフォルトの名無しさん2012/02/12(日) 12:58:31.86
お前はリファクタリングしてはじめて仕様書に目を通すのか?w
開発でみんなから邪魔だって言われてるよ君
0041デフォルトの名無しさん2012/02/12(日) 12:59:35.10
>>36
え?プログラマ動かすには金が一番楽だけど?
100万払えば、たいていのプログラマはどんなくだらないプログラムでも
一人月分の仕事してくれるよ。
0042デフォルトの名無しさん2012/02/12(日) 13:00:44.75
結局、このスレの住民は仕様書が不出来なことにつけこんで
自分の好きなオナニーしてただけでしたってことが時代が変わったことでバレちゃった
って話でしたねニヤニヤ
0043デフォルトの名無しさん2012/02/12(日) 13:01:46.06
喧嘩するなよ>>38は>>40の味方だぞ?
0044デフォルトの名無しさん2012/02/12(日) 13:03:29.00
>>41
無理やり動かすのはそれが最強だけど、プログラマなんてそもそも誰に頼まれたわけじゃないのにコーディングしたがる人も多いじゃん
そういう奴らが自発的に作るプログラムのクオリティと開発スピードは世界で一番速いんだろうなって
その作ったプログラムがどんなに要らないプログラムてもさ
0045デフォルトの名無しさん2012/02/12(日) 13:03:37.26
一生懸命デザパタの本なんて読んでた学生は社会人になって気がついただろうね

新人:なんだ、こんなゴミ(デザパタ)役に立たないじゃないか!
    だいたい仕様書にないクラス勝手に作るって発想がそもそもおかしいだろ!

リーダー:・・・正解だニヤリ
0046デフォルトの名無しさん2012/02/12(日) 13:05:34.27
俺なんかさ、10行くらいのコードみて面白そうって思ったら
アセンブラレベルで最適化とか、アルゴリズムとか頼まれてもいないのにいろいろ考えちゃうもん
性欲と同じ
0047デフォルトの名無しさん2012/02/12(日) 13:05:55.23
仕様書と設計書の区別がついてないやつがいそうな予感。
0048デフォルトの名無しさん2012/02/12(日) 13:06:36.40
最期はレイププレイじゃないと納品できないとか困った奴だな
0049デフォルトの名無しさん2012/02/12(日) 13:08:13.76
お前らっていつも何人くらいで開発してるの?
0050デフォルトの名無しさん2012/02/12(日) 13:12:00.53
最近はでかい物でも1チームを5〜6人にしたほうが効率がいいとかって論文が出たから
それにしたがってやってるところが多くなったな
大会議場で毎朝50人ぐらい集まって・・・ってのはなくなったな
昔はよくあったが・・・めちゃくちゃ眠くてあくびがでまくる拷問だった
0051デフォルトの名無しさん2012/02/12(日) 13:17:00.89
コード書く前に完璧なクラス図が書ける奴は天才だろ
脳内コーディングして、脳内にコンパイラが搭載してあるってことだよね
0052デフォルトの名無しさん2012/02/12(日) 13:22:42.25
仕様書に書いてある構造どおりのクラス起こすだけだ
デザパタみたいに余計なクラス挟むと理由を問い詰められる
0053デフォルトの名無しさん2012/02/12(日) 13:22:52.03
>>51
程度によるけどそれが出来ない奴と一緒に仕事したくない

脳内コーディング、脳内コンパイラ、脳内CPUがあるのは普通だと思うんだよ。完璧ってわけじゃないけどね
0054デフォルトの名無しさん2012/02/12(日) 13:24:28.64
>>52
そうかw仕様書に構造が書いてあるのか(笑
0055デフォルトの名無しさん2012/02/12(日) 13:26:53.37
>>54
そのままコードに落とし込まないといけない
そもそも仕様書にない単語を使ったクラスができるわけがないって思想

YAGNI信者の手によってデザパタ勢力は駆逐された
実際余計な汎用性入れないほうがうまくってことがいろんなところでバレちゃったから
オナニーコードはもう作れなくなってる
0056デフォルトの名無しさん2012/02/12(日) 13:29:25.37
デザパタが余計なクラスって
なんて短絡的な考え方なんだろう?

そもそもデザパタを理解してないのではないか?
あれは普通に設計をした時によくあるパターンをまとめたもの。

そう、”よくある”ものなんだよ。
デザパタというだけで余計なものといっているところは、
たいていアーキテクチャがない開発を行なっている所だな。

MVCとか全く知らずに、イベントハンドラやURLから呼び出されるコードに
すべてをベタ書きで書いているような所。
0057デフォルトの名無しさん2012/02/12(日) 13:30:05.57
>>55
もしかして、デザパタ=余計なものって
考えてる?

あれはオブジェクト指向でよくあるコードなんだけど
0058デフォルトの名無しさん2012/02/12(日) 13:31:01.28
>>56
じゃあ、それを一生懸命説明すればいいんじゃない?
大変だと思うけど
0059デフォルトの名無しさん2012/02/12(日) 13:32:21.39
こういうのは各時代ごと楽なほうが採用されるから
仕様書にない単語のクラス=必要ないコードを書きやがったこの馬鹿
って方向で解釈が進むだろうね
0060デフォルトの名無しさん2012/02/12(日) 13:33:14.03
>>55
たぶん、君が読んでるのはシステム設計書とかその類のドキュメントだ。
もしかしたらデザパタとか適応された後の。

そりゃ、そこにない構造を設計し始めたら「なんで?」って聞かれるわな。
0061デフォルトの名無しさん2012/02/12(日) 13:34:19.00
>>58
たとえば、データが変わった時(それはユーザー操作だったり外部からの命令だったりする)
それに対応する表示項目(複数ある)を一度に変える時どんな作り方をする?

データが変わる要因は複数あるし、また表示項目はカスタマイズできるから色々変わる。

そういうのを作る方法を、お前は思いつかないだろう?
0062デフォルトの名無しさん2012/02/12(日) 13:35:38.07
>>60
そんなわけねーじゃん
頭腐ってるだろ?
0063デフォルトの名無しさん2012/02/12(日) 13:35:43.61
ここに居る奴らが一生懸命作った仕様書(デザパタ使ったり使わなかったり)
-> クラスとかメソッドとかも練る
-> 下っ端に書かせる

下っ端がデザパタとか粋がっちゃうのがうざいってことじゃないの?

一方で少人数制で
とりあえずリーダー的な奴がおおまかな役割分担
-> 仲間が自分のテリトリーを設計しながら書く(デザパタ使ったり使わなかったり)

お互いにレベルが近ければ、こんな感じになるんじゃないの

趣味でしかやってないから、仕様書とか見たこと無いんだけどさ
0064デフォルトの名無しさん2012/02/12(日) 13:35:55.65
>>55
ここは設計段階の話するとこ
コーディングするときの話をするとこじゃないの

わかる?
0065デフォルトの名無しさん2012/02/12(日) 13:36:16.92
>>61
そーゆーのやめろって方向だって説明したじゃん>yaguni
0066デフォルトの名無しさん2012/02/12(日) 13:36:44.89
>>61
YAGNIは必要なモノを作らないということ。


いいかい、これは顧客からの要求だ。
だから絶対に必要な仕様だ。
0067デフォルトの名無しさん2012/02/12(日) 13:37:03.37
訂正

YAGNIは必要な い モノを作らないということ。
0068デフォルトの名無しさん2012/02/12(日) 13:37:42.61
こない未来を予想しないってのもあるな
0069デフォルトの名無しさん2012/02/12(日) 13:38:19.39
ここは、顧客の要求を無理ですって
言い訳を考える所、
説き伏せるところじゃないんだよねw

自分ができない理由を探すのはやめないか?
0070デフォルトの名無しさん2012/02/12(日) 13:38:23.12
>たとえば、データが変わった時(それはユーザー操作だったり外部からの命令だったりする)
こんなこと言ってるうちはまったくyaguniが理解できてないってことだな
0071デフォルトの名無しさん2012/02/12(日) 13:38:53.86
>>70

自分ができない理由を探すのはやめないか?
0072デフォルトの名無しさん2012/02/12(日) 13:39:54.74
だってyaguniに従えば
前のコードはばっさり捨てて現状必要なコードに書き換えちゃえばいいわけでしょう?
なんでそんな汎用性の話なんてしてんの?
0073デフォルトの名無しさん2012/02/12(日) 13:41:08.78
実際エクスプローラなんかそうだよね。

エクスプローラは、ファイルを消した時に消えるのは当たり前として、
コマンドプロンプトで消したり、ネットワークドライブだとして
他のユーザーが消した時にも消える。

このように、データが変わる要因が複数あるというのは現実的な。
それに対応するのも現実的な話。

自分ができない理由を探すのはやめないか?
0074デフォルトの名無しさん2012/02/12(日) 13:41:53.41
>>72
だから、その「現状必要なコード」をお前にかけんの?って聞いてるんだろw
0075デフォルトの名無しさん2012/02/12(日) 13:42:56.74
まあ普通にオブザーバーパターンを使って実装する話だよね。
0076デフォルトの名無しさん2012/02/12(日) 13:49:48.97
いや、仕様書に書いてある通りさ
0077デフォルトの名無しさん2012/02/12(日) 13:49:51.77
もっとわかり易い例。

Chromeは以前はプラグインの仕組みを持っていなかったが
ユーザーの要求により、プラグインの仕組みを搭載した。

同じように自分の作ったアプリにプラグインの仕組みをユーザーに要求された。
プラグインの仕組みを実装しなければならない。

さあ、どうやって作る?
0078デフォルトの名無しさん2012/02/12(日) 13:50:27.86
お前ら喧嘩大好きだな。プログラミングは思いやりな

・一緒に作る人が分かりやすいように
・未来の自分が読み返しても分かりやすいように
・自分がもっとも書きやすいように

自分も含めてなお互いに思いやる気持ちが大事
日本発の「OMOIYARI」思想な
0079デフォルトの名無しさん2012/02/12(日) 13:50:37.73
>>76
仕様書になんて書いてあんのさw
お前の脳内仕様書なんか、お前が言わないと
誰にも伝わらないぞ。
0080デフォルトの名無しさん2012/02/12(日) 13:51:34.54
仕様書にデザインパターンを使えと書いていなかったので、
コピペで済ませました。

そしたらコードレビューで突っ返されました。
なぜですか?
0081デフォルトの名無しさん2012/02/12(日) 13:52:23.16
>>79
そうだ
仕様書になんて書いてあるんだ?
仕様書になんて書いてあるのかわからないのに無意味な話はやめろよ
0082デフォルトの名無しさん2012/02/12(日) 13:53:59.92
仕様書に、デザインパターンを使えって
普通書いてあるものなのか?

言っとくが書いてないから使わないという意味じゃないぞ。

仕様書に、わかりやすい変数名を使うとか、
関数にするとか書いてないだろ?
それでも普通はそうするだろう?

仕様書を持ち出している時点で根本的に間違いじゃないかってことだぞ。
0083デフォルトの名無しさん2012/02/12(日) 13:55:14.47
>>82
いや、それは間違い
仕様書の通りに作るのが真
どうやって作るのかわからないときは担当者にたずねるか突き返すのが真

書いてないからデザパタ適用なんて話はありえない
0084デフォルトの名無しさん2012/02/12(日) 13:56:05.66
まあ、仕様書は顧客の要求だから、
書くなら「デザインパターンを使え」ではなくて
「プラグインに対応する」だな。

で、プラグインを実装する時
デザインパターンは無駄な物と言ってる人は、
どうするのさ?
0085デフォルトの名無しさん2012/02/12(日) 13:56:26.56
だから、誰かが言ってる仕様書ってのは、いわゆる設計資料のことなんだって。
0086デフォルトの名無しさん2012/02/12(日) 13:58:58.68
>>83
そして担当者に突き返したとして、
担当者はなんて答えるの?

担当者はデザパタを使え!って答えてくれるの?
その担当者って、プログラミング素人じゃないのか?w
0087デフォルトの名無しさん2012/02/12(日) 14:00:30.07
>>84
例の馬鹿だと、

プラグインの作り方がわからないんです。
教えてください。だろうなw


それを考えるのが開発者の仕事だろうが!って
一喝されるだけだが。
0088デフォルトの名無しさん2012/02/12(日) 14:01:01.28
>>86
デザパタなんて関係ない
しかるべき仕様を書いてくれる
書いてないときはもう一度つきかえす
デザパタは出てこない
0089デフォルトの名無しさん2012/02/12(日) 14:02:44.96
>>88
だから、仕様書にはデザパタがでてこないってことだろ?
当たり前だよ。それは関数にしろって仕様書に書いてないのと同じ事

だからといって、デザパタを使わないってことにはならない。


もう一度聞く、プラグインに対応するという仕様があったとき
お前はどうするんだ?
0090デフォルトの名無しさん2012/02/12(日) 14:03:26.36
仕様書にデザパタを使うと書いてあった時、お前はどうするんだ?
0091デフォルトの名無しさん2012/02/12(日) 14:04:07.45
つまり、デザパタは無駄な物じゃないってことじゃないですか。
0092デフォルトの名無しさん2012/02/12(日) 14:05:47.80
>>90
別にいいけど仕様書にはちゃんとわかる言葉で書いてもらうよ
デザパタなんて単語は出てこない
0093デフォルトの名無しさん2012/02/12(日) 14:06:06.23
担当者に突き返すっ言ってる奴は、
自分が、その担当者の立場になることは
永遠にないって思ってるのか?

その担当者の立場になったとして
自分の頭で考えて判断してみなさいよ。
0094デフォルトの名無しさん2012/02/12(日) 14:06:45.52
>>92
それは、デザパタの実装方法を、
詳細に書けってことなのか?
0095デフォルトの名無しさん2012/02/12(日) 14:06:50.88
>>88
> 書いてないときはもう一度つきかえす
それって、世間一般ではコーダーって呼ばれる人たちのことじゃないの?
0096デフォルトの名無しさん2012/02/12(日) 14:08:46.15
担当者「プラグインの仕組みを実装して」
馬鹿「それじゃわかりません。詳細な実装方法を教えて下さい」
担当者「じゃあオブザーバーパターンを使って」
馬鹿「それじゃわかりません。詳細な実装コードを教えて下さい」
担当者「デザインパターンの本を読んで勉強してください」
馬鹿「いやです。俺の分かる言葉でちゃんと書いてもらうよ」
0097デフォルトの名無しさん2012/02/12(日) 14:09:13.41
プラグインにオブザーバーもちょっと変だなw まあいいかw
0098デフォルトの名無しさん2012/02/12(日) 14:10:19.10
うーん仕様云々言っている奴はズブの素人だな。
仕様書と設計書を混同している。
0099デフォルトの名無しさん2012/02/12(日) 14:11:01.00
仕様書の粒度がはっきりしないからかみ合わない部分はあるね
0100デフォルトの名無しさん2012/02/12(日) 14:12:49.76
>>96
それで正しい
んで実際に仕様書に書いてみたときに
そのデザパタが使える場面なのか?
仕様は満たしているのかわかるだろ?
0101デフォルトの名無しさん2012/02/12(日) 14:13:28.28
自分がコーダーの立場で一生を終えるって考えてるのかな?

どういうコードを書くかってのは、いずれにしろ
開発の中で誰かが決定しなければならないわけだけど
俺はそれを決定する人ではないから突き返すってことでしょ?
0102デフォルトの名無しさん2012/02/12(日) 14:13:52.29
>>100
お前は、馬鹿なのか?
一生担当者にはならないのか?
0103デフォルトの名無しさん2012/02/12(日) 14:14:39.24
そもそもそのデザパタが適用できるかどうか?ってどこで判断するかって
仕様書でしかないだろ
デザパタ使ってくださいはありえない
0104デフォルトの名無しさん2012/02/12(日) 14:14:44.31
>>100
デザパタが使える場面だったらどうする?

やっぱり、デザパタというだけで
無駄なものって判断しちゃうの?
0105デフォルトの名無しさん2012/02/12(日) 14:15:36.45
>>104
デザパタつかえることを証明するのは仕様書担当者の仕事
0106デフォルトの名無しさん2012/02/12(日) 14:15:40.40
>>103
仕様書じゃわからない。実際に書かれたコードを見て
デザインパターンを使うか判断する。
0107デフォルトの名無しさん2012/02/12(日) 14:15:49.66
>>1-1000
学生か?仕様書と設計書の違いくらい勉強しろよ。
0108デフォルトの名無しさん2012/02/12(日) 14:16:10.78
>>105
じゃあ、お前が仕様書担当者と仮定して考えろ。
0109デフォルトの名無しさん2012/02/12(日) 14:16:38.33
>>106
いままでそんなヌルイ開発しかしてこなかったから責任の切り分けもできない猿になったんだな
0110デフォルトの名無しさん2012/02/12(日) 14:16:51.44
>>100
だからね
ここはね仕様書書いてる人たちが設計やデザインパターンについてお話するとこなの
コードを書く人が勝手にデザインパターンをつかってどうのこうのっていうのはスレ違いなの

わかる?
0111デフォルトの名無しさん2012/02/12(日) 14:17:43.93
学生なんだろw

仕様書「プラグイン機能搭載」
設計「○○パターンを使ってこういう設計に使用」
プログラマ「よっしゃ○○パターンだな!バリバリ書くぜ!」
コーダー「俺の分かる言葉で書け!」
0112デフォルトの名無しさん2012/02/12(日) 14:18:07.87
>>110
そう思ってるのは君だけかもねw
0113デフォルトの名無しさん2012/02/12(日) 14:18:52.04
コーダー底辺役立たずのくせに偉そうwww
0114デフォルトの名無しさん2012/02/12(日) 14:19:06.38
>>111
わかってると思うけど
仕様書に○○パターンなんて書くのはダメ
0115デフォルトの名無しさん2012/02/12(日) 14:19:39.21
>>114
書いてないだろw
0116デフォルトの名無しさん2012/02/12(日) 14:20:03.54
yaguniにしたがって作ればいいってことだな
元の概要設計書をいつだつしてヘンテコな汎用性を担当者が入れる余地も消えたし
ホント開発がスムーズになったわ
0117デフォルトの名無しさん2012/02/12(日) 14:20:22.66
一人、仕様書に詳細な実装コードを書けって
言ってる奴がいるようだなw
0118デフォルトの名無しさん2012/02/12(日) 14:20:56.81
>>116
お前YAGNIとか言うレベルにないぞw
0119デフォルトの名無しさん2012/02/12(日) 14:27:12.28
>>118
ああ、なんかつづり違うしな
0120デフォルトの名無しさん2012/02/12(日) 14:35:56.13
MUTEKIはいいよな。メタ的というか、どれをとっても抜ける
0121デフォルトの名無しさん2012/02/12(日) 14:47:01.59
最近はボッキしっぱなしでさ、コーディングの体勢が辛いんだよな
だからイスにはこだわってる
0122デフォルトの名無しさん2012/02/12(日) 14:56:07.73
自分の頭で何も考えず
何から何まで他人が判断。
そのくせ一人前気取り

あぁ、学生バイトか。
0123デフォルトの名無しさん2012/02/12(日) 15:08:56.00
『パターン指向リファクタリング入門』は良書だな。
YAGNIってそういう話だろ?

今はYAGNIで素早く作るが拡張要求が来た時には「こう変更する」
という事まで想定してこそのYAGNIだろ。
拡張に対する想定の甘いYAGNIなど炎上確定じゃないか。アホかと。
0124デフォルトの名無しさん2012/02/12(日) 15:14:48.18
>>123
いや、シンプルに作っておけば破棄するだけだからw
君みたいなのいらないからw
0125デフォルトの名無しさん2012/02/12(日) 15:24:43.43
>>124
だから破棄して、次は
拡張性のあるものを作るんだろ?

まさか、次も拡張性のないものを作って
何度も何度も無駄な開発を続ける気か?
0126デフォルトの名無しさん2012/02/12(日) 15:38:19.95
>>125
拡張性なんてつけないよ
yagniに従う(今度はつづりは間違えないぞ)
0127デフォルトの名無しさん2012/02/12(日) 15:39:42.24
>>126
お前が拡張性をつけないなんて判断するな。

上のものに確認しろ。馬鹿かなのか?
0128デフォルトの名無しさん2012/02/12(日) 15:41:28.87
こりゃ一本取られたねw
0129デフォルトの名無しさん2012/02/12(日) 15:46:10.61
お前ら今日も仕様書バカを相手にして大変だなw
0130デフォルトの名無しさん2012/02/12(日) 15:47:50.95
そもそも、言ってることが仕様じゃないよなw
仕様書と設計書と指示書を混同してる。

コーダーが作業指示書をくれと言ってる
0131デフォルトの名無しさん2012/02/12(日) 16:13:49.60
ここで言われてるのって一般的な仕様書じゃなくて詳細設計書の1ジャンルの処理設計のドキュメントの話だよね
あんなもんCOBOLer以外で今時書いてる連中がいるなんてビックリなんだが
0132デフォルトの名無しさん2012/02/12(日) 21:29:04.69
>>127
だったら仕様書にそう書けよ
0133デフォルトの名無しさん2012/02/12(日) 21:30:58.00
じゃあ書いてあるとしましょう。
0134デフォルトの名無しさん2012/02/12(日) 21:48:52.99
>>133
ちゃんとどう拡張するか書いてなかったら即突っ込むけどね
0135デフォルトの名無しさん2012/02/12(日) 21:51:46.51
じゃあ、ちゃんと書いてあったとしましょう。
0136デフォルトの名無しさん2012/02/12(日) 22:00:39.95
>>135
問題ないな
デザパタ入れる余地もなくすべてがかっきり決まってどこも動かせない状態じゃん
よかったな
後は組むだけだな
0137デフォルトの名無しさん2012/02/12(日) 22:02:34.75
ん? デザパタを入れるかどうかを決めるのは
お前じゃなくて、担当者でしょ。
担当者がデザパタを入れると書いてました。どうしますか?
0138デフォルトの名無しさん2012/02/12(日) 22:11:05.48
>>137
デザパタは仕様書や設計書に書いちゃいかんだろ
あくまでこういう構造にしますっていうだけ
その構造がデザパタだったとしてもそれは仕様書にはかかれない
0139デフォルトの名無しさん2012/02/12(日) 22:11:36.22
お前が、デザパタのパターン名を聞いてどうコードを書くのか
知らなくて、担当者に聞くのは勝手だし、
担当者が、丁寧にパターンのコーディング方法を教えくれるかもしれないが、
その教えてもらったコードの書き方は、やっぱりデザインパターンなんだよ。
0140デフォルトの名無しさん2012/02/12(日) 22:12:19.57
> あくまでこういう構造にしますっていうだけ
それがデザインパターン・・・
0141デフォルトの名無しさん2012/02/12(日) 22:16:15.84
でもデザパタって仕様が明確であればいらないパターンばっかりなような・・・
0142デフォルトの名無しさん2012/02/12(日) 22:17:33.60
何のために頻出するパターンに名前をつけたと思ってんだよw
0143デフォルトの名無しさん2012/02/12(日) 22:17:46.50
>>141
まず、仕様と設計を区別できるようになろうな。
でざぱたとかいうのはそれからだ。
0144デフォルトの名無しさん2012/02/12(日) 22:20:39.05
コーダーに対して、デザインパターンという名前じゃ通じないから
書き方を丁寧にレクチャーすれば、
コーダーにとっては知らなくてもいいものだろうねw

普通さ、アーキテクトがここは○○パターンにしますって書けば
あとはプログラマが自分で考えて作るもんだろ。
サンプルがあれば間違いが少なくなるが
実際に動くものを作るのはプログラマだ。

コーディング方法を教えてもらわないと書けない奴は
開発の最下層の最下層、絶滅危惧種のコーダーだけ。
0145デフォルトの名無しさん2012/02/12(日) 22:25:00.50
>>144
それはダメだろうな
デザパタの何がどのクラスになるかまでちゃんと書かないとそれは設計までやったことにはならない
適用したデザパタがその仕様にふさわしいかどうかの検証は省くことはできない
0146デフォルトの名無しさん2012/02/12(日) 22:27:27.07
>>145
ちゃんと書いてあったとしましょう。
0147デフォルトの名無しさん2012/02/12(日) 22:29:47.79
>>146
したらデザパタ云々仕様書に書く必要ないよw
でも要件定義から外れてるだろうからツッコミくるだろうね
0148デフォルトの名無しさん2012/02/12(日) 22:30:17.94
>>141
今まで全部客や上司に指示されたとおりにプログラミングしてただけなのに、
周りのプログラマが設計までやりだしたのを見て、あせってるのか。
0149デフォルトの名無しさん2012/02/12(日) 22:34:29.48
無駄にデザインパターン使いたがるのってな
スポーツでファインプレーばっかしようとするやつなんだよ
その一瞬だけ見ればすごくみえるかもしれない
だけど内心チームのみんなは迷惑してんだよ
お前だけだからさ、すげーとおもってるの
0150デフォルトの名無しさん2012/02/12(日) 22:35:07.79
>>147
なんでデザインパターンを使うと要件定義から外れるの?

あと仕様書に書く必要がない理由は何?
0151デフォルトの名無しさん2012/02/12(日) 22:36:21.56
>>148
時代がかわってデザパタとか詐欺まがいのもんが役に立たなくなって清々してるだけw

俺、ここの辺って改善されると思ってなかったらめちゃくちゃ驚いてる
必要なクラスを必要なだけって時代がくるとは思わなかった
誰がプログラマの作ったクラスおよびクラス構造が適切だと説明できるんだろうとか
考えてたけど時代が変わればできるようになるもんだな
0152デフォルトの名無しさん2012/02/12(日) 22:38:09.90
>>150
仕様書には要件定義を満たす内容だけが書いてあればいい
デザパタは余計だ
だってそれがデザパタだろうがなんだろうが要件定義を満たせなきゃ意味がない
そしてそれを説明および証明するのは仕様書を書いた本人しかいないから
0153デフォルトの名無しさん2012/02/12(日) 22:40:46.65
>>149
ファインプレーでもなんでもなく、定石なんだけどな。
スポーツで言えば、教科書で習うくらいの基本プレー。
俺の設計すげーだろみたいな独自設計てんこ盛りのほうが
迷惑だし、考え付いた本人は満足してるかもしてないけど
デザパタの劣化コピーでしかないことも多い。
0154デフォルトの名無しさん2012/02/12(日) 22:43:47.64
>>151
あぁ、それはなんつーかややこしいところは大体フレームワークが
面倒見てくれて、フレームワークに則って作業すればシステム作れますよ
っていう仕事が増えたってことだ。
0155デフォルトの名無しさん2012/02/12(日) 22:43:48.38
余計なクラスいれた奴を追求できる仕事超楽しい
なんで?なんで?なんで?
なにがいいの?何を考慮したの?
それはどのくらいお金になるの?
工数はどれだけ減るの?
なんで?なんで?なんで?


大抵・・・説明できない=役に立たない
0156デフォルトの名無しさん2012/02/12(日) 22:45:22.88
なんつーかGoFは定石未満だから使いにくいんだよね
0157デフォルトの名無しさん2012/02/12(日) 22:47:03.34
>>156
そりゃまぁ、仕事に沿った定石集集めたら
「○○システム作成のデザインパターン集」
ってことになって使えるところが少なくなるからな。
0158デフォルトの名無しさん2012/02/12(日) 22:47:31.11
>>147
意味がわからない。

デザパタを使うと上が決めて、
その詳細なコードが丁寧に書いてある。

お前はそれをデザパタとわからないが、
デザパタは使われている。

あってるよな?
0159デフォルトの名無しさん2012/02/12(日) 22:48:30.30
>>155
まず、デザパタは余計なクラスではなく、
実践上よくあるパターン、つまり必要なクラスであると
認識を正すことから始めよう。
0160デフォルトの名無しさん2012/02/12(日) 22:48:37.22
>>155
それは環境が悪いぞ。もっと周りのレベルの高いところへ行ったほうが自分のためにもなる
0161デフォルトの名無しさん2012/02/12(日) 22:49:48.25
>>154
あー、フレームワークを使ってるから
デザパタは必要ないって考えてる人かもね。

でも、実際はフレームワークでデザパタ使われてるよね。
0162デフォルトの名無しさん2012/02/12(日) 22:50:23.52
>>160
上流工程は嫌です。
言われたことだけやりたいです。
0163デフォルトの名無しさん2012/02/12(日) 22:51:14.65
余計な新技術盛り込みまくってる集団の高いのは自尊心だけだろ

動くもんでっちあげれば
美しくするのなんて瞬殺だろ?
0164デフォルトの名無しさん2012/02/12(日) 22:51:24.40
1から10まで全部教えてもらわないと
プログラミングもできない奴が偉そうにしてるスレ
0165デフォルトの名無しさん2012/02/12(日) 22:52:49.14
>>163
つまり、リファクタリングするわけですね?
0166デフォルトの名無しさん2012/02/12(日) 22:53:22.38
>>163
デザインパターンはかなり枯れた技術なんですが
0167デフォルトの名無しさん2012/02/12(日) 22:53:33.52
>>159
それは仕様をみないとわからないよね
0168デフォルトの名無しさん2012/02/12(日) 22:54:19.69
一周してやっぱいらねーにたどり着く
0169デフォルトの名無しさん2012/02/12(日) 22:54:58.60
>>160
仕様も確認しないで
デザパタが必要なクラスとかいっちゃう奴がこの掲示板にもこんなにたくさんいる状況じゃ
無理だって思うだろ
0170デフォルトの名無しさん2012/02/12(日) 22:55:11.12
>>167
じゃあ、仕様を見て問題がなかったとしましょう。
0171デフォルトの名無しさん2012/02/12(日) 22:55:49.17
仕様が間違っているかどうかは別の話だよね。
前提として仕様に問題がない場合の話だよ。
0172デフォルトの名無しさん2012/02/12(日) 22:56:49.87
>>171
なんの話してんの?
わからないなら途中参加なんてしないほうがいいよw
0173デフォルトの名無しさん2012/02/12(日) 22:57:12.84
>>169
言ってることがおかしい。

まずお前の言ってることだと、仕様にデザインパターンは書かれていない。
だから、そこにデザインパターンが使われているかどうかは、お前が知ることはできない。

なのに仕様を確認して何が分かるというのだ?
0174デフォルトの名無しさん2012/02/12(日) 22:57:46.53
>>169
自分に好都合な前提で話すのやめろよ
0175デフォルトの名無しさん2012/02/12(日) 22:58:21.66
ああ、わかった。
お前はいっていることだけやっていればいい。

デザインパターンを使う使わないは俺が判断して
必要なときに組み込む。

お前は何も言わなくていい。
0176デフォルトの名無しさん2012/02/12(日) 22:58:43.87
>>160
うーん、例の人は自分であーだこうだ設計するところはあまり肌に合わないんじゃないかな。
できれば作業手順までかっちりきっかり決められてて、それに沿った作業を進めていくような
現場のほうが向いていると思う。
0177デフォルトの名無しさん2012/02/12(日) 22:58:50.53
>>173
デザパタは要件定義を満たせてかつ余計な仕様をいれない内容かね?
0178デフォルトの名無しさん2012/02/12(日) 22:59:12.55
ああ、わかった。
お前はいっていることだけやっていればいい。

デザインパターンを使う使わないは俺が判断して
必要なときに組み込む。
お前に支持出すときは、デザインパターンという
用語は使わないでおいてやるから安心しろ。

お前は何も考えなくていい。
0179デフォルトの名無しさん2012/02/12(日) 22:59:33.90
>>176
バーカ
人によらねぇんだよ
プログラムなんて仕様どおりに組めなかったらゴミだ
0180デフォルトの名無しさん2012/02/12(日) 23:00:03.56
>>177
当たり前だろw

お前より頭がいいやつが考えることだぞ。
0181デフォルトの名無しさん2012/02/12(日) 23:00:36.84
>>179
まず、仕様と設計の区別ができるようになろうな。
0182デフォルトの名無しさん2012/02/12(日) 23:00:44.91
>>179
お前が要求する仕様、
たとえば「クイックソートを実装しろ」って書いてあったら
それでOKだしますか?
0183デフォルトの名無しさん2012/02/12(日) 23:01:06.32
ださないなら、具体的な仕様例を書いてください。
0184デフォルトの名無しさん2012/02/12(日) 23:01:44.38
デザパタの用語っていうのは
クイックソートという用語と同じようなもんだろ。
0185デフォルトの名無しさん2012/02/12(日) 23:01:49.10
>>182
意味がわからない
なんでクイックソートの必要があるの?
0186デフォルトの名無しさん2012/02/12(日) 23:02:28.41
クイックソートでないとまずい理由を当然書いてもらう
0187デフォルトの名無しさん2012/02/12(日) 23:02:30.08
>>185
それが仕様だから。
0188デフォルトの名無しさん2012/02/12(日) 23:03:45.04
>>187
要件定義にはなんて書いてあるの?
0189デフォルトの名無しさん2012/02/12(日) 23:03:48.44
>>186
書いてもらってそれが妥当な場合はどうする?
あと、必要なのはそれだけだろ?

仕事するの?しないの?
0190デフォルトの名無しさん2012/02/12(日) 23:04:09.90
>>179
いかに仕様どおりに組むかという方法論として、
デザパタなどの設計が出てくるってのは理解してる?

設計がいらない類の仕事であれば、意識する必要はないだろうけど。。
0191デフォルトの名無しさん2012/02/12(日) 23:05:55.74
>>188
だめだというのなら、どんな仕様ならお前はいいんだ?
それを書けといったよね。

ちゃんと質問に答えてよ。
0192デフォルトの名無しさん2012/02/12(日) 23:06:57.29
>>190
仕様が要件定義を満たしているかどうか?
これをデザパタが満たせるような内容の要件定義、仕様書は正直デザパタから逆算でもしない限り
ありえないといっておく
だから現場のデザパタつぶしはおもしろい
0193デフォルトの名無しさん2012/02/12(日) 23:07:08.34
仕様「この場所では○○を使う。理由は○○であり、これは検証の結果妥当である」

これならOK
0194デフォルトの名無しさん2012/02/12(日) 23:07:29.65
コーダーがぼっこぼこに潰されてたワロタwww
0195デフォルトの名無しさん2012/02/12(日) 23:08:43.82
>>193
前の方の○○に、パターン名が入るわけですねw
0196デフォルトの名無しさん2012/02/12(日) 23:08:53.56
>>194
あれあれ?勝利宣言ですか?ニヤニヤ
0197デフォルトの名無しさん2012/02/12(日) 23:09:24.89
あなたには勝利宣言に見えるのですか?
なら、そうなんだろうね。お前の中ではな
0198デフォルトの名無しさん2012/02/12(日) 23:09:49.61
>>197
お前みたいなクズに俺が負けるわけないじゃんw
0199デフォルトの名無しさん2012/02/12(日) 23:10:28.46
>>198
あれあれ?捨て台詞ですか?ニヤニヤ
0200デフォルトの名無しさん2012/02/12(日) 23:11:01.46
>>199
いいよいいよ
かかっておいで
0201デフォルトの名無しさん2012/02/12(日) 23:12:28.53
ところでコーダーって自覚はあるんだw
0202デフォルトの名無しさん2012/02/12(日) 23:16:18.74
>>201
そういう楽な仕事がよかったがそんな仕事はこの世にねぇからな
どうでもいい
0203デフォルトの名無しさん2012/02/12(日) 23:20:06.58
状態遷移で考えるようなプログラムの設計は
プログラマー1
「これはステートパターンでいいよね」

デザパタ嫌い
「なぜステートパターンなんかつかうんですか?
 ステートなんて仕様書に書いてないですよ?
 仕様書を書き下せば全部実装できるのに、馬鹿じゃないんですか?」

こんな感じかな。
0204デフォルトの名無しさん2012/02/12(日) 23:24:30.58
仕様書にステートパターンと書いてあったって
なんで書いてあるんですか? って文句言うだろw
0205デフォルトの名無しさん2012/02/12(日) 23:24:44.85
なんとなくわかった。
彼(?)は仕様と設計とコーディングの間で、過不足があるのが嫌なんだ。
コーディングは仕様と完全に一対一対応じゃないといけないと。

そういう信念を持つのはいいが、
押し付けられるのは迷惑だからやめてくれ。
0206デフォルトの名無しさん2012/02/12(日) 23:27:23.24
違う。仕様に文句を付けたいだけ。
0207デフォルトの名無しさん2012/02/12(日) 23:32:46.17
まだ馬鹿の相手続いてるのかw
0208デフォルトの名無しさん2012/02/12(日) 23:43:14.95
デザパタが成功しやす場合ってさ
俺がこういうシステムを作るからこうしろ
こうこうこんな感じで拡張するかもしれねーからここはこれで

これならもんだいねーんだよ、うまくいく
0209デフォルトの名無しさん2012/02/12(日) 23:45:36.00
小難しい客と設計者が居た場合
実装者は地獄だぜぇ
0210デフォルトの名無しさん2012/02/12(日) 23:51:00.32
>>209
設計者が小難しい客の要望をすべて盛り込んだものを設計してくれるんだから実装者は楽なもんだろw
0211デフォルトの名無しさん2012/02/12(日) 23:53:28.13
これからはオブジェクト指向で継承駆使して差分プログラミングや!
 ↓
継承よりコンポジション。無駄に継承すんな。
 ↓
GoFのデザインパターン!どや!
 ↓
デザパタなんかいらないんや! ← いまここ
0212デフォルトの名無しさん2012/02/13(月) 00:24:54.48
指示待ち人間はこなくていいです。
0213デフォルトの名無しさん2012/02/13(月) 00:50:48.90
気違い一人がいなくなると、ほんと静かになるなw
0214デフォルトの名無しさん2012/02/13(月) 01:01:02.28
>>203
いや、
�@ステートパターンってなんですか?説明お願いします
�Aそれをこの仕様に適用するとどのクラスがどの仕様をみたしているんですか?
�Bこれは仕様に対していらないクラスじゃないんですか?
の流れ
0215デフォルトの名無しさん2012/02/13(月) 01:35:08.66
>>214
それはコーダーのお前が考えることではない。
言われたことだけやれ。の一喝で終わり。
0216デフォルトの名無しさん2012/02/13(月) 01:35:51.82
オセロゲーム作ったんだよ。
スタート前
↓
ゲーム中→編集状態→ゲーム中に戻る
↓
ゲーム終了 or スタートに戻る

っていうシンプルな状態遷移なんだけど
これをステートパターンで書き直したら予想以上にプログラムがシンプルになった。
各状態特有のクラス変数をキープさせるとその効果が現れる。
単純な状態遷移ではなんらメリットは無い。
0217デフォルトの名無しさん2012/02/13(月) 01:54:12.60
例えばステートが4つしかないなら
何も考えず4つのステートクラスをインスタンス化しておく。
これを前提にするだけで関連するステップ数が約半分になる。
カラクリは説明が難しい。プログラミングすれば実感としてわかるだろう。
しかし仕様や基本設計している人にこれを理解させるのは至難の業。
0218デフォルトの名無しさん2012/02/13(月) 02:33:50.15
作りたいものがお客さんと約束したものとあっていて短期間で作られれば
内部がどう実装されていようがSEとしてはしったこっちゃないよ。
ステートパターンがとか各状態特有のクラス変数が〜の説明なんか
これっぽちっも聞きたくない。
0219デフォルトの名無しさん2012/02/13(月) 02:43:56.89
>>218
SEの仕事は、ただの御用聞きだと思ってる?
システムのエンジニアリングを全くしないのか?
0220デフォルトの名無しさん2012/02/13(月) 02:47:52.63
>>217のようなプログラマにしか知りえないようなデザインパターンのツボは幾つもある。

仕様作成を上流SEもしくはPM、基本設計を下流SE、プログラミングをPGがやる会社があったとして。
少なくとも下流SEにはPG経験が無いとダメだと思うのは上記の理由。
>>218なんかSadism Engineerじゃないかと思えてくる。
02212182012/02/13(月) 02:54:59.27
>>219,220
状態遷移図や表を書いても、クラス構造やデザインパターンがって
レイヤーまでは降りる必要はないでしょ。
そこまでSEが担当しなくちゃならんのだったらよっぽどプログラマーが
ヘボいか、作業の割り振り間違ってるぞ。
0222デフォルトの名無しさん2012/02/13(月) 02:55:51.95
>>221
だから仕様書に書いてないことはやらない。
突っ返す。
02232202012/02/13(月) 03:08:54.80
仕様フェーズで状態遷移図を書くのはOKだと思う。
しかし設計フェーズでの状態遷移図はそれとは別物であり、
デザインパターンを使うならばツボを知らない奴が設計すれば
下流フェーズで無駄な工程を増やすだけ。
それならデザインパターンを使わない方がマシ。







0224デフォルトの名無しさん2012/02/13(月) 03:10:59.17
デザインパターンを使わなくても、
ツボを知らない奴が設計すれば
下流フェーズで無駄な工程を増やすだけ。
0225デフォルトの名無しさん2012/02/13(月) 03:12:41.32
>>224×
全く皮肉になってないねwww
0226デフォルトの名無しさん2012/02/13(月) 03:20:43.97
皮肉じゃなくて単なる事実。
ツボを知らない奴が設計すれば、無駄な工程が増える。
当たり前の話。
0227デフォルトの名無しさん2012/02/13(月) 03:28:13.79
お前らもっと分かりやすい言葉で書こうぜ
お互いに使ってる言葉が表面上は同じでも、それぞれの思う意味が全然違う気がする

具体的に仕様書書いてうpしたりさ、具体的に問題設定してみんなで設計してコーディングしてみたりさ
そういうことから一体感が生まれてくると思うんだよな。一仕事終わった頃にはもう10年来の友達みたいな感じでさ
0228216,217,2202012/02/13(月) 03:32:02.51
ステートパターンに絞って話をすると。
A.ステートパターンは各ステートごとの内部状態を保持するとプログラムが(劇的に)シンプルになる。
B.しかしただの状態遷移のためだけにステートパターンを用いるならば無駄。
C.それなら変数に各状態に割り当てた数値を入れておく方がマシ。

A.デザパタはいい B.でもツボを知らない C.ならば使わない方がマシ
0229デフォルトの名無しさん2012/02/13(月) 04:02:16.21
あのさ、誰が使おうがデザパタは
一律無駄なものって結論出たよね?
なんで俺の許可無く、話を蒸し返して進めてるのさ。
0230デフォルトの名無しさん2012/02/13(月) 04:05:27.75
それにしても実に良スレ
スレ立てた身としても嬉しい
0231デフォルトの名無しさん2012/02/13(月) 04:07:18.32
立てたの俺なんだけど?
0232デフォルトの名無しさん2012/02/13(月) 04:12:20.58
いや、次スレ立てたの俺な。前スレの盛り上がりの火種つけたの俺な
・・・ファクトリーがうざいって言ったやつ

やっぱ俺ってそういう選球眼っていうのかな
時代の流れを読む力だけは昔からあるっていわれるんだよな
0233デフォルトの名無しさん2012/02/13(月) 04:14:12.16
その相手をしてたのが俺なんだけど?
しかも初代スレ立てたのが俺。
0234デフォルトの名無しさん2012/02/13(月) 04:15:25.12
当の本人はとっくについていけなくなってるわけなんだけどさ
デザパタっていうのまったく知らなかったから、世間での扱われ方みたいなのが分かってよかった
争いの種なのな

なんか俺が始めようとしてるところでは、デザパタ覚えろみたいに言われてさ
そんなにすげえものなのかなって話出してみたらこれだよ。業界のタブー
0235デフォルトの名無しさん2012/02/13(月) 04:16:06.99
>>233
そうだったのか。あの時は噛み付いてごめんな
0236デフォルトの名無しさん2012/02/13(月) 04:17:06.52
ん? デザパタの本を読んだのなら知ってるはず。
最初の方にちゃんと書いてあるよ。

デザパタとはよくあるパターンをまとめたもので
別に新しく作ったものじゃない。
名前をつけたことが、一番の価値なのだ。みたいなこと
0237デフォルトの名無しさん2012/02/13(月) 04:17:47.27
>>235
なあに、こうしてデザパタの素晴らしさが
世の中に認知されたのだから、何の問題もない。
0238デフォルトの名無しさん2012/02/13(月) 04:20:23.93
パターンに名前がついたことで名前を言うだけで
話が通じるようになった。

設計を説明されながら、ああ、あんな感じのやつね。
なんとなくわかるよ。みたいなことが少なくなった。
名前を言うだけで通じる。

設計を提案するときも、事細かくラスの役割を
説明する必要もないし、未熟者には、
デザパタを勉強しろと言うだけで住む。

デザパタは重要なものなんだな
0239デフォルトの名無しさん2012/02/13(月) 04:27:43.36
>>235
> そうだったのか。あの時は噛み付いてごめんな

お前が噛み付いていたのは、片袖さ
片袖はもともと噛み付かれるためにある。

片袖が何で何が目的なのかはぐぐってね。
0240デフォルトの名無しさん2012/02/13(月) 04:35:53.15
初代1と二代目1はホモか。デザパタはママゴトじゃねーんだよ。
0241デフォルトの名無しさん2012/02/13(月) 06:43:11.99
日本と中国の二者択一を迫る米国
http://www.chosunonline.com/site/data/html_dir/2012/02/11/2012021100371.html

米国で大統領補佐官(国家安全保障担当)を務めたブレジンスキー氏は「韓国が米国との同盟を
強く望んだとしても、米国が韓半島から手を引く時代は少しずつ近づいている」と指摘する。

韓国には「中国による東アジアの覇権を受け入れ、中国とさらに接近する」道と、(反日行為をやめて)
「歴史的な反感にも関わらず、日本との関係をさらに強化する」という二つの道が選択肢として提示されていると明言した。

「中国に頼る」ということは、中国の付属品のように屈従して延命を図り、その下で生き延びるという意味だ。
「日本と手を結ぶ」ことについては、説明する必要もないだろう。

与党も野党も、あるいは右も左も関係なく、韓国のあらゆる政治勢力は、
この状況で5000万の国民をどちらの方向に導くか、決断を下さなければならない。


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
http://engawa.2ch.net/test/read.cgi/poverty/1329035247/
0242デフォルトの名無しさん2012/02/13(月) 07:57:09.38
書類の名前は企業によって違うがだいたいこんな感じ


要件定義仕様書
2人対戦オセロが欲しいという客の要望あった
ネットワーク対戦が必要か?
AIを実装する必要があるか?
時間制限を設ける必要があるか?
などをSEが客から聞き出して作成する


基本設計書 機能仕様書
AIを作るためには、αβ法を使う
インプットには、これとこれを入れると評価関数を利用して盤面の結果が帰ってくる
のように要件定義仕様書で必要とされるものを実現するためにシステムとして何が必要かを考えて作成する


ここまでは上流SEが作る
当然技術的な知見が必要である
実現できないことを客の要望として受け入れてはいけない
客の要望をどのようにシステム化するかイメージできなければいけない
またここから作業するデベロッパーの設計、コードレビューをできなければいけない
0243デフォルトの名無しさん2012/02/13(月) 08:17:36.02
ここからはデベロッパーの仕事
詳細設計書(ソフト設計)
基本設計で必要となった機能をクラス、関数の引数、返り値レベルまで落とし込んで作成する

実際にコードレベルでどのように作成したら、品質を確保して動く物を作るか考える

ここではソフト設計を行う(デザインパターンを適用するならここ)

しかしこれはほぼコーディングしているのと同等な作業であるためコーディングせずに設計書上で頭を悩ませる必要性がわからない
引継のためにドキュメントが必要という主張をよく聞くが それは設計書ではなくAPI仕様書などであり、実装完了前に存在する必要はない
コードを作成した後コードからクラス図とAPI仕様書を自動生成すれば充分である


そもそもコードを書かずに完璧なコーディングや設計ができるというのは思い上がりも甚だしい(もちろん実装しながら補助的に、頭の整理をするため、他人に簡易的に説明するためにUMLを利用するのは有用である)

ひどいところでは擬似コードみたいな実装に1行ごとに対応したものを書く
それならコード書けと言いたい

この勘違いは、コードを成果物と捉えているため
成果物はあくまでも実行できるバイナリであり、コードは設計書の1つである
設計書のための設計書は必要ない
0244デフォルトの名無しさん2012/02/13(月) 08:44:34.18
例えばの話だ。

俺はプログラマだ。
そして俺がデザパタ知らなかったとする。

そういう場合でも俺は問題なく作れるよう、
クラスとその役割、書き方、そしてそうした理由など
俺が間違えなく書けるようにちゃんと書いておけという話。
プロだろ?
0245デフォルトの名無しさん2012/02/13(月) 09:04:15.52
このソフト設計の工程考えることは、保守性、拡張性などを意識した設計となる
動く者を作るだけなら時間をかければ一年目のプログラマーでも可能
(1つのクラスで全機能実装とか)

そのため日本のIT業界では品質無視のクソコードが量産される
そしてクソを作ったSEはこのあと上流SEとなるため、デザインパターンもわからない糞上流SEが生み出される

本来はコーディングと平行しながら設計していくが、日本では中流以上のSEが脳内糞コンパイラで糞設計を行う
このSEはデザインパターンも知らずいったい何を目指して設計しているのか?
その1つ1つのクラス分けの意味を説明して欲しい
オブジェクト指向設計の原則は最低限理解すべきものであるが、大半が存在すらしらない


そして日本では、その糞詳細設計書をそのままコードに落とすのがプログラマーの仕事だと考えられている
(当然設計書そのまま実装したところで動かない。何度でも言うがコードと対応するなら最初からコードを書け。
結局プログラマーが現実に合わせるために修正するため、詳細設計書の作成作業は無駄というか足枷となる。)

そのためプログラミングは単調作業であり評価に値しないというのが日本の風潮
その結果どうなったかは、近年騒がれている日本のIT業界の結果を見れば明らか
また優秀な人間は外資、日本なら技術者を評価しているモバゲーやDeNAなどの儲けているベンチャーに移っている


とSIerでもその下請けでもない第三者の感想
0246デフォルトの名無しさん2012/02/13(月) 09:10:53.04
>>244
そもそもプログラマーの役割を勘違いしている
デザパタを適用すべきどうかを検討するのが仕事だ

俺の仕事はソフト設計ではなく、関数の中身を実装することたというなら一生IT土方として頑張ればいい


もちろん詳細設計書のクラス図でデザパタを使っていたら、おもえはクラス図のとおりにクラスを作れば、理解していなくても自然とデザパタを書いたことになる
まあそんな環境の上が設計を理解しているとも思えないから、デザパタも登場しないだろう

やはり君にはデザパタは必要ないから忘れていいよ
0247デフォルトの名無しさん2012/02/13(月) 09:17:17.29
>>244
何も考えず手を動かす単純労働者なら説明はいらない

工事現場の人間に、建築家は設計理論を0から説明しないでしょ
こことここにネジを止めろで充分

とSIerは考えていると思うよ
0248デフォルトの名無しさん2012/02/13(月) 09:24:10.20
>>245
>技術者を評価しているモバゲー
これを取り消せ。統括している奴が「出来すぎる奴のコードは他人に解らないからダメ」とほざいてた。
0249デフォルトの名無しさん2012/02/13(月) 09:32:52.02
糞ゲーで情弱相手に課金するしか能のない会社だろ
0250デフォルトの名無しさん2012/02/13(月) 11:45:18.27
>>248
それは間違ってないと思うけどな

Cとかperlの極めすぎた奴のコードとか読みにくすぎる
スキルの使う方向を間違えてる
設計はあくまで第三者を意識して書くものであるべき

コード行数なんて短くしてもなんの意味もない(読みにくいけど短いコードに意味があるなら教えて欲しい)

すべての行で速度面の最適化をするのも意味がない
多少遅くても読みやすさを重視するべきで、本当に速度が求められるようになったらしっかりとボトルネックを解析してそこを最適化していけばいい
ボトルネックの要因は特定のループ内の処理が大半という統計もでてる
0251デフォルトの名無しさん2012/02/13(月) 11:56:49.34
俺のスキルが高すぎて回りに理解してもらえないって考えは
根本的な所でスキルの使い方間違えてるわな
周りの人間に簡潔に簡単に理解してもらうための手段であるべきなんだよね

身勝手なやつが現場入ってるとプロジェクトは燃えるし
他人の身勝手フォローするには
そいつを超えるスキルが必要なんだよね
0252デフォルトの名無しさん2012/02/13(月) 12:03:46.03
そういう連中には君は理解しやすいコードを書くスキルがない雑魚だねっていうとぐぬぬってなるよ
0253デフォルトの名無しさん2012/02/13(月) 12:07:01.62
コードを理解する能力があればいいんだろうけどな。
ビルゲイツは、プログラマの能力を知りたければ、
ソースコードを渡してすぐ読ませて、
理解度を確かめればいいみたいなこと言ってた。
02542502012/02/13(月) 12:17:08.61
ちなみにScalaが読みにくいから駄目という批判ではないよ

Scalaのような関数型言語の命令には意味もメリットもあるし、読みにくいのは単にその他の人が関数型言語を理解していないというだけだから

その言語の素直な実装なら文句はない

複雑なテクニックを意味もなく使うのは反対
Perlの無意味なワンライナー、Cの意味不明なマクロ、トリプルポインターなど
0255デフォルトの名無しさん2012/02/13(月) 12:25:57.63
code jamでうっぷんをはらそうぜ?二年前に知ったんだけどけど毎回参加し忘れるwww
いつからだっけ
0256デフォルトの名無しさん2012/02/14(火) 01:08:12.41
>>25
コードが仕様書。テストが仕様書。
自然言語で書かなきゃならない理由は実はない。
0257デフォルトの名無しさん2012/02/14(火) 01:11:07.91
>>38
プログラム書けない(書かないのでなく書けない)なんちゃって技術者が
自分の仕様書書きが仕事として意味が薄いもしくは無い
という事実から眼を背けるため
0258デフォルトの名無しさん2012/02/14(火) 01:13:44.55
>>55
アホか、YAGNIとデザパタは相反するものじゃない
0259デフォルトの名無しさん2012/02/14(火) 01:16:19.39
>>211
全然違う
0260デフォルトの名無しさん2012/02/14(火) 01:22:54.63
>>131で終わってたな。
0261デフォルトの名無しさん2012/02/14(火) 05:51:41.12
仕様書くん消えたな
0262デフォルトの名無しさん2012/02/14(火) 06:01:30.52
>>258
デザパタ特有の意味不明な接続クラスを説明できるならそれもいいけどね
大抵できる奴いないよ
デザパタだからとか繰り返すだけ
でもそんなのビジネスの場所じゃ通用しない
0263デフォルトの名無しさん2012/02/14(火) 06:08:31.15
「ここで何でアブストラクトファクトリーなんか使っちゃってんの?」
「それは・・・・」

っていうのがデザパタの本来の使い方だよな。共通語としてのさ
逆に考えれば、そういうデザパタ使って粋がっちゃうやつを詰めるためにも使える

GoFもそういう風に皮肉っぽく発表すればよかったのにな
悪いデザイン集、みたいな感じでさ
0264デフォルトの名無しさん2012/02/14(火) 06:12:26.27
>>263
でも相手が知らないときに
「はぁ?知らないの?ださww」
って対応できないでしょ?
これができるのなんて匿名掲示板ぐらいじゃないの?
0265デフォルトの名無しさん2012/02/14(火) 06:22:00.25
いや、そういう意味じゃないから。
相手はデザインパターン信者っていう過程でさ

「なんでここで余計なクラス使っちゃってんの?」
「これはアブストラクトファクトリーです」ってなるじゃん

それを
「なんでここでアブストラクトファクトリー使ってんの?」
って聞けば詰まるじゃん。そういうことよ

なんていうか忘れたけどさ、言葉自体には良し悪しの無いものを
さも言葉自体が良いものであるように使ってるのを詰めるんだよ

なんていうんだっけ
0266デフォルトの名無しさん2012/02/14(火) 06:23:36.54
>>262
それはそいつがデザパタの意図を理解せずに使っているというだけでデザパタ批判にはならない
接続クラスも言語仕様によるからデザパタ批判にはならない

接続クラスというのは、Javaの型継承でインターフェースを定義するためにわざわざ新たなファイルが作成されることが無駄ということだよね

動的型付け言語なら満足なの?

インターフェース(ファイルの有無は関係ない)の利点を理解できないなら、デザパタの前にオブジェクト指向設計の原則を勉強するべき
特に開放閉鎖原則と依存関係逆転の原則を理解した方が良い

近代のオブジェクト指向言語使っていてこれを理解してないのは、C言語で未だにGOTO乱用しているようなもの
せっかく便利になった点を活かしてないということになる
0267デフォルトの名無しさん2012/02/14(火) 06:27:24.91
重い出せなくてもやもやする

無・良・みたいな言葉だった気がする

価値中立とは別の言葉があった気がする
0268デフォルトの名無しさん2012/02/14(火) 06:28:48.96
>>266
おいおい、>>262じゃないけどデザパタ批判してるわけじゃないだろ
また喧嘩になるぞwww
0269デフォルトの名無しさん2012/02/14(火) 06:40:18.34
デザパタ厨批判って感じだな
0270デフォルトの名無しさん2012/02/14(火) 06:46:57.01
もうスレも1/4越えたしいい加減にしようぜ
デザインパターンそのものを批判してるならまだしも
デザパタ利用者批判はスレ違い通り越して板違いだろ

続きをやりたいならマ板にスレたててそっちでやれよ
0271デフォルトの名無しさん2012/02/14(火) 06:58:27.38
いやデザパタ信者の戒めとして必要だろ。
なんでも分類排除すればいいってもんじゃない。
2ちゃんねるのように閑散とするだけだ。
0272デフォルトの名無しさん2012/02/14(火) 07:00:14.59
>>268
見事にレス追ってなかったわ

なんだろう
議論がよくわからないけど、詳細設計書通りに書かなければいけないというのなら、コーディング前に詳細設計書ができ上がっている体制そのものに反対
きっとその設計書は糞だから

詳細設計書に従う従わない以前の問題
詳細設計書がいらない


でも現実的には詳細設計書があるから、そこから勝手にデザパタのインターフェースが用意するのが許されるか許されないかという話かな
現場で上流と交渉しろw

このクラスの意味は?依存性強いけどいいの?と思い当たる問題点をつっこんでみる
ろくに説明できないだろうから、何を基準に設計してるんですか? この設計は糞です。と延々と説明してみればいい

重要なのはここで対案を出すこと、批判だけなら誰でもできる
新しい設計を見せてメリットを説明する
理解できないなら勉強不足ですねと一言

最低限OOを理解できないのは、原始人がスマートフォンを見て鏡や金槌として使うようなもの

そして移動となる…

やっぱり体制が糞だ
0273デフォルトの名無しさん2012/02/14(火) 07:04:57.03
ていうか設計書(仕様書くんはこれを仕様書と呼ぶが)が
本当にコードと一対一対応してるなら
設計書を直接コンパイルすればいい

コンパイル出来ない言語(自然言語)で書く意味が無い
0274デフォルトの名無しさん2012/02/14(火) 07:06:51.21
>>273
ほんとその通りコンパイラないのに動くかどうかどうやって判断するんだよ
それとも詳細設計書は動かない前提で書いてるのか
0275デフォルトの名無しさん2012/02/14(火) 11:00:17.06
経験上GoF()使った設計が通用するのは
自分で好き勝手好きなものつくってるときだねぇ
0276デフォルトの名無しさん2012/02/14(火) 13:25:38.18
>>275
自分がやってる仕事が
他所ではコンパイラの仕事と言われた気分はどう?
0277デフォルトの名無しさん2012/02/14(火) 19:53:28.50
自分に必要な道具を取捨選択してる
人間にとってはどうでもいい話だよ
使ってる道具で優劣は決まらん
0278デフォルトの名無しさん2012/02/14(火) 20:50:31.49

                               __ノ      `ゝ
                   ,. '"´  ̄ ̄ ̄ ``ヽヽ  ニ三
                  ,.イ ‐‐‐- 、ニニニ ,,,,__  ヾ:\ フ     ち
                /:/,r─‐-、 -_-_- ニニミミヽヾ:::ヽ   も   く
 .r==っ         |::レ'"  ̄``    ,r'ニニヽ u  ';:::::',   っ  わ
 ト、   |.          l:l   r- 、 ゙,  ,:'´  `ヽ!   i::::::l   て  し
 {::|   |           _リ`ミニヽ @)ノノ ,: .r @ `)ノ 。  l::::::!  ね  か
 {::l   |        レ′   ̄`フ´  `ニ"´ ̄_ノ u  !::::!   ぇ
 レ′ r!        ノ u  ,,r ("´`      ̄     l::/  !
 |  /.:|         j!  ,,、、、、L _rソノ⌒ヽ  u  ! ⌒ヽ
 |  ノ.:::L_     ノj 彡'"´二ニニ'ーミミヽ. u   .! ノ ノノ
"´ ̄   __ノ     ,′ノ >イ.-┴┴┴-ヽ ゙ミ;,   ノ /_ノ/⌒7
,. -‐''"´ )  ̄`` ,.{. ( { L.:.:.:.:.:.:.:.:.:.:..ノく;ハ ,:′ /_ ノ  l/ V^V^V^
  "´ ̄`)  二ニ彡ト、  ヽ、 ``""""´__ノ ノ ,:′ / ̄``ヽ、 _ ___
  ‐''"´,.イ´     ヽl    '" ̄`¨`ヽ   ´ :′ /.:!      ヽ:厂 ̄
   / /       入              , .イ.:/       !:l
  /  /      / 〈llllliiiiiiiiiー--‐''彡'"´  ,レ′       リ
   /      /   ヾlllliiiir''"´ ,r'´    /        lノ  /.:,
  イ       /     , ヘノ         /    r─- 、」 .::/.:/
0279デフォルトの名無しさん2012/02/14(火) 21:05:01.66
>>275
オブジェクト指向でGoFのパタン一切使わないのは逆に難しくないか?
フレームワークの穴埋めでできてしまうシステムくらいしか思いつかん。
もしくは、よっぽど小さなプログラムか。
0280デフォルトの名無しさん2012/02/14(火) 22:15:44.57
だよな。デザインパターン=よく使うコード
なんだから、普通使うよな。
0281デフォルトの名無しさん2012/02/15(水) 06:05:41.53
仕様書に書いてある構造をそのまま反映させればいいのに
そこでわざわざデザパタを適用する工程を入れる意味がわからない
0282デフォルトの名無しさん2012/02/15(水) 06:08:41.59
そういう具体的な話はよそうぜ?
ここでは仕事の話は無しな

デザパタについて語ろうじゃないか。

・デザパタに含まれてない新しい概念
・デザパタの冗長性。23個もあって無駄な感じするじゃん

こういう観点からさ
0283デフォルトの名無しさん2012/02/15(水) 06:11:08.36
Strategyパターンを使わずに作るってことはポリモーフィズム一切使わないってことだよな
逆に難しそうだな

仕様書くんがまた同じ主張を開始したな
少し前のレスへの反論はできないみたいだからもういいや
0284デフォルトの名無しさん2012/02/15(水) 06:12:07.76
23個全部無駄。とかは無しな

デザパタ自体の否定じゃなくて、重複した概念とかの排除な
デザパタ自体が使える使えないじゃなくてさ、プログラムの構造を記述する共通言語としてどうかってことを語ろうぜ

・全てのプログラムの構造を記述できるか
・一意に記述できるか

っていうさ
0285デフォルトの名無しさん2012/02/15(水) 06:19:21.31
>>282
GoF以外だとマルチスレッドのパターンとSingletonに似ているモノステートしか知らないや

冗長性という意味だとデザパタはほとんが何かしらと似てる
基本的にはポリモーフィズム、委譲、継承のテクニックであるtemplateパターンのどれかを組み合わせて、それに役割を与えたもの
Strategy,State,Commandなんてほぼ同じ
クラス生成系のパターンもほとんど同じ

Singletonは特殊

その似ていることは悪いことではなくて、提案としてはとても良いものだと思う

ただ学びやすくするために基本のパターンを定義して欲しかった
0286デフォルトの名無しさん2012/02/15(水) 06:20:23.31
ゆくゆくはさ、

洗練デザパタを書く -> コード自動生成

っていうのができたらいいんじゃないかなって
0287デフォルトの名無しさん2012/02/15(水) 06:27:13.06
そもそもはじめのデザパタからパターンが増えないってのもおかしなはなしだよねw
よく使うとかいってるけど俺はつかわねぇよ
だってそんな余計なクラス挟む意味ないもの
0288デフォルトの名無しさん2012/02/15(水) 06:28:54.32
実用上は一意でなくてもいいんだけどな。知的好奇心がそういうのを考えさせてしまうwww

実用的なプログラミング言語って、ひとつのことをやるのに何パターンもあるんだよな
それが書きやすさにつながる

デザインする段階だと何パターンもあると逆にめんどくさいのかな
あと複数人で作業する場合は、一意性が逆に良いのかもしれない
0289デフォルトの名無しさん2012/02/15(水) 06:32:11.43
余計なクラス挟む人と、挟まない人がいるから喧嘩になるんだよな

ある処理をするプログラムを書こうって思ったときに
誰が書いても同じにしか書けないプログラミング言語があったとしたら
もの凄い再利用性があると思うんだけど

プログラミング言語じゃなくても、デザインする上で一意に書ける何かがあったら喧嘩にならなくていいよな
0290デフォルトの名無しさん2012/02/15(水) 06:33:19.40
>>281
話をループさせるなよ

>>287
GoF以降もパターンはいろいろ出てるよ
0291デフォルトの名無しさん2012/02/15(水) 08:07:21.12
>>286
俺はコード自動生成には懐疑的
コーディングしながら設計するのが正しいと思ってる

実際にMDAもやってみたけどあれを習得する暇があったらコード書く
ツールに依存するところも大きくて細かい対応がしづらい

理想的にはいいのかもしれないけど、現実的には要件をすべてUMLなどを使って表現するのは逆に難しいと感じた

実際に普及する兆しはない
0292デフォルトの名無しさん2012/02/15(水) 08:08:35.61
余計なクラスってなんだよw
仕様書くんに続く新キャラか
0293デフォルトの名無しさん2012/02/15(水) 10:46:54.38
>>285
やってることは同じポリモーフィズムでも概念的にはStrategyとCommandは全く別物だし、そっちで区別したほうが良いキガス。
0294デフォルトの名無しさん2012/02/15(水) 12:44:52.81
>>293
そうそう
概念としては違うから23パターンそれぞれ必要だと思う
ただクラス図たしての構成は似ているよと解説が欲しい

初めて学習したとき混乱した
0295デフォルトの名無しさん2012/02/15(水) 13:53:47.55
仕様を表現できる言語があればいいんだよな

仕様 -> デザイン
ってやった場合にデザインは一意であるべき。なんでここでコーディングのことを考えないといけないのか
例えば、実行速度とのトレードオフとか

デザイン -> 実装
って全部実装側に押し込められるようなデザインパターン考えようぜ

一番単純な例だとソートだけど、マージソートとか踏み込みたくないじゃん
ソートよりももっと高度な概念もさ、"実装以外の部分"を綺麗に切り離して表現できればいいんだよな
0296デフォルトの名無しさん2012/02/15(水) 13:54:43.89
クラスの図みたいなものを作った時点で実装に踏み込んでるからアウトな

もっと他の概念が必要
0297デフォルトの名無しさん2012/02/15(水) 13:56:18.28
>>291
いや人が多くなってきたらさ、各人がコーディングする前の役割分担が必要じゃん
その役割分担をするときの共通言語みたいのが欲しいじゃん
0298デフォルトの名無しさん2012/02/15(水) 14:19:34.00
>>295
ある程度の抽象度でいいなら出来るだろうしやってるのもあるだろ。
ある意味YahooPipeとかもその一例。
けどどこまでを表現できるかで、やりすぎれば結局汎用言語とおなじになりそな気がす。
いろいろな場面に応じたDSL+細かくしたい時は汎用言語でもかけてシームレスに繋げられるがいいとこな気がす。
0299デフォルトの名無しさん2012/02/15(水) 14:23:35.07
ランチなんたらになるのか
0300デフォルトの名無しさん2012/02/15(水) 16:27:09.25
仕様書をコード化してくれるとかGUIでらくらくコーディングなんて
そんなものあったら仕事なくなっちゃうよ
0301デフォルトの名無しさん2012/02/15(水) 17:19:09.94
仕様書からコード生成したとしても
コードに要求される品質が仕様書に求められる事になって
トータルの生産性は変わらないんだよな

複雑にしすぎるほど小回りが利かなくなる
何度も書くコードの関数化
マクロ化なんてだれでもやってる事
0302デフォルトの名無しさん2012/02/15(水) 17:43:21.71
>>301
いずれ仕様書のコンパイラが開発されるなw

なんだかんだ歴史の中では段階を踏んで抽象化がされてきて、その間のを繋ぐものも存在してるんだよな

CPUと機械語の間にはADDA変換、機械語とアセンブリ言語の間にはアセンブラ、アセンブリ言語とプログラミング言語の間にはコンパイラ

プログラミング言語と要件定義所の間を繋ぐものは、自然言語という観点から他とは大きく違うけど


人間が自然言語から離れるのが一番簡単な解決策な気がしてきた
0303デフォルトの名無しさん2012/02/15(水) 17:53:55.15
>>300
その発想は何十年も前からあって、出てきたのがCOBOL
0304デフォルトの名無しさん2012/02/15(水) 18:09:34.16
のび太「ドラえもんこの仕様で作ってよ」
ドラえもん「出来上がり」
客「何これ?こんなの要求した覚えないぞ?」

仕様さえあればOKなどと甘ったれていては答えは出ぬ。
0305デフォルトの名無しさん2012/02/15(水) 18:13:01.19
企画屋=仕様書コーダー
PG=仕様書コンパイラ

お前たちはただのアプリケーションです
0306デフォルトの名無しさん2012/02/15(水) 23:12:10.55
仕様書や設計書からソースを自動生成するツールを作ったけど、直接ソースを書くより
よっぽど冗長で自由度が低くて手間がかかるずらーってのがよくあるオチだよね。
そもそも要件定義とプログラミングをつなぐものって、自動生成ツールとか
そういう方向じゃなくてパワポで作った紙芝居だとかスクリプト言語でちゃちゃっと
作ったプロトタイプだとかそういうもんだと思うよ。
0307デフォルトの名無しさん2012/02/15(水) 23:21:36.92
ある程度の力を持った人がオブジェクト指向でコードを書けば
普通に作ったらデザインパターンのどれかを再現してるはず。
もちろんデザインパターンの存在を知らなくても。

つまりオブジェクト指向による設計とはデザインパターンの導入といえる。
デザインパターンを否定する人にはこう聞いてみればいい。

オブジェクト指向で設計したこと無いの?って。
オブジェクト指向言語を使ったからって、設計まで
オブジェクト指向になるわけじゃないので注意な。
0308デフォルトの名無しさん2012/02/15(水) 23:24:43.46
デザインパターン = アルゴリズム って考え方もできるよね。

俺らみたいに詳しい人は、アルゴリズム勉強しろ!という
でも馬鹿は、アルゴリズムなんて不要なんていう。
アルゴリズムを導入しても難しくなるだけという。

俺らからすれば、コード書いていれば何かしらのアルゴリズム
使うわけで、不要とか意味不明なわけだが、その意味不明さもわかっていない。

こう例えればわかりやすいよね。
0309デフォルトの名無しさん2012/02/16(木) 00:14:38.67
>>295
> 仕様 -> デザイン
> ってやった場合にデザインは一意であるべき。
誰がやっても同じ結果しか産まないことになってる作業は単価が安いんだけどなw
0310デフォルトの名無しさん2012/02/16(木) 06:32:56.00
>>307
オブジェクト指向言語で、クラスを使っただけでオブジェクト指向設計の原則守れてない人多い
最悪の場合はデータ隠蔽すらしてない

オブジェクト指向言語で構造化プログラミングの時代と同じ物作れるからな

構造化プログラミングのC言語でもGOTO乱用して、非構造化プログラミングできるのと同じように
0311デフォルトの名無しさん2012/02/16(木) 06:43:57.28
オブジェクト指向が流行りだしてからの技術ってのは
まったく根拠のないものが多い
理詰めで考えるとちっともよくないとかむしろ手間が増えてるなんてものもある

そろそろ誰かがこの辺の見直しに入ってもいい頃だと思うがな

仮にさ
デザパタやオブジェクト指向を使って開発したなら
そうでない場合よりどのくらいの工数が削れるよ・・・って説明できる奴いんの?
0312デフォルトの名無しさん2012/02/16(木) 06:55:26.50
非構造化プログラミングから構造化プログラミングに移行したら
どれくらい工数削れるか説明してくれ
0313デフォルトの名無しさん2012/02/16(木) 07:04:29.78
>>311
>説明できる奴いんの?
俺は一般論ではない自分だけの話ならできる。
しかし人によって書き方も効率も違うからね。
工数という概念とプログラムの開発効率の間には個人差がある。
だから工数なんてものは経験的な目安に過ぎない。
0314デフォルトの名無しさん2012/02/16(木) 08:31:05.71
>>311
引数とか根拠のないものつかうより、グローバル変数使った方が手間が少ないじゃん
って言っているようなものだな。
0315デフォルトの名無しさん2012/02/16(木) 08:53:11.31
何仕様書にない関数作ってんの?main関数だけで十分だろ
0316デフォルトの名無しさん2012/02/16(木) 11:29:02.56
>>311
正直コマンドパターン使わないでUndo/Redo実装するとか想像つかんわ。
というか普通にこうするのが合理的だろってモデリング考えたら自然とオブジェクト指向になるよね?
自分は今はオブジェクト指向にと関数型のハイブリッドでやってるけど。
0317デフォルトの名無しさん2012/02/16(木) 11:36:59.74
他人とプログラム組むならオブジェクト指向じゃないと
責任があいまいになるでしょ
0318デフォルトの名無しさん2012/02/16(木) 11:53:25.27
オブジェクト志向厨がいるな。あれって特別な概念じゃないからな
ただ関数全部の最初の引数を同じ扱いにしましょってだけ
0319デフォルトの名無しさん2012/02/16(木) 11:54:29.78
>>309
単価を安くするんだよ。その分をツールを作る俺がもらうんだよ
0320デフォルトの名無しさん2012/02/16(木) 13:02:12.11
>>318
んー言わんとすることはわかるけどわからんでもないがちょっと違うと思うよ?
本来はアクター的な自立分散したものが協調して動くという意味も概念には入ってるだろうし。
まぁその辺はどこまでをどう定義に含めるかって話になるけれど。
0321デフォルトの名無しさん2012/02/16(木) 13:14:25.20
>>318
perl厨?self ishだなw
0322デフォルトの名無しさん2012/02/16(木) 17:24:29.39
>>311
作った後の保守メンテ
責任の所在をはっきりさせる考えだからな

組むだけだったり、一人で作るならオブジェクト指向にこだわる必要は無い

複数人で作るつもりならオブジェクト指向に慣れておけ
0323デフォルトの名無しさん2012/02/16(木) 18:14:49.22
>>311
単純な工数の削減というより、拡張時の安全性、効率性と保守性が主

あとは自分が作成したクラスを安心安全に他社に使って貰う仕組み

構造体だと好きに変更できちゃうけど、クラスならデータ隠蔽することにより危険な変更を制限できる
間違った使い方をしたら例外が投げられる
構造化プログラミングの時代はこの制限を仕様書に書いていたけど、オブジェクト指向の時代からは言語に組み込まれるようになった
0324デフォルトの名無しさん2012/02/16(木) 18:16:21.05
>>318
それはオブジェクト指向というよりクラスの概念
ポリモーフィズムはそれだけでは実現できない
0325デフォルトの名無しさん2012/02/16(木) 18:16:49.63
構造体でも隠蔽できるし
0326デフォルトの名無しさん2012/02/16(木) 18:21:50.05
>>325
ごめん言い方が悪かった
構造体を使ってもオブジェクト指向のデータ隠蔽などは実現できる

構造体を否定したかったのではなく、構造化プログラミングの書き方では実現できないということ
0327デフォルトの名無しさん2012/02/16(木) 18:33:12.33
仮想関数の実態ってファンクションポインタなんだから
いくらでも多態できるだろ

実装者によってちぐはぐになるから
無理というならそうだけどさぁ
0328デフォルトの名無しさん2012/02/16(木) 19:35:11.31
ooplじゃなくてもoopは出来る

oopと非oopを比較したいのか
ooplと非ooplを比較したいのか
はっきりしてくれ
0329デフォルトの名無しさん2012/02/16(木) 19:35:50.04
oppai
0330デフォルトの名無しさん2012/02/16(木) 19:42:09.90
>>328
スレとしてはOOPと非OOP

今語られてるのは、OOPLだろうとなかろうと>>311からするとOOPは根拠がないことらしいから、それに対する反論でしょ
0331デフォルトの名無しさん2012/02/16(木) 19:52:20.50
とりあえず「まったく根拠がないもの」を列挙してほしいな
0332デフォルトの名無しさん2012/02/16(木) 20:14:39.02
>>311
お前さんが見過ごしてるだけで見直しは常に入ってるよ。
たとえばクラス設計でも大昔は継承使いまくって差分プログラミングしたり
複雑で自律したクラスこそが正しいOOだって言われたけど、今は真逆で
委譲やインターフェース使って責務の少ない単純なクラスを作るのがいいって
形になってるし、Javaのフレームワークなんかでも昔は超重量級のデザパタ
どっさりな出来だったけど、今はアノテーションやリフレクションを使って
オブジェクト指向的ではなくても簡単に組めるのが流行ってる。
言語の機能なんかでも関数型言語ライクにクロージャや型推論使って
手短に書けるのが最高って流れだろ。
0333デフォルトの名無しさん2012/02/16(木) 21:32:19.92
度々登場する反デザパタ、OOP派はことごとく反論せずに消えていくな
0334デフォルトの名無しさん2012/02/16(木) 22:15:46.24
おれはデザパタを勉強し始めて、はじめてオブジェクト指向のすごさを知ったぞ。
デザパタを始めるまでは、オブジェクト指向なんてどうせ本を売りたいために学者系の
エンジニア達が騒いでいる程度に考えていたぞ。
0335デフォルトの名無しさん2012/02/17(金) 00:15:55.25
オブジェクト志向って
A.Bってやつを定義したらそれを誰にでも、a.B、b.B、c.Bって使えるってのが本来の意味じゃね?
0336デフォルトの名無しさん2012/02/17(金) 01:27:32.89
デザパタなんてのは嬉々として使うものじゃない。
使わなくて済むならそれに越したことは無い。使わざるを得ないから使うのであって。
0337デフォルトの名無しさん2012/02/17(金) 01:32:33.89
オブジェクトって目的な、これを忘れるなよ
SVOCのOな。Sだと勘違いやつらが多い気がする
0338デフォルトの名無しさん2012/02/17(金) 02:17:49.49
>>335
バカすぐるならとりあえず黙っとけ
0339デフォルトの名無しさん2012/02/17(金) 02:21:45.64
おいおい、一見バカに見えるやつがとんでもないヒントを与えてくれることだってあるんだぜ?
閉鎖的すぎる。じゃあな
0340デフォルトの名無しさん2012/02/17(金) 02:42:51.43
俺も昔はオブジェクト指向ってなんだって言われて上手く
説明できなかったけど今ならライブラリ(フレームワーク)を
例にしてこんな風に説明するな。

オブジェクト指向を使わない普通のライブラリだと
上からただ処理を呼び出して利用することしかできない。
でもオブジェクト指向で作ったライブラリだと呼び出し側から
ライブラリの中に自前の処理+処理に紐付く属性を埋め込む
ことができる。このライブラリの中の処理の呼び出し側と
呼び出される側の関係の逆転こそがオブジェクト指向の
最大のメリットであり本質。
あと、クロージャを使ったりCで構造体+関数ポインタを使っても
同じことが出来るけど、オブジェクト指向言語ってのは
それ専用に構文を用意してて統一されたルールのもと
みんなが再利用し易いようにしてる。
0341デフォルトの名無しさん2012/02/17(金) 02:54:52.40
デザインパターンを使ったら工数が減るのかとか
何馬鹿なことを聞いてるんだ?

まず、オブジェクト指向でちゃんと設計したら
それはデザインパターンになるんだよ。
デザインパターンを知らなくても普通に作ったらそうなる。
だって、そもそも「よく使われるパターン」なんだから。

工数が減るかどうかは、自分でパターンを考えて思いつく時間と
本に書いてあるパターンを参考にするのとどっちが早いかを考えれば
答えはわかるだろ。

アルゴリズムと一緒だよ。自分でクイックソートを思いつくのと
クイックソートの実装をパクるの。どっちが早いよ?

0342デフォルトの名無しさん2012/02/17(金) 02:55:47.53
>>340
そいつはオブジェクト思考の恩恵ではあるが本質からは微妙に外れている。
「ライブラリに使用者が振り回されている」という忌々しい過去からの脱却に過ぎない。
0343デフォルトの名無しさん2012/02/17(金) 03:06:14.80
デザインパターンを否定している人は、
デザインパターン云々ではなく、
単に技術力が低いから
工数かかってるだけ。
0344デフォルトの名無しさん2012/02/17(金) 03:14:51.47
>>342
新人や古臭いオッチャンに説明するときは、まずはじめに
メリット説明しないと理解してくれないって。
あと古臭いけど昔は勉強熱心だったオッチャンの場合だと
その説明に加えて、クラスはモジュール凝集度の
情報的凝集度を実現するためのものだって説明すると
ああそいうことだったのかって言って本質も理解してくれる。
0345デフォルトの名無しさん2012/02/17(金) 03:33:46.45
>>344
凝集度ってのは本質的な言葉だな。
ただどう凝集度を上げるかって具体的な事がわかっているかは別だが。
0346デフォルトの名無しさん2012/02/17(金) 03:40:58.06
おっさんはそれっぽい用語使ってれば
簡単に騙せる
0347デフォルトの名無しさん2012/02/17(金) 05:05:17.01
>>340は酷いオレオレ定義だな
こんなのを教えられる新人やおっちゃんがかわいそうだ
0348デフォルトの名無しさん2012/02/17(金) 06:30:14.30
で?
お前等、その技術使ってどのくらい工数減らせるの?

現場で聞かれるのはいつもこんな声ばっかりなわけだが・・・
役に立つのかね?君らの技術って
0349デフォルトの名無しさん2012/02/17(金) 06:38:58.98
>>344
凝集度結合度の話なら、機能拡張しても既存モジュールに影響を与えない開放閉鎖原則と、実装への依存を避けられる依存関係逆転の原則を伝えるのが一番

企業の研修では昔ながらの関数レベルでの凝集度結合度の説明はするのに、オブジェクトレベルでの話が一切ないんだよな
0350デフォルトの名無しさん2012/02/17(金) 06:45:43.75
>>348
またループか
0351デフォルトの名無しさん2012/02/17(金) 06:49:26.05
>>348
上に色々書いてある
それらについてはどう思うの?

もし勉強不足で判断材料がないなら本を読んで勉強しろ

そもそもどうして自分は知らなくていいと思ってるのかがよくわからない
オブジェクト指向言語はこれだけ当たり前になっているんだから、とりあえず知るとこから始めないと判断できないでしょ

よくわからないから否定するっていうのはおかしい
0352デフォルトの名無しさん2012/02/17(金) 07:09:49.75
>>351
だってソフトが完成しないってまあ大抵ないじゃん
んで工数は多くとれたらとれた分だけ目一杯使うわけだから
したらはじめの見積もりの根拠がソフト開発のすべてといっていいよね

だったら既存のやり方から±いくらの根拠を持たせられるかが
ソフトウェア技術の価値のすべてだと思わない?(金を出す側からしたら)
どんなにすばらしい技術を使ってたって見積もりの時点で1hも工数が減らせないんじゃなんの価値もない
0353デフォルトの名無しさん2012/02/17(金) 07:26:52.10
>>352
どんなに素晴らしい見積もりをしても出来上がった物が
バグだらけじゃ意味ないって社長がお前に言ってますよw
0354デフォルトの名無しさん2012/02/17(金) 08:12:54.92
バグだらけ?いいえ
「仕様です」
0355デフォルトの名無しさん2012/02/17(金) 08:27:20.00
>>352
ソフトウェア開発が最初から最後まで1つもトラブルなく進むのなら、オブジェクト指向だろうがあまり関係ない


現在は、純粋な開発よりもデバッグやテスト、拡張など品質を保持することが多くの時間を割いている
オブジェクト指向はこれらの対応を容易にする


まずバグがある
オブジェクト指向ではスコープを限定して問題を限定的にして保守性を上げるための方法論がある
これによりデバッグ効率が上がる

更に要求の変更もある
これにより機能を拡張しなければいけないことが多い
このときオブジェクト指向では拡張を容易にする仕組みがある


でそれをどうやってオブジェクト指向で実現するのかがわからないと思うから勉強しろと言ってる


自転車を与えられても、乗り方がわからず自転車を手で押して歩いていたら重いだけで、速く移動できるというメリットがわからないのと同じ

オブジェクト指向言語を与えられても、使い方がわからず構造化プログラミングだけで書いていたら余計な機能が増えただけで、品質が上がるというメリットがわからない

乗りこなし方を勉強しろ

0356デフォルトの名無しさん2012/02/17(金) 08:35:39.85
>>348
実際に工数は減るよ。

例えば、開発全体の中でデザインパターンが適用できる部分がn%あるとする。
デザインパターンを参考に実装するのと
自分で考えて実装するのでは、参考にしたほうがm倍(1以上)早くなる。

つまり全体のn%の部分が1/mの時間ですむ。

nとmは開発内容と技術力で変わってくるが、
工数が増えるってことはない。
0357デフォルトの名無しさん2012/02/17(金) 08:55:46.33
我々が目指しているのはプロジェクトを成功させる方法だが。
プロジェクトが大失敗する方法も存在すると思う。
特許庁の新型基幹システム開発失敗なんかもそうなんじゃないかと推測する。
ttp://sankei.jp.msn.com/politics/news/120124/plc12012417070013-n1.htm

新しい物や人材を取り入れず酷く保守化している企業に未来は無い。
古来から伝わる普遍の法則「栄枯盛衰」である。
俺は滅び行くものに対して>>355のようにたしなめようとは思わない。


0358デフォルトの名無しさん2012/02/17(金) 08:59:50.10
>>339
二度と来なくていいよ。お前にはまだ早すぎる。
0359デフォルトの名無しさん2012/02/17(金) 12:51:35.88
>>357
現実問題日本では滅びないどころか最大手だけどな

特許庁の件でTSOLは、疎結合にするためにコピペでコード書いていたらしいからな

しかもその反省点が「コピペしたコードの管理が甘かった 管理するためのシステムの導入が必要」だからなw
終わってる
0360デフォルトの名無しさん2012/02/17(金) 13:30:20.27
何疎結合のためにコピペってwww
0361デフォルトの名無しさん2012/02/17(金) 14:17:10.66
日本のお役所は別次元の世界だろ
同じ議論のテーブルにのせちゃいけない
0362デフォルトの名無しさん2012/02/17(金) 17:29:29.57
>>360
これが日本の現実ですw
特許庁のシステムはコピペコード量産で 作ろうとしていた? nnasakiのブログ http://nnasaki.hatenablog.com/touch/entry/2012/01/30/010629
0363デフォルトの名無しさん2012/02/17(金) 17:52:49.79
よくあるWEBとRDBなんて
コピペコード以外書きようなくね
多少はフレームワーク拡張かけるけど

なにも言われなくても独立保守運営できるようにするのが常識だし
まともな客なら三層やMVC指定してこね?
0364デフォルトの名無しさん2012/02/17(金) 18:18:04.87
客というのがエンドユーザなら、MVCでなんて指定するわけない
客というのが元請けならありえるが
0365デフォルトの名無しさん2012/02/17(金) 19:25:26.89
特許庁のは設計段階でのとん挫だよ。コードはまだ書かれてない。コピーされていたのは設計資料。
設計専門のSEは千人、設計資料は図表だけでも九万を超えてたみたいだから、変更があったら大変だっただろうね。
0366デフォルトの名無しさん2012/02/17(金) 22:50:48.12
コード書かない段階でいきなり1000人も人集めてドカンと一気に
全機能作ろうとしたの?
現場の人間のオツムがハムスター並に貧弱だったか、ボンクラを
現場に押しこむ才能に長けた超優秀な営業がいたかどっちかだな。
0367デフォルトの名無しさん2012/02/17(金) 23:23:18.82
>>356
んな余計な構造挟むぐらいならシンプルに仕様書の構造をまんまクラスに落とせよ
0368デフォルトの名無しさん2012/02/17(金) 23:58:41.25
こっちはお前の主張に対して反論してんだから
最初の主張を繰り返すんじゃなくて反論に対する反論を書けよ

話が前に進まねーだろ
0369デフォルトの名無しさん2012/02/18(土) 00:10:52.66
お前らが言ってる仕様書ってどういうもののこと?

俺んとこだと

3-1) ○○をアニメーション表示し、avi形式で保存できること。
3-2) アニメーション表示はコマ送り再生でき、刻み幅を指定できること。

みたいな調子なんだが。だから仕様書の構造をそのまんまクラスに、ってのがピンとこない。
0370デフォルトの名無しさん2012/02/18(土) 00:16:12.94
>>366
流れとしてはこんな感じみたい。
最後まで「業務要件確認書」は提出されなかったってあるから、ウォーターフォールで失敗するときによく見る例。

1. 60人体制で設計開始。遅延のため450人体制まで増強。完成した設計書は要件に一致しておらず品質もバラバラのため作り直し。
2. 新規に設計し直し。徐々に増強して1,300人体制へ。
  出来上がった設計書を公開して、開発業者に入札を求めたが、品質不十分のためすべての業者が開発不可能と回答、入札延期。
4. 700人体制に一旦削減後、最終的に1,000人体制で設計したが、完成した設計書はまたも品質不十分で開発業者現れず、入札延期。
5. 第三者によって設計書の一部を調査した所、残件を2,600件発見。更に調査すると7,000件へと増加。
  未だ要件確定しておらず、残件の全数把握は不可能と判断。
  設計業者から修正に2年追加必要との回答があったが、その見積方法も確実性も不透明のためプロジェクト停止を決定。

「特許庁情報システムに関する調査委員会」からの調査報告書の提出について
http://www.meti.go.jp/press/20100820003/20100820003.html
特許庁情報システムに関する技術検証委員会
http://www.jpo.go.jp/cgi/link.cgi?url=/shiryou/toushin/kenkyukai/jyouhou_iinkai.htm
0371デフォルトの名無しさん2012/02/18(土) 00:30:57.75
>>369
それは仕様でも、要件定義とか外部設計じゃない?
たぶん >>367 の言ってるのは、その先の仕様(内部・詳細設計)じゃないかな?
>>370 みたいに上流(要件定義, 設計)と下流(開発=実装)が分かれてる場合だと、細かく設計してくれるのかも。うちも見たことない。
0372デフォルトの名無しさん2012/02/18(土) 00:44:12.71
>>370
プロマネに人月の神話をプレゼントしたい
0373デフォルトの名無しさん2012/02/18(土) 01:29:36.89
>>370
東芝ソリューションのどん臭い開発の進め方に担当者の心証最悪で
まとまる話もまとまらず無駄なドキュメントだけが量産される毎日。
60Mステップで見積もり出してきて規模がなぜそんなに膨らむんだ
って突っ込んだら30Mステップで出来るでできるけど設計書の修正に
2年かかりますよって舐めた回答に特許庁はブチギレ。
間に入ってる悪センチュアも結局東芝に責任押し付けて逃げ切りで
国民の血税はドブに捨てられました、チャンチャン。( ;∀;) イイハナシダナー
0374デフォルトの名無しさん2012/02/18(土) 01:54:27.94
っていうか役所はドキュメントばっかり求めすぎなんだよ
0375デフォルトの名無しさん2012/02/18(土) 02:28:24.62
日本語のドキュメントにどれだけの厳密厳格性があるのか?
いや英語で書いてもおなじかもしれないが
というか、今や共通語たる C/C++ でドキュメント書いたほうが
0376デフォルトの名無しさん2012/02/18(土) 04:46:12.50
人間をシステムに合わす方が100倍効率がいいことに気付くまで変わらない
0377デフォルトの名無しさん2012/02/18(土) 05:40:36.68
ループしすぎだな
確信犯か故意犯かはわからないけど、仕様書くんは、繰り返し同じことしか言わないから相手にしないほうがいいな


とりあえずみんなにGoF本だけでなく、オブジェクト指向のこころを読んで欲しい
0378デフォルトの名無しさん2012/02/18(土) 07:09:41.07
>>377
オブジェクト指向だったら元はシミュレーション目的なんだから使い方は仕様書君のが正しいだろうな
デザパタのような中間クラスを挟むときはなんらかの説明は必要
0379デフォルトの名無しさん2012/02/18(土) 07:14:11.49
2chで人気だった「憂鬱なプログラマのためのオブジェクト指向開発講座」通称「憂鬱本」と
デザパタでのクラスの作り方は根本から違ってる気がする

現場の大半の人間はデザパタなど知らないし
通常は憂鬱本と同じ作り方をする

憂鬱本の作り方だとデザパタを入れるタイミングがまったく不明なのはたしかだな
0380デフォルトの名無しさん2012/02/18(土) 07:35:46.50
>>378
説明のできないクラスなんてデザインパターンに限らずあってはいけないだろ
0381デフォルトの名無しさん2012/02/18(土) 14:16:24.97
大昔に読んだんで記憶が薄いが、叩かれることが多い憂鬱本は
ドメインレベルのクラス設計をそのままコードに落としてたようなきがする
デザインパターンが出てくるのは実装レベルのクラス設計、混ぜるな危険な関係
0382デフォルトの名無しさん2012/02/18(土) 14:43:25.36
>>371
アンタも見たことないですかい。
見てみたいもんだね、コードに直に落とせるレベルの仕様ってものを。
大手の会社はそーいうのあるのかな。
0383デフォルトの名無しさん2012/02/18(土) 15:21:53.46
>>382
大手ではないけれど、現実の業務アプリの設計書/ソース一式が、
以下のリンク先で完全公開されている

・Ruby × TPJ|高額合算システム(松江市様)
  http://www.tpj.co.jp/ruby/case001_01.html

このページの設計書(specification.zip)に含まれる詳細設計書というPDFが、
その「コードに直に落とせるレベル」の仕様書の具体例になる

あと自分は大手メーカの業務アプリ開発に関わったことがあるけど、
そこでも上記リンク先と同じ「コードに直に落とせるレベル」の
詳細設計書を書いた、いや正確には、泣きながら書かされたw
0384デフォルトの名無しさん2012/02/18(土) 15:25:57.62
>>382
こういう手書き時代の処理設計書をそのまま引き継いだようなドキュメントを
Excel方眼紙上でチマチマ書いてる現場が日本にはまだ沢山存在するらしいぞ。
DBに変更が入るたびにExcel方眼紙上のカラム名を変更して回ったりと
賽の河原の石積みみたいな作業を何の疑問も感じず続けてるらしい。
お客さんにシステムを提案する前にお前らの開発を効率よくするシステムを
作ったほうがいいだろって思う。

http://www.asu.ac.jp/nkato/hd2/sys/gazo/zu2-6.gif
0385デフォルトの名無しさん2012/02/18(土) 15:47:15.16
(wikiより)仕様とは、材料・製品・サービスが明確に満たさなければならない要求事項の集まりである

だーかーらー設計とは別だっての。仕様書はデザインパターンを考慮しなくていい。
デザインパターンを考慮するのは設計書であって仕様書ではない。
0386デフォルトの名無しさん2012/02/18(土) 16:00:58.83
会社によって呼び名は違うけどユーザー企業の担当者に見せる資料は仕様書や外部設計書と
呼ばれて、開発者向けの資料を設計書だの内部設計書と呼ばれてるな
0387デフォルトの名無しさん2012/02/18(土) 16:05:06.53
盲の作り出した洞察も熟考もない単語をそのまま使うなんて自殺行為
0388デフォルトの名無しさん2012/02/18(土) 16:36:46.43
>>385
だーかーらーwikiとWikipediaとは別だってのw
0389デフォルトの名無しさん2012/02/18(土) 18:08:39.89
WikiWikiWebも知らない若造世代がいきがりやがって
0390デフォルトの名無しさん2012/02/18(土) 18:10:41.96
仕様書はそのままコードに落とすべきだって言ってるやつは、
オブジェクト指向が普及する以前でも、仕様書を元に設計を行って、
それからコーディングするのが基本だった事実をどう思ってるのか。
0391デフォルトの名無しさん2012/02/18(土) 18:17:09.31
>>390
以前でも、だと今もそうであるかのように誤解を産むな
0392デフォルトの名無しさん2012/02/18(土) 18:20:40.64
え?今は設計しないの?
まぁ、フレームワークガチガチで設計しようのない案件は増えてるけどさ。
0393デフォルトの名無しさん2012/02/18(土) 18:23:18.83
>>392
ズレてるな
> 仕様書を元に
の部分だよ。みなまで言わなくても分かると思うんだが
0394デフォルトの名無しさん2012/02/18(土) 18:29:16.23
余計わからなくなった。
仕様書じゃなかったら何を元に設計するんだ?
0395デフォルトの名無しさん2012/02/18(土) 18:29:48.95
>>383
お手数かけてスマン!ありがとね!
高額合算システム詳細設計書_別紙3)プログラム仕様書.pdfを見ればいいのかな?
「コードに直に落とせる」気がまったくしないがw

>>384
自分もお役所と仕事はしたことがあるが、帳票や画面のレイアウト、
引っ張ったデータの計算方法は別表として随時ざっくばらんに貰ってたなあ。
全部をチマチマ書類にするとなると、それするほうが異常に大変&文書バグ混入の恐れアリって感じだが。
0396デフォルトの名無しさん2012/02/18(土) 18:30:59.44
>>394
じゃあ仕様書は何を元に作ってきたんだよ
0397デフォルトの名無しさん2012/02/18(土) 18:38:36.69
>>396
いわゆる企画書とか要件定義書じゃね?
まぁちいさなものであれば、その辺曖昧ですぐに仕様書起こすこともあるけど、
0398デフォルトの名無しさん2012/02/18(土) 18:39:26.92
>>390
オブジェクト指向と絡める意味が分からんが、昔の世代が詳細設計を
しっかりやってたのはマシンがとろくさくてビルドに時間が
かかって実機上だと試行錯誤できなかったから紙上でしっかりやらざるを
得なかったんだろうな。あと今みたいにIDEのリファクタリング機能
とかないから手戻りもでかかった。
ついでに詳細過ぎる設計書を作らないでコーディングに入るってだけで
設計自体をしないってわけじゃないぞ。
0399デフォルトの名無しさん2012/02/18(土) 18:44:59.30
TSSへのリモートアクセスかよw
0400デフォルトの名無しさん2012/02/18(土) 18:46:29.37
詳細設計書が無いと引継ぎのときに苦労するだろ。
多少開発効率が落ちてもあった方がいいよ。
0401デフォルトの名無しさん2012/02/18(土) 18:48:52.94
今時のプログラミング言語は表現能力も高いし
シンタックスハイライトやらタグジャンプやらリファクタリング機能やら充実してるし
コード&コメントからドキュメントを自動生成できるし
自然言語で書かれた詳細設計書なんて不要すぎる
0402デフォルトの名無しさん2012/02/18(土) 18:50:33.32
OOPLとちゃんとしたコンパイラ、軽いエディタがあれば十分だよ。
贅沢を言えばemacsと言語のリファレンスがあればなおよい。
0403デフォルトの名無しさん2012/02/18(土) 18:56:35.39
コードにそのまま落とせるレベルの
詳細設計書が不要なのは、同意する

けど、コードをみればわかることばかりじゃないよね?
そういったコードに表れないことを書き記したドキュメントは、必要なんじゃね?
0404デフォルトの名無しさん2012/02/18(土) 19:06:00.12
うん。それは必要
0405デフォルトの名無しさん2012/02/18(土) 19:10:08.15
>>403
それを、詳細設計書に書くのがいいのか?という点は議論の余地がある
04064052012/02/18(土) 19:11:08.71
というのも、本当に必要な情報は、通常、詳細設計書に書かれないことだからだ
0407デフォルトの名無しさん2012/02/18(土) 19:19:19.82
コードに現れない大事なことは、
コードを書いて初めて気づいたり
コードを書いてる最中に発生したり
コードを書いたあとに発生したり
するのが殆どだ

しかし、コードを書く前に詳細設計書を書くよつなレガシーな開発スタイルでは、
詳細設計書を書く人間がコードを書かない(しばしば書けない)人間
とが異なるため(しばしば会社も違う)
詳細設計書に追記されることがない
0408デフォルトの名無しさん2012/02/18(土) 19:33:48.91
保守開発や障害対応を行う人のための資料を納品物として
用意するってのは重要なのは誰でも分かる。
でもそれ作るのってコーディング前である必要はないよね。
開発中の開発者同士のコミュニケーションのための資料ならQA表に残すなり
プロジェクトのWikiや共有フォルダに画像やメモ書き置いとくだけで十分な気がする。
ただ全然違う場所で作業する別会社の人間に実装作業を依頼するときは
詳細設計書をしっかり作っとけよ。100%自分が意図したものと
違うものが帰ってくるから。
0409デフォルトの名無しさん2012/02/18(土) 20:05:24.58
いまだに実装を依頼できると思ってる奴は
重大な勘違いをしている
0410デフォルトの名無しさん2012/02/18(土) 20:13:25.82
どうしてだろうな。
詳細設計書がヘボくても
書いた本人が現場で監督すれば100%自分の意図したものになるのに。
0411デフォルトの名無しさん2012/02/18(土) 20:23:10.40
詳細設計書は、コーディング担当者に書かせるものだろ。
当然、意図したものと違った設計書が上がってきたら書き直し。
0412デフォルトの名無しさん2012/02/18(土) 20:55:23.27
>>411
何のために作るんだw
0413デフォルトの名無しさん2012/02/18(土) 20:56:14.20
理解させるため。
0414デフォルトの名無しさん2012/02/18(土) 20:56:43.23
スレタイのわりに、10年位前を思わせるレベルのスレが多くてガッカリした
0415デフォルトの名無しさん2012/02/18(土) 21:05:42.20
前スレまではスレタイ通りだったんだけどね
0416デフォルトの名無しさん2012/02/18(土) 21:05:53.48
>>413
普通それテストでやるよねー
0417デフォルトの名無しさん2012/02/18(土) 21:59:37.74
設計とか、詳細設計という言葉あやふやなのがいけない。

当たり前だが、ソースコードを書かないと動くものはできない
そのソースコードの設計というものが存在する。
これはプロジェクトを成功させたいなら絶対にやらないといけない作業。

このソースコードの設計というものは、大雑把な要求や開発や基本方針のみで設計するもの。
たとえばデスクトップアプリなのかウェブアプリなのかモバイルアプリなのか
サーバーは一台でやるのか、複数台使うのか、クラウド使うのか、
言語は何を使うのか、フレームワークは何を使うのか、珍しい機能、特徴的な機能は何か

これらの大雑把な開発方針からソースコードの設計を行う。
このソースコードの設計プロセスからできあがるものは、実際に動くスケルトンシステムだ。
動くものを作るのだから、ソースコードを書ける人がやるしかない。

作るシステムの機能は備えていないが、その機能を実装することが容易な設計。
そして開発プロセスまで含まれる。機能開発よりも先にそこまで作りあげてなきゃいけないんだよ。
ボタンを押したらどういう処理が行われるとか、そんなのはあとで考える事。
ありえないと思うかもしれないが、フレームワークはどうだ? 先に作られているだろう?

このソースコードの設計を詳細設計とか言ったり、詳細設計に含めたりするからいけない。
コードを書けない素人にも出来る作業だと思われてしまうし、要求分析、設計の後でやるものだと思われてしまう。
俺は(システム)アーキテクチャとか言っているが、
もっと適切な、コードを書ける人にしかできない設計という名前をつけたほうがいいだろう。
0418デフォルトの名無しさん2012/02/18(土) 22:08:06.13
長いな
0419デフォルトの名無しさん2012/02/18(土) 22:09:12.28
あと
フレームワークが先に作られているのを、ありえない、なんて思う奴なんていないだろ
0420デフォルトの名無しさん2012/02/18(土) 22:10:26.63
おでんがたべたい、まで読んだ
0421デフォルトの名無しさん2012/02/18(土) 22:15:07.20
>>417
あと。絶対やらなくてはいけない、なんてこともない
0422デフォルトの名無しさん2012/02/18(土) 22:16:10.81
フレームワークは後で作られるもんでしょ。
なんか似たようなものを何回も作ったな、次も同じコード書くの面倒だし
じゃあまとめて次は楽してみよっかなノリで作られる。
0423デフォルトの名無しさん2012/02/18(土) 22:16:20.37
なぜなら、プロダクトを買って終わり、というソリューションや
やっぱり作る必要ないよね、っていうソリューションもあるからだ
0424デフォルトの名無しさん2012/02/18(土) 22:17:45.62
>>422
そのわりに能動態じゃないんだなw
0425デフォルトの名無しさん2012/02/18(土) 22:20:52.79
>>419
俺が言ってる「ありえない」というのは、
詳細な機能が固まってないうちに
コードを書くということ。

もちろんこれは機能実装のコードではい。
0426デフォルトの名無しさん2012/02/18(土) 22:24:01.64
>>425
その意味でもありえなくはない
詳細な機能を決めるためにコード書くだろ
0427デフォルトの名無しさん2012/02/18(土) 22:26:17.84
>>426
失敗するところは、それをやってないんだよ。

使う言語とフレームワークを適当に選んで終わりとかな。
0428デフォルトの名無しさん2012/02/18(土) 22:28:29.21
紙の上で考えただけで終わりとかな。
0429デフォルトの名無しさん2012/02/18(土) 22:29:13.12
まあ、この先コードかけないエセ技術者はどんどん廃棄されてくだろうな
一度リタイヤした怠け者が使い物になる程緩やかな変化の業種でもないし
0430デフォルトの名無しさん2012/02/18(土) 22:31:18.95
>>429
変化が早いと感じるのはまだまだ2流
さらにベテランになると、昔似たもの見たなって感じにしかならなくなる
0431デフォルトの名無しさん2012/02/18(土) 22:32:52.97
コードかける技術者は設計も出来る
それどころか要件定義もしてたりする

設計だけエセは実はコードを書けない
必然的に設計が下手なまま
それどころか要件定義もおそまつ

これが過去数年間で明らかになったこと
0432デフォルトの名無しさん2012/02/18(土) 22:34:05.47
>>430
そう感じるんだとしたら成長してないってサインと捉えるんじゃないかな普通
0433デフォルトの名無しさん2012/02/18(土) 22:35:22.29
設計と実装なんてかける時間はまさに80:20くらいじゃね?
その設計の中でも、コアな部分が80で補助的なのが20。

コアな部分ってのは、メモリの大雑把な使用方針だったり、
整備しなきゃいけなくなるだろうフレームワークの方針だったり。

だから個人的には設計っていうといつも、トイレの中とか、
風呂とか自転車乗ってる時とかに、ぼんやり考えてるだけのことを指すと思ってる。
文章なんて書いたりしないし、図も描かない。
書いたとしてもチラシの裏にチョロチョロっと走り書きする程度。

設計ってそんなもんじゃね?
0434デフォルトの名無しさん2012/02/18(土) 22:35:57.02
そろそろITの発展も頭打ちになるよ
人間が使える時間で頭に入れられるものなんて有限でたかが知れてるから
先人の足跡を辿るだけで精一杯になる時代がそう遠くないうちに来る
そこまで来たらもう大した進化はできない
0435デフォルトの名無しさん2012/02/18(土) 22:38:31.16
>>433
一面的にすぎる
メンテナンスが長いんだよ
0436デフォルトの名無しさん2012/02/18(土) 22:42:13.93
開発を速くバグが少なくしたいならやるべきこと

コーディングを2つに分ける。
一つはコア部分。一つは機能部分。

そして出来る限り多くものものを
機能部分から取り除いてコア部分に入れる。
コア部分は徹底的にリファクタリングする。

そうすれば、新しい機能を付け加えるときも
最小限のコードでいいし、コア部分は
長く多く使うから必然的に安定する。

これをしないで、はい、コーディングしてねってやると
コードは統一がとれくなりめちゃくちゃになり
無意味に量が増えバグも増え破綻する。
0437デフォルトの名無しさん2012/02/18(土) 22:49:17.73
>>436
共通部分を先に先行して作ったりするのはよくある話だけど
よっぽどセンスある人が作んないと開発の後半には
ダセー&使いにくいの非難の嵐だぞ
0438デフォルトの名無しさん2012/02/18(土) 22:50:22.34
判定条件が、多く使うモノ、じゃ駄目だろ
普通それで抽出されるものはライブラリになってるだろ
車輪の再発名は趣味ならともかく業務コードでやる奴は何もわかってない
0439デフォルトの名無しさん2012/02/18(土) 22:51:19.47
コアな部分が納得行くまで何度も何度もテストコード書いて、
臭い部分を解体するためにリファクタ本読んで、
見通しが良くならない箇所を打開するヒントを求めてGoF本読んで、
柔軟さとは何ぞや、直交性とは何ぞやと迷いOOSCをナナメ読みしてみる。
これでもういいんじゃないか? と思えるものが出来るまでは何度も何度も書き直す。
全部捨てて何度もスクラッチから書き直す。

人にもよるだろうな。俺は最初に時間かけてないと怖くて仕方ないから。
0440デフォルトの名無しさん2012/02/18(土) 22:52:17.88
だからそーいう領域は、時間さえかければ誰でも出来る、という点であまり大事じゃない部分
として見るのがモダンな開発スタイル
0441デフォルトの名無しさん2012/02/18(土) 22:53:27.84
はさまったか。>>440は>>438の続きな
0442デフォルトの名無しさん2012/02/18(土) 22:55:11.94
ようは本質的にはコアじゃない部分をコアという名称で呼んでしまったのが問題のはじまりね
0443デフォルトの名無しさん2012/02/18(土) 22:58:56.94
>>436みたいな考え方は2000年代中盤くらいに流行って
独自フレームワークだのアーキテクト気取りだのあったけど
今は廃れたよねってこと位は知ってた方がいいと思う
正面から叩くのは少し気が引けるけどスレタイ的にはね
0444デフォルトの名無しさん2012/02/18(土) 23:00:31.45
あーだこーだ考えてコアの部分書くのが楽しいし、それだけやっていたい。
周辺部分のつじつま合わせは全部部下にやらせてしまいたいところだな。
0445デフォルトの名無しさん2012/02/18(土) 23:04:36.17
見通しがよくムダの無い設計は至宝。
プログラマにとってその自己満足は何よりのご褒美。
プログラマ以外でそれを分かってくれるのは建築家とかだろうか。
0446デフォルトの名無しさん2012/02/18(土) 23:06:32.11
その感覚はわかる
整然としてて
要件変更何でも来いって感じがたまらん
0447デフォルトの名無しさん2012/02/18(土) 23:17:26.88
ある程度デッカクて、仕様変更もゴリゴリ押し込まれるようなもんをつくるには、
コアの部分がカッチリしっかりしなやかに作られて無いと、もたない。

納期がジワジワ迫ってくるのに、コードがトッ散らかってる時の恐怖を一度味わうと潔癖症になる。
糞みたいな意味不明なクラスや、役割があやふやな糞ネーミングの糞クラスを量産して、
どんどん見通し悪くして、最適化入れにくく、変化にも弱い動脈硬化状態もよくあること。

若い頃は何度も何度も気が狂いそうになってた…。
0448デフォルトの名無しさん2012/02/18(土) 23:53:59.72
>>443
廃れたのは独自フレームワークであって、
最初に土台を作り上げるというのは廃れていない。

独自ではない有名所のフレームワーク使うという行為だって
最初に土台を(誰か他の人が)作ってるのと同じわけだし。

今は自分でフレームワークを作らなくて良くなった。
だからといって何もする必要がなくなったわけじゃなく
そのフレームワークの考え方、その考え方に合わせたコードの書き方、
フレームワークじゃないないときの拡張の仕方などに変わってる。
0449デフォルトの名無しさん2012/02/18(土) 23:56:10.28
なんかへんな言葉になってる。

× フレームワークじゃないないときの拡張の仕方などに変わってる。
○ フレームワークの機能だけじゃ足りないときの拡張の仕方などに変わってる。
0450デフォルトの名無しさん2012/02/19(日) 00:06:33.21
>>437
> 共通部分を先に先行して作ったりするのはよくある話だけど
> よっぽどセンスある人が作んないと開発の後半には
> ダセー&使いにくいの非難の嵐だぞ

うん。それは分かってる。だから俺のモットーは変なモノを
作らないようする物を作るということ。矛盾しているようだけどねw

世の中にはすでに便利なものがたくさんある。だが実践ではそれをそのまま適用できるとは限らない。
だから作るべきもののおおまかな要求を元に、それを既存の便利なものが使えるように構成していく。

時間をかけて作ったものが、”普通なら”当たり前にできることだったりするから謎だよw
でも、要求が ”普通” じゃないんで当たり前にできない。それを当たり前にできるように持っていく。
意味わかんないと思うけど、具体的な内容は話せないからゴメンね。

俺がやってることと全く関係ないことで例えるなら、Railsでレールにのってない仕様のアプリを
レールに乗ることが出来るようにするものを作ってるということ。
0451デフォルトの名無しさん2012/02/19(日) 00:16:20.51
>>379
久々に読み返したけどオブジェクト指向の本の最高傑作だな>憂鬱本
この通りに作ればなにも問題ない
余計なクラスを作りすぎてることにちと反省
0452デフォルトの名無しさん2012/02/19(日) 00:16:58.39
涼宮ハルヒの憂鬱本
0453デフォルトの名無しさん2012/02/19(日) 11:15:46.52
共通部分をそのへんの自称アーキテクトに任せると

デザインパターンみたいな表層部分はできてるように見えても
デバック効率や想定開発環境が狭かったりしてうんこ
0454デフォルトの名無しさん2012/02/19(日) 11:15:56.43
ProxyとかHandleBodyとかAdaptorとか似たようなパターンの区別が付きません
いったい何が違うんでしょうか
0455デフォルトの名無しさん2012/02/19(日) 11:28:58.51
>>453
あほかw,

デバッグ効率や想定環境まで
考慮するのが一流のアーキテクトだろ。
0456デフォルトの名無しさん2012/02/19(日) 11:31:11.12
だからうんこな自称アーキテクトなんではないかとw
0457デフォルトの名無しさん2012/02/19(日) 11:47:18.51
馬鹿にやらせれば、なんでもダメなものが出来る。
そんなの当たり前の話で、いちいち考えることじゃないでしょ。
0458デフォルトの名無しさん2012/02/19(日) 12:22:48.73
一流なんて会ったことがない
コピペ君にはよく会う
0459デフォルトの名無しさん2012/02/19(日) 13:15:23.29
マ板の「駄目なプログラマの特徴」スレからコピペ

94 名前: 仕様書無しさん Mail: 投稿日: 2012/02/13(月) 02:34:10.28
自分の知識自慢するために、やたら分かりづらい専門用語を並べて話す奴とかマジでやめて欲しい
そういうのをみてると、「お前、人とコミュニケーションする気あんのか!!」って思う
また、そういう人に限って薄っぺらい話しかできず、目的が見えないのが多い

95 名前: 仕様書無しさん Mail: sage 投稿日: 2012/02/13(月) 10:11:02.80
そういう人間に実装まかせようとすると何かと理由つけて逃げるんだよな
技術が伴っていない証拠
0460デフォルトの名無しさん2012/02/19(日) 13:16:36.80
ProxyとかHandleBodyとかAdaptorとか似たようなパターンの区別が付きません
いったい何が違うんでしょうか
0461デフォルトの名無しさん2012/02/19(日) 13:18:14.32
>>454
こういう具体的な質問には、パパッと答えが出てこないところが、
このスレのレベルを表してるな。

まあ、俺も似たようにモンだから、誰か答え書いてくれ。
0462デフォルトの名無しさん2012/02/19(日) 14:09:20.10
>>379
本の件はともかく
デザパタ知らない奴の方が珍しいわ
0463デフォルトの名無しさん2012/02/19(日) 14:11:53.73
>>459
技術的専門用語は、エンジニアにとっては
読み書きそろばん
出来て当たり前知ってて当たり前だろ。
バカに合わせる必要が常にあるわけじゃない。
少なくとも専門的な話題のスレでは特に
0464デフォルトの名無しさん2012/02/19(日) 15:20:02.15
デザパタ怪しいよね
シングルトンとか入ってるところとか他のパターンも大丈夫なの?
って思う
0465デフォルトの名無しさん2012/02/19(日) 15:25:20.62
シングルトンの問題は、初心者が単にグローバルなアクセス求めて乱用しちゃうという点。
パターンが悪いんじゃなくて、使う側の設計が悪い。
0466デフォルトの名無しさん2012/02/19(日) 15:26:34.08
>>461
ProxyとAdaptorの違いがわからんというレベルだと
あまりに話にならなくて答える木にならんのだろう
0467デフォルトの名無しさん2012/02/19(日) 15:37:36.90
>>465
それも含めてダメだってことだよね
0468デフォルトの名無しさん2012/02/19(日) 15:38:52.64
>>467
なぜ? それが説明できないなら
お前には使えないってだけだよ。
0469デフォルトの名無しさん2012/02/19(日) 15:39:06.46
>>467
全く違うだろ
0470デフォルトの名無しさん2012/02/19(日) 15:39:46.28
違う。ダメなのは使う側。
0471デフォルトの名無しさん2012/02/19(日) 15:40:26.18
いっぱい挟まったw
>>470は>>467へのレスね。
0472デフォルトの名無しさん2012/02/19(日) 15:41:10.70
>>468
だって見る側が勘違いしちゃうんだよ?
少なくとも使用者はデザパタ本読んでそういう実装になったんだから
0473デフォルトの名無しさん2012/02/19(日) 15:41:30.82
>>471
みろ
デザパタ信者はアンカーもロクに使えない
0474デフォルトの名無しさん2012/02/19(日) 15:42:32.42
>>472は「猫を電子レンジに入れてはいけません」と書いてないメーカーを罵るタイプ。
0475デフォルトの名無しさん2012/02/19(日) 15:43:00.00
この低速スレでレスが挟まる位には頓珍漢なこと言った奴がいただけの話だろ
0476デフォルトの名無しさん2012/02/19(日) 15:46:44.60
ProxyとかHandleBodyとかAdaptorとか似たようなパターンの区別が付きません
いったい何が違うんでしょうか
0477デフォルトの名無しさん2012/02/19(日) 15:46:49.72
話かわるけど
代理に留まらず機能追加までするクラスに〜Adapterって名称ついてること
結構みかけるんだが、ムズムズする
0478デフォルトの名無しさん2012/02/19(日) 15:47:30.75
>>476
上でレスついてたろ。本嫁
0479デフォルトの名無しさん2012/02/19(日) 15:48:19.73
>>477
AdapterじゃないProxyな
0480デフォルトの名無しさん2012/02/19(日) 15:49:34.84
シングル�dはC#なんかでは不要
0481デフォルトの名無しさん2012/02/19(日) 15:53:11.58
>>473
なんでいきなり信者とか言っちゃってるの?w
0482デフォルトの名無しさん2012/02/19(日) 15:56:49.40
>>473はデザパタに親を殺されてアンチになりアンチ視点だとスレ住民が信者にみえるんだろう
0483デフォルトの名無しさん2012/02/19(日) 16:00:02.81
Adapter インターフェース変えたいだけの時に使う

Proxy インターフェースを変えたいのと同時に少し制限や拡張を加えたい時に使う
    インターフェースとなるオブジェクトは機能を実装しているオブジェクトとは基本異なる

Handle-Body ただのコンパイル防壁、実装隠蔽手段
0484デフォルトの名無しさん2012/02/19(日) 16:02:24.49
>>483
Proxxはインターフェース変えちゃ駄目だろ
0485デフォルトの名無しさん2012/02/19(日) 16:03:32.77
proxyってインターフェース変わんなくね
0486デフォルトの名無しさん2012/02/19(日) 16:03:37.44
HandleBodyがデザインパターンに見えるとか脳味噌くさってる
0487デフォルトの名無しさん2012/02/19(日) 16:03:58.71
>>484
そんな制限ないよ
0488デフォルトの名無しさん2012/02/19(日) 16:04:56.87
>>487
名前とやってることが違うのはいかがなものか
0489デフォルトの名無しさん2012/02/19(日) 16:06:23.11
>>487
呼び出し元が本体とProxyとどっち呼んでるか意識しないんだから
インターフェースが変わるわけないだろ
0490デフォルトの名無しさん2012/02/19(日) 16:08:05.47
>>489
そうそう。そこが肝だよな。呼び出し側から実装を意識させない。
代理なのか本体なのかをね。
0491デフォルトの名無しさん2012/02/19(日) 16:10:23.92
読み取り専用のProxyとか普通にあるだろ
そういう場合はインターフェースが変わる
0492デフォルトの名無しさん2012/02/19(日) 16:12:44.08
>>491
それはProxyじゃないものを勘違いor無知ゆえにProxyと名付けた輩がいたってだけだろ
0493デフォルトの名無しさん2012/02/19(日) 16:14:35.26
>>491さんは半年ROMったほうがみんなが幸せ。
0494460=4832012/02/19(日) 16:19:24.99
レス有難うございます
レスの流れで少し理解が深まりました
やはり自演で適当なこと言って「間違いを指摘ししてどや顔したがる人を釣る」のが2chでの一番良い質問法だと確信しました
今後とも宜しくお願いします
0495デフォルトの名無しさん2012/02/19(日) 16:20:20.38
誰でも知ってることでドヤ顏とかないわ
0496デフォルトの名無しさん2012/02/19(日) 16:21:20.22
>>494
はやく死んだらいいのに
0497デフォルトの名無しさん2012/02/19(日) 16:22:43.22
久々に後釣り宣言見たw
0498デフォルトの名無しさん2012/02/19(日) 16:24:48.05
でも実際スルーできずに指摘しちゃうやつがすぐに湧いて出てきてるのはワロタ。確かに効率いいわwww
0499デフォルトの名無しさん2012/02/19(日) 16:24:56.68
>>494
コテつけてそれをやる輩がいて困る
0500デフォルトの名無しさん2012/02/19(日) 16:25:28.66
後釣り宣言パターン
自分が「わかってない奴」だと発覚しそうになったときに
本当は「わかってた」ことにして沽券を保ちたい時に使います
0501デフォルトの名無しさん2012/02/19(日) 16:25:59.09
>>460が>>483だった場合誰も質問に答えてないけどなw
0502デフォルトの名無しさん2012/02/19(日) 16:31:21.29
シングル豚
プロ串
凸冷田
0503デフォルトの名無しさん2012/02/19(日) 16:33:07.01
スレタイが、オブジェクト指向設計
じゃなくて、オブジェクト設計
なのはどんな意図が込められてるんだ?
0504デフォルトの名無しさん2012/02/19(日) 16:34:43.99
レベルの低い奴が一人だけいるなw
0505デフォルトの名無しさん2012/02/19(日) 16:35:41.91
一人とは限らない
0506デフォルトの名無しさん2012/02/19(日) 16:37:10.32
オブジェクト設計 = オブジェクトの設計
0507デフォルトの名無しさん2012/02/19(日) 16:37:31.18
というかみんな底辺だろ貴重な休日にこんなとこに入り浸ってるやつなんて
0508デフォルトの名無しさん2012/02/19(日) 16:37:41.56
クラス設計じゃなくオブジェクト設計なのか
うーん、どーなんだろう
0509デフォルトの名無しさん2012/02/19(日) 16:38:50.57
>>507
おまえもデザパタに親を殺されたのか
0510デフォルトの名無しさん2012/02/19(日) 16:55:35.10
ヘッドファースト本って中身はさらないけど表紙は魅力的
0511デフォルトの名無しさん2012/02/19(日) 16:59:12.23
HandleBodyパターンってなんだって思ったらC++でPImplイディオムって
呼ばれてたヤツか。
あんなもん腐ったC++の仕様に合わせた小手先のテクなのに混同した理由が分からん。
0512デフォルトの名無しさん2012/02/19(日) 17:17:53.59
>>508
クラスベースじゃないオブジェクト指向言語だって
あるのだから何の問題もない。

クラスを使わなくともオブジェクト指向設計は出来る。
0513デフォルトの名無しさん2012/02/19(日) 17:21:23.57
>>512
そーいう意図でそーしてるんなら全く問題ないけど
実際はクラスベースな話ばっかりしてるような
0514デフォルトの名無しさん2012/02/19(日) 17:27:06.38
>>511
へー。単にpimplのことだったのか。ググるのすらめんどいから放置してたw
0515デフォルトの名無しさん2012/02/19(日) 17:38:19.96
Handle-Bodyも知らないで偉そうなこと言ってたのかお前らwww
0516デフォルトの名無しさん2012/02/19(日) 17:49:54.32
なぜ複数
0517デフォルトの名無しさん2012/02/19(日) 17:50:17.16
オブザーバーパターンって
なんでクラス名に〜Observerって名前じゃなく〜Listenerって名前つけるんだ?
あるいは、なんでリスナーパターンって呼ばないんだ?
0518デフォルトの名無しさん2012/02/19(日) 17:52:21.10
なぜなんだろうねーw
0519デフォルトの名無しさん2012/02/19(日) 18:02:00.16
言われてみるとたしかに変だな
0520デフォルトの名無しさん2012/02/19(日) 18:04:44.33
両方共オブザーバーだったらパターンそのものの事を言ってるのかリスナーのことを言ってるのか混乱するからだろ
0521デフォルトの名無しさん2012/02/19(日) 18:06:56.01
AdapterとかMementoとかパターン名がクラス末尾につくのはなんでいいんだ
0522デフォルトの名無しさん2012/02/19(日) 18:13:00.79
監視者と監視される対象どっちをメインに置いてるかだろ
監視されるほうからみたら監視者にメッセージを送るってのは
ちょっとおかしいから、監視されるほうが利用するインターフェースの
名前にはListenerって付けたんじゃないかな。
0523デフォルトの名無しさん2012/02/19(日) 20:09:31.19
Listenerに対しては、Broadcasterだと釣り合いが取れる感じ。

実際、この命名してるフレームワークもあった。
いまはもう息してないけど。
0524デフォルトの名無しさん2012/02/19(日) 20:21:23.53
c#使ってるとオブザーバパターンは全然意識に上らないな
0525デフォルトの名無しさん2012/02/19(日) 20:24:05.84
つまり、C#を使ってるなら
デザパタは必要ないってこと。
やっぱり不要なものだな。
0526デフォルトの名無しさん2012/02/19(日) 20:27:06.48
そうだな不要だ。おまえには。
0527デフォルトの名無しさん2012/02/20(月) 08:24:09.59
豚に真珠ってことですね。わかります(´・ω・`)
0528デフォルトの名無しさん2012/02/20(月) 09:21:41.72
野田の耳に念仏
0529デフォルトの名無しさん2012/02/20(月) 18:54:29.45
>>524は言語のサポートがあるから意識せずに使ってるってことな
0530デフォルトの名無しさん2012/02/20(月) 23:48:49.46
馬鹿みて
デザパタなんて使ってる現場なんてねぇってのに
NECでもNTTでも三菱でも富士通でも富士電機でもコニミノでもキャノンでも
シャープでも松下でも沖電気でもコマツでも使ってないのに一体どこで
使われてんでしょうかねぇ?w
0531デフォルトの名無しさん2012/02/20(月) 23:50:07.68
またデザパタに親を殺された可哀想な子が来たか
0532デフォルトの名無しさん2012/02/20(月) 23:53:50.32
つーか、デザパタの作り方に正当性はあるの?
0533デフォルトの名無しさん2012/02/20(月) 23:55:52.70
人から与えられた名称のある技術でないと安心できないからこんなもん信じちゃうんだな
その技術でお前いくつ工数削れたよ?
これだけは頭に入れとけ
0534デフォルトの名無しさん2012/02/21(火) 00:00:48.03
理解出来ない子が暴れ始めました
0535デフォルトの名無しさん2012/02/21(火) 00:01:54.58
>>533
本当に何も分かってないんだな
0536デフォルトの名無しさん2012/02/21(火) 00:03:57.21
>>530
その中の4つに派遣されたことあるけど、
全部デザパタつかってたよ。
(使ってない部署もあったけど)
0537デフォルトの名無しさん2012/02/21(火) 00:15:52.64
時代についてけない産業廃棄物が
若者に恥かかされて
2chでネガキャンしてるんだ
察してやれよ
0538デフォルトの名無しさん2012/02/21(火) 00:48:52.37
設計書作成と試験が工数の大半なんだよ
ソースってのはそれを削る事を意識して書くもんだ
0539デフォルトの名無しさん2012/02/21(火) 00:55:57.96
工学的には
設計書の条件を満たしているのはソースコードだけ
というのは知ってた方がいいかもね
0540デフォルトの名無しさん2012/02/21(火) 08:57:50.84
せやな
読みやすいソースがアレば他は何もいらないよな
0541デフォルトの名無しさん2012/02/21(火) 09:11:04.72
OOPでデザパタ一切使わずにユニットテストできるか?

ユニットテスト無しならテスト工数は確実に増えるぞ
0542デフォルトの名無しさん2012/02/21(火) 09:57:34.25
>>540
自分は読みやすいソースでも主要なクラスの全体的な絡み方、主要な流れについてのしょぼいインタラクティブ図ぐらいはほしい。
それがあるとないとでは全体感の把握の速度がぜんぜん違う。
0543デフォルトの名無しさん2012/02/21(火) 17:42:52.29
>>530
この中のどれかの人間だが使ってるぞ
0544デフォルトの名無しさん2012/02/21(火) 17:55:39.18
また、設計はコーディング、製造はコンパイル厨が出た
0545デフォルトの名無しさん2012/02/21(火) 20:29:48.71
>>542
一枚っぺら位のクラス図なんかで、アーキテクチャ説明あると(・∀・)イイ!
0546デフォルトの名無しさん2012/02/21(火) 22:34:24.64
>>544
それは正しくない。

ソースコードは詳細設計書
プログラミングは設計
コーディングは入力
コンパイルは製造

おk?
0547デフォルトの名無しさん2012/02/21(火) 22:39:43.96
>>539
意味が解からん。そもそも設計書は、入力と出力(GUIの振る舞いや通信もI/Oに含める)、
データ構造を定義したもんだ。プログラム内部がどうなってるかは、設計書には入らん。
ソースコードじゃどの結果が正しいかは表現しないから設計書にはならん。
まぁ、テストケースである程度設計を補助することはできるけどな。
0548デフォルトの名無しさん2012/02/21(火) 22:43:38.93
>>547
それは、インターフェース設計というかもしれないが
ここで一般的な意味の設計ではないな。

たとえばテレビのインターフェースとして
HDMI入力、出力、RCA端子とか、その内部データを定義したとしても
それを、「テレビの設計書」とは言わんだろう?

テレビの設計書とは、それを見て材料さえ手に入れば
他の人でも同じものが作れるようなレベルのものだよ。
0549デフォルトの名無しさん2012/02/21(火) 22:44:02.00
日本のシステム開発での設計ってのは、因果関係(入力と結果)の
定義だって事を知らんヤツは学生だろ。少なくとも入札で受注したような
システム開発の経験は無いんじゃね。
0550デフォルトの名無しさん2012/02/21(火) 22:45:15.46
>>549
お前は素人だ。
0551デフォルトの名無しさん2012/02/21(火) 22:48:27.38
>>548
ソフトウェア設計だと別だろ。生産物に当てはめりゃいいってもんじゃ無い。
日本のソフト開発じゃ「共通フレーム2007」とか要求されてる設計書が設計書の定義だ。
0552デフォルトの名無しさん2012/02/21(火) 22:52:37.42
>>551
お前の会社が間違っているか、お前の日本を間違って認識
しているかのどちらかだ


共通フレーム
http://www.atmarkit.co.jp/aig/04biz/slcpjcf.html
用語の説明に設計という単語すら出てこないものを
設計とよぶな。
0553デフォルトの名無しさん2012/02/21(火) 22:54:05.65
>>548
設計書というよりは、仕様書と言ったほうが正確だったかもな。
客に約束した入出力結果を定義した文章。
そして、開発チームがコーディングにより目指すべき入出力結果を
書いてある文章。(定義は客に約束した内容と同じ)

携帯電話や、テレビの仕様書と客に約束している分似てはいる。
0554デフォルトの名無しさん2012/02/21(火) 22:59:21.35
>>552
そこら辺の馬の骨をソースにするとか素人かよ。
IPAが発行する「「共通フレーム2007 第2版」の開発プロセスの章を引用して反論しろよ。
0555デフォルトの名無しさん2012/02/21(火) 23:01:41.29
>>552
そもそも共通フレームって何する際に求められるかしってる?
0556デフォルトの名無しさん2012/02/21(火) 23:10:43.22
スイッチが押されたらここの回路に電流が流れてこの信号が出力されてって
感じでTVの回路図だってIn-Outのお約束の組み合わせでできてるよね
オッサン臭い話になるけどIn-Outベースの設計のキホンの感覚が
掴めてないのにデザパタだとか実装の小手先ばっかり
目が行くのはどうかと思うよ
0557デフォルトの名無しさん2012/02/21(火) 23:11:14.96
まぁ、仕様書ってのは日本だろうが海外だろうがマトモなものは大して変わらんけどな。
W3CがだしてるHTML Specificationとか、AdobeのPDF Specificationとか、
まともな人間が書けばどっこも似たようなもんだ。
0558デフォルトの名無しさん2012/02/21(火) 23:13:41.79
>>556
別に小手先の話をするのはいいんじゃね
問題は、小手先と設計を混同した上人を馬鹿にしてる点なわけで
0559デフォルトの名無しさん2012/02/22(水) 00:08:40.20
>>549
それは仕様。
0560デフォルトの名無しさん2012/02/22(水) 00:16:43.26
仕様を決めることを、設計と呼ぶ人はよくいる。
本来の設計をせずに作業をしてしまって大変なことになってるのも
よくみる(本人は難しい仕事をやってると満足してるんだが)。
0561デフォルトの名無しさん2012/02/22(水) 00:26:49.67
仕様書を書くこと自体は設計だ。
車のパーツの位置がおかしかったら、
設計がおかしいと言うだろ。
0562デフォルトの名無しさん2012/02/22(水) 00:46:57.60
コンピュータサイエンスがとーとか、エンジニアがとーとか全く知らなくても、
中学レベルの日本語読解力さえあれば

>仕様書を書くこと自体は設計だ。
>仕様書を書くこと自体は設計だ。
>仕様書を書くこと自体は設計だ。

この部分見ただけで,なーんかおかしいーなーって違和感を感じとれるものだけどなあ
0563デフォルトの名無しさん2012/02/22(水) 00:51:30.03
このスレって他のスレと違って、生きる時代が明らかに違う輩が紛れ込んで来るなあ

20世紀の化石くんが2010年代に生きる人間に混じりに来るのは、
スレのテンプレで踏み絵を用意しないのが悪いのかもな
放置するとスレのレベルが下がるぞ
0564デフォルトの名無しさん2012/02/22(水) 00:53:48.62
中学生の視点じゃなく、社会人の視点で考えたら?
0565デフォルトの名無しさん2012/02/22(水) 00:55:27.95
仕様:
これから作るものに必要とされる機能や性能などを検討し、どのような構成で作るのかを仕様として決定すること。
ほとんどの場合、決定した事項は設計書や仕様書などの文書にまとめられる。

要件定義:
システムやソフトウェアの開発において、どのような機能が要求されいて、
実装されるべきなのかを明確にしていく作業のこと。開発者側と依頼者側の双方の協力により定義が行われ、
その成果は「要件定義書」としてまとめられる。開発を始める前に行う作業であるが、最も重要なプロセスのひとつである。

設計:
これから作るものに必要とされる機能や性能などを検討し、どのような構成で作るのかを仕様として決定すること。
ほとんどの場合、決定した事項は設計書や仕様書などの文書にまとめられる。
0566デフォルトの名無しさん2012/02/22(水) 00:56:18.23
外部設計:
ソフトウェアや情報システムの開発工程の一つで、利用者に提供する機能や操作感などを定義する工程。
方法論の違いにより、外部設計に当たる工程を「基本設計」あるいは「概要設計」と呼んだり、
これらの一部に外部設計を含めたりする場合もある。

内部設計:
ソフトウェアや情報システムの開発工程の一つで、全体の構成や行うべき処理の詳細など実装に必要な仕様を定義する工程。
方法論の違いにより、内部設計に当たる工程を「詳細設計」と呼ぶ場合もある。

詳細設計:
ソフトウェアや情報システムの開発工程の一つで、全体の構成や行うべき処理の詳細など実装に必要な仕様を定義する工程。
方法論の違いにより、詳細設計に当たる工程を「内部設計」と呼ぶ場合もある。
0567デフォルトの名無しさん2012/02/22(水) 00:56:49.19
紀元前から脈々と続く設計の定義が20世紀と21世紀で変わんのかよw
05685652012/02/22(水) 00:59:42.92
「仕様:」欄はコピペミス。「これから〜まとめられる。 」全削除。
0569デフォルトの名無しさん2012/02/22(水) 01:00:23.47
>ほとんどの場合、決定した事項は設計書や仕様書などの文書にまとめられる。
ちゃんと書いてあんじゃん
0570デフォルトの名無しさん2012/02/22(水) 01:01:41.98
〜だり
〜や
〜場合もある

アホのエース降臨だな
0571デフォルトの名無しさん2012/02/22(水) 01:04:09.96
定義じゃないものを定義のように受け取る阿呆が実在するとは
0572デフォルトの名無しさん2012/02/22(水) 01:09:28.72
水掛け論になったらもうこのスレの役目も終り
しばらくするとそれにも飽きて過疎る運命
楽しかった。みんなありがとな
0573デフォルトの名無しさん2012/02/22(水) 01:10:54.90
仕様書と設計書は別だったり一緒だったりする。
現実問題境界は曖昧で、要求事項寄りが仕様書、
画面デザインや、動作寄りなのが設計書と呼ばれる。
客寄りか、製作者寄りかで便宜的に別れてるだけで、
要求と結果に対する定義という点じゃ変わりゃしない。

試験仕様書とか書いたことがあれば、このへんが
曖昧なのはよく解るだろう。
0574アホエース2012/02/22(水) 01:11:20.88
いちおう言っておきますが、
ttp://e-words.jp/
からの転載でした。省いてコピペしたんで、原文は上記サイトで見てくんろ。
0575デフォルトの名無しさん2012/02/22(水) 01:13:00.39
>>574
どうでもいいけど、ホントにマの仕事したこと無いの?
0576デフォルトの名無しさん2012/02/22(水) 01:17:02.75
このスレはオブジェクト指向やデザインパターンに興味がある人のためのスレだろ

そこに有益生を見出さない奴は何しに来てるんだ?

興味ない者は存在がスレチなんだから、わがわざ鼻つまみ者になりに来るんじゃなく、別のスレ立てたらいかがか?
0577デフォルトの名無しさん2012/02/22(水) 01:18:52.25
>>573
要求と結果に対する定義さえ決めればいいと思ってるんなら、
設計をやったこと無いんだろうな。
0578デフォルトの名無しさん2012/02/22(水) 01:21:01.20
設計って言葉入れたのが間違いだな

デザパタスレ、オブジェクト志向スレ、設計手法スレ
って三つ巴だもんな
0579デフォルトの名無しさん2012/02/22(水) 01:24:28.98
>>577
少なくともコードデザインを設計書や仕様書に書いたことはないな。
プログラマー同士の打ち合わせにUML出してデザインを決めたりするけど設計書とは呼ばないし。
0580デフォルトの名無しさん2012/02/22(水) 01:26:46.11
>>578
そもそも設計を否定してるわけじゃないだけどね
設計書や仕様書にデザパタが上がるってのがおかしい訳で
05815802012/02/22(水) 01:28:08.35
言葉足らずだった訂正
×そもそも設計を否定してるわけじゃないだけどね
○そもそもコード設計を否定してるわけじゃないだけどね
0582デフォルトの名無しさん2012/02/22(水) 01:29:12.08
設計について話してるところに、突如アブストラクト・・・とか言い出す奴がいてさ
もう混沌としてるじゃん。俺はそういうの好きなんだけどさ
0583デフォルトの名無しさん2012/02/22(水) 01:29:47.44
>>575
?
0584デフォルトの名無しさん2012/02/22(水) 01:36:04.53
>>580
コード設計は担当者の頭の中にあるだけで、どこにも残さない主義か。
正直、迷惑だからやめてほしい。
0585デフォルトの名無しさん2012/02/22(水) 01:41:05.64
>>584
では聞こう。具体的に何を書いて欲しいんだ?
0586デフォルトの名無しさん2012/02/22(水) 01:49:27.23
>>584
UMLは書くつってんじゃん。
あと、Javaであればjavadocとか残す。
ただ、これらを設計書や仕様書には含めん。
プロジェクトファイルの一部にメモとして入れてたりするぐらい。
0587デフォルトの名無しさん2012/02/22(水) 01:55:51.27
>>586
いわゆるスケッチだね
チーム文化維持しながら人員が緩やかに変化する場合は一番効率いいよね
0588デフォルトの名無しさん2012/02/22(水) 02:01:30.72
>>585
そのコードがどのような構造になっていて、
どういった意図を持って存在するのかがわかるような設計資料だな。
後から構造を解読する時間がもったいないんでね。

お前だってせっかく綺麗に設計したプログラムが、他の担当者に
ぐちゃぐちゃにされて戻ってくるのは嫌だろ?
0589デフォルトの名無しさん2012/02/22(水) 02:05:19.39
>>586
設計した内容を設計書に記述しない理由がわからない。
何か不都合があるのか?
0590デフォルトの名無しさん2012/02/22(水) 02:13:34.63
>>589
586じゃないけど横から。

コード読めば分かることなら、蛇足でしかない。書く時間が丸っと無駄。
コード読んでわからなくても、聞いた方が早いことなら、書く時間が勿体ない。

書き残さなきゃならないことは、実はそれ程多くない。
たとえば、何を書いて欲しいんだ?
0591デフォルトの名無しさん2012/02/22(水) 02:18:49.19
>>588
なるほど、その観点なら同意見だな。
引き継ぎ前に、数枚程度に収まるアーキテクチャ説明書を残すよ。
どちらかっていうと、相手の理解が楽になるように。

綺麗な設計がグチャグチャにされるのを防ぐには、どっちかてと設計そのもので防ぐ派かな。あり得てドキュメンテーションコメント。
それはドキュメントじゃ無理とまで言わないけど不向きだと思ってる。
0592デフォルトの名無しさん2012/02/22(水) 02:19:25.56
>>590
>>589にも書いたけど、コード読んでもわからないことを書け。

> 聞いた方が早いことなら、書く時間が勿体ない。
周りから質問攻めにあって忙しいそうにしてる奴を見たことあるが、
(おれもそういう状況に置かれることはままあるが)
「あんたがちゃんとしたドキュメント書いてないからだよ」
としか思えなかった。
0593デフォルトの名無しさん2012/02/22(水) 02:23:31.15
俺はアーキテクチャレベルの仕組みは解説しといて欲しいな。
リングキューをグルグル回してるけどどういう契機で何のために
使ってるんだよとかパッと見分かんねえし。
あとスレッドまわりも分かりにくいからちゃんと文章での解説付きの
シーケンス図を残してくれ。
0594デフォルトの名無しさん2012/02/22(水) 02:24:24.65
>>590
では、自分も横レス

>コード読んでわからなくても、聞いた方が早いことなら、書く時間が勿体ない。

これが正しいのは、聞く相手が不揮発性記憶の達人で、かつ常に隣にいるという
前提がある場合に限られると思われ

なお>>590中の単語「コード」をすべてコメント(注釈)に置き換えたなら同意
0595デフォルトの名無しさん2012/02/22(水) 02:27:15.10
>>592
そこは、そのプロジェクトのマネージメント文化で結構変わると思う。
個人的には、チームが大事にしてることとか、直にコミュニケーション取って伝えた方が、チーム文化は維持し易いと思ってる。
チームビルドはしばしば辛抱強い時間が必要なことなのに、壊すのはあっと言う間だから。

良いプロジェクトほど、文化伝承にきちんと時間を割く傾向があると思ってる。

それに、予めきっちり残しておかなくても、その場で相手の理解度に応じて書いて伝わることは多い。
目的はあくまでチーム全体の最適化だから、必要にならないドキュメントを書くデメリットは軽視出来ないと思う。

コードの意図とか、その場でクラス図書きながら伝える方法で問題が出るようなら、
そこが複雑になりすぎてるサインとも言える。
0596デフォルトの名無しさん2012/02/22(水) 02:29:34.73
>>594
ホワイトボードに書いた絵を携帯カメラでパチリ
0597デフォルトの名無しさん2012/02/22(水) 02:30:25.68
>>594
コミュニケーションとれない場合は仕方ないから、力入れて残すよ。もちろん。
0598デフォルトの名無しさん2012/02/22(水) 02:34:45.93
>>598
コミュニケーションがとれる場合でも、
書き手本人が不揮発性記憶の達人でなければ同じ事

書き捨てプログラミングであれば無問題だけどね
0599デフォルトの名無しさん2012/02/22(水) 02:36:20.29
>>598
コードの細部はいくらでも忘れても、
設計意図はめったやたら忘れないだろ
0600デフォルトの名無しさん2012/02/22(水) 02:44:59.55
>>599
保守のことを忘れていないか?
0601デフォルトの名無しさん2012/02/22(水) 02:47:10.30
チームメンバーが保守し続けてるんだから問題ないよ。
その疑問は、作り逃げ、みたいなスタイルのとき?
0602デフォルトの名無しさん2012/02/22(水) 02:51:55.20
>>599
そうでもない。
忘れるというより、一回聞いただけで全て理解できるわけじゃないというのが正しいが。

無理やりデザパタの話につなげると、名前を言えばお互いに同じパターンを思い描ける
というのは、理解の助け(省力化)になっているのは間違いない。
0603デフォルトの名無しさん2012/02/22(水) 02:56:06.56
>>601
メンバーの交代はあるだろ
その時、設計の内容は出て行ったメンバーの頭の中にしか残らない
0604デフォルトの名無しさん2012/02/22(水) 03:01:45.53
>>603
それがリスクになるためには、前提があるよね。

・重要な設計理念が、コードやアーキテクチャからは、読み取れないようなコードベースになっている。
・重要な設計が、単一の人間の頭の中にしかない。つまり多重化を一切行っていない。属人化といって差し支えない状況。
・引き継ぎしない

たぶん、先に改善した方がいいことが他にあるような。。。
0605デフォルトの名無しさん2012/02/22(水) 03:01:52.00
>>601
もちろん作り逃げみたいなスタイルも含まれる
でもそれ以外だって、いつまでも保守「だけ」を続けるわけないよな?
保守フェーズに入れば、次の別のプロジェクトが立ち上がる
0606デフォルトの名無しさん2012/02/22(水) 03:08:14.55
>>605
うん。プロジェクトにより匙加減やカスタマイズは当然必要。
どんなプロジェクトに対しても単一の手法で臨める、なんてわけはないから。
0607デフォルトの名無しさん2012/02/22(水) 03:24:36.34
>>604
>たぶん、先に改善した方がいいことが他にあるような。。。

そういったリスク回避策の中で、スレの主旨に沿い、かつ
最も重要で基本的な改善が、設計書であると自分は思うけどな
0608デフォルトの名無しさん2012/02/22(水) 03:42:46.62
スレ主旨に沿い、ならオブジェクト指向とデバパタだろ b

オブジェクト指向で整然としたコードなら把握しやくどこに何があるか予想もつく。
デザパタのような共通の知識の力を借りれば設計そのものが自らその意図を語ってくれる。
0609デフォルトの名無しさん2012/02/22(水) 03:44:44.50
ていうか、OOな現場は設計の相談をお互いにする傾向あるよね
縦割りで自分の担当以外知りません!みたいな事にならないと思う
0610デフォルトの名無しさん2012/02/22(水) 05:03:03.44
>>608
> オブジェクト指向で整然としたコードなら把握しやくどこに何があるか予想もつく。
> デザパタのような共通の知識の力を借りれば設計そのものが自らその意図を語ってくれる。
そんな甘い考えは捨てたほうがいい。
どちらも「使ってないよりはマシ」な程度の効果しかない。
0611デフォルトの名無しさん2012/02/22(水) 05:31:14.22
>>610
自分は>>607だけど、オブジェクト指向やデザパタには、
マシ程度どころかソフトウェア設計にとってとても大切な概念だと思っている

ただし、「コードがあれば設計書は不要」とか「コードが仕様である」といった
考えを批判しているだけ
オブジェクト指向やデザパタは大切だからこそ、
その意図をキチンと設計書という文書で残すことが重要と考える

ということで、そろそろスレ主旨に沿った議論に戻る事をキボン
0612デフォルトの名無しさん2012/02/22(水) 07:23:57.61
>>589
1.「共通フレーム2007」などで定められる納品に必要な設計書で無くなるから
2.UMLだの作ってるのは、俺の勝手で客の要求事項では無いから
3.コード設計は、設計書の内容と違いウチの一実装であって、
 今後保守する業者に押し付けられる訳ではないため、
 契約上の強制力がある設計書には含められないから。
0613デフォルトの名無しさん2012/02/22(水) 08:20:55.74
外部設計書が必要なのは考えるまでなくわかる


内部設計書には、何を書けばいいんだろうか
クラス単位のjavadocみたいなAPIマニュアルが必須なのもわかるが、これは設計前に必要なものではなく実装完了後に必要なもの、実装として複雑な部分をソースにコメントを記述するのもわかる


あとはクラス間のやりとりの説明として簡易化したクラス図やシーケンス図もあったら便利か
これが内部設計書に書くもの?

設計書というからには、コード書く前に必要なものだと思うんだけどあまり思い浮かばないな
0614デフォルトの名無しさん2012/02/22(水) 10:01:11.33
>>612
顧客とのやり取りを決めたフレームワークを持ち出して
「うちの開発では顧客に出さないものは設計書として残しません」
ってのは変だと思わないのか?

> 2.UMLだの作ってるのは、俺の勝手で客の要求事項では無いから
当然です。
請負でもない自社製ソフトを作る場合や自社サービスを立ち上げる
場合には設計書を書かなくてすむね♪
0615デフォルトの名無しさん2012/02/22(水) 10:08:20.76
>>613
一人で設計するなら内部設計書なくて「設計は俺の頭の中にある」でいいと思うけど、
複数人で設計する場合は随時設計書として残していかないとすぐに破綻すると思う。
0616デフォルトの名無しさん2012/02/22(水) 10:12:28.83
>>590,594
俺的にはコードに適度な粒度でコメントは書け。
ソース上ではどうしても複数の要素間の前提、作用などは書きづらいので仕組み的なものについては別に書け。
ある程度聞かれる可能性のあることは書け。

って感じかね。どこまでってのはあるがざっくりある程度としか言えん。
自分は自分のためにソース上ではざっとみて内容がわかるレベルのコメント、クラス図と相互作用図を合わせたようなポンチ絵、その裏にある思想を書いてる。
06176152012/02/22(水) 10:17:39.14
あと設計レビューを行うためには、それなりの資料が必要ってのもある。
0618デフォルトの名無しさん2012/02/22(水) 13:43:59.91
>>615
内部設計書に何を書くのかをまず教えてよ
0619デフォルトの名無しさん2012/02/22(水) 15:27:50.52
その内部設計ってやつがウワサの、
「そのままコードに落とせる」ってやつの予感。
見たことないんでワクテカ。
0620デフォルトの名無しさん2012/02/22(水) 15:35:36.62
>>618,619
横レスだけど、もし一人で設計する(=個人のプログラミング)であるなら、
>>616が>>613へのそのものズバリな答えになっているんじゃないのかな
自分は>>613をそのまま賛同するけど、これに何か不足な点があるのかな?
0621デフォルトの名無しさん2012/02/22(水) 15:36:56.80
訂正 ....orz

X: 自分は>>613をそのまま賛同するけど、
O: 自分は>>616をそのまま賛同するけど、
0622デフォルトの名無しさん2012/02/23(木) 22:43:50.74
このスレのテーマについては、(時間を無視すれば)いずれオブジェクト指向、
デザパタ無用になるというのは自明の答えではあったが、どうも>>302の言った
>いずれ仕様書のコンパイラが開発されるなw
が相当現実に近づいているようだ。このスレもまだまだ2〜3年は惰性で続くだろうが、
ゆっくりと収束に向かうのだろうね。
0623デフォルトの名無しさん2012/02/23(木) 22:45:43.20
>>615
横からだが、内部設計書に何を書くのか俺も興味あります…。
0624デフォルトの名無しさん2012/02/23(木) 23:44:25.33
内部設計書というとかっちりと書いて納品しなくちゃいけないイメージが
付きまとうけど、上位の仕様書で足りないなと思った情報を残業しない
程度に好きに書けばいいと思うよ。
ER図やテーブル定義書、ファイルや通信の仕様がなければ書けばいいし
チームで進捗を把握しつつ分担して作業を進めるにはある程度意味を持って
モジュール分けしてそれぞれがどういうモジュールなのか説明する資料も
欲しいよねとか見えてくるだろ。
デザインパターンを使って素晴らしいライブラリを作ったと思うなら
コーディング標準として縛って必ず使いやがれとチームのメンバーに
強制させるムカつくドキュメントを書いてもいい。
0625デフォルトの名無しさん2012/02/24(金) 00:48:06.50
>>622
自明なわけないな。考えなしさが良く伝わってくる。
0626デフォルトの名無しさん2012/02/24(金) 00:52:20.24
何でこんなに内部設計書書いたことがある人以内の?
もうこの板学生しか居なくなったの?
ISerと仕事したときとかに、使用言語やら依存ライブラリ
要求事項ごとの動作、エラーコードなどのコード類を
まとめた文書を作らされるでしょ。詳細設計書って名前で。
0627デフォルトの名無しさん2012/02/24(金) 00:54:10.47
SIerをISerって・・・何でこんなしょうもない打ち間違えしたんだ
0628デフォルトの名無しさん2012/02/24(金) 00:56:50.78
今時の開発そういうアホらしく無駄なものは書かない
0629デフォルトの名無しさん2012/02/24(金) 00:58:18.03
内部設計書という言い方からしてお里がしれるな
0630デフォルトの名無しさん2012/02/24(金) 01:02:07.65
書かないもクソも、ちっさいプログラム納品するときは
SIから要求されるじゃんXer○xとかIB○とか。
自社製品作るときは別だけどさ。
0631デフォルトの名無しさん2012/02/24(金) 01:02:26.34
外部・内部設計書は富士通だったっけ?
0632デフォルトの名無しさん2012/02/24(金) 01:05:34.22
ソースコードの変更履歴をコメントで管理するところって実際にあるんだな
基本設計書と詳細設計書を書かされるらしいな
詳細設計書はソース書き換えるたびに書かないといけないらしい
聞いた話
0633デフォルトの名無しさん2012/02/24(金) 01:05:40.08
富士はしらね。あとNとかもしらね。
さっき上げたところと目立は詳細設計書で納品してる。
0634デフォルトの名無しさん2012/02/24(金) 01:09:34.61
>>632
コメントで残すとかw
ねーよ
0635デフォルトの名無しさん2012/02/24(金) 01:11:05.73
マジで聞いたぞ、そんなところで働きたくないけどさ
普通はsvnみたいのやるの?
0636デフォルトの名無しさん2012/02/24(金) 01:11:18.65
>>632
そりゃねぇ。
基本フローが変わったり、エラーコードが増えたり、
吐き出すメッセージが変わったり、外部に影響のある
変更したらその都度直すよ。そうしないと、バグか意図してるのか
解んないからね。絶対基準は設計書でソースは付随物でしかないから。
06376362012/02/24(金) 01:12:39.50
コメントの方はないわ。
リリースノートとかはあるけど。
0638デフォルトの名無しさん2012/02/24(金) 01:14:26.59
中小で、銀行とかのシステムやってたらしい
5年単位でシステム変えるから5年単位で仕事が来る
でも変更点はちょびっとっていうおいしい仕事らしい
0639デフォルトの名無しさん2012/02/24(金) 01:22:31.17
その詳細設計書だか内部設計書だかを書く目的ってなんなんだ?

・自分の仕事の内容を約束し確定させるため
・仕様が実現可能かどうか検証するため
・実装工数見積の根拠を示すため
・開発者のコミュニケーションのため
・後工程のテストや保守のため
・なんか上から要求されてるからなんとなく書いてる

とか色々ありそうだけど目的が違うならそもそも話合わなそう。
0640デフォルトの名無しさん2012/02/24(金) 01:28:40.40
・自分と周りに対し仕事の内容を約束し確定させるため
・開発者のコミュニケーションのため
・後工程のテストや保守のため
・納品物だから

こんな所かな。エラーコードとか、
細かいメッセージとか、雑多な仕様ってのは
基本設計書に乗らない。そういうもんが
詳細設計書に行く。
0641デフォルトの名無しさん2012/02/24(金) 01:29:40.10
・プログラムを書けない人間のための仕事を生み出すため
・プロジェクト規模を水増しし金を多くぶんどるため
0642デフォルトの名無しさん2012/02/24(金) 01:31:14.23
保守性は下がるんじゃないか
0643デフォルトの名無しさん2012/02/24(金) 01:32:28.13
設計書とかって書類は、ある意味誓約書だからね〜
あんまり名前の響きほどエンジニアリングなもんじゃない
0644デフォルトの名無しさん2012/02/24(金) 01:33:15.30
契約しないと仕事始まらないのに
仕事始めたあとに契約書を書くの?
0645デフォルトの名無しさん2012/02/24(金) 01:33:31.21
>>642
どんな感じに?
0646デフォルトの名無しさん2012/02/24(金) 01:33:32.52
読み間違った。誓約書か
0647デフォルトの名無しさん2012/02/24(金) 01:34:28.48
>>645
修正範囲が広がる
手書きドキュメントはコンパイラの自動検出の恩恵を受けられない
0648デフォルトの名無しさん2012/02/24(金) 01:39:43.43
>>647
それは関係ないんじゃない。
コンパイラがあろうがなかろうが仕様
間違いの自動検出なんてできないもの。

あと設計書がなかったらどう直すべきかも解らないよね。
例えば、10桁まで表示できる事って設計書に書いてたら、
10桁にするしか無いじゃない。設計書がない状態で
何桁にするかどう合意を取っていくの?
0649デフォルトの名無しさん2012/02/24(金) 01:44:52.95
>>648
その内部設計書だか詳細設計書だかは、上の方で、
客に見せない開発者だけが読むドキュメント
とかいってなかったか?
あの定義だと、その内部設計書だか詳細設計書だかに書いても合意はとれないよねf^_^;)
0650デフォルトの名無しさん2012/02/24(金) 01:48:31.61
>>649
言ってないでしょ。

0651デフォルトの名無しさん2012/02/24(金) 01:49:35.63
>>649
どのレスの事言ってる?
0652デフォルトの名無しさん2012/02/24(金) 01:49:35.67
>>648
> 例えば、10桁まで表示できる事って設計書に書いてたら、 
> 10桁にするしか無いじゃない。設計書がない状態で 
> 何桁にするかどう合意を取っていくの? 

仕様書? 仕様書に桁数が書かれていなければ任意。
0653デフォルトの名無しさん2012/02/24(金) 01:50:44.40
>>648
いや関係あるだろ

仮にその10桁という情報ひとつとっても
プログラムなら設定ファイルか定数クラスに一箇所書くだけ。修正も一箇所。

設計書はどうやって一箇所にするんだ?別ファイルの特定ページの(特定シートの?)ドキュメントを指すように書くの?
現実的に無理っしょ
0654デフォルトの名無しさん2012/02/24(金) 01:51:55.47
>>652
印刷しないところはそれで済むかもね。
てか、その対応で許される現場があるんだね。
0655デフォルトの名無しさん2012/02/24(金) 01:52:02.80
>>648
それに、プログラムと設計書が、
完全に同期してることを保証する仕組みもないよね
0656デフォルトの名無しさん2012/02/24(金) 01:53:45.69
>>654
世界は広いんだよ^^

>>655
> それに、プログラムと設計書が、 
> 完全に同期してることを保証する仕組みもないよね

なんか話は変わるが、コメント不要論を思い出したw
コメントも古かったりウソ書いたりを防げないしなー。
0657デフォルトの名無しさん2012/02/24(金) 01:53:47.25
>>653
そういう話じゃないんだけど。
コンパイラが10桁か15桁かどっちが
正しい仕様か判断できるかってとこが問題だから。
0658デフォルトの名無しさん2012/02/24(金) 01:54:25.11
>>650-651
>>386とか>>408とか?
0659デフォルトの名無しさん2012/02/24(金) 01:55:53.61
>>655
同期してないってどういうこと?
設計書に反するなら、それは全てバグだよ。
お客さんや責任者が認めてるのは設計書の内容であって
ソースコードじゃないんだから。
0660デフォルトの名無しさん2012/02/24(金) 01:58:01.46
>>659
アホっぽい意見だな
客に価値をもたらすのはドキュメントじゃないよ
0661デフォルトの名無しさん2012/02/24(金) 02:00:12.92
>>657
話ずれてるぞ
0662デフォルトの名無しさん2012/02/24(金) 02:01:49.53
>>658
そういう会社も有るのかもね。
ウチは、取引先に提出したり上長に提出したりしてるから、
そういう環境の事情はしらない。少なくとも、大手SIやら、
システム部門のある企業から請求される設計書を基準に話してるつもり。
0663デフォルトの名無しさん2012/02/24(金) 02:05:22.04
>>660
それには、「あ、そう」としか言えないわ。
それはともかく、設計書と動作が違ったら庇護担保保証で問題になるでしょ。

>>661
ズレてるというか、設計書の視点が違うんだよ。
0664デフォルトの名無しさん2012/02/24(金) 02:09:11.29
>>659
多重管理してるのに、同期とる仕組みを持ってないという自覚がないのか

・プログラムだけ直って、ドキュメントが古い
・ドキュメント直したけど、プログラムが古い

時差の問題もあるよね
緊急リリースだ!とかいってソースだけ直された日には何を見たら正かも定まらない
修正コストが増える点ではメンテナンス性は明らかに下がってるよ
0665デフォルトの名無しさん2012/02/24(金) 02:10:03.81
>>663
あっそう、とか、それはともかく
とか嘘ぶくのやめたら?それが一番大事でしょーに
どんなアマチュアだよ
0666デフォルトの名無しさん2012/02/24(金) 02:13:49.30
>>661
じゃそっちの視点に合わせて答えればいいかな。

文字として直す作業は増えるそれは正しい。
ドキュメント内で整合性が取れないだろうという
事については、そこまで値が散ることはないし、
一番正しい値は表とか一箇所にしか書いてないから
どれが間違ってるかはすぐ解る。
最近はフィールド(散らばった文字でも同期を取れる機能)が
使えるおかげでますます、間違え難くはなってる。
0667デフォルトの名無しさん2012/02/24(金) 02:15:54.13
>>649 その内部設計書だか詳細設計書だかは、客に見せない開発者だけが読むドキュメント? 
↓
>>651 どのレスの事言ってる? 
↓
>>658 >>386とか>>408とか? 
↓
>>662 ウチは、取引先に提出したりしてる

えっ? 内部仕様書を相手に渡してるのか?
何のための内部・外部の区別なんだろう?と不思議に思う。
0668デフォルトの名無しさん2012/02/24(金) 02:18:04.28
>>664
バグフィックスじゃなくて、ドキュメント直さず仕様修正が入るの?
そんな事になったことがないわ。住む世界が違うんだろうね何も言えないなぁ。
0669デフォルトの名無しさん2012/02/24(金) 02:19:27.25
>>667
内部外部は組織の意味じゃないけど。
普段どんなお客さん相手にしてるの?
ゲーム屋さん?個人客?
0670デフォルトの名無しさん2012/02/24(金) 02:24:58.70
>>668
バグフィックスで「ある」んなら、それ以外でも「ある」だろ
運用始めたら要件のバグが発覚
仕様のバグが発覚
合意のとられた内容に基づいているため実装のバグではない
しかし、実装を変更せず放置し続ける間じゅう顧客に不利益が生じ続ける
0671デフォルトの名無しさん2012/02/24(金) 02:25:26.78
>>665
いや、価値をもたらすとかそういう話はしてなかったからさ、
受け答えのしようがないじゃん。
0672デフォルトの名無しさん2012/02/24(金) 02:27:33.33
>>670
バグフィックスは設計書に合わせるんだから
設計書の必要ないでしょ。って意味で書いた。
仕様のミスだったら設計書直して、レビューして
確認とってから実装に入るよ。
0673デフォルトの名無しさん2012/02/24(金) 02:29:15.61
スレ的に本質的な疑問が二つ

1.
データベーススレじゃないから気になるんだけど
桁数ってそもそも設計なのか?

2.
内部設計書だか詳細設計書だかを、顧客がみる、とするなら
そのドキュメントには当然、顧客が理解出来ないよーなことは書かないんだろう

設計はいつやるんだ?
0674デフォルトの名無しさん2012/02/24(金) 02:31:56.57
>>669
ひょっとしてUIや帳票レイアウトの部分が外部?
では、相手に渡す 内部 とは?
0675デフォルトの名無しさん2012/02/24(金) 02:35:31.71
>>673
桁数はお客さんと話して決めて設計書に書くよ。
帳票出力で何文字まで印刷できるかは非常に重要。
表示できなきゃいけない名前が切れてるとか、
金額が途切れてるとかなったら大問題だし。

質問するのはいいんだけどさ。
君はどういう現場で働いてんの?
発言の根拠が全然伝わってこないよ。
0676デフォルトの名無しさん2012/02/24(金) 02:37:31.07
日本のソフトウェア開発の生産性が低い理由が良くわかるスレ
0677デフォルトの名無しさん2012/02/24(金) 02:38:24.76
>>676
いらん書類を積み上げて仕事した感になるのは、
この業界の一部だけのことじゃないぞw
0678デフォルトの名無しさん2012/02/24(金) 02:38:51.59
ここは内部設計書いる派といらない派が議論するスレ?

なくても困らないなら、なくていいんじゃない

開発ターゲットも様々なんだし、一概に要不要を語れないと思うんだけど
0679デフォルトの名無しさん2012/02/24(金) 02:40:16.43
>>675
そういう、何文字まで、みたいなのって結局試してみるまでわからないよね

その場ですぐ修正するヨーな現場だよ
必要なら即リリースも安全に出来る。もちらん次回リリースに載せても問題ない。

要件がレフポンス良く反映されることを、喜んでもらえてますよ
0680デフォルトの名無しさん2012/02/24(金) 02:41:15.72
>>674
内部外部じゃなく、基本設計、詳細設計なんだけどね。
基本設計は、エンドユーザーや管理者に影響する仕様。
何度も書くけど、詳細設計は処理フローやエラーコードとか雑多な仕様。
お客さんのシステム部門が目を通す内容だよ。
0681デフォルトの名無しさん2012/02/24(金) 02:44:58.76
>>680
ああ、内部つっても、処理の流れとかエラーコードとかか。
それなら基本設計側にめりこんでるふうにすら感じる。

内部っつうから、まさかとは思うが、クラスライブラリのAPIとかつけてんのかと。
んなこたないわけね。
0682デフォルトの名無しさん2012/02/24(金) 02:45:27.91
>>680
揚げ足とるわけじゃないけど
エラーコードなるものがあるとしたら、それは管理者に影響するでわ
0683デフォルトの名無しさん2012/02/24(金) 02:46:07.54
処理の流れとかドキュメントに残すと悲惨なことになるだろ
0684デフォルトの名無しさん2012/02/24(金) 02:46:22.08
どーやってリファクタリングするんだよ
0685デフォルトの名無しさん2012/02/24(金) 02:50:01.21
>>679
ありがとう。あと客層を教えて欲しいんだけど。
特につか掛かってるつもりじゃないんだけど、
そういうお客さんってどういう所なのか純粋に気になる。

>>682
まぁ、基本と詳細の境界付近は曖昧だからねぇ。
0686デフォルトの名無しさん2012/02/24(金) 02:50:22.84
オブジェクト指向な発言しといてやるよ

このスレはスレタイと中身が違い杉
おまえらエンジニアとして落第点だな
0687デフォルトの名無しさん2012/02/24(金) 02:51:27.11
>>684
リファクタリングが設計書に影響しちゃ如何だろ
仕様や振る舞いを変えずに内部構造を変えるのがリファクタリングでしょ
0688デフォルトの名無しさん2012/02/24(金) 02:54:15.39
>>685
Webでもの売ったりしてる会社
新商品扱ったりキャンペーン打ったりデザイン変えたりで
仕様変更が通常のフローみたいな
結構よくある開発だと個人的には思ってる

小まめのリリースとデカ目のリリースとで、やることは適宜変える感じで
0689デフォルトの名無しさん2012/02/24(金) 02:59:59.63
>>688
社外に公開してるWeb屋さんについては
さっぱり解からんわ。なるほどね。
0690デフォルトの名無しさん2012/02/24(金) 03:08:01.10
>>689
誰もお前がそれを分かるかどうかなんて興味ないですよ?
0691デフォルトの名無しさん2012/02/24(金) 03:17:22.02
意味のない煽りするなよ

しかしこのスレの内容が意味ないとは全く思わないが
ム板ってよりマ板なレスが多いようだな

次スレ立つ前には、
スレ分けするなり旨く誘導なりしないと
今のままだとワケワカメだ
0692デフォルトの名無しさん2012/02/24(金) 03:33:11.50
>>691
では、スレ誘導ということで、マ板の該当スレを紹介

・仕様書、設計書について
 http://kohada.2ch.net/test/read.cgi/prog/1322274416/

・設計書を作ってるせいで生産性落ちてないか?
 http://kohada.2ch.net/test/read.cgi/prog/1169735232/
0693デフォルトの名無しさん2012/02/24(金) 06:15:20.40
いまの話題のがこのスレに相応しいんだけどな
自分が気に入らない話題になるとすぐに追い出そうとするのは悪い癖だぜ

そもそも書かれた仕様書に対してどのようにしてソースを組み立てるか?は
できた物より大事なこと
まったく同じソースでもそれが出来た過程によって糞にも宝石にも評価はかわる

それがわかってない奴は設計なんて語るレベルにないと思う
0694デフォルトの名無しさん2012/02/24(金) 07:20:15.63
>>691
スレ分けた所で根本的な解決にはならないよ

普段設計書書かないヤツがコード設計と設計書を混同する
↓
普段詳細設計書を書いてるヤツが設計書の定義を書き始める
↓
なぜか話が平行線に伸びる
0695デフォルトの名無しさん2012/02/24(金) 07:43:10.73
>>640
エラーコードとかを書くのは設計書なのか?
内部設計書=APIドキュメントのこと?
0696デフォルトの名無しさん2012/02/24(金) 07:49:23.59
桁数とかは詳細設計書ではないでしょ
要件定義書に書かれているものではないの?
パスワードは6文字以上とか
これって客の要求な気がするんだけど、基本設計以降で開発者が勝手に決めて良いことではないよね
0697デフォルトの名無しさん2012/02/24(金) 08:55:13.22
>>695
冷静に眺めていたら気が付いたんだが、
内部設計を詳細設計と呼ぶ例があるというのと、
その人が詳細設計について語っているのと、同時に考えちゃいけないのかもしれない。
その人は、内部設計ではなく詳細設計だけについて語っているようにも見える。
つまり、その人に内部設計について聞いても、その人にとっての詳細設計の返事が返ってきてる可能性あり。

>>696
俺もまったく同意。用件定義書、あるいは仕様。あるいは仕様の別表。
0698デフォルトの名無しさん2012/02/24(金) 11:01:49.94
>>652
>プログラムなら設定ファイルか定数クラスに一箇所書くだけ。修正も一箇所。
そんなふうに思ってた時期が自分にもありました・・・
0699デフォルトの名無しさん2012/02/24(金) 11:03:03.69
>>653だったorz
0700デフォルトの名無しさん2012/02/24(金) 11:20:50.46
>>664
> 緊急リリースだ!とかいってソースだけ直された日には何を見たら正かも定まらない
その緊急リリースに問題がありそうだということが発覚した場合、
ドキュメントがないと、さらに何が正なのかもわからない。
0701デフォルトの名無しさん2012/02/24(金) 11:21:40.41
で、結局「よくわかんないけど動いてるからいいじゃん」で済ます。
0702デフォルトの名無しさん2012/02/24(金) 11:31:37.59
ドキュメント自動生成やで
0703デフォルトの名無しさん2012/02/24(金) 12:55:07.29
設計の話まだー?
0704デフォルトの名無しさん2012/02/24(金) 12:55:53.24
それよりオブジェクト指向の話をだな
0705デフォルトの名無しさん2012/02/24(金) 15:23:24.18
うん、1つだけ言えることは
コードこそが客が本当に欲しがっている価値があるもので
資料はあくまで資料でしか無いのだよ。
0706デフォルトの名無しさん2012/02/24(金) 16:33:37.58
もうコードと資料の話はお腹いっぱいです(´・ω・`)
オブジェクト指向とデザパタの話しろお前ら。
おれは関数型に移行したのでだいぶどうでもいいが。
0707デフォルトの名無しさん2012/02/24(金) 16:35:14.18
関数型ってなんですか?
0708デフォルトの名無しさん2012/02/24(金) 17:00:21.24
prologについて語ろうぜ
0709デフォルトの名無しさん2012/02/24(金) 19:28:03.49
ソフトウェアは柔らかいからなぁ。
ハードウェアを作る時のような慎重さは求められてないかも。
少人数でイケたりもするしね。設計書が果たす効果が小さいね。
設計書を大人数の輪の中心に置いて、橋とかビルとか作るのとはまた違うよね。
0710デフォルトの名無しさん2012/02/24(金) 19:42:30.70
作る作業=コンパイルだからね。

プログラマが書いているソースコード
それが設計書そのもの。
0711デフォルトの名無しさん2012/02/24(金) 19:47:57.57
>>710
おーっ。ひさびさにスッとふに落ちる意見じゃないか。なるほどな。
0712デフォルトの名無しさん2012/02/24(金) 22:28:02.17
そして>539からの流れに戻ると
0713デフォルトの名無しさん2012/02/24(金) 23:06:55.16
ソースはどうとでもかけるからなぁ・・・
MSがワードかエクセルかVisioあたりもごちゃまぜにして
仕様書も設計書も含めたVSを作ってくれるといいんだけどな

仕様書に書いて部分をダブルクリックすると関連する設計書やソースコードが青く光る!

みたいな統合具合だったら仕様書ももっとやる気でると思う
0714デフォルトの名無しさん2012/02/25(土) 03:09:37.95
もう別すれ立てろよ、お前ら(´・ω・`)
0715デフォルトの名無しさん2012/02/25(土) 03:25:53.88
>>692
0716デフォルトの名無しさん2012/02/25(土) 07:03:23.63
>>714
自分が好きな話したいなら自分で話題ふれよ
文句だけ言ってるようじゃなにやってもダメ
0717デフォルトの名無しさん2012/02/25(土) 10:34:42.76
>>716
そういう事はルールを守ってから言え(´・ω・`)
0718デフォルトの名無しさん2012/02/25(土) 13:03:56.09
>>716
お前がでてけ
>>692がお前の巣だ
0719デフォルトの名無しさん2012/02/25(土) 18:00:15.61
こういう流れは2chのあらゆる板で見てきたけど、出ていけといっても無駄
今度は自治議論になって余計荒れるだけ

結局は話の流れを変えるしかない
0720デフォルトの名無しさん2012/02/25(土) 18:46:52.04
変えたいと思うなら変えればいい。
自由にやりたい事をやればいい。
俺も自由にやる。命令しても無駄w
0721デフォルトの名無しさん2012/02/25(土) 19:09:19.39
「インターフェースに対してプログラミングする」スタイルで開発したときって
機能を追加するときはどうすんのが一番いいのかな

インターフェースを差し替え?それともインターフェースを変えずに機能追加する方法があるの?
0722デフォルトの名無しさん2012/02/25(土) 19:39:59.98
インターフェースを追加すればいいだけ。

それが問題になるなら、別の方法を取ればいいだけ。
0723デフォルトの名無しさん2012/02/25(土) 23:26:33.75
>>713
二年ほど前になんかの展博に行ったときに、CATS がその手のツールを出してたような気がする。
詳しくは聞かなかったから、実際どこまでできるかはよく知らんが。
0724デフォルトの名無しさん2012/03/06(火) 21:32:34.85
>>713
仕様書はI/O動作の定義書いてるだけだからどうあがいても無理だろ。
ソースデザインはUML連動ツールで我慢しなさい。
0725デフォルトの名無しさん2012/03/06(火) 23:00:00.68
連動なんてしてなくていいんだけど
単に仕様書の文をクリックしたら該当部分のソースコードに飛んでくれるだけの機能でいいんだけどね
0726デフォルトの名無しさん2012/03/06(火) 23:26:23.99
>>713みたいな発想は、昔からあるね
以下は、Smalltalkを題材にした書籍の一部

・オブジェクト指向を支援する道具
 http://aokilab.kyoto-su.ac.jp/documents/IntroductionToOOAOOD/chapter5/index-j.html

あと業務システム開発で主流のCOBOL系だと、リポジトリと呼ばれる
設計データベースを中核にした統合CASEツールが昔から使われている
たとえばSADS(富士通)やSEWB(日立)など
今時なら、Javaでそんな製品があるのかもしれない(自分は知らない)

それからRuby限定だけど、ソースから詳細設計書を自動生成し、
その時に設計書とソースとの間のリンクも生成してくれるツールがある

・TmDoc - Rubyソフトウェアの保守ドキュメントを作成
 http://www.h6.dion.ne.jp/~machan/tmdoc/index-ja.html
0727デフォルトの名無しさん2012/03/07(水) 01:26:02.35
>>726
でもそれって仕様とコードの対応付けできないよね。

ソースと仕様を対応付けたいなら、まず仕様と対応するのは
テストコードだから、仕様書から対応するテストコードにリンク、
もしくは外部参照貼るしか無いんじゃないか?
リンクなら、HTMLやらWordやらPDFやらで使えるし、
外部参照ならDTP系ツールで使えたりする。
0728デフォルトの名無しさん2012/03/07(水) 04:33:23.07
WEBみたいにして、関数の説明だけじゃなくって仕様書もプログラムも一緒のファイルに書けるものがあればいい?
0729デフォルトの名無しさん2012/03/07(水) 06:09:29.14
>>728
そうそう
仕様書とプログラムのリンクが物理的に外れちゃうからややこしいことになるのであって
いっしょにくっついてりゃわざわざヘンテコなことする人いないよ
0730デフォルトの名無しさん2012/03/07(水) 06:56:45.37
文芸的プログラミングか
あれはあれでヘンテコな気がするが
0731デフォルトの名無しさん2012/03/07(水) 08:27:31.14
試してから言わないとな
そういう妄想もつような現場は
どーせこーなる↓


xxx機能
link1:Aaa.java
link2:Bbb.java
:
link98:Xxx.java
0732デフォルトの名無しさん2012/03/07(水) 21:04:24.42
>>731
せめてDoxygenの改造みたいな奴で頼む
0733デフォルトの名無しさん2012/03/07(水) 21:12:49.95
<function type="int" name="main">
  <argument type="int" name="argc"/>
  <argument type="char**" name="argv"/>
  <body>
    <section id="function1" annotation="Hello World表示機能">
       puts( "hello" );
    </section>
    <section>
       return 0;
    </section>
</function>

こっからXSLTを使ってHTMLとソースコード生成。
現実に可能ではある。
0734デフォルトの名無しさん2012/03/08(木) 12:31:14.77
一昨年くらいに作ったけど逆にめんどくせぇよw
0735デフォルトの名無しさん2012/03/08(木) 18:55:50.96
>>727
>でもそれって仕様とコードの対応付けできないよね。

それというのが何か分からないけど、
たとえば>>726の最後に紹介したRuby文書化ツールであれば、
DocBookと呼ばれるXMLベースの技術系文書向けマークアップ言語を採用している
・DocBook 5: The Definitive Guide
 http://www.docbook.org/tdg5/en/html/docbook.html
で、DocBookのxrefタグでリンク先の章/節に付けたid属性を指定すれば
(xrefタグが)その章/節の題名にリンクを付けたテキストへ自動変換されるし、
汎用リンクとしてのlinkタグやURLを指定するulinkタグもある
また、外部参照もolinkタグで実現できるよ

>リンクなら、HTMLやらWordやらPDFやらで使えるし、
>外部参照ならDTP系ツールで使えたりする。

これらで指定できるのはソースファイルへのリンクであって、
該当する行番号へのリンクまでは指定できないんじゃないかな?
またマニュアル/パンフレットならともかく、
仕様書/設計書の作成のためにDTP系ツールを使う人なんていないと思う
普通はWord/Excel(あるいはHTML)を使うんじゃないのかな?
結局、>>713の発想を実現するには、VSとOfficeの統合が必要になる
0736デフォルトの名無しさん2012/03/08(木) 23:40:19.10
いまのところそれができるのはマイクロソフトだけなんだよね
だからちょっと応援しちゃうのさ
一旦でればエクリプスや他の統合開発環境にもすぐに溶け込んじゃうと思う

次のイノベーションは間違いなく仕様書とソースコードのシームレス化
MSのお手軽DB機能(DBバインド機能?)なんて後でいいからさっさとVSとOfficeの統合からやってほしいんだよね
0737デフォルトの名無しさん2012/03/09(金) 01:29:59.37
ないな
0738デフォルトの名無しさん2012/03/13(火) 18:28:25.98
20年ぐらい前に富士通のcape?っていうの使ってたけど、
フロー書くとcobol経由で実行ファイルに落としてくれてたな。
1日3本とか作れて楽だったし、時給5000円ぐらい貰えた。
0739デフォルトの名無しさん2012/03/18(日) 02:09:04.56
うーん。ベクトル情報を扱う際、拡張性高く空間の入れ子構造を表現する方法は無いかなぁ。
仮想ラスタライズ用クラスに、仮想ラスタライズクラスを参照する内部クラス(インターフェース)を、
持たせれば、簡単に空間の再帰構造を実現できるんだけど、図形要素を追加したくなったら
仮想ラスタライズ用クラスにいちいち、描画用メンバーを追加せにゃならんのが面倒い。
0740デフォルトの名無しさん2012/03/18(日) 07:42:15.86
状況が分からん。擬似コードで書いてよ
0741デフォルトの名無しさん2012/03/18(日) 10:04:36.30
問題の状況はこんな感じ

struct Rasterizer
{
      struct Group
      {
            virtulal bool Shell( Rasterizer &device ) = 0;
      };
      virtulal bool Shell( const Group&, const Algebra::Matrix& ) = 0;
      virtulal bool Shell( const Shape::Path& ) = 0;
      virtulal bool Shell( const Shape::Image& ) = 0;
      virtulal bool Shell( const Shape::Text& ) = 0;
};
0742デフォルトの名無しさん2012/03/18(日) 10:23:03.65
Shellってなに?中に入ってるGroupってなに?
0743デフォルトの名無しさん2012/03/18(日) 10:30:20.45
Shellってのは塗りの意味。
Groupはローカル空間の図形集合で、内部でRasterizerに対して
Pathとか、Image、Groupの描画を行います。
0744デフォルトの名無しさん2012/03/18(日) 10:31:32.46
意味分からん設計だな
エスパーして俺が設計しなおすと

TParam = class
  現在の変換行列とか描画対象とか
end;

TClass1 = class
private
  子のリスト
public
  property pos
  property rotate
  property scale
  procedure draw(p: TParam); virtual;
end;

ってやって

TRect = class(TClass1)
public
  property width
  property height
  procedure draw(p: TParam); override;
end;
って追加していくんじゃだめなの?

delphiのカスタムコントロールそのままの設計だけど

子の描画が絶対ならdrawとdrawcoreにわけて、drawcoreだけprotectedにしてvirtualにしてもいいけどな
子を描画してその描画結果に対して何らかの処理を施すみたいなのがあると、draw自体を変える必要があるから↑で書いたのが柔軟性があるけど
0745デフォルトの名無しさん2012/03/18(日) 10:34:24.87
モノ自体にdrawがついてる設計は糞
すぐに破綻する
描画専門のクラスを作ってそいつに描画するものぶち込む設計にしないとうまくいかない

render.draw(描画したいモノ);

の形で
0746デフォルトの名無しさん2012/03/18(日) 10:38:43.34
まあ。確かに俺の書いたのだと移植性がなくなるな
描画専門の作ってそこに自分自身を投げ込むようにすればいいな
0747デフォルトの名無しさん2012/03/18(日) 10:42:43.22
>>744
?
TClass1の位置づけが、描画する側なのか、描画される側なのか
はっきり断定できないよ。TClass1の具体的な名前で教えて。

あと、Rasterizerの実装は、png画像だったり、svgのベクトルデータだったり、
GDIの描画APIだったりするから、デバイスと描画が癒着されると困るよ。
0748デフォルトの名無しさん2012/03/18(日) 10:47:45.36
>>745
使い方は同じだね。

boost::shared_ptr<Rasterizer> render = device->CreateRasterizer();
render->Shell( Text( いろいろ ) );
render->Shell( Image( いろいろ ) );

Path path;
path += Move.New( いろいろ );
path += Line.New( いろいろ );
render->Shell( path );
0749デフォルトの名無しさん2012/03/18(日) 10:49:00.99
>>748
いんじゃね?
0750デフォルトの名無しさん2012/03/18(日) 10:49:25.91
TClass1は描画される側な。自分で自分を描画するわけだけど
描画専門クラスにTClass1投げ込むのはやっぱりだめだわ
描画専門クラスはTRectのことなんて知る必要も無いから

問題をふたつに切りわけようぜ?
・描画のプラットフォーム非依存
・入れ子。本質的な部分

描画のプラットフォーム非依存は、ラッパー作ればいいだけ(お前の考えるRasterizerの役割な)
ほとんどのプラットフォームで実現できるであろう描画関数を用意しておく

入れ子に関しては↑で俺が書いた方針
TRectとかはラッパーで用意された関数を駆使して自分を描画する

TParamをRasterizerに変えちゃって。行列の情報とかもついでに持たせてもいいかも
GDI+とかOpenGLみたいな感じで
0751デフォルトの名無しさん2012/03/18(日) 10:53:00.89
>>749
>>739 にも書いたんだけど、これだと新しいShell関数を追加しようと思ったら、
Rasterizerに直接追加するしか無いんだよね。Rasterizerを継承してShell関数追加ってのが出来ないんだよ。
0752デフォルトの名無しさん2012/03/18(日) 10:53:08.98
描画に必要な情報を引数からすべてぶち込んだはずなんだから
Shell関数の出来が悪いとしかいいようがないじゃん
構造とかそういう問題なのか?
0753デフォルトの名無しさん2012/03/18(日) 10:56:24.10
正三角形みたいのを追加したくなったらRasterizerにdraw正三角形を追加するのバカげてるだろ?
じゃあポリゴンでしか扱えないのもバカげてるだろ?

だから

TCustomPolygon = class(TClass1);
TSeisankakkei = class(TCustomPolygon);
TRect = class(TCustomPolygon);
TPolygon = class(TPolygon)

ってやっていく

-------------------------------------
ラスタライザっていうのはデバイスに近いでしょ?低レベルなわけ
デバイスにできることって限られてんじゃん。その限られたことを全部最初に書いておけばいいだけ
よりハイレベルな、正三角形描画みたいなのは↑で実現する
0754デフォルトの名無しさん2012/03/18(日) 11:06:00.74
>>750
後出しになってごめんね。
Shellの引数に渡してるオブジェクトは、図形情報もってるだけで、複合図形でなければ
描画自体はしないんだ。Rasterizerに値をわたすだけなんだよ。

描画ターゲット非依存自体は、ある程度解決出来てるんだけどねぇ。
結局、Rasterizerに考えうる限りShell関数用意するしかないのか。

>>753
高レベルなのは、それでいいんだけどね。
0755デフォルトの名無しさん2012/03/18(日) 11:11:53.67
>>753
問題なのは、低レベルな部分の対処なんだよ。
たとえば、SVGは、パスや、線分、文字、行列変換とか数十以上の
図形情報をそのままファイルに書き込めちゃう。
もし、自前で行列変換した結果を渡すとかしちゃうと無駄が発生しちゃう。
0756デフォルトの名無しさん2012/03/18(日) 11:17:27.13
>>753
ちなみに、そういう高水準な例だとPathクラスを継承することでカバーできてるよ。
0757デフォルトの名無しさん2012/03/18(日) 11:19:41.67
>>755
SVGにあわせればいいんじゃない?

Rasterizerに
・begin入れ子
・end入れ子
っていう命令を追加してさ

GDIとかはそれをエミュレートして描画するのよ
0758デフォルトの名無しさん2012/03/18(日) 11:21:44.53
でもなんかいやだよな。最大公約数を最初に決めてしまうのは
後で最大公約数が増えた日には・・・
0759デフォルトの名無しさん2012/03/18(日) 11:25:03.60
>>755
あれじゃん、Rasterizerの派生にもう一回派生クラス用のGroup定義すり済むだろ
どうせRasterizerのGroup使ってるクラスは、Rasterizerの図形描くことしか考えてないわけだし
0760デフォルトの名無しさん2012/03/18(日) 11:33:05.43
>>759
確かにね。
ついでに、GroupとRasterizerの相互再帰を解消する方法ってないかなぁ。
別にオブジェクト的に相互再帰してるのは構わないんだけど、クラスレベルで
直接相互再帰してるのはなんか嫌だわ。
0761デフォルトの名無しさん2012/03/18(日) 11:36:19.76
何が組まなくちゃいけないもので
何が設計で解消できるものか線引きができてないってことだろ
この問題に関していうと全部書くしかない
0762デフォルトの名無しさん2012/03/18(日) 11:38:26.36
Groupの存在意義が分からん

group内のshellって何すんの?
0763デフォルトの名無しさん2012/03/18(日) 11:39:41.59
>>761
図形を網羅するかは、>>759の派生にいちいちGroupを定義する事で解消できそう。
あとは、大して問題じゃないけど相互再帰を解消出来たらなぁ。
0764デフォルトの名無しさん2012/03/18(日) 11:46:50.54
>>762
bool Group::Shell( Rasterizer &render )
{
render->Shell( image1 );
render->Shell( text );
render->Shell( image2 );
・・・・以下略・・・・
}

説明だけは前にも書いたけど、
こんな感じで、図形を内部に複数持ってて、
Rasterrizerに描画するの。
この時、Rasterizerの座標空間やその他のコンテキスト情報が
直接RasterizerのShell呼んだ時とは別物に変更されてる。
0765デフォルトの名無しさん2012/03/18(日) 11:51:09.91
>>764
ダサくね?

Rasterizerは黙って
・ポリゴン描画
・変換
・入れ子開始
・入れ子終了
だの"命令の羅列"だけを実行するべきじゃない?

Groupなんてものはこっち側っていうかアプリケーション側っていうか高レベルなことじゃん
人間にとっては分かりやすいけど、SVGとかGDIにとっては不要なもの
それをRasterizerに持たせるのはダサい

なんで俺のTClass1のようにRasterizerとハイレベルな部分を分離しないんだ?
0766デフォルトの名無しさん2012/03/18(日) 11:54:29.24
>>764
それなんかrenderのもつ権限がおかしくないか?
他の人にすごく迷惑かかると思う
0767デフォルトの名無しさん2012/03/18(日) 11:56:48.63
>>764
頭の良い奴が書いたコードはパッと見理解できなかったりする
頭の悪い奴が書いたコードもパッと見理解できない

お前のコードはパッと見理解できないわけだが
どっちなんだ
0768デフォルトの名無しさん2012/03/18(日) 12:00:50.77
会社で居場所を作る場合は
他人に理解できないコードをたくさん書いたほうがいいよ
他の人に対処されると自分の居場所がなくなるからね
0769デフォルトの名無しさん2012/03/18(日) 12:02:10.44
>>741
このコードって何言語?
0770デフォルトの名無しさん2012/03/18(日) 12:02:45.07
俺の作ったコードの保守には専門の業者(俺)が必要なわけだwww
0771デフォルトの名無しさん2012/03/18(日) 12:03:20.30
>>765
実質あんまり変わらない気がしてねぇ。

>>766
>>764 bool Groupって書いちゃったけど、あくまでRasterizer::Groupの派生クラスで定義してるんだよ。
それでもダメかい?

実際ユーザーサイドで使う使い方はこんな感じ。
GroupList group;// GroupListは、Rasterizer::Groupの派生
group += Image::New( いろいろ );
group += Text::New( いろいろ );

render->Shell( group, matrix ):
render->Shell( Text( いろいろ ) );
0772デフォルトの名無しさん2012/03/18(日) 12:06:53.78
>>765
前にも書いたけど、複合的な高水準図形は、GroupやPathの派生で済むよ。
0773デフォルトの名無しさん2012/03/18(日) 12:13:13.39
>>772
横からだが、>>765氏はシンプルに
「GroupをRasterizerに持たせるのはダサい」と言っているのでは?
0774デフォルトの名無しさん2012/03/18(日) 12:15:40.07
>>773
多分そうだと思う。

・入れ子開始
・入れ子終了
結局問題点は、Groupをこれに変えろということなんだろうな。
0775デフォルトの名無しさん2012/03/18(日) 12:17:48.82
>>771
糞設計やな。頭悪い奴が書いて理解できなかったパターンか
俺が例に出した正三角形はどうやって実現するんだ

俺が言ったやり方だとセピア調にするエフェクトだの。モザイク書けるエフェクトだの
もっとできることの集合が広がる

これを機に設計について考えてみたほうがいいぞ?センスが標準以下

//ImageとTextもGroupの派生クラス
Group group;// Groupは、Rasterizerの配下には無い
group += Image::New( いろいろ )
group += Text::New( いろいろ )
group.matrix = matrix;
group.draw(render);
ってできるわけよ?

さらには
Group sepia = Sepia::New;
sepia += group;
sepia.draw(render);
ってやればセピア調エフェクトができるわけよ

>>772
Groupの派生で済むのは分かるが。なんでそいつがRasterizerと癒着しなくちゃいけないんだよ
ピタゴラスの発見した正三角形なんていう高尚なものがだよ、日本の一へたれプログラマが設計したRasterizerなんかに振り回されないといけないの?
0776デフォルトの名無しさん2012/03/18(日) 12:26:50.61
>>774
そうよ。RasterizerがGroupを持っていたとしても、実際に描画するときにはデコードされるわけよ
意識してないかもしれないけど。再帰によって
ファイルに書き込むときのことを考えれば分かりやすいか

そのデコード処理もRasterizerと分離させれば分かりやすいってことよ
0777デフォルトの名無しさん2012/03/18(日) 12:28:05.67
なあ誰か>>775が何言語か教えてくれよ
0778デフォルトの名無しさん2012/03/18(日) 12:28:14.70
>>775
Groupの部分については、開始と終了をもちょうっと掘り下げてほしいな。
SVGの<g>タグとか<path>タグとかどう表現するかとか。
<g>タグと<path>タグってのはこんなのね。
<g もろもろ属性>
    <g>
      <path g="M10,20 L20,30 Z" />
    </g>
</g>


render->Shell( Trigon( 図形情報) ): // 呼び出してるのはShell( const Path& )
正三角形とかってのはこれで済むよ。
0779デフォルトの名無しさん2012/03/18(日) 12:30:00.88
>>777
ここで聞いておいで

C++相談室 part94
http://toro.2ch.net/test/read.cgi/tech/1329512856/
0780デフォルトの名無しさん2012/03/18(日) 12:30:14.17
構文木とマシン語の関係が少し近いかもな
で、お前の作ろうと思ってるRasterizerは.NETのバイトコードみたいな感じでさ

お前はその.NETのバイトコードに大胆にも構文木を盛り込もうって思ってるわけよ
対応できる言語の幅が狭まるわな
0781デフォルトの名無しさん2012/03/18(日) 12:31:34.40
>>776
それ入れ子間違えたら面倒だろ・・・
0782デフォルトの名無しさん2012/03/18(日) 12:33:10.66
>>779
�d
せめてRubyにしてくれんとわからん
0783デフォルトの名無しさん2012/03/18(日) 12:34:33.59
>>776
pathの入れ子の中でグループの入れ子が入らないこと保証しないの?
ひたすら実行してテストあるのみ?
0784デフォルトの名無しさん2012/03/18(日) 12:39:23.84
Matrix m;
Group g(m);
g.add( Text::New("def") );
g.add( Image::New() );

Device * device = deviceFactory.getdevice();
Render render( device );
render->Shell( &g );
render->Shell( Text::New("abc") );

//-----

Render::Shell( IShape* item )
{
device->Shell( item );
}

Render::Shell( IGroup* g )
{
device->push_context( g.context() );
foreach(device->Shell( i ));
device->pop_context();
}

まあ擬似コードだけどな。
Groupをレンダラの内部クラスにする理由がちょっとわからんな。
ブリッジでデバイスと切り離しておけば、レンダラに必要なのはShell(IShape)とShell(IGroup)だけ。
新しいShapeを追加するときはIShapeを継承させて、デバイスにそのクラスのメソッドを追加すればいいんで
レンダラには手を加える必要がない。
0785デフォルトの名無しさん2012/03/18(日) 12:48:04.28
>>784
>Groupをレンダラの内部クラスにする理由がちょっとわからんな。
Groupの中にGroupがある事を想定していて、GroupとRenderの相互再帰を行うためだよ。
Groupを前方宣言してもできるにはできる。Javaとか最近の言語だと、特に小細工しなくとも
相互再帰できるから、C++で単純に相互再帰出来ないこと知らない人には不思議かもしれない。
0786デフォルトの名無しさん2012/03/18(日) 12:49:19.08
>>778
そもそもお前の目的は、pngだろうとgdiだろうとSVGだろうと同じコードで走らせたかったんだろ?
RasterizerとGroupの派生クラス達をみっつも書くのは辛いだろ。したっぱがたくさん居れば何の問題も無いけどなwww

俺のやり方なら分離できてRasterizerだけをみっつ書けばいいって言ってるのに。素直に吸収しようぜ?

>>781 >>783
確かにそれは心配だな。解決策はすぐには思いつかん
派生クラスから使えないようにすればいいけど、少し自由度が下がる気がする

あれか、C++ならデストラクタでやることにすれば多少安全か
C#ならIDisposableでな
Delphiは残念ながらInterfaceの自動破棄で強引にやるか、try finallyでやるしか無い

>>784
俺のTClass1の設計と根本的には変わらないな
push_contextとpop_contextの対応の問題がある
0787デフォルトの名無しさん2012/03/18(日) 12:52:20.71
>>784
単なるラスターデバイスならそれでいいだろうけど、
ベクターならdeviceは、図形から個々の情報取り出す必要があるでしょ。
画像とか、文字の区別をdevice側でどう付ける気?
まさか、ダウンキャスト?
0788デフォルトの名無しさん2012/03/18(日) 12:57:24.20
>>786
どのみち三つ書かなきゃいけないっぽいしねえ。
派生Groupで書くのは、Rasterizer派生で増えたメンバー分だけでしょ。
そこは気にならないけど。
問題点は内部クラスの分離だし。
0789デフォルトの名無しさん2012/03/18(日) 12:57:51.03
>>785
GroupのなかにGroupがあるってことは単純にIShapeのコンポジットってかんじか?
それでも相互再帰を行う理由がよくわからん。

>>786
対応の問題とは?
0790デフォルトの名無しさん2012/03/18(日) 13:02:14.18
>>786
deviceがRenderにカプセル化されてて
外から、deviceの入れ子を変更できないなら
対して問題じゃないだろ?
push, popが集中するからRenderから直接呼び出せるよりは
圧倒的に安全だ。
0791デフォルトの名無しさん2012/03/18(日) 13:02:22.88
>>787
デバイスでは具体的な型を引数に取るShell()が宣言されるよ。
ダブルディスパッチで適切なメソッドが選択される。
ってか、そういうことを言ってるのではない?
0792デフォルトの名無しさん2012/03/18(日) 13:04:16.35
>>789
>>781とか>>783とか
まあ、IGroupの派生クラスからはpushとpopを呼べなくすればいいんだけど。それで少しやれることの集合が狭まるからトレードオフなのかなって

>>790
その通りよ。でも自由度が狭まる気がしたのよ
0793デフォルトの名無しさん2012/03/18(日) 13:04:30.19
ごめん
>>791は忘れて。
0794デフォルトの名無しさん2012/03/18(日) 13:05:29.35
>>791
じゃあ、ダブルディスパッチする先のインターフェースは?って事になる。
問題は、ダブルディスパッチ先のインターフェースで起きてる事と同じで、
問題となる部分が、見えやすい部分にあるか、隠れた部分にあるかの違いしかないでしょ。
0795デフォルトの名無しさん2012/03/18(日) 13:18:14.47
>>786 どうでもいいがまともに議論してるときに煽るな
珍しくまともに議論してると思って見てたのにイラッとくる
0796デフォルトの名無しさん2012/03/18(日) 13:31:27.75
          ,      /〃ハヾ  / ∧∨〃、ヾ} l| :}ミ;l\
        /〃// / 〃l lヽ∨,〈ヾ、メ〈 }} ;l リ ハ l`!ヽ.
          //' /,'  ,' 〃 l l川/,ヘ丶\;;ヽ/:'/〃∧ l ト、:l !
         〃,'/ ;  ,l ,'' ,l| レ'/A、.`、\;;ヽ∨〃/,仆|│l }. |、
         i' ,'' l| ,l ' l. !| l∠ニ_‐\ヽ;\,//,イ| l | l ト/ λ!   、
.        l ;  :|| ,'i:/ l| |:|: |``'^‐`ヾ∨`゙//|斗,l ! | ,タ /l.| l  三__|__
       l ' l |」,' l' lハ |'Ν    ̄´ /` ,|l_=ミ|! ly' ,〈 :|| |  口 |
        |l .l H|i: l | ゙、| l        _.::: ,!: l厂`刈/ /!} :l|    ‐┬‐
        |! :l |)!| ! |  ヽ      '´ ’/'_,.   ノイ.〃/|!    │田│
        l|l |l 「゙|l |`{             ..   _   |}/,ハ l     ̄ ̄  
       |!l |l、| !l :|.      ‘ー-‐==ニ=:、__j:)  l'|/|l リ    、 マ
ヽ ̄ニ‐、__.」乢!L!lヱL」__           ー、 `'''´   从「 /     了 用 
 \ `ヽ\      /l |       / ̄´     //        '"`ー‐
.  ,、  l  ゙、    / ' |、      {        /l/         ,
   '}  l  ゙,    /   |:::\      }     ,.イ/          レ |  
   l  l   l  ,.イ   l:::::::::\__   `'-‐::"// |′          ノ
   l   !   K ヽ,、 \「`''''''''"´:::::::;;:" //          
.    l   l   ト、\( _.... ヽ  .:.::::::::;;″ /'       _    
\   |  l|  八、ヽi´    | .:.:::::::::::::i' .:/'"´ ̄ ̄ ̄ ,.へ\
0797デフォルトの名無しさん2012/03/18(日) 13:32:42.31
>>785
内部クラスかどーかみたいな言語よりの話しはオブジェクト指向てきに、どーでもいいだろ
0798デフォルトの名無しさん2012/03/18(日) 13:35:28.51
もっと難しいお題こいや
0799デフォルトの名無しさん2012/03/18(日) 13:37:40.60
Pentium 100Mhzで動く
Googleなみの検索エンジン作れ
0800デフォルトの名無しさん2012/03/18(日) 13:44:40.36
ソースコード添削サービスってやったらウケるかな
設計の下手さにコンプレックス抱いてる奴ってどのくらい居るの?
それともみんな自信だけはあるの?
0801デフォルトの名無しさん2012/03/18(日) 13:46:15.75
>>799
クローラーと検索。文字情報を保持する奴
しかもネットワークでクラウド

まあ、ここに居るやつらなら15分で設計し終わるな
0802デフォルトの名無しさん2012/03/18(日) 13:53:33.44
>>800
添削してやっから
ソース出せ
0803デフォルトの名無しさん2012/03/18(日) 14:11:27.40
>>800
結論から言うと流行らない
0804デフォルトの名無しさん2012/03/18(日) 14:12:32.91
>>800
分量によってはそれシンドイぞw
クソみたいなコードが山盛りで来たらどうするよw
0805デフォルトの名無しさん2012/03/18(日) 14:22:01.87
>>797
構文上の問題じゃないだろ
内部クラスで実現してるか、単にクラス同士直接参照してるかはどうでもいい話だが
クラス間の相互参照が問題なんだろ

interface A
{
      void method(B arg);
}

interface B
{
      void method(A arg);
}

Javaで書けば、これがおかしいつってんだから言語固有の問題じゃない
0806デフォルトの名無しさん2012/03/18(日) 14:30:38.97
2chに入れ子の安全性を保ちながら
相互再帰解消可能なクラスデザインできる
まともなヤツはいねぇよ
08077842012/03/18(日) 14:41:28.34
http://ideone.com/7dbyE
ちょっと直してみた。
いまのおれにはここまでしかできんな。
0808デフォルトの名無しさん2012/03/18(日) 14:47:32.43
>>807
前の方がよかったんじゃない?
CompositShape以外からもpush_context、pop_contextアクセスし放題やで
0809デフォルトの名無しさん2012/03/18(日) 14:49:44.12
>>807
newDeviceでRasterizerカプセル化したCompositShape返せばいいんじゃね?
0810デフォルトの名無しさん2012/03/18(日) 14:52:47.33
>>807
Rasterizerの代わりにCompositShapeを返すならいい線いってる気がする。
描画ロジックは、CompositShapeのメンバー以外見なくて済むようになる訳だかね。
0811デフォルトの名無しさん2012/03/18(日) 15:00:51.01
>>807
>class Text;
>class Path;
>class Image;

>class Rasterizer {

サンプルだから揚げ足とり見たいなはなしになるけど、
ここ問題となった相互参照しまくってるよね。
入れ子でない図形だからTextとかインターフェースに
きっちり分離することで解消できそうな部分じゃあるけど。
0812デフォルトの名無しさん2012/03/18(日) 15:07:07.25
いきなりコード書くんじゃなくて
まず責務を明確に日本語で記した方がいいんじゃないかな
0813デフォルトの名無しさん2012/03/18(日) 15:14:27.17
まずは要求をはっきりさせないとね
0814デフォルトの名無しさん2012/03/18(日) 16:39:29.28
クラスを用いてインターフェースを抽象化するのはいいのだけど、
インターフェースの処理結果が抽象化できるとは限らない。

例えば、データ分析のプログラムを開発しているとしよう。
Analyzerクラスをインターフェースにして各種分析方法の実装クラスを定義する。
インターフェースをAnalyzer::Analyze( data : double[] ) とする。
この場合、分析結果が vector< double >型 だったり double型 だったりするケースは普通にあると思う。

戻り値が異なる場合は、どう抽象化するのが最適解なのだろう? 

0815デフォルトの名無しさん2012/03/18(日) 16:49:58.38
型パラメータ
0816デフォルトの名無しさん2012/03/18(日) 16:53:09.99
>>814
戻り値を得る部分をインタフェースに含めない、が正解かもしれない。

GoFのビルダパターンも原本ではそうかいてある。
よく、ビルダクラスにgetResult()みたいなのをくっつけちゃってる後追い本があるが、
本来は作業工程を呼び出し側(ディレクタ)と呼び出される側(ビルダ)に分離させるのが肝。
ビルダに手順以外のインタフェースを持たせない。結果部分はこのレベルで扱わない。

クライアントは抽象化されたディレクタとビルダを用いる箇所を持ち、
実際に何を得るかは具象クラスを知るクライアント自身がそれに問い合わせれば良い。

MenuBuilder b = new DefaultMenuBuilder // or DebugMenuBuilder
MenuDirector d = new FileMenuDirector
d.construct(b)
Menu m = b.getMenu // or String s = b.getDebugLogString
08178162012/03/18(日) 16:57:12.74
あっ肝心のところを雑にしちゃった。
MenuBuilder b = 
じゃなくて、クライアントは具象クラスを知っていて使うのだから、
DefaultMenuBuilder b =
でいいし、あるいは、
MenuBuilder b = 
Menu m = ((DefaultMenuBuilder)b).getMenu 
でも十分。
ディレクタがビルダを見るとき、そこが抽象化されていれば十分だから。
MenuDirector#construct(MenuBuilder b)であれば十分だから、
クライアントは胸を張ってそれぞれの具象クラスを使う。
0818デフォルトの名無しさん2012/03/18(日) 16:59:19.91
>>817
キャストが醜く感じる
0819デフォルトの名無しさん2012/03/18(日) 17:03:39.14
>>816
GOF本うんぬんは置いといてさ

Builderが何かを作る目的が、結果を取り出されるために作るんなら
結果の取り出され方を含めて手順だろ。
そこをインターフェイスから外すとかわけわかめ

Builder<T>でgetResultがT型返せばOK
0820デフォルトの名無しさん2012/03/18(日) 17:06:33.67
>>817

レス有難う。御意です。
GoFを見返したのですがProduct(私の例で言う分析結果)の抽象化のメリットは小さい、と書いてありますね。
抽象化するとどうも具象を扱ったりダウンキャストを毛嫌いしてしまいます。
作るほうが柔軟にならなきゃ、ですね。
0821デフォルトの名無しさん2012/03/18(日) 17:07:10.77
結果もインターフェースにすれば?
0822デフォルトの名無しさん2012/03/18(日) 17:12:58.27
>>821

結果をIFにすると、ダウンキャスト必須になりますね。
プログラムのセマンティックを明示するという意味ではありだと思います。
0823デフォルトの名無しさん2012/03/18(日) 17:16:55.04
>>820
template<class type> type Anarizer<type>::Anarize();

template<> double Anarizer< double >::Anarize(){ 処理 }
template<> std::vector<double> Anarizer< std::vector<double> >::Anarize(){ 処理 }

OO関係ないけどC++なんだからテンプレートで返したら?
そもそも、std::vector<double>だけですむものを、doubleで返す意味が解らないけど。
ハゲは、個体じゃなくできるだけ集合で扱えといっとったぞ。
0824デフォルトの名無しさん2012/03/18(日) 17:23:44.57
「std::vector<double>だけですむものを、doubleで返す」のはモノの喩えです。
テンプレート化しても受け手が具象型を扱わなければいけないので実質的な利益はないですね。
クールなコードだと思うし、私もそういう方が好きです。

しかしこういうコードを書くと、40過ぎの前近代的マーのオッサンが切れ始めて、
違う意味でややこしくなります。
0825デフォルトの名無しさん2012/03/18(日) 17:30:21.11
>>824
受け手の都合で、型を変えるなら
1.引数で返す
2.テンプレの引数で指定する
3.変換演算子をオーバーライドした一時オブジェクトを挟み込む
4.関数名の中に型名を含める(テンプレ引数の劣化判

これぐらいしか無いでしょ。暗黙だろうが何だろうが、
何らかの方法で呼出側から型情報を渡さなきゃならない。

呼出側に型を選ばせたく無いならダブルディスパッチを使うという方法もあるが。
0826デフォルトの名無しさん2012/03/18(日) 17:39:53.62
>>823
ハゲって誰だよw
0827デフォルトの名無しさん2012/03/18(日) 20:42:34.80
factory method と abstract factory の違いが分かりません。
また abstract factory と builder の違いも。
誰か説明して頂けませんでしょうか?

というか、どなたかもっと分かり易い名前を
つけてくれる方はいないでしょうか?
実際、こういうプログラミングイディオムに対して、
分かり易い名前を付けるという仕事は、
社会的な需要があると思うのですが・・・。
0828デフォルトの名無しさん2012/03/18(日) 20:47:04.04
>>826
ビャーネ・スッポスッポじゃね?
0829デフォルトの名無しさん2012/03/18(日) 20:49:32.37
びやうねすとらうすとらっぷのことか。
0830デフォルトの名無しさん2012/03/18(日) 20:50:10.02
おいおい「ハゲの名をみだりに唱えてはならない」と教わらなかったのか?
正確な発音議論でスレを使い切っちゃうだろ
0831デフォルトの名無しさん2012/03/18(日) 21:07:18.26
>>827
ファクトリメソッドは、テンプレートメソッドに近い(?)。
インスタンス作成をサブクラスに任せる。サブクラスでする実装が、インスタンスの生成というだけのこと。
サブクラスがFoo create()で実際に、return new AbabaFooするか、return new BuboboFooなどする。
インスタンスを返すメソッドと、サブクラス化によるその実装という対応に着目。

アブストラクト〜のほうはまず大きな違いとして、インスタンス群を扱う。
createFoo, createBar, createBazをもつような工場クラスを考え、
今度はその工場を入れ替えて使えるように、抽象的な工場として扱う。
AbstractFactory af = new AbabaFactory // or BuboboFactory
Foo f = af.createFoo
Bar b = af.createBar
などとして使う。その名の通り、抽象的な工場。部品を抽象化し、工場自体も抽象化。

ビルダは手順だけを外に示す。内部でなにをどうやって作るかを全部隠す。
段階的にモノをつくりたい場合にも生きてくる。JavaやC#のStringBuffer, StringBuilderとか。
ビルダインスタンスはディレクタ(やクライアント)に何度も細かい指示を受けて、最後に結果を返す。
0832デフォルトの名無しさん2012/03/18(日) 21:31:00.38
>>831
丁寧な解説ありがとうございます。
でも、なんかピンとこないんですよね。

分類癖過剰とでも言うのでしょうか?
どうも分類すること自体に意味を見いだしている感が否めないのです。

昔々、論理学が未発達の頃、3段論法の論理の立て方は
偉い先生方によって細かく分類されていたそうです
(選言的三段論法、定言的三段論法等。本当はもっと細分化されたらしい)。
今時そんなことやる人は、学者さんの中にすらいないですよね?

デザインパターンも、同じ轍を踏んでいるのではないでしょうか?
0833デフォルトの名無しさん2012/03/18(日) 21:35:49.50
>>827
factory method ・・・ 継承元classのために、派生classがobjectを作成する。
abstact factory ・・・ 継承元classを利用するclassのために、派生classがobjectを生成する。
builder       ・・・ 上の二つとは別次元のもので、派生classが値を加工してobjectを生成する事を主目的とする。
             上の二つとは、排他的関係ではない。
0834デフォルトの名無しさん2012/03/18(日) 21:36:27.69
>>832
プログラミングの複雑さ>デザパタ自体の複雑さ

という場面でのみ使えるから心配いらない。
使える場面以外で使う必要ないし、
メリットを感じない場面で感じようとする必要も無い。
0835デフォルトの名無しさん2012/03/18(日) 21:38:50.88
>>832
目的に応じて名前がついてんの。ソースコードの形態そのものに名前が付いてるわけじゃない。
例えば、DisplayとMonitorは見ようによっては同じだけど、言葉がとらえてる部分は違うでしょ。
0836デフォルトの名無しさん2012/03/18(日) 22:15:54.54
>>>>833
丁寧な解説ありがとうございます。
でも、やっぱりピンとこないんですよね。

これらは、所詮エンジニアリングの道具ですから(ですよね?)、
厳密な定義など、全て机上の空論に過ぎません。
それよりも直感に働きかけること(つまりピンとくること)が重要だとおもいますし、
それこそがデザインパターンの存在意義だと思っていました。

>>834
もちろん「使えなければ使わなくて良い」と簡単に言えれば良いです。
でもその判断を行うのは、全て完全に"覚えた"上での話だと思います。
そして、GoF に追従しようとする人達によって、
新たなパターンが雨後の竹の子のごとく量産されているのが実情です。
まるで、お役所が日夜新たな政令を生み出しているかの様に、です。

>>835
私には、"abstact factory" という名前は、
「平成十三年九月十一日のアメリカ合衆国において発生したテロリストによる
攻撃等に対応して行われる国際連合憲章の目的達成のための諸外国の活動に対して
我が国が実施する措置及び関連する国際連合決議等に基づく人道的措置に関する
特別措置法」と、対して変らないものに見えます。

というかデザインパターンの意義は、上でも述べたように、
各パターンの概念にあるのではなく(概念は既にあるものだから、
デザインパターンの功績ではない)、それに適切な名前をつけた事に
あるものだと思っていました。

実際、"abstact factory" って適切な名前だと思いますか?
0837デフォルトの名無しさん2012/03/18(日) 22:17:52.38
>>836
不勉強なお前の自説なんか興味ねーよ
0838デフォルトの名無しさん2012/03/18(日) 22:24:20.94
>>836
実際チームで仕事してるときに、何でこういう構造にしたか
説明する時にしょっちゅう使ってる。ある目標の裏付けとして
説明するにゃ便利なのさ。まぁ、集団で自社製品の開発とか
経験しないと価値は見出せんかもな。
0839デフォルトの名無しさん2012/03/19(月) 02:20:13.15
>>836

デザパタはコミュニケーション残すとを減らすのが目的だよ。
分かりきったものは、いつも同じパターンで書けばバグも減るし、変更するときも話が早い。
一人でやっててもまあ意味ないわ。
0840デフォルトの名無しさん2012/03/19(月) 05:11:14.20
デザパタの適用が適切だったかどうかの説明は誰がすんだよ
0841デフォルトの名無しさん2012/03/19(月) 06:38:33.70
>>836
概念は既にあったとしてもその概念というか使用目的という単位でラベル付けした功績が大きいんだよ

上のレスもあるけどクラス構造に名前をつけてるわけじゃない
そんなこと言ったらほとんどが部分的にはStrategyパターンになる

名前がわかりにくいのは確かに初期の学習するうえでは障害になると思うが、理解してからは特に問題にならない

中身を理解していれば名前はhogeパターンやfooパターンでも問題ない
0842デフォルトの名無しさん2012/03/19(月) 06:59:28.65
GoFは頭が良い人達だろうから、日本のSIerみたいな人間が本を読んでも理解できないというところまでは考えなかったんだろうな

正直日本の多くの「就職してから研修でプログラマ始めました」という人間にはデザインパターンのハードルは高いよ

専門職なんだから基礎は大学で学んできて当然のはずだが、日本の大学では品質は重視されず動けばいいという姿勢だから設計など気にしないし、SI企業は文系採用するしでグダグダ
0843デフォルトの名無しさん2012/03/19(月) 09:15:40.06
研修してからとか、プログラミング"習い"ました。みたいな奴らは
小学校から始めた俺達みたいなサラブレッドにはどうしたって適わないわけだ
0844デフォルトの名無しさん2012/03/19(月) 09:16:58.66
でも東大の奴らは凄いのな。ちょっと教えると三倍返し喰らうからな
教え甲斐がある。あいつらが三人集まったらヤバイ
0845デフォルトの名無しさん2012/03/19(月) 17:50:48.17
>>844
同期の東大と一緒に研修受けたが理解力の差に愕然とした

普通は10聞いて5わかればいいところを、10聞いて20理解してる感じ
0846デフォルトの名無しさん2012/03/19(月) 18:11:04.33
それと逆側の立場の奴ら(IQ 80〜100)が、この業界の多数を占めてると思うと怖くならないか?
0847デフォルトの名無しさん2012/03/19(月) 18:12:11.02
『平清盛』プロデューサー反日朝鮮人 磯智明(反日・天皇制度廃止論者)のプロデュース作品

�@『監査法人 (2008)』反体制・反社会

�A『最後の戦犯 (2008)』反日・天皇制度廃止・反体制・反社会

�B『リミット -刑事の現場2- (2009)』反体制・反社会


日本放送協会 、、 〒150-8001 東京都渋谷区神南2-2-1
韓国放送公社(KBS) 〒150-0041 東京都渋谷区神南2-2-1NHK東館710-C ←よく痴漢やヤクで捕まるのはここの工作員


テレビが言えない民主党のスポンサー=韓国北朝鮮
あとはもうわかるよな
民主党は朝鮮人だらけ。前科者前原やキムチイオン岡田が平気で嘘を付き、口だけなのもそういう裏があるから。
野田はどうだろうか。韓国人の集いに出席し、韓国人暴力団から賄賂を貰っている野田は
0848デフォルトの名無しさん2012/03/19(月) 19:33:34.92
>>846
理解できないとか以前にデザインパターンを理解しようというやつがほとんどいないから終わってる
0849デフォルトの名無しさん2012/03/19(月) 20:09:40.82
お前らがダサいと思うデザパタって何よ。
シングルトン以外で。
0850デフォルトの名無しさん2012/03/19(月) 21:05:59.50
オレオレパターン
0851デフォルトの名無しさん2012/03/19(月) 21:18:19.67
> シングルトン以外で。

この一言で、話が通じるのが
デザインパターンの凄さだよな。

もし、「シングルトン」という言葉がなければ、
どう表現していただろうか。
0852デフォルトの名無しさん2012/03/19(月) 21:20:40.20
デザパタじゃなくGoF本の凄さだろ
GoFは前書きでデザパタはたくさんあるが、その極一部を紹介すると書いてる
0853デフォルトの名無しさん2012/03/19(月) 22:08:02.24
>>849
Interpreter
こーゆーのは、素直にCompiler Compilerや、Parser Conbibatorに任せるべきだと思う。
0854デフォルトの名無しさん2012/03/19(月) 22:23:35.08
>>832 >>836
>昔々、論理学が未発達の頃
>デザインパターンも、同じ轍を踏んでいるのではないでしょうか?
>新たなパターンが雨後の竹の子のごとく量産されている
うん。これらはどれも言い当ててる。
こいつ只ものじゃないぞ。
他のデザパタ雑魚どもはよく話を聞いておけ。
0855デフォルトの名無しさん2012/03/19(月) 22:32:12.04
>>853
おれもGoF読むたびにInterpreterは使う機会がなさそうだなーと思ってた
0856デフォルトの名無しさん2012/03/19(月) 23:24:54.17
俺のオブジェクト指向だとデザパタなんて入る隙間ないんだけどな
ここの奴等はなぜかデザパタが入る工程があっちゃうんだよね
それが長年の疑問

描いた構成の通りにクラス作るだけなのになんでわけのわからない中間クラスが生まれるの?
黙ってクラス入れるとリーダーに殺されない?
0857デフォルトの名無しさん2012/03/19(月) 23:28:37.78
そういう職場なんだねとしか。
0858デフォルトの名無しさん2012/03/19(月) 23:29:42.74
>>857
色んな職場(派遣なので当然大手ばっかり)まわったけど
デザパタなんて使ってるところ1つも当たったことない
0859デフォルトの名無しさん2012/03/19(月) 23:34:35.97
そういう職場なんだねとしか。
0860デフォルトの名無しさん2012/03/19(月) 23:34:50.75
そもそもさ
デザパタの想定してる汎用性の方向って業務でいらねぇよ
0861デフォルトの名無しさん2012/03/19(月) 23:38:14.68
グラフィックス系の仕事してるが使いまくるぞ
レンダリングまわりはGPUに任せるから
そんなに出番は無いけど、ファイルの抽象化とかじゃ
Feature、Figureの管理、画面制御に活躍しとる
0862デフォルトの名無しさん2012/03/19(月) 23:40:04.51
●if文を使わずに、状態に応じた処理を行えるStateパターン

↑これさなんでswitch-caseで並べちゃダメなの?
見難いじゃん
0863デフォルトの名無しさん2012/03/19(月) 23:44:31.24
1箇所くらいならべつにswitch-caseでもいいけど
複数箇所に分岐が必要なとこがあったらメンテナンス性が落ちる

Stateパターンなら修正時に気にするところは1箇所ですむ
0864デフォルトの名無しさん2012/03/19(月) 23:44:46.57
俺も使ってるんだろうけどいちいちデザパタの言葉で説明するのがめんどいわ
デザパタがさも標準語であるかのように語るのやめて欲しいよな
0865デフォルトの名無しさん2012/03/19(月) 23:47:32.88
>>862
State Machineはそんな単純な事に使うもんじゃない。
例えば↓の文字列を記号と数字と文字列コメントに分解するとする。

"int main(int, char**){/*comment*/ return 0;}"

そもそもswitch caseじゃ書けないし、ifとループを駆使するのは辛い。
OOPLが出る前なら、構造体と関数ポインタで解決するのが定石だった。
0866デフォルトの名無しさん2012/03/19(月) 23:48:43.83
>>864
それを「使っていない」と言う。

さらに言うと、これって○○パターンの亜種じゃね?とか、
○○パターンを応用した「ようなもの」じゃね?とか言い出す奴においては、
デザパタ本を読んでもそのツボを正しく理解することには至らない。
さわりの部分でなんとなくの理解を得て帰っていってしまう。
0867デフォルトの名無しさん2012/03/19(月) 23:50:54.24
>>865
むしろそれぐらいならループの中でswitch文とif文駆使したほうが楽だろ
もっと後から状態が追加されたりするようなケースで使うべき。
0868デフォルトの名無しさん2012/03/19(月) 23:55:25.47
>>867
具体的にどうやって書くよ?
コメント部(/**/)とかあれば文字列部("")とか
数値や記号を切り離す時とは全然違う。
こういうパターンが来たときswitchの視点で言えば
ジャンプテーブルの書き換え見たいな方法を取ることになる。
それをどうやって簡単に書く。
0869デフォルトの名無しさん2012/03/19(月) 23:55:29.54
プログラミング界の四人の罪人 GoF
こいつらのせいでプログラミングが複雑に見えるようになった
0870デフォルトの名無しさん2012/03/19(月) 23:58:20.57
>>866
いや。デザパタは知ってるのよ。だけど知るずっと前から概念は理解してたから何をいまさらって感じで
もう俺にとってはエスペラント語みたいな位置づけよwww
0871デフォルトの名無しさん2012/03/20(火) 00:06:22.35
概念を一言で言い表せるように名前付けしたのにパターン名使わなかったら意味ないだろ
0872デフォルトの名無しさん2012/03/20(火) 00:23:48.84
>>868
てかそんな戦術レベルの話はどうでもいいだろ
設計なんだから戦略レベルの話をしろよ
0873デフォルトの名無しさん2012/03/20(火) 00:30:13.37
GoFで紹介されてるパターンは殆ど戦術じゃん
戦術と呼べそうなのはSingletonとAbstract Factoryを組み合わせぐらい
MVCやエディタ設計のレベルでないと戦略的と呼べるものは無いだろ
0874デフォルトの名無しさん2012/03/20(火) 00:31:13.78
間違えた
正:
戦略と呼べそうなのはSingletonとAbstract Factoryを組み合わせぐらい
誤:
戦術と呼べそうなのはSingletonとAbstract Factoryを組み合わせぐらい
0875デフォルトの名無しさん2012/03/20(火) 01:56:09.20
デザパタは当たり前に使っているもので、
今更是非について話すことはないと思ってたけど、世間は広いな。
0876デフォルトの名無しさん2012/03/20(火) 02:20:09.71
>>868
Cで書こうと思って途中でめんどくさくなったんでJavaScriptで
書いたけど大体こんな感じじだろ。トリッキーなテクに頼らなくても
別段書きにくいor読みにくいことはないと思うが。

function tokenize(inStr) {
var i = 0; var c = null; var tkn;
function step() { c = (inStr.length <= i) ? null : inStr[i++]; }
function push() { tkn += c; step(); }
function skipWhiteSpace() { while (c == ' ' || c == '¥t' || c == '¥n') { step(); } }
function numberLiteral() { push(); while (c >= '0' && c <= '9') { push(); } }
function comment() {
push();
while (c) { if (c == '*') { push(); if (!c) { break; } if (c == '/') { push(); break; } }
push();
}
}
function identifier() { push(); while (c >= 'a' && c <= 'z') { push(); } }
function scan() {
tkn = ""; skipWhiteSpace();
if (!c) { return false; }
if (c >= '0' && c <= '9') { numberLiteral(); return true; }
if (c >= 'a' && c <= 'z') { identifier(); return true; }
if (c == '(' || c == ')' || c == ',' || c == '*' || c == '{' || c == '}' || c == ';') { push(); return true; }
if (c == '/') { push(); if (c == '*') { comment(); return true; } else { return true; }}
return false;
}
var result = ""; step(); while (scan()) { result += tkn + "¥n"; } return result;
}
alert(tokenize("int main(int, char**){/*comment*/ return 0;}"));
0877デフォルトの名無しさん2012/03/20(火) 03:19:15.49
>>865
お前例の馬鹿だろw

> 描いた構成の通りにクラス作るだけなのになんでわけのわからない中間クラスが生まれるの?
> 黙ってクラス入れるとリーダーに殺されない?

デザパタは、「描いた構成」に含まれるもので
リーダーが入れるもので、それができない奴は無能なだけ。
黙って入れるのがダメなら、断ってからいれればいい。

お前がおかしいだけって、まだ思い知ってなかったのか?
0878デフォルトの名無しさん2012/03/20(火) 05:52:05.14
>>877
そんな実装よりの話はおかしいやろw
0879デフォルトの名無しさん2012/03/20(火) 05:55:52.35
>>878
具体的にな
0880デフォルトの名無しさん2012/03/20(火) 05:59:14.83
設計の話するスレなんすけど?
0881デフォルトの名無しさん2012/03/20(火) 06:01:56.19
はい。デザインパターンは設計です。
常識ですが?

デザインパターンの実装例の話と
ごっちゃにしてませんか?というかしていますよね?
0882デフォルトの名無しさん2012/03/20(火) 06:04:02.88
>>881
なんかやけに戦術レベル過ぎない?
オブジェクト指向が役に立つレイヤーじゃない気がするんだけど・・・?
0883デフォルトの名無しさん2012/03/20(火) 06:04:44.13
>>882
それはあなたが全く理解してないだけですね。
0884デフォルトの名無しさん2012/03/20(火) 06:05:17.23
デザパタってオブジェクト指向っていう大きな概念が理解できない人が最期にすがりつくものって気がするよね
憂鬱本理解できた?
有名な本だから知ってると思うけど
普通はああやって作るんだよ
0885デフォルトの名無しさん2012/03/20(火) 06:08:56.02
設計者が担当する箇所であれば
設計者の考えで自由に取り入れるもの

実装者が担当する箇所であれば
実装者の考えで自由に取り入れるもの

ここまではいいですか?


デザインパターンは、実装者が担当するものであれば、
実装者が自由に取り入れていいわけです。

設計者が「デザインパターンを使うな」と言っている時点で、
設計者がデザインパターンを担当する。つまり設計と認めているようなものです。
0886デフォルトの名無しさん2012/03/20(火) 06:09:46.83
>>885
いや、仕様書どおりに作れよ
0887デフォルトの名無しさん2012/03/20(火) 06:10:54.69
>884
それ評価悪いよ。
0888デフォルトの名無しさん2012/03/20(火) 06:12:57.48
>>886
さっきも言ったけど、ここは
設計の話するスレなんすけど?
0889デフォルトの名無しさん2012/03/20(火) 07:17:10.12
【世論調査】 「戦争放棄」憲法9条廃止=54% 日本の右傾化が明らかに。
http://engawa.2ch.net/test/read.cgi/poverty/1332079527/


 読売新聞社の全国世論調査(2月25〜26日実施、面接方式)で、憲法を「改正する方がよい」と答えた人は54%となり、
昨年9月調査(43%)から11ポイント上昇した。「改正しない方がよい」は30%(昨年39%)に下がった。

 支持政党別でみると、改正賛成派は無党派層で55%(同40%)、民主支持層で51%(同45%)、自民支持層でも53%(同51%)に上がった。

(2012年3月18日22時27分 読売新聞)
http://www.yomiuri.co.jp/politics/news/20120318-OYT1T00619.htm
0890デフォルトの名無しさん2012/03/20(火) 08:23:20.34
中間クラス、switch、憂鬱本といってるやつは、デザインパターンの有用性をわかった、うえで色んな意見を聞き出すために釣ってるとしか思えないなw
まあ盛り上がるからいいか
0891デフォルトの名無しさん2012/03/20(火) 12:17:37.77
それをわかっていて俺は、
同じ事しか言ってないけどなw
0892デフォルトの名無しさん2012/03/20(火) 15:53:47.18
>>886
コードの中に立ち入った仕様書なんてねぇだろ
仕様書ってのは入力(キー入力、ファイル入力、画面操作、
イベント、他)が有ったとき、どういう出力(メッセージを出す、
ファイルを吐く、ファイル操作レジストリ操作をおこなう、
DBを操作する、画面を書き換える)を出すかを定義したもんだ。
コードの中に立ち入るってどこで使われてる仕様書だよ
0893892 2012/03/20(火) 15:58:10.51
あと、処理性能と実行環境もな。忘れてた。
0894デフォルトの名無しさん2012/03/20(火) 16:01:33.05
詳細設計書というものがあってな。
0895デフォルトの名無しさん2012/03/20(火) 16:06:48.94
それ設計書だよな
0896デフォルトの名無しさん2012/03/20(火) 16:14:19.76
いや、詳細設計書は
設計書ではなく詳細だ。
0897デフォルトの名無しさん2012/03/20(火) 16:18:10.16
詳細設計書レベルになると各社各様
ひどけりゃ各者各様だからな
同じ組織にでもいなきゃ
共通のものを想定して会話なんてできんわ
0898デフォルトの名無しさん2012/03/20(火) 17:36:06.03
ループになっているから断っておくが
仕様とは外側(客や上司)向けのもの(パワポなどで体裁を整える事も多い)
設計とは内側(開発者側)向けのもの(場合によっては手書きでもかまわない)

同一人物がそれらを行う事は多いがごちゃ混ぜにするのは素人。
0899デフォルトの名無しさん2012/03/20(火) 17:41:19.05
>>896
>>692でやれ
0900デフォルトの名無しさん2012/03/20(火) 17:42:19.09
設計書の中に機能仕様なんてのがあるから設計も仕様なんじゃね?と誤解する人もいるが、
機能仕様は外向けの内容だから機能設計ではなく機能仕様と言うんだ。
0901デフォルトの名無しさん2012/03/20(火) 17:42:34.73
構造化はかなり言語レベルで効果があげられる段階
OOはできる奴がマトモに使うと絶大な効果を挙げるレベル
関数型は馬鹿が引っかかるレベル
0902デフォルトの名無しさん2012/03/20(火) 18:26:22.28
客が興味が有るのが
プログラム。

仕様ではない。
クラスは客が興味がある物。
だからプログラマが作る。
0903デフォルトの名無しさん2012/03/20(火) 18:40:43.20
また論点でもないのに「客が欲しいのがプログラム仕様書じゃない」とか言い出すキチガイが沸いとる
0904デフォルトの名無しさん2012/03/20(火) 18:44:15.01
客がほしいのは動作するアプリ。

仕様書作成とか設計書作成は
省くことは可能だが、
動作するプログラム作成は省けない。
0905デフォルトの名無しさん2012/03/20(火) 18:45:47.18
お前コミュ障だって言われるだろ
0906デフォルトの名無しさん2012/03/20(火) 18:47:53.14
正しいプログラムを提出するのは当たり前。
だからどうしたという話。
0907デフォルトの名無しさん2012/03/20(火) 18:47:57.65
コミュ障と自覚できればコミュ障にならない
0908デフォルトの名無しさん2012/03/20(火) 18:48:30.58
じゃあ当たり前のことができる人間はいないな
0909デフォルトの名無しさん2012/03/20(火) 18:55:57.76
>>908
で?
0910デフォルトの名無しさん2012/03/20(火) 18:57:48.83
無能にアプリを作らせると完成しない。
一方未完成な仕様書からアプリを完成させるのは
日常的に行われている。

仕様書は未完成でも良い。そもそも期待してない。
0911デフォルトの名無しさん2012/03/20(火) 19:19:49.51
その話がスレタイとなんの関係が有るんだ?
0912デフォルトの名無しさん2012/03/20(火) 19:21:34.21
スレの流れとも"仕様書 "の部分しか繋がってないよな
仕様書に付いて語りたいなら本スレいけよ
0913デフォルトの名無しさん2012/03/20(火) 20:07:01.24
オブジェクト指向に親を殺された奴がまた荒らしてるのか
仕様書がーっが湧いたらスルーしろよ
0914デフォルトの名無しさん2012/03/21(水) 00:29:17.54
デザパタなんて使ってる会社ねーから!
0915デフォルトの名無しさん2012/03/21(水) 00:33:03.04
井の中の蛙
0916デフォルトの名無しさん2012/03/21(水) 00:35:05.34
>>915
もう10年も派遣やってるからさすがにそれはないw
0917デフォルトの名無しさん2012/03/21(水) 00:45:19.12
>>916
おまえのレベルが低くすぎて
そういう現場にいれてもらえてないだけだぞ・・・
0918デフォルトの名無しさん2012/03/21(水) 00:49:59.70
>>917
馬鹿みたい
現実みろよw
0919デフォルトの名無しさん2012/03/21(水) 00:50:49.40
10年間自分がみたことない→世の中にないはずだ

この論理性皆無な思考に疑問を覚えない時点で末期
0920デフォルトの名無しさん2012/03/21(水) 00:54:05.50
>>918
お前の中では、ソレが現実なんだろう
お前の中ではな・・・

現実世界で運がないにしても
facebookでもtwitterでも何でもいいから、まともなエンジニアと繋がりもてば
勘違いに気づけるだろうに
0921デフォルトの名無しさん2012/03/21(水) 00:59:23.98
> まともなエンジニア

またこの展開かw
そうやって発言を権威付けなきゃならない、素のロジックの弱さを知れ。
0922デフォルトの名無しさん2012/03/21(水) 01:00:46.56
ガソリン価格高騰に悲鳴 1L当たり2100ウォン突破

韓国ソウルのガソリンスタンドで販売されている平均ガソリン価格が史上初となる1リットル当たり2100ウォン
(約155円)を突破したと韓国メディアが一斉に報じている。

15日、韓国石油公社が運営する原油価格の情報サイト「オフィスネット」によると、15日午前11時現在、ソウル
の平均ガソリン価格は前日より0.58ウォン値上がりした2100.06ウォンを記録した。ソウルの平均ガソリン
価格が2100ウォンを超えたのは史上初めてだ。

2012/03/16 [16:41]
http://www.krnews.jp/sub_read.html?uid=1152§ion=sc10


韓国人アルバイトの46.8%、「最低賃金ももらっていない」 民衆の声

韓国での労働者のうち、半数近くが最低賃金(韓国は4320ウォン)以下の給料で働かされていることが分かった。
1681人を対象に実施したアンケート調査の結果を発表した。46.8%が最低賃金の時給4320ウォン(約320円)より低い賃金だったと述べた。
賃金のほかにも、勤労基準法違反はさまざまなものがあった。76%が勤労契約書を作成しておらず、
事故が起きた時に守ってもらえなかったと答えた人は 65.9%に達した。
また、56.7%が「雇用主から一方的に勤労条件を変更させられた」と答え、「賃金未払いおよび削減」のケースは 26%に達した。
セクハラや身体的な暴力を含む人格冒涜を経験した人は30.9%に達し、
また不当な待遇を受けた時は誰かに助けを求めたケースはたったの7.7%だった。
www.vop.co.kr/A00000412011.html
0923デフォルトの名無しさん2012/03/21(水) 01:01:34.38
シングルトンなら良く見るよ
プロジェクトジェノサイダーとしての地位を固めつつある
0924デフォルトの名無しさん2012/03/21(水) 01:02:56.22
素のロジックw
普通に働いてたら使ってるだろ
それに気づけない経歴なんだとしたら
それが経験出来ない奴自身に問題があるとしか
0925デフォルトの名無しさん2012/03/21(水) 01:03:53.39
>>924
10年も大手転々としてみたことねぇから聞いてんじゃん
0926デフォルトの名無しさん2012/03/21(水) 01:06:47.15
>>924
いや、OOP否定肯定両陣営に対して横から言ってんだよw
技術的に語ることから逃げて
カンタンに権威付けに走り出すようなのはどーなのよっ?てこと。
0927デフォルトの名無しさん2012/03/21(水) 01:09:33.15
使われてるか使われてないかに
権威なしじゃとかおまえのピントがズレてる
0928デフォルトの名無しさん2012/03/21(水) 01:10:39.50
フレームワークに手を入れりゃ既存コードですぐ出くわす
自分で設計すれば何かしら使って綺麗にするだろ
使わずに過ごすとか2〜3年どころか半年ですら難しいわ
釣なんだからスルーしろアホらし
0929デフォルトの名無しさん2012/03/21(水) 01:13:33.82
>>927
へぇw
じゃあなんで「大手」とか「まともなエンジニア」とか「レベルが低すぎ」とかって単語飛び出してんのよ?
俺の職場じゃ使ってた、使ってなかった、なぜこれ以上に情報を盛る必要がある。
0930デフォルトの名無しさん2012/03/21(水) 01:16:01.66
int main(int, char**){/*comment*/ return 0;}"をトークンに分解するというやつを
JavascriptでOO生かして作ってみた。>>876よりは読みやすいと思う。

http://pastebin.com/5zJQVhGT

トークン要素の追加がbeginMatchとendMatchを持ったオブジェクトの追加と
パターン配列の入れ替えで済むようになった分、新しいパターンを作り安くなった。
0931デフォルトの名無しさん2012/03/21(水) 01:17:59.65
>>930
開いた第一感、「うそこけ!」が脳裏をよぎった。
0932デフォルトの名無しさん2012/03/21(水) 01:21:10.61
そうか?考えるところなんて
lex
matchTorken
matchSkip
ぐらいで。あとは同じパターンの繰り返しじゃん。
0933デフォルトの名無しさん2012/03/21(水) 01:23:03.49
>>929
バカちは使えない
0934デフォルトの名無しさん2012/03/21(水) 01:27:30.98
>>929
一定の技術持ってないと紹介すらされない案件があること位
自分で、後輩で、協力会社の人で、直接間接知ってるだろ
それ知らないとかどんだけハブにされてんだっていう
0935デフォルトの名無しさん2012/03/21(水) 01:46:51.33
争いは同じレベルの者同士でしか発生しないのAA
0936デフォルトの名無しさん2012/03/21(水) 01:53:31.88
>>930は中身は関数型なのに無理やりOOの皮をかぶせたような印象だな
確かに>>876よりはずっと読みやすいんだけど、それをOOを生かしたからってのは
ちょっと違和感がある
0937デフォルトの名無しさん2012/03/21(水) 01:55:21.73
厨房にゴキブリがわけば争いは発生するし
夏に蚊にたかられれば争いは発生する
山でクマに遭遇すれば争いは発生する
争いは異なるレベルで普通に発生する
0938デフォルトの名無しさん2012/03/21(水) 01:58:20.29
どうしてもこの二つが別れてるのが気に入らんので修正した
matchTorken
matchSkip

http://pastebin.com/mNCtDLuW
0939デフォルトの名無しさん2012/03/21(水) 02:02:20.47
設計以前の
インデントとかコード整形とかが変態すぎて
感心するレベルで読みづらい
どーしてこーなった
0940デフォルトの名無しさん2012/03/21(水) 02:03:10.72
争いは同じレベルの者同士でしか発生しないのAA
0941デフォルトの名無しさん2012/03/21(水) 02:09:21.80
自己満足でしかないが。
変数の宣言が変態的なのに、
なんでそうなってるか解らん感じだったので直した。

http://pastebin.com/crmQJbzD
0942デフォルトの名無しさん2012/03/21(水) 02:12:17.14
いるよな。
実装しないで人のコードの書き直しばっかする奴。
0943デフォルトの名無しさん2012/03/21(水) 02:14:14.49
一応言うけどなおしてるのは本人気にしないでね
0944デフォルトの名無しさん2012/03/21(水) 02:20:15.36
JS縛りのスレ規則があるわけでもなし
普段書いてる言語で書けばいいぞ

JSで書くならそれらしく書いて欲しい。コードとしてなさすぎ。
率直にいうが汚くて俺がチームリーダなら出荷させないレベル
0945デフォルトの名無しさん2012/03/21(水) 02:30:29.39
コードも出さずにコード批判w
0946デフォルトの名無しさん2012/03/21(水) 06:25:53.38
デザインパターンが使われたコードを見たことないってすごいな

見たことあるけど、デザインパターンだと気がついていないだけじゃないのか
0947デフォルトの名無しさん2012/03/21(水) 06:27:32.37
余計な中間クラスなんていれたらコードレビューで軍法会議ものだからだろ
それをデザパタだからとはやはり説明しにくいといっためんはあるな
0948デフォルトの名無しさん2012/03/21(水) 07:19:23.81
>>945
批(つき合わせて)判(はんだん)じゃない単なる批難。
批判の結果を示せてない。
0949デフォルトの名無しさん2012/03/21(水) 08:41:35.08
>>947
余計な中間クラスってなんのこと?

レビューして入れるべきだって思った
暮らすなら問題ないじゃないか。
0950デフォルトの名無しさん2012/03/21(水) 08:42:17.77
はぁ?デザパタのクラスは全て余計なものなんだよ。バーカ
客が、デザパタ入れてくださいとか言うのかよ。
0951デフォルトの名無しさん2012/03/21(水) 08:48:22.12
そんな親切な客なら楽だな。
0952デフォルトの名無しさん2012/03/21(水) 09:01:29.04
>>950
もう少し旨く釣れるようになりましょう。
がんばりましょう。、
0953デフォルトの名無しさん2012/03/21(水) 19:36:31.68
>>950
不要だと思うんならこのスレ来るなよ
使える環境を前提に話してるんだから場違いだ
0954デフォルトの名無しさん2012/03/21(水) 19:46:30.95
>>950
客がクラス構成まで指示してくるんなら、
そりゃ客の言うとおりに作らなきゃな。
0955デフォルトの名無しさん2012/03/21(水) 20:11:25.56
>>950
客が関数入れろと言わなかったら関数も入れられないな
客が変数入れろと言わなかったら変数も入れられないな
0956デフォルトの名無しさん2012/03/21(水) 22:34:54.65
>>941
構造的には綺麗だけどパッと見何やってんのか分かりにくいコードだな
0957デフォルトの名無しさん2012/03/21(水) 23:41:39.18
ぱっと見解らんってのは、ある種パターン(GoFのアレではなく)で慣れないからだろうねぇ。
パターンとしてそういうやり方に慣れてしまえば、ぱっと見で動作を把握するのも早いんだろうけど。
0958デフォルトの名無しさん2012/03/21(水) 23:51:18.03
自分が書いたコードは自分が良く分かる、というだけの話。
OOPだろうが、デザパタだろうが、非OOPだろうが、自分のコードごと自分のバックボーンを褒める。
0959デフォルトの名無しさん2012/03/22(木) 00:04:55.09
コメントさえ書いてれば中身なんて気にしない
0960デフォルトの名無しさん2012/03/22(木) 00:13:23.88
>>958
そうけ?WinAPIのWNDCLASSなんざ、慣れるまでは相当キツかったが
慣れてしまえば他人が書いたもんだろうがスラスラよめるぞ
そういうもんだと思って読んでるからな
0961デフォルトの名無しさん2012/03/22(木) 00:20:18.78
OOに限らずパターンってのはいっぱい有るじゃん
Socket然り、GUI Toolkit然り、Archiver然り、物理エンジン然り
パターンというかしきたりを知ってるか知ってないかはかなりデカいと思ふ
0962デフォルトの名無しさん2012/03/22(木) 02:35:12.64
次スレ

デザパタは無駄なもの。俺が理解出来ないからね。
http://kohada.2ch.net/test/read.cgi/prog/1332351285/
0963デフォルトの名無しさん2012/03/23(金) 02:24:35.37
言語自体がパターンを持ってるから、デザインなしでの開発は不可能じゃないか?

次スレノ>>1よ
0964デフォルトの名無しさん2012/03/27(火) 19:08:35.36
C++でコールバックのカッコ良いい設計を考えてるんだけど。良いのが思いつかん。

テンプレート型の関数オブジェクトが今の所のベストだ。
継承を使わずに、コールバックの引数を決めたいのだが、いい方法知らない?
0965デフォルトの名無しさん2012/03/27(火) 19:22:00.97
ポリモの前にテンプレートを掴んでしまった者の典型である。
0966デフォルトの名無しさん2012/03/27(火) 20:29:27.86
964の趣旨は、コールバックを依頼する側と、コールバックを実行する側の依存をなるべく小さくしたい、
依存を小さくする一方で型安全も実現したい、です。
0967デフォルトの名無しさん2012/03/27(火) 20:57:33.79
boost::bindなりboost::functionなり使えばいいんでない。
要するに委譲しろ。
0968デフォルトの名無しさん2012/03/27(火) 22:02:53.39
>>966
デザパタ勉強しろ
0969デフォルトの名無しさん2012/03/27(火) 22:45:06.58
Observerパターンと一言教えれば済む事を何故そう命令すのか。
ストレス溜まってんですね。
0970デフォルトの名無しさん2012/03/27(火) 22:47:25.21
それで済まないんだなこれが
0971デフォルトの名無しさん2012/03/27(火) 23:09:18.36
Notifyを受けるクラスがインターフェース持てば丸っと解決です。

class NotifyInterface { virtual void Notify( void*) = 0; };

でコールバックの呼び出し側が

for each o in objects -> o.Notify( arg );

でOK。void*は実装クラスでキャストすると。
めでたしめでたし。
0972デフォルトの名無しさん2012/03/27(火) 23:11:47.62
ほら済まなかったでそ
0973デフォルトの名無しさん2012/03/27(火) 23:13:31.64
誰が禅問答をしろといった。
0974デフォルトの名無しさん2012/03/27(火) 23:14:47.21
他の言語じゃクロージャ当たり前のご時世にコールバック関数のために一々インターフェース継承とかしたくない。
0975デフォルトの名無しさん2012/03/27(火) 23:15:01.72
言われたことしかバナナはお弁当に含まれません
0976デフォルトの名無しさん2012/03/27(火) 23:37:02.18
>>964
shared_ptrかweak_ptrとテンプレート組み合わせたコールバックオブジェクト作って使ってるよ。
boostとかでやってる可変長テンプレートを全展開をまねして、void型だけ特殊化してる。

引数0〜2個と戻り値を任意の型に取れれば十分と思う。


いっぱい渡したいならtupleも組み合わせればいいしね。
0977デフォルトの名無しさん2012/03/28(水) 00:07:49.90
インターフェイスでいいじゃん
なんでいちいち複雑にするかね
0978デフォルトの名無しさん2012/03/28(水) 00:09:31.09
元の質問は言語未指定だけど、静的型付けか動的かで話が変わってくる。

>>976 を静的言語でやると、
それだとオブジェクトのインスタンスを関数オブジェクトに渡す羽目(つまりインターフェース継承と同等)になるか、
テンプレート型毎に分かち書きをする(無いよりましだろうけど)なら何のためのテンプレートよ、って話にならないか。

C++のような静的型付け言語でかっこ良く書くのは厳しい気がする。
動的型システムを持つ言語なら>>974 の言うとおり。
0979デフォルトの名無しさん2012/03/28(水) 00:11:40.43
書くの面倒だろ
C++ならboost::function<int(int,int)> delegate;ってな変数作って代入すりゃ
インターフェースに相当するもの書かなくて済む。
0980デフォルトの名無しさん2012/03/28(水) 00:21:12.84
ばかだろ
actionscriptでも使ってろ
0981デフォルトの名無しさん2012/03/28(水) 00:23:56.53
actionscriptは死にゆく言語。
最先端JavaScriptを採用したと思ったら
JavaScriptは方向転換してしまった。
0982デフォルトの名無しさん2012/03/28(水) 00:25:17.60
ばかだろ
javascriptでも使ってろ
0983デフォルトの名無しさん2012/03/28(水) 00:29:38.82
君等みたいな奴、職場にくさるほどいてうんざり。
女の子と付き合ったことある? キモ。
0984デフォルトの名無しさん2012/03/28(水) 00:52:01.46
boost はどうなっていくんだろう。
C++自体おかしな方向に発展してると思う。
それやんならスクリプト言語使おうよ、形式文法を捏ねくり回すのやめようよ、っていう疑問が沸き起こる。
テンプレートはデバッグしにくいし。
そこまでしてコンパイル時に確定させる必要ある仕事がどれだけあるのよと。
0985デフォルトの名無しさん2012/03/28(水) 01:02:30.73
>>977
任意の関数を複数個、自由にコールバック同士で接続できるからね。

一番いいのは継承しなくても使える点かな。shared_ptrが継承しなくても使えるのと同じくらいに便利よ。
0986デフォルトの名無しさん2012/03/28(水) 01:53:22.43
>>984
まるっきりboostの趣旨を忘れてないかい?
嫌なら自分で作ればいいだけさ。
0987デフォルトの名無しさん2012/03/28(水) 07:20:54.55
>>984
テンプレートはコンパイルエラー見づらくはあるが、デバッグしづらいか?

C++の仕事なんてグラフィックスやエンコーダーといった速度求めるものばっかりだろ。
大して速度必要ないなら他の言語使えばいい。
0988デフォルトの名無しさん2012/03/28(水) 09:43:53.63
boostの趣旨。

C言語でポインターを捏ねくり回すのにウンザリした連中が、
C++言語を推し進めて std 名前空間を中心にコードの標準化を目指した。
その一部の人たちが、今度はテンプレートを捏ねくり回し始めている。
0989デフォルトの名無しさん2012/03/28(水) 21:47:58.35
 Apache commonsなんかは、OOPL使ってるにもかかわらずC言語を彷彿とさせるstatic関数群定義してたり、
Digesterみたいにロクに例外処理できないライブラリだったり、ファクトリーでいいものをわざわざリフレクション使って
コンストラクター指定させたり、XML無闇に使ってStrutsの様にView間のモデル共有を破綻させてたり、
ジェームスゴスリンが居たころタブーとされてたことを次々と平気で犯してたりする。

 結局、どこの言語だってサードパーティのライブラリは汚い物が多い。
 Smalltalk系のライブラリや、関数言語用ライブラリみたいな哲学を踏襲した綺麗なものはなかなか珍しい。
0990デフォルトの名無しさん2012/03/28(水) 22:17:23.32
言語が一般化してとりあえず動く物を作れるようになった人間が増えて、それらの人間がライブラリを作成するとそうなりそうだな

というかこのスレで議論されてる話題を考えている人間の方が少数派でしょ
0991デフォルトの名無しさん2012/03/28(水) 23:20:25.01
DigesterってあれだろXMLからBeanを作るヤツ
あれほどクソ設計なライブラリも珍しい
出きることなら二度と使いたくないわ

1.Builderクラスをユーザーに作らせて、BuilderにXML情報を渡せばいいのに、
 リフレクション使ってBeanのオブジェクトを生成し組み立てる
 このためBeanじゃないオブジェクトは作れないし
 既に有るオブジェクトに値を入れる事もできない

2.intなど値型をBeanのSetterに指定できるが、読み込み元の値が
 数値以外だった場合、何もしないので素直にバリデートチェックできない

3.仕方ないのでSetterを文字列で受けとるように変更するが、
 Setterでバリデートチェックしたところで例外を投げられない
 無理にやろうとするとRuntimeExceptionを使うという汚い方法になる
 よって、Beanの生成後に何らかの方法でバリデートチェックを行う事になる

4.Setterの多重定義ができない
 Digesterを使うので仕方なく文字列で値を受け取っていたが、
 他では数値型でSetterとGetterを使いたいと言う場合
 単に文字列で受け取るSetterに加え数値を扱うSetter、Getterを
 用意すればいいと思うが、そうするとエラーを吐く

5.無駄にXMLで定義を書く
 XMLの入力属性名をどのSetterに割り当てるか、XML定義に書く分には問題ないが、
 どのBeanを使うかは、プログラム内部で固定なので簡単に変えられては困る
 ましてや、ソースとXMLで二重管理になるのでトラブルの温床になる
レス数が950を超えています。1000を超えると書き込みができなくなります。