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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/08/08(火) 17:52:14.38ID:4Kd2O+xB
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
2017/09/21(木) 00:35:05.01ID:ijaAIW4i
>>766
もちろん唯一の道じゃないけど
コードリーディングだけで
デザインパターンを身につけるのは効率が悪い

あらかじめパターンを知ってて
「これは○○パターンだな」っていう方が
圧倒的に上達が早い
2017/09/21(木) 00:50:20.24ID:n0XifzBg
時間の無駄になる相手に
レスを返しては行けない

分かる人だけ守って欲しい
自分の時間を守って欲しい
2017/09/21(木) 00:59:26.34ID:K0No9bcT
>>762
何がそうじゃないのかわからんのだがww

今度は「デザパタ学習が唯一の道ではない」に主張を変えたのか
その主張なら誰も否定しないだろね
最初からデザパタ学習が唯一の道なんて言ってる人いないから
2017/09/21(木) 01:08:43.31ID:N1EOCCyb
デザパタとリアルで言っても大丈夫でしょうか?
2017/09/21(木) 01:40:52.00ID:QBtXCTqk
>>770
いやー、やめとけ
2017/09/21(木) 01:43:18.55ID:F/cUryZs
>>767
君がそう思うのならそれでいい。
ただ事実として言えるのは、「デザパタ」は頻出パターンであり、当然他でも言及されてるんだよ。

例えばファクトリー、以下はJavaScriptの例だが、クロージャの部分でさらっと出てくる。
ただしJavaScriptの場合はクロージャを生成する為にファクトリーを積極的に使う理由があり、GoFの範囲を超えている。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures
もちろんイテレータはプログラミング言語C++の中でハゲが力説しているし、
ストラテジーについては継承まんまだろ。OOP言語なら確実に説明されてる。

各言語機能も、作った側は「こう使って欲しい」ってのがあるから、それぞれ力説されてる。
(K&Rはあまりにも淡々としすぎているが)
だから頻出パターンならいい教科書で各言語機能を学べば自然と目にしてる。
そして文法は学ぶ必要があるから、これらは読むしかない。
その後にデザパタを見ても、頻出パターンは確実に重複するんだよ。
そしてどうでもいいパターンを学ぶ意味はないし。

デザパタは結局頻出パターンだから、学ぶ気があればどの方法でも自然と身につく。
コードリーディングでも、教科書を読んでも。
「デザパタ自体を学習せねば!色々初めて見るし!」と思ったのなら、それは君らが普段からあれこれ見落としているだけ。
デザパタなんてそこかしこに転がっている。いちいち言及されてないけど。
だから本来はわざわざ別に学習しなければならない物でもないのさ。
2017/09/21(木) 02:03:32.34ID:2yneGSNP
>>772
> 文法は学ぶ必要があるから、これらは読むしかない。

文法はコード書いたり読んだりしてれば自然と身につくよ
日本語の文法を学ばない人に日本語は使えないかというとそうじゃないだろ?
教科書を読むのが文法を学ぶ唯一の方法だと思ったら大間違いだよ

はい、これがお前的反論パターンw
2017/09/21(木) 02:29:40.61ID:q11aClZE
ハロパタ
2017/09/21(木) 02:35:36.57ID:ijaAIW4i
>>772
上から目線で捉えていることは
無条件で正しいとでも思ってるのかな
「君がそう思うのならそれでいい」が

GOFの23パタをすべて習得してるのは当然の前提として
GOF以外のデザパタもあるし
GOFの23パタからアレンジしたものもある

日本ではマイナーなものもある
Null Objectなんかは最近浸透してきたが
Type ObjectとかExtension Objectとか他にも色々ある

またイテレータと同様に
ビジターにも内部/外部があるとか
関数型やジェネリックの書き方があるとか
発展的なトピックもある

だからデザパタ単体で学習した方が整理される
言語を学んでいるときはパターンより文法に
コードリーディングしてるときは
実装のテクニックに目が行きがちだしね
776デフォルトの名無しさん
垢版 |
2017/09/21(木) 05:42:15.46ID:eSaSp7RC
みなさん、ほんとうにデザパタを使っているんですか?

