オブジェクト指向システムの設計 171 [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2016/06/11(土) 18:18:23.98ID:NAulAg4n・単一責任の原則(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:y6LF40Yk0003デフォルトの名無しさん
2016/06/11(土) 19:42:44.47ID:y6LF40Yk趣味グラマ曰く「設計書なんてなくても客はシステムを受け入れる」
客「死ね」
0004デフォルトの名無しさん
2016/06/11(土) 20:11:30.20ID:/6Etr2QS引数と自身の状態に応じてどう振る舞うかがメソッドの中身
単に自身の特定の属性を返す単純なメソッドもあれば、引数として受け取ったオブジェクトのメソッドに自分を渡すといった複雑な挙動をするメソッドもある
関数とメソッドを区別して話をしたい場合、対象とするデータや状態のうち、主と呼べるものが1つになってる関数をメソッドと呼ぶことが多い
この程度の理解だと「何をもってしてオブジェクト指向だと言うのか」という質問の答えは理解できないの?
違う理解だと「評価関数の設計にオブジェクト指向を役立てる」ってのが自然な考えだと言いたいの?
0005デフォルトの名無しさん
2016/06/11(土) 20:36:07.98ID:VRwHRVV/0006デフォルトの名無しさん
2016/06/11(土) 20:42:56.72ID:ppFl8ALU人の名前出されるのが嫌いな誰かさんがまた発狂するぞ
0007デフォルトの名無しさん
2016/06/11(土) 20:59:16.50ID:y6LF40Ykメソッドをどうやって設計するかについての回答は?
0008デフォルトの名無しさん
2016/06/11(土) 21:38:55.29ID:NAulAg4n評価関数とか、オブジェクトのメソッドのことだし。
0009デフォルトの名無しさん
2016/06/11(土) 21:52:13.67ID:eTbCo1xWたくさん本読んでる割には自分の言葉で何一つ表現できないんだね
0010デフォルトの名無しさん
2016/06/11(土) 22:02:32.22ID:NAulAg4n納得してもらえるだろうかね。
0011デフォルトの名無しさん
2016/06/11(土) 22:09:08.47ID:eTbCo1xWあー、なるほどなー
残念脳ミソだわ
0012デフォルトの名無しさん
2016/06/11(土) 22:15:34.56ID:/6Etr2QSメソッドに求められる仕様を満たすよう作る
仕様は要件から容易に導出できる場合もあるし、要件を満たせるよう解釈した結果得られる場合もある
その解釈の仕方が設計だと理解しているが、ここまで同意できる?
自分はオブジェクト指向を使う必要が無いと判断したらクラスもメソッドも使わない。勿論コードはオブジェクト指向ではなくなる
で、将棋の評価関数の中身を設計するにあたってオブジェクト指向は必要無い、オーバーヘッドを考えるなら使うべきではないとすら思ってるが
そう思ってない、オブジェクト指向で設計すると主張する人がいる
もしかしてオブジェクト指向とは何か分かっていないでいるのか、それとも自分の知らない定義があるのかはっきりしないと話にならない
そんなに「何をもってオブジェクト指向と呼ぶのか」が答えられないの?
正解を求めてるわけじゃない。自分の定義を書かないと議論にならない
0013デフォルトの名無しさん
2016/06/11(土) 22:18:04.06ID:NAulAg4nそういうこと。
ソースを出せって言われるように
匿名でオレオレ論を主張しても信用してもらえない。
匿名をやめるか、有名などれかを引用するしかない。
0014デフォルトの名無しさん
2016/06/11(土) 22:22:56.26ID:y6LF40Ykなるほど
メソッドの設計方法を知らないのが原因だ
教えてやろうと思ってたけどレスがイラついたからやめる
まあ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おすすめの本教えてよw
もちろん著者は和田卓人より有名だよな
0020デフォルトの名無しさん
2016/06/11(土) 23:34:49.25ID:QFQTiJlTああだこうだ言いながら作り上げていくのも楽しいよ
大規模プロジェクトだと不向きだけどね
0021デフォルトの名無しさん
2016/06/11(土) 23:37:00.24ID:VRwHRVV/前スレでは長文乱発、持てる力を尽くしてオブジェクト指向を叩き潰しましたけど?
まさかアンクルボブの本も読まずにオブジェクト指向設計を語るつもりなの?
SOLIDの提唱者だったと記憶しているが
0022デフォルトの名無しさん
2016/06/11(土) 23:58:08.62ID:n4KzSusV0023デフォルトの名無しさん
2016/06/11(土) 23:58:18.89ID:y6LF40Yk>オブジェクト指向を叩き潰しましたけど?
え?え?
メモリリークを知らないことがばれ、コーディングと設計の区別ができないことがばれ
その他いろいろ恥を晒しているように見えたけど自己評価高ええなーーwww
0024デフォルトの名無しさん
2016/06/12(日) 00:08:31.17ID:18K6R/tBJavaが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なんで確率なんだよw
メモリリーク起こすのは乱数かなにかなのか?w
そういうときは統計を持ってこいよ。
0027デフォルトの名無しさん
2016/06/12(日) 00:24:49.56ID:AMLyjVO9そんなこと言ってると将来仕事しだしたとき辛いぜ?
仕事っていうのは、金をだす客がいて初めた成り立つんだ。
客がいつもそういう高度(?)なことを求めていると思うなよ。
客は高度なことがしたいんじゃない。今やってる作業を楽にするために
金を払おうとしてるんだ。
0028デフォルトの名無しさん
2016/06/12(日) 00:28:20.41ID:18K6R/tBそのためにレベルの低いことに設計監理費用使っても許される社会でよかったな
でも俺みたいな人間がユーザーになったらどんなことになるかはわかるよな?
優しい世界でよかったなあ
0029デフォルトの名無しさん
2016/06/12(日) 00:30:43.95ID:18K6R/tBたぶん君に頼んでも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:AMLyjVO90033デフォルトの名無しさん
2016/06/12(日) 01:01:21.55ID:6jjwfwov俺の派遣先で作ってるもんのがでっかいもんね!
いいや、俺の派遣先で作ってるもんのがでっかいもんね!
って言ってんだろ?
もういいからそういうの(笑)
0034デフォルトの名無しさん
2016/06/12(日) 01:03:20.38ID:AMLyjVO9俺の周りにはいないものでね。
派遣って使ってる方も恥ずかしいんだよ。
(人を雇える金がないということだから)
0035デフォルトの名無しさん
2016/06/12(日) 01:15:54.63ID:6jjwfwovは?
プログラマなんか正社員で雇ってる大手とかねーよ
どんだけ単価安いのかと(笑)
0036デフォルトの名無しさん
2016/06/12(日) 01:18:32.92ID:UP5FRtN10037デフォルトの名無しさん
2016/06/12(日) 01:19:47.76ID:AMLyjVO9Googleとか正社員でプログラマだろw
お前が言ってるのは、ソフトウェア開発会社じゃない
大手の話じゃねーのかw
0038デフォルトの名無しさん
2016/06/12(日) 01:40:17.75ID:Lsl6jMpZソラで書けなくてもいい。便利なライブラリを知ってなくてもいい。
その言語のユニークな概念を理解していて、それを使って簡単なプログラムが書ければいい。
つまりプログラミングのパラダイムをどれくらい知っているのか?
とりあえずaperyがOOだと言っちゃうあたり、C++は読めもしないことは把握してる。
今までのレスを追うと、上流()SEの臭いしかしない。しかも無能の方。
必死になってOOをおぼえたけど、実際にプログラムを書ききったことが無いから頓珍漢な設計しかできない無能に見える。
AP試験は通るけどFP試験は通らないような知識とレベル
0039デフォルトの名無しさん
2016/06/12(日) 01:42:29.41ID:dD1m5RkQ上流っぽさは感じないけどなあ
下請け派遣チームのリーダー
いまどきの若手からうざがられてる
ってイメージ
0040デフォルトの名無しさん
2016/06/12(日) 01:44:14.36ID:AMLyjVO9いくつだろうね?
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> AP試験は通るけどFP試験は通らないような知識とレベル
FPってなんや? 調べたらAPは応用情報技術者試験、
古くは一種って呼ばれていたやつだよな?
二種(今の 基本情報技術者試験)なら高校2年の時、
一種は大学2年の時にとった。
あとネットワークスペシャリストは今も同じ名前だな。
これは大学3年だったか4年だったか。
まあそうとう昔の話よ。今どれだけ難易度が変わってるかは知らない。
0042デフォルトの名無しさん
2016/06/12(日) 01:54:21.10ID:UP5FRtN1こいつ、ずっと>>1がどうこうって言い続けてるな。
ノイローゼかなw
0043デフォルトの名無しさん
2016/06/12(日) 01:54:51.13ID:AMLyjVO9> 下請け派遣チームのリーダー
チームリーダーじゃないよw
転職したばっかりだし
詳細は言えないが、Dockerをプロダクション用途で
で使ってる会社
0044デフォルトの名無しさん
2016/06/12(日) 01:55:15.59ID:AMLyjVO9寝ても覚めても>>1の事を考えているとしたら
面白いねwww
0045デフォルトの名無しさん
2016/06/12(日) 02:46:37.26ID:LFy/DKKP何一つとして有用な議論も意見も無いのがすごい
そもそも基礎となるコンセンサスが希薄なのか
砂の上にお城を立てるかのごとく、水掛け論ばかりで議論に発展していない
これは凄い
構造化の時代であれば、グローバル変数は使わないほうが良いとか、意味もなくgoto文を使うなとか
だいたい皆の意見が一致していたのに、オブジェクト指向においては意見が発散するようだ
オブジェクト指向の闇は深い
俺が思うに、機能というのは複数の何かが作用しあった結果もたらされるものであるのに
オブジェクト指向の根底には、相互作用は複雑だから、なるべくしない、自分で閉じる、自分のことだけする
という思想があって、確かに自分で閉じればシンプルになるが、反面、相互作用をして機能をもたらさなくてはならず
この辺が相反していて人それぞれ考え方が違うので意見が発散するんだと思う
要するに、オブジェクト指向は相互作用はあまりサポートしない方針なのだろう
閉じた部分は機械的にサポートするので、本当に重要な相互作用は自分で考えて設計してね、という
オブジェクト指向で重要な部分はオブジェクト思考の外の部分にあったりするかもしれない
それを見越してオブジェクトを設計する
まさにそこがノウハウであり設計の部分なのかもしれないが、そこを語ろうとしても、これは難しいよね
見えない部分に秘訣があるわけだからさ
この辺の事情が分かってないと、全てをオブジェクト指向でしなければならないかのような錯覚に陥るか
もしくは反対に、オブジェクト指向を全否定し始めるか、かなり危うい手法なのだろう
0046デフォルトの名無しさん
2016/06/12(日) 02:51:34.37ID:g978Bco60047デフォルトの名無しさん
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>>だいたい皆の意見が一致していたのに、オブジェクト指向においては意見が発散するようだ
オブジェクト指向の闇は深い
前スレは、かなり最後のほうから参加して、ちょっと書込みしただけだけど、すぐに上記のような感想を私も持ったよ。
そして、オブジェクト指向の現状に対する自分の印象が大きな間違いで無いと確認できたことが、大きな「成果」ですね。
>>閉じた部分は機械的にサポートするので、本当に重要な相互作用は自分で考えて設計してね、という
オブジェクト指向で重要な部分はオブジェクト思考の外の部分にあったりするかもしれない
オブジェクト指向がめざしていたのは、再利用だったと思う。
(まったく新しい処理(メソッド)については、やはり頭を悩まして考え抜くしかない・・・)
でも、再利用しようとしたら、「オブジェクト指向だけでは問題解決が難しい」ってことを上記のことはいいたいのだろう。
>>この辺の事情が分かってないと、全てをオブジェクト指向でしなければならないかのような錯覚に陥るか
もしくは反対に、オブジェクト指向を全否定し始めるか、かなり危うい手法なのだろう
例えば、石炭を燃やして走る戦艦があるとして、「もっと性能をアップしたい!」と考えたとき、「石炭」にごだわって、いろいろと議論してループしているような状態がこのスレかもしれない。
問題の解決法は、石油とか核物質といった石炭以外のところにあるのを知らない。
もちろん石炭を全否定するわけではなく、石炭船の技術で使えるところは、そのまま使えばいい。
小さな井戸の中に留まり続けて、外の世界に答えを求めない状態ってことかな?
0052デフォルトの名無しさん
2016/06/12(日) 07:20:37.34ID:6jjwfwovそしてそれは達成されているのかね?
0053デフォルトの名無しさん
2016/06/12(日) 09:12:36.48ID:AMLyjVO9> そもそもオブジェクト指向の目的は何かね?
>>1に書いてある
0054デフォルトの名無しさん
2016/06/12(日) 09:20:58.56ID:SXVNfTEc1を見たけど「目的」は書かれてないようだが・・・
0055デフォルトの名無しさん
2016/06/12(日) 09:23:29.43ID:AMLyjVO9なぜこういう原則が生まれたかを考えれば
その目的もわかる。
0056デフォルトの名無しさん
2016/06/12(日) 09:35:25.58ID:SXVNfTEcきちんと書かねば誤解され、正しく伝わらない。
0057デフォルトの名無しさん
2016/06/12(日) 09:49:20.24ID:OiOr5AKs・人を見下し傷つける
・人を傷つけても罪悪感を感じない
・人を批判する
・自分が批判されることは許せない
人を見下す理由
・自分の優越感を支えるため
・相対的に自己価値を高めようと必死
・批判したり、認めない、侮辱することで己の優位性を保つ
・他者を貶めることで、優越性を維持し補強する
なるほどね・・・
0058デフォルトの名無しさん
2016/06/12(日) 12:04:51.41ID:jZTbndlJオブジェクト志向的に言えば、内燃機関が石炭炉でもガソリンエンジンでも原子炉でもどうでもいい
内燃機関インターフェイスを正しく実装してさえいれば内部的にどう実装されていても戦艦全体の設計には影響しないから
部品の内部設計なんか部品屋のやることで、船体設計者は部品の性能が悪ければ部品交換の指示を出すだけ
オブジェクト志向を謳いながら部品内部の詳細設計まで求めるのはオブジェクト志向を理解していない証拠でもある
0059デフォルトの名無しさん
2016/06/12(日) 12:11:37.92ID:SXVNfTEcで、目的は?
0060デフォルトの名無しさん
2016/06/12(日) 12:19:09.72ID:jZTbndlJひとつは内燃機関は自動車や発電所でもそのまま流用できるという再利用性
ひとつは内燃機関の責任範囲を明確にしてることで石炭炉がダメなら原子炉でと付け替え可能な変更への柔軟性
個人的には後者の方を重視する、部品がダメなら部品屋に交換の指示を出すだけで済み、船体設計者の自分はその部品のチェック以外の修正が必要ないというのは楽でいい
0061デフォルトの名無しさん
2016/06/12(日) 13:06:58.48ID:18K6R/tBそれがオブジェクト指向
全体から必要な分割量は推定されるのに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オブジェクト指向スレで話題になる内容は
オブジェクト指向がサポートしてない内容であるに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:6jjwfwov0067デフォルトの名無しさん
2016/06/12(日) 15:39:34.29ID:OiOr5AKs0068デフォルトの名無しさん
2016/06/12(日) 16:08:09.00ID:UP5FRtN1本読めよ
本読んだ上で違うと思うなら、○○と書いてあるけどこういうケースではこう違うのでは、みたいに具体的に書け
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その問いに十分な回答しているレスをいまだ見たこと無い
だいたいこの二パターンしか見ない
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:UP5FRtN1https://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:UP5FRtN1http://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オブジェクト指向は簡単な概念じゃないから素人に説明するのは無理orめんどくさい
最低でもオブジェクト指向言語の開発経験のある相手じゃないと
オブジェクト指向言語の開発経験があればオブジェクト指向の目的くらい本で読んでる
したがってそんなものを説明する価値がない
0076デフォルトの名無しさん
2016/06/12(日) 16:46:59.36ID:6jjwfwov遠回しに無くても問題ないって言ってね?
0077デフォルトの名無しさん
2016/06/12(日) 16:55:38.51ID:UP5FRtN1どう解釈すりゃそうなるんだ?
まあ、なくていいと思うならやらなきゃいいんじゃね
自分で選べばいいのよ
でも、自分にとって必要ないから他の人にとってもいらないと決め付けて
「オブジェクト指向システムの設計」について語ろうってスレで
「オブジェクト指向はいらない」としつこく連投するバカにならなきゃ問題ない
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どなたかが、この質問とか、オブジェクト指向の目的について、正しいって多くの賛同を得られなくても、なんらかの回答を書き込むと思って待っていたけど、全然まともな回答が出てこない。
また、無駄な例題を出したり、すでに解決済みのコーディングは設計か?実装か?問題を持ち出して、勝手な勝ち負け判定を書き込んでいるだけみたいですね。
そして無限ループが始まる。
とりあえず私が答えてみます。
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品質は、実績あるクラスライブラリを使えば、バグがありませんから、アップしました。
コストは、バグが激減するってことで、工数が減るから残業が無くなる。
そういう意味では、コストは減ったといえますね。
プロジェクトの見積自体は、オブジェクト指向言語とか、クラスライブラリのことを考えていませんでしたから、顧客からしたらコストが下がったことの恩恵はなかったですけどね。
0084デフォルトの名無しさん
2016/06/12(日) 18:30:05.29ID:UP5FRtN1説明に困るもの ×
素人に説明するのが面倒なもの ○
だったら建築設計について知らない俺に建築設計の思想と手順を説明してくれよ
0085デフォルトの名無しさん
2016/06/12(日) 19:23:22.17ID:6jjwfwov頑張って読んだけど
オブジェクト指向関係無さげに見えたw
0086デフォルトの名無しさん
2016/06/12(日) 19:28:45.43ID:UP5FRtN1どうせこんな受け答えしかしないんだから説明するだけ無駄って言ったろw
0087デフォルトの名無しさん
2016/06/12(日) 19:32:40.14ID:6jjwfwov>>80
にはc言語でも可能な内容しかないわけで
0088デフォルトの名無しさん
2016/06/12(日) 19:35:19.56ID:UP5FRtN1お前みたいな奴にまじめにレスした人とかID:18K6R/tBとかがバカバカしくてイラついてるだろうからほどほどにな
くそうざいから死んだら
0089デフォルトの名無しさん
2016/06/12(日) 20:50:45.06ID:6jjwfwov0090デフォルトの名無しさん
2016/06/12(日) 21:12:21.27ID:UP5FRtN1初心者なら反論すんな
0091デフォルトの名無しさん
2016/06/12(日) 21:19:28.44ID:6jjwfwov0092デフォルトの名無しさん
2016/06/12(日) 21:29:18.19ID:UP5FRtN1は〜、うっざ〜
荒しの相手はもうしないからそれじゃ
0093デフォルトの名無しさん
2016/06/12(日) 21:32:48.73ID:OiOr5AKs0094デフォルトの名無しさん
2016/06/12(日) 21:40:43.64ID:SXVNfTEcC言語で可能な内容だと思う方もいるでしょう。私も、「C++って、ちょぴっとC言語にプラスしただけでしょう?言語として大した差はない?」と思っていた時期があった。
でも、C++を知ったら、再利用のパワーで、Cとの大きな差を感じた。
同様に、C#を知れば、C++以上だと驚いた。
「ライブラリの再利用」という単語だけをみたら、CでもC#でも同じ。
でも、Cだったら再利用できないものが、C#であれば、再利用可能になる。
そして、それを可能にしているのは、オブジェクト指向とは関係なくC#に追加された機能だと思う。
0095デフォルトの名無しさん
2016/06/12(日) 22:03:48.05ID:UP5FRtN1確かにこりゃ説明になってないな…
「ライブラリの再利用」に違いがあると言葉で言ってるだけで何が違うかまったく説明がない…
0096デフォルトの名無しさん
2016/06/12(日) 22:08:31.91ID:SXVNfTEcここは長文禁止でしょう?
そしていろんな言語を簡単にマスターできる優秀な人たちの集まりなんだから、C#なんてとっくの昔に知っているのだろうから説明は不要だと思うのだが・・・。
0097デフォルトの名無しさん
2016/06/12(日) 22:13:43.78ID:UP5FRtN1ちょっと前に>>94よりずっと長い文を何個も書き込んでいたのにねえ…
「C#やれば分かる」って言うんじゃ説明にはなってないような
ま、めんどくさいから説明しないでいいんじゃね
0098デフォルトの名無しさん
2016/06/13(月) 00:20:21.56ID:DkUycT/D最終的な成果物は何?
方向付けもしないで建設的な議論は無理だよ
0099デフォルトの名無しさん
2016/06/13(月) 00:43:29.95ID:Tx6AJrOcオブジェクト指向システムの設計の経験者が意見交換することだろ
オブジェクト指向を使いたくない奴やら、オブジェクト指向の経験がない奴やらが
長文連投してるせいでおかしくなってるけど
「AKBについて語ろう」ってスレで「AKB嫌い!」って連呼するようなもん
俺もAKBは嫌いだけどAKBスレで「AKB嫌い!」するのは場違いだという常識くらいは知ってるからしないよ
0100デフォルトの名無しさん
2016/06/13(月) 00:44:52.58ID:yJHs1WoR各々がオブジェクト指向やそれ以外の技術、手法について
わいわいがやがや、ときには煽りあって
仲良く遊ぶことが目的
0101デフォルトの名無しさん
2016/06/13(月) 00:50:03.51ID:Tx6AJrOc実際のとこ、オブジェクト指向という名目で罵り合うスレになってるよねw
0102デフォルトの名無しさん
2016/06/13(月) 01:43:43.03ID:6Ot446qT手続き型と関数型は相反するけど、
オブジェクト指向はどちらとも組み合わせて使うことが出来る。
その実例としてScalaがあるしね。
オブジェクト指向を使った設計の題目として適切なのは、
単一の処理を記述するものじゃなくて複数の独立したコンポーネントを
組み合わせて作るシステムの組み合わせる部分。
簡単に言えばフレームワーク。このフレームワークをオブジェクト指向で設計し
フレームワークから呼び出される個々の処理を手続き型か関数型で記述する。
だけど最近はこのフレームワークを自分で書かなくなってきたからね。
いまやオブジェクト指向設計はフレームワークとともに導入するもの
オブジェクト指向の有効性を語る時代じゃなくて深く浸透している時代なんだよね。
この目的としては○○システムのためのフレームワークを作りたい
って所だろうけど、ウェブとGUIとゲームと組み込み以外になにがあるかねぇ。
0103デフォルトの名無しさん
2016/06/13(月) 02:06:07.50ID:6lLRtxxrそれでもc#はいい言語だけどないかんせんwpfみたいなダメなフレームワークが出てきて、msもとうとうjavascriptをサポートしはじめたでしょ
もしc#がダイナミックをサポートしなきゃ、vsの力を最大限使って捩じ伏せるという思想を維持できたのに、ダイナミックをサポートしたせいで、ライブラリーのアーキテクチャの一貫性がなくなったよな
ダイナミックタイプをサポートするなら一番最初の段階で導入しなきゃダメだったしc#はあきらかにドキュメントが貧弱な言語だ
最初のリファレンスが日本語を成していないmsdnじゃ話にならないでしょ
てかオブジェクト指向ライブラリーってドキュメント貧弱なら使い物にならないんだけど、外部ライブラリの学習コストを再利用性派はどう考えてるんだろうな
それこそ自分で書いたほうがマシって奴ね
然るに再利用にこだわる人間はプログラムがへたくそでそれを自分で書けないから再利用したがるんじゃないのか
そんな奴がパフォーマンスチューニングできんの
0104デフォルトの名無しさん
2016/06/13(月) 02:24:48.89ID:CaTYV89k長文は漏れなく基地外
0105デフォルトの名無しさん
2016/06/13(月) 02:41:47.98ID:TsIFgltSオブジェクト志向の有用性を理解してないとか、他人のレスと関係なく自分の主張を繰り返すとか、理解力に乏しい人なんだねなるほど理解した
理解力が乏しく思考にも柔軟性がないから他人の考えを理解できず、他人書いたライブラリも再利用出来ない
そりゃ自分で書いた方が早いだろうね、そもそも理解出来ないんだからw
普通の理解力があれば自分で実装するよりライブラリを使う方が早いんだよ
日本語のドキュメント読んでわからなければ原文読めばいいじゃない?何も困らんよ?
たとえば明日からゲーム作る、Unity使うか相当品を自分で実装するか選べって言われたら俺は迷わずUnity使うけどな
>>103にとって自分で書いた方が早いなら自分で書けばいい、誰も止めないから
0106デフォルトの名無しさん
2016/06/13(月) 06:47:11.17ID:p1ZEOAEHこの主張は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お前何いってんの?
メソッドがなくてもそのクラスと認めてやる。
動かないけどなwwww
で何が解決してるんだよ?w
0111デフォルトの名無しさん
2016/06/13(月) 09:53:41.81ID:TsIFgltS>あるクラスを継承するには、何々インターフェースの何々メソッドと何々抽象クラスの何々メソッドを継承せよ
>一つでもメソッドがたりなければ、そのクラスとは認めない
それが言語仕様で保証されてるからあるクラスを継承している実体が何であれ関係なくあるクラスのインスタンスとして扱うことが出来る
関数で言うなら引数と戻り値の型が定められてるのと一緒なんだが?
引数も戻り値もバラバラでいちいち確認しなきゃいけない関数ライブラリが使いたいなら好きにしろとしか言えないがw
0112デフォルトの名無しさん
2016/06/13(月) 11:44:52.58ID:Tx6AJrOcこいつクラスの意味すら理解してないぞ…
お前のバカっぷりにはいつも笑わされるw
0113デフォルトの名無しさん
2016/06/13(月) 12:40:25.24ID:uQkz1EgZクソワロタwww
0114デフォルトの名無しさん
2016/06/13(月) 12:47:10.37ID:MnOA2l4s>>111
言語仕様で決めているから生じるメリットというのは型安全であって、インターフェースの共通化ではないよね
そして言語仕様で保証されているのが、明確なメリットならC#はなぜダイナミックをサポートしたのだ?ダイナミックは型安全ではないが
ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性がユーザーにとっての再利用性にどう結び付くんだ?
簡潔なシンタックスでデリゲート(ラムダ)もかけない言語にいったいどんな汎用性があるのか
0115デフォルトの名無しさん
2016/06/13(月) 14:48:27.68ID:Tx6AJrOc例によって不明瞭な主張だけど
>言語仕様で決めているから生じるメリットというのは型安全であって、インターフェースの共通化ではないよね
「インターフェースの共通化」の意味を正確に定義しろ
>ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性が
インタフェースを宣言するのが煩雑だという主張か?
0116デフォルトの名無しさん
2016/06/13(月) 16:11:58.08ID:TsIFgltSダイナミック型は、動的型付け言語とのやり取りのために実装されたようなものだから仕方ない
C#で完結出来るならダイナミック型など使わない、だがスキーマレスなJSONを吐き出す阿呆なウェブサービスと通信するとなれば、話は別だ
微妙に異なる形のそれぞれにクラスを用意するのでは効率が悪い、だから一度ダイナミック型で受けて用意したデータ型に展開する
この場合、元々通信先は型安全でないのでダイナミック型で受けても弊害はない
あくまでも一時保管であり、型安全でないままC#の世界に解き放つ事はしてはならない
動的型付け言語におけるダックタイピングはinterfaceの代替にはならない、実行するまでそれが使えるかわからないではお話にならない
静的型付け言語におけるダックタイピングはリスクが大きい、メソッドシグネチャが同じでも意図する事が異なるものがあったら事故る
Aというinterfaceが実装されているという事はそのクラスがAとして扱われることを考慮して実装されていることを保証する
それは即ち再利用時の安全を保証するものでこれはダックタイピングでは実現出来ない
つまりinterfaceってのは>>115みたいな馬鹿を縛る枷なんだよ、馬鹿が中途半端な実装をしない様に全部実装しろと明示してるの
そういう意味ではinterfaceはとても便利なんだ
0117デフォルトの名無しさん
2016/06/13(月) 16:14:31.71ID:TsIFgltS0118デフォルトの名無しさん
2016/06/13(月) 19:31:33.15ID:1I3TkKuj0119デフォルトの名無しさん
2016/06/13(月) 21:50:49.86ID:jhh9kLYjいやあ
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:1BZvkwxj0124デフォルトの名無しさん
2016/06/13(月) 22:42:11.75ID:h+DWc0m+brainfuckもチューリング完全だけどな
てかCRUDにポインタ操作は入ってないけど本当にチューリング完全かな
0125デフォルトの名無しさん
2016/06/13(月) 22:56:08.33ID:1BZvkwxjCRUDはそれを満たしてるね。ポインタ操作は関係ない
いや
> CRUD以外のシステムは一切構築できない
っていうからチューリング完全で構築できるシステム意外ってなんだろうなって気になっただけ
関数型は停止性問題とか解けるの?
0126デフォルトの名無しさん
2016/06/13(月) 23:12:47.60ID:6lLRtxxr誰もチューリング完全かどうかで言語選んでないよね
チューリング完全かどうかが判断基準なら誰もが機械語を書いているはずだが
あとCRUDのUpdate"関数"にqsortライブラリをぶち込むというのが君の解答でいいのかな?
いかにもオブジェクト指向的な回答だと思うけどね、俺が間違ってたわ、確かにCRUDはチューリング完全だね
オブジェクトの命名でポインタを押さえることができるし
create"関数"でデータ構造の生成もできるし、update"関数"でデータ構造を更新していけばクイックソーとは実装出来たも同じだね
ただし実装の詳細については考えないものとする、がオブジェクト指向の真髄ってわけだ
0127デフォルトの名無しさん
2016/06/13(月) 23:32:31.25ID:1BZvkwxjそれなら、まずチューリング完全であるはずの「CRUD以外のシステム」を定義しろ
それとは別なところで議論したいなら、さっさと間違いでしたって認めろハゲ
0128デフォルトの名無しさん
2016/06/13(月) 23:38:05.24ID:DkUycT/D0129デフォルトの名無しさん
2016/06/13(月) 23:43:18.56ID:6Ot446qT> ダックタイピングできるならインターフェース宣言すら不要なんだが、その煩雑性がユーザーにとっての再利用性にどう結び付くんだ?
インターフェース宣言が不要なのであって
インターフェースが不要なんじゃないよw
インターフェース、つまり動作するにはこの関数とこの関数が必要という
情報があることには変わらない。
あくまで宣言が不要なだけ。
で、宣言が不要っていうのは書くのは楽になるかもしれないが、
実際に動かしてみなければ足りないことがわからない。
テストを書けば良いのだが、ちゃんとテスト書いたっけ?
という悩みがどうしても消えない。
インターフェース宣言っていうのはその悩みを補完するための
あれば便利な道具だよ。
0130デフォルトの名無しさん
2016/06/13(月) 23:53:48.50ID:jhh9kLYjでもinitなんだから初期化しろよな
それが前回の処理途中であってもinitを実行したら初期状態に戻れよ
それがinit関数の役目だろうが
initを2回呼んでも大丈夫かどうかはクラスのすべての処理を読まなければわからない
これはC言語時代のグローバル変数の問題
うんこマジうんこ
0131デフォルトの名無しさん
2016/06/14(火) 00:02:54.88ID:xs1+VdTFさすがにそれはinit関数のドキュメントが悪いか
ドキュメントを読まないのが悪いか
って話なような気がする
0132デフォルトの名無しさん
2016/06/14(火) 00:23:00.74ID:ivY0lwHlそんなこと分かってるからこそ説明求めてる。
ID:MnOA2l4sはまた意味不明な書き込みをして逃げたなあ。
ID変えるのがうざいからコテ付けろよ。
オブジェクト指向が意味ないと思うのはお前の勝手だからこのスレに書き込むなよ。
死ねカス。
0133デフォルトの名無しさん
2016/06/14(火) 00:26:28.44ID:ivY0lwHl>>114宛だったか
前半は間違った
失礼
0134デフォルトの名無しさん
2016/06/14(火) 00:36:41.10ID:x23BehJNドキュメントに書くべき?
そういう作りにするべきでない?
ちなみにこれは明らかに昔で言うところの、グローバル変数の害
でも何故か言語的なお墨付きをもらって、許可されちゃった
オブジェクトは「状態」をもつ、無駄に
昔だったらファイルオープンやデバイスアクセス、通信処理ぐらいだったのに
明らかに無駄に不具合を増やしている
0135デフォルトの名無しさん
2016/06/14(火) 00:39:55.23ID:ivY0lwHlどんだけバカなの?
関数の時代から状態を維持することはできたし、サービスとかソケットとか状態を持ってた
0136デフォルトの名無しさん
2016/06/14(火) 01:03:45.84ID:M6DJWkXGほとんど無くなるのは大きなメリットだと思う
0137デフォルトの名無しさん
2016/06/14(火) 02:07:45.11ID:TbEnZJwBねえなんでinit関数なんか付けちゃったの?それ実装した奴は馬鹿なの?それとも関数型の習慣が抜けない老害?
OOPL使うなら初期化はすべてコンストラクタ内で完結させろよ、何回呼んでもインスタンスが増えるだけだから安全だぞ?
さすがにインスタンス作りまくってメモリ食い潰して死ぬのまでは面倒見切れないがw
0138デフォルトの名無しさん
2016/06/14(火) 02:15:36.54ID:M6DJWkXGそれはオブジェクト指向とは関係ない話だな。
手続き型でも関数型でも、新たなデータが増えていくならば
メモリを食い潰すことになる。
当たり前の話であり、さすがにこれに反論できるわけがないとは思うが。
0139デフォルトの名無しさん
2016/06/14(火) 03:31:02.59ID:f6jk1oMA0140デフォルトの名無しさん
2016/06/14(火) 07:44:41.95ID:ppJIXRLW0141デフォルトの名無しさん
2016/06/14(火) 08:01:46.93ID:ZM1UmKcZそういう動作ってグローバル変数使うなって言われてたと思うけど?
0142デフォルトの名無しさん
2016/06/14(火) 09:24:57.00ID:qFqOPgyt0143デフォルトの名無しさん
2016/06/14(火) 09:32:22.84ID:M6DJWkXGそういう場合にオブジェクト指向を使うと
グローバル変数が減るから良いんだよね
0144デフォルトの名無しさん
2016/06/14(火) 09:57:43.46ID:LIAgHHXu設計と実装の区別も付かないアンチが粘着してるからなw
当分このままだろうから見に来なくても大丈夫だぞ?
0145デフォルトの名無しさん
2016/06/14(火) 10:58:33.19ID:Ctb460gI事実上のグローバル変数として機能しているという認識がないのな
そういうとセッターをなくせばとかいうけどそれ結局constのことだよな?
あるいはinternal使えっていうけどそれってモジュールプログラミングで解決する話だよな?
第一複雑なプログラミングほど、複数のスレッドやデータ構造にたいする、状態の共有と適切なスコープが要求されるわけなんだけどな、君達は相互作用を記述するときに共有すべき情報をどう共有しどうスコープ分割するんだ?
これはシステム設計の根幹をなす問いだと思うが
0146デフォルトの名無しさん
2016/06/14(火) 12:00:06.53ID:LIAgHHXuオブジェクトの参照を持っていて、オブジェクトが変数へのアクセサを持っていない限りはプライベート変数にはアクセス出来ない
弄られたくない物が弄られる状況にあるならそれは設計が悪い
そういう事をする馬鹿は関数型で設計してもグローバル変数を多用するだけだから関数型がOOPより優れてる証明にはならんよ
触らせたくない物は触られない場所に置いておくと言う原則は関数型でもOOPでも何も変わらない
0147デフォルトの名無しさん
2016/06/14(火) 12:10:44.17ID:ivY0lwHlグローバル変数は変数を読み書きする。
オブジェクトはメソッドを呼び出す。内部情報が操作されることもあるが、意識する必要はない。
全然違うぞ。恥をされていることの自覚がないど素人ってすごいよなあ。
0148デフォルトの名無しさん
2016/06/14(火) 12:30:12.96ID:90DBjVJ/スコーピングも満足に出来ない馬鹿に対する救済策がないということはわかった
前スレでの指摘を思い出してほしいが、すべてのアクセサメソッドをプライベートにするということは、論理エラーのテスト実行を非常に煩雑にする、そういうライブラリもあるだろうが、内部的にリフレクションでも使っているのだろう
全てのアクセサメソッドのアクセス修飾子を極力privateにするということが必ずしも硬い設計指針ではないことは明らかになったな、事実それは単純じゃないから
0149デフォルトの名無しさん
2016/06/14(火) 13:12:16.42ID:ivY0lwHl>正しく設計できない馬鹿のためにインターフェースという鎖があった
ってのが間違いよ。バカが間違ったとしてもそいつがバカだねってだけ。
バカだなあ。
0150デフォルトの名無しさん
2016/06/14(火) 13:26:00.67ID:HFPvSksZこれは見逃せないんだけど
コーディングはプロダクトコード以外もあるだろ
例えばクラスタ化したシステムを組むならFutureでもActorでもいいけど事前検証するためのプロトタイピングしたりするだろ
設計はPDCAで回すんだから検証はドキュメントのレビューかもしれないし、プロトタイピングの結果かもしれない
前スレで橋の設計やロボットの設計の話があったけど、それこそ図面描いて机上で終わらせる事はなくて、プログラム書いてシミュレーションを繰り返す
ソフトウェア製造は検証の場合も最終製造物も同じソフトウェアだから勘違いしてるのか?
0151デフォルトの名無しさん
2016/06/14(火) 13:35:55.27ID:ivY0lwHlロボットやら建設やらソフトウェア以外の例を出すのはやめろよ。
ソフトウェアで語れ。
「建設では素人にも説明できるプロセスしか使わない」
「それなら建築のプロセスをきっちり説明しろ」
「説明できないでちゅ…」
ってなったバカだろお前。
0152デフォルトの名無しさん
2016/06/14(火) 13:50:57.78ID:HFPvSksZ同じ製造業でありソフトウェアは後発で設計・製造・試験のノウハウは建築業含む他の製造業から取り入れているのは明白
指摘した内容はソフトウェアに特化した内容ではないところなので別に良いのでは?
ソフトウェアに特化した話がしたいならそれ以前の所は理解しとこうぜってこと
0153デフォルトの名無しさん
2016/06/14(火) 13:52:58.25ID:ivY0lwHlだったら建築の話を抜いて書き直せ。
内容がないことに気付くだろうから。
0154デフォルトの名無しさん
2016/06/14(火) 13:58:18.05ID:HFPvSksZ内容なんて全くないよ
普通にソフトウェア作ってれば知ってる事を知らない奴がいるからわざわざ他の製造業を引き合いにして説明してんだから
それとなぜそこまで絡むのかも俺には理解できないけどな
0155デフォルトの名無しさん
2016/06/14(火) 14:03:14.85ID:ivY0lwHlだろ。内容ないんだから書き込むなよ。
お前が思ってるより他の人は知識があるし、何も知らないで連投してる荒らしは相手すんな。
0156デフォルトの名無しさん
2016/06/14(火) 14:35:00.21ID:LIAgHHXu建築士だって、全く何も知らないどころか「強度計算なんて役に立たない無用の長物」と喚いてる馬鹿に強度計算の詳細を説明しろと言われたら面倒くせってなるだろw
それ説明して金払ってくれるなら説明するだろうが、客でもない奴にそれを説明する建築士がどれだけいるかねぇ?
0157デフォルトの名無しさん
2016/06/14(火) 14:41:18.16ID:ivY0lwHlだよな。
0158デフォルトの名無しさん
2016/06/14(火) 16:23:27.83ID:LIAgHHXu建築では設計段階で作るという事を全くしないのか?
答えは否、日常的に作るという事をしている
ソフトウェアと違って実物に近いものを作るのはサイズ的にもコスト的にも困難であるため多くの場合模型という手段を取るだけだ
建築模型士という職業が成立するぐらいには建築業において設計段階での試作が行われている
基本的な型の決まったセミオーダーの建築であれば最終的な図面を固める前にモデルルームやモデルハウスと言った限りなく完成品に近い試作品を使って最終設計を詰めることもある
>同じ製造業でありソフトウェアは後発で設計・製造・試験のノウハウは建築業含む他の製造業から取り入れているのは明白
>>152の言うこれが正しいするならば、プロトタイピングはもっと推奨されるべきだな
0159デフォルトの名無しさん
2016/06/14(火) 16:49:38.14ID:dYSnVaKQ具体的プロセスのノウハウを取り入れてるわけじゃないと思うよ。
建築模型士という職業が成立するということと、プロトタイピングが重要なことに、関連性はないと思うよ。
建築業とソフトウェア開発が何か密接な関係があると思われてるのは、クリストファー・アレグザンダーが
建築家だったせいかもしれん。
0160デフォルトの名無しさん
2016/06/14(火) 16:58:08.57ID:LIAgHHXu建築を例に持ち出したやつへの単なる当てつけなので俺自身は建築とソフトウェアの関係が深いとは全く思っていないよ
0161デフォルトの名無しさん
2016/06/14(火) 19:22:36.65ID:x23BehJNオブジェクト指向うんこだから
解決策持ってないよね
0162デフォルトの名無しさん
2016/06/14(火) 21:06:56.34ID:MJXh41jF0163デフォルトの名無しさん
2016/06/14(火) 21:39:32.89ID:x23BehJN設計思想など捨てた
必要なものを必要なだけ作る
形など持たない
無形の位
0164デフォルトの名無しさん
2016/06/14(火) 21:52:46.07ID:GeGW2Y+g0165デフォルトの名無しさん
2016/06/14(火) 21:59:55.11ID:VJ/4c5wE0166デフォルトの名無しさん
2016/06/14(火) 22:17:14.22ID:RUir73Dkオブジェクト指向を使わないプログラムのほうが、プロとタイピングも容易で論理エラーの検出も容易なんだから
そしてプロとタイピングからスムーズに本設計に以降できないからお前達のいう"出来の悪い"オブジェクト指向フレームワークの出来上がりだ
その出来の悪いフレームワークでもプロトタイプのユースケースでは問題ない設計だったのかもしれない
10KBの入力データサイズ処理とを1GBの入力データサイズに"再利用"できると思っている
割り箸で組んだ橋に人間がのれないことは馬鹿でもわかることだが
計算機もリソースに制約があると考えていないから、再利用できるとかんがえてしまうんだね
事あるごとの変更におびえるのは、アーキテクチャそのものが脆弱だからにほかならず、一から設計できないからなんだよ
いちから設計できる人間は変更におびえる必要ないからな
0167デフォルトの名無しさん
2016/06/14(火) 22:23:39.41ID:RUir73DkSunが営業戦略でやってたキャッチコピー以外でてこないしそれは他の言語でもサポートされている
再利用性が高いのなら、なぜ今でも情報システムにたいするコストが下がらず、いまだにIT技術者不足になっているんだろうね
0168デフォルトの名無しさん
2016/06/14(火) 22:26:43.03ID:MJXh41jF0169デフォルトの名無しさん
2016/06/14(火) 22:30:29.95ID:VJ/4c5wEオブジェクト指向が生産性を高めて短時間で高品質で膨大な量の開発を可能にした
ITの仕事はこれで楽になるかと思ったが皮肉にも要求の方も多くなり人間が行う仕事量は減らなかったんだ
この業界の常識だから覚えておこうね新人君
0170デフォルトの名無しさん
2016/06/14(火) 22:33:26.92ID:RUir73Dkオブジェクト指向を理解しているが、このシステムは初めての新人を突っ込んだらどうなるか
この問いの答が想像できない奴でも設計できるのがオブジェクト指向
山のように作られたドキュメントとソースコードをたたき付けて
ドキュメントを読めばわかるといえばいい
そんな文化だよな
0171デフォルトの名無しさん
2016/06/14(火) 22:35:21.62ID:RUir73Dk結局何一つ再利用出来なかったってことでしょ?
俺の指摘通りの結果だよね
0172デフォルトの名無しさん
2016/06/14(火) 22:42:58.42ID:VJ/4c5wE新人もスンナリと頭に入ってくる美しいOOPシステムに気分が良くなるだろうね
逆にOOPをやれない粗雑で扱いにくいシステムに放り込まれた新人は即転職だ
最悪の場合そのまま自殺もありえるかわいそうに
0173デフォルトの名無しさん
2016/06/14(火) 22:48:10.44ID:x23BehJNいいね
0174デフォルトの名無しさん
2016/06/14(火) 22:48:16.02ID:MJXh41jFほら自分のお気に入りパラダイムならどうなるかが抜けてるよ、気をつけて
もう一回書き直し
0175デフォルトの名無しさん
2016/06/14(火) 22:51:15.44ID:x23BehJN0176デフォルトの名無しさん
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:XorM60VV0178デフォルトの名無しさん
2016/06/14(火) 23:18:26.39ID:XorM60VVもうかなり時間がたったしね、C++ が時間の無駄だということにはほとんどの人が気がついたとは思うけど、
でも当初予想していたよりはずいぶん時間がかかったな。
I: 具体的に何をどうやったのかな。
S: 最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。脳みそが半分でもあれば、
オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。
I: え?
S: それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?
I: いや、実はないんだけども、でも…。
...
I: だんだん呆れてきたと言わざるを得ないな。プログラマの給料を上げるためにやったって言ったね? それはひどい話ではないのかな。
S: そうでもない。選択の自由は誰にでもある。こんなに話が膨らむとは思わなかったんだ。
ま、いずれにしても、基本的に僕の策略は成功したんだ。C++ は今や消え去りかけているけど、でもプログラマの給料は高いままだ。
特に、糞みたいな C++ コードをメンテナンスしなきゃならない哀れな連中はね。大規模な C++ モジュールなんて、自分で書いたのでない限りメンテナンスできないことは理解してる?
くそみたいなコードをいじくりまわして生計立てられるようになったのはストラウストラップのおかげだから、感謝するように
0179デフォルトの名無しさん
2016/06/14(火) 23:31:50.78ID:M6DJWkXG> オブジェクトにたいするパブリックアクセサメソッドを通じたオブジェクトの内部変数へのアクセスが
> 事実上のグローバル変数として機能しているという認識がないのな
それは間違い。
もし、そのオブジェクトがグローバルオブジェクトであれば、
(えっとな、グローバルオブジェクトっていうのはどこからでもアクセスできるオブジェクトって意味だ)
グローバルオブジェクトに対する内部変数のアクセスは、たしかにグローバル変数だと言えよう。
だけど、グローバルオブジェクトなんてめったにない。
ローカルオブジェクトに対する内部変数のアクセスは、全然グローバルじゃない。
グローバル変数って言うのはどこからでもアクセスできる変数のことだ。
グローバルオブジェクトじゃない以上、どこからでもアクセス出来るわけじゃない。
っていうか、なんでこんな超初心者レベルの話をしないといかんのか?
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例えばサーバサイドJavaから入ってフレームワークを利用するような経験が多い人は設計コストは少ないと思うし、それをやり玉に挙げるのはフェアな討論ではないと思う
個人的にはOOPとしてのJavaの利点の一つにカプセル化のための細かなアクセス修飾子にあると思う
例えばC言語のfopenで使うFILEはポインタ型で定義されているが、大概の処理系ではFILEの中身の構造体はヘッダファルに書かれているのである意味公開されている
この関数自体はANSI-C規定なのでIFとしては処理系には依存しないがFILEポインタの中身に関しては規定がないので実装依存になる。
つまりFILEの中身はヘッダに書かれていようが触ってはいけないのが暗黙のルールとなっている。
もちろん処理系が固定でstdiolibの実装を熟知しているなら触るケースがあるかもしれないけどこれは稀なケースだ。
0182デフォルトの名無しさん
2016/06/14(火) 23:43:26.82ID:mQ0l4Gv2これはC言語にはないJavaの強力なアクセス修飾子による恩恵だと言える。ルールベースではなくシステム的にアクセスできないカプセル化の機構はソースコードを見ただけで設計思想が十分に伝わる個人的には説得力のあるコードが書けると思っている。
ただ、このJavaのカプセル化を正しく使って自前のクラスを設計できてる人間がどれだけ居るかと言われると半分にも満たないと思う。
勝手に非公開のメンバ変数やメソッドをpublicに直して動かしましたなんて事する人間は多くいるしpublicが好きならpythonでもやってくれって思う事は多々ある。
別にJavaエンジニア批判をするつもりはないし、C言語書きが皆優秀なんて思ってもいないが、ここでC言語書きの人たちの主張の根源はこんな感じじゃないのかなと個人的に思ったので。
元C言語書きで現在Javaメインでやってる自分としてはヘッダファイル書かなくていいのと最近のIDEのJVM系言語の強力さ、ビルドツールの充実さからJavaの方が気楽で好きではあるけど。
長文失礼。
0183デフォルトの名無しさん
2016/06/14(火) 23:50:24.10ID:M6DJWkXG> こういうことが起きないように注意を払ってクラス設計するわけだが
普通に「層」という考えで作れば
そういうことは起きないよw
オブジェクト間に層が無くて単一の層で
相互関係がってやるから難しくなるんだよ。
「層」を作ってやれば、大して難しい話じゃない。
0184デフォルトの名無しさん
2016/06/15(水) 00:13:10.43ID:ytrU1urc>自分の欲しい機能だけを簡単に切り出すことができない
ライブラリを参照したら結局必要ない関数もついてくるしあんまり変わらないんじゃないの?
関数内でほかの関数呼んでる場合もあるし、欲しい関数だけ切り出しても動かない事も多いでしょ
>javascriptなら{}って書くだけ
リファレンスと表記の仕方を比べても意味が無い
それにECMAScriptの公式リファレンスには同じくらい長い文章が出てくると思うよ
>>178
それネタだから
http://www.stroustrup.com/bs_faq.html#IEEE
0185デフォルトの名無しさん
2016/06/15(水) 00:16:28.62ID:pWxix8Mt0186デフォルトの名無しさん
2016/06/15(水) 00:22:32.71ID:wTcNi+2O馬鹿がやって混乱させてるのを見てわかるだろ。
馬鹿がプログラミングするんじゃねーと。
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/jR0190デフォルトの名無しさん
2016/06/15(水) 01:00:33.77ID:ytrU1urc手続き型、関数型vsOOじゃ戦えなくなってきたから静的vs動的に切り替えたの?それOO関係無いよね
もう一回書き直し
0191デフォルトの名無しさん
2016/06/15(水) 01:02:38.10ID:SLYlY5zm最近はもうpakage defaultでいいやってなってる
0192デフォルトの名無しさん
2016/06/15(水) 01:11:51.77ID:pWxix8Mt0193デフォルトの名無しさん
2016/06/15(水) 01:19:50.46ID:SLYlY5zm0194デフォルトの名無しさん
2016/06/15(水) 01:19:58.13ID:Onzr2dahよお馬鹿
0195デフォルトの名無しさん
2016/06/15(水) 01:20:31.94ID:gHR2VZA2> 簡単なことを複雑にやるばかほど生産性が低い人間はいない
> 簡単なことしかやれない馬鹿のほうがよほど価値があるよな
これは日常生活レベルで同意出来る
> 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:gHR2VZA2Erlangあたりがメインの言語の人なのかもしれないけど意識が高いのは分かった
OOPLがマルチパラダイム化するのは長年使われてきた功労者の側面だし、時代にあったコーディングができないエンジニアは言語問わず淘汰されると思う
個人的には長年使われてエンジニア人口が多い言語はある種の正義だと思うし、質はともかく頭数をそろえるのは簡単だし
新人にいきなり関数型言語を教えるのは難しいと思っている。C#やJavaのとっつきやすさは抜きん出ているし。
だってOOには動物クラスと猫クラスの例えがあるからね。新人にはぴったりだ。
もちろんこんなのはウンコの例えだしある程度経験を積めばこの例えがひどい事はすぐに気づくと思う。
関数型言語の大罪はいつまでたってもサンプルが算術的すぎる事にあると思う。
これは新人が学ぶには敷居が高すぎる。
0199デフォルトの名無しさん
2016/06/15(水) 02:20:05.26ID:gHR2VZA2また、メリットは絶対的に感じるものではなく相対的に感じるものなので自ずと手続き型言語やオブジェクト指向型言語が対抗馬になる。
単一言語しかやらない人にその言語のメリットを問うのは難しいし、話が合わないのは当然だと思う
個人的にはScalaを使う事もあるけど、チーム開発となるとエンジニアの母数から言ってJavaになるのはしょうがないと思っている
0200デフォルトの名無しさん
2016/06/15(水) 04:00:49.97ID:lIUne/jR0201デフォルトの名無しさん
2016/06/15(水) 06:36:36.25ID:RnAU+AQ/まあ、そうだね。
カッタナイフはうまく使いこなす事務の女性が、「日本刀なんてダメよ!仕事で役に立たないわ!」と言う。
包丁の使い方をしらない料理下手の主婦が、「この包丁だめね、おさしみ綺麗に切れない!」と言う。
私は、自転車と自動車と飛行機の違いだと思っている。
自転車はほとんど誰でも乗りこなせて、気楽に買い物できる。
でも、子供との2人乗りはできても、大人を2人運ぶことは難しいし、ちょっと大きな荷物も運べない。
長距離移動も通常は難しい。
自動車は、普通免許とるには勉強と、それなりの運動神経等が必要だし、お金がかかる。
4,5人くらい同時に運べるし、ちょっと大きな荷物も大丈夫。長距離移動も可能。
でも国外への移動は難しい。
飛行機になると、免許書は、自動車免許を取るよりずっと難しくなるし、ボーイングの○○の操縦免許を持っていてもエアバスの××は操縦できない。
英語も必要だし、身体能力のチェックも厳しい。
でも、長距離を高速に移動できるし、旅客機なら大量の荷物も運べる。
無免許運転の罪を問われないとして、普通免許を持っていない人が「ちょっと10km先まで小包とどけてくれない?」と頼まれたとき、自転車と自動車のどちらを選ぶか?って問題と似ている。
自転車を使えば、体力的にちょっと大変かもしれないけど、安心・確実に届けられる。
でも、アクセルもブレーキもよく分らない無免許の人が自動車を運転したら、荷物を届けるよりも事故る可能性のほうが高い。
ここでオブジェクト指向言語に文句を言い続けている人は、無免許で自動車を運転して事故ったか、その危険さを強調しすぎる人たち。
でも、情状酌量の余地もあるかもしれない。
彼らは、自動車程度と考えた難易度が飛行機の免許くらいに広い知識や経験が要求されることを知らなかった。
飛行機を操縦するなら、まずは自動車免許くらいは持っていてほしいけど、それさえ持たない人がいきなり飛行機にチャレンジしたのだから。
0202デフォルトの名無しさん
2016/06/15(水) 08:07:41.61ID:lfIMoC4C0203デフォルトの名無しさん
2016/06/15(水) 08:11:43.28ID:lfIMoC4Cもちろん馬車で欲しい出力が出る人ならいいけどね
それとも馬をエンジンの抽象クラスから継承するかい
0204デフォルトの名無しさん
2016/06/15(水) 08:49:12.12ID:FEVYup+X0205デフォルトの名無しさん
2016/06/15(水) 10:16:06.32ID:i4R0HEqY0206デフォルトの名無しさん
2016/06/15(水) 10:27:51.47ID:DCrbbIQF関数型使えないってErlangの存在だけで崩れさるよね
美しさ使いやすさとかより実用性全振り
0207デフォルトの名無しさん
2016/06/15(水) 11:43:26.20ID:RVEnmxomErlangが(メッセージング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/bEFjJavaやC#等のオブジェクト指向言語を使うこと?
業務システムをドメイン駆動なんたらで作る事?
提唱者だかが考えてたメッセージングなんたら?
多分、分かりやすくて破綻しない手法を目指しているんだとは思うけど
0213デフォルトの名無しさん
2016/06/15(水) 13:44:00.79ID:pWxix8Mt設計できない雑魚は黙ってろw
0214デフォルトの名無しさん
2016/06/15(水) 13:44:52.21ID:pWxix8Mt実際の設計はできないくせにくだらない妄想を連投してる奴にうんざりだよ
0215デフォルトの名無しさん
2016/06/15(水) 13:47:38.55ID:c3Bh5f0V0216デフォルトの名無しさん
2016/06/15(水) 14:00:20.67ID:DCrbbIQF将棋アプリを業務システム風に設計するスレなら別にいいんだけど
0217デフォルトの名無しさん
2016/06/15(水) 15:09:02.08ID:pWxix8Mt設計の経験があるなら将棋の設計もできるだろ
できないんだからおとなしくしてろ
0218デフォルトの名無しさん
2016/06/15(水) 15:09:42.51ID:pWxix8Mt>>73
注意したよ
0219デフォルトの名無しさん
2016/06/15(水) 15:16:42.78ID:i4R0HEqY0220デフォルトの名無しさん
2016/06/15(水) 15:19:04.44ID:i4R0HEqY>>211にするか。
0221デフォルトの名無しさん
2016/06/15(水) 15:23:55.03ID:c3Bh5f0V0222デフォルトの名無しさん
2016/06/15(水) 15:31:53.54ID:DCrbbIQFそれ以外の例を出すべきと言ったんじゃなくて「オブジェクト指向による設計」について同意できてないんだから
設計例だしてもそれはオブジェクト指向ではない
設計ではないで無限ループになるだけという意味
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:i4R0HEqY0226デフォルトの名無しさん
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:i4R0HEqY0230デフォルトの名無しさん
2016/06/15(水) 16:31:44.45ID:JxLjXALv人生とは何かとか、自分とは何か、とか、自分探しするのと一緒の脳の原理で物事を考えている状態
病気
許されるのは大学生まで
0231デフォルトの名無しさん
2016/06/15(水) 16:36:00.86ID:i4R0HEqY0232デフォルトの名無しさん
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意味不明w
UI、表示、ロジック分けたって全部実装する必要があることには変わりない。
0237デフォルトの名無しさん
2016/06/15(水) 16:44:56.93ID:i4R0HEqY0238デフォルトの名無しさん
2016/06/15(水) 17:13:12.92ID:Dz16mfwaどんどんやれ
0239デフォルトの名無しさん
2016/06/15(水) 18:08:48.11ID:pWxix8Mt2スレ以上消費しても何の合意も得られないんだから具体的な例で
のぞましい設計を提示し合えばいいだろ
なんと呼ぶかで延々議論するよりよほど有益
0240デフォルトの名無しさん
2016/06/15(水) 18:10:58.01ID:pWxix8Mt現在までの進捗は
>>74
0241デフォルトの名無しさん
2016/06/15(水) 18:15:05.97ID:pWxix8Mt人をクラスとして表現する必然性は見当たらないからboard.crush()一択
0242デフォルトの名無しさん
2016/06/15(水) 18:55:13.59ID:i4R0HEqY0243デフォルトの名無しさん
2016/06/15(水) 19:12:34.16ID:c3Bh5f0V0244デフォルトの名無しさん
2016/06/15(水) 19:18:49.23ID:i4R0HEqYジュネーブで驚いたことは、皆すばやく隠密行動をとること。
ある意味国民総忍者の国だと思った。
0245デフォルトの名無しさん
2016/06/15(水) 19:19:57.11ID:DCrbbIQFそらそんな議論してないし
0246デフォルトの名無しさん
2016/06/15(水) 19:34:53.62ID:pWxix8Mt言いたいことがまじで分からん
ま、漠然と意見を言い合っていても何も得るものがないのは過去170スレを見直せば分かること
0247デフォルトの名無しさん
2016/06/15(水) 19:41:43.23ID:DCrbbIQF今のまま「設計」を続けていって構わないけど途中でその設計はオブジェクト指向じゃないとかそういう話に逸れていくと思うけどいいの
俺はこのままでもいいけど
0248デフォルトの名無しさん
2016/06/15(水) 19:55:33.11ID:pWxix8Mtオブジェクト指向のあるべき設計はこうだってことで争ってるなら実際の設計で比較すればいい
オブジェクト指向なんて使えないから他の手法を使うべきだって主張するならその手法を採用した場合の設計を提示すればその良さが実感できるかもしれない
どっちにしても有意義
0249デフォルトの名無しさん
2016/06/15(水) 20:08:34.40ID:JxLjXALv0250デフォルトの名無しさん
2016/06/15(水) 20:10:53.72ID:JxLjXALvオブジェクト指向を全否定する必要もない
前々から言っている
当たり前のこと
0251デフォルトの名無しさん
2016/06/15(水) 20:13:18.84ID:pWxix8Mtこういう批判だけのクズってほんと役に立たねえよなあ
どうせ設計できないもんだからそんなことしか書けないんだろ
お前みたいな無能をはじくのにちょうどいい
0252デフォルトの名無しさん
2016/06/15(水) 20:21:14.35ID:fBdcLY2F0253デフォルトの名無しさん
2016/06/15(水) 20:29:50.06ID:JxLjXALv0254デフォルトの名無しさん
2016/06/15(水) 20:51:28.59ID:c3Bh5f0V設計が同じになるワケが無いんだよ。
0255デフォルトの名無しさん
2016/06/15(水) 21:12:37.83ID:pWxix8Mt電王戦の要件は明記してあるぞ
業務システムの設計だってヒアリングと想像で設計するんだから変わらんよ
0256デフォルトの名無しさん
2016/06/15(水) 21:23:16.74ID:+1SYtdX+ここまで来て何の発展もないってことは
誰も興味ないってことだろ?
いい加減に気付けってw
0257デフォルトの名無しさん
2016/06/15(水) 21:24:14.27ID:pWxix8Mtくそみたいに役に立たないやり取りを続けてるのは無駄だと気付けよw
0258デフォルトの名無しさん
2016/06/15(水) 21:28:50.98ID:8bhbJlMwボランティアで教育しようという奇特な人はいないから
まともに相手をされてないことにいい加減に気付けよ
0259デフォルトの名無しさん
2016/06/15(水) 21:29:21.82ID:+1SYtdX+0260デフォルトの名無しさん
2016/06/15(水) 21:29:59.89ID:pWxix8Mt他のやり取りが有益なら同意する意見だけど
他のやり取りがクソだから説得力ねえなあwww
お前の書き込みは特に頭悪い
0261デフォルトの名無しさん
2016/06/15(水) 21:30:54.05ID:pWxix8Mt設計できないクソが何言っても説得力ないぞ
設計できるようになってから書き込もうねw
0262デフォルトの名無しさん
2016/06/15(水) 21:31:59.13ID:pWxix8Mt設計してない奴が偉そうに言っても何の説得力もねえw
設計できるようになってから言おうね
0263デフォルトの名無しさん
2016/06/15(水) 21:35:59.51ID:+1SYtdX+お気の毒に・・・
0264デフォルトの名無しさん
2016/06/15(水) 21:39:36.90ID:pWxix8Mt>>263
0265デフォルトの名無しさん
2016/06/15(水) 21:40:05.26ID:pWxix8Mt>>262
0266デフォルトの名無しさん
2016/06/15(水) 21:41:40.48ID:+1SYtdX+0267デフォルトの名無しさん
2016/06/15(水) 21:49:23.79ID:UhHgLJc8まずさいしょに
俺こういう設計考えた
みんなこれを批判してくれ
こういうスタイルで学習を開始できなかったのは
それを思いつかなかったのか
批判されるのが怖かったのか
たたき台にする設計すらなかったのか
そのあと
煽りと挑発だけで誰から何を貰おうとしているのか
センスの悪い学習方法だなって思うわ
0268デフォルトの名無しさん
2016/06/15(水) 21:53:49.28ID:wFzMSfegオブジェクト指向でテスト工数が減るわけ無いだろ馬鹿
0269デフォルトの名無しさん
2016/06/15(水) 22:26:22.89ID:pWxix8Mtたたき台は何度も出してるから見直せ
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ほらな
設計を見せてみって言うと何も提示できない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:6djhCn1Zboardという名前の二次元配列を用意する
駒はstring型ないしは、enum型で
用意する
駒の動きは、駒をキーとしたハッシュマップで定義する
もし存在しないボード位置に駒を動かそうとした場合、トランザクションの再送を要求する
その他王手放置、自軍の駒がいるなども検出する
移動した先のボードが敵陣3マス、もしくは現在敵陣にいる場合なるかを問い合わせる
的の駒と同一のボード位置にのった場合、的の駒をてもちにくわえる
手持ちの駒は、空いているスペースのどこにでもうてるが、後ろニス住めない駒には制限がある
にふとか、王手放置とかも結局同じのりで実装できる
ボード状態を元にアップデート関数を
自称設計者はうんうんうなってればいいだろ
ボード状態と手駒と手番ぐらいしか可変状態がないんだから、これほど簡単なシステムないだろ
もし見落としがあるなら、実装した瞬間にわかるよ
それとも何か、将棋システムは変更しうるとかいってabstract classを導入するのか
0276デフォルトの名無しさん
2016/06/16(木) 00:35:39.58ID:6djhCn1Zなぜならば、結局駒の動きを気にするのは、どのように駒が動かしうるかを判定するためであり、それは結局ボードクラスにたいする依存性を持つからである
駒自身の動きは可変ではなく、駒が決まれば不変である
この場合駒はステートを持たないので駒クラスは不要である
なりかふなりかもまたボード状態に記載すればすむ
これぐらい設計の基本だよね
0277デフォルトの名無しさん
2016/06/16(木) 00:37:51.94ID:u57UUEr00278デフォルトの名無しさん
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はダメだって言ってる人はまだまだ研鑽が足りない
0282デフォルトの名無しさん
2016/06/16(木) 09:31:26.27ID:u57UUEr0棋譜はデータだよ。
0283デフォルトの名無しさん
2016/06/16(木) 09:31:57.33ID:u57UUEr0思考はメソッドだ。
0284デフォルトの名無しさん
2016/06/16(木) 10:57:48.76ID:Ep7N62dPコマンドクラスとコンテナで表現すればいいじゃん。
0285デフォルトの名無しさん
2016/06/16(木) 12:17:12.62ID:YejbenNI0286デフォルトの名無しさん
2016/06/16(木) 12:19:51.00ID:YejbenNIメソッドまで落としちゃうと、挟み将棋と本将棋と回り将棋と将棋崩しと
色々入れ替えるの面倒じゃん?
0287デフォルトの名無しさん
2016/06/16(木) 15:15:38.06ID:Zyv+xIAQ設計できない奴が妄想をしつこく書き込むな。
それだけ。
お前から学ぶことなんてねえよ。
なに勘違いしてんだwww
0288デフォルトの名無しさん
2016/06/16(木) 15:18:11.10ID:Zyv+xIAQそれは単なる機能列挙であって設計じゃない。
関数で構築するつもりっぽいけど、主要な関数の一覧と呼び出し合う関係くらいまでは落とさないと。
0289デフォルトの名無しさん
2016/06/16(木) 15:20:40.68ID:Zyv+xIAQ>駒自身の動きは可変ではなく、駒が決まれば不変である
なら駒の情報になる。
それなのに
>駒の動きはKoma classにいれるべきではない
というのは話が繋がらないような。
結論自体の是非はさておき、理由がうまく説明できていない。
0290デフォルトの名無しさん
2016/06/16(木) 15:24:10.62ID:Zyv+xIAQそんなことない。
アルゴリズムをクラスにするパターンあるだろ。
0291デフォルトの名無しさん
2016/06/16(木) 16:37:12.43ID:ocSeYCMJ0292デフォルトの名無しさん
2016/06/16(木) 17:58:51.49ID:ofhl9o3m0293デフォルトの名無しさん
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:YejbenNI0296デフォルトの名無しさん
2016/06/16(木) 18:18:06.26ID:Zyv+xIAQクラスにしないとしても移動範囲を確認する回数は変わらんと思うが。
どうして回数に違いが出てくると思った?
0297デフォルトの名無しさん
2016/06/16(木) 18:20:38.72ID:cGv9O2J3UI部の駒の表現をオブジェクトにするのは別によいと思うよ
パフォーマンス関係ないし
0298デフォルトの名無しさん
2016/06/16(木) 18:21:44.84ID:Zyv+xIAQどっちでもいいように設計すべきだろう。
棋譜データをあれこれ分析するならDBのほうが便利そうだし。
0299デフォルトの名無しさん
2016/06/16(木) 18:22:29.22ID:cGv9O2J3仮想関数にすると、同じ回数の問い合わせであっても、一回一回が遅いという事
0300デフォルトの名無しさん
2016/06/16(木) 18:24:39.75ID:Zyv+xIAQ駒は成っているかと配置されたマスの情報を持っていると捉えることもできるぞ。
逆に盤が駒を持っていると捉えることも可能だけど、どっちの方針にすべきか?
って考えないのはだめ。
0301デフォルトの名無しさん
2016/06/16(木) 18:24:59.40ID:YejbenNI思考処理は盤面配列構造体のままオンメモリーで高速に計算すんだぜ?
駒の動きから全部内包した1本の思考処理な。
ルール変わったらまるっと入れ替えだろ
0302デフォルトの名無しさん
2016/06/16(木) 18:27:49.67ID:Zyv+xIAQきちんとした設計を作る前にパフォーマンスを考え出すのは
典型的な失敗パターンって意見に賛同する。
0303デフォルトの名無しさん
2016/06/16(木) 18:30:25.99ID:YejbenNI0304デフォルトの名無しさん
2016/06/16(木) 18:31:13.47ID:9Nh/ZMFg0305デフォルトの名無しさん
2016/06/16(木) 18:35:13.00ID:YejbenNIそれとは別に今の盤面をトレスする棋譜クラス、
それら記号を人間に親しみ易い形に翻訳する入出力クラスがあんだろ?
0306デフォルトの名無しさん
2016/06/16(木) 18:35:57.41ID:cGv9O2J3成っている、に関しては、別の種類の駒として扱えばよいだけ
わざわざ状態を持たせて複雑にする必要性はない
>駒は配置されたマスの情報を持っている
将棋において、こんな実装は絶対あり得ない
考えるだけ無駄
ボードが駒を持っていて配列で管理しないと、隣のマスに何があるかとかが、すぐにわからない
いちいちすべての駒を検索して、隣に何があるか検索するとか、有りえない
配列でインデックス化、これは必須
アルゴリズムとデータ構造からやり直せ
>逆に盤が駒を持っていると捉えることも可能だけど
可能とかじゃなくて、将棋の場合、お前以外は全員そうする
0307デフォルトの名無しさん
2016/06/16(木) 18:41:10.52ID:YejbenNIそこにある駒には位置情報や回転角度や色んな二次的要素を盛り込んだらいい。
0308デフォルトの名無しさん
2016/06/16(木) 18:51:16.49ID:YejbenNI0309デフォルトの名無しさん
2016/06/16(木) 19:01:28.33ID:YejbenNI思考の中断や、その時点での最善手を返すように設計する事は出来ると言か、そこが設計。
あ、思考を時間で切り上げるのも必要だね?
0310デフォルトの名無しさん
2016/06/16(木) 19:03:02.98ID:Zyv+xIAQまともな設計もない段階からパフォーマンスを考えるのは失敗への近道って一般的に言われてるけど
0311デフォルトの名無しさん
2016/06/16(木) 19:05:16.93ID:YejbenNI持ち時間は将棋の基本ルールだけど?
0312デフォルトの名無しさん
2016/06/16(木) 19:11:35.59ID:Zyv+xIAQ>成っている、に関しては、別の種類の駒として扱えばよいだけ
そういうやり方もできるってことは分かってるって書いたろ
同じことをしつこく繰り返さないでいいよ
その理由はって聞いてる
>可能とかじゃなくて、将棋の場合、お前以外は全員そうする
合理的に理由を説明できないのは無能。
そんなにおかしい考え方ならちゃんと合理的に説明したら?
それとボードの情報も必要なことくらいはすでに分かってる
スレを読み直せば何度も出てる話
結局ある程度形になった設計にならないとそんなの知ってるって感じだなあ
0313デフォルトの名無しさん
2016/06/16(木) 19:18:21.88ID:YejbenNI0314デフォルトの名無しさん
2016/06/16(木) 19:38:16.55ID:Zyv+xIAQそんなことないだろ
少なくても詳細設計では決める
0315デフォルトの名無しさん
2016/06/16(木) 19:46:56.60ID:q/qD4Mvc例えば可能手をリストで出す場合に前者は駒の種類と現在の位置、移動先の位置を一つのレコードで表すのに対して後者は駒と移動先の位置で表せる
現在位置のマスター情報はボードが持ってるのを考えれば個人的には後者の方が扱いやすいと思う
後者ならリストではなくハッシュでも良いかもしれない
0316デフォルトの名無しさん
2016/06/16(木) 19:48:46.23ID:YejbenNIうん、だったら今まだ基本設計すら終わって無いがな。
0317デフォルトの名無しさん
2016/06/16(木) 19:56:34.63ID:Zyv+xIAQ今はそうだな
「設計としちゃあ、盤面の表現方法の細部はどうでもいいよ」がおかしいって話
0318デフォルトの名無しさん
2016/06/16(木) 19:59:34.35ID:YejbenNI盤面の状態で評価値を決めるだけだから。
必要なのは次の評価盤面を設計生成する処理の中だけだから。
だから好きに作っていいよ。
0319デフォルトの名無しさん
2016/06/16(木) 20:02:38.33ID:q/qD4MvcUIの詳細設計を指向ロジックと同じタイミングでする必要なんて無い
そもそもの要件でなんちゃらってプロトコルを使うのが前提だからUIは切り離されてるんじゃ無いの?
0320デフォルトの名無しさん
2016/06/16(木) 20:37:45.01ID:4Cpcy39i0321デフォルトの名無しさん
2016/06/16(木) 21:19:56.60ID:Zyv+xIAQむしろ盤面・駒に関係しない機能が見当たらないレベルだと思うが…
盤面・駒が決まってないのに構築するってどういうこと?
開発チームには設計を渡して作ってもらうって前提だろ
頭のなかにぼんやりあります、作りながら考えます、じゃ話にならん
0322デフォルトの名無しさん
2016/06/16(木) 22:01:05.50ID:u57UUEr0> アルゴリズムをクラスにするパターンあるだろ。
もしかしてアルゴリズムを入れ替え可能にする場合の話?
それはアルゴリズムをパターンにしているのではなくて
入れ替え可能なクラスにするパターンだよ。
今回アルゴリズムの入れ替えは必須条件なの?
仮にそうだとして駒や将棋盤は、入れ替え可能にする必要あるの?
0323デフォルトの名無しさん
2016/06/16(木) 22:04:28.42ID:u57UUEr0プロは頭の中で将棋指せるよね?
目隠し将棋って言葉もあるぐらいなんだから。
ならコンピュータでも駒や将棋盤いらないんじゃね?
プロ以上にに記憶力高いんだから。
0324デフォルトの名無しさん
2016/06/16(木) 22:11:47.74ID:Zyv+xIAQそうだぞ
http://echo.2ch.net/test/read.cgi/tech/1463663267/608
0325デフォルトの名無しさん
2016/06/16(木) 22:13:28.03ID:Zyv+xIAQ新しいロジックは登場するし
ディーブラーニングの実装とかもあり得る
ロジック勝負のソフトなんだからロジックの改良は当然想定するもの
0326デフォルトの名無しさん
2016/06/16(木) 22:19:09.43ID:tGwmaN5Dインターフェイスとしては
「盤面、持ち駒、手番」を渡したら次の手と評価値を返すって設計で十分だろ。
0327デフォルトの名無しさん
2016/06/16(木) 22:23:21.37ID:u57UUEr0じゃあせいぜいアルゴリズムの部分だけをクラスにして
入れ替え可能にすればいいだけだよね?
その他にクラスを作る理由がない。
Javaなら絶対にクラスが必要だから作るしかない程度のレベル
0328デフォルトの名無しさん
2016/06/16(木) 22:34:26.30ID:7/iCJYF00329デフォルトの名無しさん
2016/06/16(木) 22:34:50.16ID:0I01+HHKいつからコンピュータが駒や将棋盤を使っていると錯覚していた?
0330デフォルトの名無しさん
2016/06/16(木) 22:39:14.26ID:Zyv+xIAQそういうぼやぼや〜とした言い方だとなんとも…
もうちょい具体的にならんか
ってか設計するとき図書かないの?
0331デフォルトの名無しさん
2016/06/16(木) 22:39:48.26ID:Zyv+xIAQオブジェクト指向じゃない設計でやってくれていいんだよ
0332デフォルトの名無しさん
2016/06/16(木) 22:43:40.18ID:u57UUEr0> ここまでオブジェクト指向にメリット無し(笑)
オブジェクト指向のメリットははやり
GUIやゲームやウェブフレームワークを使うような
大規模アプリに向いてるんじゃないかな?
0333デフォルトの名無しさん
2016/06/16(木) 22:54:16.29ID:Zyv+xIAQオブジェクト指向のこと分かってねえなあ
提唱者の一人であるイヴァー・ヤコブソンは電話交換機を制御するソフトウェアの新版の開発でソフトウェアコンポーネントを採用することを提案した
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訂正
×日本でしか知られていない何某
○誰だか知らないけど連呼するバカがいる何某
0335デフォルトの名無しさん
2016/06/16(木) 23:54:32.37ID:u57UUEr0↓じゃあなんで英語版あるの?
https://en.wikipedia.org/wiki/Ivar_Jacobson
0336デフォルトの名無しさん
2016/06/16(木) 23:55:20.54ID:u57UUEr00337デフォルトの名無しさん
2016/06/16(木) 23:57:31.32ID:G5rMjmXf電話交換システムはイベントドリブンで駆動し、ひとつひとつの処理自体は小さく、多数の要求を捌く必要がある
そりゃOOPの得意分野だろうな、将棋の思考ロジックとは真逆の性質だし
だから将棋はOOP向いてないからやめとけって言ったのにw
0338デフォルトの名無しさん
2016/06/16(木) 23:58:01.86ID:7/iCJYF00339デフォルトの名無しさん
2016/06/16(木) 23:58:49.59ID:aspjQAZDまあ普通に考えて電話交換機は向いてるわな
0340デフォルトの名無しさん
2016/06/16(木) 23:59:12.86ID:Zyv+xIAQだからこの人は有名だし、貢献してる人だって
0341デフォルトの名無しさん
2016/06/17(金) 00:01:01.10ID:TaepHcLbはいはい
>>73
0342デフォルトの名無しさん
2016/06/17(金) 00:01:31.88ID:MlF9RYHUだからOOPが向いてる所にきちんと使ったって話よな?よくわかるわw
0343デフォルトの名無しさん
2016/06/17(金) 00:03:06.83ID:l49nKCjR「GUIやゲームやウェブフレームワークを使うような」
に限定する必要はないってことで意見が一致したな
0344デフォルトの名無しさん
2016/06/17(金) 00:03:50.49ID:l49nKCjRはいはい
>>73
0345デフォルトの名無しさん
2016/06/17(金) 00:12:28.10ID:yJAudjC9だったらお前はまずOOPの前に日本語だな。
在日の日本語ではこのレベルの議論は無理だよ。
> この人は日本でしか知られておらず、オブジェクト指向の思想の形成には何ら貢献していない何某とは違って
> オブジェクト指向の形成に寄与した人
つまりイヴァー・ヤコブソンは日本でしか知られていないと言っている(表記上はそう取る方が妥当)
点の打ち方が違う。最低限以下。
この人は、日本でしか知られておらずオブジェクト指向の思想の形成には何ら貢献していない何某とは違って、
オブジェクト指向の形成に寄与した人
誤解を防ぐなら以下。
この人は、オブジェクト指向の形成に寄与した人。
日本でしか知られていなくてオブジェクト指向の思想の形成には何ら貢献していない何某とは違う。
0346デフォルトの名無しさん
2016/06/17(金) 00:18:40.58ID:gkJjvuAc妥当じゃないんじゃね?www
0347デフォルトの名無しさん
2016/06/17(金) 00:19:13.55ID:ny8DMCFmしかし、考えてみれば、独立性の高い処理は、どんな方法で書くにしても向いているのだ!
独立性の高くない処理を書くには工夫が必要であるが
OOPを使うと独立性の高い箇所を機械的にサポートしてくれるので
その分、独立性の高くない複雑な部分に注力できるので、幾分楽になる、かもしれない、し
逆に、設計をミスって余計にややこしくなってドツボにはまる可能性もある
しかし、考えてみればコンピュータは単純作業を人間の代わりに高速に行うのが主であるからして
簡単な部分をより簡単になるようサポートするというOOPのあり方は、ある意味正当
0348デフォルトの名無しさん
2016/06/17(金) 00:22:44.94ID:l49nKCjRいや、そりゃないだろ
山本だか何だかを連呼していた奴がいた流れを知らなかったか?
それなら説明が足りなかったな
0349デフォルトの名無しさん
2016/06/17(金) 00:35:48.93ID:MlF9RYHUとりあえず日本語係り受け解析にかけてみた
この人は→知られておらず、
日本でしか→知られておらず、
オブジェクト指向の→思想の
思想の→形成には
形成には→貢献していない
貢献していない→何某とは
何某とは→違って
オブジェクト指向の→形成に
形成に→寄与した
寄与した→人
うん、>>333にはイヴァー・ヤコブソンが日本でしか知られていないと書いてあるなw
0350デフォルトの名無しさん
2016/06/17(金) 00:46:15.76ID:E0Eh0gCl0351デフォルトの名無しさん
2016/06/17(金) 00:53:43.42ID:yJAudjC9http://echo.2ch.net/test/read.cgi/tech/1463914293/
だいたい ID:u57UUEr0 自身も>>335でそう取っているのに>>346でジョブチェンジしてんじゃねーよ糞が
色々と自演臭いんだよこのスレ。実は前から思っていた。
今も奇妙な止まり方してるだろ。
0352デフォルトの名無しさん
2016/06/17(金) 00:54:49.25ID:l49nKCjRお前の理解だとイヴァー・ヤコブソンが日本でしか知られていないんだろ
そしたら文章の流れが明らかにおかしいじゃん
�@イヴァー・ヤコブソンは日本でしか知られていない
�Aオブジェクト指向の思想の形成には何ら貢献していない何某とは違う
�Bイヴァー・ヤコブソンはオブジェクト指向の形成に寄与している
点の打ち場所がややおかしいことは認めるけど、誤字脱字が普通の2ちゃんでそこまで求めるなよ
文章のロジックがまったく通らない理解がおかしいと思わなかった?
ロジックが弱いと設計も苦手だよなw
オブジェクト指向とはまったく関係ない話になってるからあとはスルーするわ
0353デフォルトの名無しさん
2016/06/17(金) 00:55:29.51ID:jYlDfS4oもう一回小学生からやりなおせ
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自分の間違いに気づいたなら大人しく黙ってればスルーしてやるのに見苦しく自己弁護するから突っ込まれるんだよ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:n4KcCzCp0359デフォルトの名無しさん
2016/06/17(金) 08:55:06.90ID:Yteqqpsz実装はどうでもいいんだ。奴らに騙されるな。
言ってみれば道徳であり価値観であり、バイブルなんだ。
0360デフォルトの名無しさん
2016/06/17(金) 11:23:05.77ID:l49nKCjRこれはひどい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:ny8DMCFm0364デフォルトの名無しさん
2016/06/17(金) 18:34:03.18ID:l49nKCjR完全に同意
設計を出そうぜ
0365デフォルトの名無しさん
2016/06/17(金) 18:35:46.52ID:PuKdxxvHそれを実装するためにOOPが強力なツールになる
0366デフォルトの名無しさん
2016/06/17(金) 18:45:00.21ID:Yteqqpsz0367デフォルトの名無しさん
2016/06/17(金) 19:36:14.31ID:kH8PlC/a0368デフォルトの名無しさん
2016/06/17(金) 19:38:02.93ID:l49nKCjRはいはい
>>73
0369デフォルトの名無しさん
2016/06/17(金) 19:40:17.28ID:uLuFYYs10370デフォルトの名無しさん
2016/06/17(金) 19:43:57.64ID:l49nKCjRはいはい
>>248
0371デフォルトの名無しさん
2016/06/17(金) 19:51:52.99ID:2ilgHKU90372デフォルトの名無しさん
2016/06/17(金) 19:55:15.56ID:l49nKCjRお前が付ければスルーするぞ
0373デフォルトの名無しさん
2016/06/17(金) 20:03:29.70ID:Yteqqpsz今のwimdowsマシンでやってるのは、ナンチャッテオブジェクト指向です。
0374デフォルトの名無しさん
2016/06/17(金) 20:10:14.13ID:aKMh1mqmプログラマも開発よりネットで布教するのが好きそうなヤツばかり
0375371
2016/06/17(金) 21:49:14.75ID:iQqhQQY/0376デフォルトの名無しさん
2016/06/17(金) 21:51:19.13ID:l49nKCjRはいはい
>>213
0377デフォルトの名無しさん
2016/06/17(金) 22:05:56.54ID:uLuFYYs10378デフォルトの名無しさん
2016/06/17(金) 22:31:42.76ID:kH8PlC/a0379デフォルトの名無しさん
2016/06/17(金) 22:39:23.19ID:/fdmUUqz詳しそうなので教えて欲しいんだけど
信者がエモいのは常なので脇においとくとして
具体的にはSmallTalkって言語自体はどこらへんがウンコなの?
0380デフォルトの名無しさん
2016/06/17(金) 23:04:13.59ID:5DYjDCcf互換性がない処理系が乱立しまくっているところ(デファクトと言えるものすらない)
ごく稀な例外を除き、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:gkJjvuAc0383デフォルトの名無しさん
2016/06/18(土) 01:20:35.86ID:IiwwzCA4それは確かにウンコだわ
ウンコかっくらいながら幸せそうにエモってるSmalltalk信者こわい
https://www.wantedly.com/companies/allstocker/employee_interviews/13525
0384デフォルトの名無しさん
2016/06/18(土) 08:27:56.03ID:8GpUPXrh今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>>そこで、フレームワーク作成者同士が話し合いをして、モジュール分割をして少しでも共通化をはかり、コンセンサスをとればいいが、彼らはオレオレ設計を過信するあまり人の話を聞かない
屋根屋を重ねるようなJavaのフレームワーク(現在はどうか知らないが)だと、覚えることが多いし、フレームワーク間の整合性をとるのも面倒だから、オールイン・ワンのフレームワーク=オレオレ設計のほうが使いやすい気がする。
>>かくして、ライブラリユーザーは楽をするためにフレームワークを導入するはずが、・・・疲弊していくのである
それでも、開発コスト削減>>学習コスト増、フレームワークの信頼性>>独自開発の信頼性、となってメリットが十分に大きい可能性もある。
フレームワークを採用しない昔ながらの開発手法を続けるとプログラマが疲弊することも多いと思う。
>>彼らのフレームワークの選定基準は、流行っているか否かであるが、彼らはフレームワークが廃れたときにどうするのだろうか
ま、フレームワークに限らず、ハードウエアもOSも何年かごとにアップグレードの要求が迫られるし、Windows10なんて強制アップグレードまでされ、困っている人が世界中で続出している。
VB6プログラマは、.NET・C#への対応を迫られるし、iOSのObjective-CプログラマはSwiftへの対応を迫られる。
どの世界にいても、学習を継続しないと、時代に対応できないってことだと思う。
#CでEntityFrameworkだけを使っていても、バージョンアップがちょくちょくあるから、古い日本語サイトの情報・サンプルプログラムだけを頼りにしていると、迷いの森にはまり込んでしまう。
海外QAサイトのstackoverflowなどを読む必要があったりする。
>>彼らはフレームワークが廃るたびに苦渋の決断を迫られるのである
フレームワークへの対応、新技術への対応をやらないでいると、「MS率いる黒船軍団が“DevOps鎖国”日本に開国を迫った日」の記事にあったのがリアルになる予感がする。
0388デフォルトの名無しさん
2016/06/18(土) 13:36:35.80ID:en0l8YJd0389デフォルトの名無しさん
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アスペクト指向でもコンポーネント指向でもない。
当時、誰だったか(教授?)から聞いたとき、それオブジェクトと指向の応用やん。
オブジェクト指向にメタデータつけただけやんって思ったやつ。
見事にポシャったようだけど、あれなんて名前だっけなぁ。
0392デフォルトの名無しさん
2016/06/18(土) 14:46:22.63ID:Rz2nddOnエージェント指向のこと?
ありましたねそんなのが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その通り。よくこれだけの内容でわかったねw
0395デフォルトの名無しさん
2016/06/18(土) 16:55:28.92ID:z0PKWcGF0396デフォルトの名無しさん
2016/06/18(土) 16:59:09.44ID:qpxG5nAOライブラリもフレームワークも使わないのか?
もしかして言語から作ってるのか?
0397デフォルトの名無しさん
2016/06/18(土) 17:11:20.87ID:en0l8YJddobon.netのコピペ以外の仕事したことねーぞ!
0398デフォルトの名無しさん
2016/06/18(土) 17:24:41.37ID:qpxG5nAO388 名前:デフォルトの名無しさん[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ちょっと誤解していたので、話の流れがつかめなかった・・・。
コピペって、フレームワークを使っているソースをコピペして、ちょいちょい修正して「完成!」っていう意味じゃあなかったんだね。
フレームワークを使わないソースのコピペってことね。そりゃあ保守性は悪くなる。
0402デフォルトの名無しさん
2016/06/18(土) 17:54:34.96ID:en0l8YJd再利用率で俺を越えられるのかよ
お前等のオブジェクト指向でよw
0403デフォルトの名無しさん
2016/06/18(土) 18:01:49.66ID:Rz2nddOn重複はないか、プロジェクトの命名規則に合っているか
意味不明のコメントは入っていないとか確認しているなら問題ないんだけどね
コードレビューしてると明らかにコピペだろっていうのがあるね
もちろん却下するけど疲れるんだよねw
0404デフォルトの名無しさん
2016/06/18(土) 18:02:55.77ID:OT8jgjaBお前の他人との再利用率?
0405デフォルトの名無しさん
2016/06/18(土) 18:12:27.75ID:qpxG5nAO> 再利用率で俺を越えられるのかよ
超えられると思う。
自分で書くコードが少なければ少ないほど
他人が書いたコードを再利用しているってことだし。
俺の書くコードって本当に少ないよw
もちろん少ないコードで目的を実現してるってことだけど。
0406デフォルトの名無しさん
2016/06/18(土) 18:32:14.52ID:en0l8YJd私の再利用率は100%です
さらにコピペ元を後2つ(StackOverflow、yahoo知恵袋)残している
0407デフォルトの名無しさん
2016/06/18(土) 18:43:50.58ID:It8FmILL0408デフォルトの名無しさん
2016/06/18(土) 19:01:00.27ID:en0l8YJdだってそもそもオブジェクト指向ってゴミだし
0409デフォルトの名無しさん
2016/06/18(土) 20:35:19.66ID:smX42iBz0410デフォルトの名無しさん
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+S0413デフォルトの名無しさん
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:Rz2nddOn0416デフォルトの名無しさん
2016/06/18(土) 22:46:01.34ID:3yK0Yke9ぶれまくった設計思想からなるくそみたいな再利用性
0417デフォルトの名無しさん
2016/06/18(土) 22:53:41.45ID:Rz2nddOn0418デフォルトの名無しさん
2016/06/18(土) 23:01:59.76ID:z0PKWcGF0419デフォルトの名無しさん
2016/06/18(土) 23:14:03.28ID:Rz2nddOn0420デフォルトの名無しさん
2016/06/18(土) 23:30:14.08ID:en0l8YJd全然わからない
文章で表現してみてくれ
0421デフォルトの名無しさん
2016/06/18(土) 23:47:05.93ID:qpxG5nAO> 再利用は手段であって目的ではないよ(´・ω・`)
再利用っていうのはコストを下げるためにするんだよ。
コストを下げるのが目的じゃないことなんて
まずないんだが。
0422デフォルトの名無しさん
2016/06/19(日) 00:51:08.41ID:8JnAsfByオブジェクト指向は品質も上げなければコストも減らせない
0423デフォルトの名無しさん
2016/06/19(日) 00:58:37.28ID:gwIfHFNOそれってさ
自動車は遠くまでいけない(運転できないから)
って言ってるのと同じような意味でしょ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/8a0427デフォルトの名無しさん
2016/06/19(日) 01:31:35.37ID:GzcXh8P5Parnasの論文でも読んでみたら?
0428デフォルトの名無しさん
2016/06/19(日) 01:48:19.73ID:XpUIM/8aいやだからな、カプセル化されてる事で修正が楽なのがメリットであってそのメリットは再利用じゃないだろと
0429デフォルトの名無しさん
2016/06/19(日) 01:52:14.10ID:T66+XKyvビジネス向けの宣伝が多いよね
昔の酷い本だと再利用として継承を使うみたいのがあって酷かった
0430デフォルトの名無しさん
2016/06/19(日) 02:05:36.98ID:zdAFjwp00431デフォルトの名無しさん
2016/06/19(日) 03:15:13.28ID:9goOoVtkその目標を円滑に出来る方法論のひとつが
オブジェクト指向方法論
その他も有る
始まりはCPU
終わりは、目的コード
その課程の困難なこと
始まりのころの常識は現在ではほとんどが非常識
このオブジェクト指向方法論もいつまでも常識でないことを
念頭においてね
もとCPU方法論で行かなくては
0432デフォルトの名無しさん
2016/06/19(日) 07:02:28.93ID:xWUER/kUそうなんだよね。「継承で再利用性アップ!」として、C++で開発を始めた某パッケージプロジェクト。
私も開発に参加したけど、予算を○億くらい使い、なんとかベータ版完成。
でも、営業やインストラクターから多数の変更要望が発生した。
ソフトは、スーパークラスのスーパークラスのスーパークラスのスーパークラスの仕様を追いかけて理解&修正する必要があった。
だから「要望への対応は無理」ってことで、そのパッケージは没・・・。
(現在は、前バージョンの発展版が発売中)
>>430
だから、私は一時期、アンチになった。
でも、それは「継承利用にはメリットとデメリットがある」みたいなトレードオフを考慮すればいいだけ。
その対立構図は不毛だと思う。
>>431
なので、始まりの常識が非常識になったとまでは思わない。
0433デフォルトの名無しさん
2016/06/19(日) 08:19:13.87ID:QHhML3+qあぁこれはもう駄目の典型だね
ちょっとした仕様を変更するために
スーパークラスのスーパークラスのスーパークラスのスーパークラスの仕様を変更する必要があって
仕様を変更したら、目的じゃないところにまで影響がでて・・・
これじゃ、コピペ技法のがマシ
だから俺は多態目的以外で継承は使わない
少々面倒でもコピペにしておいた方が、後で融通が利く
コードを纏めるにしても、関数(メソッド)でよい
ある部分の仕様が変わったときは、元の関数はそのままに〜〜Exとか新しい関数を作って
変更があった部分からは、そっちを呼び出すようにすればよい
継承&再利用だとがんじがらめになるから、こういうことがなかなか難しい
0434デフォルトの名無しさん
2016/06/19(日) 08:56:26.27ID:xWUER/kU>>仕様を変更したら、目的じゃないところにまで影響がでて・・・
そう。だから、開発中他に影響でないように修正取り込むのが大変だった・・・。
>>ある部分の仕様が変わったときは、元の関数はそのままに〜〜Exとか新しい関数を作って
変更があった部分からは、そっちを呼び出すようにすればよい
C#の拡張メソッドが、まさしくその考え方だよね。
でも、この手法は、ジェネリック、ラムダ式、型推論、動的な型など、オブジェクト指向とはあまり関係ない、さまざまな機能拡張の末に実現されたのだと思う。
それで実現されたC#の再利用に対するパワーは物凄い。
だから、そういう素晴らしいものは、「オブジェクト指向はクソ!!」と大きく宣伝して、世間一般や多くのプログラマに知らせず、入り口で頓挫させ、競争優位を保つことが大切かもしれない。
0435デフォルトの名無しさん
2016/06/19(日) 09:04:28.56ID:I//I4PRq大抵の場合、開発者の脳みそにしかないオブジェクトの状態遷移や生存期間は
仕様書には書かれない
0436デフォルトの名無しさん
2016/06/19(日) 09:15:50.13ID:zdAFjwp0GRASP出てきたのっていつ頃だっけかな
0437デフォルトの名無しさん
2016/06/19(日) 09:28:48.59ID:bljjS0X+0438デフォルトの名無しさん
2016/06/19(日) 10:06:28.67ID:GzcXh8P50439デフォルトの名無しさん
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:gwIfHFNO0442デフォルトの名無しさん
2016/06/19(日) 11:17:03.31ID:gfPWR5Hkprivate変数は自由にアクセス出来ないから拡張や修正が難しいなんて馬鹿みたいな事を言い始める
ハサミを渡されてハンマーの代わりに使うような人が文句を言うんだ
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> 実際関数のほうが粒度が細かいので凝集性を高められるからな
粒度(笑)、凝集性(笑)
実際にコードで示してみ。
どこがどうなってるから凝集性が高いって。
どうせ言えないだろうなwww
0446デフォルトの名無しさん
2016/06/19(日) 11:47:40.17ID:zdAFjwp00447デフォルトの名無しさん
2016/06/19(日) 12:11:46.19ID:T66+XKyv拡張はともかく修正はprivateで容易になる事はあるが困難になる場面なんて想像もつかん
0448デフォルトの名無しさん
2016/06/19(日) 12:26:30.69ID:XpUIM/8a言葉尻だけを拾いたがる煽り>>445など
それをしたり顔で指摘する馬鹿>>446など
どれも共通の無能というスーパークラスを持ってるのはわかる
わかるがここはそういう場所だからまあ気にしないな
0449デフォルトの名無しさん
2016/06/19(日) 12:28:57.91ID:zdAFjwp0ブーメラン乙
0450デフォルトの名無しさん
2016/06/19(日) 12:35:46.26ID:gfPWR5Hk昔は匿名でも真面目なヤツ有能なヤツが居たから成り立ってた
今は無能で不真面目しかいない
匿名をやめればとりあえず不真面目は消えるだろう
0451デフォルトの名無しさん
2016/06/19(日) 13:03:38.13ID:iUGmpCP5SNSはほとんどそうだね
0452デフォルトの名無しさん
2016/06/19(日) 13:20:09.89ID:T66+XKyv0453デフォルトの名無しさん
2016/06/19(日) 13:33:45.74ID:ao4WLgfXSN比が低いのは仕方が無い,でも本音がこぼれる場面はこちらの方が多いはず,あとは受け取る側の感受性の問題
0454デフォルトの名無しさん
2016/06/19(日) 13:54:05.86ID:J/2rkjpj自覚症状のない馬鹿は仕方ないとして、自演するゴミがいるからな
ワッチョイすれば多少はマシになるんじゃね?
0455デフォルトの名無しさん
2016/06/19(日) 18:00:51.69ID:iV6NLMrLtwitter厨ならtwitterに帰れよ
0456デフォルトの名無しさん
2016/06/19(日) 18:36:00.55ID:M20F+kXyレベル低いだろ
140字で設計の何を議論できるんだ
馴れ合いツールに高度な議論をもとめるほうが可笑しいよな
0457デフォルトの名無しさん
2016/06/19(日) 18:50:28.34ID:Z3K3Aq0Z結構有名なプログラマが名前出してて発言してるから情報は有用だよ
議論には向かないけど
0458デフォルトの名無しさん
2016/06/19(日) 18:53:18.58ID:AHbgvYcJ社内で馬鹿が作ったコードには糞みたいなインターフェイスしかなくて
しかたなく public にして直すってことはあるな。
ほとんど利用者のことを考えてない馬鹿が作ったコードっては大抵そうなる。
少しはテストコード書くなりして使い勝手を考えてる人ならこうはならん。
そのクラスの使い方にポリシーがないんなら格好つけてないで struct にでもすりゃいいのにと思う。
0459デフォルトの名無しさん
2016/06/19(日) 18:53:44.53ID:Z3K3Aq0Z0460デフォルトの名無しさん
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意味不明なことを言っててきもいぞ
0463デフォルトの名無しさん
2016/06/21(火) 20:10:22.01ID:7+lcUPZz0464デフォルトの名無しさん
2016/06/21(火) 20:17:05.10ID:qYztFKJRスレタイ嫁よ
0465デフォルトの名無しさん
2016/06/21(火) 22:54:12.55ID:y4ISmUkb0466デフォルトの名無しさん
2016/06/22(水) 00:02:41.33ID:1owlsp3d思考回路が破壊されるのかもしれない
オブジェクトは自分のことしか考えないアスペみたいなもので
互いにコミュニケートさせるのに非常に苦労するよ〜
0467デフォルトの名無しさん
2016/06/22(水) 00:30:18.13ID:1owlsp3d2chは日本中からアクセスがあって
ソフト屋は何となく2chネラーも多いと思うんだけど
そんななか、こういったスレが全然伸びないのはいたって健全なこと
オブジェクト指向なぞ、まじめに考える必要ないって、みんなが分かっている証拠だからね
上手く活用できればそれで良いんですよ
これについて深く考えるのは自分探しをするようなものですから
0468デフォルトの名無しさん
2016/06/22(水) 01:18:41.97ID:ZVSLNdYXお前の実力不足
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+q7eBY0OO=オブジェクト志向=概念
OOP=オブジェクト志向プログラミング=手法
OOPL=オブジェクト志向言語=言語
すべて別のものだ、混同するな
なお憲法や法律とOOPは全く関係ない
0472デフォルトの名無しさん
2016/06/22(水) 09:55:25.38ID:sAE2foKf0473デフォルトの名無しさん
2016/06/22(水) 10:31:40.12ID:ZVSLNdYXプロは分かりやすい実例を出す
0474デフォルトの名無しさん
2016/06/22(水) 11:04:06.41ID:DmPvlaR4勢い一位なんだよなあ
0475デフォルトの名無しさん
2016/06/22(水) 11:08:34.46ID:1owlsp3d原理主義のような凝り固まった考えをする必要はないです
何事も深く原理を学んで利用することは悪いことではないと思うけど
OOの背後に壮大な数学の理論があるというわけでもないので
こういった掲示板で誰もが唸る、統一的な答えは出ません、科学的に考えるだけ無駄です
言うなれば、ただの整理整頓術ですよ
どういった整理の仕方が作業効率アップにつながるかはケースバイケースです
案件をよく観察して、常に最適で現実的な判断をしましょう
0476デフォルトの名無しさん
2016/06/22(水) 11:22:35.60ID:J+q7eBY0そりゃ時には1人で1日40レス超えを叩き出す様な奴が張り付いてたから仕方ない
0477デフォルトの名無しさん
2016/06/22(水) 12:08:58.60ID:7uThdI9/シリアライズファイル? テキスト出力でええやろ
0478デフォルトの名無しさん
2016/06/22(水) 17:44:40.75ID:ZVSLNdYXオブジェクト指向を理解できないくせに粘着してるお前のこと?
0479デフォルトの名無しさん
2016/06/22(水) 18:14:47.83ID:6IfmwJDo0480デフォルトの名無しさん
2016/06/22(水) 21:33:53.96ID:MQ+N3vLVオブジェクト指向チームは僕が考えた最強のクラス図を書いてから一歩もシーケンス図とか書いてないし
0481デフォルトの名無しさん
2016/06/22(水) 21:39:37.91ID:ZVSLNdYXアンチオブジェクト指向はしょーもない疑似コードしか出てねえだろ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俺が知りたいのは原理主義の馬鹿をどう排除すればいいかってことなんだが。
0485デフォルトの名無しさん
2016/06/23(木) 00:32:08.21ID:q3ndqaXN0486デフォルトの名無しさん
2016/06/23(木) 00:56:28.80ID:W4u3AiNW0487デフォルトの名無しさん
2016/06/23(木) 07:09:37.54ID:q3ndqaXN0488デフォルトの名無しさん
2016/06/23(木) 12:06:34.77ID:lELEc838お前趣味でプログラムやってる厨房だろw
設計しないプロジェクトねえからwww
そんな根本的なこともしらないで書き込むなよ
10行のコード書いて設計完了って言ったのお前だろwwwwwww
0489デフォルトの名無しさん
2016/06/23(木) 12:09:55.49ID:lELEc838シーケンス図作ってもまともな議論ができる奴がいないからやる気にならない
このスレにいる奴らってレベル低いよなあ
設計のことも、オブジェクト指向のことも分かってない奴らばかり
まともなシステムを設計した経験がある奴がいなさおう
自分では自分のことがそんなにレベルが高いとは思ってなかったけど
お前らのやり取り見てたら自分はすげえレベルが高いんだと気が付いた
0490デフォルトの名無しさん
2016/06/23(木) 12:13:33.45ID:jpePQA5L0491デフォルトの名無しさん
2016/06/23(木) 12:24:50.46ID:NySSu7d+0492デフォルトの名無しさん
2016/06/23(木) 13:05:07.11ID:lELEc838お前何も出していないだろwwwww
実際に何かを提示してから言え
0493デフォルトの名無しさん
2016/06/23(木) 13:58:32.28ID:32PUATmE0494デフォルトの名無しさん
2016/06/23(木) 14:07:17.50ID:1rhmo8jOオブジェクト志向を理解出来ずに暴れてる馬鹿と理解してるつもりで無駄な分割をする間違ったオブジェクト志向原理主義者が無駄に喧嘩してて呆れるってのはわかる
だがそれを見て俺レベル高いとか言ってるのは前述した二者と同じレベルで愚かだと思うんだ
0495デフォルトの名無しさん
2016/06/23(木) 14:44:05.82ID:y7ScZ0170496デフォルトの名無しさん
2016/06/23(木) 18:42:59.59ID:lELEc838お前ほんとまともなロジックの文章が書けないほどバカだよなwwww
だがそれを見て俺レベル高いとか言ってるのは前述した二者と同じレベルで「愚かだと思う」んだ
他人を愚かだと思う奴は愚かだといってる本人が「愚かだと思う」って言っちゃうってwwwww
笑わせてもらったwwwwwwwwwwwww
0497デフォルトの名無しさん
2016/06/23(木) 18:48:46.26ID:g5j6ahxJ0498デフォルトの名無しさん
2016/06/23(木) 18:59:12.33ID:lELEc838クラス図が書けりゃシーケンス図だって書けるだろ
難易度は変わらんから
シーケンス図書くのに苦労しちゃうほどセンスないんだろうな、お前
0499デフォルトの名無しさん
2016/06/23(木) 19:35:11.92ID:6SrVsK3m0500デフォルトの名無しさん
2016/06/23(木) 19:35:32.76ID:U8UFrmXEシーケンス図をかくと、自分がいかに無駄なクラス構成してるのか一目瞭然になって、二度とオブジェクト指向使わないでおこうって、少しでも知性があればなるよ
0501デフォルトの名無しさん
2016/06/23(木) 19:43:20.86ID:lELEc838クラスがなきゃシーケンス図は書けないんだから当たり前じゃん
ほんとに君はバカだなあ
0502デフォルトの名無しさん
2016/06/23(木) 21:11:43.26ID:MkLCQgSiあれを設計だとオブジェクト指向派は言ってたんだぜ
ごたくはいらんからさっさと駒クラスを活用してシーケンスかいてみろ
俺は駒クラスは不要だと思ってるんでね
0503デフォルトの名無しさん
2016/06/23(木) 21:12:38.26ID:lELEc838クラス図なんて出てねえぞwwww
またバカ晒してるw
0504デフォルトの名無しさん
2016/06/23(木) 21:27:37.94ID:lELEc838シーケンス図を書くのが面倒なのはこういうバカの相手をする価値がないから
0505デフォルトの名無しさん
2016/06/23(木) 22:09:36.78ID:53SjK6zR順調順調
0506デフォルトの名無しさん
2016/06/23(木) 22:14:09.51ID:FsHU6vOc0507デフォルトの名無しさん
2016/06/23(木) 23:40:40.23ID:/w1wUEkv0508デフォルトの名無しさん
2016/06/23(木) 23:43:08.48ID:W4u3AiNW> シーケンス図をかくと、自分がいかに無駄なクラス構成してるのか一目瞭然になって、
無駄なクラス構成してるのか一目瞭然になるという
シーケンス図を見てみたいんだがw
いや、シーケンス図の役割を考えると
そんなシーケンス図って作ろうと思っても作れないだろ?
0509デフォルトの名無しさん
2016/06/23(木) 23:45:40.22ID:bIbDEqRH0510デフォルトの名無しさん
2016/06/23(木) 23:59:15.63ID:lELEc838例題はなんでもいいんやで
何度も言われてるのにしつこいなあコイツ
なめくじ以下の記憶力wwwww
0511デフォルトの名無しさん
2016/06/24(金) 00:00:13.28ID:3JCNaefqクラス図を知らないシーケンスおじさん乙www
0512デフォルトの名無しさん
2016/06/24(金) 00:06:02.53ID:SwddNommユーザー ブラウザ ウェブアプリケーション ルーター コントローラー モデル
みたいな流れになるんだろうな。
0513デフォルトの名無しさん
2016/06/24(金) 00:07:26.05ID:3JCNaefqご冗談を
0514デフォルトの名無しさん
2016/06/24(金) 00:08:15.60ID:SwddNomm先の上にある処理がメソッドになるのだろうな
0515デフォルトの名無しさん
2016/06/24(金) 00:08:57.68ID:SwddNommhttp://www.itsenka.com/contents/development/uml/sequence.html
> この機能は、「店員オブジェクト」、「管理画面オブジェクト」、「倉庫オブジェクト」、「商品オブジェクト」から構成されている。
やっぱり上の四角がクラス出会ってるっぽい。
0516デフォルトの名無しさん
2016/06/24(金) 00:32:00.04ID:YGLTOLOhこれは完全にastahの手先が書いてるな
普通はエクセルで描くだろw
0517デフォルトの名無しさん
2016/06/24(金) 00:33:04.58ID:SwddNomm0518デフォルトの名無しさん
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お前がさっさと消えればいいだろwwww
バカなコードを書いて設計と言ったことをバカにされたことをいまだに恨んで粘着してるのかな?
0520デフォルトの名無しさん
2016/06/24(金) 09:01:35.16ID:yQaWh/ysエクセルでUMLって、方眼シーンだよねw
0521デフォルトの名無しさん
2016/06/24(金) 09:22:58.57ID:WkjZuPpRじゃあこのスレ削除依頼だしてこいよ
便利だとわかっていて、設計の議論はもう終わってるんならこのスレいらんだろ
0522デフォルトの名無しさん
2016/06/24(金) 09:38:16.42ID:oxHgXhyR隔離施設としてはあまり機能してないのがちょっと残念だが
0523デフォルトの名無しさん
2016/06/24(金) 10:30:32.44ID:3JCNaefqオブジェクト指向についていけない時代遅れのじいさんが喚いてるのはみっともない
0524デフォルトの名無しさん
2016/06/25(土) 08:23:41.07ID:LMzPPgZI0525デフォルトの名無しさん
2016/06/25(土) 08:37:57.45ID:QJOI9Akg0526デフォルトの名無しさん
2016/06/25(土) 16:37:17.58ID:xk5V4JUl0527デフォルトの名無しさん
2016/06/25(土) 16:53:09.33ID:qqU1JBUQいまだにけなそうとするのはガラパゴスだなあ
0528デフォルトの名無しさん
2016/06/25(土) 20:49:37.13ID:TP9NVC7qいや法律も通貨も人もみんなで共有しようがEUだから
0529デフォルトの名無しさん
2016/06/25(土) 21:26:34.35ID:4D3VGib90530デフォルトの名無しさん
2016/06/25(土) 22:00:15.64ID:OT6LtrEX俺も生まれてこの方、一度も来てないから安心しろw
0531デフォルトの名無しさん
2016/06/25(土) 22:37:01.20ID:DZzmiqO/別にけなしちゃいないがどんなモジュールも無理矢理オブジェクト指向でつくるのは
あほだと言ってるだけだよ。
0532デフォルトの名無しさん
2016/06/26(日) 01:12:16.60ID:Lsnw3Tmtすべてをオブジェクト指向で作れなんて誰も言ってない
妄想で語る妄想老人
0533デフォルトの名無しさん
2016/06/26(日) 04:42:35.10ID:MOs+lhSh将棋の話でも思考ロジックはオブジェクトする必要はないが
フレームワークの部分はオブジェクト指向が良いって意見が大半だったし。
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どうしたらいいですか?
0538デフォルトの名無しさん
2016/06/26(日) 10:28:37.14ID:YPMfAgP/0539デフォルトの名無しさん
2016/06/26(日) 13:23:45.95ID:Lsnw3Tmt駒もクラスにするという考えはあり得るだろ
その是非を議論すればいいだけ
将棋ソフトはオブジェクト指向を適用できるのは証明されてるのに認められない時代遅れじじぃ
自分が理解できないものはだめという発送はさすが老害
「実際の現場で説得できない」ことがお前の無能を証明しているw
このスレでもオブジェクト指向以外でやるべきだと思うなら別の手法で設計した場合の
優位性を合理的に説明しろって何度も言われてるじゃん
説明できない無能は現場じゃ相手にされんわwwwwwwww
0540デフォルトの名無しさん
2016/06/26(日) 13:31:49.59ID:MOs+lhSh> 駒もクラスにするという考えはあり得るだろ
それを言ったら数値もクラスにするという考え方もあるし
関数もクラスにするという考え方もある。
真のオブジェクト指向はすべてがクラスだ。
だから何?って話。それは言語仕様によってすべてが
クラスになるってだけで、別にクラスにしたくてしてしているわけじゃない。
今はすべてがクラスではない言語で、あえてクラスにするかなぁ?って
話をしている。駒をクラスにする必要はない。
0541デフォルトの名無しさん
2016/06/26(日) 13:39:17.07ID:Lsnw3Tmtだから何?
0542デフォルトの名無しさん
2016/06/26(日) 13:40:36.27ID:Lsnw3Tmtだったら正しいと思う設計を提示しろよ
しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
って言っても誰からも相手にされないぞ
0543デフォルトの名無しさん
2016/06/26(日) 14:43:05.06ID:Pdgj+EY0自分で、説明できなきゃ無能、と発言したのだから
ID:Lsnw3Tmt 自身が説明する必要がある
>説得できない」ことがお前の無能を証明している
>優位性を合理的に説明しろって何度も言われてる
>説明できない無能は現場じゃ相手にされん
>だったら正しいと思う設計を提示しろよ
>しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
>って言っても誰からも相手にされないぞ
これ全部お前の発言だろ
さぁ説明しろ
0544デフォルトの名無しさん
2016/06/26(日) 14:48:39.82ID:Pdgj+EY0>駒もクラスにするという考えはあり得るだろ
の説明をするんだ
しょぼい10行くらいのコードしか提示しないで「俺の考えのほうが優れている」
って言っても誰からも相手にされないぞ
説明できない無能は現場じゃ相手にされんぞ
↑
全部お前の言ったことだぞ
説明しろ
0545デフォルトの名無しさん
2016/06/26(日) 15:56:07.32ID:vfFMY3S3思考には盤の配置と種類、手持ちの種類と数だけ分かればいいから。
0546デフォルトの名無しさん
2016/06/26(日) 16:05:19.97ID:Lsnw3Tmt何言ってんだ?
しょぼい10行くらいコードよりはるかにましなUML図は既に提示されてる
「オブジェクト指向じゃない設計のほうがいい」ってお前は主張したいんだろ?
だったらあんなしょっぽいコードじゃ誰も納得せんから少しはましなものを出せよ
0547デフォルトの名無しさん
2016/06/26(日) 16:24:08.84ID:v33GKkt2だからいってんだろ
クラス図は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このじじぃまだ言ってんのか?
クラス図じゃないのにクラス図と思い込む技術レベルの低さをどうにかしたほうがいい
スキルがなさ過ぎて会話が成立しない
0551デフォルトの名無しさん
2016/06/26(日) 17:29:16.14ID:aZz3l9QB出来損ないパラダイムのキャッチコピーを真に受けて、自分の頭を使っていない分staticおじさんよりたちがわるいんだよねえ
0552デフォルトの名無しさん
2016/06/26(日) 17:58:09.31ID:ygmpo/L2どうしたらいいですか?
0553デフォルトの名無しさん
2016/06/26(日) 18:09:05.29ID:hBvFQk6r0554デフォルトの名無しさん
2016/06/26(日) 18:14:44.57ID:Pdgj+EY0>駒もクラスにするという考えはあり得る
の説明しろよ
自分では何も説明できないのに、他人に説明を求めて
説明ができなきゃ無能だと言う(>>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:JtTxC37i0558デフォルトの名無しさん
2016/06/26(日) 18:44:42.79ID:iZxmKzSiあのクラス図は酷かったな
設計がどーのって以前にクラス図を書いた事ないの丸出しのお粗末さ
今だってUML図とか謎用語使ってる時点でお察しなんだよ
0559デフォルトの名無しさん
2016/06/26(日) 19:01:07.06ID:LiHdCwxSER図じゃなかったか?
0560デフォルトの名無しさん
2016/06/26(日) 19:02:35.92ID:/rpwjXlSとりあえずこの無能に名前付けようぜ。
・Javaおじさん
・オブジェクトおじさん
・オブジェクト原理主義者
・クラスおじさん
どれが一番しっくり来る?或いは他にいいのがあれば。
とりあえずstaticおじさんはオブジェクト指向無しでプログラミングするのに困っていない。
こいつは多分プログラミング自体が出来ない。
継承構造は、
無能 - 意識高い系 - Javaおじさん
有能 - 頑固 - staticおじさん
といったところか。
0561デフォルトの名無しさん
2016/06/26(日) 19:42:07.06ID:L3t3Zo3Aなるほどー抽象的な方から継承されてくわけですなー
これは勉強になるぅ
0562デフォルトの名無しさん
2016/06/26(日) 22:02:51.82ID:MOs+lhShお前は命名おじさん?w
0563デフォルトの名無しさん
2016/06/26(日) 22:52:47.22ID:Lsnw3Tmtクラス図じゃないものをクラス図と思い込むレベルの低さよwwwwwww
お前みたいなアホ相手じゃ会話が成立しない
0564デフォルトの名無しさん
2016/06/26(日) 22:54:16.95ID:Lsnw3Tmt具体的な設計の会話ができないお前は
ゴミコード設計おじさんだなw
0565デフォルトの名無しさん
2016/06/26(日) 23:56:21.85ID:ygmpo/L2これからもその調子で続けたまえ
0566デフォルトの名無しさん
2016/06/27(月) 00:58:28.09ID:/n2KczvR0567デフォルトの名無しさん
2016/06/27(月) 01:01:40.22ID:9nb1CdH60568デフォルトの名無しさん
2016/06/27(月) 01:06:51.58ID:SsmcC8+N0569デフォルトの名無しさん
2016/06/27(月) 02:31:23.22ID:7ndkIo240570デフォルトの名無しさん
2016/06/27(月) 02:35:20.09ID:CMj+/Mbz何の図を書いたかはちゃんと書いてあるから読めよ
クラス図もしらないぼけに求めるのは無理か…
0571デフォルトの名無しさん
2016/06/27(月) 06:16:31.75ID:7ndkIo24ER図ってooと関係ないけど誰も突っ込まないの?
0572デフォルトの名無しさん
2016/06/27(月) 08:48:32.90ID:6t3Bunmc0573デフォルトの名無しさん
2016/06/27(月) 18:08:46.08ID:lkgwfH7C下位で発生した例外はスローする作りにして呼び出し元に返すようにしてるんだがダメらしい
難しい作りにしちゃってるから発生箇所でログ出してって言われて書くメソッドでログの出力処理してるんだけどスローってそんな難しい処理なの?
0574デフォルトの名無しさん
2016/06/27(月) 18:34:07.79ID:PLD/Jisx職場の人たちにとって難しい処理ってことでは?
0575デフォルトの名無しさん
2016/06/27(月) 18:39:34.49ID:6t3Bunmc0576デフォルトの名無しさん
2016/06/27(月) 18:48:25.03ID:lAF5rqjA共通メソッドで発生した例外を上位に投げて、メインメソッドなり何なりでスタックトレースログ出力するだけだぞ?
出力メッセージ途中でに設定したりするけど
0577デフォルトの名無しさん
2016/06/27(月) 20:03:08.84ID:PLD/Jisxそれだけのことが職場の人たちには難しいんだろ
理由を聞いて見たら?
0578デフォルトの名無しさん
2016/06/27(月) 20:17:40.39ID:lAF5rqjA聞いてみたけど
うん、ややこしいかな〜
みたいな
それでいて各メソッドでexception分けてキャッチして何が起きたかメッセージ分けろとかいう
共通メソッドとかも正直いらないらしい
聞いてる感じコピペコード直書きの方がいいっぽい
0579デフォルトの名無しさん
2016/06/27(月) 21:42:40.58ID:Zk7rn9e60580デフォルトの名無しさん
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オブジェクト指向って失敗だったとしか思えない
プロパティって要するにグローバル変数じゃん?
publicなんて付けられた日にはおいしいスパゲッティの出来上がりじゃん?
特に俺々フルスクラッチFWもどきで作り込まれたOOPとか
本当に悲惨
0584デフォルトの名無しさん
2016/06/28(火) 00:16:38.79ID:P6ezUFsSそのまま関数型に入信したまえ
>プロパティって要するにグローバル変数じゃん?
staticはグローバルだが
インスタンスをスコープに閉じ込めればプロパティはグローバルではないと思うけど
つーかオブジェクト指向でも基本的にはimmutableなオブジェクト使えば大分メンテしやすくなるぞ
オブジェクト指向というよりもmutableなのが悪いんだろ
0585デフォルトの名無しさん
2016/06/28(火) 00:24:56.35ID:lakqUeju整数型とか浮動小数型とかはtryparseしてるし
それ以外でチェック例外で吐かれるような奴はキャッチ内で戻り値設定したりして上位には影響ないようにしてる
これだとダメかな?
こういうのがややこしいのかな?
そういう細かいところのチェック処理も嫌がられてるからチェック例外とかは意識してないんじゃないかと思う?よ?
あとほんとに電卓作るレベルのプログラムだからフレームワークとか使ってないしそもそもメインメソッドまで返したら処理終わっちゃうから戻さないでって意見ではなかった
0586デフォルトの名無しさん
2016/06/28(火) 00:29:03.66ID:Jibk8xVq0587デフォルトの名無しさん
2016/06/28(火) 00:32:42.55ID:iVpTS2xEよっぽどマシってのはある。
0588デフォルトの名無しさん
2016/06/28(火) 00:46:34.36ID:+D0+qut0ゴッド商品画面オブジェクトの持つpublicゴッド商品オブジェクト
あらゆるメソッドからタコ殴りにされて
画面に叩き出される頃には原型を止めていない
さらにそいつは次の画面に蹴り込まれる
staticじゃなくても十分地獄やん?
やっぱ関数型に進まないといけないのかな
世界の全てがfinalだったらよかったのにね
>>587
なんつーか、class = ただの名前空間 にしか見えんのよね
クレイジーな状態変数持たない分、function集合体の方がずっとマシかもしれん
0589デフォルトの名無しさん
2016/06/28(火) 00:58:42.12ID:Jibk8xVqクラス図を知らないくせに語られても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が世に喧伝されてるほど素晴らしいものには思えないのよ
0593デフォルトの名無しさん
2016/06/28(火) 02:25:28.11ID:P6ezUFsSPHPというよりPHPerが悪い
千行を超える関数やgitの代わりに関数に日付と番号つけたりMVCのModelなにそれ状態etc 思い出すと死にそう
0594デフォルトの名無しさん
2016/06/28(火) 06:35:51.92ID:fW5N5scvそれでもやっぱ、なんかOOPが世に喧伝されてるほど素晴らしいものには思えないのよ
プログラマが必須科目として、なんとなくOOPだけを学び、構造化プログラミングや複合設計、業務モデル、データモデルとか、それ以外の必修なプログラミング手法を「古い!」と言って切り捨てて設計すると、そうなってしまうと思う。
たとえば、デザイン的な斬新さとか「夢の家!」って点だけで家やビルを建てたら、見る人を驚かせるような一戸建の家やビルができあがる。
いわゆる「デザイナーズハウス」「デザイナーズマンション」みたいな。
でも、とても居住性が悪いとか、使い勝手が悪い家やビルになったりする。
その極端な例が、「完成!ドリームハウス」に登場した全面ガラス張りの家とかね。(建物だけで約3千万もかけて1年で空屋)
宗教の例をあげれば、釈迦は、あの世とか悟りに至る考え方の一つとして「無我」という思想を使った。
でも、後世の仏教者は、それを「我が無い、つまり魂は無いのだ。肉体が全てなんだ!」として、仏教を唯物論にしてしまった。
「デザイン」という考え方や「無我」が悪い訳ではないけど、それだけでやっちゃうとダメなのと同じ。
0595デフォルトの名無しさん
2016/06/28(火) 07:54:09.62ID:+D0+qut0>>594
言わんとすることはわかる
でも、諸々の理由で妥協で書かれるレベルの低いコードが掃いて捨てるほどあるわけで
何の努力もせず良い設計・コードになるわけないんだけど
それでもOOPじゃなければ、関数型ならもっとマシなものになるんじゃないかと夢見てしまう
0596デフォルトの名無しさん
2016/06/28(火) 09:02:18.23ID:EAL+4PLj関数型プラスαがoopだな
0597デフォルトの名無しさん
2016/06/28(火) 09:45:42.57ID:waZ5k966元々関数型が存在して関数型で開発してた奴が不便なところを解決するために考案したのだから
その前提として関数型で適切なコーディングが出来るは前提条件なのは自明だろ
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クラス図を知らない奴が何を言っても無駄w
正しいと思う設計を提示できないんだから黙ってろ
10行のコード書いて設計完了って言ったのもお前だろ?
0603デフォルトの名無しさん
2016/06/28(火) 12:32:57.13ID:2K/x921m0604デフォルトの名無しさん
2016/06/28(火) 12:35:00.26ID:W5xEalSt0605デフォルトの名無しさん
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将棋はそういうゲームじゃないからねぇ
定数で十分
0608デフォルトの名無しさん
2016/06/28(火) 12:50:37.10ID:4uPkxyfr0609デフォルトの名無しさん
2016/06/28(火) 13:02:17.12ID:Zn9flS9bシューティングゲームのプレイヤー機は、状態を持つからね
でも、将棋の駒は状態が無いらね
状態が無く、定数で十分なものをわざわざクラスにするなら
それ相応のメリットが必要
>駒.move で、レシーバー自らが、動きを考えるだろ。
将棋はそういうゲームじゃないから
駒が、自分の与えられた時間で、自発的に自ら動きを考える、戦略シミュのようなゲームではない
将棋は、どの駒を動かすか、を考えるゲーム
なぜなら、一ターンで動かせる駒は一つだけだから、どの駒を動かすべきかを考える
駒自身が動きを考えるとすると
A:俺動くわ
B:いや、俺が動くわ
C:まて、俺が動くわ
A、B:どうぞどうぞ
というダチョウ倶楽部現象が起こる
全ての駒でこれが起こる
こんなんで勝てるわけがないし、将棋のAIはこんな類のものではない
0610デフォルトの名無しさん
2016/06/28(火) 13:09:10.06ID:Jibk8xVqクラス図を知らないくせに語っちゃうお前ほどじゃないよw
0611デフォルトの名無しさん
2016/06/28(火) 13:10:56.96ID:Jibk8xVqで、お前の考える設計はいつになったらできるんだ?
対案を出さずに「○○はだめ」と連呼するクレーマー基地外
設計したことないんでしょ?
0612デフォルトの名無しさん
2016/06/28(火) 13:11:05.67ID:Zn9flS9bモデル化するなら、なるべく現実とかけ離れていない方が良い
0613デフォルトの名無しさん
2016/06/28(火) 13:14:47.33ID:Jibk8xVqこいつバカだなあ
盤上で駒がうこけるマスはどこ?というときに駒が動けるマスは駒の種類によって違う
駒に動きの情報を持たせる設計は十分あり得る
駒に持たせるべきか、思考ロジックに組み込むからいらないのか
どちらの方法を採用すべきかを優劣を比較するという流れで考えるものなのに
「僕ちゃんが正しい!僕ちゃんが正しい!」って連呼するだけだから実際のプロジェクトでは
相手にされずここで吼えるしかないんだねw
0614デフォルトの名無しさん
2016/06/28(火) 13:16:15.35ID:Jibk8xVq注文が合計金額を自分で考えて計算することなんてないけど
オブジェクト指向を勘違いしてる
0615デフォルトの名無しさん
2016/06/28(火) 13:18:12.57ID:waZ5k9663Dならモデル/2Dならスプライトなどと位置・アニメーション・モーション・エフェクトなどをまとめて面倒見るためのクラスならまああり
人間が操作するために表示上必要なら移動範囲を参照させる事も問題はない
ただし思考ロジックとは別モジュールに置いて一切関与させない事が大前提な
0616デフォルトの名無しさん
2016/06/28(火) 13:26:20.34ID:Jibk8xVqこれも勘違いしてるなあ
「やる事は基本的には言われた通りに動く」からクラスにしないって言ってるけど
受動的な要素をクラスにすることは普通のこと
能動的な要素しかクラスにしないとどうして思った?
0617デフォルトの名無しさん
2016/06/28(火) 13:54:28.84ID:R+Do7QCH手続き型と関数型の区別がついてない予感
まさかCで関数を使ってれば関数型とでも思ってるの?
0618デフォルトの名無しさん
2016/06/28(火) 14:17:03.05ID:Zn9flS9b>>609の俺の書き込みは、返信先が間違っていた
>>606への返信ではなく、正しくは>>605だったわ
これで謎が一つ解決した
0619デフォルトの名無しさん
2016/06/28(火) 14:19:45.29ID:4sSl9cCN駒クラスでいい
0620デフォルトの名無しさん
2016/06/28(火) 14:33:48.34ID:Zn9flS9bはい、終わり
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興味あるやつがリバースエンジニアリングして
クラス図なり作ったら
議論が進んだりしないかね?
0624デフォルトの名無しさん
2016/06/28(火) 18:25:44.31ID:nXmGiaq0http://yaneuraou.yaneu.com/ とか?
0625デフォルトの名無しさん
2016/06/28(火) 18:49:21.74ID:Zn9flS9bの
http://yaneuraou.yaneu.com/yaneuraou_mini/
の中にある
やねうら王miniのソースコードの解説文書
面白い
これ全部読んで、まだ駒をクラスにしたいと思う人がいたらバカだ
0626デフォルトの名無しさん
2016/06/28(火) 20:53:06.58ID:iffZepP2成り,を忘れるな
0627デフォルトの名無しさん
2016/06/28(火) 21:13:11.73ID:+D0+qut0関数型ってオブジェクト指向型の次のパラダイムシフトだったんじゃなかったの?
そりゃダメコード書く奴がダメなのはわかりきってるけど
それを可能な限り仕組みでコントロールすることもできないかね?
0628デフォルトの名無しさん
2016/06/28(火) 21:24:24.21ID:fW5N5scv597の言う関数型は、今回の議論の流れからいえば、Cなどの手続き型の関数を意味していると思うし、それに賛成だね。
C++はCの関数の不便さを解決するために生まれてきたと思う。
そして、手続き型で、Cの世界でいう関数を使ったプログラムをまともに組むスキルが無い人がOOPしても、まともにプログラムが作れないのは当然の結果だ。
0629デフォルトの名無しさん
2016/06/28(火) 21:33:55.52ID:Zn9flS9b成り、なんか、別の種類の駒として扱えばよいだけだろ
0630デフォルトの名無しさん
2016/06/28(火) 21:43:02.09ID:zDZeHGE+> 関数型ってオブジェクト指向型の次のパラダイムシフトだったんじゃなかったの?
違うな。関数型は手続き型の次のパラダイムシフトだよ。
そもそもオブジェクト指向型が手続き型の
次のパラダイムシフトっていうのが若干ずれている。
手続き型には存在しなかった構造の部分に対しての
構文を用意したのがオブジェクト指向。
だから、オブジェクト指向+手続き型 というコードが世にあふれていた。
そこに関数型が登場(というか復活)したが
それは元来手続き型の次のパラダイムシフトであり、
関数型にも手続き型と同様に構造を記述する構文はない。
そこで、オブジェクト指向+関数型 が今後の主流になる。
例えばScalaとかもそうだし、多くのオブジェクト指向言語に
関数型の機能や考え方が追加されてきている。
0631デフォルトの名無しさん
2016/06/28(火) 21:43:51.64ID:fW5N5scvダメコードを書く奴でも、まともに動作するプログラムを作らせるなら、「プログラムをできるだけ書かさないこと」になると思う。
それは、古いCの関数型でも、Lisp系統の関数型でもなく、Sapiensなどにみられる宣言型プログラミングを使うことになるんじゃなかろうか?
もちろん、そのシステムで用意されている機能で実現できない処理は、あきらめるか、だれかに機能拡張してもらい、それを宣言型で使うことになってしまうだろうけど。
0632デフォルトの名無しさん
2016/06/28(火) 21:51:10.54ID:Zn9flS9bw
0633デフォルトの名無しさん
2016/06/28(火) 21:51:19.28ID:4Rv95Bxpそこまでしてクラス化して何かメリットあるの?
0634デフォルトの名無しさん
2016/06/28(火) 21:51:43.64ID:+D0+qut0なるほどなぁ
確かにJavaはそういう流れだね
だからHaskellよりScalaが流行ったんだろうかw
>>631
なるほど、書かせないか
言われてみりゃペチピーなんてそんなツールだよな
超高級言語へのシフト?CMSみたいに設定するだけで使えるシステム?
良いとは思うけど、つまらなさそうw
0635デフォルトの名無しさん
2016/06/28(火) 21:57:57.91ID:Zn9flS9bクラス化するとは一言も発言してないが
駒に、成り、の状態を持たせると鬱陶しいから
別の種類の駒として扱う
つまり、成った駒は元とは別のenum、定数、を宛がえば
状態を扱う必要はなく、定数で済むのでクラス化の必要もない
という分かりやすい話だが
0636デフォルトの名無しさん
2016/06/28(火) 22:06:36.99ID:A7Bg25Taお?MMORPGならOOPで面白いかも?
0637デフォルトの名無しさん
2016/06/28(火) 22:09:27.53ID:Jibk8xVqしょぼコード設計じじぃが出たぞーw
0638デフォルトの名無しさん
2016/06/28(火) 22:13:45.41ID:Jibk8xVq同じ駒だろ
将棋指している人の認識は「この歩がとに成った」だぞ
「この歩は消えて、どこかから来たとに置き換わった」じゃねえだろ
0639デフォルトの名無しさん
2016/06/28(火) 22:15:38.06ID:waZ5k966普通に読んだら>>629は成り含めても4ビットで足りるものをクラスにする必要はないと主張してるとしか読めんのだが
0640デフォルトの名無しさん
2016/06/28(火) 22:16:00.24ID:Jibk8xVqシステムの設計ってそんな個別のことをあれこれ言ってても意味ねえぞ
全体としてどうなるかって観点で考える必要があるのに駒がクラスかどうかにしつこく粘着してるお前はほんとセンスねえーわ
0641デフォルトの名無しさん
2016/06/28(火) 22:17:39.29ID:Jibk8xVqお前もスレと関係ない話をしつこく続けるのはいい加減にして消えろよ
スレタイも読めないの?
0642デフォルトの名無しさん
2016/06/28(火) 22:21:34.03ID:+D0+qut0class TheStone {
static public string color;
static public change(String color) {
color = color;
}
}
こうだ
0643デフォルトの名無しさん
2016/06/28(火) 22:24:43.75ID:yMD5BWvcDDDにしたがってColorクラスを作るべき
0644デフォルトの名無しさん
2016/06/28(火) 22:58:46.28ID:Zn9flS9bまた微妙なネタを
static
オセロなら白、黒、空、の三種類の定数で十分だもんな
あと、駒をクラスにしたい人はいったいどうやって評価関数を書くんだろうな
実行時型情報を使って駒の種類を特定するつもりなんかね
それとも駒の種類を表すenumを返すメソッドでも作るんかね
バカらし
0645デフォルトの名無しさん
2016/06/28(火) 23:45:16.95ID:4sSl9cCN委譲で、駒自信が考える
Collection.each で済む
>>625
やねうらおって、ごりごりアセンブラ・手続き型の人w
0646デフォルトの名無しさん
2016/06/28(火) 23:53:09.60ID:4sSl9cCN歩なら、1つ前へ移動するし、
玉なら、周りのすべてのマスへ移動する
動いたとき、相手の飛車を取ったら、+20 とか評価すればいい。
それで、最大点数を選ぶ
0647デフォルトの名無しさん
2016/06/28(火) 23:53:53.38ID:WNbmF7qdここ、笑い所?
0648デフォルトの名無しさん
2016/06/28(火) 23:57:04.05ID:+D0+qut00649デフォルトの名無しさん
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:V4mCQtyp0652デフォルトの名無しさん
2016/06/29(水) 00:02:43.78ID:Cuj9KAahMaterialクラスを継承したWoodクラスを継承させるのが正しい将棋のKomaクラスです。
0653デフォルトの名無しさん
2016/06/29(水) 00:04:05.39ID:KRqAKsB/0654デフォルトの名無しさん
2016/06/29(水) 00:05:31.92ID:Cuj9KAah0655デフォルトの名無しさん
2016/06/29(水) 00:20:30.46ID:KRqAKsB/0656デフォルトの名無しさん
2016/06/29(水) 00:21:06.49ID:0ytqT3qY正しく動くかで言えばそりゃ動くだろう。
オーバーヘッドだらけで速度が出ない、速度が出なければ持ち時間で読める手数が減る、読める手数が少ないから弱い、それだけの話
0657デフォルトの名無しさん
2016/06/29(水) 00:21:29.63ID:bbY16ES2オブジェクト指向ができることはswitch文をなくすことではなく、switch文をラップすることであり、そのうえさらに大量のクラス定義をするということを忘れている
ファクトリーにデリゲーションしたところで、ファクトリーの実装はswitchで構築されているわけだ
そしてその多量のクラス定義のうえに、メッセージパッシングを人間が構成する
おれはオブジェクト指向のデザインの本を最初に見たときに、理解できなかった
この技術は、物事を簡単にするはずだから、この考えには深い意味があるんだろうと
しかし衒学は衒学にすぎない、コンピュータサイエンスを極めれば、これは物事の判別ができない、設計適性がない人間が、他人にどうにかして働かせようとした結果のパラダイムなんだと
だからJavaの、クフ王のピラミッドみたいな工数がかかる案件が、平然として存在するわけだ
オブジェクト指向が本格始動して20年余りたつのに、いまだに満足に再利用もできない
それは結局のところ、パラダイムの基盤の脆弱性そのものを示している
俺はオブジェクト指向が達成したい目標もしっているし、そのためにどのようにクラスを構成すべきも知っているし、その目標を達成するために、オブジェクト指向が使い物にならないこともよく知っているよ
0658デフォルトの名無しさん
2016/06/29(水) 00:28:02.23ID:Hg0Bm2HHクロージャ・ラムダも、そう
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:Hg0Bm2HH0663デフォルトの名無しさん
2016/06/29(水) 00:39:04.34ID:kp9K0h28いや
>>645-646
の仕様で本当にちゃんと動くと思うか?
俺的にはかなりあり得ないんだが
>玉なら、周りのすべてのマスへ移動する
と言っているが、複数あるマスのうち、一体どのマスへ移動するつもりなんだ?
ここで未来が分岐して、それぞれの局面の評価をしなければならないわけだが
いったい誰が評価するんだ?玉が自分で評価するのか?
無理がありすぎる
一つの駒単体で処理が完結する部分が、ほぼないのに、クラスにしても意味がない
0664デフォルトの名無しさん
2016/06/29(水) 00:46:05.68ID:F0qzEL5zお前t_wada連呼してた奴だろw
最近は変えたの?
0665デフォルトの名無しさん
2016/06/29(水) 00:48:01.33ID:F0qzEL5zオブジェクト指向のほうがパフォーマンスが落ちるってどういう理由で?
「わしが書いたアセンブリのほうが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エリックエヴァンスも、あえて1章さいて不変性についての議論を挟んでいる
なぜオブジェクト指向信者のお前が知らなくて、俺が知ってるんだ?
それは単にお前が勉強不足なだけだろ
なんで何も勉強してない奴にかぎって口を挟むんだ
お前に今必要なのは口を閉じて文献を読むことだよ、どうせお前が設計してもうまくいかないのは明らかだから
まず設計行為はジレンマから成り立っているという理解が出来ていない
コスト度外視でクラス作りまくるのをお前が設計であるというのなら、だれもとめはしないが
だれもそんな行為を設計だとは認めないだけだからな
0669デフォルトの名無しさん
2016/06/29(水) 01:22:25.57ID:XEPM9WK00670uy ◆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死んでくれませんか?
オセロを正規表現で書ける事を知らないんですか?
"00100201001"
0 → 黒
1 → 白
2 → 今おいた石
↓
<正規表現 置き換え>
↓
"00111111001"
0672デフォルトの名無しさん
2016/06/29(水) 02:06:33.32ID:ysvKqYyo本読んでもわからない奴は分からないし、わかる奴は斜めに読んでもわかる
結局許容範囲の狭いエンジニアは本読んでも意図が汲めないで自分の浅い偏屈な考えでしか話せないんだからしょうがないでしょ
駒はクラスと言い張る人はenumにしたときの事は想像できてないけど、enumにすべきという人はクラスにした場合の事を考えて発言してるのは明らかだし
0673uy ◆e6.oHu1j.o
2016/06/29(水) 02:08:33.38ID:XGWq+m9jclass 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クラスを大量生産しなくて良くなったのは、
単にラムダを使う文化が浸透したからに過ぎない
歩 と 飛 を別クラスにするのに違和感あるなら
シューティングゲームで
弾 と 敵 と プレイヤー を別クラスにすることにも違和感を持たないとおかしい
実際、将棋にしたって、シューティングにしたって、オブジェクトに対し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だからさ、「駒をクラスにするか」というとこだけ切り出して議論したって結論は出ない
局面の評価ロジックも含めて設計してはじめて、駒固有の情報があるか、ないかを判断できる
この設計プロセスを理系していない時点でまともなシステムの設計経験がないことが露見している
0677デフォルトの名無しさん
2016/06/29(水) 02:37:10.72ID:F0qzEL5z「最初は必要と思われたクラスが、設計を進めると不要になる事例を例示している」
まさにこういう話をしてるんだけど…
全体像が分からないのに駒をクラスにすべきかどうかだけ切り出して議論しても意味ない
お前ほんと日本語が分からないよなあ
自分で言ったことはさすがに同意するだろうから局所的な議論をしつこく繰り返すのはいい加減にしろ
0678uy ◆e6.oHu1j.o
2016/06/29(水) 02:48:18.05ID:XGWq+m9j"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駒がそれぞれ独自の判断を持つってつまり、
すべての駒がいちいち盤面全体の状況を判断する事に
なると思うんだけど?
0680uy ◆e6.oHu1j.o
2016/06/29(水) 04:55:13.77ID:XGWq+m9j中央を持たせるか
タスク(ノード)を自立型にするか
ってだけで、どちらが良いとか無いよ
0681デフォルトの名無しさん
2016/06/29(水) 07:33:21.66ID:N6i7i/Rj駒クラスが必要か不要かというのは設計段階のはなし
わかる奴はコード書かなくてもわかるし、わからないやつはコードかいてもわからない、つーかわからないやつが理想とするコードかけない
ボブおじさんはできないやつでもコードかきゃわかるだろっていってるだけ
わからないやつは設計能力足りてないってだけなんだけど
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+m9juyさんは>>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状態を持たないって、いきなりとんでもない事言い出したが
x , y , 表裏 , 今どこにあるかの状態4種(プレイヤー1 or 2 or プレイヤー1の手持ち or プレイヤー2の手持ち)
って情報は誰が持ってんの
0686uy ◆e6.oHu1j.o
2016/06/29(水) 10:44:36.54ID:XGWq+m9j>駒単独でどうこうなるものではない
なるように書く事も可能って話
コード量は変わらない
0687デフォルトの名無しさん
2016/06/29(水) 10:55:23.75ID:3EvlET/U0688デフォルトの名無しさん
2016/06/29(水) 10:55:45.82ID:tRZ7H54rそれとも駒はただの操り人形なのか?
傀儡子が操る人形と人間とはまったくべつものでしょう。
0689デフォルトの名無しさん
2016/06/29(水) 11:15:34.36ID:tRZ7H54r位置情報は 12飛車 型などの様に型に埋め込めばできる
裏表は別ゴマと考える
このように型を細かくつけるとコンパイル時にエラーがでて
バグを無くすことができる
それは好みの問題
0690uy ◆e6.oHu1j.o
2016/06/29(水) 11:25:06.81ID:XGWq+m9jソースコードで純然たる民主主義を表現するか
王政共産主義を表現するか
どちらでも良く「○○にしたらコードの組み方わかんない!」ってやつが騒いでるだけ
0691uy ◆e6.oHu1j.o
2016/06/29(水) 11:32:06.43ID:XGWq+m9jそれは関数型プログラミングの考えか
バグ入らないのは良いけど開発速度ってどうなんかね
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>状態を持たないって、いきなりとんでもない事言い出したが
駒がどこにあるかは、ボード(名前は何でもよいが)が
知ってるだろ(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理解力無さすぎ
>>694
混ざりすぎ
大きく分けて
1 ボードゲームをルール通りに動かす「ゲームエンジン」(今話してるのはコレ)
2 プレイヤーからの入力を受け付けるUI部分
3 思考ルーチン
それぞれ別で作るんだからソースコードは混ざらない
今は「1」の話しかしてないんだけど
多分お前以外はみんなそう
0696デフォルトの名無しさん
2016/06/29(水) 13:03:32.65ID:ynfIfoaY0697uy ◆e6.oHu1j.o
2016/06/29(水) 13:07:44.98ID:XGWq+m9jupdateが分からないってネタですか?
これは状態の更新を表すメソッド
デザパタでも使う命名規則
例えタスクシステムを使わなくても画面の更新には使う
0698uy ◆e6.oHu1j.o
2016/06/29(水) 13:08:15.97ID:XGWq+m9j立ち去れ
0699デフォルトの名無しさん
2016/06/29(水) 13:09:13.96ID:N6LinefN0700デフォルトの名無しさん
2016/06/29(水) 13:11:51.56ID:N6LinefN0701デフォルトの名無しさん
2016/06/29(水) 13:23:34.00ID:kp9K0h28逆に俺は思考ロジックの話しかしてねーんだわ
コンピュータ将棋といえば、思考ロジックがメインなんだから当たり前
0702デフォルトの名無しさん
2016/06/29(水) 13:24:52.89ID:N6LinefN0703uy ◆e6.oHu1j.o
2016/06/29(水) 13:32:55.06ID:XGWq+m9jそれが当たり前だという認識でも構わないけど
まずお前は分離が出来ていないから
思考ロジックのメソッドの引数は何が必要で戻り値をどうするかだけ考えてろよ
全体の設計や、形をどうするか、なんて話はAIと無関係
>>702
してねーから
内包しているかどうかが焦点じゃない
その内包しているものを、分離は可能か?
人間vs人間ではAI関係ないが、ルールは必要
0704デフォルトの名無しさん
2016/06/29(水) 13:39:01.63ID:vEfZmrBH内包はまずいだろ
思考エンジンって、何らかのアダプタは挟むにしても、ボナンザややねうら王や人間に置き換え可能な、プレイヤー1と2だろ
一方ゲームエンジンって審判だろ
プレイヤーは打ち歩詰めや100一飛をする自由があるし、審判には反則や不正な動きを検出してゲームセットする責務がある
「プレイヤー1の動きは正しいはずだ」って前提の審判は居ない
0705デフォルトの名無しさん
2016/06/29(水) 13:46:59.93ID:N6LinefN0706デフォルトの名無しさん
2016/06/29(水) 13:52:40.43ID:N6LinefN駒を動かすと言う何とも人間臭い切り口だからダメなんだよ。
将棋は、盤面から盤面に移行するんだよ。
0707デフォルトの名無しさん
2016/06/29(水) 14:24:31.42ID:F0qzEL5zで、お前の考える設計はいつになったら出てくるんだ?
いつになっても出てこないんだからお前設計してないじゃん
しょぼいコード書いて設計したって言うのはやめろよwwwwww
0708デフォルトの名無しさん
2016/06/29(水) 14:24:32.91ID:N6LinefNある盤面から次の盤面にルールに沿って変化するだけ。
人間には駒を1つ移動した様に見えるが、
その実どの駒も一度盤面から全部取り去って再度並べ直してても一向に構わないし
むしろさっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わないんだよ。
0709デフォルトの名無しさん
2016/06/29(水) 14:26:51.62ID:F0qzEL5z意味不明
相手に分かるように書くのが設計だぜ
0710デフォルトの名無しさん
2016/06/29(水) 14:29:22.32ID:F0qzEL5z文字間のスペースは文字によって調整するのが普通
プロポーショナルフォントって言うんだったかな
だから各文字をオブジェクトとして表現するプロセッサも普通にある
0711デフォルトの名無しさん
2016/06/29(水) 14:34:54.91ID:F0qzEL5z駒の位置情報、成りがあることはお前も認めている通り
で、それを駒に持たせるか、盤に持たせるか、選択肢はいくつかある
どれがいいか比較しよう
って流れで考えないとだめ
それをしないで「駒は状態を持たない」とかアホなこと言ってるからバカにされる
0712uy ◆e6.oHu1j.o
2016/06/29(水) 14:36:00.16ID:XGWq+m9jとりあえず少しコード書いたらこうなったよ
Zキーで「歩」(ソースコード上では"a")を動かすだけのサンプル
zip落としたくないカス用ideoneリンク
https://ideone.com/1JA1Zq
0713uy ◆e6.oHu1j.o
2016/06/29(水) 14:37:55.86ID:XGWq+m9j0714デフォルトの名無しさん
2016/06/29(水) 14:38:28.54ID:F0qzEL5z「さっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わない」
システムの設計のクソの役にも立たないこういうバカな喩えをする奴ってほんとセンスねえわ
0715デフォルトの名無しさん
2016/06/29(水) 14:45:52.47ID:N6LinefNわかりやすく説明しないとダメかw
UIにルール処理は不要って話。
その時の気分で好きなの選べって
0716デフォルトの名無しさん
2016/06/29(水) 14:48:14.62ID:N6LinefNおまいw
敵味方関係無しかw
0717uy ◆e6.oHu1j.o
2016/06/29(水) 15:01:03.20ID:XGWq+m9j全要素の反転で多分出来る
0718デフォルトの名無しさん
2016/06/29(水) 15:20:21.02ID:F0qzEL5zUIにルール処理は不要と言いたい時に
「さっきのが磁石付きの旅の友将棋で、次の瞬間には江戸時代から伝わる高価な将棋盤と駒でも構わない」
という喩えを持ち出すお前のセンスになさに驚愕
0719デフォルトの名無しさん
2016/06/29(水) 15:26:02.29ID:0ytqT3qY自前で実装するにしても思考モジュールの評価関数から合法手かどうか以外の評価を全て取り除いてサーバプロトコルに合わせてIOを調えれば完成するので(ry
必要のない設計を考える事は無駄だな
0720uy ◆e6.oHu1j.o
2016/06/29(水) 16:39:02.23ID:XGWq+m9j持ち駒管理とか考えたらめんどくなってきた
0721uy ◆e6.oHu1j.o
2016/06/29(水) 17:48:59.00ID:XGWq+m9jhttp://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何いってんだコイツ
コード書いてない段階の机上の空論は当てにならない
0724デフォルトの名無しさん
2016/06/29(水) 18:32:23.35ID:CUOxqZw/そこで飛車という駒の動きが、飛車の位置のみに依存しているならば、駒が位置情報をもつという設計に意味はあるだろう
しかし現実、飛車の移動可能な位置は他の駒がどこにいるのかということに依存している以上、結局ボードが駒の位置を保持するという設計以外、設計じゃないんだが
間違いなく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作ること考えてる場合は二度手間にはなるけどね
分離したほうが再利用しやすいというだけ
0727デフォルトの名無しさん
2016/06/29(水) 19:39:05.46ID:F0qzEL5z駒自身の動きを元に盤面上で実際に動ける場所を確認するだけ
したがって「結局ボードが駒の位置を保持するという設計以外、設計じゃない」
というのは根拠なき妄言
人間も理解もそう理解している
駒ごとに動きは決まっている
それをもとに配置されている駒はどこに動けるか考える
結局お前はレベルが低過ぎる
>>711をちゃんと理解してから書き込めよ
0728デフォルトの名無しさん
2016/06/29(水) 20:09:37.13ID:ayCPRrl40729uy ◆e6.oHu1j.o
2016/06/29(水) 20:33:56.75ID:SNUE/hcr正規表現かけば終わる
0730デフォルトの名無しさん
2016/06/29(水) 21:00:33.62ID:iNYQEQjv0731デフォルトの名無しさん
2016/06/29(水) 21:15:00.05ID:Cuj9KAahこれがオブジェクト指向の末路か・・・(溜息)
やはりオブジェクト指向は失敗だった(確信)
早く関数型にいこう(悟)
0732デフォルトの名無しさん
2016/06/29(水) 21:15:18.08ID:8H/yBcN8foreach 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それが正しいオブジェクト指向なんだから仕方ない
komaクラスを継承すれば新しい駒でも柔軟に拡張できる
拡張性、これはオブジェクト指向のメリットの一つです
初心者はオブジェクト指向の基本から勉強しましょう
0734デフォルトの名無しさん
2016/06/29(水) 21:44:19.09ID:YGP5NMQrこれはPositionManagerとかいうイミフな名前のクラスの出番ですね
0735デフォルトの名無しさん
2016/06/29(水) 21:54:35.80ID:16hwaoiFその実態は単なるルックアップ関数であったが、komaをオブジェクトとし、foreachするのが馬鹿であると気づいたオブジェクト指向論じゃが陥るくそ設計の始まりであった
Managerクラスが余りにも多いなら、それはクラスの作りすぎを意味している
0736デフォルトの名無しさん
2016/06/29(水) 21:58:35.09ID:Cuj9KAah1〜9までの数値しか取らない特殊なオブジェクトだからな
0737デフォルトの名無しさん
2016/06/29(水) 22:02:01.02ID:Cuj9KAah将来将棋にZ座標が導入された時も柔軟に拡張できる
オブジェクト指向はすばらしい
0738デフォルトの名無しさん
2016/06/29(水) 22:04:08.95ID:Cuj9KAahHumanクラスを継承したPlayerクラスは、move()の実装について意識する必要はありません
ただmoveと念じればよいのです
ポリモーフィズムです
0739デフォルトの名無しさん
2016/06/29(水) 22:21:01.62ID:emYx16n0分離されたドライバー・モジュールと小規模なカーネルがメッセージを交換するというマイクロ・カーネルのMINIXと一枚岩のLinuxのどっちが優れているか?っていう議論だったと思う。
システムとしての綺麗さという面からは、タネンバウムの推すマイクロ・カーネルが上だったけど、実用性では一枚岩のLinuxの勝利になったと個人的には思っている。
さて、ここではどうなるかな?
0740デフォルトの名無しさん
2016/06/29(水) 22:42:55.35ID:3EvlET/Uflyweightパターン
0741デフォルトの名無しさん
2016/06/29(水) 23:03:17.03ID:gLDfMD07ワロタ
0742デフォルトの名無しさん
2016/06/29(水) 23:08:36.18ID:WmZmA/4x0743デフォルトの名無しさん
2016/06/29(水) 23:15:18.72ID:F0qzEL5z受動的なクラスは普通だぞ無能
0744デフォルトの名無しさん
2016/06/29(水) 23:20:55.85ID:11RiuwSNそのとおりだな。コマに対してmove実行していい手がありませんでしたってときは
例外でも返すのか?wって話だ。
0745デフォルトの名無しさん
2016/06/29(水) 23:28:27.95ID:Cuj9KAah0746デフォルトの名無しさん
2016/06/29(水) 23:50:57.87ID:vRAG8KaH業務ロジックを飲み込んでメモリリークしまくりで凄いぞ…
0747デフォルトの名無しさん
2016/06/29(水) 23:58:48.32ID:Cuj9KAah0748デフォルトの名無しさん
2016/06/30(木) 00:22:59.57ID:LsNR/CTw0749デフォルトの名無しさん
2016/06/30(木) 00:28:46.89ID:SHMJDPe9まずまっさきに
このスレを見るのをやめる
0750デフォルトの名無しさん
2016/06/30(木) 00:36:49.94ID:3DWc/P61ビジネスロジックをUIにもち混むなとよく言うがそれは間違い
堅牢で高速で保守しやすいアプリを組むにはUIがビジネスをある程度知っている必要がある
例えばValidationなどはその傾向が顕著だね
0751デフォルトの名無しさん
2016/06/30(木) 00:42:29.54ID:NSbHNpiTいつの時代だよ
0752デフォルトの名無しさん
2016/06/30(木) 00:52:42.42ID:dSZkCmBKまず「正しいオブジェクト指向」なるものが存在すると思うのを止める事。
次に適当な言語の適当なGUIライブラリ使って何かプログラムを書いてみる事。
以上。
0753デフォルトの名無しさん
2016/06/30(木) 01:04:49.33ID:LsXGxwaXValidationはUIじゃない
0754デフォルトの名無しさん
2016/06/30(木) 02:07:10.99ID:SdL/my9l0755デフォルトの名無しさん
2016/06/30(木) 06:03:38.13ID:4Vg5Sebeまず、
「ユーザー定義型(抽象データ型)をクラスを使って」というアイデアのOOPと
「動的遅延結合の徹底をメッセージという方便を使って」というアイデアのOOP、
これら発案者も目的も違う異質な“OOP”がごちゃ混ぜにされている現状を知る
0756デフォルトの名無しさん
2016/06/30(木) 06:15:01.54ID:CCwIza2iものごとには順序ってのがあると思う。
普通の人が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すいません嘘です
0759デフォルトの名無しさん
2016/06/30(木) 08:57:28.84ID:3DWc/P61UIだよ
0760デフォルトの名無しさん
2016/06/30(木) 09:01:04.83ID:MIm5lvTS0761デフォルトの名無しさん
2016/06/30(木) 09:19:46.41ID:LsXGxwaXUIだっていうのなら、UIがいらない
バッチ処理ではバリデーションいらんのか?
いるだろ
0762uy ◆e6.oHu1j.o
2016/06/30(木) 09:31:30.41ID:U+B64GZ8これは数値だけを見て動けば良いシステムの根幹部分には必要ないものだけど
プログラムを作っていく段階で、
既にマウスクリックやドラッグアンドドロップ等の、入力制御を実装するコードを
簡単に持ち込めるのであれば
さっさと持ってきて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こういうゲームならコマがオブジェクトを持つだろ?
将棋みたいにオブジェクト化せずとも良いゲームよりも
オブジェクト指向が必要なゲームのほうが多いから
そういうゲームを過去に作ってきた人が、将棋を作る場合
ソースコードの流用が効くし
逆に、将棋が初めてのゲームプログラミングだとしても、
そのソースコードが上記画像(三国志大戦)のような画面を持つゲーム開発の為の
再利用化のソースコードを生産することにも繋がる
普段ゲームプログラミングをしないミジンコカスさんは
必ずと言っていいほど資産0状況からの効率でプログラミング考えてるからダメ
0765デフォルトの名無しさん
2016/06/30(木) 10:50:34.21ID:+D/cohZw0766デフォルトの名無しさん
2016/06/30(木) 11:10:41.94ID:cf5offIx馬鹿だなValidationとUIが等価なのではない
UIがValidationを含むんだよ
つまりUIはビジネスを知っている必要がある
0767デフォルトの名無しさん
2016/06/30(木) 11:14:21.30ID:cf5offIxではこの正規表現はどこから湧いて出てきたのか
それはビジネスルールに他ならないのだ
UIはビジネスの知識を持たなければ定義できない
0768デフォルトの名無しさん
2016/06/30(木) 11:45:24.31ID:aowph3II0769デフォルトの名無しさん
2016/06/30(木) 11:53:30.62ID:+D/cohZwその仕事に関する良いシステムを作るの無理みたいなこと書いてる気がする
0770デフォルトの名無しさん
2016/06/30(木) 12:21:49.27ID:DyH17HfIビジネスアブリやwebアブリ作っている人はすぐ判るけど、それらの経験がないと難しいかも?
0771デフォルトの名無しさん
2016/06/30(木) 12:22:31.46ID:MIm5lvTS0772デフォルトの名無しさん
2016/06/30(木) 12:41:30.90ID:pOSHWmT/mvcの基礎だな
0773デフォルトの名無しさん
2016/06/30(木) 13:01:16.66ID:WnxiYo/h0774uy ◆e6.oHu1j.o
2016/06/30(木) 14:10:05.87ID:U+B64GZ8将棋などのボードゲームと、
タスクを廻すゲームで
流用できるコードはどの程度か?という事を考えていた
タスクシステムを使わないゲーム 同士であればまだ共通点を見つけるのは容易い
0775デフォルトの名無しさん
2016/06/30(木) 14:31:57.73ID:jx5HTZrS業務アプリを作ればわかるよ
0776デフォルトの名無しさん
2016/06/30(木) 14:45:22.22ID:CseKlxo3将棋みたいな二人零和有限確定完全情報ゲームは基本的にはより深く広く手を読んだ方が勝つので評価関数を可能な限り高速で回すことが求められる
よって駒が個々に思考するのはナンセンス
まあでも無駄が多くていいならタスク回して自発的に評価して動いてるコマの、おそらく差し替え可能なAI部分を
思考モジュールからの指示があるまで待機、思考モジュールからの指示があったらその通りに動く
という形のものに差し替えれば他の部分はほぼそのまま使えると思うよ
思考部分に関しては、個として評価するものと、盤全体を俯瞰して評価するものとの差異は大きすぎるので再利用するメリットは薄い
0777デフォルトの名無しさん
2016/06/30(木) 15:22:19.53ID:VmcBuUmnWebインターフェイスだったらUI側にjsで書かないといけない、と思う人もいるが、jsのコードを吐く言語だったら分離できる
0778デフォルトの名無しさん
2016/06/30(木) 15:33:50.73ID:MIm5lvTS0779デフォルトの名無しさん
2016/06/30(木) 15:44:33.80ID:bL1n9aIG最近のはやりは、クライアントサイドでのリアルタイムvalidationだよ
もちろんサーバサイドでもvalidationするが
0780デフォルトの名無しさん
2016/06/30(木) 15:53:05.58ID:sIPJ/0ir駒.moveで話し終わらないんだよ
いったい最終的にどの駒を動かすんだよ
そのためには局面評価をしなければならないが
局面評価をするためには、どのマスに何があるかわからなければならない
実行時型情報を使いますか?
駒の種類を表す定数を返すメソッドを作りますか?
0781デフォルトの名無しさん
2016/06/30(木) 16:20:32.57ID:PZTIMsGO何も生み出さずに他人の設計を批判するだけの無能よりはコードを作成するのは有意義だとおもうから
それ自体は評価するけど、設計を考える前からコーディング始めろみたいな発想はおかしいな
実際、将棋ソフトは思考部がメインであることは皆が認めることなのに
その部分がどういう構造になるかはさっぱり見えてこない
ってか、まったく作ってないよな?
本質的なところを指摘すると、簡単なシステムの開発経験しかないから
いきなりコーディングしてもいいと思い込んでるだけ
簡単なシステムならそれでもいいけど、それじゃ複雑なシステムは構築できない
0782デフォルトの名無しさん
2016/06/30(木) 16:33:31.14ID:PZTIMsGOで、お前はどういう設計を考えてるの?
設計できないコメンテーターが湧き過ぎ
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:bL1n9aIG0786デフォルトの名無しさん
2016/06/30(木) 18:53:41.48ID:PZTIMsGO出してるから読み直せ
まともな会話ができる相手が来るのを待ってるんだけどレベルが低い奴しか来ないなあ
0787デフォルトの名無しさん
2016/06/30(木) 19:15:57.52ID:XKkA9cc1コテ+トリでもなけりゃ只文句言ってるだけの名無しw
0788デフォルトの名無しさん
2016/06/30(木) 19:32:21.05ID:Tl6dXV5Eそらそうよ
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だから、ナンセンスとかそういうんじゃなくて
そこまで開発効率に差が出るものじゃない
宗教的な理由か?
0791デフォルトの名無しさん
2016/06/30(木) 20:26:33.87ID:PZTIMsGOスレに残ってるぞw
0792デフォルトの名無しさん
2016/06/30(木) 20:27:03.83ID:LsXGxwaX> UIがValidationを含むんだよ
> つまりUIはビジネスを知っている必要がある
含まない。仮に含んでいるとしたらUIに聞いたら
Validationやビジネスの内容がわかるということになってしまう。
例えばHTMLとJavaScriptでUIを作ったとしたら
そのUIは例えば氏名欄に入力できる最大の文字数を知ってることになる。
ビジネスルールの分だけUIが必要になる。ありえない。
知っている向きが逆。
UIはValidationを含まないし知らないから、UI作成に必要な
情報だけを渡すということを各フレームワークでは行っている。
それがビューヘルパーなどと呼ばれている機能の役目
0793デフォルトの名無しさん
2016/06/30(木) 21:42:29.90ID:CseKlxo3開発効率ではなく処理速度に差が出るんだが…
0794uy ◆e6.oHu1j.o
2016/06/30(木) 21:53:14.74ID:dzWCBRc4その認識は論外
ボトルネックになる箇所はそこじゃないから
0795uy ◆e6.oHu1j.o
2016/06/30(木) 22:00:58.11ID:dzWCBRc4俺が上げたソースコードで、思考ルーチンは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:+RIdkS3I0798デフォルトの名無しさん
2016/06/30(木) 22:52:31.87ID:WERGdAXd0799デフォルトの名無しさん
2016/06/30(木) 23:23:58.05ID:LsNR/CTw0800デフォルトの名無しさん
2016/06/30(木) 23:58:14.32ID:PZTIMsGOThinkingの設計は全然分からないけど…
他の例でやること自体は自由だけどメインの部分は何も設計してないのに
「もう将棋とか良いじゃん」ってのはなあ…
実質何も設計できてない
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他の例で話したければ好きにすればいいって何度も言われてるのにいまだにしつこく言う奴って…
0807デフォルトの名無しさん
2016/07/01(金) 01:41:42.99ID:OFOYrUgM人間の直感的理解に合うように設計すれば分かりやすいし、構築もしやすいから
それが基本だな
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オブジェクト指向がパフォーマンスを考慮しないというのはどうしようもない間違いだから
オブジェクト指向に反対してる連中の書き込みだろw
0811デフォルトの名無しさん
2016/07/01(金) 03:51:12.92ID:XU5YMvRC0812デフォルトの名無しさん
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:f9GcAqK50815デフォルトの名無しさん
2016/07/01(金) 09:48:17.88ID:PvP7Urws実際789のように過去棋譜だけで対局の9割はカバー出来るんだぜ?
0816デフォルトの名無しさん
2016/07/01(金) 09:56:53.78ID:eX1ffSwt新しい方法でもなければ画期的なほでもないから敢えて言及する価値もないだけだと思うぞ
0817デフォルトの名無しさん
2016/07/01(金) 11:52:18.31ID:EGqlE2K8まだわかってないのか
例えば入力欄が10桁というルールがあったとするだろ
当然ながら10桁というルールはビジネスルールだ
そして入力欄を10桁に制限するにはUIがそれを知っていなければならない
これを知らずに入力欄を10桁に制限する事は不可能
UIはビジネスを知っているんだよ
簡単なロジックだろなぜわからない
0818デフォルトの名無しさん
2016/07/01(金) 12:00:50.81ID:mc0aB7jHじゃあそのビジネスルールが変更になった時にどうするかじゃね?
0819デフォルトの名無しさん
2016/07/01(金) 13:29:47.32ID:2ngPRN1W"UI"というのがクライアントサイド全体を指しているのなら、その"UI"はもちろんvalidationを含む
0820デフォルトの名無しさん
2016/07/01(金) 14:01:23.48ID:eX1ffSwt<input type="text" pattern="^([a-zA-Z0-9]{6,})$" placeholder="半角英数字6文字以上" required>
UIは配置、形状(外見)、挙動全てにおいてビジネスロジックが要求する入力を、ユーザーが迷う事なく自然に入力出来る事が必須条件だ
そのためにはユーザーの目線や意識の動き、あるいは操作がビジネスロジックに沿うよう誘導する必要がある
UIそのものがビジネスロジックの全てを知っている必要はない、まあそれは当然だ
だがデザイン屋としてはビジネスロジックの全てを理解し、ユーザーを誘導する様にデザインや配置を考えるべきだと思うんだが
その結果UIがビジネスロジックの一部を内包したとしてどこに問題があるというのだろうか?
お願いだからそうしてワンオフできっちりチューニングしてデザインされたUIを別のビジネスロジックで使い回すのはやめてくれ、台無しだから
0821デフォルトの名無しさん
2016/07/01(金) 14:17:08.24ID:70erRirO0822デフォルトの名無しさん
2016/07/01(金) 14:17:44.53ID:2ngPRN1Whttps://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それは既に出ているアイデアだから
あと過去の局面にない手が指されることもある
0825デフォルトの名無しさん
2016/07/01(金) 19:23:02.04ID:LLRxVdt/今度は1000桁(改行アリ、イスラム語対応)になった
0826デフォルトの名無しさん
2016/07/01(金) 20:07:59.87ID:NneucC0pその通り
UIはビジネスルールを熟知しているものだ
分離などもってのほか
0827デフォルトの名無しさん
2016/07/01(金) 20:16:57.79ID:PvP7Urwsルール確認ならUIからビジネスロジック呼べば済む話なのに、
UIにルールロジック組むなんてw
0828デフォルトの名無しさん
2016/07/01(金) 20:46:29.84ID:NneucC0p素人の発想だなぁ
0829デフォルトの名無しさん
2016/07/01(金) 21:01:10.85ID:PvP7Urwsつか、webアプリ前提だからUIにルールロジック組むとか、既存技術の制約の為?
ますますアホだろ。
0830デフォルトの名無しさん
2016/07/01(金) 21:22:27.79ID:LLRxVdt/そこまでして分離することになんの意味が?
ぶっちゃけ素直にもう一個アプリ作ったほうが早くね?
お客さんも使い回しより専用UI作ってあげたほうが喜ぶよ
0831デフォルトの名無しさん
2016/07/01(金) 21:24:16.76ID:Yk740OnV1)次の一手を考える思考部分を除いた部分の設計・製造において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そういうことだね。
たとえば、Zip圧縮、解凍プログラムを作成するとして、C#を使えば、主要ロジックだけをみたら、圧縮部分1行、解凍部分1行だけのコーディングで終わりとなる。
そして、呼び出されるクラスライブラリは、延々とコーディングされていて、そのアルゴリズムは凡人プログラマな私などには、なかなか理解できず、作れと言われても、困難なものだと思う。
0834デフォルトの名無しさん
2016/07/01(金) 21:51:06.36ID:9AhyjXN+あっち側に行きたいもんだ
勉強するしかねぇな
0835デフォルトの名無しさん
2016/07/01(金) 21:58:51.14ID:LLRxVdt/0836デフォルトの名無しさん
2016/07/01(金) 22:00:00.28ID:LLRxVdt/0837デフォルトの名無しさん
2016/07/01(金) 22:01:31.03ID:Dm1EmYMS0838デフォルトの名無しさん
2016/07/01(金) 22:12:46.33ID:CaSofAc1ぽすとばっくワロタwww
0839デフォルトの名無しさん
2016/07/01(金) 22:48:42.96ID:btOTA9uk糞ワロ
そんなんだから、おまいらみんな駒.moveでUIでバリデってるんだよなぁ
なんつーかフローチャートからやり直せって感じ?
0840デフォルトの名無しさん
2016/07/01(金) 22:50:34.42ID:29bXc8+7ポストバックって言葉は初耳だったな
ググって勉強になった気がする
サーバに何か返すのがポストバック?
ソースの中にポストバックで反応変えるために分岐書いといて
なんやかんや
0841デフォルトの名無しさん
2016/07/01(金) 22:55:39.24ID:NneucC0p0842デフォルトの名無しさん
2016/07/01(金) 22:57:09.81ID:CaSofAc1WebっつーかASP.NET Web Forms
0843デフォルトの名無しさん
2016/07/01(金) 22:58:28.45ID:btOTA9uk将棋.moveがバリデってUIとか言っちゃうの
わかる?
わからないなら、まずフローチャート書いて、初心者の方、どうぞ
0844デフォルトの名無しさん
2016/07/01(金) 23:02:04.54ID:lr1NMl2Nググってくる
0845デフォルトの名無しさん
2016/07/01(金) 23:02:42.32ID:eX1ffSwt論旨に関係ないが、コンピュータ将棋界に旋風を巻き起こしたBonanzaの開発者は開発時カナダ在住で将棋についてはほとんど知らなかったらしいよ
0846デフォルトの名無しさん
2016/07/01(金) 23:07:15.76ID:lr1NMl2N0847デフォルトの名無しさん
2016/07/01(金) 23:13:26.27ID:btOTA9ukまずは駒.moveの移動先をUIでバリデートするフローチャートを書いて!
0848デフォルトの名無しさん
2016/07/01(金) 23:16:47.13ID:lr1NMl2Nむしろ何の仕事でもwebデザインするもんなのか?
0849デフォルトの名無しさん
2016/07/01(金) 23:17:12.52ID:btOTA9uk君たち、もしかしてフローチャート図も書けないのですか?
0850デフォルトの名無しさん
2016/07/01(金) 23:20:20.40ID:Yk740OnVOOPでも、メソッドの部分のほとんどは、手続き型だよ。
手続き型を使わず、すべて関数型で書くのかな?
それとも宣言型?
手続き型プログラム抜きでは、現時点ではプログラム書けない。
フローチャートも複雑な処理では、アルゴリズムの整理に必要なことが多いよ。
0851デフォルトの名無しさん
2016/07/01(金) 23:21:54.84ID:lr1NMl2N駒が行けないとこ表示しないし反応させない的な?
0852デフォルトの名無しさん
2016/07/01(金) 23:37:09.46ID:btOTA9ukうーん、このバカ!w
0853デフォルトの名無しさん
2016/07/01(金) 23:44:35.13ID:lr1NMl2Nなんだよー
語彙わかんねーんだってーの
0854uy ◆e6.oHu1j.o
2016/07/02(土) 01:29:16.38ID:iqIMwrQM大文字、小文字で表現出来てしまう
他の表現方法とか考えられない
出来過ぎてる
0855デフォルトの名無しさん
2016/07/02(土) 01:43:32.59ID:Xx+qh5Ol0856デフォルトの名無しさん
2016/07/02(土) 01:46:03.05ID:vXk+4SKa26
0857デフォルトの名無しさん
2016/07/02(土) 02:03:09.32ID:I5ZEPD/K0858uy ◆e6.oHu1j.o
2016/07/02(土) 02:06:20.62ID:iqIMwrQMはあ?
死ねよ
0859uy ◆e6.oHu1j.o
2016/07/02(土) 02:07:32.65ID:iqIMwrQMNG
0860uy ◆e6.oHu1j.o
2016/07/02(土) 02:09:39.90ID:iqIMwrQMhttps://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/K0862デフォルトの名無しさん
2016/07/02(土) 02:34:34.33ID:YnafEJFl0863uy ◆e6.oHu1j.o
2016/07/02(土) 03:16:23.91ID:iqIMwrQMジョーカーは1枚で良いという事かな
2枚は邪道
0864デフォルトの名無しさん
2016/07/02(土) 03:47:07.92ID:8vzpc6ih0865デフォルトの名無しさん
2016/07/02(土) 06:05:17.88ID:MzSj3q5vこれ豆な
0866デフォルトの名無しさん
2016/07/02(土) 06:39:17.26ID:EKGM1v3Qここでのカードゲームの議論は何が目的?
ゲーム作りをここで議論するのは何の為?
0867デフォルトの名無しさん
2016/07/02(土) 07:21:59.63ID:L/GK6KBr今時手続き型で書く部分なんて殆どない
そもそもフローチャートを書かなきゃならんほど大きな手続き型のブロックが現れた時点で致命的な設計ミスを疑わなきゃだろ
0868デフォルトの名無しさん
2016/07/02(土) 07:30:26.21ID:EKGM1v3Q「今時手続き型で書く部分なんて殆どない」ってプログラムってどんな言語?どんな分野のどんなことをプログラムにやらせているのかな?
ifやwhileやforeach的な構文がほとんど無いプログラムなんて、今までも、現在の進行中プロジェクトでも、書いたことないので教えて!
0869デフォルトの名無しさん
2016/07/02(土) 08:57:21.39ID:r22lp4qkてっきり俺はトレーディングカードゲームのようなカードもルールも将来的に追加変更されるものを例にしたいのかと思ってた
仕様の追加変更に強いプログラムってのはOOPの得意分野だしまあ将棋では論じられにくい部分でもあるしね
…と思ってたのだがトランプとか言い出して意味不明
0870デフォルトの名無しさん
2016/07/02(土) 09:18:50.94ID:L/GK6KBr君みたいな素人ならC#が入門教材としては手頃だろうね
プログラミング共通の理念だから分野は問わない
同じ構造のコードブロックは抽象化して再利用しろ
0871デフォルトの名無しさん
2016/07/02(土) 09:49:10.30ID:EKGM1v3Q答えになっていませんけど?ちゃんと答えてくれませんか?
0872デフォルトの名無しさん
2016/07/02(土) 09:50:32.84ID:L/GK6KBr3行も読めない馬鹿なの?
0873デフォルトの名無しさん
2016/07/02(土) 09:51:52.80ID:EKGM1v3Qそうかもしれない。だからわかり易く質問に答えてください。
0874デフォルトの名無しさん
2016/07/02(土) 10:08:00.73ID:N0+QBUWP0875デフォルトの名無しさん
2016/07/02(土) 10:19:36.33ID:9rtmvwfuあれの本質は関数型のうまみを部分的に取り入れたこと
0876デフォルトの名無しさん
2016/07/02(土) 10:30:17.84ID:Xx+qh5Ol3行といっても
綺麗なコード、糞コード、バグだらけのコードがある
おまえのはどれだ?
0877デフォルトの名無しさん
2016/07/02(土) 10:47:48.62ID:EKGM1v3QLINQが関数型の一部を取り入れたのかどうか知りませんが、コーディング量が激減しますね。
そして、LINQを使えば、"if"とか"foreach"と無縁な記述ができて、とても短い(けど、1行は長い)コードで複雑な処理が可能になります。
なので、C#開発において、LINQはよく登場してきます。
でも、金融系のソフトウエアを書いていたら、どうしても証券の種類とか発行国とかの違いを意識するコーディングが登場します。
そして"if"とか"foreach"とか"switch"などの手続き型の命令を沢山記載することになります。
もちろんうまい設計をすれば、それらの命令を減らすことは可能でしょうけど、「書く部分なんて殆どない」っていう状態とはまだまだ遠いですね。
修行が足りないってことか?
0878uy ◆e6.oHu1j.o
2016/07/02(土) 11:00:52.09ID:iqIMwrQMまだ作った事ないから
トレーディングカードゲームとか、
特別な設計があるとは思わない
それに対し、ボードゲーム・カードゲーム・パズルゲームのルールを表現するアルゴリズムは
千差万別だからそっちに興味が向く
0879デフォルトの名無しさん
2016/07/02(土) 11:05:09.24ID:Xx+qh5Olまずは あるふぁべっと と ぶらいんど・たっち を おぼえましょう
0880uy ◆e6.oHu1j.o
2016/07/02(土) 11:06:37.83ID:iqIMwrQMあー、お前らの「将棋」を表現するアルゴリズムがみたかったものだわ
日本語よりコード書くほうが速くなるといいね
0881デフォルトの名無しさん
2016/07/02(土) 11:08:38.55ID:Xx+qh5Olアルファベットが27個でトランプ54枚って偶然か?
大文字、小文字で表現出来てしまう
他の表現方法とか考えられない
出来過ぎてる
かみ の いたづら
0882デフォルトの名無しさん
2016/07/02(土) 11:17:33.00ID:9rtmvwfu0883デフォルトの名無しさん
2016/07/02(土) 11:25:05.13ID:EKGM1v3Qアルゴリズムに注目っていうなら、OOPだなんだなんて無関係だよね?
それこそフローチャートが活躍する世界になる可能性大かもしれない。
でも、「将棋プログラム」にこだわる人たちの(Thinking)アルゴリズムをみたかったというのには、ちょっと賛同する。
0884デフォルトの名無しさん
2016/07/02(土) 12:08:45.91ID:GsFs8aHP0885デフォルトの名無しさん
2016/07/02(土) 14:56:59.00ID:utxhMr930886デフォルトの名無しさん
2016/07/02(土) 21:06:23.77ID:tsuaSaxJオススメしないね
0887デフォルトの名無しさん
2016/07/02(土) 21:10:01.21ID:I5ZEPD/K0888デフォルトの名無しさん
2016/07/02(土) 21:27:42.96ID:OXRTRK2kあとオブジェクト指向のコードとか吐き気がするほど手続き型なんだけど
0889デフォルトの名無しさん
2016/07/02(土) 21:31:53.72ID:Kre/4kSw0890デフォルトの名無しさん
2016/07/02(土) 22:02:11.76ID:/wal4gbUあえてコピペするわ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関数型言語で組めばすべて解決、銀の弾丸だと思われているわけですね。
0894デフォルトの名無しさん
2016/07/02(土) 22:40:45.93ID:I5ZEPD/K0895デフォルトの名無しさん
2016/07/02(土) 22:43:27.42ID:n0scA4Gtある程度関数型に触れてみた人ならそうなんじゃないかな?
0896デフォルトの名無しさん
2016/07/02(土) 23:10:30.89ID:I5ZEPD/K関数型言語に触れてみる場合のオススメとかある?
0897デフォルトの名無しさん
2016/07/03(日) 00:10:08.58ID:JsjBhjdM0898uy ◆e6.oHu1j.o
2016/07/03(日) 00:35:20.83ID:VJyaYSRj心配になってくるスレだな
0899デフォルトの名無しさん
2016/07/03(日) 00:46:20.29ID:SAfJffY8カー、クダーとか懐かしいわ
0900デフォルトの名無しさん
2016/07/03(日) 01:00:23.40ID:SAfJffY80901デフォルトの名無しさん
2016/07/03(日) 01:53:30.96ID:gbQH+vFt0902デフォルトの名無しさん
2016/07/03(日) 02:28:03.78ID:SAfJffY8彡⌒ ミ ナニナニ
(´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) また関数型の話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
u_| ̄ ̄||´・ω・`)ω・`) マター?
/旦|――||// /|と ノ
| ̄ ̄ ̄ ̄ ̄| ̄| . |-u
|_____|三|/
0903デフォルトの名無しさん
2016/07/03(日) 03:14:06.71ID:/dMGGywFScalaだけどif(式)はともかくforeachとwhileはあんま使わないね もっぱらmapやfilterやらのメソッドで事足りる
後 標準ライブラリじゃないけどScalazだとsequenceとかとてつもなく強力なメソッドがあったりするけど
これを手続き的に書かなきゃいけない事態を考えるとゾっとする
関数型言語は関数の合成という点においては凄く強力だから学んでおいても損はないと思う
0904デフォルトの名無しさん
2016/07/03(日) 05:54:13.85ID:FZVbYLUIC#においてLINQを使ったほうがコーディングは楽で、プログラムが短くなる強力な武器となる。だから「関数型」を学んでおくほうが良いのはそのとおりだね。
ちょっと前のほうで、「ダメプログラマには、手続き型プログラムを書かさず、宣言型プログラミングでコーディングさせればいい」って意味のことを書いた。
関数型プログラミングは、手続き型を排除するってことで、宣言型プログラミングと同じ長所を持っているといえるね。
ただ、そうであっても、LISPによるゲームみたいな、お勉強用プログラムみたいなのは別にして、現実のビジネスアプリ等では「手続き型」のコーディングがゼロにはならない。
それを「OOPは万能!」と同じように、現実の開発を知らない、教条主義で勘違いしている人たちがいるから、「また関数の話?」って書き込む方が出てしまうのでしょう。
0905デフォルトの名無しさん
2016/07/03(日) 09:04:55.54ID:s5HIlZiP0906デフォルトの名無しさん
2016/07/03(日) 09:18:58.84ID:MPHK447R1980年代、オブジェクト指向プログラミングが急成長を遂げた。オブジェクト指向言語の多くは命令型のスタイルであるが、オブジェクトを扱う機能が追加されている。
以上オブジェクト指向言語は基本的に命令型
文法の基本構成要素が、式expressionではなく文statementなことからしてもあきらか
WPFのXAMLやら、LINQは宣言的だと言われているが、XMLはその文法構成が式であり、文ではないからね、文であることが文法的に許されていない
まあ明らかにWPFは流行ってないし、LINQはLINQで匿名クラスみたいな反静的型付けみたいなものを導入している時点でオブジェクト指向的でないのもまた明らか
宣言的と呼ばれている言語でstatementの存在を許す言語は俺は知らないわ
例えばhtmlは宣言的だけど、そこらへん区別ついてる?
0907デフォルトの名無しさん
2016/07/03(日) 09:34:09.78ID:ZEr6aDFZ0908デフォルトの名無しさん
2016/07/03(日) 09:43:02.76ID:FZVbYLUI宣言的な言語であっても、手続き的な命令が含まれてない(許されない)言語を今までの経験上私は知らない。
statemennt的な命令は許されていた。
>>例えばhtmlは宣言的だけど、そこらへん区別ついてる?
htmlってjavasciptとか、いろいろな言語を混在させて、それでやっと実用になっているよね?
だから命令型抜きでは、現状では役にたたないことが多いと思う。
0909デフォルトの名無しさん
2016/07/03(日) 10:33:44.85ID:ZEr6aDFZ0910デフォルトの名無しさん
2016/07/03(日) 11:10:38.66ID:319GQNe3オブジェクト指向言語が命令的であることに同意していただけて何よりです
0911デフォルトの名無しさん
2016/07/03(日) 11:11:58.46ID:g38/oc0e疑問を挟むのは基地外くらいだもんな
0912デフォルトの名無しさん
2016/07/03(日) 11:14:23.15ID:NhdXp9rc結局それが守らせるのが簡単である程度効果的。
0913uy ◆e6.oHu1j.o
2016/07/03(日) 11:18:03.82ID:VJyaYSRj0914デフォルトの名無しさん
2016/07/03(日) 11:26:26.75ID:SAfJffY8彡⌒ ミ ナニナニ
(´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) 次はモナドの話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
u_| ̄ ̄||´・ω・`)ω・`) マター?
/旦|――||// /|と ノ
| ̄ ̄ ̄ ̄ ̄| ̄| . |-u
|_____|三|/
0915デフォルトの名無しさん
2016/07/03(日) 11:35:03.47ID:FZVbYLUI「OOPや関数型を使えば、手続き型が要らない」という妄想、誤解を抱く人を教育、矯正するスレ
0916デフォルトの名無しさん
2016/07/03(日) 12:11:40.67ID:A4NkGxi20917デフォルトの名無しさん
2016/07/03(日) 12:41:27.78ID:FZVbYLUI修正、ありがとう
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:ZEr6aDFZ0922デフォルトの名無しさん
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いやあ、話のやりとりから関数型、手続き型プログラミングでバトルになるかも?と思ったが、問題点は、日本語コミュニケーションだったようだ。
あっという間に終わってしまったみたい。盛り上がらなくてごめん。
0925デフォルトの名無しさん
2016/07/04(月) 15:02:09.08ID:CS0CZjdg| |
| |
| o|
| |
| |
彡 ̄ ̄ パタン
0926uy ◆e6.oHu1j.o
2016/07/04(月) 15:28:59.09ID:RKNLnwF6それは妥協
というか「適用分野」に合わせて、開発環境を変える奴は権力に敗北してる
言語やフレームワークをころころ変えるのは、短期的な効率しか見ていないからね
0927デフォルトの名無しさん
2016/07/04(月) 15:33:45.18ID:JmtoE3f+音楽は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+簡単なものは自分で作ったりもする
"010111001"といった単純なテキストでも、なにかのON/OFFパターンを表すことぐらいはできる
が、全てのことをコレで表現しようとは考えてないんだよね
だからシンプル
0931デフォルトの名無しさん
2016/07/04(月) 16:34:10.30ID:JmtoE3f+逆に一つの鍋で何でもしようとするのが中国人
この辺はお国柄がはっきりしてますわなー
0932デフォルトの名無しさん
2016/07/04(月) 17:58:51.49ID:a9j4Iieo0933uy ◆e6.oHu1j.o
2016/07/04(月) 18:46:01.58ID:RKNLnwF6これマジ?
スクリプト導入したほうが楽だと思ってた
>あと、フランス料理のコックだって鍋をたくさん使い分けるよね
>逆に一つの鍋で何でもしようとするのが中国人
フランスよりも中国のほうが、人口も土地もGDPも上だよね
0934uy ◆e6.oHu1j.o
2016/07/04(月) 18:47:11.05ID:RKNLnwF6ない
0935uy ◆e6.oHu1j.o
2016/07/04(月) 18:51:25.21ID:RKNLnwF6キーボードもマウスも内部に組み込まれてるし
モニタ一体型PCの究極系みたいな
0936デフォルトの名無しさん
2016/07/04(月) 19:54:50.48ID:iBCMz1Fm0937uy ◆e6.oHu1j.o
2016/07/04(月) 20:24:32.87ID:RKNLnwF6ha?
0938デフォルトの名無しさん
2016/07/04(月) 22:08:19.00ID:J0Fy9UKu彡⌒ ミ
⊂(´・ω・`) 君はLinuxで動作するデバドラ書いてくれと言われたらどうするのかね?
/ ,9m
し―-J
0939デフォルトの名無しさん
2016/07/04(月) 22:30:21.08ID:fBjtovDX0940デフォルトの名無しさん
2016/07/05(火) 12:01:39.49ID:0J0noK4F0941uy ◆e6.oHu1j.o
2016/07/05(火) 22:06:30.86ID:1uRQlpDkWindowsとLinuxのいいとこどりをしたOSが、今後出現しないとでも?
妥協をしない開発者がいるから、進化があるんだよ
0942デフォルトの名無しさん
2016/07/05(火) 22:35:55.47ID:/vGWJhcH彡⌒ ミ それでうまく逃げたつもりなのかね?
(´・ω・`) そのいいとこどりをしたOSが出るまで待っているのかね?
(___) これは仕事だ。君には職務遂行の義務がある
ノ さあ、どうするのかね?
/ ̄/
/ / チリーン
ノ /
 ̄ ̄
0943デフォルトの名無しさん
2016/07/05(火) 22:37:07.52ID:61MxF96h0944デフォルトの名無しさん
2016/07/05(火) 22:50:38.93ID:jRJDfSwk854 名前: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マジレスするけどハゲに人権ないよ
ハゲと同じ意見を持つという事は、ハゲと同じ生活をするということは、自分もハゲに一歩近づくという事
>これは仕事だ。君には職務遂行の義務がある
> ノ さあ、どうするのかね?
/ ̄/
ぼくにその義務はありません
何故ならプログラマではないから
uyは自由なんです
それに先進技術開発が達成されるのは、そういう風にフレームワークなどの上でコード書いている時ではなく
趣味でやってる時などに完成するものだと思う
0947デフォルトの名無しさん
2016/07/05(火) 23:31:30.08ID:/vGWJhcH(´・ω・`) と言うのなら、このスレで髪の話をすることを許可しよう
0948uy ◆e6.oHu1j.o
2016/07/05(火) 23:32:08.35ID:1uRQlpDk昔もkardkard言ってた奴もいたけど
なんでトランプってこんなに反応示されるの?おかしくない?
>>945
>妥協しなかった結果が今のニートだもんな
はい、このまま人生逃げ切るつもりです
まあでもちなみにネット起業は会社登録してないだけでしてる
ニートじゃなくてごめんね
自分は誰かにソースコードをこうしろなんて強制されないから
最強の○○について、考えることが自分にとっての最強プログラミング
0949デフォルトの名無しさん
2016/07/05(火) 23:47:33.51ID:qwK3ZrRl僕の考えた最強の〜は関係ない
結果が出せてない、実績がないことを指して
僕の考えた最強の〜と言う
0950uy ◆e6.oHu1j.o
2016/07/05(火) 23:48:28.19ID:1uRQlpDk言語だけは複数あったほうが良い
necessary evil
0951uy ◆e6.oHu1j.o
2016/07/05(火) 23:50:12.60ID:1uRQlpDk結果にとらわれてはいけないと思うよ
自分自身が満足することが大事
それが出来なければ、他人が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>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大図書館などに永遠に引きこもって自分しか使えない技術を開発していたいですね
0958デフォルトの名無しさん
2016/07/06(水) 00:07:43.61ID:qGJVKz7K0959デフォルトの名無しさん
2016/07/06(水) 00:08:18.26ID:BIIFUq2drubyで作るプロダクトをcやアセンブラで作ろうとすると一生完成しない可能性の方が高い。
だから私が髭の話を許可する。
0960デフォルトの名無しさん
2016/07/06(水) 00:10:54.34ID:3g3KhBRp:彡⌒:|
(´・ω:| 効率と複雑性?
ヽつ::| 君はまず社会に出て、成果を求められる環境に身を置くべきだね
ヽ :;|
\
0961デフォルトの名無しさん
2016/07/06(水) 00:13:59.73ID:3g3KhBRp彡⌒ ミ デバドラの話なんだが・・・
(´・ω・`) Rubyでカーネル空間で動作するものを書けるのかね?
0962uy ◆e6.oHu1j.o
2016/07/06(水) 00:14:33.71ID:vNuAhUzI家の近くにIT企業あれば、良かったんだけどね(´・ω・`)
通勤に時間のかかる生活なんて考えられないし
プログラミングを必死に勉強してる頃は、それしか考えてなくて「何とかなるだろう」と思っていたら。なんともならなかった
0963uy ◆e6.oHu1j.o
2016/07/06(水) 00:19:53.66ID:vNuAhUzIGCとかを危惧してるなら普通にオフに出来るよ
他にもカーネル記述に不要なものを全部オフにして書いていけば問題は無いと思う
0964デフォルトの名無しさん
2016/07/06(水) 00:29:01.47ID:2xc1YUigmrubyなら割と簡単に組み込めるんじゃないかね?
NetBSDではLuaでカーネルモジュール書けるみたいだし
0965デフォルトの名無しさん
2016/07/06(水) 00:40:53.22ID:UWKMuS1CRustのほうが良さそう
0966デフォルトの名無しさん
2016/07/06(水) 00:44:04.42ID:3g3KhBRp(´・ω・`) そんなトロくさいもの使えないよ
0967デフォルトの名無しさん
2016/07/06(水) 00:56:50.65ID:qGJVKz7K0968デフォルトの名無しさん
2016/07/06(水) 01:01:41.65ID:3g3KhBRp彡⌒ ミ
⊂(´・ω・`) デバドラ=出刃包丁を持っているドラえもん
/ ,9m 覚えておきたまえ
し―-J
0969デフォルトの名無しさん
2016/07/06(水) 01:03:12.48ID:qGJVKz7K0970デフォルトの名無しさん
2016/07/06(水) 01:08:41.58ID:3g3KhBRp彡⌒ ミ デザインパターン・バンディッド・ドグマ・ラーミア
(´・ω・`) これおもしろいね。ははは
0971uy ◆e6.oHu1j.o
2016/07/06(水) 01:16:27.63ID:vNuAhUzIまずデバドラで本当に速度が足らないのはどこなのか
速度が必要なデバドラ・速度が不要なデバドラ
問題の切り分けからだね
0972デフォルトの名無しさん
2016/07/06(水) 01:43:13.01ID:DQh08+gOシンプルなメモリレイアウトにある
適当なメモリブロックをキャストするだけで
そのように見なしてくれる
0973uy ◆e6.oHu1j.o
2016/07/06(水) 02:19:50.03ID:HK2chlDSソースは?
0974デフォルトの名無しさん
2016/07/06(水) 06:53:59.78ID:vOd3VA2I0975デフォルトの名無しさん
2016/07/06(水) 11:38:59.59ID:2qfMHfYJ0976デフォルトの名無しさん
2016/07/06(水) 12:30:42.30ID:syBKJUriRubyでカーネル空間動作のものは作れないと思う。
0977デフォルトの名無しさん
2016/07/06(水) 15:27:44.05ID:217RIKel現存するRubyコンパイラにそのまま使える物があるかは知らないが、rb2c(ruby to Cコンバーター)なんてネタは何度となく試みられて来てるネタだしw
技術者がよく言う言葉だと技術的には可能です(が、やる価値はないです)って奴だろ
0978デフォルトの名無しさん
2016/07/06(水) 16:12:12.81ID:aYInvTWe0979デフォルトの名無しさん
2016/07/06(水) 16:57:25.26ID:BeYX1bmv0980デフォルトの名無しさん
2016/07/06(水) 19:10:57.06ID:M/EGIEaVなんで?
0981uy ◆e6.oHu1j.o
2016/07/06(水) 19:31:08.13ID:4XXkMTdx0982デフォルトの名無しさん
2016/07/06(水) 20:04:38.80ID:2qfMHfYJ0983デフォルトの名無しさん
2016/07/06(水) 20:41:47.88ID:syBKJUri1つのユーザプログラムが異常な動作をしたら、システム全体がクラッシュとなると困るよね。
だから、ユーザプログラムのメモリ空間と、OSが管理するメモリー空間は別のものとして管理する。
そのOSが管理するメモリー空間をカーネル空間という。
昔のWindowsは、この分離がUnixやLinuxと比較して、甘かったからユーザプログラムの暴走でOS全体がダウンすることがあった。
WindowsNTが開発され始めたころ、このメモリー空間をセキュリティを考えて厳しく分離していた。
でも、全体のパフォーマンスが悪かったので、メモリー空間の制限を緩めたという記事を読んだことがあるけど、それが原因だったのかもしれない。
Windowsじゃあないけど、過去において、他のOSのデバイスドライバの開発をやったとき、カーネル空間で動作するプログラムのデバッグには、カーネル用のデバッガーが必要だった。
でも、個人では金額的に手が出なくて、デバッグに苦労した思い出がある。
0984デフォルトの名無しさん
2016/07/06(水) 21:12:11.26ID:DQh08+gO0985デフォルトの名無しさん
2016/07/06(水) 22:19:40.57ID:S9qDm7+Hカーネル空間は、カーネルしかアクセスできない。
この空間を使って、カーネルが他のプロセスとの、データの受け渡しなどをする
0986デフォルトの名無しさん
2016/07/06(水) 22:36:36.74ID:s7C23tnIあれはプログラマなら一度は読んでおくべき
0987デフォルトの名無しさん
2016/07/06(水) 22:49:08.61ID:Np1SAbRe0988uy ◆e6.oHu1j.o
2016/07/06(水) 23:13:58.23ID:4XXkMTdxchar memory[999999];
とかやってメモリMAP作るのをrubyでは出来ないって事?
つうか元々OSを作る時に必要なハードウェアアクセスなんて
既存のrubyじゃ出来ないしCでruby拡張しながらrubyでOSを作る前提だから
「出来ない」というものは存在しない
「遅い」という課題だけが存在するだけ
0989デフォルトの名無しさん
2016/07/07(木) 00:39:22.48ID:G+34VhO10990デフォルトの名無しさん
2016/07/07(木) 01:14:53.50ID:hNsvcGxY/彡⌒ミ|
|| ( ・ω・| なに?今度は将棋OSの駒.move(() -> UI.validation())のデバドラ?
||oと. U|
|| |(__)J|
||/彡 ̄ ガチャ
0991デフォルトの名無しさん
2016/07/07(木) 06:46:07.45ID:5WQSzVM1つ「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
0992デフォルトの名無しさん
2016/07/07(木) 08:16:03.00ID:zTk2b25B面白くないよその持ちネタ
0993デフォルトの名無しさん
2016/07/07(木) 08:21:39.66ID:hNsvcGxY糞オモロwwwwwwwwwwwwwwwwwww
0994デフォルトの名無しさん
2016/07/07(木) 21:59:37.97ID:iOUcakYjそういや10年くらい前に「Linux(カーネル)をオブジェクト指向で書き直そう!」みたいな話があった気がしたが、
あれって完全にポシャったんだよね?
あの時は「今更メモリ保護もない状態でOSを動かしているのは危険」という話だったはず。
ただ、その時既にLinuxカーネルは十分な実績があったし、書き直すべきかと聞かれれば微妙だとは思った。
0995デフォルトの名無しさん
2016/07/08(金) 08:57:06.28ID:ookNN2TD0996デフォルトの名無しさん
2016/07/08(金) 20:27:31.47ID:gjq4uhFLsmalltalk を忘れたのか?
0997デフォルトの名無しさん
2016/07/08(金) 21:55:43.00ID:6CqwIgwAlinus は激怒するだろう。
0998デフォルトの名無しさん
2016/07/08(金) 22:42:58.18ID:oubWTd1T0999デフォルトの名無しさん
2016/07/08(金) 22:56:31.58ID:oHle9aRO1000デフォルトの名無しさん
2016/07/08(金) 23:05:27.27ID:lgN9JYdd10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 27日 4時間 47分 4秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。