トップページ⇒tech
1002コメント417KB

オブジェクト指向システムの設計 171 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/06/11(土) 18:18:23.98ID:NAulAg4n
http://d.hatena.ne.jp/asakichy/20090122/1232879842

・単一責任の原則(SRP)
・オープン・クローズドの原則(OCP)
・リスコフの置換原則(LSP)
・インターフェイス分離の原則(ISP)
・依存関係逆転の原則(DIP)

オブジェクト指向設計に関する原則の頭文字をとって「SOLID」とまとめられた原則集。
http://qiita.com/hirokidaichi/items/d6c473d8011bd9330e63

S SRP Single Responsibility Principle(単一責務の原則)
「クラスを変更する理由は1つでなければならない」
O OCP Open/closed principle(開放閉鎖の原則)
「クラスは拡張に対して開き、修正に対して閉じていなければならない」
L LSP Liskov substitution principle(リスコフの置換原則)
「派生型はその基本型と置換可能でなければならない」
I ISP Interface segregation principle(インターフェース分離の原則)
「クライアントが利用しないメソッドへの依存を強制してはならない」
D DIP Dependency inversion principle(依存性逆転の原則)

前スレ
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1464617322/
0002デフォルトの名無しさん2016/06/11(土) 18:49:53.21ID:y6LF40Yk
171まで進んだとは驚き!
0003デフォルトの名無しさん2016/06/11(土) 19:42:44.47ID:y6LF40Yk
趣味グラマ曰く「コードは設計」
趣味グラマ曰く「設計書なんてなくても客はシステムを受け入れる」

客「死ね」
0004デフォルトの名無しさん2016/06/11(土) 20:11:30.20ID:/6Etr2QS
前スレ>>978
引数と自身の状態に応じてどう振る舞うかがメソッドの中身
単に自身の特定の属性を返す単純なメソッドもあれば、引数として受け取ったオブジェクトのメソッドに自分を渡すといった複雑な挙動をするメソッドもある
関数とメソッドを区別して話をしたい場合、対象とするデータや状態のうち、主と呼べるものが1つになってる関数をメソッドと呼ぶことが多い

この程度の理解だと「何をもってしてオブジェクト指向だと言うのか」という質問の答えは理解できないの?
違う理解だと「評価関数の設計にオブジェクト指向を役立てる」ってのが自然な考えだと言いたいの?
0005デフォルトの名無しさん2016/06/11(土) 20:36:07.98ID:VRwHRVV/
オブジェクト指向ファンならアンクルボブの本とblogくらいは読んでて当たり前だよなあ
0006デフォルトの名無しさん2016/06/11(土) 20:42:56.72ID:ppFl8ALU
よせよせ
人の名前出されるのが嫌いな誰かさんがまた発狂するぞ
0007デフォルトの名無しさん2016/06/11(土) 20:59:16.50ID:y6LF40Yk
>>4
メソッドをどうやって設計するかについての回答は?
0008デフォルトの名無しさん2016/06/11(土) 21:38:55.29ID:NAulAg4n
メソッドというか関数だな。
評価関数とか、オブジェクトのメソッドのことだし。
0009デフォルトの名無しさん2016/06/11(土) 21:52:13.67ID:eTbCo1xW
>>5
たくさん本読んでる割には自分の言葉で何一つ表現できないんだね
0010デフォルトの名無しさん2016/06/11(土) 22:02:32.22ID:NAulAg4n
飛行機が空を飛ぶ原理を、自分の言葉で表現して
納得してもらえるだろうかね。
0011デフォルトの名無しさん2016/06/11(土) 22:09:08.47ID:eTbCo1xW
>>10
あー、なるほどなー
残念脳ミソだわ
0012デフォルトの名無しさん2016/06/11(土) 22:15:34.56ID:/6Etr2QS
>>7
メソッドに求められる仕様を満たすよう作る
仕様は要件から容易に導出できる場合もあるし、要件を満たせるよう解釈した結果得られる場合もある
その解釈の仕方が設計だと理解しているが、ここまで同意できる?

自分はオブジェクト指向を使う必要が無いと判断したらクラスもメソッドも使わない。勿論コードはオブジェクト指向ではなくなる
で、将棋の評価関数の中身を設計するにあたってオブジェクト指向は必要無い、オーバーヘッドを考えるなら使うべきではないとすら思ってるが
そう思ってない、オブジェクト指向で設計すると主張する人がいる
もしかしてオブジェクト指向とは何か分かっていないでいるのか、それとも自分の知らない定義があるのかはっきりしないと話にならない

そんなに「何をもってオブジェクト指向と呼ぶのか」が答えられないの?
正解を求めてるわけじゃない。自分の定義を書かないと議論にならない
0013デフォルトの名無しさん2016/06/11(土) 22:18:04.06ID:NAulAg4n
>>11
そういうこと。
ソースを出せって言われるように
匿名でオレオレ論を主張しても信用してもらえない。
匿名をやめるか、有名などれかを引用するしかない。
0014デフォルトの名無しさん2016/06/11(土) 22:22:56.26ID:y6LF40Yk
>>12
なるほど
メソッドの設計方法を知らないのが原因だ

教えてやろうと思ってたけどレスがイラついたからやめる
まあUMLとかオブジェクト設計手法の本を自分で読みな
そうすればメソッドの設計方法が分かるし、オブジェクト設計手法が将棋ソフトの思考部分の設計に関係する理由も分かるから
0015デフォルトの名無しさん2016/06/11(土) 22:35:30.79ID:eTbCo1xW
仕様次第だろ(笑)
さも正解があるかのように言うな
マジでクソばっかだなここ
0016デフォルトの名無しさん2016/06/11(土) 22:59:43.49ID:JwbsVpE7
もう何いっても無駄だろ。
こういう人間が設計したものでコーディングはしたくないもんだな。
トップダウンの糞設計をどれだけ押し付けてきたのかがよくわかる。
0017デフォルトの名無しさん2016/06/11(土) 23:11:39.52ID:njeZ1nhu
皇室の危機に気づいていますか? 

日本は、2,000年以上続く皇室のおかげで、世界最古の国として、
ギネス認定されているそうです。

自民党は憲法の改正で、日本の国家元首=天皇陛下と条文に明記することで、
天皇制廃止をもくろむ帰化人スパイ勢力(政党、憲法学者、学者、言論人等)から、
皇室を守ろうとしています。
※イギリス、オランダ、ノルウェー、デンマーク、スペインなどは国王を国家元首と
 憲法上に定めている。(日本同様、政治の実権は有さない。)
※日本で支配的な「護憲派」憲法学者の多くは反天皇。憲法から天皇の条項ごと削除したい
 人たちなので、本来は改憲派である。(「象徴天皇制度と日本の来歴」坂本多加雄著より)

公明党「天皇は日本の国家元首ではない」 
http://hayabusa3.2ch.net/test/read.cgi/news/1363226509/
自民党・西田昌司
「橋下さん(おおさか維新)の憲法改正は、国柄を破壊することが目的」(自民とは真逆)
https://www.youtube.com/watch?v=sRkdQ2Rlwxs
日本共産党 「目標としては天皇制をなくす立場に立つ」「天皇制のない民主共和制をめざす」
http://www.jcp.or.jp/jcp/22th-7chuso/key-word/b_1.html#Anchor-0507
反天皇、反皇室で共謀する民主党(現民進党)と田原総一朗
http://blog.liv edoor.jp/fjae/archives/51968115.html
田原総一朗「天皇は、働かないで国民の税金で食ってる。」
https://youtu.be/6Kd1LwY9e0I?t=280 (4:40〜)

※ただし、自民単独(カルト公明党抜き)で2/3議席以上与えない限り、
野党と公明党に骨抜きにされる。  ↓

自民・船田氏…「野党・公明党のみなさんと協議し、衆参両院の3分の2をこえる人が
賛成してくれなければ発議はできない。だからこれから大いなる妥協が始まる。
自民の憲法草案は、 ズタズタになると思って結構だ」
http://hope.2ch.net/test/read.cgi/seijinewsplus/1425226082/
0018デフォルトの名無しさん2016/06/11(土) 23:12:24.30ID:eTbCo1xW
そもそも糞設計はそこまで致命的にならないしね
ある処理Pを構成するのに必要な処理
A、B、C、Dがあったとして
それらをどのクラスにどう分けようが処理ABCDがある限り処理Pは完成するしね
分け方なんてさほど重要じゃない

お好きなように作ったらいいさ
ただ、拘るのは無意味だ
0019デフォルトの名無しさん2016/06/11(土) 23:31:51.66ID:ppFl8ALU
>>14
おすすめの本教えてよw
もちろん著者は和田卓人より有名だよな
0020デフォルトの名無しさん2016/06/11(土) 23:34:49.25ID:QFQTiJlT
アジャイルでトライ&エラーして
ああだこうだ言いながら作り上げていくのも楽しいよ
大規模プロジェクトだと不向きだけどね
0021デフォルトの名無しさん2016/06/11(土) 23:37:00.24ID:VRwHRVV/
9
前スレでは長文乱発、持てる力を尽くしてオブジェクト指向を叩き潰しましたけど?

まさかアンクルボブの本も読まずにオブジェクト指向設計を語るつもりなの?
SOLIDの提唱者だったと記憶しているが
0022デフォルトの名無しさん2016/06/11(土) 23:58:08.62ID:n4KzSusV
新スレになったというのに相変わらず頭の悪いのが喚いてるなw
0023デフォルトの名無しさん2016/06/11(土) 23:58:18.89ID:y6LF40Yk
>>21
>オブジェクト指向を叩き潰しましたけど?
え?え?
メモリリークを知らないことがばれ、コーディングと設計の区別ができないことがばれ
その他いろいろ恥を晒しているように見えたけど自己評価高ええなーーwww
0024デフォルトの名無しさん2016/06/12(日) 00:08:31.17ID:18K6R/tB
Cでメモりリーク起こす確率と
Javaがoutofmemoryはく確率ならjavaがoutofmemoryはく確率の方が高いよね
C++はいうに及ばず

なぜそんなことになるのか
それはオブジェクト指向が欠陥品だからだよなあ

お前らのOO設計真に受けてたらビッグデータ処理なんてできるわけねえよなあ
0025デフォルトの名無しさん2016/06/12(日) 00:11:13.39ID:18K6R/tB
オブジェクト指向なんてつまらないことをやっていなければ
自由に計算を組み立てられ高度なアプリもくめるのに
レベルの低いことすら設計して監理しないといけないおかげで、まともに計算を構築できないIT技術者様が山ほど生まれてるよなあ
0026デフォルトの名無しさん2016/06/12(日) 00:23:03.93ID:AMLyjVO9
>>24
なんで確率なんだよw
メモリリーク起こすのは乱数かなにかなのか?w

そういうときは統計を持ってこいよ。
0027デフォルトの名無しさん2016/06/12(日) 00:24:49.56ID:AMLyjVO9
>>25
そんなこと言ってると将来仕事しだしたとき辛いぜ?

仕事っていうのは、金をだす客がいて初めた成り立つんだ。
客がいつもそういう高度(?)なことを求めていると思うなよ。
客は高度なことがしたいんじゃない。今やってる作業を楽にするために
金を払おうとしてるんだ。
0028デフォルトの名無しさん2016/06/12(日) 00:28:20.41ID:18K6R/tB
楽をするために、そうだよな
そのためにレベルの低いことに設計監理費用使っても許される社会でよかったな
でも俺みたいな人間がユーザーになったらどんなことになるかはわかるよな?
優しい世界でよかったなあ
0029デフォルトの名無しさん2016/06/12(日) 00:30:43.95ID:18K6R/tB
100GBの高頻度のデータ処理を依頼して来ない客に助けられているだけだからな

たぶん君に頼んでもoutofmemoryはくので計算できませんとか言いそうだけど
0030デフォルトの名無しさん2016/06/12(日) 00:34:46.23ID:AMLyjVO9
レベルに大きな差がある時、相手が持ち出す例えが
一段階も二段階も低いので、ネタなのかマジでいってるのか
判断に困るなw
0031デフォルトの名無しさん2016/06/12(日) 00:40:21.20ID:18K6R/tB
ビジネスの手続きとそれを実行する技術的手続きに関係があるのか

なぜ低レベルな客の言っているシステムを実現するのに設計監理が必要なのか

もっといえば再利用性が高いらしいooなら設計したモジュールを再利用し設計ごと再利用できそうなものだけど

なぜ情報システムは高くつくのか
高く売れるかどうかはビジネス的な問題であり、それを安く作れるかがIT技術者様の存在意義だよなあ
0032デフォルトの名無しさん2016/06/12(日) 00:47:00.80ID:AMLyjVO9
ほらなw レベルが違いすぎるwww
0033デフォルトの名無しさん2016/06/12(日) 01:01:21.55ID:6jjwfwov
でかいちんこ比べ合戦はそろそろやめたまえ
俺の派遣先で作ってるもんのがでっかいもんね!
いいや、俺の派遣先で作ってるもんのがでっかいもんね!
って言ってんだろ?

もういいからそういうの(笑)
0034デフォルトの名無しさん2016/06/12(日) 01:03:20.38ID:AMLyjVO9
あぁ、派遣とか思いもよらなかったわw
俺の周りにはいないものでね。

派遣って使ってる方も恥ずかしいんだよ。
(人を雇える金がないということだから)
0035デフォルトの名無しさん2016/06/12(日) 01:15:54.63ID:6jjwfwov
>>34
は?
プログラマなんか正社員で雇ってる大手とかねーよ
どんだけ単価安いのかと(笑)
0036デフォルトの名無しさん2016/06/12(日) 01:18:32.92ID:UP5FRtN1
たまには設計の具体的な内容について語れよ。
0037デフォルトの名無しさん2016/06/12(日) 01:19:47.76ID:AMLyjVO9
>>35
Googleとか正社員でプログラマだろw

お前が言ってるのは、ソフトウェア開発会社じゃない
大手の話じゃねーのかw
0038デフォルトの名無しさん2016/06/12(日) 01:40:17.75ID:Lsl6jMpZ
ID:AMLyjVO9 == ID:y6LF40Yk == 前々スレ>>1はいくつプログラミング言語を使えるのか?
ソラで書けなくてもいい。便利なライブラリを知ってなくてもいい。
その言語のユニークな概念を理解していて、それを使って簡単なプログラムが書ければいい。

つまりプログラミングのパラダイムをどれくらい知っているのか?
とりあえずaperyがOOだと言っちゃうあたり、C++は読めもしないことは把握してる。

今までのレスを追うと、上流()SEの臭いしかしない。しかも無能の方。
必死になってOOをおぼえたけど、実際にプログラムを書ききったことが無いから頓珍漢な設計しかできない無能に見える。
AP試験は通るけどFP試験は通らないような知識とレベル
0039デフォルトの名無しさん2016/06/12(日) 01:42:29.41ID:dD1m5RkQ
>>38
上流っぽさは感じないけどなあ
下請け派遣チームのリーダー
いまどきの若手からうざがられてる
ってイメージ
0040デフォルトの名無しさん2016/06/12(日) 01:44:14.36ID:AMLyjVO9
>>38
いくつだろうね?

C、C++、JavaScript、Java、Perl、PHP、Ruby、
Visual Basic (6.0)、C#、COBOL、Fortlan、アセンブラ
Python、Scala、Haskell、Go、Lua

これぐらいだっけな?
なんか漏れはあるだろうけどさ。
0041デフォルトの名無しさん2016/06/12(日) 01:48:32.55ID:AMLyjVO9
>>38
> AP試験は通るけどFP試験は通らないような知識とレベル

FPってなんや? 調べたらAPは応用情報技術者試験、
古くは一種って呼ばれていたやつだよな?

二種(今の 基本情報技術者試験)なら高校2年の時、
一種は大学2年の時にとった。
あとネットワークスペシャリストは今も同じ名前だな。
これは大学3年だったか4年だったか。

まあそうとう昔の話よ。今どれだけ難易度が変わってるかは知らない。
0042デフォルトの名無しさん2016/06/12(日) 01:54:21.10ID:UP5FRtN1
>>38
こいつ、ずっと>>1がどうこうって言い続けてるな。
ノイローゼかなw
0043デフォルトの名無しさん2016/06/12(日) 01:54:51.13ID:AMLyjVO9
>>39
> 下請け派遣チームのリーダー
チームリーダーじゃないよw
転職したばっかりだし

詳細は言えないが、Dockerをプロダクション用途で
で使ってる会社
0044デフォルトの名無しさん2016/06/12(日) 01:55:15.59ID:AMLyjVO9
>>42
寝ても覚めても>>1の事を考えているとしたら
面白いねwww
0045デフォルトの名無しさん2016/06/12(日) 02:46:37.26ID:LFy/DKKP
前スレからずっとだけど
何一つとして有用な議論も意見も無いのがすごい
そもそも基礎となるコンセンサスが希薄なのか
砂の上にお城を立てるかのごとく、水掛け論ばかりで議論に発展していない
これは凄い
構造化の時代であれば、グローバル変数は使わないほうが良いとか、意味もなくgoto文を使うなとか
だいたい皆の意見が一致していたのに、オブジェクト指向においては意見が発散するようだ
オブジェクト指向の闇は深い

俺が思うに、機能というのは複数の何かが作用しあった結果もたらされるものであるのに
オブジェクト指向の根底には、相互作用は複雑だから、なるべくしない、自分で閉じる、自分のことだけする
という思想があって、確かに自分で閉じればシンプルになるが、反面、相互作用をして機能をもたらさなくてはならず
この辺が相反していて人それぞれ考え方が違うので意見が発散するんだと思う
要するに、オブジェクト指向は相互作用はあまりサポートしない方針なのだろう
閉じた部分は機械的にサポートするので、本当に重要な相互作用は自分で考えて設計してね、という

オブジェクト指向で重要な部分はオブジェクト思考の外の部分にあったりするかもしれない
それを見越してオブジェクトを設計する
まさにそこがノウハウであり設計の部分なのかもしれないが、そこを語ろうとしても、これは難しいよね
見えない部分に秘訣があるわけだからさ

この辺の事情が分かってないと、全てをオブジェクト指向でしなければならないかのような錯覚に陥るか
もしくは反対に、オブジェクト指向を全否定し始めるか、かなり危うい手法なのだろう
0046デフォルトの名無しさん2016/06/12(日) 02:51:34.37ID:g978Bco6
メッセージパッシングとか相互作用そのものじゃないのか
0047デフォルトの名無しさん2016/06/12(日) 03:01:18.23ID:LFy/DKKP
オブジェクト指向が最も効果を発揮するのは文字列や配列などのコンテナだろう
コンテナは値を保持するだけで他と相互作用したり複雑なことをしないので
オブジェクト指向が完璧に発揮されて、完全に型にはまり
誰が書いても同じようなものが出来上がる
ここまで意見が発散したりしないだろう
ところが相互作用がたくさん出てくる物になると・・・
手続き型プログラミングにおいて一番考えなければならないのは相互作用の複雑さであることは明白であるが
相互作用について直接語るのではなく、オブジェクト指向の設計という観点から答えを提示しなければならないから
なかなかに難しい
目に見えないものの重要性はみんな分かっているけど、目に見える物で表現しないとなかなか伝わらないし
目に見えないものに対する考え方もまちまちだから、ってところかね
まるでアーティストだな
0048デフォルトの名無しさん2016/06/12(日) 03:06:35.18ID:LFy/DKKP
メッセージパッシングは大体においてただの関数呼び出しであり、一応仮想関数はあるが
大したサポートを得られている状況とは言えないのだ
関数の呼び合いは自分たちで勝手にやってね、というのがOOの立場かと
そりゃ勝手にオブジェクト同士がコミュニケーションして勝手に動いたらすごいが
そうじゃないからね
結局肝心かなめの部分は自分たちで何とかしないといけない
0049デフォルトの名無しさん2016/06/12(日) 03:11:51.71ID:LFy/DKKP
そういった関数の呼び合い合戦になることを見越したうえで
なるべく相互作用が簡潔になる最適解を、オブジェクトの設計という間接的な表現で示さなければならない
もにょる
0050デフォルトの名無しさん2016/06/12(日) 04:03:20.05ID:UM71zqN/
バカばっか
0051デフォルトの名無しさん2016/06/12(日) 06:29:06.79ID:SXVNfTEc
>>45
>>だいたい皆の意見が一致していたのに、オブジェクト指向においては意見が発散するようだ
オブジェクト指向の闇は深い

前スレは、かなり最後のほうから参加して、ちょっと書込みしただけだけど、すぐに上記のような感想を私も持ったよ。
そして、オブジェクト指向の現状に対する自分の印象が大きな間違いで無いと確認できたことが、大きな「成果」ですね。

>>閉じた部分は機械的にサポートするので、本当に重要な相互作用は自分で考えて設計してね、という
オブジェクト指向で重要な部分はオブジェクト思考の外の部分にあったりするかもしれない

オブジェクト指向がめざしていたのは、再利用だったと思う。
(まったく新しい処理(メソッド)については、やはり頭を悩まして考え抜くしかない・・・)
でも、再利用しようとしたら、「オブジェクト指向だけでは問題解決が難しい」ってことを上記のことはいいたいのだろう。

>>この辺の事情が分かってないと、全てをオブジェクト指向でしなければならないかのような錯覚に陥るか
もしくは反対に、オブジェクト指向を全否定し始めるか、かなり危うい手法なのだろう

例えば、石炭を燃やして走る戦艦があるとして、「もっと性能をアップしたい!」と考えたとき、「石炭」にごだわって、いろいろと議論してループしているような状態がこのスレかもしれない。
問題の解決法は、石油とか核物質といった石炭以外のところにあるのを知らない。
もちろん石炭を全否定するわけではなく、石炭船の技術で使えるところは、そのまま使えばいい。

小さな井戸の中に留まり続けて、外の世界に答えを求めない状態ってことかな?
0052デフォルトの名無しさん2016/06/12(日) 07:20:37.34ID:6jjwfwov
そもそもオブジェクト指向の目的は何かね?
そしてそれは達成されているのかね?
0053デフォルトの名無しさん2016/06/12(日) 09:12:36.48ID:AMLyjVO9
>>52
> そもそもオブジェクト指向の目的は何かね?

>>1に書いてある
0054デフォルトの名無しさん2016/06/12(日) 09:20:58.56ID:SXVNfTEc
>>53

1を見たけど「目的」は書かれてないようだが・・・
0055デフォルトの名無しさん2016/06/12(日) 09:23:29.43ID:AMLyjVO9
>>54
なぜこういう原則が生まれたかを考えれば
その目的もわかる。
0056デフォルトの名無しさん2016/06/12(日) 09:35:25.58ID:SXVNfTEc
>>55

きちんと書かねば誤解され、正しく伝わらない。
0057デフォルトの名無しさん2016/06/12(日) 09:49:20.24ID:OiOr5AKs
自己愛性人格障害
・人を見下し傷つける
・人を傷つけても罪悪感を感じない
・人を批判する
・自分が批判されることは許せない

人を見下す理由
・自分の優越感を支えるため
・相対的に自己価値を高めようと必死
・批判したり、認めない、侮辱することで己の優位性を保つ
・他者を貶めることで、優越性を維持し補強する


なるほどね・・・
0058デフォルトの名無しさん2016/06/12(日) 12:04:51.41ID:jZTbndlJ
>>51
オブジェクト志向的に言えば、内燃機関が石炭炉でもガソリンエンジンでも原子炉でもどうでもいい
内燃機関インターフェイスを正しく実装してさえいれば内部的にどう実装されていても戦艦全体の設計には影響しないから
部品の内部設計なんか部品屋のやることで、船体設計者は部品の性能が悪ければ部品交換の指示を出すだけ

オブジェクト志向を謳いながら部品内部の詳細設計まで求めるのはオブジェクト志向を理解していない証拠でもある
0059デフォルトの名無しさん2016/06/12(日) 12:11:37.92ID:SXVNfTEc
>>58

で、目的は?
0060デフォルトの名無しさん2016/06/12(日) 12:19:09.72ID:jZTbndlJ
>>59
ひとつは内燃機関は自動車や発電所でもそのまま流用できるという再利用性
ひとつは内燃機関の責任範囲を明確にしてることで石炭炉がダメなら原子炉でと付け替え可能な変更への柔軟性

個人的には後者の方を重視する、部品がダメなら部品屋に交換の指示を出すだけで済み、船体設計者の自分はその部品のチェック以外の修正が必要ないというのは楽でいい
0061デフォルトの名無しさん2016/06/12(日) 13:06:58.48ID:18K6R/tB
誤ったdivide and conquer
それがオブジェクト指向
全体から必要な分割量は推定されるのにSRPとか真に受けるとろくにパフォーマンスがでないゴミソフトに早変わり、
もちろん有機的に結び付いたメッセージパッシングシステムを考えればSRPにしたがってつくられたクラスは
粉々に砕け散ったフラグメントのようなもので再利用性に向かない
まともなスピードが出るアーキテクチャを設計してから抽象化や再利用性を議論するのには不満はないが、
再利用する価値がないゴミを再利用するだなんて無理だろう
新しいドメインのたびに新しいクラス構成を設計する必要が出てくる
これが単純なデータ構造にかんする処理の関数であれば、アルゴリズム、ロジックは簡単に流用できるが、
一度そのドメインにもとづいて命名したクラスは、ドメインごとに名前もかわればフィールドもかわる
それでいて再利用性とはイタすぎる
俺らが必要な議論というのは計算オーダーがOnからOnlognになるが、汎用性が高まるとして、そのシステムが処理すべきデータ量、そして許容されるスループットとレイテンシから、
どっちのアーキテクチャを採択するかであってあるクラスをpersonクラスにするかemployeeクラスにするかだなんてしょーもない話をしたいわけじゃないんだけど
UMLじゃこの本来のシステム設計要件を表現できないよな
UMLに表現できないことは設計対象じゃないと?
非機能要件も満足できず、機能はお粗末、そんなゴミシステムの再利用性なんて議論する価値本当にあるか
0062デフォルトの名無しさん2016/06/12(日) 13:08:36.97ID:AMLyjVO9
他人に読ませようと思ってない
クソ文章と議論する価値は無いと思うよw
0063デフォルトの名無しさん2016/06/12(日) 13:52:02.22ID:6jjwfwov
前スレの39enさんが言ってたように
オブジェクト指向スレで話題になる内容は
オブジェクト指向がサポートしてない内容であるに1票
0064デフォルトの名無しさん2016/06/12(日) 14:17:58.36ID:OiOr5AKs
機能要件と性能要件を満たすように設計するでしょ
性能測定して要件満たせないなら、ボトルネック探して改善するよね
オブジェクト指向のオーバーヘッドが原因になるような
シビアなシステムならCやASMで書き直したりするしね
0065デフォルトの名無しさん2016/06/12(日) 14:42:42.73ID:jZTbndlJ
多くの場合、何かを強く否定したがるのは否定してる奴が対象を正しく理解してないからである
同様に何かを全面的に肯定するのも正しく対象を理解しているとは言えない
メリットもデメリットも正しく理解しているならばメリットがデメリットを上回る場合にのみ使えばいいので全否定も全肯定も必要なくなる

ドキュメント化する目的のためにUMLで表現できない事があるならば別の方法で表現すればいい
OOPで実現困難なほどシビアな要件ならOOPを使わなければいい

理解してしまえばただの道具に過ぎないものを理解出来ない馬鹿が必死で否定する姿は滑稽だ
0066デフォルトの名無しさん2016/06/12(日) 15:17:29.20ID:6jjwfwov
オブジェクト指向のメリットとは?
0067デフォルトの名無しさん2016/06/12(日) 15:39:34.29ID:OiOr5AKs
脳汁ぷしゃああああああ
0068デフォルトの名無しさん2016/06/12(日) 16:08:09.00ID:UP5FRtN1
>>66
本読めよ
本読んだ上で違うと思うなら、○○と書いてあるけどこういうケースではこう違うのでは、みたいに具体的に書け
0069デフォルトの名無しさん2016/06/12(日) 16:24:22.70ID:UP5FRtN1
設計例題【将棋ソフト】

要件定義

(必須機能)
第5条 参加ソフトは、次の各号に掲げる機能を持たなければならない。
一 任意の局面・手番・残り時間からの将棋の対局の開始と継続。
二 任意の時点での対局中断。
三 対局中の現在局面の表示。テキストでも良い。
四 第 19 条の規定による、1 手毎の消費時間の計測、及び累計消費時間の画面への表示。
五 1 手毎の指し手と消費時間の記録。対局中断時も、そこまでのすべての指し手と消費時間を取り出せなければならない。
六 CSA サーバプロトコル ver.1.1.3 に基づく、LAN による対局。
七 相手の指し手の手入力による対局。
0070デフォルトの名無しさん2016/06/12(日) 16:25:50.25ID:9HFtYPb0
>>66
その問いに十分な回答しているレスをいまだ見たこと無い
だいたいこの二パターンしか見ない

1) >>x
2) 本読め

だいたいいつでもこれ
0071デフォルトの名無しさん2016/06/12(日) 16:26:56.83ID:UP5FRtN1
(推奨機能)
第6条 参加ソフトは、次の各号に掲げる機能を持つことが推奨される。ただし、機能を持たないことによって不利になることはない。
一 千日手の検出。
二 LAN による通信で送受信した文字列の必要に応じた表示。
三 任意の局面・手番・残り時間からの LAN による通信での将棋の対局の開始と継続。

http://denou.jp/tournament2015/img/rule/denou_tournament_rule2015.pdf
0072デフォルトの名無しさん2016/06/12(日) 16:27:45.44ID:UP5FRtN1
将棋ルール
https://ja.wikipedia.org/wiki/%E5%B0%86%E6%A3%8B
ロジック概要
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E5%B0%86%E6%A3%8B
の6 コンピュータ将棋のプログラミング技術
0073デフォルトの名無しさん2016/06/12(日) 16:29:35.54ID:UP5FRtN1
将棋ソフト以外を例にすべきだと思うならご自由にどうぞ
ご自身で進めてください

あれこれ批判するのも相手をするのも時間のムダなのでスルーしましょう
0074デフォルトの名無しさん2016/06/12(日) 16:31:31.69ID:UP5FRtN1
正統派設計チーム
http://echo.2ch.net/test/read.cgi/tech/1463663267/768
http://echo.2ch.net/test/read.cgi/tech/1463663267/819

「設計はコーディング」チーム
class KomaClass {}
class KomaType {}
class MoveClass {}
class BoardClass {}
class PlayerClass {}
class MatchClass {}

現時点では「設計はコーディング」の完敗なので頑張りましょう

他の手法でやりたければ歓迎ですので好きな手法を選択して下さい
0075デフォルトの名無しさん2016/06/12(日) 16:43:45.47ID:UP5FRtN1
>>70
オブジェクト指向は簡単な概念じゃないから素人に説明するのは無理orめんどくさい
最低でもオブジェクト指向言語の開発経験のある相手じゃないと
オブジェクト指向言語の開発経験があればオブジェクト指向の目的くらい本で読んでる
したがってそんなものを説明する価値がない
0076デフォルトの名無しさん2016/06/12(日) 16:46:59.36ID:6jjwfwov
>>75
遠回しに無くても問題ないって言ってね?
0077デフォルトの名無しさん2016/06/12(日) 16:55:38.51ID:UP5FRtN1
>>76
どう解釈すりゃそうなるんだ?

まあ、なくていいと思うならやらなきゃいいんじゃね
自分で選べばいいのよ
でも、自分にとって必要ないから他の人にとってもいらないと決め付けて
「オブジェクト指向システムの設計」について語ろうってスレで
「オブジェクト指向はいらない」としつこく連投するバカにならなきゃ問題ない
0078デフォルトの名無しさん2016/06/12(日) 17:05:16.66ID:18K6R/tB
説明に困るものをベースに設計なんて建築設計ではやらないんだけど

世の中にで説明にこまることがあるとすれば、きわめて高度なアーキテクチャか、極めて低質な仮構のいずれかだ

根本から基礎を間違えた設計思想は他人にも説明しえない

顧客という素人に説明するのにオブジェクト指向は有効なんだろう?

なぜその簡潔な設計思想が簡潔に説明し得ないのか

君には人に説明できないアーキテクチャしかつくれないし、顧客をけむにまいて金を巻き上げているっていうなら別に何も言わないけど
0079デフォルトの名無しさん2016/06/12(日) 17:16:02.79ID:18K6R/tB
オブジェクト指向設計ノスレで
オブジェクト指向がサポートしないテスタびりティについて話をするよりかはオブジェクトにたいする理解が深まると思うんだけど

たとえばc#とJavaにλが導入された時に、これはドメインモデルではなくトランザクションスクリプトライクな処理に向いている
と結論づけたがそれは俺がオブジェクト指向以外の基本的な計算概念をしっていたからで、
俺がオブジェクト指向だけをマスターしてたわけではないからなんだが
たぶん君の中ではJavaは1.7以前
C#は2.0あたりでとまっているんだろうし
ラムダをどのタイミングで使うべきかもわかってないだろうし
ラムダをJavaがサポートしようとしていることすら意味不明だろう

だからいってるとおり最低限ボブおじさんの本は読んでSOLIDが適用できなくなる状況については理解してるんだよなあ?
とこのスレの最初で確認してるんだけど
0080デフォルトの名無しさん2016/06/12(日) 17:19:21.72ID:SXVNfTEc
>>66

どなたかが、この質問とか、オブジェクト指向の目的について、正しいって多くの賛同を得られなくても、なんらかの回答を書き込むと思って待っていたけど、全然まともな回答が出てこない。
また、無駄な例題を出したり、すでに解決済みのコーディングは設計か?実装か?問題を持ち出して、勝手な勝ち負け判定を書き込んでいるだけみたいですね。
そして無限ループが始まる。

とりあえず私が答えてみます。

C++やC#でのプログラミングの経験からすると、すでに作られたクラスというか、ソフトウエア部品を再利用することで、自分でその部分を開発する手間をかけることなく、バグの無いルーチンを手にすることができます。
開発工数、開発期間、開発の手間の減少が目的であり、メリットです。

もちろん、手続き型、構造化プログラミングの思想で作られたソフトウエア部品でも、自分が欲しい処理をやってくれるルーチンが見つかれば、その機能の開発の手間は大幅に減らすことが可能です。
でも、オブジェクト指向で作られていない部品を再利用するとき、データの受け渡しが難しかったり、データスコープの問題で、変数名が衝突したりするので、変数名を直さないといけなかったりします。

でも、C++やC#のように、データと処理を1つのクラスに取りまとめていれば、変数名の衝突を気にせず、再利用が可能となります。

普通に開発すれば、500行とか1000行以上になる処理でも、適切なクラスライブラリが見つかれば、20〜30行くらいでプログラムが完成することも多いものです。
コーディング行数が少ないので、仕様変更への対応も楽ですし、その気になればゼロから作り直すことになっても、数十行であれば、問題ありません。

そして、他人が作ったクラスライブラリと自分たちが作ったクラスライブラリの蓄積が増えれば増えるほど、開発工数、開発期間を小さくすることが可能になります。
0081デフォルトの名無しさん2016/06/12(日) 17:22:28.23ID:6jjwfwov
え?
ちょっとよくわかんなかった
品質が上がったの?
コストが下がったの?
0082デフォルトの名無しさん2016/06/12(日) 17:46:27.21ID:7ftbXVyw
内容はともかく
自分の言葉で説明してみせようとする>>80の心意気は大いに買いたい
0083デフォルトの名無しさん2016/06/12(日) 17:54:50.81ID:SXVNfTEc
>>81

品質は、実績あるクラスライブラリを使えば、バグがありませんから、アップしました。

コストは、バグが激減するってことで、工数が減るから残業が無くなる。
そういう意味では、コストは減ったといえますね。
プロジェクトの見積自体は、オブジェクト指向言語とか、クラスライブラリのことを考えていませんでしたから、顧客からしたらコストが下がったことの恩恵はなかったですけどね。
0084デフォルトの名無しさん2016/06/12(日) 18:30:05.29ID:UP5FRtN1
>>78
説明に困るもの ×
素人に説明するのが面倒なもの ○

だったら建築設計について知らない俺に建築設計の思想と手順を説明してくれよ
0085デフォルトの名無しさん2016/06/12(日) 19:23:22.17ID:6jjwfwov
>>83
頑張って読んだけど
オブジェクト指向関係無さげに見えたw
0086デフォルトの名無しさん2016/06/12(日) 19:28:45.43ID:UP5FRtN1
>>85
どうせこんな受け答えしかしないんだから説明するだけ無駄って言ったろw
0087デフォルトの名無しさん2016/06/12(日) 19:32:40.14ID:6jjwfwov
いやでもびっくりするぐらい
>>80
にはc言語でも可能な内容しかないわけで
0088デフォルトの名無しさん2016/06/12(日) 19:35:19.56ID:UP5FRtN1
>>87
お前みたいな奴にまじめにレスした人とかID:18K6R/tBとかがバカバカしくてイラついてるだろうからほどほどにな
くそうざいから死んだら
0089デフォルトの名無しさん2016/06/12(日) 20:50:45.06ID:6jjwfwov
えー俺のせい?
0090デフォルトの名無しさん2016/06/12(日) 21:12:21.27ID:UP5FRtN1
>>89
初心者なら反論すんな
0091デフォルトの名無しさん2016/06/12(日) 21:19:28.44ID:6jjwfwov
人格攻撃ですね
0092デフォルトの名無しさん2016/06/12(日) 21:29:18.19ID:UP5FRtN1
>>91
は〜、うっざ〜
荒しの相手はもうしないからそれじゃ
0093デフォルトの名無しさん2016/06/12(日) 21:32:48.73ID:OiOr5AKs
要するにクラスというものは固くて長くて太いのが良いってことだよ
0094デフォルトの名無しさん2016/06/12(日) 21:40:43.64ID:SXVNfTEc
>>87

C言語で可能な内容だと思う方もいるでしょう。私も、「C++って、ちょぴっとC言語にプラスしただけでしょう?言語として大した差はない?」と思っていた時期があった。
でも、C++を知ったら、再利用のパワーで、Cとの大きな差を感じた。
同様に、C#を知れば、C++以上だと驚いた。

「ライブラリの再利用」という単語だけをみたら、CでもC#でも同じ。
でも、Cだったら再利用できないものが、C#であれば、再利用可能になる。
そして、それを可能にしているのは、オブジェクト指向とは関係なくC#に追加された機能だと思う。
0095デフォルトの名無しさん2016/06/12(日) 22:03:48.05ID:UP5FRtN1
>>94
確かにこりゃ説明になってないな…
「ライブラリの再利用」に違いがあると言葉で言ってるだけで何が違うかまったく説明がない…
0096デフォルトの名無しさん2016/06/12(日) 22:08:31.91ID:SXVNfTEc
>>95

ここは長文禁止でしょう?
そしていろんな言語を簡単にマスターできる優秀な人たちの集まりなんだから、C#なんてとっくの昔に知っているのだろうから説明は不要だと思うのだが・・・。
0097デフォルトの名無しさん2016/06/12(日) 22:13:43.78ID:UP5FRtN1
>>96
ちょっと前に>>94よりずっと長い文を何個も書き込んでいたのにねえ…
「C#やれば分かる」って言うんじゃ説明にはなってないような

ま、めんどくさいから説明しないでいいんじゃね
0098デフォルトの名無しさん2016/06/13(月) 00:20:21.56ID:DkUycT/D
このスレの目的は何?
最終的な成果物は何?
方向付けもしないで建設的な議論は無理だよ
0099デフォルトの名無しさん2016/06/13(月) 00:43:29.95ID:Tx6AJrOc
>>98
オブジェクト指向システムの設計の経験者が意見交換することだろ

オブジェクト指向を使いたくない奴やら、オブジェクト指向の経験がない奴やらが
長文連投してるせいでおかしくなってるけど
「AKBについて語ろう」ってスレで「AKB嫌い!」って連呼するようなもん
俺もAKBは嫌いだけどAKBスレで「AKB嫌い!」するのは場違いだという常識くらいは知ってるからしないよ
0100デフォルトの名無しさん2016/06/13(月) 00:44:52.58ID:yJHs1WoR
>>98
各々がオブジェクト指向やそれ以外の技術、手法について
わいわいがやがや、ときには煽りあって
仲良く遊ぶことが目的
0101デフォルトの名無しさん2016/06/13(月) 00:50:03.51ID:Tx6AJrOc
>>100
実際のとこ、オブジェクト指向という名目で罵り合うスレになってるよねw
0102デフォルトの名無しさん2016/06/13(月) 01:43:43.03ID:6Ot446qT
題目が悪いからなぁ。

手続き型と関数型は相反するけど、
オブジェクト指向はどちらとも組み合わせて使うことが出来る。
その実例としてScalaがあるしね。

オブジェクト指向を使った設計の題目として適切なのは、
単一の処理を記述するものじゃなくて複数の独立したコンポーネントを
組み合わせて作るシステムの組み合わせる部分。
簡単に言えばフレームワーク。このフレームワークをオブジェクト指向で設計し
フレームワークから呼び出される個々の処理を手続き型か関数型で記述する。

だけど最近はこのフレームワークを自分で書かなくなってきたからね。
いまやオブジェクト指向設計はフレームワークとともに導入するもの
オブジェクト指向の有効性を語る時代じゃなくて深く浸透している時代なんだよね。

この目的としては○○システムのためのフレームワークを作りたい
って所だろうけど、ウェブとGUIとゲームと組み込み以外になにがあるかねぇ。
0103デフォルトの名無しさん2016/06/13(月) 02:06:07.50ID:6lLRtxxr
C#をやればわかるが、あれはドットネットフレームワークのクラスを張り合わせて、もしクラスライブラリーになければ諦めるような人たちのための言語だよ

それでもc#はいい言語だけどないかんせんwpfみたいなダメなフレームワークが出てきて、msもとうとうjavascriptをサポートしはじめたでしょ

もしc#がダイナミックをサポートしなきゃ、vsの力を最大限使って捩じ伏せるという思想を維持できたのに、ダイナミックをサポートしたせいで、ライブラリーのアーキテクチャの一貫性がなくなったよな

ダイナミックタイプをサポートするなら一番最初の段階で導入しなきゃダメだったしc#はあきらかにドキュメントが貧弱な言語だ
最初のリファレンスが日本語を成していないmsdnじゃ話にならないでしょ

てかオブジェクト指向ライブラリーってドキュメント貧弱なら使い物にならないんだけど、外部ライブラリの学習コストを再利用性派はどう考えてるんだろうな

それこそ自分で書いたほうがマシって奴ね
然るに再利用にこだわる人間はプログラムがへたくそでそれを自分で書けないから再利用したがるんじゃないのか

そんな奴がパフォーマンスチューニングできんの
0104デフォルトの名無しさん2016/06/13(月) 02:24:48.89ID:CaTYV89k
>>103
長文は漏れなく基地外
0105デフォルトの名無しさん2016/06/13(月) 02:41:47.98ID:TsIFgltS
>>103
オブジェクト志向の有用性を理解してないとか、他人のレスと関係なく自分の主張を繰り返すとか、理解力に乏しい人なんだねなるほど理解した
理解力が乏しく思考にも柔軟性がないから他人の考えを理解できず、他人書いたライブラリも再利用出来ない
そりゃ自分で書いた方が早いだろうね、そもそも理解出来ないんだからw

普通の理解力があれば自分で実装するよりライブラリを使う方が早いんだよ
日本語のドキュメント読んでわからなければ原文読めばいいじゃない?何も困らんよ?

たとえば明日からゲーム作る、Unity使うか相当品を自分で実装するか選べって言われたら俺は迷わずUnity使うけどな
>>103にとって自分で書いた方が早いなら自分で書けばいい、誰も止めないから
0106デフォルトの名無しさん2016/06/13(月) 06:47:11.17ID:p1ZEOAEH
>>103

この主張はC#を使っているプログラマたち(&彼らが作ったソース)のことを全く知らず、ダイナミックが導入された経緯を知らないってことを示している。
だから、知らないことに対して、推測をして、その架空のものを批判しているだけだと思う。

ただ、確かに英語ドキュメントが読めない人にとっては、大きな障壁のある言語であることは認める。
でも、それはC#に限らず、新しいプログラミング言語で何か開発しようとしたら、日本語じゃあなく、英文ドキュメントを読まないと手に入らないことが普通。

英文読むのが苦でなければ、ドキュメントはある。それらを読みこなすには、日本語ドキュメントよりもコストが若干かかるかもしれない。
しかし、その追加コストは、ライブラリの使い方をマスターできたら、2回目からは発生しない。

そして、ライブラリを使うことで、ドキュメントを読みこなすための余分なコストは、簡単に回収できる。

それから、確かに.NETのクラスライブラリを貼り合わせても、求めるソフトが出来ないことは多い。
だからオブジェクト指向の継承機能とか、C#固有の機能を使って、ちょこちょこと追加コーディングすることで、求めるソフトができあがる。
ただ、こういったことが可能になるための言語学習コストは、英文ドキュメントを読むコストよりも、ずっと大きいと思う。

IT企業は、人貸し業がほとんどだから、英文読んだり、新しい言語学習の追加コストを払う余裕が無いところだらけ。
また、たとえその技術を開発担当者がマスタしていたとしても、「当社では、それを使うことは認めない!」という現場もあって、実戦で利用できず、経験を積めない。

最近、プログラマをめざす若い人たちに、こんなIT業界にしてしまった責任を感じることがある。
こうなることを知りつつ、傍観者でありつづけたことに対して・・・。
0107デフォルトの名無しさん2016/06/13(月) 08:23:04.58ID:lArDG0nw
理解力ね
普通にクラスライブラリーより関数ライブラリーのほうが汎用性あるからね
あとmsdn英語版読んだことある?
あれは君らの認識だとドキュメントのていをなしているわけか
0108デフォルトの名無しさん2016/06/13(月) 08:28:23.44ID:lArDG0nw
ライブラリーをよむたびに理解を求めるアーキテクチャというのは。それはただの設計失敗だよな
君は理解している気になっているだけで、何も理解していないだけさよ
関数型なら関数の引数と戻りが言語の基本的な共通インターフェースとして機能してるが、ooはインターフェースの構成すらも、継承されたクラス階層から掘り起こす必要があるからな

おれはそれがだるくてOOやめたから、クラスライブラリーが汎用性高いってのも嘘か無知かのどちらかということぐらいは知っている
0109デフォルトの名無しさん2016/06/13(月) 08:34:17.11ID:lArDG0nw
あるクラスを継承するには、何々インターフェースの何々メソッドと何々抽象クラスの何々メソッドを継承せよ
一つでもメソッドがたりなければ、そのクラスとは認めない

あほかと
あとmsdn見てもどれがキーファンクションなのかなんてでてきないだろabc順でずらずら出てくる

あれが使用率順にソートできればまだよかったけどな

クラスの数だけドキュメントとメソッドが必要になる点でどこが再利用性が高いのかさっぱりわからん
0110デフォルトの名無しさん2016/06/13(月) 09:34:22.33ID:6Ot446qT
>>109
お前何いってんの?
メソッドがなくてもそのクラスと認めてやる。
動かないけどなwwww

で何が解決してるんだよ?w
0111デフォルトの名無しさん2016/06/13(月) 09:53:41.81ID:TsIFgltS
>>109
>あるクラスを継承するには、何々インターフェースの何々メソッドと何々抽象クラスの何々メソッドを継承せよ
>一つでもメソッドがたりなければ、そのクラスとは認めない

それが言語仕様で保証されてるからあるクラスを継承している実体が何であれ関係なくあるクラスのインスタンスとして扱うことが出来る
関数で言うなら引数と戻り値の型が定められてるのと一緒なんだが?
引数も戻り値もバラバラでいちいち確認しなきゃいけない関数ライブラリが使いたいなら好きにしろとしか言えないがw
0112デフォルトの名無しさん2016/06/13(月) 11:44:52.58ID:Tx6AJrOc
>>109
こいつクラスの意味すら理解してないぞ…
お前のバカっぷりにはいつも笑わされるw
0113デフォルトの名無しさん2016/06/13(月) 12:40:25.24ID:uQkz1EgZ
>>109
クソワロタwww
0114デフォルトの名無しさん2016/06/13(月) 12:47:10.37ID:MnOA2l4s
クラスの意味を知っているハイパーエリート様がクラスの意味を教えてくれるそうです
>>111
言語仕様で決めているから生じるメリットというのは型安全であって、インターフェースの共通化ではないよね
そして言語仕様で保証されているのが、明確なメリットならC#はなぜダイナミックをサポートしたのだ?ダイナミックは型安全ではないが

ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性がユーザーにとっての再利用性にどう結び付くんだ?
簡潔なシンタックスでデリゲート(ラムダ)もかけない言語にいったいどんな汎用性があるのか
0115デフォルトの名無しさん2016/06/13(月) 14:48:27.68ID:Tx6AJrOc
>>114
例によって不明瞭な主張だけど

>言語仕様で決めているから生じるメリットというのは型安全であって、インターフェースの共通化ではないよね
「インターフェースの共通化」の意味を正確に定義しろ

>ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性が
インタフェースを宣言するのが煩雑だという主張か?
0116デフォルトの名無しさん2016/06/13(月) 16:11:58.08ID:TsIFgltS
>>115
ダイナミック型は、動的型付け言語とのやり取りのために実装されたようなものだから仕方ない
C#で完結出来るならダイナミック型など使わない、だがスキーマレスなJSONを吐き出す阿呆なウェブサービスと通信するとなれば、話は別だ
微妙に異なる形のそれぞれにクラスを用意するのでは効率が悪い、だから一度ダイナミック型で受けて用意したデータ型に展開する
この場合、元々通信先は型安全でないのでダイナミック型で受けても弊害はない
あくまでも一時保管であり、型安全でないままC#の世界に解き放つ事はしてはならない


動的型付け言語におけるダックタイピングはinterfaceの代替にはならない、実行するまでそれが使えるかわからないではお話にならない
静的型付け言語におけるダックタイピングはリスクが大きい、メソッドシグネチャが同じでも意図する事が異なるものがあったら事故る
Aというinterfaceが実装されているという事はそのクラスがAとして扱われることを考慮して実装されていることを保証する
それは即ち再利用時の安全を保証するものでこれはダックタイピングでは実現出来ない

つまりinterfaceってのは>>115みたいな馬鹿を縛る枷なんだよ、馬鹿が中途半端な実装をしない様に全部実装しろと明示してるの
そういう意味ではinterfaceはとても便利なんだ
0117デフォルトの名無しさん2016/06/13(月) 16:14:31.71ID:TsIFgltS
安価間違えた>>116は>>114宛な
0118デフォルトの名無しさん2016/06/13(月) 19:31:33.15ID:1I3TkKuj
あいかわらず実装の話してんのなw
0119デフォルトの名無しさん2016/06/13(月) 21:50:49.86ID:jhh9kLYj
>>116
いやあ
dllになってて内部がいじれなくてインターフェースしか公開されてないとかならいいけどさ
結局馬鹿もそこ修正しなきゃいけないんだろ?
意味ねっす(笑)
0120デフォルトの名無しさん2016/06/13(月) 22:18:34.84ID:h+DWc0m+
再利用性にこだわるのは、アルゴリズムがかけない馬鹿だけ

無知だからライブラリーという概念が、オブジェクト指向から始まったとかんがえている
そして無知ゆえに比較対照に基づいて議論できない
今日のオブジェクト指向言語がオブジェクト指向らしからぬ機能を取り入れるようになった理由も理解していない

d.hatena.ne.jp/Nagise/touch/20111218/1324182111
「おー。54個のメソッドを実装した僕が馬鹿みたいじゃないですか」
先:「馬鹿だったろ。さっきまで」

馬鹿に合わせてやるシステム設計ってさぞかしつまらないんだろうなあ

あるJavaのクラスを継承したら律儀にメソッドを書いてくれるんだろ?メソッド数が50を超えてても一つ残らず実装しろよ

そこまでやって型安全を確保したところでNullPo吐いたら実行時エラーで終わりだけどな

然るにオブジェクト指向使いは設計というものはトレードオフの解決手段という認識を持っていない

いくら型安全でも論理エラーにコンパイラは無力であり、シンタックスの複雑さが君達が捕捉するのに躍起になっているシンタックスエラーを生み出している


ってこれは前擦れで指摘したとおり
君達は設計手法を共有するという題目で実際には無い物ねだりをしている
言語設計者が切り捨てた機能について議論し、オブジェクト指向は完全性を有しているのだという結論を導きたいだけなんだ
0121デフォルトの名無しさん2016/06/13(月) 22:25:11.44ID:h+DWc0m+
出力が正しいと確信するためには出力の監視が必須である
オブジェクト指向は内部状態を包み隠し、クラスの内部状況を知ることにもメソッドのオーバーライドを要求する

そしてそれが、安全性を支えているというのである
エラーがでないし不満もないのは、それだけ単純なシステムしか実装していないという自白なんだよ
チャレンジしなければ失敗しない

それをもっともらしく着飾っているだけだね
現にオブジェクト指向の教科書をみればCRUDの延長上のシステムしか問題にとりあげられない

だからこそCRUD以外のシステムは一切構築できない
0122デフォルトの名無しさん2016/06/13(月) 22:31:53.10ID:h+DWc0m+
失礼オブジェクト指向使いにも設計がトレードオフの解決手段であるという認識を持っている人はいるだろうね

ただオブジェクト指向が流行ってるやってるだけって奴は、そもそも自分に適した環境というものを模索しなかった時点で、根本的に設計能力がないよな
ベストを追求する気がない奴にも馬鹿な顧客がついてくれる点でオブジェクト指向は全く持って神思想としかいいようがないな
0123デフォルトの名無しさん2016/06/13(月) 22:33:57.76ID:1BZvkwxj
CRUDはチューリング完全だけど
0124デフォルトの名無しさん2016/06/13(月) 22:42:11.75ID:h+DWc0m+
じゃあCRUDでクイックソート実装してみて

brainfuckもチューリング完全だけどな
てかCRUDにポインタ操作は入ってないけど本当にチューリング完全かな
0125デフォルトの名無しさん2016/06/13(月) 22:56:08.33ID:1BZvkwxj
Bohmの論文によると式の逐次実行と条件分岐があればチューリング完全だから
CRUDはそれを満たしてるね。ポインタ操作は関係ない

いや
> CRUD以外のシステムは一切構築できない
っていうからチューリング完全で構築できるシステム意外ってなんだろうなって気になっただけ

関数型は停止性問題とか解けるの?
0126デフォルトの名無しさん2016/06/13(月) 23:12:47.60ID:6lLRtxxr
え、君はチューリング完全であれば、つまりbrainfuckがあればなんでも実装できちゃうスーパーマンなわけ?
誰もチューリング完全かどうかで言語選んでないよね
チューリング完全かどうかが判断基準なら誰もが機械語を書いているはずだが

あとCRUDのUpdate"関数"にqsortライブラリをぶち込むというのが君の解答でいいのかな?
いかにもオブジェクト指向的な回答だと思うけどね、俺が間違ってたわ、確かにCRUDはチューリング完全だね

オブジェクトの命名でポインタを押さえることができるし
create"関数"でデータ構造の生成もできるし、update"関数"でデータ構造を更新していけばクイックソーとは実装出来たも同じだね
ただし実装の詳細については考えないものとする、がオブジェクト指向の真髄ってわけだ
0127デフォルトの名無しさん2016/06/13(月) 23:32:31.25ID:1BZvkwxj
CRUD以外のシステムが構築できないのが君の批判ポイントだろ?>>121

それなら、まずチューリング完全であるはずの「CRUD以外のシステム」を定義しろ
それとは別なところで議論したいなら、さっさと間違いでしたって認めろハゲ
0128デフォルトの名無しさん2016/06/13(月) 23:38:05.24ID:DkUycT/D
ハ、ハゲをバカにするなよ!
0129デフォルトの名無しさん2016/06/13(月) 23:43:18.56ID:6Ot446qT
>>114
> ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性がユーザーにとっての再利用性にどう結び付くんだ?

インターフェース宣言が不要なのであって
インターフェースが不要なんじゃないよw

インターフェース、つまり動作するにはこの関数とこの関数が必要という
情報があることには変わらない。

あくまで宣言が不要なだけ。
で、宣言が不要っていうのは書くのは楽になるかもしれないが、
実際に動かしてみなければ足りないことがわからない。

テストを書けば良いのだが、ちゃんとテスト書いたっけ?
という悩みがどうしても消えない。

インターフェース宣言っていうのはその悩みを補完するための
あれば便利な道具だよ。
0130デフォルトの名無しさん2016/06/13(月) 23:53:48.50ID:jhh9kLYj
多くのオブジェクトでinit関数を2回呼んだら死ぬよな
でもinitなんだから初期化しろよな
それが前回の処理途中であってもinitを実行したら初期状態に戻れよ
それがinit関数の役目だろうが

initを2回呼んでも大丈夫かどうかはクラスのすべての処理を読まなければわからない
これはC言語時代のグローバル変数の問題
うんこマジうんこ
0131デフォルトの名無しさん2016/06/14(火) 00:02:54.88ID:xs1+VdTF
>>130
さすがにそれはinit関数のドキュメントが悪いか
ドキュメントを読まないのが悪いか
って話なような気がする
0132デフォルトの名無しさん2016/06/14(火) 00:23:00.74ID:ivY0lwHl
>>129
そんなこと分かってるからこそ説明求めてる。

ID:MnOA2l4sはまた意味不明な書き込みをして逃げたなあ。
ID変えるのがうざいからコテ付けろよ。
オブジェクト指向が意味ないと思うのはお前の勝手だからこのスレに書き込むなよ。
死ねカス。
0133デフォルトの名無しさん2016/06/14(火) 00:26:28.44ID:ivY0lwHl
>>129
>>114宛だったか
前半は間違った
失礼
0134デフォルトの名無しさん2016/06/14(火) 00:36:41.10ID:x23BehJN
>>131
ドキュメントに書くべき?
そういう作りにするべきでない?

ちなみにこれは明らかに昔で言うところの、グローバル変数の害
でも何故か言語的なお墨付きをもらって、許可されちゃった
オブジェクトは「状態」をもつ、無駄に
昔だったらファイルオープンやデバイスアクセス、通信処理ぐらいだったのに
明らかに無駄に不具合を増やしている
0135デフォルトの名無しさん2016/06/14(火) 00:39:55.23ID:ivY0lwHl
>>134
どんだけバカなの?
関数の時代から状態を維持することはできたし、サービスとかソケットとか状態を持ってた
0136デフォルトの名無しさん2016/06/14(火) 01:03:45.84ID:M6DJWkXG
オブジェクト指向にするとグローバル変数が
ほとんど無くなるのは大きなメリットだと思う
0137デフォルトの名無しさん2016/06/14(火) 02:07:45.11ID:TbEnZJwB
>>130
ねえなんでinit関数なんか付けちゃったの?それ実装した奴は馬鹿なの?それとも関数型の習慣が抜けない老害?
OOPL使うなら初期化はすべてコンストラクタ内で完結させろよ、何回呼んでもインスタンスが増えるだけだから安全だぞ?
さすがにインスタンス作りまくってメモリ食い潰して死ぬのまでは面倒見切れないがw
0138デフォルトの名無しさん2016/06/14(火) 02:15:36.54ID:M6DJWkXG
> さすがにインスタンス作りまくってメモリ食い潰して死ぬのまでは面倒見切れないがw
それはオブジェクト指向とは関係ない話だな。
手続き型でも関数型でも、新たなデータが増えていくならば
メモリを食い潰すことになる。

当たり前の話であり、さすがにこれに反論できるわけがないとは思うが。
0139デフォルトの名無しさん2016/06/14(火) 03:31:02.59ID:f6jk1oMA
コーディングは製造
0140デフォルトの名無しさん2016/06/14(火) 07:44:41.95ID:ppJIXRLW
設計も製造
0141デフォルトの名無しさん2016/06/14(火) 08:01:46.93ID:ZM1UmKcZ
>>135
そういう動作ってグローバル変数使うなって言われてたと思うけど?
0142デフォルトの名無しさん2016/06/14(火) 09:24:57.00ID:qFqOPgyt
相変わらずシステム設計とプログラム設計が同居してんなぁ
0143デフォルトの名無しさん2016/06/14(火) 09:32:22.84ID:M6DJWkXG
>>141
そういう場合にオブジェクト指向を使うと
グローバル変数が減るから良いんだよね
0144デフォルトの名無しさん2016/06/14(火) 09:57:43.46ID:LIAgHHXu
>>142
設計と実装の区別も付かないアンチが粘着してるからなw
当分このままだろうから見に来なくても大丈夫だぞ?
0145デフォルトの名無しさん2016/06/14(火) 10:58:33.19ID:Ctb460gI
オブジェクトにたいするパブリックアクセサメソッドを通じたオブジェクトの内部変数へのアクセスが
事実上のグローバル変数として機能しているという認識がないのな

そういうとセッターをなくせばとかいうけどそれ結局constのことだよな?
あるいはinternal使えっていうけどそれってモジュールプログラミングで解決する話だよな?

第一複雑なプログラミングほど、複数のスレッドやデータ構造にたいする、状態の共有と適切なスコープが要求されるわけなんだけどな、君達は相互作用を記述するときに共有すべき情報をどう共有しどうスコープ分割するんだ?

これはシステム設計の根幹をなす問いだと思うが
0146デフォルトの名無しさん2016/06/14(火) 12:00:06.53ID:LIAgHHXu
>>145
オブジェクトの参照を持っていて、オブジェクトが変数へのアクセサを持っていない限りはプライベート変数にはアクセス出来ない
弄られたくない物が弄られる状況にあるならそれは設計が悪い
そういう事をする馬鹿は関数型で設計してもグローバル変数を多用するだけだから関数型がOOPより優れてる証明にはならんよ

触らせたくない物は触られない場所に置いておくと言う原則は関数型でもOOPでも何も変わらない
0147デフォルトの名無しさん2016/06/14(火) 12:10:44.17ID:ivY0lwHl
>>145
グローバル変数は変数を読み書きする。
オブジェクトはメソッドを呼び出す。内部情報が操作されることもあるが、意識する必要はない。

全然違うぞ。恥をされていることの自覚がないど素人ってすごいよなあ。
0148デフォルトの名無しさん2016/06/14(火) 12:30:12.96ID:90DBjVJ/
正しく設計できない馬鹿のためにインターフェースという鎖があったはずなのに
スコーピングも満足に出来ない馬鹿に対する救済策がないということはわかった

前スレでの指摘を思い出してほしいが、すべてのアクセサメソッドをプライベートにするということは、論理エラーのテスト実行を非常に煩雑にする、そういうライブラリもあるだろうが、内部的にリフレクションでも使っているのだろう

全てのアクセサメソッドのアクセス修飾子を極力privateにするということが必ずしも硬い設計指針ではないことは明らかになったな、事実それは単純じゃないから
0149デフォルトの名無しさん2016/06/14(火) 13:12:16.42ID:ivY0lwHl
>>148
>正しく設計できない馬鹿のためにインターフェースという鎖があった
ってのが間違いよ。バカが間違ったとしてもそいつがバカだねってだけ。
バカだなあ。
0150デフォルトの名無しさん2016/06/14(火) 13:26:00.67ID:HFPvSksZ
>>139
これは見逃せないんだけど
コーディングはプロダクトコード以外もあるだろ
例えばクラスタ化したシステムを組むならFutureでもActorでもいいけど事前検証するためのプロトタイピングしたりするだろ
設計はPDCAで回すんだから検証はドキュメントのレビューかもしれないし、プロトタイピングの結果かもしれない
前スレで橋の設計やロボットの設計の話があったけど、それこそ図面描いて机上で終わらせる事はなくて、プログラム書いてシミュレーションを繰り返す
ソフトウェア製造は検証の場合も最終製造物も同じソフトウェアだから勘違いしてるのか?
0151デフォルトの名無しさん2016/06/14(火) 13:35:55.27ID:ivY0lwHl
>>150
ロボットやら建設やらソフトウェア以外の例を出すのはやめろよ。
ソフトウェアで語れ。

「建設では素人にも説明できるプロセスしか使わない」
「それなら建築のプロセスをきっちり説明しろ」
「説明できないでちゅ…」
ってなったバカだろお前。
0152デフォルトの名無しさん2016/06/14(火) 13:50:57.78ID:HFPvSksZ
>>151
同じ製造業でありソフトウェアは後発で設計・製造・試験のノウハウは建築業含む他の製造業から取り入れているのは明白
指摘した内容はソフトウェアに特化した内容ではないところなので別に良いのでは?
ソフトウェアに特化した話がしたいならそれ以前の所は理解しとこうぜってこと
0153デフォルトの名無しさん2016/06/14(火) 13:52:58.25ID:ivY0lwHl
>>152
だったら建築の話を抜いて書き直せ。
内容がないことに気付くだろうから。
0154デフォルトの名無しさん2016/06/14(火) 13:58:18.05ID:HFPvSksZ
>>153
内容なんて全くないよ
普通にソフトウェア作ってれば知ってる事を知らない奴がいるからわざわざ他の製造業を引き合いにして説明してんだから
それとなぜそこまで絡むのかも俺には理解できないけどな
0155デフォルトの名無しさん2016/06/14(火) 14:03:14.85ID:ivY0lwHl
>>154
だろ。内容ないんだから書き込むなよ。
お前が思ってるより他の人は知識があるし、何も知らないで連投してる荒らしは相手すんな。
0156デフォルトの名無しさん2016/06/14(火) 14:35:00.21ID:LIAgHHXu
建築の話ってあれか、OOPを詳細に説明するの面倒くせって奴に、建築なら説明出来ない物は使わないって喚いてた馬鹿か?

建築士だって、全く何も知らないどころか「強度計算なんて役に立たない無用の長物」と喚いてる馬鹿に強度計算の詳細を説明しろと言われたら面倒くせってなるだろw
それ説明して金払ってくれるなら説明するだろうが、客でもない奴にそれを説明する建築士がどれだけいるかねぇ?
0157デフォルトの名無しさん2016/06/14(火) 14:41:18.16ID:ivY0lwHl
>>156
だよな。
0158デフォルトの名無しさん2016/06/14(火) 16:23:27.83ID:LIAgHHXu
もうひとつ建築の話を引っ張りだしてやろうw
建築では設計段階で作るという事を全くしないのか?

答えは否、日常的に作るという事をしている
ソフトウェアと違って実物に近いものを作るのはサイズ的にもコスト的にも困難であるため多くの場合模型という手段を取るだけだ
建築模型士という職業が成立するぐらいには建築業において設計段階での試作が行われている
基本的な型の決まったセミオーダーの建築であれば最終的な図面を固める前にモデルルームやモデルハウスと言った限りなく完成品に近い試作品を使って最終設計を詰めることもある

>同じ製造業でありソフトウェアは後発で設計・製造・試験のノウハウは建築業含む他の製造業から取り入れているのは明白
>>152の言うこれが正しいするならば、プロトタイピングはもっと推奨されるべきだな
0159デフォルトの名無しさん2016/06/14(火) 16:49:38.14ID:dYSnVaKQ
建築業は、アナロジーやメタファーとして使われてる(ことが多い)だけで、別にソフトウェア開発が建築業の
具体的プロセスのノウハウを取り入れてるわけじゃないと思うよ。

建築模型士という職業が成立するということと、プロトタイピングが重要なことに、関連性はないと思うよ。

建築業とソフトウェア開発が何か密接な関係があると思われてるのは、クリストファー・アレグザンダーが
建築家だったせいかもしれん。
0160デフォルトの名無しさん2016/06/14(火) 16:58:08.57ID:LIAgHHXu
>>159
建築を例に持ち出したやつへの単なる当てつけなので俺自身は建築とソフトウェアの関係が深いとは全く思っていないよ
0161デフォルトの名無しさん2016/06/14(火) 19:22:36.65ID:x23BehJN
>>145
オブジェクト指向うんこだから
解決策持ってないよね
0162デフォルトの名無しさん2016/06/14(火) 21:06:56.34ID:MJXh41jF
OOがウンコとだけ書かずに自分のお気に入りパラダイムではこう出来るのにOOは出来ないからウンコと書くように
0163デフォルトの名無しさん2016/06/14(火) 21:39:32.89ID:x23BehJN
>>162
設計思想など捨てた
必要なものを必要なだけ作る
形など持たない
無形の位
0164デフォルトの名無しさん2016/06/14(火) 21:52:46.07ID:GeGW2Y+g
その前にウンコとは何か明確に定義したまえ
0165デフォルトの名無しさん2016/06/14(火) 21:59:55.11ID:VJ/4c5wE
まだやってんの?
0166デフォルトの名無しさん2016/06/14(火) 22:17:14.22ID:RUir73Dk
単純梁計算とオブジェクト指向が明らかに釣り合わないだろ
オブジェクト指向を使わないプログラムのほうが、プロとタイピングも容易で論理エラーの検出も容易なんだから

そしてプロとタイピングからスムーズに本設計に以降できないからお前達のいう"出来の悪い"オブジェクト指向フレームワークの出来上がりだ

その出来の悪いフレームワークでもプロトタイプのユースケースでは問題ない設計だったのかもしれない

10KBの入力データサイズ処理とを1GBの入力データサイズに"再利用"できると思っている

割り箸で組んだ橋に人間がのれないことは馬鹿でもわかることだが

計算機もリソースに制約があると考えていないから、再利用できるとかんがえてしまうんだね

事あるごとの変更におびえるのは、アーキテクチャそのものが脆弱だからにほかならず、一から設計できないからなんだよ
いちから設計できる人間は変更におびえる必要ないからな
0167デフォルトの名無しさん2016/06/14(火) 22:23:39.41ID:RUir73Dk
そろしろオブジェクト指向にしかできない素晴らしいことを教えてほしいね

Sunが営業戦略でやってたキャッチコピー以外でてこないしそれは他の言語でもサポートされている

再利用性が高いのなら、なぜ今でも情報システムにたいするコストが下がらず、いまだにIT技術者不足になっているんだろうね
0168デフォルトの名無しさん2016/06/14(火) 22:26:43.03ID:MJXh41jF
はい根拠が無い。やり直し
0169デフォルトの名無しさん2016/06/14(火) 22:30:29.95ID:VJ/4c5wE
>>167
オブジェクト指向が生産性を高めて短時間で高品質で膨大な量の開発を可能にした
ITの仕事はこれで楽になるかと思ったが皮肉にも要求の方も多くなり人間が行う仕事量は減らなかったんだ
この業界の常識だから覚えておこうね新人君
0170デフォルトの名無しさん2016/06/14(火) 22:33:26.92ID:RUir73Dk
再利用性、同じことは二度書かない原則に基づいてかかれたインターフェースまみれ、抽象クラスの継承まみれ、Factoryまみれのハイパーアーキテクチャを積んだシステムに、
オブジェクト指向を理解しているが、このシステムは初めての新人を突っ込んだらどうなるか

この問いの答が想像できない奴でも設計できるのがオブジェクト指向

山のように作られたドキュメントとソースコードをたたき付けて
ドキュメントを読めばわかるといえばいい

そんな文化だよな
0171デフォルトの名無しさん2016/06/14(火) 22:35:21.62ID:RUir73Dk
169
結局何一つ再利用出来なかったってことでしょ?
俺の指摘通りの結果だよね
0172デフォルトの名無しさん2016/06/14(火) 22:42:58.42ID:VJ/4c5wE
>>170
新人もスンナリと頭に入ってくる美しいOOPシステムに気分が良くなるだろうね
逆にOOPをやれない粗雑で扱いにくいシステムに放り込まれた新人は即転職だ
最悪の場合そのまま自殺もありえるかわいそうに
0173デフォルトの名無しさん2016/06/14(火) 22:48:10.44ID:x23BehJN
プロはオブジェクト指向など使わない方がいいことを知っている
いいね
0174デフォルトの名無しさん2016/06/14(火) 22:48:16.02ID:MJXh41jF
>>170
ほら自分のお気に入りパラダイムならどうなるかが抜けてるよ、気をつけて

もう一回書き直し
0175デフォルトの名無しさん2016/06/14(火) 22:51:15.44ID:x23BehJN
プロは無形の位に行き着くんだよ
0176デフォルトの名無しさん2016/06/14(火) 23:08:22.06ID:XorM60VV
俺のお気に入りのパラダイムなら
ドキュメントは関数に紐づくだけだね

このクラスには
このメソッドがあります、
このメソッドは、何々インターフェースを実装しています
このメソッドはObjectクラスから継承されたものです
このクラスにおいては型制約を満たした型パラメータしか入力できません
このメソッドはオーバーロードされます(同じ名前のメソッドがずらずら)

これがクラスの個数だけ繰り返されると
まずドキュメントからしてDRY原則が崩壊してることぐらいわかるよな
自分の欲しい機能だけを簡単に切り出すことができないし、クラスの数だけ同じ文面がくり返される

僕らならこんなことはしない
関数はこんなに恩着せがましくもばければ、クラスを使う度にいらないメソッドを押し売りなんてしない

試しにmsdnでdictionaryクラスのドキュメントでもみてきたらどうだ

正確にはSystem.Collections.generic.Dictionary <TKey,TValue>クラスな

こんだけ長いドキュメントを読み込んで、ようやく使えるこれ

javascriptなら{}って書くだけで使えるんだが
0177デフォルトの名無しさん2016/06/14(火) 23:10:40.26ID:XorM60VV
ここまで単なる辞書型配列、つまりマップを複雑に解説する出来損ないのパラダイムなんて、オブジェクト指向以外ないんだよなあ
0178デフォルトの名無しさん2016/06/14(火) 23:18:26.39ID:XorM60VV
www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

 もうかなり時間がたったしね、C++ が時間の無駄だということにはほとんどの人が気がついたとは思うけど、
でも当初予想していたよりはずいぶん時間がかかったな。
I:  具体的に何をどうやったのかな。
S:  最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。脳みそが半分でもあれば、
オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。
I:  え?
S:  それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?
I:  いや、実はないんだけども、でも…。
...

I:  だんだん呆れてきたと言わざるを得ないな。プログラマの給料を上げるためにやったって言ったね? それはひどい話ではないのかな。
S:  そうでもない。選択の自由は誰にでもある。こんなに話が膨らむとは思わなかったんだ。
ま、いずれにしても、基本的に僕の策略は成功したんだ。C++ は今や消え去りかけているけど、でもプログラマの給料は高いままだ。
特に、糞みたいな C++ コードをメンテナンスしなきゃならない哀れな連中はね。大規模な C++ モジュールなんて、自分で書いたのでない限りメンテナンスできないことは理解してる?

くそみたいなコードをいじくりまわして生計立てられるようになったのはストラウストラップのおかげだから、感謝するように
0179デフォルトの名無しさん2016/06/14(火) 23:31:50.78ID:M6DJWkXG
>>145
> オブジェクトにたいするパブリックアクセサメソッドを通じたオブジェクトの内部変数へのアクセスが
> 事実上のグローバル変数として機能しているという認識がないのな

それは間違い。

もし、そのオブジェクトがグローバルオブジェクトであれば、
(えっとな、グローバルオブジェクトっていうのはどこからでもアクセスできるオブジェクトって意味だ)

グローバルオブジェクトに対する内部変数のアクセスは、たしかにグローバル変数だと言えよう。


だけど、グローバルオブジェクトなんてめったにない。
ローカルオブジェクトに対する内部変数のアクセスは、全然グローバルじゃない。

グローバル変数って言うのはどこからでもアクセスできる変数のことだ。
グローバルオブジェクトじゃない以上、どこからでもアクセス出来るわけじゃない。


っていうか、なんでこんな超初心者レベルの話をしないといかんのか?
0180デフォルトの名無しさん2016/06/14(火) 23:41:19.90ID:F7mhDIzv
プログラムを複雑にしているのは相互作用で間違いないよね
で、この部分をいかにシンプルにするかにすべてがかかっている、と思っている

AがBのメソッドを呼んで、そのメソッドから逆にBがAのメソッドを呼び返して、さらにAがBのメソッドを呼び返して・・・
とかと、メッセージパッシング合戦はまったくの糞としか言いようがないからしたくない
単に複雑だし、最初にAがBのメソッドを呼び出したとき、Aは自分のメソッドの処理の途中だから、状態が不完全かもしれなく
その状態でBがAのメソッドを呼び返して、Aのメソッドが正しく動くかどうかわからないからね
これはご法度

こういうことが起きないように注意を払ってクラス設計するわけだが
最終的に出来上がった最適解は、クラスという間接的な形でアウトプットされる
本当のノウハウ自体はそこにはなく、別のところにある
なぜそういうクラス設計にしたのかと聞かれると、実際の手続き(メソッド内)で発生するであろう
諸所の動的な問題の話をしなければならなく
静的なベン図のようなものしか考えず、猫と犬は動物で猫はニャーと鳴くから、とかそんな単純なものではない
0181デフォルトの名無しさん2016/06/14(火) 23:43:03.25ID:mQ0l4Gv2
手続き型の代表がC言語でOOはJavaだとして、C言語をバリバリやってる(やっていた)人の方が業界経験も長く実行環境がリソース的にシビアな場面など経験が豊富になる傾向はあると思う。
例えばサーバサイドJavaから入ってフレームワークを利用するような経験が多い人は設計コストは少ないと思うし、それをやり玉に挙げるのはフェアな討論ではないと思う
個人的にはOOPとしてのJavaの利点の一つにカプセル化のための細かなアクセス修飾子にあると思う
例えばC言語のfopenで使うFILEはポインタ型で定義されているが、大概の処理系ではFILEの中身の構造体はヘッダファルに書かれているのである意味公開されている
この関数自体はANSI-C規定なのでIFとしては処理系には依存しないがFILEポインタの中身に関しては規定がないので実装依存になる。
つまりFILEの中身はヘッダに書かれていようが触ってはいけないのが暗黙のルールとなっている。
もちろん処理系が固定でstdiolibの実装を熟知しているなら触るケースがあるかもしれないけどこれは稀なケースだ。
0182デフォルトの名無しさん2016/06/14(火) 23:43:26.82ID:mQ0l4Gv2
Javaならjava.io.Fileもしくはjava.nio.Pathがそれに当たるとおもうが、このクラスが公開しているAPIおよびメンバ変数へのアクセスに関しては制限はない。
これはC言語にはないJavaの強力なアクセス修飾子による恩恵だと言える。ルールベースではなくシステム的にアクセスできないカプセル化の機構はソースコードを見ただけで設計思想が十分に伝わる個人的には説得力のあるコードが書けると思っている。
ただ、このJavaのカプセル化を正しく使って自前のクラスを設計できてる人間がどれだけ居るかと言われると半分にも満たないと思う。
勝手に非公開のメンバ変数やメソッドをpublicに直して動かしましたなんて事する人間は多くいるしpublicが好きならpythonでもやってくれって思う事は多々ある。
別にJavaエンジニア批判をするつもりはないし、C言語書きが皆優秀なんて思ってもいないが、ここでC言語書きの人たちの主張の根源はこんな感じじゃないのかなと個人的に思ったので。
元C言語書きで現在Javaメインでやってる自分としてはヘッダファイル書かなくていいのと最近のIDEのJVM系言語の強力さ、ビルドツールの充実さからJavaの方が気楽で好きではあるけど。
長文失礼。
0183デフォルトの名無しさん2016/06/14(火) 23:50:24.10ID:M6DJWkXG
>>180
> こういうことが起きないように注意を払ってクラス設計するわけだが

普通に「層」という考えで作れば
そういうことは起きないよw

オブジェクト間に層が無くて単一の層で
相互関係がってやるから難しくなるんだよ。

「層」を作ってやれば、大して難しい話じゃない。
0184デフォルトの名無しさん2016/06/15(水) 00:13:10.43ID:ytrU1urc
>>176
>自分の欲しい機能だけを簡単に切り出すことができない
ライブラリを参照したら結局必要ない関数もついてくるしあんまり変わらないんじゃないの?
関数内でほかの関数呼んでる場合もあるし、欲しい関数だけ切り出しても動かない事も多いでしょ

>javascriptなら{}って書くだけ
リファレンスと表記の仕方を比べても意味が無い
それにECMAScriptの公式リファレンスには同じくらい長い文章が出てくると思うよ

>>178
それネタだから
http://www.stroustrup.com/bs_faq.html#IEEE
0185デフォルトの名無しさん2016/06/15(水) 00:16:28.62ID:pWxix8Mt
オブジェクト指向はバカには難しいってことがよく分かるスレだな
0186デフォルトの名無しさん2016/06/15(水) 00:22:32.71ID:wTcNi+2O
技術職なのに、馬鹿でも簡単なものがあるとなぜ思った?w

馬鹿がやって混乱させてるのを見てわかるだろ。
馬鹿がプログラミングするんじゃねーと。
0187デフォルトの名無しさん2016/06/15(水) 00:40:38.22ID:UElfrvhY
簡単なことを複雑にやるばかほど生産性が低い人間はいない
簡単なことしかやれない馬鹿のほうがよほど価値があるよな

OOには生産性もなければ、再利用性もない
プロトタイプには普通動的言語使うし、テストにもいちいちフレームワークが必要だという
静的言語でアジャイルとか言ってる奴とかいるよな、馬鹿なんじゃないの
0188デフォルトの名無しさん2016/06/15(水) 00:45:09.83ID:UElfrvhY
わざわざインターフェース宣言してコツコツ実装しておいてアジャイルですって何いってるんだろうね

極めつけはリフレクション使ったりしてな
シャベルで鉄鋼に穴をあけるばかはさすがにいないだろ

それ使う道具まちがえてますよ
そんなのでも設計名乗れるのがオブジェクト指向
白痴でも設計をなのれるのは、OOをのぞいてほかにねえから
0189デフォルトの名無しさん2016/06/15(水) 00:45:34.64ID:lIUne/jR
この業界に限らず自分の理解出来ない物を否定して自分のやり方こそ至高っていう馬鹿な老害はどこにでもいるからなぁ
0190デフォルトの名無しさん2016/06/15(水) 01:00:33.77ID:ytrU1urc
>>187
手続き型、関数型vsOOじゃ戦えなくなってきたから静的vs動的に切り替えたの?それOO関係無いよね

もう一回書き直し
0191デフォルトの名無しさん2016/06/15(水) 01:02:38.10ID:SLYlY5zm
確かにprivateは微妙だな
最近はもうpakage defaultでいいやってなってる
0192デフォルトの名無しさん2016/06/15(水) 01:11:51.77ID:pWxix8Mt
って、お前は思ってるんだろ?
0193デフォルトの名無しさん2016/06/15(水) 01:19:50.46ID:SLYlY5zm
レガシーコード完全ガイドとかユニットテストのベストプラクティスから着想を得たんだけどね
0194デフォルトの名無しさん2016/06/15(水) 01:19:58.13ID:Onzr2dah
>>187
よお馬鹿
0195デフォルトの名無しさん2016/06/15(水) 01:20:31.94ID:gHR2VZA2
>>187
> 簡単なことを複雑にやるばかほど生産性が低い人間はいない
> 簡単なことしかやれない馬鹿のほうがよほど価値があるよな

これは日常生活レベルで同意出来る

> OOには生産性もなければ、再利用性もない

生産性に関しては手続き型のモジュール化構造もOOも違いはないと思う
再利用性に関しては切り口次第だし、汎用性を上げなければ再利用性は上がらないのでOOだからとは思えない

> プロトタイプには普通動的言語使うし、テストにもいちいちフレームワークが必要だという

それは要件定義フェーズでモック実装のUI評価とかなら分かるが設計評価・性能評価を意図したプロトタイピングならプロダクトコードで利用予定の言語で書くのが一般的だと思う
テストフレームワークはただのツールなのでメリットがないなら利用しなければいいだけ。必要なんて事はない

> 静的言語でアジャイルとか言ってる奴とかいるよな、馬鹿なんじゃないの

それは動的言語は開発速度が早い神話かなにかの話かな?
0196デフォルトの名無しさん2016/06/15(水) 01:21:49.35ID:UElfrvhY
自分が何をやっているかわからないということがリスクそのものだとバフェットはいうが、そんなリスクの塊みたいな馬鹿が情報システム触るのだけはやめてほしいね

それこそ再利用性もなければパフォーマンスもでない、でも金をかけたから使わざるを得ないような、技術的負債を山ほど積み上げるからね

だいたいOO黎明期で使われてたフレームワークや、開発手法が陳腐化している時点で終わってるよな

C#の例で行くとまずコレクションクラスからして非ジェネリックと、ジェネリックの二つがある

List<Object>とArrayListは同じものと見なせるのかそれとも違うものなのか

データベースだってefだのlinq to SQLだの直接SqL発行するだのいろんな手口がある

そしてefにいたっては、いわゆる貧血ドメインモデルそのもので、なぜそんなフレームワークが一番最新のものとなっているかなんてオブジェクト指向の文脈からすれば謎だ

GUIにいたってはsilverlightは撤退したし、wpfはxamlとかいうオリジナルxml勉強しないとだし、mvvmも勉強しないとだしweakreferenceがどういう内部挙動を示すのかまともなドキュメントはなく、かといってイベントドリブンライクにかくのは古臭いし

マルチスレッドに至っては...

もうやめようか、おれはどうすればいいかを知っているし、
再利用性に富んだオブジェクト指向フレームワークというのはいけてないという理由だけで腐り、新たなフレームワークが作られる

少なくとも関数型チームからすればqsortはいつまでたってもqsortだし、map reduce filterは言語によって様々な名称にはなるが、同じように使える
ドキュメントを読まなくてもシグニチャがわかれば、言語に寄らず使える
C#なら、select aggregate whereだったか
0197デフォルトの名無しさん2016/06/15(水) 01:31:43.89ID:UElfrvhY
少なくともオブジェクト指向言語がマルチパラダイム化してきたのはいいが、旧態依然のオブジェクト指向と様々な部分で衝突してきて、いよいよもってくそ化しはじめている

俺はなにをすべきかだいたいみえてるけど、この状態でC#とか勉強し始めようとする奴はかわいそうで仕方ない
0198デフォルトの名無しさん2016/06/15(水) 02:02:18.05ID:gHR2VZA2
>>197
Erlangあたりがメインの言語の人なのかもしれないけど意識が高いのは分かった
OOPLがマルチパラダイム化するのは長年使われてきた功労者の側面だし、時代にあったコーディングができないエンジニアは言語問わず淘汰されると思う
個人的には長年使われてエンジニア人口が多い言語はある種の正義だと思うし、質はともかく頭数をそろえるのは簡単だし

新人にいきなり関数型言語を教えるのは難しいと思っている。C#やJavaのとっつきやすさは抜きん出ているし。
だってOOには動物クラスと猫クラスの例えがあるからね。新人にはぴったりだ。
もちろんこんなのはウンコの例えだしある程度経験を積めばこの例えがひどい事はすぐに気づくと思う。
関数型言語の大罪はいつまでたってもサンプルが算術的すぎる事にあると思う。
これは新人が学ぶには敷居が高すぎる。
0199デフォルトの名無しさん2016/06/15(水) 02:20:05.26ID:gHR2VZA2
関数型言語に対する個人的な意見は、関数型言語をやるには数学的な知識は必要ないけど、関数型言語を使うメリットを感じるには数学的な知識が必要だと思っている。
また、メリットは絶対的に感じるものではなく相対的に感じるものなので自ずと手続き型言語やオブジェクト指向型言語が対抗馬になる。
単一言語しかやらない人にその言語のメリットを問うのは難しいし、話が合わないのは当然だと思う
個人的にはScalaを使う事もあるけど、チーム開発となるとエンジニアの母数から言ってJavaになるのはしょうがないと思っている
0200デフォルトの名無しさん2016/06/15(水) 04:00:49.97ID:lIUne/jR
日本刀と包丁とカッターナイフを並べてどれが優れているかを声高に唱える奴がいたらそいつは間違いなく馬鹿だと思うんだがなぁ
0201デフォルトの名無しさん2016/06/15(水) 06:36:36.25ID:RnAU+AQ/
>>200

まあ、そうだね。
カッタナイフはうまく使いこなす事務の女性が、「日本刀なんてダメよ!仕事で役に立たないわ!」と言う。
包丁の使い方をしらない料理下手の主婦が、「この包丁だめね、おさしみ綺麗に切れない!」と言う。

私は、自転車と自動車と飛行機の違いだと思っている。

自転車はほとんど誰でも乗りこなせて、気楽に買い物できる。
でも、子供との2人乗りはできても、大人を2人運ぶことは難しいし、ちょっと大きな荷物も運べない。
長距離移動も通常は難しい。

自動車は、普通免許とるには勉強と、それなりの運動神経等が必要だし、お金がかかる。
4,5人くらい同時に運べるし、ちょっと大きな荷物も大丈夫。長距離移動も可能。
でも国外への移動は難しい。

飛行機になると、免許書は、自動車免許を取るよりずっと難しくなるし、ボーイングの○○の操縦免許を持っていてもエアバスの××は操縦できない。
英語も必要だし、身体能力のチェックも厳しい。
でも、長距離を高速に移動できるし、旅客機なら大量の荷物も運べる。


無免許運転の罪を問われないとして、普通免許を持っていない人が「ちょっと10km先まで小包とどけてくれない?」と頼まれたとき、自転車と自動車のどちらを選ぶか?って問題と似ている。
自転車を使えば、体力的にちょっと大変かもしれないけど、安心・確実に届けられる。
でも、アクセルもブレーキもよく分らない無免許の人が自動車を運転したら、荷物を届けるよりも事故る可能性のほうが高い。

ここでオブジェクト指向言語に文句を言い続けている人は、無免許で自動車を運転して事故ったか、その危険さを強調しすぎる人たち。

でも、情状酌量の余地もあるかもしれない。
彼らは、自動車程度と考えた難易度が飛行機の免許くらいに広い知識や経験が要求されることを知らなかった。
飛行機を操縦するなら、まずは自動車免許くらいは持っていてほしいけど、それさえ持たない人がいきなり飛行機にチャレンジしたのだから。
0202デフォルトの名無しさん2016/06/15(水) 08:07:41.61ID:lfIMoC4C
その例えでいうならオブジェクト指向は馬車だね
0203デフォルトの名無しさん2016/06/15(水) 08:11:43.28ID:lfIMoC4C
馬車を扱うには、車の技術だけでなく馬の扱いにも秀でている必要がある
もちろん馬車で欲しい出力が出る人ならいいけどね

それとも馬をエンジンの抽象クラスから継承するかい
0204デフォルトの名無しさん2016/06/15(水) 08:49:12.12ID:FEVYup+X
javascriptコーダーにはろくな人間がいない
0205デフォルトの名無しさん2016/06/15(水) 10:16:06.32ID:i4R0HEqY
でも正直に言えば関数型は今のところ使えない玩具だよね。
0206デフォルトの名無しさん2016/06/15(水) 10:27:51.47ID:DCrbbIQF
Erlang「おっそうだな」
関数型使えないってErlangの存在だけで崩れさるよね
美しさ使いやすさとかより実用性全振り
0207デフォルトの名無しさん2016/06/15(水) 11:43:26.20ID:RVEnmxom
「Erlangが関数型」というのは個人的には「ErlangがメッセージングのOOPL」というのと同じ程度に違和感ある
Erlangが(メッセージングOO同様に)関数型を限定的にサポートしている言語だということに異論はないけれど
関数型の扱いにくい部分をさほど追求していないから実用になっていると思うのはうがちすぎ?
0208デフォルトの名無しさん2016/06/15(水) 11:47:44.75ID:pWxix8Mt
したり顔でしつこく語ってる連中はいい加減将棋ソフトを設計しろよ。
偉そうにしゃべってるくせに、実際の設計はまったくできないから笑えるw
ほんとは設計未経験なんだろw

「興味ない」とかいい訳はいらないから。
こんだけしつこく何の役にも立たない書き込みを連投してる暇があるならちょっとは意味のあることしろ。
0209デフォルトの名無しさん2016/06/15(水) 11:50:07.48ID:pWxix8Mt
将棋ソフト
>>69-74

アホがまた騒ぐのがうざいから>>73に注意。
0210デフォルトの名無しさん2016/06/15(水) 12:17:20.50ID:cX/y2RD7
しろよ。
偉そうに
くせに
笑えるw
設計未経験なんだろw

設計を教えてもらおうという立場の人間が
レスを貰うためにすることが初歩的な「煽り」一本ではね
もっと工夫してみなさい
0211デフォルトの名無しさん2016/06/15(水) 12:46:11.12ID:TAanDQJ+
将棋にはもうウンザリだ
0212デフォルトの名無しさん2016/06/15(水) 13:23:15.54ID:2Ug/bEFj
みんなが言ってるOOPって結局なんだろう?
JavaやC#等のオブジェクト指向言語を使うこと?
業務システムをドメイン駆動なんたらで作る事?
提唱者だかが考えてたメッセージングなんたら?

多分、分かりやすくて破綻しない手法を目指しているんだとは思うけど
0213デフォルトの名無しさん2016/06/15(水) 13:44:00.79ID:pWxix8Mt
>>210
設計できない雑魚は黙ってろw
0214デフォルトの名無しさん2016/06/15(水) 13:44:52.21ID:pWxix8Mt
>>211
実際の設計はできないくせにくだらない妄想を連投してる奴にうんざりだよ
0215デフォルトの名無しさん2016/06/15(水) 13:47:38.55ID:c3Bh5f0V
ここに書かれたストーリーが妄想だと言い切ってる間は、何も設計してないか出来てない証拠だけどな。
0216デフォルトの名無しさん2016/06/15(水) 14:00:20.67ID:DCrbbIQF
そもそも「オブジェクト指向の設計」が共有されてないだから議論が噛み合うわけなくね
将棋アプリを業務システム風に設計するスレなら別にいいんだけど
0217デフォルトの名無しさん2016/06/15(水) 15:09:02.08ID:pWxix8Mt
>>215
設計の経験があるなら将棋の設計もできるだろ
できないんだからおとなしくしてろ
0218デフォルトの名無しさん2016/06/15(水) 15:09:42.51ID:pWxix8Mt
>>216
>>73

注意したよ
0219デフォルトの名無しさん2016/06/15(水) 15:16:42.78ID:i4R0HEqY
駒をクラスにしても良いかもしれないなあ。
0220デフォルトの名無しさん2016/06/15(水) 15:19:04.44ID:i4R0HEqY
駒クラスを継承した>>217に「おい、>>218を倒して来い」と命令するオブジェクトを
>>211にするか。
0221デフォルトの名無しさん2016/06/15(水) 15:23:55.03ID:c3Bh5f0V
かつてのシューティングゲームの敵がまさにそんな感じだったな。
0222デフォルトの名無しさん2016/06/15(水) 15:31:53.54ID:DCrbbIQF
>>218
それ以外の例を出すべきと言ったんじゃなくて「オブジェクト指向による設計」について同意できてないんだから
設計例だしてもそれはオブジェクト指向ではない
設計ではないで無限ループになるだけという意味
0223デフォルトの名無しさん2016/06/15(水) 15:47:34.85ID:i4R0HEqY
じゃあ俺が判定してやるよ。
俺がOOだと言えばOOな。
これで争いは起こらない。
0224デフォルトの名無しさん2016/06/15(水) 15:50:04.31ID:i4R0HEqY
駒を継承したクラスは、当然駒の絵を描画できるだろね。
駒の絵は最低二つあるから、裏表も持ってるはず。
0225デフォルトの名無しさん2016/06/15(水) 15:51:57.44ID:i4R0HEqY
負けそうになったとき盤をひっくり返すメソッドがあるはず。
0226デフォルトの名無しさん2016/06/15(水) 16:02:15.42ID:2Ug/bEFj
人が盤をひっくり返す
これをどう表現するかだな

p1.crush(board)
board.crushBy(p1)

あるいは「盤をひっくり返す」をあえて用意しない事で、
ゲームとしての純度を上げるという選択肢もあるはず
0227デフォルトの名無しさん2016/06/15(水) 16:12:12.81ID:i4R0HEqY
ヲラ、設計しろとか言ってたやつ。
出てきたアイデアをキチンと図にして見やすくまとめろよ。
ヲラはよせいや。
0228デフォルトの名無しさん2016/06/15(水) 16:25:42.58ID:JxLjXALv
>駒を継承したクラスは、当然駒の絵を描画できるだろね。

これは最悪のパターンwww
0229デフォルトの名無しさん2016/06/15(水) 16:29:30.63ID:i4R0HEqY
駒の絵をセットで変えられるようにしたいのか。
0230デフォルトの名無しさん2016/06/15(水) 16:31:44.45ID:JxLjXALv
駒とは何であるか、とか無意味なこと考えだしたらドツボ
人生とは何かとか、自分とは何か、とか、自分探しするのと一緒の脳の原理で物事を考えている状態
病気
許されるのは大学生まで
0231デフォルトの名無しさん2016/06/15(水) 16:36:00.86ID:i4R0HEqY
駒は自分が動ける範囲を知っていないといけないな。
0232デフォルトの名無しさん2016/06/15(水) 16:38:04.70ID:JxLjXALv
>駒の絵をセットで変えられるようにしたいのか。

意味不明www
普通に考えて、少しでも良心のある人間は、UIやグラフィックと思考ロジックは分ける
なぜなら、それらが端的に別の機能だから
クラスがどうとか言い出す前に、まずざっくり大きく機能で分ける
別の機能だから分ける、ごく自然な発想
クラス設計はそのあと
当たり前
まずは普通の考え方ができるようになってください
0233デフォルトの名無しさん2016/06/15(水) 16:39:31.32ID:i4R0HEqY
馬鹿野郎!
思考ロジックは人間の担当だ!
0234デフォルトの名無しさん2016/06/15(水) 16:41:28.33ID:i4R0HEqY
駒を保持するストレージとして盤面も必要だな。
その他に手駒を入れとく壺が二個。
0235デフォルトの名無しさん2016/06/15(水) 16:42:01.23ID:ebZLVttd
駒はクラスにした方がいいよな。

駒の移動や変身や攻撃モーションの管理とか敵味方とか色とか、
駒のベースクラスから派生した方が綺麗に書ける。
0236デフォルトの名無しさん2016/06/15(水) 16:43:44.80ID:ebZLVttd
>>232
意味不明w

UI、表示、ロジック分けたって全部実装する必要があることには変わりない。
0237デフォルトの名無しさん2016/06/15(水) 16:44:56.93ID:i4R0HEqY
じゃあ俺が裁判所やってやるよ全ての係争は俺が判決出してやる。
0238デフォルトの名無しさん2016/06/15(水) 17:13:12.92ID:Dz16mfwa
いい感じでシニカルな方向に議論が進み始めたな
どんどんやれ
0239デフォルトの名無しさん2016/06/15(水) 18:08:48.11ID:pWxix8Mt
>>222
2スレ以上消費しても何の合意も得られないんだから具体的な例で
のぞましい設計を提示し合えばいいだろ
なんと呼ぶかで延々議論するよりよほど有益
0240デフォルトの名無しさん2016/06/15(水) 18:10:58.01ID:pWxix8Mt
>>227
現在までの進捗は
>>74
0241デフォルトの名無しさん2016/06/15(水) 18:15:05.97ID:pWxix8Mt
>>226
人をクラスとして表現する必然性は見当たらないからboard.crush()一択
0242デフォルトの名無しさん2016/06/15(水) 18:55:13.59ID:i4R0HEqY
たまに盤面を引っ掻き回しに来る猫も登場したほうが良いな。
0243デフォルトの名無しさん2016/06/15(水) 19:12:34.16ID:c3Bh5f0V
駒をリアルに配置させたいから0.1ピクセル単位で位置や回転、当然立たせたり裏返したりするのだから座標系に対して自由度はMAXでおながいしまつ
0244デフォルトの名無しさん2016/06/15(水) 19:18:49.23ID:i4R0HEqY
たしかに。
ジュネーブで驚いたことは、皆すばやく隠密行動をとること。
ある意味国民総忍者の国だと思った。
0245デフォルトの名無しさん2016/06/15(水) 19:19:57.11ID:DCrbbIQF
>>239
そらそんな議論してないし
0246デフォルトの名無しさん2016/06/15(水) 19:34:53.62ID:pWxix8Mt
>>245
言いたいことがまじで分からん
ま、漠然と意見を言い合っていても何も得るものがないのは過去170スレを見直せば分かること
0247デフォルトの名無しさん2016/06/15(水) 19:41:43.23ID:DCrbbIQF
>>246
今のまま「設計」を続けていって構わないけど途中でその設計はオブジェクト指向じゃないとかそういう話に逸れていくと思うけどいいの
俺はこのままでもいいけど
0248デフォルトの名無しさん2016/06/15(水) 19:55:33.11ID:pWxix8Mt
>>247
オブジェクト指向のあるべき設計はこうだってことで争ってるなら実際の設計で比較すればいい
オブジェクト指向なんて使えないから他の手法を使うべきだって主張するならその手法を採用した場合の設計を提示すればその良さが実感できるかもしれない
どっちにしても有意義
0249デフォルトの名無しさん2016/06/15(水) 20:08:34.40ID:JxLjXALv
そんな極論野郎の言う事なんか、ろくでもないから、何も有意義じゃない
0250デフォルトの名無しさん2016/06/15(水) 20:10:53.72ID:JxLjXALv
当たり前だが、全てをオブジェクト指向で書く必要ないし
オブジェクト指向を全否定する必要もない
前々から言っている
当たり前のこと
0251デフォルトの名無しさん2016/06/15(水) 20:13:18.84ID:pWxix8Mt
>>249
こういう批判だけのクズってほんと役に立たねえよなあ
どうせ設計できないもんだからそんなことしか書けないんだろ
お前みたいな無能をはじくのにちょうどいい
0252デフォルトの名無しさん2016/06/15(水) 20:21:14.35ID:fBdcLY2F
コーディングは製造
0253デフォルトの名無しさん2016/06/15(水) 20:29:50.06ID:JxLjXALv
オブジェクト指向のあるべき設計、と言っている時点で本末転倒
0254デフォルトの名無しさん2016/06/15(水) 20:51:28.59ID:c3Bh5f0V
将棋の絵を描いて。と言われて、みんなそれぞれが描く絵がまるでバラバラなのだから、
設計が同じになるワケが無いんだよ。
0255デフォルトの名無しさん2016/06/15(水) 21:12:37.83ID:pWxix8Mt
>>254
電王戦の要件は明記してあるぞ
業務システムの設計だってヒアリングと想像で設計するんだから変わらんよ
0256デフォルトの名無しさん2016/06/15(水) 21:23:16.74ID:+1SYtdX+
まだ将棋アプリとか言ってるんだw
ここまで来て何の発展もないってことは
誰も興味ないってことだろ?
いい加減に気付けってw
0257デフォルトの名無しさん2016/06/15(水) 21:24:14.27ID:pWxix8Mt
>>256
くそみたいに役に立たないやり取りを続けてるのは無駄だと気付けよw
0258デフォルトの名無しさん2016/06/15(水) 21:28:50.98ID:8bhbJlMw
ID:pWxix8Mtのように全く成長する見込みのない人間を
ボランティアで教育しようという奇特な人はいないから
まともに相手をされてないことにいい加減に気付けよ
0259デフォルトの名無しさん2016/06/15(水) 21:29:21.82ID:+1SYtdX+
無能のくせに煽りだけは一丁前w
0260デフォルトの名無しさん2016/06/15(水) 21:29:59.89ID:pWxix8Mt
>>258
他のやり取りが有益なら同意する意見だけど
他のやり取りがクソだから説得力ねえなあwww
お前の書き込みは特に頭悪い
0261デフォルトの名無しさん2016/06/15(水) 21:30:54.05ID:pWxix8Mt
>>259
設計できないクソが何言っても説得力ないぞ
設計できるようになってから書き込もうねw
0262デフォルトの名無しさん2016/06/15(水) 21:31:59.13ID:pWxix8Mt
バカの相手をいちいちするのは面倒なんでまとめて言っておくと
設計してない奴が偉そうに言っても何の説得力もねえw
設計できるようになってから言おうね
0263デフォルトの名無しさん2016/06/15(水) 21:35:59.51ID:+1SYtdX+
自分はバカじゃないと思ってるところがw
お気の毒に・・・
0264デフォルトの名無しさん2016/06/15(水) 21:39:36.90ID:pWxix8Mt
>>262
>>263
0265デフォルトの名無しさん2016/06/15(水) 21:40:05.26ID:pWxix8Mt
>>263
>>262
0266デフォルトの名無しさん2016/06/15(水) 21:41:40.48ID:+1SYtdX+
可愛そうに・・・
0267デフォルトの名無しさん2016/06/15(水) 21:49:23.79ID:UhHgLJc8
ID:pWxix8Mt
まずさいしょに
俺こういう設計考えた
みんなこれを批判してくれ
こういうスタイルで学習を開始できなかったのは
それを思いつかなかったのか
批判されるのが怖かったのか
たたき台にする設計すらなかったのか

そのあと
煽りと挑発だけで誰から何を貰おうとしているのか
センスの悪い学習方法だなって思うわ
0268デフォルトの名無しさん2016/06/15(水) 21:53:49.28ID:wFzMSfeg
やっぱりオブジェクト指向ってクソだな
オブジェクト指向でテスト工数が減るわけ無いだろ馬鹿
0269デフォルトの名無しさん2016/06/15(水) 22:26:22.89ID:pWxix8Mt
>>267
たたき台は何度も出してるから見直せ
0270デフォルトの名無しさん2016/06/15(水) 23:11:37.32ID:VRKipAzH
オブジェクト指向システムの設計
っていうのが良くわからんね
関数型の設計が意味わからんのと同じように言語パラダイムに依存した「設計」なんてあるの
せいぜい将棋アプリをjavaで業務風に設計してみたってだけやん あんたの業界ではそうやんですねとしか
つーか静的型付けならいきなり具象型を書くなよ
それこそ抽象データ型のオブジェクト指向に反してる
0271デフォルトの名無しさん2016/06/15(水) 23:36:06.93ID:+1SYtdX+
おまいらオブジェクト指向でなんか設計しろや
そやな将棋が手頃でええやろ
これが仕様や問題ないやろ?
わいにわかるように設計せなあかんで
ここはわいが仕切ってるんや文句たれるなや
ほなたのむで
0272デフォルトの名無しさん2016/06/15(水) 23:43:51.13ID:pWxix8Mt
>>271
ほらな
設計を見せてみって言うと何も提示できないwww
何も提示されてないから設計に対しては批判しとらんだろ
提示されてないものを批判できるわけないじゃんwwwwwwww
0273デフォルトの名無しさん2016/06/15(水) 23:54:47.82ID:+1SYtdX+
挑発すればムキになって設計する
・・とでも言うのだろうか
0274デフォルトの名無しさん2016/06/16(木) 00:15:52.01ID:u57UUEr0
そんなものより、オブジェクト指向で作られたフレームワークが
なぜそうなっているのかを考えたほうがよっぽどためになるよ。
0275デフォルトの名無しさん2016/06/16(木) 00:27:41.16ID:6djhCn1Z
将棋ぐらい誰でも実装できるしな
boardという名前の二次元配列を用意する
駒はstring型ないしは、enum型で
用意する
駒の動きは、駒をキーとしたハッシュマップで定義する
もし存在しないボード位置に駒を動かそうとした場合、トランザクションの再送を要求する

その他王手放置、自軍の駒がいるなども検出する
移動した先のボードが敵陣3マス、もしくは現在敵陣にいる場合なるかを問い合わせる
的の駒と同一のボード位置にのった場合、的の駒をてもちにくわえる

手持ちの駒は、空いているスペースのどこにでもうてるが、後ろニス住めない駒には制限がある

にふとか、王手放置とかも結局同じのりで実装できる

ボード状態を元にアップデート関数を


自称設計者はうんうんうなってればいいだろ
ボード状態と手駒と手番ぐらいしか可変状態がないんだから、これほど簡単なシステムないだろ

もし見落としがあるなら、実装した瞬間にわかるよ
それとも何か、将棋システムは変更しうるとかいってabstract classを導入するのか
0276デフォルトの名無しさん2016/06/16(木) 00:35:39.58ID:6djhCn1Z
駒の動きはKoma classにいれるべきではない
なぜならば、結局駒の動きを気にするのは、どのように駒が動かしうるかを判定するためであり、それは結局ボードクラスにたいする依存性を持つからである
駒自身の動きは可変ではなく、駒が決まれば不変である
この場合駒はステートを持たないので駒クラスは不要である
なりかふなりかもまたボード状態に記載すればすむ

これぐらい設計の基本だよね
0277デフォルトの名無しさん2016/06/16(木) 00:37:51.94ID:u57UUEr0
はさみ将棋やまわり将棋やはじき将棋や将棋倒しにも対応できるように設計しろ
0278デフォルトの名無しさん2016/06/16(木) 00:59:10.52ID:nEcPt3P8
それはモジュールをわけて対応した方がいい
本将棋と挟み将棋はそもそも駒の役割違うんじゃないの

本質的に役割がちがう機能は同じクラスにいれるべきでない

SRPを理解していたら当然の結論だよなあ

再利用性キチガイは、再利用性にこだわりすぎて、あっさりとSOLID原則を放棄する

俺はこのスレの最初にいいましたよね、ボブおじさんの本は読みましたかって
あるいは前スレであげたエリックエヴァンスのほうがなおいいが、
それを読んでなおかつ関数型の思想を理解してようやくまともな設計ができるようになるんだが

クラス図のおえかきをしているのは、何の設計でもありませんね
UMLをかじった人間は喜んでクラス図は書きたがるが、シーケンス図を書きたがる奴は少ない
これは機能を分割できない奴にありがち
君達の天職は、キャラ属性を考えるのが重要なラノベライターであってシステム設計ではありませんね?
0279デフォルトの名無しさん2016/06/16(木) 07:50:00.78ID:tGwmaN5D
まあ大事なのはモジュール分けとインターフェイス設計なわけだが。
オブジェクト指向とかそれ以前の問題。
0280デフォルトの名無しさん2016/06/16(木) 08:47:11.29ID:YejbenNI
棋譜クラスと思考クラスは別の概念だし。
盤面クラスは単なるコンテナクラスだし。
0281デフォルトの名無しさん2016/06/16(木) 09:20:40.55ID:J7Y57E8z
関数型の実装手段としてOOPが優れているんだよね
関数型がいいからOOPはダメだって言ってる人はまだまだ研鑽が足りない
0282デフォルトの名無しさん2016/06/16(木) 09:31:26.27ID:u57UUEr0
棋譜をクラスって考えるのがおかしいよw
棋譜はデータだよ。
0283デフォルトの名無しさん2016/06/16(木) 09:31:57.33ID:u57UUEr0
思考もクラスじゃないな。
思考はメソッドだ。
0284デフォルトの名無しさん2016/06/16(木) 10:57:48.76ID:Ep7N62dP
>>282
コマンドクラスとコンテナで表現すればいいじゃん。
0285デフォルトの名無しさん2016/06/16(木) 12:17:12.62ID:YejbenNI
棋譜はDBから定石なんかを参照するクラスな
0286デフォルトの名無しさん2016/06/16(木) 12:19:51.00ID:YejbenNI
>>283
メソッドまで落としちゃうと、挟み将棋と本将棋と回り将棋と将棋崩しと
色々入れ替えるの面倒じゃん?
0287デフォルトの名無しさん2016/06/16(木) 15:15:38.06ID:Zyv+xIAQ
>>273
設計できない奴が妄想をしつこく書き込むな。
それだけ。

お前から学ぶことなんてねえよ。
なに勘違いしてんだwww
0288デフォルトの名無しさん2016/06/16(木) 15:18:11.10ID:Zyv+xIAQ
>>275
それは単なる機能列挙であって設計じゃない。
関数で構築するつもりっぽいけど、主要な関数の一覧と呼び出し合う関係くらいまでは落とさないと。
0289デフォルトの名無しさん2016/06/16(木) 15:20:40.68ID:Zyv+xIAQ
>>276
>駒自身の動きは可変ではなく、駒が決まれば不変である
なら駒の情報になる。
それなのに
>駒の動きはKoma classにいれるべきではない
というのは話が繋がらないような。

結論自体の是非はさておき、理由がうまく説明できていない。
0290デフォルトの名無しさん2016/06/16(木) 15:24:10.62ID:Zyv+xIAQ
>>283
そんなことない。
アルゴリズムをクラスにするパターンあるだろ。
0291デフォルトの名無しさん2016/06/16(木) 16:37:12.43ID:ocSeYCMJ
駒クラスに移動範囲を持たせるとか言ってる奴は初期の盤面から7手読むのに駒クラスに対する移動範囲の問い合わせが何回必要かカウントしてからクラス分け考えろよ
0292デフォルトの名無しさん2016/06/16(木) 17:58:51.49ID:ofhl9o3m
棋譜はDBじゃくなくてアプリ起動時にバイナリかなんかで読み込むんじゃねーの
0293デフォルトの名無しさん2016/06/16(木) 18:06:23.20ID:cGv9O2J3
駒は状態を持たないからクラスにする必要ない、ってのはなかなか説得力があるな
まぁどのみちパフォーマンスの面から言ってもクラスにするわけがないんだが
ボードの内部表現はcharかintかenumの配列で十分

確かに駒の種類によって動きは変わるが、多態など使わずとも十分に網羅可能であり
仮想関数を呼び出すほどのことではない
ジャンプテーブルによるswitchが最速と分かっているしね

将来的に将棋のルールが変わって新しい種類の駒が追加されることを
考慮しなければならないならクラス使えば?
0294デフォルトの名無しさん2016/06/16(木) 18:08:04.00ID:cGv9O2J3
将棋アプリとして、どうあるべきかを、考えることには意味はあるが
オブジェクト指向として、どうあるべきかを、考えることには意味がない
0295デフォルトの名無しさん2016/06/16(木) 18:16:58.70ID:YejbenNI
おまいら、駒を表示する時に、クライアントさんからもっとリアルに人がさしてる将棋っぽい表示にして欲しいとか言われたらどうすんの?
0296デフォルトの名無しさん2016/06/16(木) 18:18:06.26ID:Zyv+xIAQ
>>291
クラスにしないとしても移動範囲を確認する回数は変わらんと思うが。
どうして回数に違いが出てくると思った?
0297デフォルトの名無しさん2016/06/16(木) 18:20:38.72ID:cGv9O2J3
それはUIの仕事
UI部の駒の表現をオブジェクトにするのは別によいと思うよ
パフォーマンス関係ないし
0298デフォルトの名無しさん2016/06/16(木) 18:21:44.84ID:Zyv+xIAQ
>>292
どっちでもいいように設計すべきだろう。
棋譜データをあれこれ分析するならDBのほうが便利そうだし。
0299デフォルトの名無しさん2016/06/16(木) 18:22:29.22ID:cGv9O2J3
7手先を読むのにも膨大な回数の問い合わせが発生する
仮想関数にすると、同じ回数の問い合わせであっても、一回一回が遅いという事
0300デフォルトの名無しさん2016/06/16(木) 18:24:39.75ID:Zyv+xIAQ
>>293
駒は成っているかと配置されたマスの情報を持っていると捉えることもできるぞ。
逆に盤が駒を持っていると捉えることも可能だけど、どっちの方針にすべきか?
って考えないのはだめ。
0301デフォルトの名無しさん2016/06/16(木) 18:24:59.40ID:YejbenNI
処理速度とか、問い合わせ回数とか、何言ってんだ?
思考処理は盤面配列構造体のままオンメモリーで高速に計算すんだぜ?
駒の動きから全部内包した1本の思考処理な。
ルール変わったらまるっと入れ替えだろ
0302デフォルトの名無しさん2016/06/16(木) 18:27:49.67ID:Zyv+xIAQ
>>299
きちんとした設計を作る前にパフォーマンスを考え出すのは
典型的な失敗パターンって意見に賛同する。
0303デフォルトの名無しさん2016/06/16(木) 18:30:25.99ID:YejbenNI
まあ、将棋を例に出した以上、持ち時間との戦いになるワケだがな。
0304デフォルトの名無しさん2016/06/16(木) 18:31:13.47ID:9Nh/ZMFg
やねうらおがこの流れを見て笑ってそう
0305デフォルトの名無しさん2016/06/16(木) 18:35:13.00ID:YejbenNI
だから、次の一手をひたすら思考する塊なクラスがあって、
それとは別に今の盤面をトレスする棋譜クラス、
それら記号を人間に親しみ易い形に翻訳する入出力クラスがあんだろ?
0306デフォルトの名無しさん2016/06/16(木) 18:35:57.41ID:cGv9O2J3
>>300
成っている、に関しては、別の種類の駒として扱えばよいだけ
わざわざ状態を持たせて複雑にする必要性はない

>駒は配置されたマスの情報を持っている

将棋において、こんな実装は絶対あり得ない
考えるだけ無駄
ボードが駒を持っていて配列で管理しないと、隣のマスに何があるかとかが、すぐにわからない
いちいちすべての駒を検索して、隣に何があるか検索するとか、有りえない
配列でインデックス化、これは必須
アルゴリズムとデータ構造からやり直せ

>逆に盤が駒を持っていると捉えることも可能だけど

可能とかじゃなくて、将棋の場合、お前以外は全員そうする
0307デフォルトの名無しさん2016/06/16(木) 18:41:10.52ID:YejbenNI
駒の位置とかUI側が後はいい様にリアルなりレトロなりに変換してくれりゃあいいのさ。
そこにある駒には位置情報や回転角度や色んな二次的要素を盛り込んだらいい。
0308デフォルトの名無しさん2016/06/16(木) 18:51:16.49ID:YejbenNI
過去の棋譜や定石を外部に問い合わせている間も、思考コアは別の手を思考するように設計する。
0309デフォルトの名無しさん2016/06/16(木) 19:01:28.33ID:YejbenNI
いかに沢山有効手を深く読むかは実装に委ねるとして、
思考の中断や、その時点での最善手を返すように設計する事は出来ると言か、そこが設計。
あ、思考を時間で切り上げるのも必要だね?
0310デフォルトの名無しさん2016/06/16(木) 19:03:02.98ID:Zyv+xIAQ
>>303
まともな設計もない段階からパフォーマンスを考えるのは失敗への近道って一般的に言われてるけど
0311デフォルトの名無しさん2016/06/16(木) 19:05:16.93ID:YejbenNI
>>310
持ち時間は将棋の基本ルールだけど?
0312デフォルトの名無しさん2016/06/16(木) 19:11:35.59ID:Zyv+xIAQ
>>306
>成っている、に関しては、別の種類の駒として扱えばよいだけ
そういうやり方もできるってことは分かってるって書いたろ
同じことをしつこく繰り返さないでいいよ
その理由はって聞いてる

>可能とかじゃなくて、将棋の場合、お前以外は全員そうする
合理的に理由を説明できないのは無能。
そんなにおかしい考え方ならちゃんと合理的に説明したら?

それとボードの情報も必要なことくらいはすでに分かってる
スレを読み直せば何度も出てる話

結局ある程度形になった設計にならないとそんなの知ってるって感じだなあ
0313デフォルトの名無しさん2016/06/16(木) 19:18:21.88ID:YejbenNI
まあ、設計としちゃあ、盤面の表現方法の細部はどうでもいいよ。
0314デフォルトの名無しさん2016/06/16(木) 19:38:16.55ID:Zyv+xIAQ
>>313
そんなことないだろ
少なくても詳細設計では決める
0315デフォルトの名無しさん2016/06/16(木) 19:46:56.60ID:q/qD4Mvc
駒をenumにするとして駒の種類で作るか、駒ごとに金1、金2のように作るか
例えば可能手をリストで出す場合に前者は駒の種類と現在の位置、移動先の位置を一つのレコードで表すのに対して後者は駒と移動先の位置で表せる
現在位置のマスター情報はボードが持ってるのを考えれば個人的には後者の方が扱いやすいと思う
後者ならリストではなくハッシュでも良いかもしれない
0316デフォルトの名無しさん2016/06/16(木) 19:48:46.23ID:YejbenNI
>>314
うん、だったら今まだ基本設計すら終わって無いがな。
0317デフォルトの名無しさん2016/06/16(木) 19:56:34.63ID:Zyv+xIAQ
>>316
今はそうだな

「設計としちゃあ、盤面の表現方法の細部はどうでもいいよ」がおかしいって話
0318デフォルトの名無しさん2016/06/16(木) 19:59:34.35ID:YejbenNI
思考で使う盤面は動きとか要らないんだけどね。
盤面の状態で評価値を決めるだけだから。
必要なのは次の評価盤面を設計生成する処理の中だけだから。
だから好きに作っていいよ。
0319デフォルトの名無しさん2016/06/16(木) 20:02:38.33ID:q/qD4Mvc
>>314
UIの詳細設計を指向ロジックと同じタイミングでする必要なんて無い
そもそもの要件でなんちゃらってプロトコルを使うのが前提だからUIは切り離されてるんじゃ無いの?
0320デフォルトの名無しさん2016/06/16(木) 20:37:45.01ID:4Cpcy39i
そういう意味ではルールで決まりきってる部分よりUIを固める方が先
0321デフォルトの名無しさん2016/06/16(木) 21:19:56.60ID:Zyv+xIAQ
>>318
むしろ盤面・駒に関係しない機能が見当たらないレベルだと思うが…
盤面・駒が決まってないのに構築するってどういうこと?

開発チームには設計を渡して作ってもらうって前提だろ
頭のなかにぼんやりあります、作りながら考えます、じゃ話にならん
0322デフォルトの名無しさん2016/06/16(木) 22:01:05.50ID:u57UUEr0
>>290
> アルゴリズムをクラスにするパターンあるだろ。

もしかしてアルゴリズムを入れ替え可能にする場合の話?
それはアルゴリズムをパターンにしているのではなくて
入れ替え可能なクラスにするパターンだよ。

今回アルゴリズムの入れ替えは必須条件なの?
仮にそうだとして駒や将棋盤は、入れ替え可能にする必要あるの?
0323デフォルトの名無しさん2016/06/16(木) 22:04:28.42ID:u57UUEr0
初心者は駒や将棋盤がないと将棋はできないけど、
プロは頭の中で将棋指せるよね?
目隠し将棋って言葉もあるぐらいなんだから。

ならコンピュータでも駒や将棋盤いらないんじゃね?
プロ以上にに記憶力高いんだから。
0324デフォルトの名無しさん2016/06/16(木) 22:11:47.74ID:Zyv+xIAQ
>>322
そうだぞ
http://echo.2ch.net/test/read.cgi/tech/1463663267/608
0325デフォルトの名無しさん2016/06/16(木) 22:13:28.03ID:Zyv+xIAQ
>>322
新しいロジックは登場するし
ディーブラーニングの実装とかもあり得る

ロジック勝負のソフトなんだからロジックの改良は当然想定するもの
0326デフォルトの名無しさん2016/06/16(木) 22:19:09.43ID:tGwmaN5D
まあ動的に切り替える必要性は薄いけどな。
インターフェイスとしては
「盤面、持ち駒、手番」を渡したら次の手と評価値を返すって設計で十分だろ。
0327デフォルトの名無しさん2016/06/16(木) 22:23:21.37ID:u57UUEr0
>>324
じゃあせいぜいアルゴリズムの部分だけをクラスにして
入れ替え可能にすればいいだけだよね?
その他にクラスを作る理由がない。
Javaなら絶対にクラスが必要だから作るしかない程度のレベル
0328デフォルトの名無しさん2016/06/16(木) 22:34:26.30ID:7/iCJYF0
ここまでオブジェクト指向にメリット無し(笑)
0329デフォルトの名無しさん2016/06/16(木) 22:34:50.16ID:0I01+HHK
>>323
いつからコンピュータが駒や将棋盤を使っていると錯覚していた?
0330デフォルトの名無しさん2016/06/16(木) 22:39:14.26ID:Zyv+xIAQ
>>327
そういうぼやぼや〜とした言い方だとなんとも…
もうちょい具体的にならんか
ってか設計するとき図書かないの?
0331デフォルトの名無しさん2016/06/16(木) 22:39:48.26ID:Zyv+xIAQ
>>328
オブジェクト指向じゃない設計でやってくれていいんだよ
0332デフォルトの名無しさん2016/06/16(木) 22:43:40.18ID:u57UUEr0
>>328
> ここまでオブジェクト指向にメリット無し(笑)

オブジェクト指向のメリットははやり
GUIやゲームやウェブフレームワークを使うような
大規模アプリに向いてるんじゃないかな?
0333デフォルトの名無しさん2016/06/16(木) 22:54:16.29ID:Zyv+xIAQ
>>332
オブジェクト指向のこと分かってねえなあ
提唱者の一人であるイヴァー・ヤコブソンは電話交換機を制御するソフトウェアの新版の開発でソフトウェアコンポーネントを採用することを提案した
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B4%E3%82%A1%E3%83%BC%E3%83%BB%E3%83%A4%E3%82%B3%E3%83%96%E3%82%BD%E3%83%B3

この人は日本でしか知られておらず、オブジェクト指向の思想の形成には何ら貢献していない何某とは違って
オブジェクト指向の形成に寄与した人
0334デフォルトの名無しさん2016/06/16(木) 22:55:43.90ID:Zyv+xIAQ
>>333
訂正
×日本でしか知られていない何某
○誰だか知らないけど連呼するバカがいる何某
0335デフォルトの名無しさん2016/06/16(木) 23:54:32.37ID:u57UUEr0
この人は日本でしか知られておらず

↓じゃあなんで英語版あるの?
https://en.wikipedia.org/wiki/Ivar_Jacobson
0336デフォルトの名無しさん2016/06/16(木) 23:55:20.54ID:u57UUEr0
だから電話交換機を制御するソフトウェアのような大規模アプリに向いてるんだよねw
0337デフォルトの名無しさん2016/06/16(木) 23:57:31.32ID:G5rMjmXf
限られた時間でひたすら評価関数回す将棋の様なプログラムにはオブジェクト志向は向いてないって話だろ?
電話交換システムはイベントドリブンで駆動し、ひとつひとつの処理自体は小さく、多数の要求を捌く必要がある
そりゃOOPの得意分野だろうな、将棋の思考ロジックとは真逆の性質だし

だから将棋はOOP向いてないからやめとけって言ったのにw
0338デフォルトの名無しさん2016/06/16(木) 23:58:01.86ID:7/iCJYF0
これからもオブジェクト指向にメリット無し(笑)
0339デフォルトの名無しさん2016/06/16(木) 23:58:49.59ID:aspjQAZD
>>336
まあ普通に考えて電話交換機は向いてるわな
0340デフォルトの名無しさん2016/06/16(木) 23:59:12.86ID:Zyv+xIAQ
>>335
だからこの人は有名だし、貢献してる人だって
0341デフォルトの名無しさん2016/06/17(金) 00:01:01.10ID:TaepHcLb
>>337
はいはい
>>73
0342デフォルトの名無しさん2016/06/17(金) 00:01:31.88ID:MlF9RYHU
>>340
だからOOPが向いてる所にきちんと使ったって話よな?よくわかるわw
0343デフォルトの名無しさん2016/06/17(金) 00:03:06.83ID:l49nKCjR
>>336
「GUIやゲームやウェブフレームワークを使うような」
に限定する必要はないってことで意見が一致したな
0344デフォルトの名無しさん2016/06/17(金) 00:03:50.49ID:l49nKCjR
>>342
はいはい
>>73
0345デフォルトの名無しさん2016/06/17(金) 00:12:28.10ID:yJAudjC9
>>340
だったらお前はまずOOPの前に日本語だな。
在日の日本語ではこのレベルの議論は無理だよ。

> この人は日本でしか知られておらず、オブジェクト指向の思想の形成には何ら貢献していない何某とは違って
> オブジェクト指向の形成に寄与した人
つまりイヴァー・ヤコブソンは日本でしか知られていないと言っている(表記上はそう取る方が妥当)

点の打ち方が違う。最低限以下。

この人は、日本でしか知られておらずオブジェクト指向の思想の形成には何ら貢献していない何某とは違って、
オブジェクト指向の形成に寄与した人

誤解を防ぐなら以下。

この人は、オブジェクト指向の形成に寄与した人。
日本でしか知られていなくてオブジェクト指向の思想の形成には何ら貢献していない何某とは違う。
0346デフォルトの名無しさん2016/06/17(金) 00:18:40.58ID:gkJjvuAc
> (表記上はそう取る方が妥当)

妥当じゃないんじゃね?www
0347デフォルトの名無しさん2016/06/17(金) 00:19:13.55ID:ny8DMCFm
つまり、OOPは独立性の高い処理をさせるのには向いているのだ
しかし、考えてみれば、独立性の高い処理は、どんな方法で書くにしても向いているのだ!

独立性の高くない処理を書くには工夫が必要であるが
OOPを使うと独立性の高い箇所を機械的にサポートしてくれるので
その分、独立性の高くない複雑な部分に注力できるので、幾分楽になる、かもしれない、し
逆に、設計をミスって余計にややこしくなってドツボにはまる可能性もある

しかし、考えてみればコンピュータは単純作業を人間の代わりに高速に行うのが主であるからして
簡単な部分をより簡単になるようサポートするというOOPのあり方は、ある意味正当
0348デフォルトの名無しさん2016/06/17(金) 00:22:44.94ID:l49nKCjR
>>345
いや、そりゃないだろ
山本だか何だかを連呼していた奴がいた流れを知らなかったか?
それなら説明が足りなかったな
0349デフォルトの名無しさん2016/06/17(金) 00:35:48.93ID:MlF9RYHU
>>346
とりあえず日本語係り受け解析にかけてみた

この人は→知られておらず、
日本でしか→知られておらず、
オブジェクト指向の→思想の
思想の→形成には
形成には→貢献していない
貢献していない→何某とは
何某とは→違って
オブジェクト指向の→形成に
形成に→寄与した
寄与した→人

うん、>>333にはイヴァー・ヤコブソンが日本でしか知られていないと書いてあるなw
0350デフォルトの名無しさん2016/06/17(金) 00:46:15.76ID:E0Eh0gCl
在日がばれたというスレはここですか?
0351デフォルトの名無しさん2016/06/17(金) 00:53:43.42ID:yJAudjC9
ID:u57UUEr0 = ID:gkJjvuAc = JavaScriptのスレをさんざん荒らしてきたゴミだろ
http://echo.2ch.net/test/read.cgi/tech/1463914293/
だいたい ID:u57UUEr0 自身も>>335でそう取っているのに>>346でジョブチェンジしてんじゃねーよ糞が

色々と自演臭いんだよこのスレ。実は前から思っていた。
今も奇妙な止まり方してるだろ。
0352デフォルトの名無しさん2016/06/17(金) 00:54:49.25ID:l49nKCjR
>>349
お前の理解だとイヴァー・ヤコブソンが日本でしか知られていないんだろ
そしたら文章の流れが明らかにおかしいじゃん

�@イヴァー・ヤコブソンは日本でしか知られていない
�Aオブジェクト指向の思想の形成には何ら貢献していない何某とは違う
�Bイヴァー・ヤコブソンはオブジェクト指向の形成に寄与している

点の打ち場所がややおかしいことは認めるけど、誤字脱字が普通の2ちゃんでそこまで求めるなよ
文章のロジックがまったく通らない理解がおかしいと思わなかった?
ロジックが弱いと設計も苦手だよなw

オブジェクト指向とはまったく関係ない話になってるからあとはスルーするわ
0353デフォルトの名無しさん2016/06/17(金) 00:55:29.51ID:jYlDfS4o
>>348
もう一回小学生からやりなおせ
0354デフォルトの名無しさん2016/06/17(金) 00:59:30.41ID:oUaRcFkA
どうでも良い
もっと頭良い人の話が聞きたい
0355デフォルトの名無しさん2016/06/17(金) 01:11:48.38ID:IhaprLci
都合が悪くなるとスレチになるね

あと大規模トラフィックも関数型優位だから

なんのためにゴールドマンがerlangやって、何のためにtwitterがscala採用して、FBがなぜreactみたいなフレームワーク作ったと思ってるのや
0356デフォルトの名無しさん2016/06/17(金) 01:17:56.19ID:MlF9RYHU
>>352
自分の間違いに気づいたなら大人しく黙ってればスルーしてやるのに見苦しく自己弁護するから突っ込まれるんだよw
失敗したならジタバタしないでID変わるまでROMるか、待てないならID変えて出直して来いよ

なお>>349に貼ったのは和布蕪と南瓜を使って文法的解析をした結果であって俺の意見は入ってないぞw

俺は人間だから初見で違和感を感じても脳内補正して意図を正しく汲み取ることは出来たし日本語変だなぁとは思ってもスルーしてたんだがね
>>346とか>>348があまりに見苦しかったから間違いを明確にしてやったに過ぎない

こんな場末でいちいち自演ガー在日ガーと騒ぎ立てるのも賢い奴のすることじゃないと思うがねw
0357デフォルトの名無しさん2016/06/17(金) 08:21:29.21ID:A5AfEkjW
言語能力がないとオブジェクト指向にすがる
自然言語ですらシンタックスエラーはいてるのにプログラムかけるわけねえだろ
0358デフォルトの名無しさん2016/06/17(金) 08:38:37.00ID:n4KcCzCp
ヤコブソンとかt_wada以下だろwww
0359デフォルトの名無しさん2016/06/17(金) 08:55:06.90ID:Yteqqpsz
だからさ、オブジェクト指向は概念なんだよ。
実装はどうでもいいんだ。奴らに騙されるな。
言ってみれば道徳であり価値観であり、バイブルなんだ。
0360デフォルトの名無しさん2016/06/17(金) 11:23:05.77ID:l49nKCjR
>>358
これはひどいwww
0361デフォルトの名無しさん2016/06/17(金) 14:04:23.31ID:ny8DMCFm
オブジェクト指向は概念でもなんでも定義はどうでもよいから好きに言えばよいけど
設計するにあたっては、実際の実装面のことも考えなければ、僕の考えた最強の〜になるだけだろ
というか、実装が楽になるようにするために、オブジェクト指向などの技術を使う筈なのに
実装の現実問題を考えずに、オブジェクト指向ありきで考えても意味がないだろ
オブジェクト指向としてどうあるべきか、とか全く意味がない空論
例えば将棋ソフトであれば、オブジェクト指向としてどうあるべきか、より
将棋ソフトとしてどうあるべきか、を考えなければならない
0362デフォルトの名無しさん2016/06/17(金) 14:42:12.21ID:ny8DMCFm
言っとくが、実装面を楽にする、には、デバッグとかテストとか仕様変更への対応、も含まれているぞ
人間様のする作業を少しでも楽にするためにオブジェクト指向という技もあるよ、というだけ
楽にならなきゃ意味がない
加えてパフォーマンスが必要な部分に関しては、それも考えなければならない場合もある
オブジェクト指向の厳密な定義とか、オブジェクト指向本位の考え方とか、オブジェクト指向のあるべき姿とか
どうでもよいよね
0363デフォルトの名無しさん2016/06/17(金) 14:49:52.92ID:ny8DMCFm
だから「オブジェクト指向は概念」といったところで、な〜んにも始まらない
0364デフォルトの名無しさん2016/06/17(金) 18:34:03.18ID:l49nKCjR
>>363
完全に同意
設計を出そうぜ
0365デフォルトの名無しさん2016/06/17(金) 18:35:46.52ID:PuKdxxvH
突き詰めるとほとんど全てのシステムが関数型になる
それを実装するためにOOPが強力なツールになる
0366デフォルトの名無しさん2016/06/17(金) 18:45:00.21ID:Yteqqpsz
NEXT コンピュータとか、SmallTalk とか、持ち出すぞw
0367デフォルトの名無しさん2016/06/17(金) 19:36:14.31ID:kH8PlC/a
次のスレタイは「将棋ソフトの設計」に変えとけよ
0368デフォルトの名無しさん2016/06/17(金) 19:38:02.93ID:l49nKCjR
>>367
はいはい
>>73
0369デフォルトの名無しさん2016/06/17(金) 19:40:17.28ID:uLuFYYs1
リー茄子がオブジェクト指向はクソって言ってた!
0370デフォルトの名無しさん2016/06/17(金) 19:43:57.64ID:l49nKCjR
>>369
はいはい
>>248
0371デフォルトの名無しさん2016/06/17(金) 19:51:52.99ID:2ilgHKU9
いちいち出しゃばるならコテ付けてくれ
0372デフォルトの名無しさん2016/06/17(金) 19:55:15.56ID:l49nKCjR
>>371
お前が付ければスルーするぞ
0373デフォルトの名無しさん2016/06/17(金) 20:03:29.70ID:Yteqqpsz
オブジェクト指向では、NEXTコンピュータ上のSmalltalkでしか作れません。
今のwimdowsマシンでやってるのは、ナンチャッテオブジェクト指向です。
0374デフォルトの名無しさん2016/06/17(金) 20:10:14.13ID:aKMh1mqm
でもSmalltalkって実際に開発する言語としてはウンコじゃん
プログラマも開発よりネットで布教するのが好きそうなヤツばかり
03753712016/06/17(金) 21:49:14.75ID:iQqhQQY/
ID:l49nKCjRはアホを垂れ流さないで欲しい
0376デフォルトの名無しさん2016/06/17(金) 21:51:19.13ID:l49nKCjR
>>375
はいはい
>>213
0377デフォルトの名無しさん2016/06/17(金) 22:05:56.54ID:uLuFYYs1
永遠にオブジェクト指向のメリット無し(笑)
0378デフォルトの名無しさん2016/06/17(金) 22:31:42.76ID:kH8PlC/a
頭の悪い仕切り屋がいるとこうなる('ω')
0379デフォルトの名無しさん2016/06/17(金) 22:39:23.19ID:/fdmUUqz
>>374
詳しそうなので教えて欲しいんだけど
信者がエモいのは常なので脇においとくとして
具体的にはSmallTalkって言語自体はどこらへんがウンコなの?
0380デフォルトの名無しさん2016/06/17(金) 23:04:13.59ID:5DYjDCcf
>>379
互換性がない処理系が乱立しまくっているところ(デファクトと言えるものすらない)

ごく稀な例外を除き、OSの標準的なUIに従わない(微妙に古臭い)独自開発環境を強制されるところ

使い慣れたVCS(git等)ではなく、独自のVCSを強制されるケースがよくあるところ
0381デフォルトの名無しさん2016/06/17(金) 23:56:49.49ID:7Qo27Unn
オブジェクト指向って結局インターフェース設計者の頭が全て互換性とか、再利用性とかに影響するんだよな

あのフレームワークAは設計がくそ
→俺もフレームワークB作る
→大抵は内部実装の違いに起因するディテールの違いを表現するために、その違いがインターフェースまで表出する
わかりやすくいえば、どこまでライブラリユーザーに設定変数を公開するかですらAとBはけんかせざるをえない

そこで、フレームワーク作成者同士が話し合いをして、モジュール分割をして少しでも共通化をはかり、コンセンサスをとればいいが、彼らはオレオレ設計を過信するあまり人の話を聞かない

かくして、ライブラリユーザーは楽をするためにフレームワークを導入するはずが、
多大な学習コストをかけて、複雑な継承階層を読み解き、カプセル化の海に沈めこまれた微妙な内部実装の違いを探しだし、疲弊していくのである

彼らのフレームワークの選定基準は、流行っているか否かであるが、彼らはフレームワークが廃れたときにどうするのだろうか

彼らはフレームワークが廃るたびに苦渋の決断を迫られるのである
0382デフォルトの名無しさん2016/06/17(金) 23:58:56.41ID:gkJjvuAc
苦渋の選択ってフレームワークを変えるだけじゃね?
0383デフォルトの名無しさん2016/06/18(土) 01:20:35.86ID:IiwwzCA4
>>380
それは確かにウンコだわ
ウンコかっくらいながら幸せそうにエモってるSmalltalk信者こわい
https://www.wantedly.com/companies/allstocker/employee_interviews/13525
0384デフォルトの名無しさん2016/06/18(土) 08:27:56.03ID:8GpUPXrh
歴史的・学術的な意義とケント・ベックやGoFなどOOコミュニティに影響力のある人々を輩出した貢献はあるけど
今smalltalkをプログラミング言語として使う意味はないだろw
0385デフォルトの名無しさん2016/06/18(土) 09:24:03.96ID:vY4buwjp
言語としてはともかく、コンピューティング環境としては希有だし面白いと思うよ。
全部(PharoとかSqueakに至ってはVMまで含めて)Smalltalkで書かれている中二病的なところとか。
0386デフォルトの名無しさん2016/06/18(土) 10:48:12.02ID:JSMS1v74
ウンコをこねて作った食器でウンコを食らい
ウンコでできた机と椅子でウンコを学び
ウンコでできたベッドで寝起きする
ウンコの巨塔に引きこもるウンコまみれのSmalltalker
0387デフォルトの名無しさん2016/06/18(土) 11:41:17.95ID:smX42iBz
>>381

>>そこで、フレームワーク作成者同士が話し合いをして、モジュール分割をして少しでも共通化をはかり、コンセンサスをとればいいが、彼らはオレオレ設計を過信するあまり人の話を聞かない

屋根屋を重ねるようなJavaのフレームワーク(現在はどうか知らないが)だと、覚えることが多いし、フレームワーク間の整合性をとるのも面倒だから、オールイン・ワンのフレームワーク=オレオレ設計のほうが使いやすい気がする。

>>かくして、ライブラリユーザーは楽をするためにフレームワークを導入するはずが、・・・疲弊していくのである

それでも、開発コスト削減>>学習コスト増、フレームワークの信頼性>>独自開発の信頼性、となってメリットが十分に大きい可能性もある。
フレームワークを採用しない昔ながらの開発手法を続けるとプログラマが疲弊することも多いと思う。

>>彼らのフレームワークの選定基準は、流行っているか否かであるが、彼らはフレームワークが廃れたときにどうするのだろうか

ま、フレームワークに限らず、ハードウエアもOSも何年かごとにアップグレードの要求が迫られるし、Windows10なんて強制アップグレードまでされ、困っている人が世界中で続出している。
VB6プログラマは、.NET・C#への対応を迫られるし、iOSのObjective-CプログラマはSwiftへの対応を迫られる。
どの世界にいても、学習を継続しないと、時代に対応できないってことだと思う。

#CでEntityFrameworkだけを使っていても、バージョンアップがちょくちょくあるから、古い日本語サイトの情報・サンプルプログラムだけを頼りにしていると、迷いの森にはまり込んでしまう。
海外QAサイトのstackoverflowなどを読む必要があったりする。


>>彼らはフレームワークが廃るたびに苦渋の決断を迫られるのである

フレームワークへの対応、新技術への対応をやらないでいると、「MS率いる黒船軍団が“DevOps鎖国”日本に開国を迫った日」の記事にあったのがリアルになる予感がする。
0388デフォルトの名無しさん2016/06/18(土) 13:36:35.80ID:en0l8YJd
―――ここまでオブジェクト指向ゴミ―――
0389デフォルトの名無しさん2016/06/18(土) 14:05:18.23ID:euI6F3wt
フレームワークが変わったらヤバイ〜なんて設計が貧弱過ぎるだけだろ
フレームワークへの依存性を最小化しつつメリットを享受出来るのがOOPの良いところだ
他のパラダイムじゃこうはいかない
0390デフォルトの名無しさん2016/06/18(土) 14:37:27.57ID:Rz2nddOn
歴史的にプロセス中心指向→データ中心指向→オブジェクト指向ときたわけだけど
それぞれの特徴と違いを理解して、開発対象に対して最適な手法を採用する
という判断力が必要だよね
組み込み系の世界ではオブジェクト指向のオーバーヘッドを嫌って
未だにCでガシガシ書いてるしね
オブジェクト指向のメリットとして再利用性が高いと言われてるけど
再利用性を高めようとすると汎用性を持たせる必要があるわけで
この設計は相当のスキルがいるんだよね
0391デフォルトの名無しさん2016/06/18(土) 14:44:48.28ID:qpxG5nAO
そういや2000年ぐらいに、オブジェクト指向の次みたいに言われていたやつあったよなぁ。
アスペクト指向でもコンポーネント指向でもない。

当時、誰だったか(教授?)から聞いたとき、それオブジェクトと指向の応用やん。
オブジェクト指向にメタデータつけただけやんって思ったやつ。

見事にポシャったようだけど、あれなんて名前だっけなぁ。
0392デフォルトの名無しさん2016/06/18(土) 14:46:22.63ID:Rz2nddOn
>>391
エージェント指向のこと?
ありましたねそんなのがw
0393デフォルトの名無しさん2016/06/18(土) 14:48:10.14ID:qpxG5nAO
あー、思い出した。
エージェント指向だwww

http://el.jibun.atmarkit.co.jp/garyotensei/2012/06/post-d155.html
0394デフォルトの名無しさん2016/06/18(土) 14:51:42.34ID:qpxG5nAO
>>392
その通り。よくこれだけの内容でわかったねw
0395デフォルトの名無しさん2016/06/18(土) 16:55:28.92ID:z0PKWcGF
再利用性なんて嘘を今でも信じてる人がいるんだね。
0396デフォルトの名無しさん2016/06/18(土) 16:59:09.44ID:qpxG5nAO
今時再利用せずに作るほうが難しいんだがw
ライブラリもフレームワークも使わないのか?
もしかして言語から作ってるのか?
0397デフォルトの名無しさん2016/06/18(土) 17:11:20.87ID:en0l8YJd
はぁ?
dobon.netのコピペ以外の仕事したことねーぞ!
0398デフォルトの名無しさん2016/06/18(土) 17:24:41.37ID:qpxG5nAO
オブジェクト指向ゴミと言ってる人 = dobon.netのコピペ以外の仕事したことない


388 名前:デフォルトの名無しさん[sage] 投稿日:2016/06/18(土) 13:36:35.80 ID:en0l8YJd [1/2]
―――ここまでオブジェクト指向ゴミ―――

397 名前:デフォルトの名無しさん[sage] 投稿日:2016/06/18(土) 17:11:20.87 ID:en0l8YJd [2/2]
はぁ?
dobon.netのコピペ以外の仕事したことねーぞ!
0399デフォルトの名無しさん2016/06/18(土) 17:39:17.10ID:Rz2nddOn
オブジェクト指向を真から理解してる人って少ないんだよね
コピペコーディングに気持ち悪さを感じない人は向いてないんだろうね
うちのチームにコピペの方が早いし生産性も高いなんて言ってる人がいるけど
保守性?なにそれって感じだしねw
0400デフォルトの名無しさん2016/06/18(土) 17:45:42.47ID:qpxG5nAO
訂正

オブジェクト指向を真から理解してる人って(うちのチームには)少ないんだよね
0401デフォルトの名無しさん2016/06/18(土) 17:46:24.41ID:smX42iBz
>>399

ちょっと誤解していたので、話の流れがつかめなかった・・・。

コピペって、フレームワークを使っているソースをコピペして、ちょいちょい修正して「完成!」っていう意味じゃあなかったんだね。

フレームワークを使わないソースのコピペってことね。そりゃあ保守性は悪くなる。
0402デフォルトの名無しさん2016/06/18(土) 17:54:34.96ID:en0l8YJd
>>398
再利用率で俺を越えられるのかよ
お前等のオブジェクト指向でよw
0403デフォルトの名無しさん2016/06/18(土) 18:01:49.66ID:Rz2nddOn
コピペでもテンプレートとして持ってきて
重複はないか、プロジェクトの命名規則に合っているか
意味不明のコメントは入っていないとか確認しているなら問題ないんだけどね
コードレビューしてると明らかにコピペだろっていうのがあるね
もちろん却下するけど疲れるんだよねw
0404デフォルトの名無しさん2016/06/18(土) 18:02:55.77ID:OT8jgjaB
>>402
お前の他人との再利用率?
0405デフォルトの名無しさん2016/06/18(土) 18:12:27.75ID:qpxG5nAO
>>402
> 再利用率で俺を越えられるのかよ

超えられると思う。
自分で書くコードが少なければ少ないほど
他人が書いたコードを再利用しているってことだし。

俺の書くコードって本当に少ないよw
もちろん少ないコードで目的を実現してるってことだけど。
0406デフォルトの名無しさん2016/06/18(土) 18:32:14.52ID:en0l8YJd
>>405
私の再利用率は100%です
さらにコピペ元を後2つ(StackOverflow、yahoo知恵袋)残している
0407デフォルトの名無しさん2016/06/18(土) 18:43:50.58ID:It8FmILL
くだらない書き込みばかりだなあ
0408デフォルトの名無しさん2016/06/18(土) 19:01:00.27ID:en0l8YJd
>>407
だってそもそもオブジェクト指向ってゴミだし
0409デフォルトの名無しさん2016/06/18(土) 20:35:19.66ID:smX42iBz
確かに、オブジェクト指向の目的が何かを忘れて、将棋アプリに熱中したりとか、オブジェクト指向のルールという手段に従うことが最重要、つまりは「手段」が「目的」になっているような書き込みを「ゴミ」っていうのは納得できるな。
0410デフォルトの名無しさん2016/06/18(土) 20:58:25.50ID:en0l8YJd
そもそもオブジェクト指向で何を達成したいのか?
効果もわからないような手法を崇めてる奴は技術者以前に人としてゴミ
0411デフォルトの名無しさん2016/06/18(土) 21:10:44.46ID:Rz2nddOn
再利用率ってなんだすの?
ビックリポンや(´・ω・`)
0412デフォルトの名無しさん2016/06/18(土) 21:48:15.48ID:614pho+S
オブジェクト指向=再利用としか考えてないならオブジェクト指向を理解していない事は明らかだよなぁ
0413デフォルトの名無しさん2016/06/18(土) 22:31:42.64ID:Rz2nddOn
何が目的かなんて開発手法の歴史を見れば嫌でもわかるよね
再利用は手段であって目的ではないよ(´・ω・`)
0414デフォルトの名無しさん2016/06/18(土) 22:35:03.23ID:af3ry9Dc
オブジェクト志向の良し悪しになんでそんなに熱くなってんだ?
オブジェクト化したほうが便利そうなところはオブジェクト化して不便そうならしなけりゃいいだろ
0415デフォルトの名無しさん2016/06/18(土) 22:44:50.85ID:Rz2nddOn
利便性だけで物事決められるなら苦労してまへんがな(´・ω・`)
0416デフォルトの名無しさん2016/06/18(土) 22:46:01.34ID:3yK0Yke9
他のパラダイムならそこまで設計の基準が人によってぶれることはないんだが
ぶれまくった設計思想からなるくそみたいな再利用性
0417デフォルトの名無しさん2016/06/18(土) 22:53:41.45ID:Rz2nddOn
「バカとハサミは使いよう」いいましてな
0418デフォルトの名無しさん2016/06/18(土) 23:01:59.76ID:z0PKWcGF
使う側がまともならな。
0419デフォルトの名無しさん2016/06/18(土) 23:14:03.28ID:Rz2nddOn
「バカとハサミは使いよう」は使う側の力量や能力を言ったことばやで
0420デフォルトの名無しさん2016/06/18(土) 23:30:14.08ID:en0l8YJd
>>413
全然わからない
文章で表現してみてくれ
0421デフォルトの名無しさん2016/06/18(土) 23:47:05.93ID:qpxG5nAO
>>413
> 再利用は手段であって目的ではないよ(´・ω・`)

再利用っていうのはコストを下げるためにするんだよ。
コストを下げるのが目的じゃないことなんて
まずないんだが。
0422デフォルトの名無しさん2016/06/19(日) 00:51:08.41ID:8JnAsfBy
言葉遊びはどうでもいいけど
オブジェクト指向は品質も上げなければコストも減らせない
0423デフォルトの名無しさん2016/06/19(日) 00:58:37.28ID:gwIfHFNO
>>422
それってさ

自動車は遠くまでいけない(運転できないから)

って言ってるのと同じような意味でしょw
0424デフォルトの名無しさん2016/06/19(日) 01:12:46.39ID:XpUIM/8a
細かなオブジェクト単位でカプセル化する事でバラしやすく組み立てやすくなる事が重要なんであって
再利用性なんてそのメリットのごく一部に過ぎない

部品が壊れていたら取り替えればいい
機能の一部を変えたければ部品を変えればいい
機能を増やしたければ部品を追加すればいい
過去に作った出来合いの部品は使いまわせる

そのためにオブジェクトという単位で責任範囲を分けて考えましょうってのが考え方の根底にあるべきなんだが
実際の現場にはOOPL使ってるのにOOPしない奴が多くて部品同士ががっちり噛み合ってて外せないとか
酷いのになると部品全てが絡み合っててバラす事が全く出来ないなんて事すらあるから困る

OOPLはOOPがしやすいように設計された言語だがOOPは手法でありOOは概念なのでOOPLでなければOOP出来ないなんて事は当然ない
0425デフォルトの名無しさん2016/06/19(日) 01:14:06.91ID:gwIfHFNO
部品を取り替えるということは、その部品以外を
再利用しているという事なわけでw
0426デフォルトの名無しさん2016/06/19(日) 01:27:54.23ID:XpUIM/8a
ならOOPでなくても修正したら修正箇所以外は再利用した事になるという事になるな、馬鹿な考えだ
0427デフォルトの名無しさん2016/06/19(日) 01:31:35.37ID:GzcXh8P5
その修正箇所をカプセル化するのが目的なわけだが
Parnasの論文でも読んでみたら?
0428デフォルトの名無しさん2016/06/19(日) 01:48:19.73ID:XpUIM/8a
>>427
いやだからな、カプセル化されてる事で修正が楽なのがメリットであってそのメリットは再利用じゃないだろと
0429デフォルトの名無しさん2016/06/19(日) 01:52:14.10ID:T66+XKyv
オブジェクト指向のメリットして再利用性ってのは
ビジネス向けの宣伝が多いよね
昔の酷い本だと再利用として継承を使うみたいのがあって酷かった
0430デフォルトの名無しさん2016/06/19(日) 02:05:36.98ID:zdAFjwp0
やっぱオブジェクト指向VSアンチオブジェクト指向って図式じゃないとダメなのねw
0431デフォルトの名無しさん2016/06/19(日) 03:15:13.28ID:9goOoVtk
CPUがあって、やりたい目的があって
その目標を円滑に出来る方法論のひとつが
オブジェクト指向方法論
その他も有る
始まりはCPU
終わりは、目的コード
その課程の困難なこと

始まりのころの常識は現在ではほとんどが非常識
このオブジェクト指向方法論もいつまでも常識でないことを
念頭においてね


もとCPU方法論で行かなくては
0432デフォルトの名無しさん2016/06/19(日) 07:02:28.93ID:xWUER/kU
>>429

そうなんだよね。「継承で再利用性アップ!」として、C++で開発を始めた某パッケージプロジェクト。
私も開発に参加したけど、予算を○億くらい使い、なんとかベータ版完成。
でも、営業やインストラクターから多数の変更要望が発生した。
ソフトは、スーパークラスのスーパークラスのスーパークラスのスーパークラスの仕様を追いかけて理解&修正する必要があった。
だから「要望への対応は無理」ってことで、そのパッケージは没・・・。
(現在は、前バージョンの発展版が発売中)

>>430

だから、私は一時期、アンチになった。
でも、それは「継承利用にはメリットとデメリットがある」みたいなトレードオフを考慮すればいいだけ。
その対立構図は不毛だと思う。

>>431

なので、始まりの常識が非常識になったとまでは思わない。
0433デフォルトの名無しさん2016/06/19(日) 08:19:13.87ID:QHhML3+q
>スーパークラスのスーパークラスのスーパークラスのスーパークラスの仕様を追いかけて理解&修正する必要があった。

あぁこれはもう駄目の典型だね
ちょっとした仕様を変更するために
スーパークラスのスーパークラスのスーパークラスのスーパークラスの仕様を変更する必要があって
仕様を変更したら、目的じゃないところにまで影響がでて・・・

これじゃ、コピペ技法のがマシ
だから俺は多態目的以外で継承は使わない
少々面倒でもコピペにしておいた方が、後で融通が利く
コードを纏めるにしても、関数(メソッド)でよい
ある部分の仕様が変わったときは、元の関数はそのままに〜〜Exとか新しい関数を作って
変更があった部分からは、そっちを呼び出すようにすればよい
継承&再利用だとがんじがらめになるから、こういうことがなかなか難しい
0434デフォルトの名無しさん2016/06/19(日) 08:56:26.27ID:xWUER/kU
>>433

>>仕様を変更したら、目的じゃないところにまで影響がでて・・・

そう。だから、開発中他に影響でないように修正取り込むのが大変だった・・・。

>>ある部分の仕様が変わったときは、元の関数はそのままに〜〜Exとか新しい関数を作って
変更があった部分からは、そっちを呼び出すようにすればよい

C#の拡張メソッドが、まさしくその考え方だよね。
でも、この手法は、ジェネリック、ラムダ式、型推論、動的な型など、オブジェクト指向とはあまり関係ない、さまざまな機能拡張の末に実現されたのだと思う。
それで実現されたC#の再利用に対するパワーは物凄い。
だから、そういう素晴らしいものは、「オブジェクト指向はクソ!!」と大きく宣伝して、世間一般や多くのプログラマに知らせず、入り口で頓挫させ、競争優位を保つことが大切かもしれない。
0435デフォルトの名無しさん2016/06/19(日) 09:04:28.56ID:I//I4PRq
状態まで勝手に作ってくれるからクラスで作ったものは使いにくい
大抵の場合、開発者の脳みそにしかないオブジェクトの状態遷移や生存期間は
仕様書には書かれない
0436デフォルトの名無しさん2016/06/19(日) 09:15:50.13ID:zdAFjwp0
凝集度と結合度を考えていない設計だとそうなるよね
GRASP出てきたのっていつ頃だっけかな
0437デフォルトの名無しさん2016/06/19(日) 09:28:48.59ID:bljjS0X+
関数型で書かれた部品の方が安心して入れ替えできるよ
0438デフォルトの名無しさん2016/06/19(日) 10:06:28.67ID:GzcXh8P5
そしてすべてがstaticメソッドになった
0439デフォルトの名無しさん2016/06/19(日) 11:00:01.05ID:iV6NLMrL
オブジェクト指向を使いこなせないバカが必死に批判を繰り返してるのは見苦しい
いい加減自分の能力がないだけだと気付けよw
0440デフォルトの名無しさん2016/06/19(日) 11:06:07.90ID:trK3d++L
だからさ、マイ糞ソフト謹製のナンチャッテオブジェクト指向環境で
実装レベルのグダグダに対してオブジェクト指向は糞と言い切るのは仕方無いよな。
だってあれ、オブジェクト指向じゃ無いからね。
0441デフォルトの名無しさん2016/06/19(日) 11:07:56.30ID:gwIfHFNO
↑いい加減自分の能力がないだけだと気付けよw
0442デフォルトの名無しさん2016/06/19(日) 11:17:03.31ID:gfPWR5Hk
無能ほどOOPに難癖つけたがるよね
private変数は自由にアクセス出来ないから拡張や修正が難しいなんて馬鹿みたいな事を言い始める
ハサミを渡されてハンマーの代わりに使うような人が文句を言うんだ
0443デフォルトの名無しさん2016/06/19(日) 11:36:52.76ID:rrlXrvYV
実際関数のほうが粒度が細かいので凝集性を高められるからな

クラスというのは元々多機能なもので、構造体とそれに適応するメソッドが複合した、SRPに反したビルディングブロックなわけで、そんなビルディングブロックで再利用性とSOLIDとDRYとYAGNIを同時に行おうとしたところで、無理だということがわかっていないんだよ

ある人間はDRYを重視してクラス構成した結果、再利用性が低いモジュールを提供し、ある人間は再利用性を重視してYAGNIを捨てた結果、可読性及び実行時パフォーマンスを無視したモジュール編成をする

どういう設計思想に基づいたかをドキュメントに明示的に表現できる設計者はいないし、いたとしたらオブジェクト指向捨ててるから
0444デフォルトの名無しさん2016/06/19(日) 11:40:58.79ID:78J0Zuks
保守性ということに関しても、
結局コード量=保守管理すべき対象の量なので、再利用性のための過剰な抽象化の結果、管理しがたいものになる

あるクラスのスーパークラスのスーパークラスが何であるかなんかしりたくもないが、例えばWPFとかひでえ継承階層持ってるよな

大会社でもこんな設計するわけだからついてけねえよな
0445デフォルトの名無しさん2016/06/19(日) 11:44:41.92ID:gwIfHFNO
>>443
> 実際関数のほうが粒度が細かいので凝集性を高められるからな
粒度(笑)、凝集性(笑)

実際にコードで示してみ。
どこがどうなってるから凝集性が高いって。
どうせ言えないだろうなwww
0446デフォルトの名無しさん2016/06/19(日) 11:47:40.17ID:zdAFjwp0
おわかりいただけただろうか・・・
0447デフォルトの名無しさん2016/06/19(日) 12:11:46.19ID:T66+XKyv
>>442
拡張はともかく修正はprivateで容易になる事はあるが困難になる場面なんて想像もつかん
0448デフォルトの名無しさん2016/06/19(日) 12:26:30.69ID:XpUIM/8a
対立図式を作りたがる荒らし>>443-444など
言葉尻だけを拾いたがる煽り>>445など
それをしたり顔で指摘する馬鹿>>446など

どれも共通の無能というスーパークラスを持ってるのはわかる
わかるがここはそういう場所だからまあ気にしないな
0449デフォルトの名無しさん2016/06/19(日) 12:28:57.91ID:zdAFjwp0
>>448
ブーメラン乙
0450デフォルトの名無しさん2016/06/19(日) 12:35:46.26ID:gfPWR5Hk
匿名はやっぱダメだな
昔は匿名でも真面目なヤツ有能なヤツが居たから成り立ってた
今は無能で不真面目しかいない
匿名をやめればとりあえず不真面目は消えるだろう
0451デフォルトの名無しさん2016/06/19(日) 13:03:38.13ID:iUGmpCP5
>>450
SNSはほとんどそうだね
0452デフォルトの名無しさん2016/06/19(日) 13:20:09.89ID:T66+XKyv
真面目にやりたいんならtwitterとかqittaでやれ
0453デフォルトの名無しさん2016/06/19(日) 13:33:45.74ID:ao4WLgfX
>>450
SN比が低いのは仕方が無い,でも本音がこぼれる場面はこちらの方が多いはず,あとは受け取る側の感受性の問題
0454デフォルトの名無しさん2016/06/19(日) 13:54:05.86ID:J/2rkjpj
>>450
自覚症状のない馬鹿は仕方ないとして、自演するゴミがいるからな
ワッチョイすれば多少はマシになるんじゃね?
0455デフォルトの名無しさん2016/06/19(日) 18:00:51.69ID:iV6NLMrL
>>452
twitter厨ならtwitterに帰れよ
0456デフォルトの名無しさん2016/06/19(日) 18:36:00.55ID:M20F+kXy
qiitaはよく参考にするけど、twitterとかここより
レベル低いだろ
140字で設計の何を議論できるんだ
馴れ合いツールに高度な議論をもとめるほうが可笑しいよな
0457デフォルトの名無しさん2016/06/19(日) 18:50:28.34ID:Z3K3Aq0Z
>>456
結構有名なプログラマが名前出してて発言してるから情報は有用だよ
議論には向かないけど
0458デフォルトの名無しさん2016/06/19(日) 18:53:18.58ID:AHbgvYcJ
まあ一般に後悔されているライブラリならともかく、
社内で馬鹿が作ったコードには糞みたいなインターフェイスしかなくて
しかたなく public にして直すってことはあるな。
ほとんど利用者のことを考えてない馬鹿が作ったコードっては大抵そうなる。

少しはテストコード書くなりして使い勝手を考えてる人ならこうはならん。
そのクラスの使い方にポリシーがないんなら格好つけてないで struct にでもすりゃいいのにと思う。
0459デフォルトの名無しさん2016/06/19(日) 18:53:44.53ID:Z3K3Aq0Z
後 海外の情報もカバーできる
0460デフォルトの名無しさん2016/06/19(日) 22:10:43.41ID:Zw19o9rc
.


■ 2ch認定 スピリチュアル詐欺一覧

 小泉義仁 知井道通
http://karma.2ch.net/test/read.cgi/spiritual/1441832249/
 不道徳連発!冨田佳音のキチガイ スピ活動
http://karma.2ch.net/test/read.cgi/spiritual/1464971384/
 【詐欺師】 スピ 梶岡あん子 【キチガイ】
http://karma.2ch.net/test/read.cgi/spiritual/1466206702/
 【詐欺師】 スピ ミカタカミ 【キチガイ】
http://karma.2ch.net/test/read.cgi/spiritual/1466207813/ 
 詐欺師 岩崎士郎 嘘八百
http://karma.2ch.net/test/read.cgi/spiritual/1451143434/
 ユニフォース・センター 金子浩一
http://karma.2ch.net/test/read.cgi/spiritual/1452973952/


.
0461デフォルトの名無しさん2016/06/21(火) 01:00:06.25ID:0Gy1My9X
今日も有用なやり取りは一切なかったね
順調順調
0462デフォルトの名無しさん2016/06/21(火) 01:09:21.78ID:qYztFKJR
>>461
意味不明なことを言っててきもいぞ
0463デフォルトの名無しさん2016/06/21(火) 20:10:22.01ID:7+lcUPZz
オブジェクト指向に対する批評を期待してきたんだが、設計全般に関して話してる奴ばっか
0464デフォルトの名無しさん2016/06/21(火) 20:17:05.10ID:qYztFKJR
>>463
スレタイ嫁よ
0465デフォルトの名無しさん2016/06/21(火) 22:54:12.55ID:y4ISmUkb
オブジェクト指向をやればやるほど不幸になる
0466デフォルトの名無しさん2016/06/22(水) 00:02:41.33ID:1owlsp3d
物事の考え方がおかしくなるのかしらね
思考回路が破壊されるのかもしれない
オブジェクトは自分のことしか考えないアスペみたいなもので
互いにコミュニケートさせるのに非常に苦労するよ〜
0467デフォルトの名無しさん2016/06/22(水) 00:30:18.13ID:1owlsp3d
ただね、このスレが伸びていないという事は、本当に喜ばしいこと
2chは日本中からアクセスがあって
ソフト屋は何となく2chネラーも多いと思うんだけど
そんななか、こういったスレが全然伸びないのはいたって健全なこと
オブジェクト指向なぞ、まじめに考える必要ないって、みんなが分かっている証拠だからね
上手く活用できればそれで良いんですよ
これについて深く考えるのは自分探しをするようなものですから
0468デフォルトの名無しさん2016/06/22(水) 01:18:41.97ID:ZVSLNdYX
>>466
お前の実力不足
0469デフォルトの名無しさん2016/06/22(水) 06:45:28.36ID:WQ7OjmOs
だれかが、オブジェクト指向って、思想とか概念って書いていた。
いわば、OOPって、憲法みたいなものかもしれない。でも、我々の日常生活においては、法律・政令・条例などのほうが割と重要だったりする。
(まあ、憲法九条のように、日本国憲法の前文に違反するような、違憲な条文も存在するので、同一視はできないが・・・)

法律や条令などは、構造化プログラミング、プロセス指向設計、データ指向設計などが該当するのかもしれない。

以下のURLが参考になる。
https://sites.google.com/site/shunichisnote/translations/data-oriented-design
データ指向設計 (または何故OOPで自爆してしまうのか)

たぶん、日常的にプログラミングしている方は、憲法から条文まで見渡して考えるから、憲法だけ取り出して議論しない。
そうじゃあない方は、かじった部分、机上の空論で無駄なけなし合いを続ける。

OOPが必要ないってこともなく、プロセス指向、データ指向が時代遅れってことでもない。
法律家が憲法から条例まで知っておくことが必要なのと同じく、どれもプログラミングの実務において必須科目であって、大切ってことだと思う。
0470デフォルトの名無しさん2016/06/22(水) 07:10:57.58ID:KiW8PFIs
うんうん
でもまったく根拠がないよね?
0471デフォルトの名無しさん2016/06/22(水) 09:52:59.18ID:J+q7eBY0
俺が言った事を間違ったまま煽りに使われるのは不愉快なので一応訂正しておく

OO=オブジェクト志向=概念
OOP=オブジェクト志向プログラミング=手法
OOPL=オブジェクト志向言語=言語

すべて別のものだ、混同するな
なお憲法や法律とOOPは全く関係ない
0472デフォルトの名無しさん2016/06/22(水) 09:55:25.38ID:sAE2foKf
オブジェクト指向は宗教、まで読んだ。
0473デフォルトの名無しさん2016/06/22(水) 10:31:40.12ID:ZVSLNdYX
経験がないバカって何かに喩えたがる
プロは分かりやすい実例を出す
0474デフォルトの名無しさん2016/06/22(水) 11:04:06.41ID:DmPvlaR4
>>467
勢い一位なんだよなあ
0475デフォルトの名無しさん2016/06/22(水) 11:08:34.46ID:1owlsp3d
上手く活用することだけを考えていればよいのです
原理主義のような凝り固まった考えをする必要はないです
何事も深く原理を学んで利用することは悪いことではないと思うけど
OOの背後に壮大な数学の理論があるというわけでもないので
こういった掲示板で誰もが唸る、統一的な答えは出ません、科学的に考えるだけ無駄です

言うなれば、ただの整理整頓術ですよ
どういった整理の仕方が作業効率アップにつながるかはケースバイケースです
案件をよく観察して、常に最適で現実的な判断をしましょう
0476デフォルトの名無しさん2016/06/22(水) 11:22:35.60ID:J+q7eBY0
>>474
そりゃ時には1人で1日40レス超えを叩き出す様な奴が張り付いてたから仕方ない
0477デフォルトの名無しさん2016/06/22(水) 12:08:58.60ID:7uThdI9/
じゃー俺はstring指向システム作るわ
シリアライズファイル? テキスト出力でええやろ
0478デフォルトの名無しさん2016/06/22(水) 17:44:40.75ID:ZVSLNdYX
>>476
オブジェクト指向を理解できないくせに粘着してるお前のこと?
0479デフォルトの名無しさん2016/06/22(水) 18:14:47.83ID:6IfmwJDo
ここまでオブジェクト指向ゴミ
0480デフォルトの名無しさん2016/06/22(水) 21:33:53.96ID:MQ+N3vLV
結局アンチオブジェクト指向のほうがまともな将棋の設計できそうだしな

オブジェクト指向チームは僕が考えた最強のクラス図を書いてから一歩もシーケンス図とか書いてないし
0481デフォルトの名無しさん2016/06/22(水) 21:39:37.91ID:ZVSLNdYX
>>480
アンチオブジェクト指向はしょーもない疑似コードしか出てねえだろwwwwwwwwww
0482デフォルトの名無しさん2016/06/22(水) 22:26:10.82ID:Z2xvvdgM
クラス図書いてれば動くの?
お前らこのスレで散々オブジェクト同士のメッセージパッシングが大事だって言ってるじゃん

クラス図かいてクラス用意してもそいつら命令しないとめっせーじぱっしんぐしないコミュ障なんだけど
0483デフォルトの名無しさん2016/06/22(水) 22:29:05.83ID:Z2xvvdgM
ここはオブジェクト指向のためのスレなんだから、山のようにこのスレに在籍しているオブジェクト指向派は、さっさとシーケンス図出せよ

それがオブジェクト指向の設計であって、オブジェクト指向を例える大喜利大会なんざ誰も期待していない

オブジェクト指向を崇拝しているならRoleにしたがえよ
0484デフォルトの名無しさん2016/06/22(水) 23:58:33.26ID:d3JiMU4f
>>475
俺が知りたいのは原理主義の馬鹿をどう排除すればいいかってことなんだが。
0485デフォルトの名無しさん2016/06/23(木) 00:32:08.21ID:q3ndqaXN
ーーこれからもオブジェクト指向はゴミーー
0486デフォルトの名無しさん2016/06/23(木) 00:56:28.80ID:W4u3AiNW
の中に埋もれている一粒のダイヤ
0487デフォルトの名無しさん2016/06/23(木) 07:09:37.54ID:q3ndqaXN
割れた
0488デフォルトの名無しさん2016/06/23(木) 12:06:34.77ID:lELEc838
>>482
お前趣味でプログラムやってる厨房だろw
設計しないプロジェクトねえからwww
そんな根本的なこともしらないで書き込むなよ
10行のコード書いて設計完了って言ったのお前だろwwwwwww
0489デフォルトの名無しさん2016/06/23(木) 12:09:55.49ID:lELEc838
>>483
シーケンス図作ってもまともな議論ができる奴がいないからやる気にならない
このスレにいる奴らってレベル低いよなあ
設計のことも、オブジェクト指向のことも分かってない奴らばかり
まともなシステムを設計した経験がある奴がいなさおう

自分では自分のことがそんなにレベルが高いとは思ってなかったけど
お前らのやり取り見てたら自分はすげえレベルが高いんだと気が付いた
0490デフォルトの名無しさん2016/06/23(木) 12:13:33.45ID:jpePQA5L
シーケンス図かけない奴がなにをいってもね
0491デフォルトの名無しさん2016/06/23(木) 12:24:50.46ID:NySSu7d+
どいつもこいつもバカばっか
0492デフォルトの名無しさん2016/06/23(木) 13:05:07.11ID:lELEc838
>>490
お前何も出していないだろwwwww
実際に何かを提示してから言え
0493デフォルトの名無しさん2016/06/23(木) 13:58:32.28ID:32PUATmE
オブジェクト指向な設計にしてから、担当決めが楽になった。
0494デフォルトの名無しさん2016/06/23(木) 14:07:17.50ID:1rhmo8jO
>>489
オブジェクト志向を理解出来ずに暴れてる馬鹿と理解してるつもりで無駄な分割をする間違ったオブジェクト志向原理主義者が無駄に喧嘩してて呆れるってのはわかる
だがそれを見て俺レベル高いとか言ってるのは前述した二者と同じレベルで愚かだと思うんだ
0495デフォルトの名無しさん2016/06/23(木) 14:44:05.82ID:y7ScZ017
ーーここまでオブジェクト指向は汚物ーー
0496デフォルトの名無しさん2016/06/23(木) 18:42:59.59ID:lELEc838
>>494
お前ほんとまともなロジックの文章が書けないほどバカだよなwwww

だがそれを見て俺レベル高いとか言ってるのは前述した二者と同じレベルで「愚かだと思う」んだ
他人を愚かだと思う奴は愚かだといってる本人が「愚かだと思う」って言っちゃうってwwwww
笑わせてもらったwwwwwwwwwwwww
0497デフォルトの名無しさん2016/06/23(木) 18:48:46.26ID:g5j6ahxJ
ま、シーケンス図がかけるかどうかってのがすべてなんでね
0498デフォルトの名無しさん2016/06/23(木) 18:59:12.33ID:lELEc838
>>497
クラス図が書けりゃシーケンス図だって書けるだろ
難易度は変わらんから

シーケンス図書くのに苦労しちゃうほどセンスないんだろうな、お前
0499デフォルトの名無しさん2016/06/23(木) 19:35:11.92ID:6SrVsK3m
発狂してるのはいつもの人?
0500デフォルトの名無しさん2016/06/23(木) 19:35:32.76ID:U8UFrmXE
実際このスレでクラス図やクラス構成は議論されても、シーケンスが議論されることがない時点でお察し

シーケンス図をかくと、自分がいかに無駄なクラス構成してるのか一目瞭然になって、二度とオブジェクト指向使わないでおこうって、少しでも知性があればなるよ
0501デフォルトの名無しさん2016/06/23(木) 19:43:20.86ID:lELEc838
>>500
クラスがなきゃシーケンス図は書けないんだから当たり前じゃん
ほんとに君はバカだなあ
0502デフォルトの名無しさん2016/06/23(木) 21:11:43.26ID:MkLCQgSi
ところが前スレでもう将棋ソフトのクラス図は出てるんだよ

あれを設計だとオブジェクト指向派は言ってたんだぜ

ごたくはいらんからさっさと駒クラスを活用してシーケンスかいてみろ

俺は駒クラスは不要だと思ってるんでね
0503デフォルトの名無しさん2016/06/23(木) 21:12:38.26ID:lELEc838
>>502
クラス図なんて出てねえぞwwww
またバカ晒してるw
0504デフォルトの名無しさん2016/06/23(木) 21:27:37.94ID:lELEc838
クラス図も知らない>>502みたいな奴とじゃ会話にならないよなあ
シーケンス図を書くのが面倒なのはこういうバカの相手をする価値がないから
0505デフォルトの名無しさん2016/06/23(木) 22:09:36.78ID:53SjK6zR
今日も有用なやり取り一切なし
順調順調
0506デフォルトの名無しさん2016/06/23(木) 22:14:09.51ID:FsHU6vOc
いつまでたってもバカ同士の煽りあいばかりw
0507デフォルトの名無しさん2016/06/23(木) 23:40:40.23ID:/w1wUEkv
将棋にこだわってる一部の人間はオブジェクト指向云々以前の問題だからね
0508デフォルトの名無しさん2016/06/23(木) 23:43:08.48ID:W4u3AiNW
>>500
> シーケンス図をかくと、自分がいかに無駄なクラス構成してるのか一目瞭然になって、

無駄なクラス構成してるのか一目瞭然になるという
シーケンス図を見てみたいんだがw

いや、シーケンス図の役割を考えると
そんなシーケンス図って作ろうと思っても作れないだろ?
0509デフォルトの名無しさん2016/06/23(木) 23:45:40.22ID:bIbDEqRH
ここまで、僕が考えた最強のクラス構成以外なし
0510デフォルトの名無しさん2016/06/23(木) 23:59:15.63ID:lELEc838
>>507
例題はなんでもいいんやで
何度も言われてるのにしつこいなあコイツ
なめくじ以下の記憶力wwwww
0511デフォルトの名無しさん2016/06/24(金) 00:00:13.28ID:3JCNaefq
>>509
クラス図を知らないシーケンスおじさん乙www
0512デフォルトの名無しさん2016/06/24(金) 00:06:02.53ID:SwddNomm
シーケンス図でオブジェクト指向フレームワークを表すと

ユーザー ブラウザ ウェブアプリケーション ルーター コントローラー モデル


みたいな流れになるんだろうな。
0513デフォルトの名無しさん2016/06/24(金) 00:07:26.05ID:3JCNaefq
>>512
ご冗談を
0514デフォルトの名無しさん2016/06/24(金) 00:08:15.60ID:SwddNomm
シーケンス図の上にある四角がクラスで、
先の上にある処理がメソッドになるのだろうな
0515デフォルトの名無しさん2016/06/24(金) 00:08:57.68ID:SwddNomm
ぐぐってから書けばよかったw

http://www.itsenka.com/contents/development/uml/sequence.html

> この機能は、「店員オブジェクト」、「管理画面オブジェクト」、「倉庫オブジェクト」、「商品オブジェクト」から構成されている。
やっぱり上の四角がクラス出会ってるっぽい。
0516デフォルトの名無しさん2016/06/24(金) 00:32:00.04ID:YGLTOLOh
>>515
これは完全にastahの手先が書いてるな
普通はエクセルで描くだろw
0517デフォルトの名無しさん2016/06/24(金) 00:33:04.58ID:SwddNomm
それはいま重要なことか?
0518デフォルトの名無しさん2016/06/24(金) 05:32:07.56ID:Q5q/dDTS
将棋野郎がいつまでもここで騒ぐ目的は、「オブジェクト指向は意味あるか?役に立つか?」をお題というか例題で他人に証明さえること。
しかし、オブジェクト指向を実務で使っている人たちは、うまく使えば役にたつってすでに理解し実感している。お題に答えて証明する必要はない。
無免許運転で事故った人、車の免許を取ることもできない運動神経&頭の悪い人たちレベルがいつまでもここで「証明しろ!」と騒ぎ続ける。


2chには「C# vs Javaどっちが好きか」なんて板がある。どっちが良いか?って意見がいろいろ書かれていた。
C#の本を多数出されている川俣晶氏は、「著者は、ここでJava論をする気などない。その論は10年以上前に終わっているのだ。」
とC#の書籍に書かれていたが、それと同じこと。

そろそろバカの相手はやめようね。
0519デフォルトの名無しさん2016/06/24(金) 08:55:39.27ID:3JCNaefq
>>518
お前がさっさと消えればいいだろwwww
バカなコードを書いて設計と言ったことをバカにされたことをいまだに恨んで粘着してるのかな?
0520デフォルトの名無しさん2016/06/24(金) 09:01:35.16ID:yQaWh/ys
>>516
エクセルでUMLって、方眼シーンだよねw
0521デフォルトの名無しさん2016/06/24(金) 09:22:58.57ID:WkjZuPpR
>>518
じゃあこのスレ削除依頼だしてこいよ
便利だとわかっていて、設計の議論はもう終わってるんならこのスレいらんだろ
0522デフォルトの名無しさん2016/06/24(金) 09:38:16.42ID:oxHgXhyR
動物園的な需要があるからこのままでいい
隔離施設としてはあまり機能してないのがちょっと残念だが
0523デフォルトの名無しさん2016/06/24(金) 10:30:32.44ID:3JCNaefq
普通Excelでは書かないよな
オブジェクト指向についていけない時代遅れのじいさんが喚いてるのはみっともない
0524デフォルトの名無しさん2016/06/25(土) 08:23:41.07ID:LMzPPgZI
オブジェクト指向がクソだからイギリスがEU離脱だよ
0525デフォルトの名無しさん2016/06/25(土) 08:37:57.45ID:QJOI9Akg
オブジェクト指向の基本は分割して統治せよだから正しい
0526デフォルトの名無しさん2016/06/25(土) 16:37:17.58ID:xk5V4JUl
共通フォーマットからの離脱はガラパゴス化を加速させるだけだがな。
0527デフォルトの名無しさん2016/06/25(土) 16:53:09.33ID:qqU1JBUQ
オブジェクト指向はこれだけ広まってるのに
いまだにけなそうとするのはガラパゴスだなあ
0528デフォルトの名無しさん2016/06/25(土) 20:49:37.13ID:TP9NVC7q
>>525
いや法律も通貨も人もみんなで共有しようがEUだから
0529デフォルトの名無しさん2016/06/25(土) 21:26:34.35ID:4D3VGib9
生理がこないんですけど、どうしたらいいですか?
0530デフォルトの名無しさん2016/06/25(土) 22:00:15.64ID:OT6LtrEX
>>529
俺も生まれてこの方、一度も来てないから安心しろw
0531デフォルトの名無しさん2016/06/25(土) 22:37:01.20ID:DZzmiqO/
>>527
別にけなしちゃいないがどんなモジュールも無理矢理オブジェクト指向でつくるのは
あほだと言ってるだけだよ。
0532デフォルトの名無しさん2016/06/26(日) 01:12:16.60ID:Lsnw3Tmt
>>531
すべてをオブジェクト指向で作れなんて誰も言ってない
妄想で語る妄想老人
0533デフォルトの名無しさん2016/06/26(日) 04:42:35.10ID:MOs+lhSh
だよなw

将棋の話でも思考ロジックはオブジェクトする必要はないが
フレームワークの部分はオブジェクト指向が良いって意見が大半だったし。
0534デフォルトの名無しさん2016/06/26(日) 05:44:58.53ID:kypXkChy
すごい
少し言葉足らずで、攻撃
狂ってる
少しは言葉の行間を読め
0535デフォルトの名無しさん2016/06/26(日) 07:45:26.67ID:JtTxC37i
オブジェクト指向とは
オブジェクト系スキルを使用して戦う戦闘スタイルである

必:オブジェクトパンチ
必:オブジェクトキック
超:お前はオブジェクト指向をわかっていない
0536デフォルトの名無しさん2016/06/26(日) 10:13:36.19ID:kWWJ4NB8
いや言ってる馬鹿がいるじゃん。
駒もすべてクラスにするべきとか言ってる馬鹿が。
こういう馬鹿を実際の現場でどう黙らせるかが重要な訳だよ。
0537デフォルトの名無しさん2016/06/26(日) 10:25:02.11ID:ygmpo/L2
お尻に入れた100円ライターが出てきません
どうしたらいいですか?
0538デフォルトの名無しさん2016/06/26(日) 10:28:37.14ID:YPMfAgP/
どれどれ。おじさんに見せてごらん…
0539デフォルトの名無しさん2016/06/26(日) 13:23:45.95ID:Lsnw3Tmt
>>536
駒もクラスにするという考えはあり得るだろ
その是非を議論すればいいだけ

将棋ソフトはオブジェクト指向を適用できるのは証明されてるのに認められない時代遅れじじぃ
自分が理解できないものはだめという発送はさすが老害
「実際の現場で説得できない」ことがお前の無能を証明しているw
このスレでもオブジェクト指向以外でやるべきだと思うなら別の手法で設計した場合の
優位性を合理的に説明しろって何度も言われてるじゃん
説明できない無能は現場じゃ相手にされんわwwwwwwww
0540デフォルトの名無しさん2016/06/26(日) 13:31:49.59ID:MOs+lhSh
>>539
> 駒もクラスにするという考えはあり得るだろ
それを言ったら数値もクラスにするという考え方もあるし
関数もクラスにするという考え方もある。
真のオブジェクト指向はすべてがクラスだ。

だから何?って話。それは言語仕様によってすべてが
クラスになるってだけで、別にクラスにしたくてしてしているわけじゃない。
今はすべてがクラスではない言語で、あえてクラスにするかなぁ?って
話をしている。駒をクラスにする必要はない。
0541デフォルトの名無しさん2016/06/26(日) 13:39:17.07ID:Lsnw3Tmt
>>540
だから何?
0542デフォルトの名無しさん2016/06/26(日) 13:40:36.27ID:Lsnw3Tmt
>>540
だったら正しいと思う設計を提示しろよ
しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
って言っても誰からも相手にされないぞ
0543デフォルトの名無しさん2016/06/26(日) 14:43:05.06ID:Pdgj+EY0
今まさに反論しようとしているのは、ID:Lsnw3Tmtなわけで
自分で、説明できなきゃ無能、と発言したのだから
ID:Lsnw3Tmt 自身が説明する必要がある

>説得できない」ことがお前の無能を証明している
>優位性を合理的に説明しろって何度も言われてる
>説明できない無能は現場じゃ相手にされん
>だったら正しいと思う設計を提示しろよ
>しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
>って言っても誰からも相手にされないぞ

これ全部お前の発言だろ
さぁ説明しろ
0544デフォルトの名無しさん2016/06/26(日) 14:48:39.82ID:Pdgj+EY0
さぁ早く

>駒もクラスにするという考えはあり得るだろ

の説明をするんだ

しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
って言っても誰からも相手にされないぞ
説明できない無能は現場じゃ相手にされんぞ
↑
全部お前の言ったことだぞ
説明しろ
0545デフォルトの名無しさん2016/06/26(日) 15:56:07.32ID:vfFMY3S3
こまをクラスにするのはUI層でやってくれればいいよ。
思考には盤の配置と種類、手持ちの種類と数だけ分かればいいから。
0546デフォルトの名無しさん2016/06/26(日) 16:05:19.97ID:Lsnw3Tmt
>>544
何言ってんだ?
しょぼい10行くらいコードよりはるかにましなUML図は既に提示されてる

「オブジェクト指向じゃない設計のほうがいい」ってお前は主張したいんだろ?
だったらあんなしょっぽいコードじゃ誰も納得せんから少しはましなものを出せよ
0547デフォルトの名無しさん2016/06/26(日) 16:24:08.84ID:v33GKkt2
そんな素晴らしいUMLどこにあったっけ
だからいってんだろ
クラス図はUMLの一部分でしかないって

シーケンス図を書かないからくそみたいなクラス図かいて喜んでるんだって

まともなクラス図があるなら、データ設計は終わったということだ
そこから振るまいの設計を引き継いでみればいいじゃないか

おれは駒をクラスにした場合どんな悲惨なことになるのか見てみたいんだよ
0548デフォルトの名無しさん2016/06/26(日) 16:25:14.85ID:v33GKkt2
おれは馬鹿なんで、駒をクラスにするなんてことは理解できないんだよ

是非駒クラスを活用した設計をしてみたらいいよ
0549デフォルトの名無しさん2016/06/26(日) 16:38:16.06ID:vfFMY3S3
駒が空を飛んで敵駒を撃つんだよ。
当然敵駒も応戦して来るから逃げないとな。
0550デフォルトの名無しさん2016/06/26(日) 17:15:45.85ID:Lsnw3Tmt
>>547
このじじぃまだ言ってんのか?
クラス図じゃないのにクラス図と思い込む技術レベルの低さをどうにかしたほうがいい
スキルがなさ過ぎて会話が成立しない
0551デフォルトの名無しさん2016/06/26(日) 17:29:16.14ID:aZz3l9QB
きょうびjavaおじさんのほうがよほど老害なんだよなあ

出来損ないパラダイムのキャッチコピーを真に受けて、自分の頭を使っていない分staticおじさんよりたちがわるいんだよねえ
0552デフォルトの名無しさん2016/06/26(日) 17:58:09.31ID:ygmpo/L2
将棋の駒3つ(飛車、桂馬、歩兵)をアソコに入れたら取れなくなりました
どうしたらいいですか?
0553デフォルトの名無しさん2016/06/26(日) 18:09:05.29ID:hBvFQk6r
病院行け
0554デフォルトの名無しさん2016/06/26(日) 18:14:44.57ID:Pdgj+EY0
いいからはやくID:Lsnw3Tmtは

>駒もクラスにするという考えはあり得る

の説明しろよ
自分では何も説明できないのに、他人に説明を求めて
説明ができなきゃ無能だと言う(>>539、>>542)
そして自分は説明しない、出来ない

お前が言い出したことだろ
説明しろ
説明できない無能は現場じゃ相手にされんのだろ?
説得できなきゃ無能が証明されるんだろ?
これはお前が言ったことであるが
今まさにお前自身の置かれている状態そのまんまじゃねーか
まず、説明しろ
0555デフォルトの名無しさん2016/06/26(日) 18:23:52.48ID:Pdgj+EY0
ま、自分が他人に難癖付けるために取り出した武器が
実は自分の方に向いていていることに気が付かず自爆するバカの言う事は
きっとくだらないことで誰も興味なんかないだろうが

他人に対して
説明できなきゃ無能と煽ったわけだから
そのケツぐらいは持て

お前の言いだしたことだ
説明しろ
0556デフォルトの名無しさん2016/06/26(日) 18:27:55.46ID:ygmpo/L2
おまいら仲良いな
実に微笑ましい
0557デフォルトの名無しさん2016/06/26(日) 18:31:16.19ID:JtTxC37i
オブジェクトキック!
0558デフォルトの名無しさん2016/06/26(日) 18:44:42.79ID:iZxmKzSi
>>546
あのクラス図は酷かったな
設計がどーのって以前にクラス図を書いた事ないの丸出しのお粗末さ
今だってUML図とか謎用語使ってる時点でお察しなんだよ
0559デフォルトの名無しさん2016/06/26(日) 19:01:07.06ID:LiHdCwxS
クラス図なんてあったっけ?
ER図じゃなかったか?
0560デフォルトの名無しさん2016/06/26(日) 19:02:35.92ID:/rpwjXlS
>>551
とりあえずこの無能に名前付けようぜ。

・Javaおじさん
・オブジェクトおじさん
・オブジェクト原理主義者
・クラスおじさん

どれが一番しっくり来る?或いは他にいいのがあれば。
とりあえずstaticおじさんはオブジェクト指向無しでプログラミングするのに困っていない。
こいつは多分プログラミング自体が出来ない。
継承構造は、

無能 - 意識高い系 - Javaおじさん
有能 - 頑固 - staticおじさん

といったところか。
0561デフォルトの名無しさん2016/06/26(日) 19:42:07.06ID:L3t3Zo3A
>>560
なるほどー抽象的な方から継承されてくわけですなー
これは勉強になるぅ
0562デフォルトの名無しさん2016/06/26(日) 22:02:51.82ID:MOs+lhSh
>>560
お前は命名おじさん?w
0563デフォルトの名無しさん2016/06/26(日) 22:52:47.22ID:Lsnw3Tmt
>>558
クラス図じゃないものをクラス図と思い込むレベルの低さよwwwwwww
お前みたいなアホ相手じゃ会話が成立しない
0564デフォルトの名無しさん2016/06/26(日) 22:54:16.95ID:Lsnw3Tmt
>>560
具体的な設計の会話ができないお前は
ゴミコード設計おじさんだなw
0565デフォルトの名無しさん2016/06/26(日) 23:56:21.85ID:ygmpo/L2
今日もバカ同士の煽りあいで終わったな
これからもその調子で続けたまえ
0566デフォルトの名無しさん2016/06/27(月) 00:58:28.09ID:/n2KczvR
オブジェクトパンチ!
0567デフォルトの名無しさん2016/06/27(月) 01:01:40.22ID:9nb1CdH6
どうだ!これが物理(オブジェクト)の力だ!
0568デフォルトの名無しさん2016/06/27(月) 01:06:51.58ID:SsmcC8+N
オブジェクト竜巻!
0569デフォルトの名無しさん2016/06/27(月) 02:31:23.22ID:7ndkIo24
ER図書いて「俺はオブジェクト指向設計をUMLで書いたぞ。お前らもoo語るならモノ出してからにしろブォケが〜」って流れなの?酉付いてないから前スレから読むのしんどいけど
0570デフォルトの名無しさん2016/06/27(月) 02:35:20.09ID:CMj+/Mbz
>>569
何の図を書いたかはちゃんと書いてあるから読めよ
クラス図もしらないぼけに求めるのは無理か…
0571デフォルトの名無しさん2016/06/27(月) 06:16:31.75ID:7ndkIo24
ER図なんだろ?
ER図ってooと関係ないけど誰も突っ込まないの?
0572デフォルトの名無しさん2016/06/27(月) 08:48:32.90ID:6t3Bunmc
どうでもいいのでスルー
0573デフォルトの名無しさん2016/06/27(月) 18:08:46.08ID:lkgwfH7C
簡単なプログラムなんだけどさ、職場の全員が例外は発生箇所で処理して投げるなって言うんだ
下位で発生した例外はスローする作りにして呼び出し元に返すようにしてるんだがダメらしい
難しい作りにしちゃってるから発生箇所でログ出してって言われて書くメソッドでログの出力処理してるんだけどスローってそんな難しい処理なの?
0574デフォルトの名無しさん2016/06/27(月) 18:34:07.79ID:PLD/Jisx
>>573
職場の人たちにとって難しい処理ってことでは?
0575デフォルトの名無しさん2016/06/27(月) 18:39:34.49ID:6t3Bunmc
c++界でよく言う例外安全な作りになってないってことじゃなかろうか
0576デフォルトの名無しさん2016/06/27(月) 18:48:25.03ID:lAF5rqjA
>>574
共通メソッドで発生した例外を上位に投げて、メインメソッドなり何なりでスタックトレースログ出力するだけだぞ?
出力メッセージ途中でに設定したりするけど
0577デフォルトの名無しさん2016/06/27(月) 20:03:08.84ID:PLD/Jisx
>>576
それだけのことが職場の人たちには難しいんだろ
理由を聞いて見たら?
0578デフォルトの名無しさん2016/06/27(月) 20:17:40.39ID:lAF5rqjA
>>577
聞いてみたけど
うん、ややこしいかな〜
みたいな
それでいて各メソッドでexception分けてキャッチして何が起きたかメッセージ分けろとかいう
共通メソッドとかも正直いらないらしい
聞いてる感じコピペコード直書きの方がいいっぽい
0579デフォルトの名無しさん2016/06/27(月) 21:42:40.58ID:Zk7rn9e6
検査例外の嫌われぶりは知ってるよね?
0580デフォルトの名無しさん2016/06/27(月) 23:54:44.16ID:96cQU1P1
張り切りマンがメンテ不能な独自フレームワーク作りこんで逃げちゃったから
うっかり例外投げると動作がおかしくなる
…とか?
0581デフォルトの名無しさん2016/06/28(火) 00:04:35.39ID:ZF3eApv6
個々の処理でどうするべきか決めるべきだよね
って言う意見ならそうかも
例外起きると処理が途中で終わっちゃって切り上げちゃうけど
そらぶっちゃけ不味いだろってもん作ってるところならそうじゃないかな?
とも思う
0582デフォルトの名無しさん2016/06/28(火) 00:09:02.93ID:P6ezUFsS
>コピペ直書き
まじでそういう現場なら転職したほうがいいのでは
>検査例外の嫌われぶり
検査例外するくらいならeigherモナドとか使っちゃったほうがいいからね
0583デフォルトの名無しさん2016/06/28(火) 00:10:18.93ID:+D0+qut0
本職PG4年目なんだけど
オブジェクト指向って失敗だったとしか思えない

プロパティって要するにグローバル変数じゃん?
publicなんて付けられた日にはおいしいスパゲッティの出来上がりじゃん?

特に俺々フルスクラッチFWもどきで作り込まれたOOPとか
本当に悲惨
0584デフォルトの名無しさん2016/06/28(火) 00:16:38.79ID:P6ezUFsS
>>583
そのまま関数型に入信したまえ 
>プロパティって要するにグローバル変数じゃん?
staticはグローバルだが
インスタンスをスコープに閉じ込めればプロパティはグローバルではないと思うけど

つーかオブジェクト指向でも基本的にはimmutableなオブジェクト使えば大分メンテしやすくなるぞ 
オブジェクト指向というよりもmutableなのが悪いんだろ
0585デフォルトの名無しさん2016/06/28(火) 00:24:56.35ID:lakqUeju
値変換したりメソッドに引き渡す前にチェック処理入れてるし、キャッチするのは本当に予定外のものか想定にないものしか入ってこない作りにしてるよ
整数型とか浮動小数型とかはtryparseしてるし
それ以外でチェック例外で吐かれるような奴はキャッチ内で戻り値設定したりして上位には影響ないようにしてる
これだとダメかな?
こういうのがややこしいのかな?
そういう細かいところのチェック処理も嫌がられてるからチェック例外とかは意識してないんじゃないかと思う?よ?
あとほんとに電卓作るレベルのプログラムだからフレームワークとか使ってないしそもそもメインメソッドまで返したら処理終わっちゃうから戻さないでって意見ではなかった
0586デフォルトの名無しさん2016/06/28(火) 00:29:03.66ID:Jibk8xVq
クラス図もしらないじじぃがオブジェクト指向を批判していた笑えるw
0587デフォルトの名無しさん2016/06/28(火) 00:32:42.55ID:iVpTS2xE
カスみたいな俺様クラス作られるよりかは関数をいい感じで切り分けてくれてた方が
よっぽどマシってのはある。
0588デフォルトの名無しさん2016/06/28(火) 00:46:34.36ID:+D0+qut0
>>584
ゴッド商品画面オブジェクトの持つpublicゴッド商品オブジェクト
あらゆるメソッドからタコ殴りにされて
画面に叩き出される頃には原型を止めていない
さらにそいつは次の画面に蹴り込まれる
staticじゃなくても十分地獄やん?

やっぱ関数型に進まないといけないのかな
世界の全てがfinalだったらよかったのにね

>>587
なんつーか、class = ただの名前空間 にしか見えんのよね
クレイジーな状態変数持たない分、function集合体の方がずっとマシかもしれん
0589デフォルトの名無しさん2016/06/28(火) 00:58:42.12ID:Jibk8xVq
>>587
クラス図を知らないくせに語られてもw
0590デフォルトの名無しさん2016/06/28(火) 01:01:45.47ID:fU4RHG84
クラスが名前空間にしか思えないってのは、シングルトンのクラスばっかりなのかな
「プロパティは要するにグローバル変数」もそうだけど、もう少し説明がないと理解していないだけに見える
0591デフォルトの名無しさん2016/06/28(火) 01:05:41.27ID:+D0+qut0
いや仕事の愚痴だよ
カスみたいな商品管理システム(PHP)の保守案件で
まぁとにかくめちゃくちゃなんだ
シングルトンなんてそんな高等テク使われてるわけないw
0592デフォルトの名無しさん2016/06/28(火) 01:08:01.19ID:+D0+qut0
いや別に俺もOOPとはこうだなんて高説垂れられるほど勉強してきたわけじゃないけどね?
それでもやっぱ、なんかOOPが世に喧伝されてるほど素晴らしいものには思えないのよ
0593デフォルトの名無しさん2016/06/28(火) 02:25:28.11ID:P6ezUFsS
PHPさんだって組み込み関数を極力使わないライブラリの関数を使ってで最近のオブジェクト指向の機能使い使用しているframeworkを正しく使えば割といい言語だぜ? 
PHPというよりPHPerが悪い
千行を超える関数やgitの代わりに関数に日付と番号つけたりMVCのModelなにそれ状態etc 思い出すと死にそう
0594デフォルトの名無しさん2016/06/28(火) 06:35:51.92ID:fW5N5scv
>>592
それでもやっぱ、なんかOOPが世に喧伝されてるほど素晴らしいものには思えないのよ

プログラマが必須科目として、なんとなくOOPだけを学び、構造化プログラミングや複合設計、業務モデル、データモデルとか、それ以外の必修なプログラミング手法を「古い!」と言って切り捨てて設計すると、そうなってしまうと思う。
たとえば、デザイン的な斬新さとか「夢の家!」って点だけで家やビルを建てたら、見る人を驚かせるような一戸建の家やビルができあがる。
いわゆる「デザイナーズハウス」「デザイナーズマンション」みたいな。

でも、とても居住性が悪いとか、使い勝手が悪い家やビルになったりする。
その極端な例が、「完成!ドリームハウス」に登場した全面ガラス張りの家とかね。(建物だけで約3千万もかけて1年で空屋)

宗教の例をあげれば、釈迦は、あの世とか悟りに至る考え方の一つとして「無我」という思想を使った。
でも、後世の仏教者は、それを「我が無い、つまり魂は無いのだ。肉体が全てなんだ!」として、仏教を唯物論にしてしまった。

「デザイン」という考え方や「無我」が悪い訳ではないけど、それだけでやっちゃうとダメなのと同じ。
0595デフォルトの名無しさん2016/06/28(火) 07:54:09.62ID:+D0+qut0
>>593
>>594
言わんとすることはわかる
でも、諸々の理由で妥協で書かれるレベルの低いコードが掃いて捨てるほどあるわけで

何の努力もせず良い設計・コードになるわけないんだけど
それでもOOPじゃなければ、関数型ならもっとマシなものになるんじゃないかと夢見てしまう
0596デフォルトの名無しさん2016/06/28(火) 09:02:18.23ID:EAL+4PLj
OOPを突き詰めれば関数型っぽくなる
関数型プラスαがoopだな
0597デフォルトの名無しさん2016/06/28(火) 09:45:42.57ID:waZ5k966
>>596
元々関数型が存在して関数型で開発してた奴が不便なところを解決するために考案したのだから
その前提として関数型で適切なコーディングが出来るは前提条件なのは自明だろ
OOPは魔法の杖じゃねえよ

実際には関数型でもまともなコードを書けない奴がOOPを使って更にカオス度が増してる部分は確かにあると思うが
それはどんな道具・手法をつかってもダメな奴はダメだって事にすぎない

何かに責任転嫁したい心情はわからんではないけど、基本的には問題の原因は常に人だよ
ダメコードを書く奴を改善しないで手法を変えたところで何も変わらないダメコードを生産するだけ

バグの原因を修正せずに対処コードを入れたところで本質的には何も改善しないだろうと思うがね
0598デフォルトの名無しさん2016/06/28(火) 09:52:35.08ID:Zn9flS9b
このスレでも将棋の駒をクラスに、とか言っている人がいましたからね
どんな道具を与えられても正しく使えなければ意味がないよね
0599デフォルトの名無しさん2016/06/28(火) 10:33:52.14ID:N9maaBpm
そのうち、駒クラスから飛車クラスを継承したりしだすだろうな

でさらにkoma.move()と呼びだししとけば、駒の種類を増やしても対応できるとかいいだす
0600デフォルトの名無しさん2016/06/28(火) 10:47:56.71ID:4uPkxyfr
>駒の種類を増やしても対応できる
うむ、もっとも重要なことだ
0601デフォルトの名無しさん2016/06/28(火) 10:54:52.64ID:Zn9flS9b
それもそうだし
将棋の駒は木に字が書いてあるだけの代物で、状態を持たないから
クラス化してカプセル化する必要性もないんだよね
状態を持たないという意味ではintよりも単純
intは32bitだと4294967296個の状態を持つけど
駒はそれ以下の存在
enum、つまり定数で十分
プログラミングの世界で定数ほど扱いが容易な物はない
定数で済むものをわざわざクラスにするなら
それ相応のメリットがないと有りえない
だが、そのメリットが語られたことは一度もない
仕様変更で駒の種類が増えるとかならちょっとは考えるが
それも将棋では考える必要ない
駒をクラスにしたがる人は、プログラムを書いたことが無いか
将棋をしたことも見たことも無いか、のどちらか
0602デフォルトの名無しさん2016/06/28(火) 12:08:53.55ID:Jibk8xVq
>>598
クラス図を知らない奴が何を言っても無駄w

正しいと思う設計を提示できないんだから黙ってろ
10行のコード書いて設計完了って言ったのもお前だろ?
0603デフォルトの名無しさん2016/06/28(火) 12:32:57.13ID:2K/x921m
只の荒らしに成り下がったか ID:Jibk8xVq 惨めだな
0604デフォルトの名無しさん2016/06/28(火) 12:35:00.26ID:W5xEalSt
駒の状態は盤上の位置だからゲームの状態だしなー
0605デフォルトの名無しさん2016/06/28(火) 12:40:05.93ID:4sSl9cCN
将棋の駒・マス目はクラスだろ。
シューティングゲームで、爆弾・プレイヤー機などもクラスにしないのか?

駒.move で、レシーバー自らが、動きを考えるだろ。
一々、プログラマーが動きを考えなくても、委譲すれば楽
0606デフォルトの名無しさん2016/06/28(火) 12:41:56.78ID:RB4i6nrx
もう一度確認しておくけど、飛車クラスなんか作り出す馬鹿はいないよな?
飛車クラスのmoveをkoma.moveとすることで汎用的になったと思っている馬鹿はいないよな

そう呼び出すがためにどのくらいのコードが必要で、そのために煩雑なファクトリークラスのコードもかかなきゃいけないってこともわかってるよな?

関数型なら、こんな面倒な継承関係はつくらないってこともわかってるよな?

たかだか駒を動かすために、何個のクラス定義が必要ですか

というのが高度な設計の問いだよな
0607デフォルトの名無しさん2016/06/28(火) 12:43:42.68ID:Zn9flS9b
各駒がHPを持っていて戦略シミュみたいにバトルするっていうんなら状態を持つが
将棋はそういうゲームじゃないからねぇ
定数で十分
0608デフォルトの名無しさん2016/06/28(火) 12:50:37.10ID:4uPkxyfr
駒じゃなくて"盤上の駒"クラスならちょっぴり意味がある
0609デフォルトの名無しさん2016/06/28(火) 13:02:17.12ID:Zn9flS9b
>>606
シューティングゲームのプレイヤー機は、状態を持つからね
でも、将棋の駒は状態が無いらね
状態が無く、定数で十分なものをわざわざクラスにするなら
それ相応のメリットが必要

>駒.move で、レシーバー自らが、動きを考えるだろ。

将棋はそういうゲームじゃないから
駒が、自分の与えられた時間で、自発的に自ら動きを考える、戦略シミュのようなゲームではない
将棋は、どの駒を動かすか、を考えるゲーム
なぜなら、一ターンで動かせる駒は一つだけだから、どの駒を動かすべきかを考える
駒自身が動きを考えるとすると
A:俺動くわ
B:いや、俺が動くわ
C:まて、俺が動くわ
A、B:どうぞどうぞ
というダチョウ倶楽部現象が起こる
全ての駒でこれが起こる
こんなんで勝てるわけがないし、将棋のAIはこんな類のものではない
0610デフォルトの名無しさん2016/06/28(火) 13:09:10.06ID:Jibk8xVq
>>603
クラス図を知らないくせに語っちゃうお前ほどじゃないよw
0611デフォルトの名無しさん2016/06/28(火) 13:10:56.96ID:Jibk8xVq
>>606
で、お前の考える設計はいつになったらできるんだ?

対案を出さずに「○○はだめ」と連呼するクレーマー基地外
設計したことないんでしょ?
0612デフォルトの名無しさん2016/06/28(火) 13:11:05.67ID:Zn9flS9b
現実世界の将棋を見ても、駒自身が自分の動きを考えたりしていない
モデル化するなら、なるべく現実とかけ離れていない方が良い
0613デフォルトの名無しさん2016/06/28(火) 13:14:47.33ID:Jibk8xVq
>>609
こいつバカだなあ
盤上で駒がうこけるマスはどこ?というときに駒が動けるマスは駒の種類によって違う
駒に動きの情報を持たせる設計は十分あり得る

駒に持たせるべきか、思考ロジックに組み込むからいらないのか
どちらの方法を採用すべきかを優劣を比較するという流れで考えるものなのに
「僕ちゃんが正しい!僕ちゃんが正しい!」って連呼するだけだから実際のプロジェクトでは
相手にされずここで吼えるしかないんだねw
0614デフォルトの名無しさん2016/06/28(火) 13:16:15.35ID:Jibk8xVq
>>612
注文が合計金額を自分で考えて計算することなんてないけど
オブジェクト指向を勘違いしてる
0615デフォルトの名無しさん2016/06/28(火) 13:18:12.57ID:waZ5k966
将棋の思考モジュールではなくUIモジュールならば駒をクラスにするのは否定せんけどな、やる事は基本的には言われた通りに動くだけで
3Dならモデル/2Dならスプライトなどと位置・アニメーション・モーション・エフェクトなどをまとめて面倒見るためのクラスならまああり
人間が操作するために表示上必要なら移動範囲を参照させる事も問題はない

ただし思考ロジックとは別モジュールに置いて一切関与させない事が大前提な
0616デフォルトの名無しさん2016/06/28(火) 13:26:20.34ID:Jibk8xVq
>>615
これも勘違いしてるなあ
「やる事は基本的には言われた通りに動く」からクラスにしないって言ってるけど
受動的な要素をクラスにすることは普通のこと
能動的な要素しかクラスにしないとどうして思った?
0617デフォルトの名無しさん2016/06/28(火) 13:54:28.84ID:R+Do7QCH
>>597
手続き型と関数型の区別がついてない予感
まさかCで関数を使ってれば関数型とでも思ってるの?
0618デフォルトの名無しさん2016/06/28(火) 14:17:03.05ID:Zn9flS9b
今一つ分かったことだけど
>>609の俺の書き込みは、返信先が間違っていた
>>606への返信ではなく、正しくは>>605だったわ
これで謎が一つ解決した
0619デフォルトの名無しさん2016/06/28(火) 14:19:45.29ID:4sSl9cCN
将棋AIの中に、膨大なswitch文を、書くのはイヤ

駒クラスでいい
0620デフォルトの名無しさん2016/06/28(火) 14:33:48.34ID:Zn9flS9b
KomaInfo KomaInfoTable[ KomaEnumSize ];
はい、終わり
0621デフォルトの名無しさん2016/06/28(火) 16:12:49.45ID:7jQm4Qff
思考処理ん中じゃ駒はそんな表現しないがな。
むしろUI側の盤面表示向けだな。
0622デフォルトの名無しさん2016/06/28(火) 16:23:05.77ID:7jQm4Qff
思考処理は、盤面履歴管理とパターン生成と盤面評価だから、
パターン生成の一部に固定配列でルールライブラリがあれば事足りる。
いちいち駒クラスを用意して、そもそもこの駒の諸元はだなぁ。とかやらない。
0623デフォルトの名無しさん2016/06/28(火) 17:12:11.70ID:ONQSBplV
C++で書かれた将棋ソフトって話題になってなかったっけ?
興味あるやつがリバースエンジニアリングして
クラス図なり作ったら
議論が進んだりしないかね?
0624デフォルトの名無しさん2016/06/28(火) 18:25:44.31ID:nXmGiaq0
>>623
http://yaneuraou.yaneu.com/ とか?
0625デフォルトの名無しさん2016/06/28(火) 18:49:21.74ID:Zn9flS9b
>>624
の
http://yaneuraou.yaneu.com/yaneuraou_mini/
の中にある
やねうら王miniのソースコードの解説文書
面白い
これ全部読んで、まだ駒をクラスにしたいと思う人がいたらバカだ
0626デフォルトの名無しさん2016/06/28(火) 20:53:06.58ID:iffZepP2
>>601
成り,を忘れるな
0627デフォルトの名無しさん2016/06/28(火) 21:13:11.73ID:+D0+qut0
>>597
関数型ってオブジェクト指向型の次のパラダイムシフトだったんじゃなかったの?
そりゃダメコード書く奴がダメなのはわかりきってるけど
それを可能な限り仕組みでコントロールすることもできないかね?
0628デフォルトの名無しさん2016/06/28(火) 21:24:24.21ID:fW5N5scv
>>617

597の言う関数型は、今回の議論の流れからいえば、Cなどの手続き型の関数を意味していると思うし、それに賛成だね。
C++はCの関数の不便さを解決するために生まれてきたと思う。

そして、手続き型で、Cの世界でいう関数を使ったプログラムをまともに組むスキルが無い人がOOPしても、まともにプログラムが作れないのは当然の結果だ。
0629デフォルトの名無しさん2016/06/28(火) 21:33:55.52ID:Zn9flS9b
>>626
成り、なんか、別の種類の駒として扱えばよいだけだろ
0630デフォルトの名無しさん2016/06/28(火) 21:43:02.09ID:zDZeHGE+
>>627
> 関数型ってオブジェクト指向型の次のパラダイムシフトだったんじゃなかったの?

違うな。関数型は手続き型の次のパラダイムシフトだよ。

そもそもオブジェクト指向型が手続き型の
次のパラダイムシフトっていうのが若干ずれている。

手続き型には存在しなかった構造の部分に対しての
構文を用意したのがオブジェクト指向。
だから、オブジェクト指向+手続き型 というコードが世にあふれていた。

そこに関数型が登場(というか復活)したが
それは元来手続き型の次のパラダイムシフトであり、
関数型にも手続き型と同様に構造を記述する構文はない。

そこで、オブジェクト指向+関数型 が今後の主流になる。
例えばScalaとかもそうだし、多くのオブジェクト指向言語に
関数型の機能や考え方が追加されてきている。
0631デフォルトの名無しさん2016/06/28(火) 21:43:51.64ID:fW5N5scv
>>627

ダメコードを書く奴でも、まともに動作するプログラムを作らせるなら、「プログラムをできるだけ書かさないこと」になると思う。
それは、古いCの関数型でも、Lisp系統の関数型でもなく、Sapiensなどにみられる宣言型プログラミングを使うことになるんじゃなかろうか?
もちろん、そのシステムで用意されている機能で実現できない処理は、あきらめるか、だれかに機能拡張してもらい、それを宣言型で使うことになってしまうだろうけど。
0632デフォルトの名無しさん2016/06/28(火) 21:51:10.54ID:Zn9flS9b
>古いCの関数型

w
0633デフォルトの名無しさん2016/06/28(火) 21:51:19.28ID:4Rv95Bxp
>>629
そこまでしてクラス化して何かメリットあるの?
0634デフォルトの名無しさん2016/06/28(火) 21:51:43.64ID:+D0+qut0
>>630
なるほどなぁ
確かにJavaはそういう流れだね
だからHaskellよりScalaが流行ったんだろうかw

>>631
なるほど、書かせないか
言われてみりゃペチピーなんてそんなツールだよな
超高級言語へのシフト?CMSみたいに設定するだけで使えるシステム?
良いとは思うけど、つまらなさそうw
0635デフォルトの名無しさん2016/06/28(火) 21:57:57.91ID:Zn9flS9b
>>633
クラス化するとは一言も発言してないが
駒に、成り、の状態を持たせると鬱陶しいから
別の種類の駒として扱う
つまり、成った駒は元とは別のenum、定数、を宛がえば
状態を扱う必要はなく、定数で済むのでクラス化の必要もない
という分かりやすい話だが
0636デフォルトの名無しさん2016/06/28(火) 22:06:36.99ID:A7Bg25Ta
>>609
お?MMORPGならOOPで面白いかも?
0637デフォルトの名無しさん2016/06/28(火) 22:09:27.53ID:Jibk8xVq
>>620
しょぼコード設計じじぃが出たぞーw
0638デフォルトの名無しさん2016/06/28(火) 22:13:45.41ID:Jibk8xVq
>>629
同じ駒だろ
将棋指している人の認識は「この歩がとに成った」だぞ
「この歩は消えて、どこかから来たとに置き換わった」じゃねえだろ
0639デフォルトの名無しさん2016/06/28(火) 22:15:38.06ID:waZ5k966
日本語の不自由な奴多すぎじゃね?
普通に読んだら>>629は成り含めても4ビットで足りるものをクラスにする必要はないと主張してるとしか読めんのだが
0640デフォルトの名無しさん2016/06/28(火) 22:16:00.24ID:Jibk8xVq
>>635
システムの設計ってそんな個別のことをあれこれ言ってても意味ねえぞ
全体としてどうなるかって観点で考える必要があるのに駒がクラスかどうかにしつこく粘着してるお前はほんとセンスねえーわ
0641デフォルトの名無しさん2016/06/28(火) 22:17:39.29ID:Jibk8xVq
>>639
お前もスレと関係ない話をしつこく続けるのはいい加減にして消えろよ
スレタイも読めないの?
0642デフォルトの名無しさん2016/06/28(火) 22:21:34.03ID:+D0+qut0
オセロだったら盤クラスと石クラス作るやろ
class TheStone {
static public string color;
static public change(String color) {
color = color;
}
}

こうだ
0643デフォルトの名無しさん2016/06/28(火) 22:24:43.75ID:yMD5BWvc
>>642
DDDにしたがってColorクラスを作るべき
0644デフォルトの名無しさん2016/06/28(火) 22:58:46.28ID:Zn9flS9b
>>642
また微妙なネタを
static

オセロなら白、黒、空、の三種類の定数で十分だもんな

あと、駒をクラスにしたい人はいったいどうやって評価関数を書くんだろうな
実行時型情報を使って駒の種類を特定するつもりなんかね
それとも駒の種類を表すenumを返すメソッドでも作るんかね
バカらし
0645デフォルトの名無しさん2016/06/28(火) 23:45:16.95ID:4sSl9cCN
駒クラスなら、評価も次の1手も、全自動。
委譲で、駒自信が考える

Collection.each で済む

>>625
やねうらおって、ごりごりアセンブラ・手続き型の人w
0646デフォルトの名無しさん2016/06/28(火) 23:53:09.60ID:4sSl9cCN
駒.move で、
歩なら、1つ前へ移動するし、
玉なら、周りのすべてのマスへ移動する

動いたとき、相手の飛車を取ったら、+20 とか評価すればいい。
それで、最大点数を選ぶ
0647デフォルトの名無しさん2016/06/28(火) 23:53:53.38ID:WNbmF7qd
>駒自信が考える
ここ、笑い所?
0648デフォルトの名無しさん2016/06/28(火) 23:57:04.05ID:+D0+qut0
駒思う故に駒有りだ!
0649デフォルトの名無しさん2016/06/28(火) 23:58:59.41ID:+D0+qut0
プレイヤーはいちいち駒の移動法則を覚える必要はありません。
ただ動けと命じれば良いのです。
Tell, Don't Ask、これが基本です。
0650デフォルトの名無しさん2016/06/29(水) 00:00:41.76ID:QV2g2Pv7
まあそうやって組んでもいいけど、
オーバーヘッドで速度がまったく足りない場合、どうリファクタリングするのか
教えて欲しいな。
0651デフォルトの名無しさん2016/06/29(水) 00:02:32.35ID:V4mCQtyp
ちゃんとunit test書かせたらそうそう酷いもんにはならないと思うんだけどどうだろうか
0652デフォルトの名無しさん2016/06/29(水) 00:02:43.78ID:Cuj9KAah
駒の材質も重要だから
Materialクラスを継承したWoodクラスを継承させるのが正しい将棋のKomaクラスです。
0653デフォルトの名無しさん2016/06/29(水) 00:04:05.39ID:KRqAKsB/
つか、何の為のターン制なのか小一時間
0654デフォルトの名無しさん2016/06/29(水) 00:05:31.92ID:Cuj9KAah
Turnクラスも必要だった・・・?
0655デフォルトの名無しさん2016/06/29(水) 00:20:30.46ID:KRqAKsB/
だからおまいらはUI側を勝手に作っててくれよw
0656デフォルトの名無しさん2016/06/29(水) 00:21:06.49ID:0ytqT3qY
>>651
正しく動くかで言えばそりゃ動くだろう。

オーバーヘッドだらけで速度が出ない、速度が出なければ持ち時間で読める手数が減る、読める手数が少ないから弱い、それだけの話
0657デフォルトの名無しさん2016/06/29(水) 00:21:29.63ID:bbY16ES2
オブジェクト指向にしたからといって駒自身が自発的に何かを考えるわけでもなく、メッセージパッシングもディスパッチも結局人間が考えることなんだよ

オブジェクト指向ができることはswitch文をなくすことではなく、switch文をラップすることであり、そのうえさらに大量のクラス定義をするということを忘れている
ファクトリーにデリゲーションしたところで、ファクトリーの実装はswitchで構築されているわけだ

そしてその多量のクラス定義のうえに、メッセージパッシングを人間が構成する

おれはオブジェクト指向のデザインの本を最初に見たときに、理解できなかった
この技術は、物事を簡単にするはずだから、この考えには深い意味があるんだろうと

しかし衒学は衒学にすぎない、コンピュータサイエンスを極めれば、これは物事の判別ができない、設計適性がない人間が、他人にどうにかして働かせようとした結果のパラダイムなんだと

だからJavaの、クフ王のピラミッドみたいな工数がかかる案件が、平然として存在するわけだ
オブジェクト指向が本格始動して20年余りたつのに、いまだに満足に再利用もできない
それは結局のところ、パラダイムの基盤の脆弱性そのものを示している

俺はオブジェクト指向が達成したい目標もしっているし、そのためにどのようにクラスを構成すべきも知っているし、その目標を達成するために、オブジェクト指向が使い物にならないこともよく知っているよ
0658デフォルトの名無しさん2016/06/29(水) 00:28:02.23ID:Hg0Bm2HH
すべてが状態・メソッドを持つ、first class(第1級市民)オブジェクト。
クロージャ・ラムダも、そう

generator で遅延処理、無限ストリームで、省メモリ。
再帰にもピッタリ
0659デフォルトの名無しさん2016/06/29(水) 00:28:02.99ID:Cuj9KAah
将棋オブジェクトに自信ニキ

> 俺はオブジェクト指向が達成したい目標もしっているし、そのためにどのようにクラスを構成すべきも知っているし、その目標を達成するために、オブジェクト指向が使い物にならないこともよく知っているよ
ここ哲学
0660デフォルトの名無しさん2016/06/29(水) 00:29:49.12ID:Cuj9KAah
精液オブジェクトって
精液.length() = 1000000くらいの精子オブジェクトからできてるんだけど
これってどういうこと?
0661デフォルトの名無しさん2016/06/29(水) 00:30:36.30ID:y2ysSSpB
それでもオブジェクト指向が神だと思う奴は、まずエリックエヴァレンスの本を読んだ方がいい

読んだことがないが、他のパラダイムを触ってないなら、まずオブジェクト指向設計そのものができてねえから

トロクサイDBソフト作ってつまりは技術的負債をつくって、実務やっている人間の邪魔にしかならない

お前は高度な設計が出来たと誇るかもしれないが、客からしたらはた迷惑なものにしかならない

だって少しでも機能を複雑化したり、処理量を増やしただけでレスポンスが落ちるのは目に見えている
一番データを削ぎ落とした形を知らずに富豪プログラミングしたところで、パフォーマンスの限点がどこにあるのかすら推論できないなら、
そのソフトはおおよそ低いパフォーマンスのせいで、拡張性に制限がかかるのは目に見えている、そしてそれは顧客が負うべき責任じゃなく、なんでもかんでもクラスにする馬鹿の責任だよなあ
0662デフォルトの名無しさん2016/06/29(水) 00:34:36.69ID:Hg0Bm2HH
Java8には、parallel stream もあるし、末尾再帰してもいいし
0663デフォルトの名無しさん2016/06/29(水) 00:39:04.34ID:kp9K0h28
>>656
いや
>>645-646
の仕様で本当にちゃんと動くと思うか?
俺的にはかなりあり得ないんだが

>玉なら、周りのすべてのマスへ移動する

と言っているが、複数あるマスのうち、一体どのマスへ移動するつもりなんだ?
ここで未来が分岐して、それぞれの局面の評価をしなければならないわけだが
いったい誰が評価するんだ?玉が自分で評価するのか?
無理がありすぎる
一つの駒単体で処理が完結する部分が、ほぼないのに、クラスにしても意味がない
0664デフォルトの名無しさん2016/06/29(水) 00:46:05.68ID:F0qzEL5z
>>661
お前t_wada連呼してた奴だろw
最近は変えたの?
0665デフォルトの名無しさん2016/06/29(水) 00:48:01.33ID:F0qzEL5z
>>663
オブジェクト指向のほうがパフォーマンスが落ちるってどういう理由で?
「わしが書いたアセンブリのほうがgccより速いんじゃ」って連呼してたジジィみたい
0666デフォルトの名無しさん2016/06/29(水) 00:56:20.43ID:kp9K0h28
処理速度の面もいろいろあるけど
それ以前に駒は状態を持たないのにクラスにしたところで
駒単体で完結する仕事がほぼ無い
結局評価関数は俯瞰的な視点で評価しないと仕方がない
で、どうやってどこのマスに何があるか把握しますかって話にもなる
実行時型情報を使うのは極めてダーティー、OO的にもダーティー
駒の種類を表すenum値を返すメソッドを作りますか?
それなら初めから駒を定数にしておけって話
0667デフォルトの名無しさん2016/06/29(水) 01:03:44.73ID:kp9K0h28
第一、定数で済むものをどうしてクラスにしなきゃいけないんだって話
定数で済むなら定数でよい
定数ほど単純で安全なものは他にない
0668デフォルトの名無しさん2016/06/29(水) 01:21:35.40ID:XEPM9WK0
SOLIDの提唱者のボブおじさんも、ボウリングゲームの事例で、最初は必要と思われたクラスが、設計を進めると不要になる事例を例示しているし、
エリックエヴァンスも、あえて1章さいて不変性についての議論を挟んでいる
なぜオブジェクト指向信者のお前が知らなくて、俺が知ってるんだ?
それは単にお前が勉強不足なだけだろ

なんで何も勉強してない奴にかぎって口を挟むんだ
お前に今必要なのは口を閉じて文献を読むことだよ、どうせお前が設計してもうまくいかないのは明らかだから

まず設計行為はジレンマから成り立っているという理解が出来ていない


コスト度外視でクラス作りまくるのをお前が設計であるというのなら、だれもとめはしないが

だれもそんな行為を設計だとは認めないだけだからな
0669デフォルトの名無しさん2016/06/29(水) 01:22:25.57ID:XEPM9WK0
勉強不足のくそやろうは黙るかしねや
0670uy ◆e6.oHu1j.o 2016/06/29(水) 01:43:25.34ID:XGWq+m9j
紙と鉛筆だけでプログラミング出来るとか言ってた奴死ねよ
設計(笑)は、所詮コード書き始めるまで机上の空論の粋を出ない

紙グラミングで設計出来てると思ってる池沼は、
自身のソースコード量の問題に気づけないし
後から(やらない)やれば良いとか思ってるんだろ
0671uy ◆e6.oHu1j.o 2016/06/29(水) 01:57:43.15ID:XGWq+m9j
>>642,644
死んでくれませんか?

オセロを正規表現で書ける事を知らないんですか?

"00100201001"

0 → 黒
1 → 白
2 → 今おいた石

↓
<正規表現 置き換え>
↓

"00111111001"
0672デフォルトの名無しさん2016/06/29(水) 02:06:33.32ID:ysvKqYyo
>>668
本読んでもわからない奴は分からないし、わかる奴は斜めに読んでもわかる
結局許容範囲の狭いエンジニアは本読んでも意図が汲めないで自分の浅い偏屈な考えでしか話せないんだからしょうがないでしょ
駒はクラスと言い張る人はenumにしたときの事は想像できてないけど、enumにすべきという人はクラスにした場合の事を考えて発言してるのは明らかだし
0673uy ◆e6.oHu1j.o 2016/06/29(水) 02:08:33.38ID:XGWq+m9j
>>645,646
class Koma
... end
歩 = Koma.new
歩.move_proc = -> obj , field {
 <動ける条件>
}
飛 = Koma.new
飛.move_proc = -> obj , field {
 <動ける条件>
}

obj ← 自分自身
field ← 現在の状況や他のオブジェクトへ参照する為のインスタンス
0674uy ◆e6.oHu1j.o 2016/06/29(水) 02:24:33.04ID:XGWq+m9j
>>606
クラスを大量生産しなくて良くなったのは、
単にラムダを使う文化が浸透したからに過ぎない

歩 と 飛 を別クラスにするのに違和感あるなら
シューティングゲームで
弾 と 敵 と プレイヤー を別クラスにすることにも違和感を持たないとおかしい

実際、将棋にしたって、シューティングにしたって、オブジェクトに対しmove関数1つだけ渡せば良い
2つ以上渡すような設計は冗長だからな
関数を2つ以上渡すなら、moveの中から呼び出したほうがマシ

引数は上にかいた obj と field を渡すことだけ忘れなければ
この二つだけあれば、全部出来るから
0675uy ◆e6.oHu1j.o 2016/06/29(水) 02:30:34.17ID:XGWq+m9j
というか定数やら、グローバル変数とか、
冗談みたいなものを使わない為の設計
0676デフォルトの名無しさん2016/06/29(水) 02:34:29.98ID:F0qzEL5z
>>666
だからさ、「駒をクラスにするか」というとこだけ切り出して議論したって結論は出ない
局面の評価ロジックも含めて設計してはじめて、駒固有の情報があるか、ないかを判断できる

この設計プロセスを理系していない時点でまともなシステムの設計経験がないことが露見している
0677デフォルトの名無しさん2016/06/29(水) 02:37:10.72ID:F0qzEL5z
>>668
「最初は必要と思われたクラスが、設計を進めると不要になる事例を例示している」

まさにこういう話をしてるんだけど…
全体像が分からないのに駒をクラスにすべきかどうかだけ切り出して議論しても意味ない

お前ほんと日本語が分からないよなあ
自分で言ったことはさすがに同意するだろうから局所的な議論をしつこく繰り返すのはいい加減にしろ
0678uy ◆e6.oHu1j.o 2016/06/29(水) 02:48:18.05ID:XGWq+m9j
>>678,666
"00111111001"
0 → 黒
1 → 白
2 → 今おいた石

case 石
when "0"
 黒石クラス
when "1"
 白石クラス
when "2"
 今石クラス
end
↓↓↓↓

神石クラス[石] # => 石 == 0 or 1 or 2

神石クラス[石] and 神石クラス[石].call
↑ NULLチェック   ↑ CALL

↓↓

神石クラス[石]&.call
神石クラス[石]&.call
↑NULL合体演算子 Ruby2.3新機能 (New!
↑NULL合体演算子 Ruby2.3新機能 (New!
0679デフォルトの名無しさん2016/06/29(水) 04:00:41.78ID:4n8smSOI
>>645
駒がそれぞれ独自の判断を持つってつまり、
すべての駒がいちいち盤面全体の状況を判断する事に
なると思うんだけど?
0680uy ◆e6.oHu1j.o 2016/06/29(水) 04:55:13.77ID:XGWq+m9j
>>679
中央を持たせるか
タスク(ノード)を自立型にするか
ってだけで、どちらが良いとか無いよ
0681デフォルトの名無しさん2016/06/29(水) 07:33:21.66ID:N6i7i/Rj
>>677
駒クラスが必要か不要かというのは設計段階のはなし

わかる奴はコード書かなくてもわかるし、わからないやつはコードかいてもわからない、つーかわからないやつが理想とするコードかけない

ボブおじさんはできないやつでもコードかきゃわかるだろっていってるだけ
わからないやつは設計能力足りてないってだけなんだけど
0682デフォルトの名無しさん2016/06/29(水) 07:39:38.42ID:N6i7i/Rj
だから試しに飛車クラスとか駒クラスから継承して実際に動くテストでもかきゃいいんだよ

過剰に複雑なメッセージパッシングがおこなわれるってことがわかるから
コードかかなくてもわかる奴はそれがわかっている
0683デフォルトの名無しさん2016/06/29(水) 10:26:56.91ID:kp9K0h28
>歩 と 飛 を別クラスにするのに違和感あるなら
>シューティングゲームで
>弾 と 敵 と プレイヤー を別クラスにすることにも違和感を持たないとおかしい

別におかしいとは思わない
なぜなら将棋の駒は状態を持たないから
そこがシューティングゲームと違う
状態を持たないから定数で十分
定数で十分なものをわざわざクラスにするにはそれ相応のメリットが必要
クラスにするほうがイレギュラー
普通プログラマは定数を好む、安くて速くて旨いから

駒.moveで移動するといっても、どこに移動するんですかっていう話
また、その前に、沢山あるうち、どの駒を動かすんですかっていう話
そういうのは結局俯瞰的に判断しなければならない
駒単独でどうこうなるものではない
それに将棋は評価関数で局面を評価しなければならないわけだが
そのためには、どのマスに何があるのか把握しなければならない
実行時型情報を使うんですか?
それとも駒の種類を表すenum値を返すメソッドを作るんですか?
それなら初めから駒を定数で表現しておけばよい
どうせ、状態を持たないのだから
0684uy ◆e6.oHu1j.o 2016/06/29(水) 10:40:05.58ID:XGWq+m9j
は?コード書け
uyさんは>>670 コードを書かない次元での設計()は机上の空論という事を知ってる


必要なのはmove関数を受け渡す事と、それぞれに初期処理を行わせることで、それ以上にやる事は何もない

[歩,飛,角...]とリスト化し、
しいていうなら
update ← この名前

これで統一し
Collection([歩,飛,角...]) # 内部でupdate呼び出し
または
[歩,飛,角...].each { |v| v.update }

最上位なんて、こうなるだけで
歩,飛,角,がそれぞれ同じクラスのインスタンスだろうと、
別クラスのインスタンスだろうと
リストに入れた後はupdateメソッド呼び出すだけだから型なんて関係ないから


ちなみにuyさんが将棋を作る場合
歩,飛,角はそれぞれ別クラスで定義する
おそらく、格クラスには、駒moduleをmix-inする1行と、数行のコンストラクタと、
update関数(数行〜20行程度)が、あるだけになるけど

わざわざ圧縮して書く処理でもないから
0685uy ◆e6.oHu1j.o 2016/06/29(水) 10:43:24.41ID:XGWq+m9j
>>683
状態を持たないって、いきなりとんでもない事言い出したが

x , y , 表裏 , 今どこにあるかの状態4種(プレイヤー1 or 2 or プレイヤー1の手持ち or プレイヤー2の手持ち) 

って情報は誰が持ってんの
0686uy ◆e6.oHu1j.o 2016/06/29(水) 10:44:36.54ID:XGWq+m9j
>>683
>駒単独でどうこうなるものではない
なるように書く事も可能って話
コード量は変わらない
0687デフォルトの名無しさん2016/06/29(水) 10:55:23.75ID:3EvlET/U
将棋の駒使ったシューティングゲームでも作ってんのか?w
0688デフォルトの名無しさん2016/06/29(水) 10:55:45.82ID:tRZ7H54r
駒には感覚器官はないの?
それとも駒はただの操り人形なのか?
傀儡子が操る人形と人間とはまったくべつものでしょう。
0689デフォルトの名無しさん2016/06/29(水) 11:15:34.36ID:tRZ7H54r
>>685
位置情報は 12飛車 型などの様に型に埋め込めばできる
裏表は別ゴマと考える
このように型を細かくつけるとコンパイル時にエラーがでて
バグを無くすことができる
それは好みの問題
0690uy ◆e6.oHu1j.o 2016/06/29(水) 11:25:06.81ID:XGWq+m9j
>>688
ソースコードで純然たる民主主義を表現するか
王政共産主義を表現するか
どちらでも良く「○○にしたらコードの組み方わかんない!」ってやつが騒いでるだけ
0691uy ◆e6.oHu1j.o 2016/06/29(水) 11:32:06.43ID:XGWq+m9j
>>689
それは関数型プログラミングの考えか

バグ入らないのは良いけど開発速度ってどうなんかね
0692デフォルトの名無しさん2016/06/29(水) 12:09:20.12ID:N6LinefN
盤面が表現できれば、駒はそこにあるだろ。
エディター作るのに、文字を全部1文字づつオブジェクトにはしないだろ?
そーゆー事だ。
0693デフォルトの名無しさん2016/06/29(水) 12:14:21.92ID:Loxl9oiS
だな
ボードゲームだしな
0694デフォルトの名無しさん2016/06/29(水) 12:45:52.13ID:kp9K0h28
>>685
>状態を持たないって、いきなりとんでもない事言い出したが

駒がどこにあるかは、ボード(名前は何でもよいが)が
知ってるだろ(koma board[9][9];とか)
だから駒は定数でよい
成り、は別の駒として扱えばよいだろ
UIと思考ロジックは分けるだろ

こんな(>>684)将棋AIとかありえなんだが
なんで各コマをupdateしただけで次打つ一手が決まるんだよ
何のupdateだよ
シューティングゲームじゃねーんだよ
沢山ある選択肢のうち、打てるのは一手なんだぞ
局面の評価はだれがするんだよ
局面の評価をするためには、どこに何があるかわからなきゃできねーんだよ
将棋は「形」が大事なの、「形」、わかる?形だよ
for( auto Koma: KomaList ){ Result += Koma->GetValue(); }
とかじゃねーんだわ、これは駒得という方法ではあるが
基本的に、形が大事

http://manjirou99.hatenablog.com/entry/20130412/1365788918
>どうもボナンザはプロ棋士の棋譜との誤差が小さくなるような形で
>評価関数のパラメーターの値を学習させているようです。
0695uy ◆e6.oHu1j.o 2016/06/29(水) 12:59:10.36ID:XGWq+m9j
>692-693
理解力無さすぎ


>>694
混ざりすぎ

大きく分けて
1 ボードゲームをルール通りに動かす「ゲームエンジン」(今話してるのはコレ)
2 プレイヤーからの入力を受け付けるUI部分
3 思考ルーチン

それぞれ別で作るんだからソースコードは混ざらない
今は「1」の話しかしてないんだけど
多分お前以外はみんなそう
0696デフォルトの名無しさん2016/06/29(水) 13:03:32.65ID:ynfIfoaY
思考ルーチンとルールエンジンは混ざるだろ
0697uy ◆e6.oHu1j.o 2016/06/29(水) 13:07:44.98ID:XGWq+m9j
>>694
updateが分からないってネタですか?

これは状態の更新を表すメソッド
デザパタでも使う命名規則


例えタスクシステムを使わなくても画面の更新には使う
0698uy ◆e6.oHu1j.o 2016/06/29(水) 13:08:15.97ID:XGWq+m9j
>>696
立ち去れ
0699デフォルトの名無しさん2016/06/29(水) 13:09:13.96ID:N6LinefN
インターフェースとしてのルールと、思考過程で使うルールがごっちゃになってるんだな
0700デフォルトの名無しさん2016/06/29(水) 13:11:51.56ID:N6LinefN
まあ、盤面ごと今と動いた後を思考処理に投げればエラーかどうか分かるけどな。
0701デフォルトの名無しさん2016/06/29(水) 13:23:34.00ID:kp9K0h28
>>695
逆に俺は思考ロジックの話しかしてねーんだわ
コンピュータ将棋といえば、思考ロジックがメインなんだから当たり前
0702デフォルトの名無しさん2016/06/29(水) 13:24:52.89ID:N6LinefN
1が3を内包しているって事には気付いて無いらしい。
0703uy ◆e6.oHu1j.o 2016/06/29(水) 13:32:55.06ID:XGWq+m9j
>>701
それが当たり前だという認識でも構わないけど
まずお前は分離が出来ていないから
思考ロジックのメソッドの引数は何が必要で戻り値をどうするかだけ考えてろよ

全体の設計や、形をどうするか、なんて話はAIと無関係


>>702
してねーから
内包しているかどうかが焦点じゃない
その内包しているものを、分離は可能か?
人間vs人間ではAI関係ないが、ルールは必要
0704デフォルトの名無しさん2016/06/29(水) 13:39:01.63ID:vEfZmrBH
>>702
内包はまずいだろ

思考エンジンって、何らかのアダプタは挟むにしても、ボナンザややねうら王や人間に置き換え可能な、プレイヤー1と2だろ
一方ゲームエンジンって審判だろ

プレイヤーは打ち歩詰めや100一飛をする自由があるし、審判には反則や不正な動きを検出してゲームセットする責務がある
「プレイヤー1の動きは正しいはずだ」って前提の審判は居ない
0705デフォルトの名無しさん2016/06/29(水) 13:46:59.93ID:N6LinefN
1のルールと3のルールは同じなんだから、別々にしたらダメでしよ?
0706デフォルトの名無しさん2016/06/29(水) 13:52:40.43ID:N6LinefN
結局、人vs人専用ソフトでも、駒オブジェクトは不要と言う事。
駒を動かすと言う何とも人間臭い切り口だからダメなんだよ。
将棋は、盤面から盤面に移行するんだよ。
0707デフォルトの名無しさん2016/06/29(水) 14:24:31.42ID:F0qzEL5z
>>681
で、お前の考える設計はいつになったら出てくるんだ?
いつになっても出てこないんだからお前設計してないじゃん

しょぼいコード書いて設計したって言うのはやめろよwwwwww
0708デフォルトの名無しさん2016/06/29(水) 14:24:32.91ID:N6LinefN
将棋プログラムに駒を移動させるなんて概念は一切無い。
ある盤面から次の盤面にルールに沿って変化するだけ。
人間には駒を1つ移動した様に見えるが、
その実どの駒も一度盤面から全部取り去って再度並べ直してても一向に構わないし
むしろさっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わないんだよ。
0709デフォルトの名無しさん2016/06/29(水) 14:26:51.62ID:F0qzEL5z
>>689
意味不明
相手に分かるように書くのが設計だぜ
0710デフォルトの名無しさん2016/06/29(水) 14:29:22.32ID:F0qzEL5z
>>692
文字間のスペースは文字によって調整するのが普通
プロポーショナルフォントって言うんだったかな
だから各文字をオブジェクトとして表現するプロセッサも普通にある
0711デフォルトの名無しさん2016/06/29(水) 14:34:54.91ID:F0qzEL5z
>>694
駒の位置情報、成りがあることはお前も認めている通り

で、それを駒に持たせるか、盤に持たせるか、選択肢はいくつかある
どれがいいか比較しよう
って流れで考えないとだめ

それをしないで「駒は状態を持たない」とかアホなこと言ってるからバカにされる
0712uy ◆e6.oHu1j.o 2016/06/29(水) 14:36:00.16ID:XGWq+m9j
http://www1.axfc.net/u/3684973.zip
とりあえず少しコード書いたらこうなったよ
Zキーで「歩」(ソースコード上では"a")を動かすだけのサンプル

zip落としたくないカス用ideoneリンク
https://ideone.com/1JA1Zq
0713uy ◆e6.oHu1j.o 2016/06/29(水) 14:37:55.86ID:XGWq+m9j
分からない変数があったら質問を受け付けます
0714デフォルトの名無しさん2016/06/29(水) 14:38:28.54ID:F0qzEL5z
>>708
「さっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わない」

システムの設計のクソの役にも立たないこういうバカな喩えをする奴ってほんとセンスねえわ
0715デフォルトの名無しさん2016/06/29(水) 14:45:52.47ID:N6LinefN
>>714
わかりやすく説明しないとダメかw
UIにルール処理は不要って話。
その時の気分で好きなの選べって
0716デフォルトの名無しさん2016/06/29(水) 14:48:14.62ID:N6LinefN
>>712
おまいw
敵味方関係無しかw
0717uy ◆e6.oHu1j.o 2016/06/29(水) 15:01:03.20ID:XGWq+m9j
>>716
全要素の反転で多分出来る
0718デフォルトの名無しさん2016/06/29(水) 15:20:21.02ID:F0qzEL5z
>>715
UIにルール処理は不要と言いたい時に
「さっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わない」
という喩えを持ち出すお前のセンスになさに驚愕
0719デフォルトの名無しさん2016/06/29(水) 15:26:02.29ID:0ytqT3qY
>>703の言うゲームエンジンがルール判定を行う部分なのであればCSAプロトコル準拠サーバがそれに該当するので既存のものを使うから設計を考える必要はないな

自前で実装するにしても思考モジュールの評価関数から合法手かどうか以外の評価を全て取り除いてサーバプロトコルに合わせてIOを調えれば完成するので(ry

必要のない設計を考える事は無駄だな
0720uy ◆e6.oHu1j.o 2016/06/29(水) 16:39:02.23ID:XGWq+m9j
https://ideone.com/9IJQOi
持ち駒管理とか考えたらめんどくなってきた
0721uy ◆e6.oHu1j.o 2016/06/29(水) 17:48:59.00ID:XGWq+m9j
>>712,720
http://www1.axfc.net/u/3685047.zip
http://www.dotup.org/uploda/www.dotup.org922997.png
持ち駒あたりまでは組んだ

zip落としたくないカス用ideoneリンク
https://ideone.com/Fw3uMB


飽きてきた
0722uy ◆e6.oHu1j.o 2016/06/29(水) 18:14:03.62ID:XGWq+m9j
俺様のボードゲームの作り方としてはオブジェクト指向とかそういうのより
値を投げたら、処理して返す関数のデザインのほうが重要かな

UI部分と ゲームのルール自体を定義してるところを分離して
2クラスであれこれやり取りするのは、オセロでも変わらない
何が良いかというより、その設計でコード書く事に慣れてるからそれで作るのが一番楽という感じだった

結論:人による
0723uy ◆e6.oHu1j.o 2016/06/29(水) 18:26:41.08ID:XGWq+m9j
>>684
何いってんだコイツ
コード書いてない段階の机上の空論は当てにならない
0724デフォルトの名無しさん2016/06/29(水) 18:32:23.35ID:CUOxqZw/
>>711駒の位置情報を駒自身にもたせたとして、飛車のアイデンティティは、飛車という駒の動きにあるわけだ

そこで飛車という駒の動きが、飛車の位置のみに依存しているならば、駒が位置情報をもつという設計に意味はあるだろう

しかし現実、飛車の移動可能な位置は他の駒がどこにいるのかということに依存している以上、結局ボードが駒の位置を保持するという設計以外、設計じゃないんだが

間違いなくSOLIDに違反するよな
自分の移動可能な位置というメソッドコールがほぼつねに、他のオブジェクトの位置に依存しているのだもの

こういえばわかりやすいか、オブジェクトがそれぞれ位置情報を持つという設計をしたとしよう
飛車クラスが移動可能な位置を探索するたびに、盤面に存在するオブジェクトに対して"あなたの位置はどこですか"と問い合わせるわけだよ
もしボードが位置情報を統括してれば、ボードにといあわせれば済むことを、目隠しされたかのように各オブジェクトに状態を問合せる
これのどこが効率のよい情報伝達ですかと、これが設計力の差だよな
0725デフォルトの名無しさん2016/06/29(水) 18:46:45.43ID:N6LinefN
シューティングゲームで、敵が周囲を見て自分の動きを変化させる処理を書いた事があるが、
いい具合に反応が遅延しておばかなAIっぽくなってワラタ
0726uy ◆e6.oHu1j.o 2016/06/29(水) 18:56:47.95ID:XGWq+m9j
UIによっては全部オブジェクトにしないといけないから
最初からそういうUI作ること考えてる場合は二度手間にはなるけどね
分離したほうが再利用しやすいというだけ
0727デフォルトの名無しさん2016/06/29(水) 19:39:05.46ID:F0qzEL5z
>>724
駒自身の動きを元に盤面上で実際に動ける場所を確認するだけ
したがって「結局ボードが駒の位置を保持するという設計以外、設計じゃない」
というのは根拠なき妄言

人間も理解もそう理解している
駒ごとに動きは決まっている
それをもとに配置されている駒はどこに動けるか考える

結局お前はレベルが低過ぎる
>>711をちゃんと理解してから書き込めよ
0728デフォルトの名無しさん2016/06/29(水) 20:09:37.13ID:ayCPRrl4
オブジェクト指向でiniファイルパーサー書いたらどういう構成になるんですか?
0729uy ◆e6.oHu1j.o 2016/06/29(水) 20:33:56.75ID:SNUE/hcr
>>728
正規表現かけば終わる
0730デフォルトの名無しさん2016/06/29(水) 21:00:33.62ID:iNYQEQjv
オブジェクトパンチ!
0731デフォルトの名無しさん2016/06/29(水) 21:15:00.05ID:Cuj9KAah
将棋に自信ニキ発狂しすぎやろ

これがオブジェクト指向の末路か・・・(溜息)
やはりオブジェクト指向は失敗だった(確信)
早く関数型にいこう(悟)
0732デフォルトの名無しさん2016/06/29(水) 21:15:18.08ID:8H/yBcN8
お前は飛車クラスのMovablePositionsメソッドを実装するときに、いちいち盤面にいる角や金銀クラスのkomaインスタンスに"お前は今どこにいるのか"という呼出しをするのかと

foreach koma in komas
koma.getposition()

koma.getpositionなんて結局private変数 positionsをreturnする程度の機能しかないのに、こういう設計にしたおかげで

1.飛車は自分の移動先を決めるのにさえいちいちforeachをぶんまわす
2.komaをbaseとする継承階層の導入が必然となる
言い換えればjavaならば他のアスペクトからなる継承階層の構築はできなくなる
0733デフォルトの名無しさん2016/06/29(水) 21:27:49.49ID:Cuj9KAah
>>732
それが正しいオブジェクト指向なんだから仕方ない
komaクラスを継承すれば新しい駒でも柔軟に拡張できる
拡張性、これはオブジェクト指向のメリットの一つです
初心者はオブジェクト指向の基本から勉強しましょう
0734デフォルトの名無しさん2016/06/29(水) 21:44:19.09ID:YGP5NMQr
飛車が移動するためにどうして香車の位置情報を香車自身に問い合わせる必要があるのですか

これはPositionManagerとかいうイミフな名前のクラスの出番ですね
0735デフォルトの名無しさん2016/06/29(水) 21:54:35.80ID:16hwaoiF
かくしてボードという単なる二次元配列の採用を放棄した結果、本来不要なpositionsManagerという謎クラスを導入することとなった


その実態は単なるルックアップ関数であったが、komaをオブジェクトとし、foreachするのが馬鹿であると気づいたオブジェクト指向論じゃが陥るくそ設計の始まりであった

Managerクラスが余りにも多いなら、それはクラスの作りすぎを意味している
0736デフォルトの名無しさん2016/06/29(水) 21:58:35.09ID:Cuj9KAah
X座標クラスもちゃんと作れよ
1〜9までの数値しか取らない特殊なオブジェクトだからな
0737デフォルトの名無しさん2016/06/29(水) 22:02:01.02ID:Cuj9KAah
Base座標クラスを作っておけば
将来将棋にZ座標が導入された時も柔軟に拡張できる
オブジェクト指向はすばらしい
0738デフォルトの名無しさん2016/06/29(水) 22:04:08.95ID:Cuj9KAah
けんま.move()とナリけんま.move()は異なる動きをするが
Humanクラスを継承したPlayerクラスは、move()の実装について意識する必要はありません
ただmoveと念じればよいのです
ポリモーフィズムです
0739デフォルトの名無しさん2016/06/29(水) 22:21:01.62ID:emYx16n0
これまでの議論を呼んでいて、ふと、アンドリュー・タネンバウムとリーヌス・トーヴァルズの議論を思い出した。
分離されたドライバー・モジュールと小規模なカーネルがメッセージを交換するというマイクロ・カーネルのMINIXと一枚岩のLinuxのどっちが優れているか?っていう議論だったと思う。
システムとしての綺麗さという面からは、タネンバウムの推すマイクロ・カーネルが上だったけど、実用性では一枚岩のLinuxの勝利になったと個人的には思っている。
さて、ここではどうなるかな?
0740デフォルトの名無しさん2016/06/29(水) 22:42:55.35ID:3EvlET/U
>>692
flyweightパターン
0741デフォルトの名無しさん2016/06/29(水) 23:03:17.03ID:gLDfMD07
>>738
ワロタ
0742デフォルトの名無しさん2016/06/29(水) 23:08:36.18ID:WmZmA/4x
駒が勝手に考えて動く訳じゃないからオブジェクト指向的に考えても 駒.move で盤面評価はおかしい
0743デフォルトの名無しさん2016/06/29(水) 23:15:18.72ID:F0qzEL5z
>>742
受動的なクラスは普通だぞ無能
0744デフォルトの名無しさん2016/06/29(水) 23:20:55.85ID:11RiuwSN
> 駒が勝手に考えて動く訳じゃないからオブジェクト指向的に考えても 駒.move で盤面評価はおかしい

そのとおりだな。コマに対してmove実行していい手がありませんでしたってときは
例外でも返すのか?wって話だ。
0745デフォルトの名無しさん2016/06/29(水) 23:28:27.95ID:Cuj9KAah
ワイ extends 羽生善治に、貴様らエセグラマーは勝てまい
0746デフォルトの名無しさん2016/06/29(水) 23:50:57.87ID:vRAG8KaH
わが社のMyComobobox extends Comoboboxは
業務ロジックを飲み込んでメモリリークしまくりで凄いぞ…
0747デフォルトの名無しさん2016/06/29(水) 23:58:48.32ID:Cuj9KAah
Comoboboxじゃしゃーない
0748デフォルトの名無しさん2016/06/30(木) 00:22:59.57ID:LsNR/CTw
正しいOOPを学ぶにはどうしたらいいの?
0749デフォルトの名無しさん2016/06/30(木) 00:28:46.89ID:SHMJDPe9
>>748
まずまっさきに
このスレを見るのをやめる
0750デフォルトの名無しさん2016/06/30(木) 00:36:49.94ID:3DWc/P61
>>746
ビジネスロジックをUIにもち混むなとよく言うがそれは間違い
堅牢で高速で保守しやすいアプリを組むにはUIがビジネスをある程度知っている必要がある
例えばValidationなどはその傾向が顕著だね
0751デフォルトの名無しさん2016/06/30(木) 00:42:29.54ID:NSbHNpiT
>>728
いつの時代だよ
0752デフォルトの名無しさん2016/06/30(木) 00:52:42.42ID:dSZkCmBK
>>748
まず「正しいオブジェクト指向」なるものが存在すると思うのを止める事。
次に適当な言語の適当なGUIライブラリ使って何かプログラムを書いてみる事。
以上。
0753デフォルトの名無しさん2016/06/30(木) 01:04:49.33ID:LsXGxwaX
>>750
ValidationはUIじゃない
0754デフォルトの名無しさん2016/06/30(木) 02:07:10.99ID:SdL/my9l
オブジェクトパンチ!
0755デフォルトの名無しさん2016/06/30(木) 06:03:38.13ID:4Vg5Sebe
>>748
まず、
「ユーザー定義型(抽象データ型)をクラスを使って」というアイデアのOOPと
「動的遅延結合の徹底をメッセージという方便を使って」というアイデアのOOP、
これら発案者も目的も違う異質な“OOP”がごちゃ混ぜにされている現状を知る
0756デフォルトの名無しさん2016/06/30(木) 06:15:01.54ID:CCwIza2i
>>748

ものごとには順序ってのがあると思う。
普通の人がOOPを使いこなしたければ、COBOL時代の構造化プログラミングやマイヤーの複合設計とか、手続き型なプログラミングの手法を学んでおく必要がある。
そういう意味では、749は正しい。

また、Rubyで有名なまつもとゆきひろ氏の「コードの世界」を読むといい。
彼はOOPを多くの人々に広めようとしてRubyを開発したらしい。
が、彼自身の未熟さもあって、OOPへの誤解を広げてしまったと反省されている。

ネットでの議論はどうしても断片的で一環性がなく、さらに2chは罵倒的になりがち。
だから良書を見つけて、スマホの電源を切り、書籍から学ぶべきだと思う。
0757uy ◆e6.oHu1j.o 2016/06/30(木) 07:14:28.95ID:U+B64GZ8
また荒れてるな・・
駒自体にmove持たせたコードここまで無し
0758デフォルトの名無しさん2016/06/30(木) 08:02:25.59ID:shNsPwcq
俺のやる気にはとっくにmove()がついてんだよ


すいません嘘です
0759デフォルトの名無しさん2016/06/30(木) 08:57:28.84ID:3DWc/P61
>>753
UIだよ
0760デフォルトの名無しさん2016/06/30(木) 09:01:04.83ID:MIm5lvTS
おまいらがUI視点でしか物事が見られないと言う事だけは理解できた。
0761デフォルトの名無しさん2016/06/30(木) 09:19:46.41ID:LsXGxwaX
>>759
UIだっていうのなら、UIがいらない
バッチ処理ではバリデーションいらんのか?
いるだろ
0762uy ◆e6.oHu1j.o 2016/06/30(木) 09:31:30.41ID:U+B64GZ8
UI( 入力制御部分 )
これは数値だけを見て動けば良いシステムの根幹部分には必要ないものだけど
プログラムを作っていく段階で、
既にマウスクリックやドラッグアンドドロップ等の、入力制御を実装するコードを
簡単に持ち込めるのであれば
さっさと持ってきてUIと同時に作ったほうが楽な場合もある

将棋のコマをオブジェクト化っていうのも、人によってはその実現が楽だという事で
現在自分が持ってる再利用可能なコードで開発効率の大部分は決定されてしまう
現代のプログラミングはほとんどが
0から作る場合において設計をどうすれば効率良いか?って次元の話じゃない 0から作らない

こうしたほうがスマートな設計だ!なんて語る前に、それでどの程度の開発効率出るのかやってみるしかないと思うのだけど?
0763デフォルトの名無しさん2016/06/30(木) 10:13:39.82ID:+D/cohZw
駒の機能って何だ?と考えると
「アソコのマスに移動できるヨ」って駒自体の機能を示すことのみだと思う
駒.move()って名前では機能と食い違う気がする
0764uy ◆e6.oHu1j.o 2016/06/30(木) 10:47:44.87ID:U+B64GZ8
https://i.ytimg.com/vi/MQv1cPGRbfQ/hqdefault.jpg
こういうゲームならコマがオブジェクトを持つだろ?

将棋みたいにオブジェクト化せずとも良いゲームよりも
オブジェクト指向が必要なゲームのほうが多いから
そういうゲームを過去に作ってきた人が、将棋を作る場合
ソースコードの流用が効くし

逆に、将棋が初めてのゲームプログラミングだとしても、
そのソースコードが上記画像(三国志大戦)のような画面を持つゲーム開発の為の
再利用化のソースコードを生産することにも繋がる

普段ゲームプログラミングをしないミジンコカスさんは
必ずと言っていいほど資産0状況からの効率でプログラミング考えてるからダメ
0765デフォルトの名無しさん2016/06/30(木) 10:50:34.21ID:+D/cohZw
再利用できるのは良いことだな!
0766デフォルトの名無しさん2016/06/30(木) 11:10:41.94ID:cf5offIx
>>761
馬鹿だなValidationとUIが等価なのではない
UIがValidationを含むんだよ
つまりUIはビジネスを知っている必要がある
0767デフォルトの名無しさん2016/06/30(木) 11:14:21.30ID:cf5offIx
例えば入力コントロールが適当な正規表現にマッチするという要件があったとしよう
ではこの正規表現はどこから湧いて出てきたのか
それはビジネスルールに他ならないのだ
UIはビジネスの知識を持たなければ定義できない
0768デフォルトの名無しさん2016/06/30(木) 11:45:24.31ID:aowph3II
何度読み返しても>>767に何が書いてあるのか理解できない
0769デフォルトの名無しさん2016/06/30(木) 11:53:30.62ID:+D/cohZw
よくわからんが仕事を知らないと
その仕事に関する良いシステムを作るの無理みたいなこと書いてる気がする
0770デフォルトの名無しさん2016/06/30(木) 12:21:49.27ID:DyH17HfI
>768
ビジネスアブリやwebアブリ作っている人はすぐ判るけど、それらの経験がないと難しいかも?
0771デフォルトの名無しさん2016/06/30(木) 12:22:31.46ID:MIm5lvTS
プレゼン層がインプットをビジネス層に丸投げしちゃえば済むだけの話
0772デフォルトの名無しさん2016/06/30(木) 12:41:30.90ID:pOSHWmT/
UIはドメインロジックに依存してもよいが逆はダメ

mvcの基礎だな
0773デフォルトの名無しさん2016/06/30(木) 13:01:16.66ID:WnxiYo/h
将棋とカードゲームでソースを流用するやつがいるらしい
0774uy ◆e6.oHu1j.o 2016/06/30(木) 14:10:05.87ID:U+B64GZ8
>>773
将棋などのボードゲームと、
タスクを廻すゲームで
流用できるコードはどの程度か?という事を考えていた

タスクシステムを使わないゲーム 同士であればまだ共通点を見つけるのは容易い
0775デフォルトの名無しさん2016/06/30(木) 14:31:57.73ID:jx5HTZrS
>>768
業務アプリを作ればわかるよ
0776デフォルトの名無しさん2016/06/30(木) 14:45:22.22ID:CseKlxo3
>>774
将棋みたいな二人零和有限確定完全情報ゲームは基本的にはより深く広く手を読んだ方が勝つので評価関数を可能な限り高速で回すことが求められる
よって駒が個々に思考するのはナンセンス

まあでも無駄が多くていいならタスク回して自発的に評価して動いてるコマの、おそらく差し替え可能なAI部分を
思考モジュールからの指示があるまで待機、思考モジュールからの指示があったらその通りに動く
という形のものに差し替えれば他の部分はほぼそのまま使えると思うよ

思考部分に関しては、個として評価するものと、盤全体を俯瞰して評価するものとの差異は大きすぎるので再利用するメリットは薄い
0777デフォルトの名無しさん2016/06/30(木) 15:22:19.53ID:VmcBuUmn
ValidationはUIからロジック側に問い合わせるように設計するのが良いよな
WebインターフェイスだったらUI側にjsで書かないといけない、と思う人もいるが、jsのコードを吐く言語だったら分離できる
0778デフォルトの名無しさん2016/06/30(木) 15:33:50.73ID:MIm5lvTS
webみたいなやり逃げI/Fシステムで作るからややこしい事しなきゃならんのだよ。
0779デフォルトの名無しさん2016/06/30(木) 15:44:33.80ID:bL1n9aIG
>>777
最近のはやりは、クライアントサイドでのリアルタイムvalidationだよ
もちろんサーバサイドでもvalidationするが
0780デフォルトの名無しさん2016/06/30(木) 15:53:05.58ID:sIPJ/0ir
将棋は先読みをしなきゃならないってのに
駒.moveで話し終わらないんだよ
いったい最終的にどの駒を動かすんだよ
そのためには局面評価をしなければならないが
局面評価をするためには、どのマスに何があるかわからなければならない
実行時型情報を使いますか?
駒の種類を表す定数を返すメソッドを作りますか?
0781デフォルトの名無しさん2016/06/30(木) 16:20:32.57ID:PZTIMsGO
>>762
何も生み出さずに他人の設計を批判するだけの無能よりはコードを作成するのは有意義だとおもうから
それ自体は評価するけど、設計を考える前からコーディング始めろみたいな発想はおかしいな

実際、将棋ソフトは思考部がメインであることは皆が認めることなのに
その部分がどういう構造になるかはさっぱり見えてこない
ってか、まったく作ってないよな?

本質的なところを指摘すると、簡単なシステムの開発経験しかないから
いきなりコーディングしてもいいと思い込んでるだけ
簡単なシステムならそれでもいいけど、それじゃ複雑なシステムは構築できない
0782デフォルトの名無しさん2016/06/30(木) 16:33:31.14ID:PZTIMsGO
>>780
で、お前はどういう設計を考えてるの?

設計できないコメンテーターが湧き過ぎ
0783デフォルトの名無しさん2016/06/30(木) 16:36:22.59ID:aowph3II
将棋は手続き型のコードのほうが
速かったりして
0784デフォルトの名無しさん2016/06/30(木) 16:38:35.15ID:PZTIMsGO
不明確な文章書いて設計だと思ってる連中は設計経験がない
もしくは無能
意味不明な文書書いて設計した気になってる無能はたまに見かける
確実に要件の齟齬が生じてトラブルになる

誰もが誤解なく理解できるために表記法が標準化されている
表記法に沿って表記できない奴はど素人ってはっきり分かるね
0785デフォルトの名無しさん2016/06/30(木) 18:51:02.16ID:bL1n9aIG
先ず隗より始めよ
0786デフォルトの名無しさん2016/06/30(木) 18:53:41.48ID:PZTIMsGO
>>785
出してるから読み直せ
まともな会話ができる相手が来るのを待ってるんだけどレベルが低い奴しか来ないなあ
0787デフォルトの名無しさん2016/06/30(木) 19:15:57.52ID:XKkA9cc1
出してる証拠が無いな
コテ+トリでもなけりゃ只文句言ってるだけの名無しw
0788デフォルトの名無しさん2016/06/30(木) 19:32:21.05ID:Tl6dXV5E
>>783
そらそうよ
0789デフォルトの名無しさん2016/06/30(木) 19:44:53.04ID:MIm5lvTS
少し将棋調べたが、公式が出してる棋譜の表現ってプログラム内部の表現形式に導入するのはちと難ありだな。
駒が、歩、香車、桂馬、銀、金、角行、飛車、王、と金、成香、成桂、成金、竜馬、龍王、の14種類、敵味方の印とでも1バイトで済むから、
9×9の81バイトの配列に持ち駒用のスタック40バイトで121バイトの盤面クラスで済むのかぁ

盤面クラスにシリアルコード付けて評価用のパラメータ持たせても256バイトあれば1つの盤面を全て表現できるんだな。

盤面の組み合わせが何通あるのか知らないが、実サイズ1024バイトで1セクターの外部記憶装置なら、1テラバイトで1ギガパターン記憶出来ると、
棋譜は盤面をそのまま順番に記録しちまおうぜ。
名人戦から何からを全部な。で、今の盤面に一致する棋譜を検索して、勝ち筋をなぞるんだよ。

お、思考処理も出来たじゃん。
0790uy ◆e6.oHu1j.o 2016/06/30(木) 19:46:43.16ID:dzWCBRc4
>>776
だから、ナンセンスとかそういうんじゃなくて
そこまで開発効率に差が出るものじゃない

宗教的な理由か?
0791デフォルトの名無しさん2016/06/30(木) 20:26:33.87ID:PZTIMsGO
>>787
スレに残ってるぞw
0792デフォルトの名無しさん2016/06/30(木) 20:27:03.83ID:LsXGxwaX
>>766
> UIがValidationを含むんだよ
> つまりUIはビジネスを知っている必要がある

含まない。仮に含んでいるとしたらUIに聞いたら
Validationやビジネスの内容がわかるということになってしまう。
例えばHTMLとJavaScriptでUIを作ったとしたら
そのUIは例えば氏名欄に入力できる最大の文字数を知ってることになる。
ビジネスルールの分だけUIが必要になる。ありえない。

知っている向きが逆。
UIはValidationを含まないし知らないから、UI作成に必要な
情報だけを渡すということを各フレームワークでは行っている。
それがビューヘルパーなどと呼ばれている機能の役目
0793デフォルトの名無しさん2016/06/30(木) 21:42:29.90ID:CseKlxo3
>>790
開発効率ではなく処理速度に差が出るんだが…
0794uy ◆e6.oHu1j.o 2016/06/30(木) 21:53:14.74ID:dzWCBRc4
>>793
その認識は論外

ボトルネックになる箇所はそこじゃないから
0795uy ◆e6.oHu1j.o 2016/06/30(木) 22:00:58.11ID:dzWCBRc4
>>781
俺が上げたソースコードで、思考ルーチンはThinkingが思考部分に相当する
引数は、board
戻り値にすべきは
x , y , x2 , y2 (移動前:移動後)
で仕様は固まってるけど、作る気ないよ

使ってる言語性能にもよるがrubyはプロトタイプ製作に向いてる
実際俺は、ここにアップしたソースコードの作成に1〜2時間程度しかかけてない

ここでごちゃごちゃ話してる連中は2,3時間以上を設計()の話につぎ込んでるだけでコード1行も書いてないから
それよりさっさとプロトタイプ作るのがマシな選択
0796uy ◆e6.oHu1j.o 2016/06/30(木) 22:13:25.97ID:dzWCBRc4
もう将棋とか良いじゃん
次のゲームの話がしたい(聞きたい
麻雀・・・大富豪・・・とかオススメ
0797デフォルトの名無しさん2016/06/30(木) 22:39:47.57ID:+RIdkS3I
オブジェクト神拳!
0798デフォルトの名無しさん2016/06/30(木) 22:52:31.87ID:WERGdAXd
俺が一人で将棋プログラム作れって言われたらどんな、設計すんだろ
0799デフォルトの名無しさん2016/06/30(木) 23:23:58.05ID:LsNR/CTw
ファンクショナル聖拳!!
0800デフォルトの名無しさん2016/06/30(木) 23:58:14.32ID:PZTIMsGO
>>796
Thinkingの設計は全然分からないけど…
他の例でやること自体は自由だけどメインの部分は何も設計してないのに
「もう将棋とか良いじゃん」ってのはなあ…
実質何も設計できてない
0801デフォルトの名無しさん2016/07/01(金) 00:09:45.27ID:lr1NMl2N
単なる疑問なんだが
逆にお前さんらは将棋の設計したいのか
0802デフォルトの名無しさん2016/07/01(金) 00:17:02.62ID:btOTA9uk
ばば抜きの設計をしよう
トランプ1枚1枚もオブジェクトだよな
0803デフォルトの名無しさん2016/07/01(金) 01:01:14.78ID:Y5GSKl+0
将棋の設計したがってのはほぼ一人だけだと思われる
思考ロジックとか機械学習とAIの知識のないと設計なんてできないだろうし
0804デフォルトの名無しさん2016/07/01(金) 01:09:11.33ID:btOTA9uk
            |
            |  彡 ⌒ ミ
           \ (´・ω・`)また将棋オブジェクト.moveの話してる...
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
0805デフォルトの名無しさん2016/07/01(金) 01:11:44.68ID:ZNe1vyZ3
現実を考えるとコマを動かしているのは人間の手であり、
動かす位置を考えているのは人間の脳なのだから、
人間に相当する部分をオブジェクトにするのが正しい。
0806デフォルトの名無しさん2016/07/01(金) 01:35:37.62ID:OFOYrUgM
>>803
他の例で話したければ好きにすればいいって何度も言われてるのにいまだにしつこく言う奴って…
0807デフォルトの名無しさん2016/07/01(金) 01:41:42.99ID:OFOYrUgM
>>805
人間の直感的理解に合うように設計すれば分かりやすいし、構築もしやすいから
それが基本だな
0808デフォルトの名無しさん2016/07/01(金) 03:10:36.82ID:nN7ID4Tm
オブジェクト指向には、速度は関係ない

人間の思考プロセスが、簡単になるように、他人にもわかりやすいようにするだけ。
例え話と同じ

これにより、設計段階でのバグをなくす。
プログラムのバグのほとんどは、設計段階で生じるから
0809デフォルトの名無しさん2016/07/01(金) 03:29:40.56ID:XU5YMvRC
将棋の思考ルーチンには「決められた時間内に可能な限りたくさんの先読みをする」という
要件が定義されているのが普通のはずだから
オブジェクト志向設計では実行速度が考慮できないという制限があるとするなら
将棋の思考ルーチンにオブジェクト志向設計は不適っていう結論になるな

速度が要件に無いというならそれは思考ルーチンの性能の放棄なんだから
駒がルールに沿って動く以上の事を考慮する必要無いし
もうコード書くのに悩む所は無いかと
0810デフォルトの名無しさん2016/07/01(金) 03:44:26.30ID:OFOYrUgM
>>809
オブジェクト指向がパフォーマンスを考慮しないというのはどうしようもない間違いだから
オブジェクト指向に反対してる連中の書き込みだろw
0811デフォルトの名無しさん2016/07/01(金) 03:51:12.92ID:XU5YMvRC
すいません中二病につき論破というのに挑戦してみたかった人生なんです(´・ω・`)
0812デフォルトの名無しさん2016/07/01(金) 03:52:08.00ID:ZNe1vyZ3
オブジェクト指向がパフォーマンス低下のもとになるというよりか
メソッドの呼び出し回数がパフォーマンスの低下に繋がるんだよ。
0813デフォルトの名無しさん2016/07/01(金) 04:08:36.09ID:XU5YMvRC
つまりあれは意訳すると、オブジェクト指向設計ではルーチン呼び出し回数など関係無い
って断言されたようなものですね
0814デフォルトの名無しさん2016/07/01(金) 08:40:02.77ID:f9GcAqK5
よくわからんが中二病なら仕方がない
0815デフォルトの名無しさん2016/07/01(金) 09:48:17.88ID:PvP7Urws
789の方法なら思考要らずじゃないか、なんでみんな見ないフリしてんだ?
実際789のように過去棋譜だけで対局の9割はカバー出来るんだぜ?
0816デフォルトの名無しさん2016/07/01(金) 09:56:53.78ID:eX1ffSwt
>>815
新しい方法でもなければ画期的なほでもないから敢えて言及する価値もないだけだと思うぞ
0817デフォルトの名無しさん2016/07/01(金) 11:52:18.31ID:EGqlE2K8
>>792
まだわかってないのか
例えば入力欄が10桁というルールがあったとするだろ
当然ながら10桁というルールはビジネスルールだ
そして入力欄を10桁に制限するにはUIがそれを知っていなければならない
これを知らずに入力欄を10桁に制限する事は不可能
UIはビジネスを知っているんだよ
簡単なロジックだろなぜわからない
0818デフォルトの名無しさん2016/07/01(金) 12:00:50.81ID:mc0aB7jH
別に知ってるかどうかはどうでもよくて
じゃあそのビジネスルールが変更になった時にどうするかじゃね?
0819デフォルトの名無しさん2016/07/01(金) 13:29:47.32ID:2ngPRN1W
validateionそのものはuser interfaceじゃないね
"UI"というのがクライアントサイド全体を指しているのなら、その"UI"はもちろんvalidationを含む
0820デフォルトの名無しさん2016/07/01(金) 14:01:23.48ID:eX1ffSwt
では設問、以下のinputタグはバリデーション機能を有し、入力を半角英数字6文字以上必須入力と規定しているがこれはUIか?

<input type="text" pattern="^([a-zA-Z0-9]{6,})$" placeholder="半角英数字6文字以上" required>

UIは配置、形状(外見)、挙動全てにおいてビジネスロジックが要求する入力を、ユーザーが迷う事なく自然に入力出来る事が必須条件だ
そのためにはユーザーの目線や意識の動き、あるいは操作がビジネスロジックに沿うよう誘導する必要がある

UIそのものがビジネスロジックの全てを知っている必要はない、まあそれは当然だ
だがデザイン屋としてはビジネスロジックの全てを理解し、ユーザーを誘導する様にデザインや配置を考えるべきだと思うんだが
その結果UIがビジネスロジックの一部を内包したとしてどこに問題があるというのだろうか?

お願いだからそうしてワンオフできっちりチューニングしてデザインされたUIを別のビジネスロジックで使い回すのはやめてくれ、台無しだから
0821デフォルトの名無しさん2016/07/01(金) 14:17:08.24ID:70erRirO
入力と出力を混同してるんじゃね?
0822デフォルトの名無しさん2016/07/01(金) 14:17:44.53ID:2ngPRN1W
普通の人は、ビジネスロジックと言われると
https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF
みたいなことを創造するんだが
0823uy ◆e6.oHu1j.o 2016/07/01(金) 16:03:27.16ID:S/5FGxnJ
自分はそろそろ流れを無視してカードゲームの話に移行するから
今日は組まないけどな

置いてくぞ
0824デフォルトの名無しさん2016/07/01(金) 16:40:56.20ID:OFOYrUgM
>>815
それは既に出ているアイデアだから
あと過去の局面にない手が指されることもある
0825デフォルトの名無しさん2016/07/01(金) 19:23:02.04ID:LLRxVdt/
>>818
今度は1000桁(改行アリ、イスラム語対応)になった
0826デフォルトの名無しさん2016/07/01(金) 20:07:59.87ID:NneucC0p
>>820
その通り
UIはビジネスルールを熟知しているものだ
分離などもってのほか
0827デフォルトの名無しさん2016/07/01(金) 20:16:57.79ID:PvP7Urws
アホだ。
ルール確認ならUIからビジネスロジック呼べば済む話なのに、
UIにルールロジック組むなんてw
0828デフォルトの名無しさん2016/07/01(金) 20:46:29.84ID:NneucC0p
>>827
素人の発想だなぁ
0829デフォルトの名無しさん2016/07/01(金) 21:01:10.85ID:PvP7Urws
まさかwebアプリだとポストバックが面倒だからとか言う理由?
つか、webアプリ前提だからUIにルールロジック組むとか、既存技術の制約の為?
ますますアホだろ。
0830デフォルトの名無しさん2016/07/01(金) 21:22:27.79ID:LLRxVdt/
>>827
そこまでして分離することになんの意味が?
ぶっちゃけ素直にもう一個アプリ作ったほうが早くね?
お客さんも使い回しより専用UI作ってあげたほうが喜ぶよ
0831デフォルトの名無しさん2016/07/01(金) 21:24:16.76ID:Yk740OnV
これまでの将棋プロジェクトの議論を横から見ていて、思ったこと。

1)次の一手を考える思考部分を除いた部分の設計・製造においてOOPが他に比べて有利かどうかは不明。だが、どの技法を使うにしろ、そんなに大変な作業ではないと思える。

2)思考部分のThinkingクラスの作成は、作り手が将棋の戦略に詳しい必要があり、さらにOOP以外のプログラミング手法が要求されると思える。
もしかするとAI的なロジックも必要になるのかもしれない。いずれにしろ、大変な手間がかかると思える。

3)もし誰かが適切なThinkingクラス(モジュール)を提供してくれれば、将棋プログラムを短期間で完成できる。

☆結論

OOPは、そのような再利用しやすいパーツとなるクラスを製造し、活用するのに適している技法のひとつだと思う。
ただし、「適している」としても、それの設計・製造には、OOP以外に、多くのプログラミング技法とその問題領域への深い理解が必要になる。
もし、ある問題領域に適したパーツがFORTRANで作成され提供されていたら、その人はOOPな言語じゃあなく、FORTRANを選択するかもしれない。

また、プログラムの中核になるパーツが入手できれば、それを使いこなすだけなら、あまりOOPな知識は要求されない。
逆に言えば、そういうパーツが豊富に利用できない(他人の成果物が活用しずらい)言語であるなら、OOPの有りがたみは、かなり減少すると思える。

そして、C#は.NET Frameworkと、それ以外にも有志の人たちから無償提供されている豊富なクラスライブラリが提供されている。
それらをうまく使いこなせば、プログラムの生産性・信頼性は大きく改善される。
0832デフォルトの名無しさん2016/07/01(金) 21:33:13.38ID:pPkJKOF5
パーツ作るのは頭のいいやつがやって
後は数で設計図通りに組み合わせさせるカンジ?
0833デフォルトの名無しさん2016/07/01(金) 21:47:46.86ID:Yk740OnV
>>832

そういうことだね。
たとえば、Zip圧縮、解凍プログラムを作成するとして、C#を使えば、主要ロジックだけをみたら、圧縮部分1行、解凍部分1行だけのコーディングで終わりとなる。

そして、呼び出されるクラスライブラリは、延々とコーディングされていて、そのアルゴリズムは凡人プログラマな私などには、なかなか理解できず、作れと言われても、困難なものだと思う。
0834デフォルトの名無しさん2016/07/01(金) 21:51:06.36ID:9AhyjXN+
>>833
あっち側に行きたいもんだ
勉強するしかねぇな
0835デフォルトの名無しさん2016/07/01(金) 21:58:51.14ID:LLRxVdt/
選ばれし人間しか理解できない設計手法とか何のための設計かわからなくてウケるw
0836デフォルトの名無しさん2016/07/01(金) 22:00:00.28ID:LLRxVdt/
オブジェクトデストロイ!
0837デフォルトの名無しさん2016/07/01(金) 22:01:31.03ID:Dm1EmYMS
グワーッ
0838デフォルトの名無しさん2016/07/01(金) 22:12:46.33ID:CaSofAc1
>>829
ぽすとばっくワロタwww
0839デフォルトの名無しさん2016/07/01(金) 22:48:42.96ID:btOTA9uk
>>835
糞ワロ

そんなんだから、おまいらみんな駒.moveでUIでバリデってるんだよなぁ
なんつーかフローチャートからやり直せって感じ?
0840デフォルトの名無しさん2016/07/01(金) 22:50:34.42ID:29bXc8+7
Webページのプログラミングはマトモにしたことがないから
ポストバックって言葉は初耳だったな
ググって勉強になった気がする

サーバに何か返すのがポストバック?
ソースの中にポストバックで反応変えるために分岐書いといて
なんやかんや
0841デフォルトの名無しさん2016/07/01(金) 22:55:39.24ID:NneucC0p
フローチャートとか時代遅れやなあいつまで手続き型でやっていくつもりなんだ
0842デフォルトの名無しさん2016/07/01(金) 22:57:09.81ID:CaSofAc1
>>840
WebっつーかASP.NET Web Forms
0843デフォルトの名無しさん2016/07/01(金) 22:58:28.45ID:btOTA9uk
僕ら、フローチャートもまともに書けんから
将棋.moveがバリデってUIとか言っちゃうの
わかる?
わからないなら、まずフローチャート書いて、初心者の方、どうぞ
0844デフォルトの名無しさん2016/07/01(金) 23:02:04.54ID:lr1NMl2N
>>842
ググってくる
0845デフォルトの名無しさん2016/07/01(金) 23:02:42.32ID:eX1ffSwt
>>831
論旨に関係ないが、コンピュータ将棋界に旋風を巻き起こしたBonanzaの開発者は開発時カナダ在住で将棋についてはほとんど知らなかったらしいよ
0846デフォルトの名無しさん2016/07/01(金) 23:07:15.76ID:lr1NMl2N
ちょっと古いらしい
0847デフォルトの名無しさん2016/07/01(金) 23:13:26.27ID:btOTA9uk
さあフローチャートオブジェクトの気持になって!

まずは駒.moveの移動先をUIでバリデートするフローチャートを書いて!
0848デフォルトの名無しさん2016/07/01(金) 23:16:47.13ID:lr1NMl2N
なんか語彙調べてたらここにおる人webデザインの人多いの?
むしろ何の仕事でもwebデザインするもんなのか?
0849デフォルトの名無しさん2016/07/01(金) 23:17:12.52ID:btOTA9uk
えっ
君たち、もしかしてフローチャート図も書けないのですか?
0850デフォルトの名無しさん2016/07/01(金) 23:20:20.40ID:Yk740OnV
>>841

OOPでも、メソッドの部分のほとんどは、手続き型だよ。
手続き型を使わず、すべて関数型で書くのかな?
それとも宣言型?

手続き型プログラム抜きでは、現時点ではプログラム書けない。

フローチャートも複雑な処理では、アルゴリズムの整理に必要なことが多いよ。
0851デフォルトの名無しさん2016/07/01(金) 23:21:54.84ID:lr1NMl2N
UIでバリデートって
駒が行けないとこ表示しないし反応させない的な?
0852デフォルトの名無しさん2016/07/01(金) 23:37:09.46ID:btOTA9uk
>>851
うーん、このバカ!w
0853デフォルトの名無しさん2016/07/01(金) 23:44:35.13ID:lr1NMl2N
>>852
なんだよー
語彙わかんねーんだってーの
0854uy ◆e6.oHu1j.o 2016/07/02(土) 01:29:16.38ID:iqIMwrQM
アルファベットが27個でトランプ54枚って偶然か?
大文字、小文字で表現出来てしまう
他の表現方法とか考えられない
出来過ぎてる
0855デフォルトの名無しさん2016/07/02(土) 01:43:32.59ID:Xx+qh5Ol
ジョーカはい論破
0856デフォルトの名無しさん2016/07/02(土) 01:46:03.05ID:vXk+4SKa
$ ruby -e "p ('a'..'z').to_a.size"
26
0857デフォルトの名無しさん2016/07/02(土) 02:03:09.32ID:I5ZEPD/K
ワロタ
0858uy ◆e6.oHu1j.o 2016/07/02(土) 02:06:20.62ID:iqIMwrQM
>>856
はあ?
死ねよ
0859uy ◆e6.oHu1j.o 2016/07/02(土) 02:07:32.65ID:iqIMwrQM
ID:vXk+4SKa
NG
0860uy ◆e6.oHu1j.o 2016/07/02(土) 02:09:39.90ID:iqIMwrQM
アンパサンド(&)
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%B3%E3%83%91%E3%82%B5%E3%83%B3%E3%83%89

>Z に続くラテン文字アルファベットの27字目とされた時期もある。
0861デフォルトの名無しさん2016/07/02(土) 02:12:00.27ID:I5ZEPD/K
アンパサンドの大文字と小文字はよ
0862デフォルトの名無しさん2016/07/02(土) 02:34:34.33ID:YnafEJFl
アルファベットが27個www
0863uy ◆e6.oHu1j.o 2016/07/02(土) 03:16:23.91ID:iqIMwrQM
ここから分かる事は、
ジョーカーは1枚で良いという事かな
2枚は邪道
0864デフォルトの名無しさん2016/07/02(土) 03:47:07.92ID:8vzpc6ih
別にプリンタブルなコードを割り当てる必要も無いんだぜ?
0865デフォルトの名無しさん2016/07/02(土) 06:05:17.88ID:MzSj3q5v
アルファベットの種類は言語によって異なる
これ豆な
0866デフォルトの名無しさん2016/07/02(土) 06:39:17.26ID:EKGM1v3Q
将棋プログラムの設計&プログラミングは、いちおうOOPの有効性を問う目的があったのだと思う。
ここでのカードゲームの議論は何が目的?
ゲーム作りをここで議論するのは何の為?
0867デフォルトの名無しさん2016/07/02(土) 07:21:59.63ID:L/GK6KBr
>>850
今時手続き型で書く部分なんて殆どない
そもそもフローチャートを書かなきゃならんほど大きな手続き型のブロックが現れた時点で致命的な設計ミスを疑わなきゃだろ
0868デフォルトの名無しさん2016/07/02(土) 07:30:26.21ID:EKGM1v3Q
>>867

「今時手続き型で書く部分なんて殆どない」ってプログラムってどんな言語?どんな分野のどんなことをプログラムにやらせているのかな?
ifやwhileやforeach的な構文がほとんど無いプログラムなんて、今までも、現在の進行中プロジェクトでも、書いたことないので教えて!
0869デフォルトの名無しさん2016/07/02(土) 08:57:21.39ID:r22lp4qk
>>866
てっきり俺はトレーディングカードゲームのようなカードもルールも将来的に追加変更されるものを例にしたいのかと思ってた
仕様の追加変更に強いプログラムってのはOOPの得意分野だしまあ将棋では論じられにくい部分でもあるしね
…と思ってたのだがトランプとか言い出して意味不明
0870デフォルトの名無しさん2016/07/02(土) 09:18:50.94ID:L/GK6KBr
>>868
君みたいな素人ならC#が入門教材としては手頃だろうね
プログラミング共通の理念だから分野は問わない
同じ構造のコードブロックは抽象化して再利用しろ
0871デフォルトの名無しさん2016/07/02(土) 09:49:10.30ID:EKGM1v3Q
>>870

答えになっていませんけど?ちゃんと答えてくれませんか?
0872デフォルトの名無しさん2016/07/02(土) 09:50:32.84ID:L/GK6KBr
>>871
3行も読めない馬鹿なの?
0873デフォルトの名無しさん2016/07/02(土) 09:51:52.80ID:EKGM1v3Q
>>872

そうかもしれない。だからわかり易く質問に答えてください。
0874デフォルトの名無しさん2016/07/02(土) 10:08:00.73ID:N0+QBUWP
C#って関数型言語のように書けるんだっけ?
0875デフォルトの名無しさん2016/07/02(土) 10:19:36.33ID:9rtmvwfu
LINQ というのが騒がれたけど
あれの本質は関数型のうまみを部分的に取り入れたこと
0876デフォルトの名無しさん2016/07/02(土) 10:30:17.84ID:Xx+qh5Ol
>>872
3行といっても
綺麗なコード、糞コード、バグだらけのコードがある
おまえのはどれだ?
0877デフォルトの名無しさん2016/07/02(土) 10:47:48.62ID:EKGM1v3Q
>>875

LINQが関数型の一部を取り入れたのかどうか知りませんが、コーディング量が激減しますね。

そして、LINQを使えば、"if"とか"foreach"と無縁な記述ができて、とても短い(けど、1行は長い)コードで複雑な処理が可能になります。
なので、C#開発において、LINQはよく登場してきます。

でも、金融系のソフトウエアを書いていたら、どうしても証券の種類とか発行国とかの違いを意識するコーディングが登場します。
そして"if"とか"foreach"とか"switch"などの手続き型の命令を沢山記載することになります。

もちろんうまい設計をすれば、それらの命令を減らすことは可能でしょうけど、「書く部分なんて殆どない」っていう状態とはまだまだ遠いですね。
修行が足りないってことか?
0878uy ◆e6.oHu1j.o 2016/07/02(土) 11:00:52.09ID:iqIMwrQM
>>866,869
まだ作った事ないから

トレーディングカードゲームとか、
特別な設計があるとは思わない
それに対し、ボードゲーム・カードゲーム・パズルゲームのルールを表現するアルゴリズムは
千差万別だからそっちに興味が向く
0879デフォルトの名無しさん2016/07/02(土) 11:05:09.24ID:Xx+qh5Ol
>>878
まずは あるふぁべっと と ぶらいんど・たっち を おぼえましょう
0880uy ◆e6.oHu1j.o 2016/07/02(土) 11:06:37.83ID:iqIMwrQM
AIなんてどうでもいいのに
あー、お前らの「将棋」を表現するアルゴリズムがみたかったものだわ
日本語よりコード書くほうが速くなるといいね
0881デフォルトの名無しさん2016/07/02(土) 11:08:38.55ID:Xx+qh5Ol
854 名前:uy ◆e6.oHu1j.o [] 投稿日:2016/07/02(土) 01:29:16.38 ID:iqIMwrQM [1/7]
アルファベットが27個でトランプ54枚って偶然か?
大文字、小文字で表現出来てしまう
他の表現方法とか考えられない
出来過ぎてる


かみ の いたづら
0882デフォルトの名無しさん2016/07/02(土) 11:17:33.00ID:9rtmvwfu
かみぬいたづら
0883デフォルトの名無しさん2016/07/02(土) 11:25:05.13ID:EKGM1v3Q
>>880

アルゴリズムに注目っていうなら、OOPだなんだなんて無関係だよね?
それこそフローチャートが活躍する世界になる可能性大かもしれない。

でも、「将棋プログラム」にこだわる人たちの(Thinking)アルゴリズムをみたかったというのには、ちょっと賛同する。
0884デフォルトの名無しさん2016/07/02(土) 12:08:45.91ID:GsFs8aHP
どうせ「そんなものは下請けにやらせる」が答えだろうに。
0885デフォルトの名無しさん2016/07/02(土) 14:56:59.00ID:utxhMr93
オブジェクトキック!(トンファーキックの3倍の気合)
0886デフォルトの名無しさん2016/07/02(土) 21:06:23.77ID:tsuaSaxJ
下請けに任せると総コストが跳ねがる
オススメしないね
0887デフォルトの名無しさん2016/07/02(土) 21:10:01.21ID:I5ZEPD/K
下請けとは……リスク管理?
0888デフォルトの名無しさん2016/07/02(土) 21:27:42.96ID:OXRTRK2k
関数型でもifとか普通に使うけど?
あとオブジェクト指向のコードとか吐き気がするほど手続き型なんだけど
0889デフォルトの名無しさん2016/07/02(土) 21:31:53.72ID:Kre/4kSw
吐き気がするほど関数型のオブジェクト指向のコードばかり書いてる俺って一体…
0890デフォルトの名無しさん2016/07/02(土) 22:02:11.76ID:/wal4gbU
>>888
あえてコピペするわw

630 自分:デフォルトの名無しさん[sage] 投稿日:2016/06/28(火) 21:43:02.09 ID:zDZeHGE+
>>627
> 関数型ってオブジェクト指向型の次のパラダイムシフトだったんじゃなかったの?

違うな。関数型は手続き型の次のパラダイムシフトだよ。

そもそもオブジェクト指向型が手続き型の
次のパラダイムシフトっていうのが若干ずれている。

手続き型には存在しなかった構造の部分に対しての
構文を用意したのがオブジェクト指向。
だから、オブジェクト指向+手続き型 というコードが世にあふれていた。

そこに関数型が登場(というか復活)したが
それは元来手続き型の次のパラダイムシフトであり、
関数型にも手続き型と同様に構造を記述する構文はない。

そこで、オブジェクト指向+関数型 が今後の主流になる。
例えばScalaとかもそうだし、多くのオブジェクト指向言語に
関数型の機能や考え方が追加されてきている。
0891デフォルトの名無しさん2016/07/02(土) 22:12:45.13ID:22sSoOcK
オブジェクト指向だと手続き型ってのはね
そりゃオブジェクト指向関係なく設計者かプログラマが無能なんだよ
洗練されたオブジェクト指向は関数型に近くなるからね
0892デフォルトの名無しさん2016/07/02(土) 22:31:50.35ID:JJ/a2eex
変数の定義、代入がある時点で手続き型だよな

そもそもクラスからクラスへの変換という芸当が自然にはできない時点で宣言的ではありえないし、コレクションを回す際に内部変数の定義が必要になるあたりもまったくもって命令的なんだが

俺たちが命令しないと満足にメッセージ交換しないオブジェクト指向のどこが命令的じゃないのか
0893デフォルトの名無しさん2016/07/02(土) 22:38:44.62ID:EKGM1v3Q
>>891

関数型言語で組めばすべて解決、銀の弾丸だと思われているわけですね。
0894デフォルトの名無しさん2016/07/02(土) 22:40:45.93ID:I5ZEPD/K
銀の弾丸かっけぇ!ダンガンロンパですねわかります
0895デフォルトの名無しさん2016/07/02(土) 22:43:27.42ID:n0scA4Gt
>>891の意見は、割と理解できる。
ある程度関数型に触れてみた人ならそうなんじゃないかな?
0896デフォルトの名無しさん2016/07/02(土) 23:10:30.89ID:I5ZEPD/K
まじか
関数型言語に触れてみる場合のオススメとかある?
0897デフォルトの名無しさん2016/07/03(日) 00:10:08.58ID:JsjBhjdM
オブジェクトストリーム!
0898uy ◆e6.oHu1j.o 2016/07/03(日) 00:35:20.83ID:VJyaYSRj
お前らが作れるゲームって何?

心配になってくるスレだな
0899デフォルトの名無しさん2016/07/03(日) 00:46:20.29ID:SAfJffY8
そういや昔、人工無能プロジェクトでLISPやらされたな
カー、クダーとか懐かしいわ
0900デフォルトの名無しさん2016/07/03(日) 01:00:23.40ID:SAfJffY8
超電磁オブジェクト
0901デフォルトの名無しさん2016/07/03(日) 01:53:30.96ID:gbQH+vFt
オブジェクト指向と手続き型の区別も付かない連中が多いなあ
0902デフォルトの名無しさん2016/07/03(日) 02:28:03.78ID:SAfJffY8
ナニナニ
    彡⌒ ミ ナニナニ
   (´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) また関数型の話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
  u_| ̄ ̄||´・ω・`)ω・`) マター?
 /旦|――||// /|と ノ
 | ̄ ̄ ̄ ̄ ̄| ̄| . |-u
 |_____|三|/
0903デフォルトの名無しさん2016/07/03(日) 03:14:06.71ID:/dMGGywF
>>868
Scalaだけどif(式)はともかくforeachとwhileはあんま使わないね もっぱらmapやfilterやらのメソッドで事足りる
後 標準ライブラリじゃないけどScalazだとsequenceとかとてつもなく強力なメソッドがあったりするけど
これを手続き的に書かなきゃいけない事態を考えるとゾっとする
関数型言語は関数の合成という点においては凄く強力だから学んでおいても損はないと思う
0904デフォルトの名無しさん2016/07/03(日) 05:54:13.85ID:FZVbYLUI
>>903

C#においてLINQを使ったほうがコーディングは楽で、プログラムが短くなる強力な武器となる。だから「関数型」を学んでおくほうが良いのはそのとおりだね。
ちょっと前のほうで、「ダメプログラマには、手続き型プログラムを書かさず、宣言型プログラミングでコーディングさせればいい」って意味のことを書いた。
関数型プログラミングは、手続き型を排除するってことで、宣言型プログラミングと同じ長所を持っているといえるね。

ただ、そうであっても、LISPによるゲームみたいな、お勉強用プログラムみたいなのは別にして、現実のビジネスアプリ等では「手続き型」のコーディングがゼロにはならない。

それを「OOPは万能!」と同じように、現実の開発を知らない、教条主義で勘違いしている人たちがいるから、「また関数の話?」って書き込む方が出てしまうのでしょう。
0905デフォルトの名無しさん2016/07/03(日) 09:04:55.54ID:s5HIlZiP
ファンクショナルパーンチ!
0906デフォルトの名無しさん2016/07/03(日) 09:18:58.84ID:MPHK447R
命令型プログラミングとは、計算機科学において宣言型プログラミングの対となる概念であり、計算をプログラム状態を変化させる文の列で記述するプログラミングパラダイムの一種。一般に命令型プログラミングは、手続き型プログラミングと同義として扱われる。

1980年代、オブジェクト指向プログラミングが急成長を遂げた。オブジェクト指向言語の多くは命令型のスタイルであるが、オブジェクトを扱う機能が追加されている。

以上オブジェクト指向言語は基本的に命令型
文法の基本構成要素が、式expressionではなく文statementなことからしてもあきらか
WPFのXAMLやら、LINQは宣言的だと言われているが、XMLはその文法構成が式であり、文ではないからね、文であることが文法的に許されていない

まあ明らかにWPFは流行ってないし、LINQはLINQで匿名クラスみたいな反静的型付けみたいなものを導入している時点でオブジェクト指向的でないのもまた明らか

宣言的と呼ばれている言語でstatementの存在を許す言語は俺は知らないわ

例えばhtmlは宣言的だけど、そこらへん区別ついてる?
0907デフォルトの名無しさん2016/07/03(日) 09:34:09.78ID:ZEr6aDFZ
ファンクショナルチョップ!
0908デフォルトの名無しさん2016/07/03(日) 09:43:02.76ID:FZVbYLUI
>>906

宣言的な言語であっても、手続き的な命令が含まれてない(許されない)言語を今までの経験上私は知らない。
statemennt的な命令は許されていた。

>>例えばhtmlは宣言的だけど、そこらへん区別ついてる?

htmlってjavasciptとか、いろいろな言語を混在させて、それでやっと実用になっているよね?
だから命令型抜きでは、現状では役にたたないことが多いと思う。
0909デフォルトの名無しさん2016/07/03(日) 10:33:44.85ID:ZEr6aDFZ
最強言語ハスケルさんがおるやんける
0910デフォルトの名無しさん2016/07/03(日) 11:10:38.66ID:319GQNe3
>>908
オブジェクト指向言語が命令的であることに同意していただけて何よりです
0911デフォルトの名無しさん2016/07/03(日) 11:11:58.46ID:g38/oc0e
>>910
疑問を挟むのは基地外くらいだもんな
0912デフォルトの名無しさん2016/07/03(日) 11:14:23.15ID:NhdXp9rc
だから馬鹿な奴にはせめて関数を短くしろということくらいはやってもらうようにしてる。
結局それが守らせるのが簡単である程度効果的。
0913uy ◆e6.oHu1j.o 2016/07/03(日) 11:18:03.82ID:VJyaYSRj
初心者同士が妄言言い合って変な安心感を共有してるようだけど何をしたいのこのスレ
0914デフォルトの名無しさん2016/07/03(日) 11:26:26.75ID:SAfJffY8
ナニナニ
    彡⌒ ミ ナニナニ
   (´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) 次はモナドの話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
  u_| ̄ ̄||´・ω・`)ω・`) マター?
 /旦|――||// /|と ノ
 | ̄ ̄ ̄ ̄ ̄| ̄| . |-u
 |_____|三|/
0915デフォルトの名無しさん2016/07/03(日) 11:35:03.47ID:FZVbYLUI
>>913

「OOPや関数型を使えば、手続き型が要らない」という妄想、誤解を抱く人を教育、矯正するスレ
0916デフォルトの名無しさん2016/07/03(日) 12:11:40.67ID:A4NkGxi2
「OOP+関数型を使えば」の間違い
0917デフォルトの名無しさん2016/07/03(日) 12:41:27.78ID:FZVbYLUI
>>916

修正、ありがとう
0918デフォルトの名無しさん2016/07/03(日) 12:51:04.29ID:a7dDnFnC
手続きが要らないとは誰も言っていないんだが文盲ってほんっと馬鹿なんだな
殆ど要らないって何度も言ってるのになあ
0919デフォルトの名無しさん2016/07/03(日) 12:59:31.16ID:8tj5onhg
苦し紛れの一手
馬鹿なになに
0920デフォルトの名無しさん2016/07/03(日) 13:08:37.58ID:OUx13uc/
お前は選ばれしオブジェクト戦士ではない!
0921デフォルトの名無しさん2016/07/03(日) 13:20:31.16ID:ZEr6aDFZ
ファンクショナル・・・バスター!
0922デフォルトの名無しさん2016/07/03(日) 13:37:14.19ID:SAfJffY8
           |
            |  彡⌒ミ
           \ (´・ω・`) オールインワンなパラダイムは存在しないのだよ
             (|   |)::::適用分野を考えたまえ
              (γ /:::::::
               し \:::
                  \
0923デフォルトの名無しさん2016/07/03(日) 13:39:55.33ID:ZEr6aDFZ
     ___
   /彡⌒ミ|
   || ( ・ω・|  なに?また将棋.move(UI.validation)の話?
   ||oと.  U|
   || |(__)J|
   ||/彡 ̄ ガチャ
0924デフォルトの名無しさん2016/07/03(日) 17:44:11.75ID:FZVbYLUI
>>923

いやあ、話のやりとりから関数型、手続き型プログラミングでバトルになるかも?と思ったが、問題点は、日本語コミュニケーションだったようだ。
あっという間に終わってしまったみたい。盛り上がらなくてごめん。
0925デフォルトの名無しさん2016/07/04(月) 15:02:09.08ID:CS0CZjdg
    ___
   |    |
   |    |
   |  o|
   |    |
   |    |
   彡 ̄ ̄ パタン
0926uy ◆e6.oHu1j.o 2016/07/04(月) 15:28:59.09ID:RKNLnwF6
>>922
それは妥協

というか「適用分野」に合わせて、開発環境を変える奴は権力に敗北してる
言語やフレームワークをころころ変えるのは、短期的な効率しか見ていないからね
0927デフォルトの名無しさん2016/07/04(月) 15:33:45.18ID:JmtoE3f+
俺なんかは、絵はPNGをよく使うし
音楽はmp3が多いかな
絵をmp3で保存しようとは考えたことない
0928デフォルトの名無しさん2016/07/04(月) 15:36:01.65ID:JmtoE3f+
別の書き方をすると
PhotoShopのような物で音楽を編集しようとは思わないんだなー
0929uy ◆e6.oHu1j.o 2016/07/04(月) 15:46:22.61ID:RKNLnwF6
妥協した奴の作ったアプリケーションの上では
少ない種類のファイルしか扱えないって事だね
0930デフォルトの名無しさん2016/07/04(月) 16:05:26.57ID:JmtoE3f+
あとはDSLかな
簡単なものは自分で作ったりもする
"010111001"といった単純なテキストでも、なにかのON/OFFパターンを表すことぐらいはできる
が、全てのことをコレで表現しようとは考えてないんだよね
だからシンプル
0931デフォルトの名無しさん2016/07/04(月) 16:34:10.30ID:JmtoE3f+
あと、フランス料理のコックだって鍋をたくさん使い分けるよね
逆に一つの鍋で何でもしようとするのが中国人
この辺はお国柄がはっきりしてますわなー
0932デフォルトの名無しさん2016/07/04(月) 17:58:51.49ID:a9j4Iieo
オブジェクト指向を学ぶためのおすすめの本って何?
0933uy ◆e6.oHu1j.o 2016/07/04(月) 18:46:01.58ID:RKNLnwF6
>簡単なものは自分で作ったりもする
これマジ?

スクリプト導入したほうが楽だと思ってた


>あと、フランス料理のコックだって鍋をたくさん使い分けるよね
>逆に一つの鍋で何でもしようとするのが中国人

フランスよりも中国のほうが、人口も土地もGDPも上だよね
0934uy ◆e6.oHu1j.o 2016/07/04(月) 18:47:11.05ID:RKNLnwF6
>>932
ない
0935uy ◆e6.oHu1j.o 2016/07/04(月) 18:51:25.21ID:RKNLnwF6
スマホって便利だよね
キーボードもマウスも内部に組み込まれてるし

モニタ一体型PCの究極系みたいな
0936デフォルトの名無しさん2016/07/04(月) 19:54:50.48ID:iBCMz1Fm
オブジェクトパワー!
0937uy ◆e6.oHu1j.o 2016/07/04(月) 20:24:32.87ID:RKNLnwF6
>>936
ha?
0938デフォルトの名無しさん2016/07/04(月) 22:08:19.00ID:J0Fy9UKu
>>926
  彡⌒ ミ
⊂(´・ω・`)  君はLinuxで動作するデバドラ書いてくれと言われたらどうするのかね?
 /    ,9m
 し―-J
0939デフォルトの名無しさん2016/07/04(月) 22:30:21.08ID:fBjtovDX
ファンクショナルリフレクター!
0940デフォルトの名無しさん2016/07/05(火) 12:01:39.49ID:0J0noK4F
これが物理(概念)の力だ……!
0941uy ◆e6.oHu1j.o 2016/07/05(火) 22:06:30.86ID:1uRQlpDk
>>938
WindowsとLinuxのいいとこどりをしたOSが、今後出現しないとでも?
妥協をしない開発者がいるから、進化があるんだよ
0942デフォルトの名無しさん2016/07/05(火) 22:35:55.47ID:/vGWJhcH
       |
     彡⌒ ミ  それでうまく逃げたつもりなのかね?
    (´・ω・`)  そのいいとこどりをしたOSが出るまで待っているのかね?
    (___)  これは仕事だ。君には職務遂行の義務がある
      ノ     さあ、どうするのかね?
     / ̄/
     /  /     チリーン
   ノ  /
    ̄ ̄
0943デフォルトの名無しさん2016/07/05(火) 22:37:07.52ID:61MxF96h
ニートには職務なんてわからんだろう
0944デフォルトの名無しさん2016/07/05(火) 22:50:38.93ID:jRJDfSwk
妥協しなかった結果www


854 名前:uy ◆e6.oHu1j.o [] 投稿日:2016/07/02(土) 01:29:16.38 ID:iqIMwrQM [1/7]
アルファベットが27個でトランプ54枚って偶然か?
大文字、小文字で表現出来てしまう
他の表現方法とか考えられない
出来過ぎてる
0945デフォルトの名無しさん2016/07/05(火) 23:23:13.03ID:qwK3ZrRl
いつまでたっても僕の考えた最強の〜から抜け出せない

というか、本人なりに考えた、妥協しなかった結果が今のニートだもんな
これじゃ何の説得力もないわ
彼の方程式に従うと失敗するという結果が出ているわけだから

妥協しない、で一番最初に思いつくのはイチローだけど
考え方も結果も正反対で、比べるのもおこがましい

今できることを着実にこなして結果を出し続けながら
改良を続けるということの大切さ、当り前さ
0946uy ◆e6.oHu1j.o 2016/07/05(火) 23:26:16.14ID:1uRQlpDk
>>942
マジレスするけどハゲに人権ないよ
ハゲと同じ意見を持つという事は、ハゲと同じ生活をするということは、自分もハゲに一歩近づくという事

>これは仕事だ。君には職務遂行の義務がある
>      ノ     さあ、どうするのかね?
     / ̄/


ぼくにその義務はありません
何故ならプログラマではないから
uyは自由なんです

それに先進技術開発が達成されるのは、そういう風にフレームワークなどの上でコード書いている時ではなく
趣味でやってる時などに完成するものだと思う
0947デフォルトの名無しさん2016/07/05(火) 23:31:30.08ID:/vGWJhcH
  彡⌒ ミ  君の好きなRubyでCやASMより実行性能が良いものを書ける
 (´・ω・`)  と言うのなら、このスレで髪の話をすることを許可しよう
0948uy ◆e6.oHu1j.o 2016/07/05(火) 23:32:08.35ID:1uRQlpDk
>>944
昔もkardkard言ってた奴もいたけど
なんでトランプってこんなに反応示されるの?おかしくない?

>>945
>妥協しなかった結果が今のニートだもんな
はい、このまま人生逃げ切るつもりです
まあでもちなみにネット起業は会社登録してないだけでしてる
ニートじゃなくてごめんね

自分は誰かにソースコードをこうしろなんて強制されないから
最強の○○について、考えることが自分にとっての最強プログラミング
0949デフォルトの名無しさん2016/07/05(火) 23:47:33.51ID:qwK3ZrRl
ソースコードをどうしろと言われることと
僕の考えた最強の〜は関係ない

結果が出せてない、実績がないことを指して
僕の考えた最強の〜と言う
0950uy ◆e6.oHu1j.o 2016/07/05(火) 23:48:28.19ID:1uRQlpDk
>>947
言語だけは複数あったほうが良い
necessary evil
0951uy ◆e6.oHu1j.o 2016/07/05(火) 23:50:12.60ID:1uRQlpDk
>>949
結果にとらわれてはいけないと思うよ
自分自身が満足することが大事

それが出来なければ、他人がuyの結果をいくら認めようと満たされないから
0952デフォルトの名無しさん2016/07/05(火) 23:55:32.17ID:qwK3ZrRl
その状態のことを、僕の考えた最強の〜という
初めからそう言っている
何も問題はなかった
0953デフォルトの名無しさん2016/07/05(火) 23:57:04.33ID:/vGWJhcH
  彡⌒ ミ  君は先進技術の歴史を理解していないようだね
⊂(´・ω・`)  コンピュータは弾道計算するために、インターネットも最初は軍事利用が目的
 /    ,9m IT技術は国家レベルのプロジェクトで開発されるのだよ
 し―-J
0954uy ◆e6.oHu1j.o 2016/07/06(水) 00:01:35.01ID:vNuAhUzI
>>953
>IT技術は国家レベルのプロジェクトで開発されるのだよ
それは違うよ

完璧で複雑なプログラミングになると、その環境の上でプログラミング出来る人が限られてくる
だから使い手によって、効率と複雑性を天秤にかけた環境が用意されるべき

国家プロジェクトで開発するような技術ってのは、多くの人が扱える技術でなければ
収益に結び付かないから
それが最も先進的というわけではない

かしこさ:200の人が使う技術と、かしこさ:100の人が使う技術は別物
国家プロジェクトはかしこさ:150の技術開発
0955デフォルトの名無しさん2016/07/06(水) 00:01:53.10ID:DQh08+gO
趣味の過程で生まれた最先端技術?は遊びにしか使えないけど
彼にとっては遊びが全てで、それしか見えてないから
そう思っているのだろう
0956uy ◆e6.oHu1j.o 2016/07/06(水) 00:03:22.58ID:vNuAhUzI
ソースコードを完璧に組む事は出来るだろう
完璧じゃないのは人間のほう
完璧じゃない人間が読みやすく、不完全なソースコードにしなければならない現実
つまり、最強完璧な環境へ近づくには人間自体の進化が必要なのです

100年では出来ないと分かって、いろいろ諦めた
しかし不完全なものを、それで良しとしてはいけないと思う
現状には常に不満を持たなければ1ミリ足りと前へは進めない

進化を諦めてしまったのか?
0957uy ◆e6.oHu1j.o 2016/07/06(水) 00:04:59.01ID:vNuAhUzI
>>955
大図書館などに永遠に引きこもって自分しか使えない技術を開発していたいですね
0958デフォルトの名無しさん2016/07/06(水) 00:07:43.61ID:qGJVKz7K
自称社長のニートなんか相手にするなよ、おまいら惨めだな
0959デフォルトの名無しさん2016/07/06(水) 00:08:18.26ID:BIIFUq2d
>>947
rubyで作るプロダクトをcやアセンブラで作ろうとすると一生完成しない可能性の方が高い。
だから私が髭の話を許可する。
0960デフォルトの名無しさん2016/07/06(水) 00:10:54.34ID:3g3KhBRp
>>954
     :彡⌒:|
     (´・ω:|  効率と複雑性?
     ヽつ::|  君はまず社会に出て、成果を求められる環境に身を置くべきだね
      ヽ :;| 
         \
0961デフォルトの名無しさん2016/07/06(水) 00:13:59.73ID:3g3KhBRp
>>959
  彡⌒ ミ  デバドラの話なんだが・・・
 (´・ω・`)  Rubyでカーネル空間で動作するものを書けるのかね?
0962uy ◆e6.oHu1j.o 2016/07/06(水) 00:14:33.71ID:vNuAhUzI
>>960
家の近くにIT企業あれば、良かったんだけどね(´・ω・`)
通勤に時間のかかる生活なんて考えられないし
プログラミングを必死に勉強してる頃は、それしか考えてなくて「何とかなるだろう」と思っていたら。なんともならなかった
0963uy ◆e6.oHu1j.o 2016/07/06(水) 00:19:53.66ID:vNuAhUzI
>>961
GCとかを危惧してるなら普通にオフに出来るよ
他にもカーネル記述に不要なものを全部オフにして書いていけば問題は無いと思う
0964デフォルトの名無しさん2016/07/06(水) 00:29:01.47ID:2xc1YUig
>>961
mrubyなら割と簡単に組み込めるんじゃないかね?
NetBSDではLuaでカーネルモジュール書けるみたいだし
0965デフォルトの名無しさん2016/07/06(水) 00:40:53.22ID:UWKMuS1C
リソース安全性はどうなるんだろ
Rustのほうが良さそう
0966デフォルトの名無しさん2016/07/06(水) 00:44:04.42ID:3g3KhBRp
  彡⌒ ミ  VM上でデバドラ?
 (´・ω・`)  そんなトロくさいもの使えないよ
0967デフォルトの名無しさん2016/07/06(水) 00:56:50.65ID:qGJVKz7K
デバドラって何ですか?デザインパターン・バンディッド・ドグマ・ラーミアのことですか?
0968デフォルトの名無しさん2016/07/06(水) 01:01:41.65ID:3g3KhBRp
>>967
  彡⌒ ミ  
⊂(´・ω・`)  デバドラ=出刃包丁を持っているドラえもん
 /    ,9m 覚えておきたまえ
 し―-J
0969デフォルトの名無しさん2016/07/06(水) 01:03:12.48ID:qGJVKz7K
うわつまんね死ね
0970デフォルトの名無しさん2016/07/06(水) 01:08:41.58ID:3g3KhBRp
>>969
  彡⌒ ミ  デザインパターン・バンディッド・ドグマ・ラーミア
 (´・ω・`)  これおもしろいね。ははは
0971uy ◆e6.oHu1j.o 2016/07/06(水) 01:16:27.63ID:vNuAhUzI
>>966
まずデバドラで本当に速度が足らないのはどこなのか
速度が必要なデバドラ・速度が不要なデバドラ
問題の切り分けからだね
0972デフォルトの名無しさん2016/07/06(水) 01:43:13.01ID:DQh08+gO
C言語の根強い人気の本当の理由は
シンプルなメモリレイアウトにある
適当なメモリブロックをキャストするだけで
そのように見なしてくれる
0973uy ◆e6.oHu1j.o 2016/07/06(水) 02:19:50.03ID:HK2chlDS
>人気の本当の理由
ソースは?
0974デフォルトの名無しさん2016/07/06(水) 06:53:59.78ID:vOd3VA2I
オブジェクトパンチ!
0975デフォルトの名無しさん2016/07/06(水) 11:38:59.59ID:2qfMHfYJ
うちじゃC#案件しか無いぞ〜。
0976デフォルトの名無しさん2016/07/06(水) 12:30:42.30ID:syBKJUri
>>961

Rubyでカーネル空間動作のものは作れないと思う。
0977デフォルトの名無しさん2016/07/06(水) 15:27:44.05ID:217RIKel
問題なのはどの言語で書くかではなくコンパイラが吐く物が何かなので書けないってことはなかろう

現存するRubyコンパイラにそのまま使える物があるかは知らないが、rb2c(ruby to Cコンバーター)なんてネタは何度となく試みられて来てるネタだしw

技術者がよく言う言葉だと技術的には可能です(が、やる価値はないです)って奴だろ
0978デフォルトの名無しさん2016/07/06(水) 16:12:12.81ID:aYInvTWe
暇人が作った ruby"もどき" で出来ます というのはただのウソつき
0979デフォルトの名無しさん2016/07/06(水) 16:57:25.26ID:BeYX1bmv
rubyに未定義の仕様が一つでもあるなら何でも出来るruby処理系の存在を否定できない
0980デフォルトの名無しさん2016/07/06(水) 19:10:57.06ID:M/EGIEaV
>>976
なんで?
0981uy ◆e6.oHu1j.o 2016/07/06(水) 19:31:08.13ID:4XXkMTdx
カーネル空間動作って具体的になんですか?
0982デフォルトの名無しさん2016/07/06(水) 20:04:38.80ID:2qfMHfYJ
車中泊する時に椅子を倒して広々とさせた車内の事さ。
0983デフォルトの名無しさん2016/07/06(水) 20:41:47.88ID:syBKJUri
>>981

1つのユーザプログラムが異常な動作をしたら、システム全体がクラッシュとなると困るよね。
だから、ユーザプログラムのメモリ空間と、OSが管理するメモリー空間は別のものとして管理する。
そのOSが管理するメモリー空間をカーネル空間という。
昔のWindowsは、この分離がUnixやLinuxと比較して、甘かったからユーザプログラムの暴走でOS全体がダウンすることがあった。
WindowsNTが開発され始めたころ、このメモリー空間をセキュリティを考えて厳しく分離していた。
でも、全体のパフォーマンスが悪かったので、メモリー空間の制限を緩めたという記事を読んだことがあるけど、それが原因だったのかもしれない。

Windowsじゃあないけど、過去において、他のOSのデバイスドライバの開発をやったとき、カーネル空間で動作するプログラムのデバッグには、カーネル用のデバッガーが必要だった。
でも、個人では金額的に手が出なくて、デバッグに苦労した思い出がある。
0984デフォルトの名無しさん2016/07/06(水) 21:12:11.26ID:DQh08+gO
あ〜あ、だめだよ、そういうこと、ダメ
0985デフォルトの名無しさん2016/07/06(水) 22:19:40.57ID:S9qDm7+H
プロセスの仮想メモリ空間、4GBの内、3GBはユーザー空間で、1GBはカーネル空間

カーネル空間は、カーネルしかアクセスできない。
この空間を使って、カーネルが他のプロセスとの、データの受け渡しなどをする
0986デフォルトの名無しさん2016/07/06(水) 22:36:36.74ID:s7C23tnI
v6 unixのソース読んだなあ
あれはプログラマなら一度は読んでおくべき
0987デフォルトの名無しさん2016/07/06(水) 22:49:08.61ID:Np1SAbRe
ソースっねwww
0988uy ◆e6.oHu1j.o 2016/07/06(水) 23:13:58.23ID:4XXkMTdx
>>983
char memory[999999];
とかやってメモリMAP作るのをrubyでは出来ないって事?

つうか元々OSを作る時に必要なハードウェアアクセスなんて
既存のrubyじゃ出来ないしCでruby拡張しながらrubyでOSを作る前提だから
「出来ない」というものは存在しない

「遅い」という課題だけが存在するだけ
0989デフォルトの名無しさん2016/07/07(木) 00:39:22.48ID:G+34VhO1
今度はオブジェクト指向でOSでも設計するのか?
0990デフォルトの名無しさん2016/07/07(木) 01:14:53.50ID:hNsvcGxY
     ___
   /彡⌒ミ|
   || ( ・ω・|  なに?今度は将棋OSの駒.move(() -> UI.validation())のデバドラ?
   ||oと.  U|
   || |(__)J|
   ||/彡 ̄ ガチャ
0991デフォルトの名無しさん2016/07/07(木) 06:46:07.45ID:5WQSzVM1
>>989
つ「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
0992デフォルトの名無しさん2016/07/07(木) 08:16:03.00ID:zTk2b25B
>>990
面白くないよその持ちネタ
0993デフォルトの名無しさん2016/07/07(木) 08:21:39.66ID:hNsvcGxY
>>990
糞オモロwwwwwwwwwwwwwwwwwww
0994デフォルトの名無しさん2016/07/07(木) 21:59:37.97ID:iOUcakYj
>>989
そういや10年くらい前に「Linux(カーネル)をオブジェクト指向で書き直そう!」みたいな話があった気がしたが、
あれって完全にポシャったんだよね?
あの時は「今更メモリ保護もない状態でOSを動かしているのは危険」という話だったはず。
ただ、その時既にLinuxカーネルは十分な実績があったし、書き直すべきかと聞かれれば微妙だとは思った。
0995デフォルトの名無しさん2016/07/08(金) 08:57:06.28ID:ookNN2TD
どうせなら舐め回して性感帯を探るようなデバイスドライバーの登録方法の方をなんとかして頂きたく。
0996デフォルトの名無しさん2016/07/08(金) 20:27:31.47ID:gjq4uhFL
>>994
smalltalk を忘れたのか?
0997デフォルトの名無しさん2016/07/08(金) 21:55:43.00ID:6CqwIgwA
>>994
linus は激怒するだろう。
0998デフォルトの名無しさん2016/07/08(金) 22:42:58.18ID:oubWTd1T
Smalltalkで仕事してる人、実在したのか
0999デフォルトの名無しさん2016/07/08(金) 22:56:31.58ID:oHle9aRO
VB6.0以下の生産性しかないSmalltalk
1000デフォルトの名無しさん2016/07/08(金) 23:05:27.27ID:lgN9JYdd
ゆっくりしていってね
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 27日 4時間 47分 4秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。