簡単な分かり易いものは使っているんでしょうが、これぞっていうパターンを
使っている人このスレに居ますか?

大手企業のパッケージ開発やフレームワーク開発に従事している秀才プログラマー
が使っているのは度々見ましたが、中階層、低階層の現場では見たことありません。

ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
2017/09/21(木) 06:50:22.15ID:aDCr5zcn
アルカンシェルパターンはよく使ってるね
最強のパフォーマンスを目指す選ばれた者だけが行使することを許された神ーGODーの力
2017/09/21(木) 07:20:26.51ID:QBtXCTqk
>>776
使ってねぇって言ってるだろハゲ
2017/09/21(木) 07:51:05.32ID:xOLq2+H5
>>776
http://www.techscore.com/tech/DesignPattern/index.html/
適当にググって出て来たここに紹介されてる奴を眺めて思い返してみたけど、ほぼ全部使ってるわ
もちろん、これはナントカパターンだ赤ペン先生でやったぞ!ってモロに意識しながら使うと言うよりか、いつも書いてるあのコードってカタログから選ぶとこのパターンだなって感じ
2017/09/21(木) 09:12:15.36ID:Xs4LibNR
>>771
やっぱりそうですよね
普通にデザインパターンって言いますよね
うっかりデザパタとか言わないように気を付けます
2017/09/21(木) 15:56:35.21ID:EmOs9oCs
>>776
GUIで使われるようなものはwebだと使う機会なかったりするし
無理に使うようなものじゃない

GoFのデザインパターンは共通認識としての意味合いが強いから
勉強しとかないと話にならない
2017/09/21(木) 16:00:36.62ID:QBtXCTqk
>>781
はぁ?
一度も使ったことねーけど?w
2017/09/21(木) 18:57:33.91ID:jvulp0iD
パターンハラスメント
2017/09/21(木) 19:07:59.73ID:EmOs9oCs
>>782
毎回長々と説明してるのか
生産性の低い環境でやってるんだな
2017/09/21(木) 19:29:18.74ID:ffbJfIAO
デザインパターンなんてゆとりには通じないよ
ゆとりはif文とforループしか理解できない
彼らとのコミュニケーションは全て懇切丁寧に一から説明しないといけない
そして彼らはそれが当たり前だと思っている
甘やかされて育った人間があれほど厄介な生き物になるとは思わなかった
違う生き物と話しているようで辛い
2017/09/21(木) 20:01:30.88ID:0x00hAVC
デザパタの分かる年寄りより
分からない若いのを雇うのがIT土建屋
2017/09/21(木) 20:13:18.07ID:EmOs9oCs
>>786
若いから安く買えて
工数かかるから高く売れるんだな
サビ残人身売買
2017/09/21(木) 20:18:00.45ID:ffbJfIAO
使い潰してもいくらでも捕獲できるし便利っちゃ便利だわな
2017/09/21(木) 20:18:42.03ID:N1EOCCyb
デザインパターン
2017/09/21(木) 21:59:15.38ID:F/cUryZs
>>775
なんだゆとりか。

つか、君は結局何が言いたいんだ?
> 圧倒的に上達が早い (>>767)
については、俺は既に
> どっちが上達が早いのかは知らん。 (>>762)
と言っているんだから、平行線だし、ここの議論では結論は出ない。
各自が各々の考えを主張できるだけだ。
君がそう思うのなら、君はそうすればいいだけ。俺はそうは思わないから、俺はそうしない。
それ以上でも以下でもないだろ。勝手に切れるゆとりは多いが。

> コードリーディングしてるときは
> 実装のテクニックに目が行きがちだしね
それは君がそうだってだけ。自覚できているのなら、そうならないように気をつけながら読めばいいだけ。

>>785
ゆとりが糞なことについては同意。
てかまじで、>>775とか何が言いたいのか分からん。
同意してくれなきゃヤダってゴネてるのか?としか。
よく見かけるけどね、このパターン。
2017/09/21(木) 22:05:21.29ID:QBtXCTqk
デザパタなんて使わねーよ
2017/09/21(木) 22:53:56.69ID:1e+K8/4+
>>791
使ってることに気づいていないクズ
2017/09/21(木) 23:13:46.19ID:F/cUryZs
>>776
何でもそうだが、デザパタもやりすぎたら手段が目的化するんだよ。>>775とか。
言われてみれば使ってるっていう、>>779位がちょうどいい頃合だと思うよ。

何が問題って、GoF自体が古いからではあるが、今ならもっと単純にできるものが大量に有って、
というかGoFの時点で既にアクロバティック気味で、何がやりたいんだこいつらは?って感じなんだよ。
名前も厨二過ぎてイミフだし。
結局はOOPの文法の全ての組み合わせから、あるあるに厨二な名前をつけただけ、っていう。
例えばコンテナ等でお約束的に使われる「型消去」だが、GoFにはないだろ。
(見落としかもしれんが、それなら「型消去」と直感的な名称の方が断然良いからGoFが使われないだけ)
だからWikiにも書いてある通り、俺は
> デザインパターンをむやみに適用するのは不適切であり、不適切な使用はコードの複雑さを無意味に高めてしまうと注意している。
> 一部のデザインパターンは、プログラミング言語(例: Java, C++)の機能の欠損の印であると主張されることがある。
の側面もかなりあると思うよ。
2017/09/21(木) 23:14:03.96ID:F/cUryZs
>>776(続き)
ただ、使ってる/使ってないと言えば、それは確実に使っている。
既に言ったがストラテジーは継承そのものだから、OOPならほぼ間違いなく使うし、
オブザーバーってのはフレームワークのイベントモデルがこれ(.NETとHTMLはそう)なので、
例えばC#やJavaScriptにおいてこれを使ってないというのはありえない。(自覚しているかどうかは別)
なおJavaScriptはこれを言語自体にも取り込もうとしたが、いいところまで行って頓挫した。
https://www.html5rocks.com/ja/tutorials/es7/observe/
本当に頻出なら言語で直接サポートした方が便利だから、そうなって行くものなんだよ。
それがイテレータであってね。
だから、この類の「言語新機能」を追いかけていても、頻出パターンについては自然と学習することになる。
GoFは1995だし、それからソフトウェア工学も進歩しなかったわけではない。(Javaは10年間進歩しなかったが)
新しい言語は分かりきっている問題に対しては対策をしてくる。
そしてGoは「継承はいらない」という彼らなりの結論を出してる。
GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

> ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
君がここら辺の話について来れないのなら、とりあえずまず読んでみろ、ではある。
それでどう思うかは君の自由だ。

多分結局は適性なんだよ。パターンから選ぶほうが楽なら積極的に使えばいい。
俺にはデザパタは粒度が大きすぎる。自分で継承/匿名関数等を使って組み上げるほうが楽だ。(というより直感的)
ただし結果的には同じようなことになっているとも思うが。
2017/09/21(木) 23:55:29.08ID:2yneGSNP
ストラテジーが継承そのものってどういう意味?

HTMLのイベントモデルがオブザーバーってどういうこと?
2017/09/22(金) 00:00:17.04ID:kB3Gqsn3
>>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

いまでもGoFを学ぶ意味があると言うと、盲信してることにされちゃうんだね
ということは、Goの出した結論をGoを指示する人は盲信してるの?

まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
2017/09/22(金) 00:31:51.44ID:sr7lvu8c
>>796
> まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
その通りだ。俺は自分で考えろと言っているだけだ。

GoFが古いのは事実だ。
その間にソフトウェア工学が進歩していると仮定するなら、当然問題は解決されてくる。
実際そうなっているわけでね。
メジャー言語では、Javaは例外的に全く進歩してないが、
他言語(C++/C#/JavaScript)はなんだかんだで色々試行しているよ。

俺自身、継承はちょっと結合が強すぎるとは感じる。
ただ全部委譲の方がいいか?と言われれば、どうかな?とも思うが。
とはいえ、「全部委譲でよし、継承イラネ」ってのは2chでも散見されるだろ。

で、君はSwiftやScalaを知っているんだろ?それはどうなっているんだ?
2017/09/22(金) 00:32:11.77ID:Nn2M/THg
>>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。

継承という文法がなくても
継承を別の方法で実装できるからでしょ?

「継承はいらない」ではなく「継承を直接行うための文法はいらない」が正しい
そしてGoでも継承自体はやる。
2017/09/22(金) 00:38:17.90ID:9s7VGfiV
ほんと、ストラテジーが継承そのものってどういうことよ??
最近はOOでも関数を渡せる言語が増えてきたから
ストラテジーの実装は継承使わないほうが多いと思うぞ

古臭いGoFをそのまま学ぶ必要はないだろうが
単に各パターンを知る・使えるようになることよりも
パターンを通してOOの設計原則を学ぶことが重要
2017/09/22(金) 09:48:55.51ID:eeRMTLx0
アラン・ケイやGoFのデザパタに触れるとスレが荒れるということは分かった
2017/09/22(金) 11:19:40.04ID:b6yHr9//
名前がついてるものの中でも
クイックソートやB+Tree、線形補完でスレが荒れるなど聞いたことないし
やはり何か根本的に微妙なんだろうな
2017/09/22(金) 12:09:12.17ID:z4GP1i1k
良し悪しを証明出来ないからだろう
アルゴリズムのオーダーとかなら数学で証明できるから議論の余地がない
数学的に曖昧なものほどバカでも議論に入る余地があるから調子乗って参加しちゃう
こういう議論でしか話せないんだよバカは
2017/09/22(金) 12:52:53.21ID:gDV2cvxW
クイックソートでも再帰を使えないアホウが発狂するぞ
どんなネタでも発狂するキチガイは存在する
2017/09/22(金) 14:02:03.76ID:juWn7/fD
再帰なんてわかんなかったら繰り返しになるまでコード書いて見ればいい
繰り返し部分を関数にすれば作成完了だ

しかし、スタックオーバーフローで死ぬ
ここまでがワンセンテンスだ
2017/09/22(金) 14:30:09.14ID:b6yHr9//
要は名前を付けるほどの物でも無かったんじゃね、説
2017/09/22(金) 14:39:52.97ID:b6yHr9//
例えばクイックソートなんか、明らかに名前を付けるに値する人類の英知でしょ
ちょっと自分では思いつかないかもしれないし
誰でも真っ先に思いつきそうなセレクションソートなんかと比べれば効果は劇的だし
動きも複雑っちゃ複雑なところもあるから、人に説明するのも大変でしょ
だからクイックソートは絶対名前を付けて共有したほうが良い
それと比べてどーなんかなーという
2017/09/22(金) 15:05:58.23ID:kB3Gqsn3
じゃあバブルソートとかリニアサーチは名前つけるほど大層なもんでもないから、先頭からひとつずつ見ていくやつ、みたいな感じで表現すればいっか
2017/09/22(金) 15:53:34.28ID:b6yHr9//
基本的には名前が知られて有名になっていく過程というものが有るんじゃないかと
その自然的プロセスをすっ飛ばして
良くありそうなアルアルに名前を付けます、俺の独断と偏見でな!
ってのがね
2017/09/22(金) 21:46:42.33ID:9s7VGfiV
パターンに名前を付けることの価値がわからない人には
オブジェクト指向は向いてないんじゃね?

a, b, x, y, t1, t2みたいな命名しとけばいいと思うわ
2017/09/22(金) 22:19:39.92ID:sr7lvu8c
>>801
俺自身は単品の説明は必要だと思っている。例えば、
・継承/インタフェース/委譲/関数ポインタ/匿名関数/クロージャはそれぞれこういう場合にこう使う
ところがデザインパターンはこれらの組み合わせであり、
・ここで継承、ここは委譲してこう組み合わせる、これが○○パターン(キリッ ←うぜー
バリエーションで無駄に名前を増やしすぎている。>>738のとおり、
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
なら(A)->(B)->(C)のアップグレードは自明であり、別々に名前をつける必要はない。
(だから混同されているし、また逆に、混同してても問題ないから混同されたまま、とも言える)
GoFからして水増し感ありまくり。半分くらいリストラ出来るんじゃないか?真面目に見たことはないが。

そういえばJavaScriptのIndexedDBはAPIがFactoryになっている。
まあこれに意味があるのかは疑問ではあるが。
https://developer.mozilla.org/ja/docs/Web/API/IDBFactory
あと、Proxyパターンは標準化済みだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Proxy
いずれにしても頻出パターンは受動的にも学べる。
2017/09/22(金) 22:20:48.95ID:Sr724cYm
パァーン
2017/09/22(金) 22:21:11.90ID:sr7lvu8c
>>802
プログラミングは暗記だ!と思っている文系の馬鹿がすがるからだろ。
彼らにとっては、自分達が「上級者」だと証明するものは記憶したデザインパターンの個数しか無く、
そんなもの無意味だ、と言われて発狂してるだけ。
上記の遠り、俺は何度も「何故意味がないか」を具体的に説明しているが、
彼らは感情的にしか反論できてない。これがまた彼らの馬鹿っぷりを証明している。

本来は経験の差を知識で埋め、初心者→熟練者にジャンプアップさせることが目的だった。
これは表面的には達成できるんだけど、やっぱり中身は初心者のままで、考え方がずれてるんだよ。
しかしそのメッキしただけのまがい物が上級者ぶって語るからおかしなことになる。

ただまあ、デザパタ議論をしているだけでもマシな方だ。
JavaScriptはネット見てるだけでマジでカオスで、ろくなコードはないし、でたらめを主張する奴も普通にいる。
現場は壮絶な状態だというのは想像に難くない。
あいつら、jQueryが使えたら達人扱いっぽいのだが、jQueryってCでいうprintfだからな。
2017/09/22(金) 23:15:39.67ID:sr7lvu8c
>>808
名前を付けるのは基本的にはいいことなんだが、直感的じゃ無いと駄目なんだ。
これはmemeと同じで、みんなが妥当だと思わないと広まらないんだよ。
(これが君の言う「自然的プロセス」で、つまり自然淘汰されただけとも言える)

ストラテジーパターン、アダプターパターン、デコレーターパターン、ビジターパターンとか言われても、は?だろ。
バブルソート、クイックソート、リニアサーチ、バイナリサーチってのはそのものずばりだ。
>>807みたいな馬鹿にはそれすら分からないらしいが。

ところで>>807、お前は早くSwiftとScalaの説明しろ。
2017/09/23(土) 00:15:19.15ID:47xDJ4SG
愚にもつかない長文を一生懸命連投するメンタリティが悲しい
2017/09/23(土) 00:25:56.13ID:47xDJ4SG
愚にもつかない長文を一生懸命連投するメンタリティが悲しい
2017/09/23(土) 03:16:02.43ID:PZVogj5V
>>814>>815
書き込めたかどうか確認することすらできない人はそう言った
2017/09/23(土) 03:56:40.05ID:3Bk8qYPA
>>813
クイックソートのどこがそのものなんだ?
単に「速いソート」って名乗ってるだけだろ

クイックソートよりも速いアルゴリズムを採用して
「超速いソート」と名付けたらそのものズバリだと思うか?

超速いソートという名前からどんなアルゴリズムを想像するよ?
2017/09/23(土) 05:07:06.10ID:Tcv0uwXr
デザインしたことたいやつにはわからんよ
2017/09/23(土) 05:07:31.96ID:Tcv0uwXr
デザインしたことないやつにはわからんよ
2017/09/23(土) 09:00:59.54ID:Z1NsXN0c
>>817
ゆとり死ね

>>808
そういえば、実際に頻出だと名前が無いと困るので、別の名前が付いてる。

多態(ポリモーフィズム)=ストラテジーパターン
ラッパ=アダプターパターン(だと思う)
グローバル≒シングルトンパターン
包含/委譲=コンポジットパターン
○○プール(スレッドプール等)=フライウエイトパターン
構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)

元々有った物については、イテレータ等同じ名前でないものはデザパタ側の名前がアホ過ぎてスルーされてる。
例外的にsingletonは使われているが、これはglobal=悪というJava教ではなぜかsingleton=善とされているから。
(適用範囲はほぼ同じ。実は駄目っぷりもほぼ同じなのだがスルーされてる。
坊主がウサギを鳥だと言い張って食ったようなもの。)

ぱっと見た感じはこんなもんか?
俺はデザパタの名前は普段使って無いから間違ってるかもしれんが。
2017/09/23(土) 09:08:00.24ID:Z0Kw+Iw9
全然イコールじゃなくてわろた
2017/09/23(土) 09:28:01.41ID:nAanI8EG
長文書く奴はバカの法則
2017/09/23(土) 09:34:12.45ID:lJTicCY1
クラス、変数名全部頭にunkoってつけてやる
2017/09/23(土) 09:45:25.48ID:Z1NsXN0c
3行しか読めない馬鹿はマジでプログラマ辞めて自殺してくれ。
絶対に上達しないし、糞コード量産されるだけで迷惑だ。
つか、普段から仕様書なり解説記事なり読んでないの丸分かりだし。
2017/09/23(土) 10:49:54.45ID:7PRDVMsP
>>824
でもお前の文章が冗長なのも事実だ
2017/09/23(土) 10:57:31.46ID:zdCb7/9/
>>824
伝わらないことを他人のせいにしてんじゃないよ
長くても読みやすい文章はいくらでもあるけどおまえはそうじゃない
2017/09/23(土) 11:11:51.31ID:pHSma+nn
下らん長文書く奴はたいていわけわからん仕様書書く
2017/09/23(土) 11:17:26.32ID:Jh9lXn4N
自分だけはバカじゃないという前提
2017/09/23(土) 11:21:38.27ID:Z0Kw+Iw9
ゴミみたいな長文を書くウジ虫はコードも長い
平気な顔して10行20行の関数を書く
2017/09/23(土) 11:59:27.08ID:g84quUgG
パターンとかなんでも名前ついてるじゃん
reduxとかpromiseとかgit flowとか
頻出だったら名前が必要でそうでなければ不要とか、主張の意図がわからんわw
名前があったら困るのかw
2017/09/23(土) 12:07:41.55ID:Z1NsXN0c
やはりゆとりは殺すべき。
根本的に勘違いしている。長文のほうが簡単なんだが。
2017/09/23(土) 12:09:39.94ID:Z0Kw+Iw9
>>831
BaKa
2017/09/23(土) 12:10:13.25ID:Z1NsXN0c
>>830
> reduxとかpromiseとかgit flowとか
2017/09/23(土) 12:15:27.16ID:qINfq2L1
>>831
長文はキチガイ
2017/09/23(土) 12:34:46.78ID:47xDJ4SG
長文自体が問題でもあるけどこの場合
「愚にも付かない」長文を「一生懸命連投」しちゃってるところが涙を誘う
小学生の九九暗唱連呼なら、しつこくても間違ってても、まだ微笑ましい
2017/09/23(土) 12:43:54.76ID:Z0Kw+Iw9
長文を書くからボロが出る
2017/09/23(土) 12:56:54.86ID:Z1NsXN0c
既に言ったが俺は>>775の意図が理解出来ない
文才溢れるゆとりによる適切な解説を求む
2017/09/23(土) 14:04:19.43ID:0ADpWaV5
>>835
>>814-816
2017/09/23(土) 14:34:52.76ID:vbQ5UjHD
俺はデザパタ知らないし話についていけてないけど
それでも長文書くやつはバカだろ
長文書いただけで、そいつが言ってることが
間違いだってわかる=デザパタはクソ
840デフォルトの名無しさん
垢版 |
2017/09/23(土) 14:40:40.69ID:ghlB+mQW
>>839
長文嫌いなの?
2017/09/23(土) 14:44:31.43ID:OVoD4rc5
ディベートのテクニックの一つだよ
相手が長文で攻めてきたら
長文はキモいの一言で
で相手の理論を論破できる
2017/09/23(土) 14:48:58.43ID:Z0Kw+Iw9
要点を絞れない
簡潔に説明できない
長文はアホの得意技
2017/09/23(土) 14:49:33.57ID:j6VCxv0o
>だからデザパタ単体で学習した方が整理される言語を学んでいるときは
>パターンより文法にコードリーディングしてるときは
>実装のテクニックに目が行きがちだしね

なるほど、確かに何言ってるか分からんな
2017/09/23(土) 14:54:26.06ID:OVoD4rc5
>>842
それもディベートでよく使う。
基本相手の発言は遮って自分の発言で上書きするのが
テレビでもよく使われるテクニックだが、

相手がなにか言ってしまったら、
要点を絞ってもう一回発言してくださいと
逆に相手に同じことを言わせるというテクニックもある。

このテクニックをうまく使うと、要点を絞らせるから
相手がいいたいことを減らすことができる。
2017/09/23(土) 15:20:32.55ID:PshCXG8Z
×デザパタ
○デザインパターン
2017/09/23(土) 15:24:18.47ID:Z1NsXN0c
>>839
俺は「デザパタはクソ」派なんだが
2017/09/23(土) 15:25:09.29ID:qWNtk5Ea
長文書く奴は脳が女の脳してるからプログラムには向いてないんだよな。
2017/09/23(土) 15:32:14.50ID:Z1NsXN0c
>>840
ゆとりにとって「長くても読みやすい文章 (>>826)」とはこういうのらしい。
http://news.denfaminicogamer.jp/projectbook/zelda
これは対談なのでこの形式で問題ないとはいえ、やはり冗長感ありで、スレでも指摘されてた。
基本的には頭が悪い(脳内短期記憶バッファが小さい)から、長文を一度に読み込めず、
小学校1,2年生相手のように一つ一つ対話的に説明してくれないと分からないらしい。
(富豪レスではなく貧民レスじゃなきゃダメ)

ついでにScalaの説明をする奴がいないので少し調べているところだが、
Scala以前については大体これであってるな。
http://rirakkumya.hatenablog.com/entry/2013/04/20/093044

>>842
最近、その手の詭弁テクニックを使う奴激増したよな?
印象も重要なリアルのディベートならさておき、
ここでやる意味は全くないから意味不明なのだが、なんでだか分かる?
2017/09/23(土) 15:38:26.88ID:PFKg/P6i
>>820
その等式、マジで全部間違ってるよ
2017/09/23(土) 15:39:56.99ID:Z1NsXN0c
>>842
> 要点を絞ってもう一回発言してくださいと
> 逆に相手に同じことを言わせるというテクニックもある。
ちなみにこれ思い出した。
> プレゼンで一つ前のスライドに戻すように頼む
> http://netgeek.biz/archives/88894
2017/09/23(土) 15:40:40.91ID:qWNtk5Ea
曖昧で冗長で不正確で理解しにくいの4拍子そろってるな。
2017/09/23(土) 15:46:15.97ID:Z1NsXN0c
>>849
なら君なりの等式を書いて議論を進めて、どうぞ。

というかマジでお前ら、それで何とかなってるのか?
リアルで詭弁論法使う奴がいたら俺はそれ以降相手にしないんだが。
2017/09/23(土) 16:37:32.08ID:47xDJ4SG
お前ら、この状況をよく観察しろよ
そして、スルーの使い時を学ぶんだ
2017/09/23(土) 16:42:14.21ID:zdCb7/9/
>>848
読み辛いよ
2017/09/23(土) 16:57:16.97ID:Z1NsXN0c
>>854
では君が思う「長くても読みやすい文章」の例示よろ
2017/09/23(土) 16:59:16.70ID:zdCb7/9/
え、やだ
2017/09/23(土) 17:00:49.62ID:lJTicCY1
>>855
長くする意味がわからんw
ちょうどいい長さでレスしろよw
2017/09/23(土) 17:58:20.11ID:Z1NsXN0c
そういえば.NETはオブザーバーは標準化済みでユーザタイプeventで使えたわ。
https://msdn.microsoft.com/ja-jp/library/edzehd2t(v=vs.110).aspx
2017/09/23(土) 20:29:44.01ID:b6I3iAXW
>>794
>ストラテジーは継承そのもの
ストラテジーは委譲だよ
継承そのものと言えるのは
テンプレートメソッドの方

デザパタの基本じゃないか

>ここら辺の話について来れないのなら
上から目線で言ってて
間違ってりゃ世話ないな!
2017/09/23(土) 22:48:39.47ID:Z1NsXN0c
>>859
テンプレートメソッドパターンは本来は依存関係なしのコード共通化=C++のテンプレート、C#のジェネリック
のような気がするが、まあそれならそれでよし。

・多態(継承/委譲)=テンプレートメソッドパターン、ストラテジーパターン、コンポジットパターン
・ファクトリーの多態=アブストラクトファクトリーパターン

で、これらは現在、ほぼ全ての場合に左側の用語が使われ、デザパタ用語はリストラ済みの認識でいいか?
2017/09/23(土) 22:50:48.00ID:0YQdpVUK
Smalltalkの話すると荒れるのなんで?
2017/09/23(土) 23:12:24.68ID:b6I3iAXW
>>860
>テンプレートメソッドパターン
>C++のテンプレート、C#のジェネリック
デザインパターンのテンプレートと
ジェネリックのテンプレートは関係ない

ジェネリックは型を汎用的に扱う仕組み
デザパタの方は処理を継承で共通化する仕組み


>ほぼ全ての場合に左側の用語が使われ
その確信の根拠はどこから来てるの?

多態はデザパタとは別の概念で
イコールで使われるようなものじゃないだろ

コンポジットパターンのことを指して
多態って言われても意味分からん
2017/09/23(土) 23:14:18.84ID:b6I3iAXW
>>861
Smalltalkerは
どうしてもOO原理主義的になりがちだから

どんな分野でも原理主義は衝突と摩擦を招く
関数型原理主義とかでも荒れるだろ?
2017/09/23(土) 23:15:33.02ID:OVoD4rc5
>>861
SmalltalkはOSと言語が合体している独自の世界だから

Smalltalk実行環境(=OS=開発環境)のみがコンピュータ上で動いており
Smalltalk実行環境は電源を消すまで動作しているという前提の話をするから
言語だけの話にならない。

例えば開発した新しいプログラムをOS上で起動するというのは
Smalltalkの世界では、Smalltalk実行環境上で新しいクラスを作って呼び出すということで
プログラムを一旦終了してバグを修正して再起動するということは
Smalltalkの世界では、ではクラスを動的に変更するということになる。

このように一般的なOSでは、プログラムの作成や修正という当たり前にできることが
Smalltakでは「オブジェクトは遅延結合が必要で動的に変更できなければならない」という
根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、
そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる
2017/09/23(土) 23:33:54.47ID:PFKg/P6i
>>861
良いSmalltalkerと悪いSmalltalkerがいて
このスレには後者が住んでるから

ケント・ベック、ウォード・カニンガム、エリック・エヴァンス、ラルフ・ジョンソンらは
Smalltalkを垣根を越えてこの世界に影響を与えた人達
日本だと羽生田さんとか

悪いSmalltalkerはSmalltalkの世界観に閉じこもって現実を見ない
技術力が無いから他に生かせないというのもある
2017/09/23(土) 23:42:38.26ID:Z1NsXN0c
>>862
C++のテンプレートなら、
継承関係ないクラスの同じ名前のメソッドを呼び出し側は共通に使えるんだよ。
静的ダックタイピングと言えば分かるか?
Javaはこれが出来ないから継承ありきになるだけであって。

> >ほぼ全ての場合に左側の用語が使われ
> その確信の根拠はどこから来てるの?
だって見たことないし。
ネットでも継承/委譲議論は見かけるが、わざわざデザパタ用語使ってる奴はいないだろ。
余計に分かりにくくなるだけだし。
元々>>703の質問がこれだが、君はリアルで使っているのか?

> 多態はデザパタとは別の概念で
> イコールで使われるようなものじゃないだろ
多態自体が本来はパターン(多態パターン)で、これはオブザーバー/ファクトリー/フライウエイト等と並べられるだろ。
継承/委譲は多態の実装方法であって、それらの組み合わせで○○パターンとか無駄に水増しするからデザパタはダメなんだよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況