前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
探検
オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/08/08(火) 17:52:14.38ID:4Kd2O+xB705デフォルトの名無しさん
2017/09/19(火) 20:27:42.88ID:6o+b/JQG706デフォルトの名無しさん
2017/09/19(火) 20:32:55.48ID:oRSrnZEU フレームワークは、デザパタの集積だから、知らず知らず使ってる
フレームワーク製作者は、デザパタの勉強が欠かせないけど、
使う方は、知らなくても使える
フレームワーク製作者は、デザパタの勉強が欠かせないけど、
使う方は、知らなくても使える
707デフォルトの名無しさん
2017/09/19(火) 21:38:54.06ID:oUqqEkrK >>703
singletonはよく使われてる
singletonはよく使われてる
708デフォルトの名無しさん
2017/09/19(火) 21:47:07.15ID:yzSynM5D >>703
デザパタ自体はあるあるに名前を付けただけだから知ってても知らなくても使ってる。
コードを配置するときに、結果的に○○パターンというのはあるが、逆に、
デザインパターンの中からどれにするか選ぶ、という奴はいないと信じたいが、どうなん?
構造を検討するのならクラス図を直接ホワイトボードに書けばいいだけで、(名前がまるで直感的でないので)
それをわざわざ会議で「ここは○○パターンで行きましょう!」ってのもないと信じたいが、これもどうなん?
というか俺はあの名前を真面目に覚える気にはならない。
あれって、継承/委譲/インタフェース等の組み合わせを全部展開して命名しただけであって、
それより継承/委譲/インタフェースをそれぞれどういう時に使うかをしっかり抑えたほうがいい気がしている。
例えるなら、物理でma=Fとsin/cosで終わるところを、
角度30度の斜面のときは…とか展開して覚えている感があるので気に入らない。
それ以前にクロージャ/関数ポインタ等、もっと使える部品も入ってないし。
というわけで、俺はデザパタはいらない子、と思っている。(使っているが、デザパタとは意識してない)
まあそれ以前に、最近は継承はいらない子、委譲だけでよし、ってのも流行ってるみたいだが。Goとか。
デザパタ自体はあるあるに名前を付けただけだから知ってても知らなくても使ってる。
コードを配置するときに、結果的に○○パターンというのはあるが、逆に、
デザインパターンの中からどれにするか選ぶ、という奴はいないと信じたいが、どうなん?
構造を検討するのならクラス図を直接ホワイトボードに書けばいいだけで、(名前がまるで直感的でないので)
それをわざわざ会議で「ここは○○パターンで行きましょう!」ってのもないと信じたいが、これもどうなん?
というか俺はあの名前を真面目に覚える気にはならない。
あれって、継承/委譲/インタフェース等の組み合わせを全部展開して命名しただけであって、
それより継承/委譲/インタフェースをそれぞれどういう時に使うかをしっかり抑えたほうがいい気がしている。
例えるなら、物理でma=Fとsin/cosで終わるところを、
角度30度の斜面のときは…とか展開して覚えている感があるので気に入らない。
それ以前にクロージャ/関数ポインタ等、もっと使える部品も入ってないし。
というわけで、俺はデザパタはいらない子、と思っている。(使っているが、デザパタとは意識してない)
まあそれ以前に、最近は継承はいらない子、委譲だけでよし、ってのも流行ってるみたいだが。Goとか。
709デフォルトの名無しさん
2017/09/19(火) 22:28:41.59ID:1X4lIwJc >>703
ストラテジーみたいに単純なものは
意識されなくても自然と使われてる
ビジターとか複雑なのはあまり使われてない
デザパタは意識して組まなくてもいいが
一通り学んだ方がいい
「これは○○パターンだな」って分かると
設計するときの土台になるから
ストラテジーみたいに単純なものは
意識されなくても自然と使われてる
ビジターとか複雑なのはあまり使われてない
デザパタは意識して組まなくてもいいが
一通り学んだ方がいい
「これは○○パターンだな」って分かると
設計するときの土台になるから
710デフォルトの名無しさん
2017/09/19(火) 22:29:43.79ID:GKe55KcR デザインパターンって打つのも億劫か
711デフォルトの名無しさん
2017/09/19(火) 22:56:50.66ID:xOoZ3PLO デザパタは神話
カタログ化こそに異議があるという意見もあるが
それこそ噴飯物
読者のレベルにもよるのはわかってるが
だいたいガバガバ理解ですれ違ってるのを見る
GoFのことかと思えば
GoFのことではなくて独自用語ぶっこんできたりもする
(>>704に見られる「Factoryパターン」であったり)
設計のための勉強に使うと言い切ったほうがまだマシに思える現状
カタログ化こそに異議があるという意見もあるが
それこそ噴飯物
読者のレベルにもよるのはわかってるが
だいたいガバガバ理解ですれ違ってるのを見る
GoFのことかと思えば
GoFのことではなくて独自用語ぶっこんできたりもする
(>>704に見られる「Factoryパターン」であったり)
設計のための勉強に使うと言い切ったほうがまだマシに思える現状
712デフォルトの名無しさん
2017/09/19(火) 22:57:09.49ID:xOoZ3PLO ×異議
○意義
○意義
713デフォルトの名無しさん
2017/09/19(火) 23:07:22.41ID:1X4lIwJc714デフォルトの名無しさん
2017/09/19(火) 23:15:17.03ID:xOoZ3PLO 断言していいと思うけど
・(いわゆる)ファクトリメソッド
・Factory Methodパターン
・Abstract Factoryパターン
この区別は>>704には無いし
後者二つについての理解は不十分だと思うw
デザパタデザパタ言ってみても
早速その辺で深い溝を感じる
・(いわゆる)ファクトリメソッド
・Factory Methodパターン
・Abstract Factoryパターン
この区別は>>704には無いし
後者二つについての理解は不十分だと思うw
デザパタデザパタ言ってみても
早速その辺で深い溝を感じる
715デフォルトの名無しさん
2017/09/19(火) 23:28:15.81ID:9ArzpmiB おい、デザパタ用語使わずに
デザパタの話しろよ
デザパタの話しろよ
716デフォルトの名無しさん
2017/09/19(火) 23:42:04.65ID:yzSynM5D つまり、方言が多くて意味無いって事か?
俺も、>>704で通じると思う派だが、しかし確かに>>714の3つって何よ?とも思い、確認してみたが、
正直、区別する必要なくね?理解は以下でいいか?
・(いわゆる)ファクトリメソッド=factory関数をどこかに用意して使う
・Factory Methodパターン=factory関数をメソッドとして提供する
・Abstract Factoryパターン==factory関数を別クラスに配置する
要するに直newせずにファクトリ呼べ、ってだけで全部同じだが。
俺はデザパタのこの手の無駄に組み合わせ数が爆発してる感が大嫌い。
OOPもそうだが、デザパタもここまできたらデザパタが目的になってる感がある。
俺も、>>704で通じると思う派だが、しかし確かに>>714の3つって何よ?とも思い、確認してみたが、
正直、区別する必要なくね?理解は以下でいいか?
・(いわゆる)ファクトリメソッド=factory関数をどこかに用意して使う
・Factory Methodパターン=factory関数をメソッドとして提供する
・Abstract Factoryパターン==factory関数を別クラスに配置する
要するに直newせずにファクトリ呼べ、ってだけで全部同じだが。
俺はデザパタのこの手の無駄に組み合わせ数が爆発してる感が大嫌い。
OOPもそうだが、デザパタもここまできたらデザパタが目的になってる感がある。
717デフォルトの名無しさん
2017/09/19(火) 23:51:52.40ID:9ArzpmiB デザパタはパターンに名前を付けたことに
意義があるというが眉唾
だからデザパタ用語を使わずに
デザパタの会話しろ
できるだろ!
意義があるというが眉唾
だからデザパタ用語を使わずに
デザパタの会話しろ
できるだろ!
718デフォルトの名無しさん
2017/09/19(火) 23:53:38.39ID:xOoZ3PLO >>716
一部にのみレス返す
・(いわゆる)ファクトリメソッド
インスタンスを返すメソッド
単にメソッドのこと
・Factory Methodパターン
インスタンス化をサブクラスに任せる
サブクラス化時にオーバーライドすることによって
親クラス内部で使ってるインスタンスの一部を置き換える
メソッド、親クラス、派生クラス、という関係性の中にあるパターン
・Abstract Factoryパターン
インスタンス群を作成するファクトリを抽象化する
ファクトリごと置き換えて、インスタンス群を丸ごと置き換えたい時使う
インスタンス群、ファクトリごと、が特徴
こーいうのはクラスライブラリを作って他人に提供しようとしたとき欲しくなるパターン
一部にのみレス返す
・(いわゆる)ファクトリメソッド
インスタンスを返すメソッド
単にメソッドのこと
・Factory Methodパターン
インスタンス化をサブクラスに任せる
サブクラス化時にオーバーライドすることによって
親クラス内部で使ってるインスタンスの一部を置き換える
メソッド、親クラス、派生クラス、という関係性の中にあるパターン
・Abstract Factoryパターン
インスタンス群を作成するファクトリを抽象化する
ファクトリごと置き換えて、インスタンス群を丸ごと置き換えたい時使う
インスタンス群、ファクトリごと、が特徴
こーいうのはクラスライブラリを作って他人に提供しようとしたとき欲しくなるパターン
719デフォルトの名無しさん
2017/09/19(火) 23:54:32.93ID:xOoZ3PLO インスタンスを返すメソッド
↓
インスタンスをnewして返すメソッド
のほうがいいかな
↓
インスタンスをnewして返すメソッド
のほうがいいかな
720デフォルトの名無しさん
2017/09/20(水) 00:07:15.23ID:fL5PgjM3 >>718
了解した。jこれでいいか?
・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる
・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化
上2つは区別の必要なし、
下1つはメタ気味だからこれが適切な場合に「ファクトリ」と言えば上2つと混同することはなさそう。
って感じだなあ、俺は。
了解した。jこれでいいか?
・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる
・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化
上2つは区別の必要なし、
下1つはメタ気味だからこれが適切な場合に「ファクトリ」と言えば上2つと混同することはなさそう。
って感じだなあ、俺は。
721デフォルトの名無しさん
2017/09/20(水) 00:17:42.90ID:BVH1qyCN >>707
地獄のstaticおじさんやんけ!
地獄のstaticおじさんやんけ!
722デフォルトの名無しさん
2017/09/20(水) 00:24:55.54ID:fL5PgjM3 ちと補足すると、
・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる
この2つが普通に「ファクトリ」と呼ばれるもので、俺は区別する必要が無いと思っている。
これらを使ったクラスが複数合った場合、それらを束ねるために
・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化
が使われると思うので、下から組む場合には、文脈的に混同されることはないはず。
上から組む場合は若干齟齬があるかも。
・(いわゆる)ファクトリメソッド=factory関数は非仮想関数
・Factory Methodパターン=factory関数は仮想関数でオーバーライドされる
この2つが普通に「ファクトリ」と呼ばれるもので、俺は区別する必要が無いと思っている。
これらを使ったクラスが複数合った場合、それらを束ねるために
・Abstract Factoryパターン=数クラスのfactory関数を纏めて抽象化
が使われると思うので、下から組む場合には、文脈的に混同されることはないはず。
上から組む場合は若干齟齬があるかも。
723デフォルトの名無しさん
2017/09/20(水) 00:30:04.30ID:aRa9PEEA 電気回路でも有名なやつには名前がついているものだからなぁ
組み合わせたり改良して使うのだろうから
〜の亜種、ということが多いのかもしれないが
組み合わせたり改良して使うのだろうから
〜の亜種、ということが多いのかもしれないが
724デフォルトの名無しさん
2017/09/20(水) 00:31:45.57ID:LoYhuMpt 関数とメソッドの違いについて
725デフォルトの名無しさん
2017/09/20(水) 00:42:43.36ID:lixqcDrr お前らいつまでデザパタイコールGoFなのw
726デフォルトの名無しさん
2017/09/20(水) 01:08:02.93ID:DOSxYj0U >>699
どっちでやりやすいかは対象のドメインと
モデリングする人間のメンタルモデルによる
例えばDDD本に出てくる経路選択サービスなんかは
関数型の考えでモデリングするほうが自然に思える人が多いんでない?
実装言語としては型の表現力の高さや抽象化のしやすさは重要
F#のUnion TypeみたいのがあるとそれがないScalaでは面倒くささが全く違う
どっちでやりやすいかは対象のドメインと
モデリングする人間のメンタルモデルによる
例えばDDD本に出てくる経路選択サービスなんかは
関数型の考えでモデリングするほうが自然に思える人が多いんでない?
実装言語としては型の表現力の高さや抽象化のしやすさは重要
F#のUnion TypeみたいのがあるとそれがないScalaでは面倒くささが全く違う
727デフォルトの名無しさん
2017/09/20(水) 01:43:57.85ID:NjwKaGnN ScalaがOOP寄りでF#がFP寄りだから
関数型ならF#の方が組みやすいが
Scalaが選ばれるときは
Javaとの親和性で選ばれる
Java(Web、Android)かWindowsか
関数型ならF#の方が組みやすいが
Scalaが選ばれるときは
Javaとの親和性で選ばれる
Java(Web、Android)かWindowsか
728デフォルトの名無しさん
2017/09/20(水) 01:47:25.09ID:NjwKaGnN DDDがOOPの方がやりやすいのは
ビジネスソフトには
状態を持ったモデルが多いから
状態を持たない経路探索なんかは
関数型(論理型)の方が得意だが
全体のサービスの一部なら
マイクロサービスでそこだけ関数型にしてもいい
ビジネスソフトには
状態を持ったモデルが多いから
状態を持たない経路探索なんかは
関数型(論理型)の方が得意だが
全体のサービスの一部なら
マイクロサービスでそこだけ関数型にしてもいい
729デフォルトの名無しさん
2017/09/20(水) 09:02:53.40ID:jNWRVYAN デザインパターンすら書くのも面倒なのか
730デフォルトの名無しさん
2017/09/20(水) 09:18:34.29ID:Ga15J+U7 まっ、デザパタは現場では死言ということがわかった。
簡単なごく当然な(デザパタと言うほどのことはないイテレーターとかコマンドとかファクトリメソッドとか・・・)
パターンは自然と使われているということね。
みなさん、サンクス。
簡単なごく当然な(デザパタと言うほどのことはないイテレーターとかコマンドとかファクトリメソッドとか・・・)
パターンは自然と使われているということね。
みなさん、サンクス。
731デフォルトの名無しさん
2017/09/20(水) 09:19:40.96ID:Ga15J+U7 × 死言
〇 死語
〇 死語
732デフォルトの名無しさん
2017/09/20(水) 09:21:37.84ID:qH6V6v7k × \r\r
〇 \r
〇 \r
733デフォルトの名無しさん
2017/09/20(水) 10:43:59.15ID:yYGRyM8i Iterator パターンは、イテレータを提供するパターンだぞ
独自のデータ構造なんかを作った際に、それを辿れるようなイテレータを提供すること
既にあるイテレータを使ってるからといって
Iterator パターンを使ってるのとは違う
設計することと、設計されたものを使うことは違う
Iterator パターンを使って設計するのと、そのイテレータを使うことは違う
デザパタへの誤解は仕方ない
必要になるまでは分からないだろうから
設計の立場に立つまでは分からないだろう
ならばせめて
必要になるまではせめて語らないでほしい
独自のデータ構造なんかを作った際に、それを辿れるようなイテレータを提供すること
既にあるイテレータを使ってるからといって
Iterator パターンを使ってるのとは違う
設計することと、設計されたものを使うことは違う
Iterator パターンを使って設計するのと、そのイテレータを使うことは違う
デザパタへの誤解は仕方ない
必要になるまでは分からないだろうから
設計の立場に立つまでは分からないだろう
ならばせめて
必要になるまではせめて語らないでほしい
734デフォルトの名無しさん
2017/09/20(水) 11:18:37.43ID:qH6V6v7k イテレーターがプログラム機能として初めから無い言語が無くなってきたから
パターンを意識しなくてよくなったんだよな。
パターンを意識しなくてよくなったんだよな。
735デフォルトの名無しさん
2017/09/20(水) 11:40:51.15ID:yYGRyM8i そう、その言い方が正しい
736デフォルトの名無しさん
2017/09/20(水) 12:46:50.80ID:DYqQfVY4 使う側も含めてのパトゥーンだろ
737デフォルトの名無しさん
2017/09/20(水) 19:13:16.31ID:NjwKaGnN イテレータが言語にあるから
もうデザパタいらない
って考えは非常に短絡的だと思う
それだと言語に標準である
配列のイテレータとか以外で
独自のデータ構造を走査するとき
とたんにゴチャゴチャになる
もうデザパタいらない
って考えは非常に短絡的だと思う
それだと言語に標準である
配列のイテレータとか以外で
独自のデータ構造を走査するとき
とたんにゴチャゴチャになる
738デフォルトの名無しさん
2017/09/20(水) 20:04:03.57ID:fL5PgjM3 >>733
> 設計の立場に立つまでは分からないだろう
> ならばせめて
> 必要になるまではせめて語らないでほしい
多分ここが間違っていて、というよりはポリシーの違いだが、
君の職場は「設計」と「コーダー」が完全に分離していて、「コーダー」にはデザパタの知識は必要ないのか?
俺が知っている限り、設計とコーダーの分離は失敗だったと聞いているが。
そもそも設計において必要なのは「外部インタフェースの固定」だ。これは
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
として、(A)→(B)の場合には外部(使う側)のソースコードの改変は全く必要ないし、
(B)→(C)にアップグレードする場合も正しく隠蔽されていれば同様だ。
中身を見せていれば(B)→(C)時にダウンキャストが必要になるが、これはそもそも設計が悪いし、
それでもラップすれば、外部ソースは改変無しで保てる。
だから使う側からすると「ファクトリを必ず呼ぶ」ことを徹底すればそれでよく、
中身が(A)(B)(C)のどれでも関係なく、クラス担当者が最適なものを選べ、でしか無いと思うが。
最悪駄目駄目なら差し替えればいいだけだし。本来これが隠蔽のメリットだろうに。
>>737
いらんだろ。イテレータ自体、
・走査を begin(), next(), end() と抽象化すれば実装によって異なる走査が必要でも隠蔽できます
なんだし、言語側のイテレータもこれとインタフェース合わせてあるし。
同じ思想を2度学んでも意味が無い。
仮にデザパタがGoF以外の100人から提唱されているとして、それぞれ微妙に方言があり、
「○○のデザパタでは△△のことをこう呼びます」ってのを色々覚えても意味無いだろ。
デザパタのイテレータパターンと言語のイテレータ」は違います!ってのは俺にはこう見える。
どうでもいいことにこだわりすぎだ。
> 設計の立場に立つまでは分からないだろう
> ならばせめて
> 必要になるまではせめて語らないでほしい
多分ここが間違っていて、というよりはポリシーの違いだが、
君の職場は「設計」と「コーダー」が完全に分離していて、「コーダー」にはデザパタの知識は必要ないのか?
俺が知っている限り、設計とコーダーの分離は失敗だったと聞いているが。
そもそも設計において必要なのは「外部インタフェースの固定」だ。これは
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
として、(A)→(B)の場合には外部(使う側)のソースコードの改変は全く必要ないし、
(B)→(C)にアップグレードする場合も正しく隠蔽されていれば同様だ。
中身を見せていれば(B)→(C)時にダウンキャストが必要になるが、これはそもそも設計が悪いし、
それでもラップすれば、外部ソースは改変無しで保てる。
だから使う側からすると「ファクトリを必ず呼ぶ」ことを徹底すればそれでよく、
中身が(A)(B)(C)のどれでも関係なく、クラス担当者が最適なものを選べ、でしか無いと思うが。
最悪駄目駄目なら差し替えればいいだけだし。本来これが隠蔽のメリットだろうに。
>>737
いらんだろ。イテレータ自体、
・走査を begin(), next(), end() と抽象化すれば実装によって異なる走査が必要でも隠蔽できます
なんだし、言語側のイテレータもこれとインタフェース合わせてあるし。
同じ思想を2度学んでも意味が無い。
仮にデザパタがGoF以外の100人から提唱されているとして、それぞれ微妙に方言があり、
「○○のデザパタでは△△のことをこう呼びます」ってのを色々覚えても意味無いだろ。
デザパタのイテレータパターンと言語のイテレータ」は違います!ってのは俺にはこう見える。
どうでもいいことにこだわりすぎだ。
739デフォルトの名無しさん
2017/09/20(水) 21:01:08.70ID:NjwKaGnN740デフォルトの名無しさん
2017/09/20(水) 21:12:23.35ID:8N1Ug+q3 お?アランケイは終わったのか?
どの辺りのレス番から再開すればいんだ
どの辺りのレス番から再開すればいんだ
741デフォルトの名無しさん
2017/09/20(水) 21:21:18.96ID:V1jqjPnq 便所の落書きに永続性を求めてはいかんw
742デフォルトの名無しさん
2017/09/20(水) 21:28:11.72ID:fL5PgjM3 >>739
いる/いらないの言い合いは意味無いが、やっぱり俺は区別の必要は無いと思うぞ。
「言語のイテレータ」は「デザパタのイテレーターパターン」を言語側に取り入れた機能であり、
「言語のイテレータ」を正しく使える=「デザパタのイテレーターパターン」を正しく使える、となるから、
別に学ぶ必要はない。
言語と設計(思想)の分離と言うのは、例えば依存性逆転の法則(DI)等であって、
これは言語とはまったく無関係だから、どの言語でも使えるし、また、使わなくとも実装可能だ。
とはいえこれも、例えばフレームワークは基本的にDI的であるので、
フレームワークを正しく使うようにすれば自然と身に付く。
(フレームワークに沿って記述することが必要であり、これはプチDI)
上達を登山に例えれば、デザパタは一つの登山道であるが、それ以外のルートもあるということ。
どれが効率がいいのかは知らんが、
少なくともデザパタを通らないと頂上にたどり着けない、って事はない。
本来デザパタの目的はこの「上達への最短ルートの開発」だったはずだが、
GoFからして冗長で暴走気味だと思うよ。
いる/いらないの言い合いは意味無いが、やっぱり俺は区別の必要は無いと思うぞ。
「言語のイテレータ」は「デザパタのイテレーターパターン」を言語側に取り入れた機能であり、
「言語のイテレータ」を正しく使える=「デザパタのイテレーターパターン」を正しく使える、となるから、
別に学ぶ必要はない。
言語と設計(思想)の分離と言うのは、例えば依存性逆転の法則(DI)等であって、
これは言語とはまったく無関係だから、どの言語でも使えるし、また、使わなくとも実装可能だ。
とはいえこれも、例えばフレームワークは基本的にDI的であるので、
フレームワークを正しく使うようにすれば自然と身に付く。
(フレームワークに沿って記述することが必要であり、これはプチDI)
上達を登山に例えれば、デザパタは一つの登山道であるが、それ以外のルートもあるということ。
どれが効率がいいのかは知らんが、
少なくともデザパタを通らないと頂上にたどり着けない、って事はない。
本来デザパタの目的はこの「上達への最短ルートの開発」だったはずだが、
GoFからして冗長で暴走気味だと思うよ。
743デフォルトの名無しさん
2017/09/20(水) 21:42:10.80ID:IJ0bOnfP DIP=Dependency Inversion Principle
DI=Dependency Injection
DI=Dependency Injection
744デフォルトの名無しさん
2017/09/20(水) 21:48:59.10ID:lixqcDrr >>742
イテレータの本質はコレクションとアルゴリズムの分離だから学ぶ意味はあるよ
イテレータのことをコレクションを走査するインタフェースとしか捉えないなら、いまや大抵の言語でサポートされてるから使い方だけ知ってればいいけど
イテレータの本質はコレクションとアルゴリズムの分離だから学ぶ意味はあるよ
イテレータのことをコレクションを走査するインタフェースとしか捉えないなら、いまや大抵の言語でサポートされてるから使い方だけ知ってればいいけど
745デフォルトの名無しさん
2017/09/20(水) 21:58:17.38ID:NjwKaGnN >>742
>「言語のイテレータ」を正しく使える=
>「デザパタのイテレーターパターン」を正しく使える
ならないって
たんにループ文の代わりに使ってるだけだと
言語でサポートしてない部分になった途端に
分からない、出来ないゆとりになる
ただ使うだけでなく仕組みを知る必要があるが
仕組みを学ぶにはデザインパターンが有効
>「言語のイテレータ」を正しく使える=
>「デザパタのイテレーターパターン」を正しく使える
ならないって
たんにループ文の代わりに使ってるだけだと
言語でサポートしてない部分になった途端に
分からない、出来ないゆとりになる
ただ使うだけでなく仕組みを知る必要があるが
仕組みを学ぶにはデザインパターンが有効
746デフォルトの名無しさん
2017/09/20(水) 22:01:51.52ID:NjwKaGnN 言語やフレームワークを使ってれば
パターンが自然と身につくってのは大いに疑問
OOP言語のJava使ってても
中身は手続き型で書いてるケースがよくある
自然と身につくのは道具の使い方だけで
パラダイムは意識的に学習しないと分からない
パターンが自然と身につくってのは大いに疑問
OOP言語のJava使ってても
中身は手続き型で書いてるケースがよくある
自然と身につくのは道具の使い方だけで
パラダイムは意識的に学習しないと分からない
747デフォルトの名無しさん
2017/09/20(水) 22:04:20.27ID:FueCi3Km いいんだよ
そんなのどうせ金にならねぇから
工数が決まっちまった後の話に力を入れるな
そんなのどうせ金にならねぇから
工数が決まっちまった後の話に力を入れるな
748デフォルトの名無しさん
2017/09/20(水) 22:21:45.45ID:fL5PgjM3 >>746
本人に学ぶ気があれば、使っていれば身につくんだよ。
お前は日本語を学んで上達したのか?違うだろ。使って上達したんだよ。
もっと分かりやすい例で言うと、ギャグだな。
「鉄板」「お約束」「乗り突っ込み」等のデザパタはあるが、
これらをデザパタとして学ばないと「乗り突っ込み」出来ないのか?
違うだろ。使ってるのを見て学んだんだよ。
(トンキンでは学ぶのかもしれないが、関西人のは地だぞあれは。
「ふーん、で、オチは?」という環境にいるから自然と身につくんだよ)
本人に学ぶ気があれば、使っていれば身につくんだよ。
お前は日本語を学んで上達したのか?違うだろ。使って上達したんだよ。
もっと分かりやすい例で言うと、ギャグだな。
「鉄板」「お約束」「乗り突っ込み」等のデザパタはあるが、
これらをデザパタとして学ばないと「乗り突っ込み」出来ないのか?
違うだろ。使ってるのを見て学んだんだよ。
(トンキンでは学ぶのかもしれないが、関西人のは地だぞあれは。
「ふーん、で、オチは?」という環境にいるから自然と身につくんだよ)
749デフォルトの名無しさん
2017/09/20(水) 22:24:58.78ID:DOSxYj0U 用意されたイテレータを使うだけの人と
イテレータやジェネレータを自分で作って使える人とでは
力にかなりの差があるのでパターンとして学ぶことの意義はあると思うけどな
イテレータやジェネレータを自分で作って使える人とでは
力にかなりの差があるのでパターンとして学ぶことの意義はあると思うけどな
750デフォルトの名無しさん
2017/09/20(水) 22:51:24.28ID:lixqcDrr >>748
オブジェクト指向設計は学ばなくても使ってれば身に付くという思想なら、そもそもこのスレに何しに来てんの?お喋り?自分の考えを聞いてほしくて?
オブジェクト指向設計は学ばなくても使ってれば身に付くという思想なら、そもそもこのスレに何しに来てんの?お喋り?自分の考えを聞いてほしくて?
751デフォルトの名無しさん
2017/09/20(水) 22:59:41.30ID:NjwKaGnN >>748
>日本語を学んで上達
日本語は母語だから自然と上達するが
英語だと学ばないとカタコトのまま
数学だとさらに意識的な学習が必要
プログラミング言語は英語や数学に近い
意識的に学習しないと上達しない
>日本語を学んで上達
日本語は母語だから自然と上達するが
英語だと学ばないとカタコトのまま
数学だとさらに意識的な学習が必要
プログラミング言語は英語や数学に近い
意識的に学習しないと上達しない
752デフォルトの名無しさん
2017/09/20(水) 23:01:29.19ID:NjwKaGnN753デフォルトの名無しさん
2017/09/20(水) 23:06:42.94ID:fL5PgjM3754デフォルトの名無しさん
2017/09/20(水) 23:14:19.88ID:fL5PgjM3 >>751
× > 英語だと学ばないとカタコトのまま
○ 英語は使わないとカタコトのまま
これはほぼ通説だぞ。むしろ俺の説を補強してどうする?
学ぶ=イメトレであって、それは上達を早める方法ではあるが、
学ぶだけでは上達しないんだよ。使わないといけない。
もちろん使ってさえいれば上達するか?と言えばそうじゃない。
日本人内でも文章の上手下手があるように、いろいろ意識して使って無いと駄目だ。
いわゆる職人気質だよ。今よりも上を常に求めているか?ということ。
× > 英語だと学ばないとカタコトのまま
○ 英語は使わないとカタコトのまま
これはほぼ通説だぞ。むしろ俺の説を補強してどうする?
学ぶ=イメトレであって、それは上達を早める方法ではあるが、
学ぶだけでは上達しないんだよ。使わないといけない。
もちろん使ってさえいれば上達するか?と言えばそうじゃない。
日本人内でも文章の上手下手があるように、いろいろ意識して使って無いと駄目だ。
いわゆる職人気質だよ。今よりも上を常に求めているか?ということ。
755デフォルトの名無しさん
2017/09/20(水) 23:16:09.78ID:VBPZEd03 デザパタは名前が付いてることが大事なんだよ
その一言で共通認識ができる
こんな基礎もわからん馬鹿がデザパタはいらないキリッ
とかいいながらペチプァ〜でウンコードモリモリ大将軍してるんだろ?
PHPと共に死んで欲しいね
その一言で共通認識ができる
こんな基礎もわからん馬鹿がデザパタはいらないキリッ
とかいいながらペチプァ〜でウンコードモリモリ大将軍してるんだろ?
PHPと共に死んで欲しいね
756デフォルトの名無しさん
2017/09/20(水) 23:19:26.12ID:NjwKaGnN757デフォルトの名無しさん
2017/09/20(水) 23:30:17.48ID:VBPZEd03 おい聞いてるのかペチプァ
単価最底辺の土方ども
生きてるだけ無駄なんだよ屑が
今すぐ死ねよ!
単価最底辺の土方ども
生きてるだけ無駄なんだよ屑が
今すぐ死ねよ!
758デフォルトの名無しさん
2017/09/20(水) 23:45:01.20ID:VZIyuCp2759デフォルトの名無しさん
2017/09/20(水) 23:50:15.80ID:fL5PgjM3 >>756
もう完全に脱線しているが、さらに続けると、
> 発音は意識して学ばないと
> いくら使っててもカタコトのままというのが定説
これは正確ではない。
一般日本人について、確かに君の上記意見は当てはまる。
しかしこれはエラーをフィードバックする「耳が無い」からであって、
逆に言えば「耳がある」人は意識して学ぶ必要はない。例えばネイティブの幼児とかがそうだ。
脳科学的に、確か聴覚は幼児期に発達して、そのまま終わりだったはず。
それで俺たちはLとRが聞き分けられない耳になってしまって、結果、LとRの発音が出来なくなる。
これは、先天的聴覚障害者がアーウーとしか言えず、正しく発音ができない(滑舌が著しく悪い)ことからもわかる。
聴覚障害は口蓋の障害ではないのに正しく発音できないのは、
自分の発音が聞こえず、正しく発音できていないことを認識して修正できないから。
(分かりやすく言えば、噛んだことが分からないから)
英語についていえば、LとRの違いがわかる耳があれば、明らかに違う(らしい)のであっさり上達する。
(むしろ、何でこれが聞き分けられないの?と不思議らしい)
俺らみたいに、「耳がない」人が「正しい発音」をする為には、
俺らも聴覚障害者と同様に、正しい発音をする為の口や舌の動きを意識しないと上達しない、というだけ。
だからまあ、エラーをフィードバックできれば自己学習で上達はする、ということにはなる。
つまり自分で書いた糞コードが糞だと認識できれば、上達する、とも言える。
もう完全に脱線しているが、さらに続けると、
> 発音は意識して学ばないと
> いくら使っててもカタコトのままというのが定説
これは正確ではない。
一般日本人について、確かに君の上記意見は当てはまる。
しかしこれはエラーをフィードバックする「耳が無い」からであって、
逆に言えば「耳がある」人は意識して学ぶ必要はない。例えばネイティブの幼児とかがそうだ。
脳科学的に、確か聴覚は幼児期に発達して、そのまま終わりだったはず。
それで俺たちはLとRが聞き分けられない耳になってしまって、結果、LとRの発音が出来なくなる。
これは、先天的聴覚障害者がアーウーとしか言えず、正しく発音ができない(滑舌が著しく悪い)ことからもわかる。
聴覚障害は口蓋の障害ではないのに正しく発音できないのは、
自分の発音が聞こえず、正しく発音できていないことを認識して修正できないから。
(分かりやすく言えば、噛んだことが分からないから)
英語についていえば、LとRの違いがわかる耳があれば、明らかに違う(らしい)のであっさり上達する。
(むしろ、何でこれが聞き分けられないの?と不思議らしい)
俺らみたいに、「耳がない」人が「正しい発音」をする為には、
俺らも聴覚障害者と同様に、正しい発音をする為の口や舌の動きを意識しないと上達しない、というだけ。
だからまあ、エラーをフィードバックできれば自己学習で上達はする、ということにはなる。
つまり自分で書いた糞コードが糞だと認識できれば、上達する、とも言える。
760デフォルトの名無しさん
2017/09/20(水) 23:58:32.97ID:DOSxYj0U イテレータをパターンとして学ぶ価値があるかどうかから
パターンそのものの価値があるかどうかに話変わってるよね
んでもって、その英語の話はもうパターン関係なくなってる
パターンそのものの価値があるかどうかに話変わってるよね
んでもって、その英語の話はもうパターン関係なくなってる
761デフォルトの名無しさん
2017/09/20(水) 23:59:45.04ID:DOSxYj0U もしLとRを聞き分けられるようになる<LRパターン>があるとしたら
パターンを学んだやつのほうが学習効率が高く上達が早いわけだ
そのパターンを知らないやつ独学でいくら努力しても
いつまでたってもLとRが聞き分けられない可能性もある
無理やりパターンにつなげるとだけど。
パターンを学んだやつのほうが学習効率が高く上達が早いわけだ
そのパターンを知らないやつ独学でいくら努力しても
いつまでたってもLとRが聞き分けられない可能性もある
無理やりパターンにつなげるとだけど。
762デフォルトの名無しさん
2017/09/21(木) 00:11:32.59ID:F/cUryZs >>760
そうじゃない。
自分のコードが糞だと認識する為には、逆に、良いコードならこんな感じになるはず、と想像できる必要がある。
当然、あらかじめ「良いコード」を知っておく必要がある。
だからコードリーディングも同様に上達の手法ではある。これもよく言われてるだろ。
もちろんデザパタ学習も上達の方法だし、やればいい。
ただ、頻出パターンならコードリーディングでも当然遭遇するし、>>704はそういうことなんだよ。
だから>>704が理解出来ない=OSSを使ってない、コードリーディングしてない、ということ。
どっちが上達が早いのかは知らん。両方やるのがベストなのだろうが。
デザパタ学習が唯一の道ではない。
そうじゃない。
自分のコードが糞だと認識する為には、逆に、良いコードならこんな感じになるはず、と想像できる必要がある。
当然、あらかじめ「良いコード」を知っておく必要がある。
だからコードリーディングも同様に上達の手法ではある。これもよく言われてるだろ。
もちろんデザパタ学習も上達の方法だし、やればいい。
ただ、頻出パターンならコードリーディングでも当然遭遇するし、>>704はそういうことなんだよ。
だから>>704が理解出来ない=OSSを使ってない、コードリーディングしてない、ということ。
どっちが上達が早いのかは知らん。両方やるのがベストなのだろうが。
デザパタ学習が唯一の道ではない。
763デフォルトの名無しさん
2017/09/21(木) 00:14:31.04ID:ijaAIW4i764デフォルトの名無しさん
2017/09/21(木) 00:17:36.42ID:ijaAIW4i >>759
クリティカルエイジ以前の幼児が
英語を自然と身につけるのは知ってる
プログラムの話に戻ると
幼児の頃からプログラミングしていた
奴なら自然と身につくかもしれないが
一般人については意識して学ぶべき
クリティカルエイジ以前の幼児が
英語を自然と身につけるのは知ってる
プログラムの話に戻ると
幼児の頃からプログラミングしていた
奴なら自然と身につくかもしれないが
一般人については意識して学ぶべき
765デフォルトの名無しさん
2017/09/21(木) 00:18:52.78ID:EmOs9oCs 内部がどんな実装か知ってる必要ないね
使い捨ての土方なら
使い捨ての土方なら
766デフォルトの名無しさん
2017/09/21(木) 00:28:25.80ID:F/cUryZs767デフォルトの名無しさん
2017/09/21(木) 00:35:05.01ID:ijaAIW4i >>766
もちろん唯一の道じゃないけど
コードリーディングだけで
デザインパターンを身につけるのは効率が悪い
あらかじめパターンを知ってて
「これは○○パターンだな」っていう方が
圧倒的に上達が早い
もちろん唯一の道じゃないけど
コードリーディングだけで
デザインパターンを身につけるのは効率が悪い
あらかじめパターンを知ってて
「これは○○パターンだな」っていう方が
圧倒的に上達が早い
768デフォルトの名無しさん
2017/09/21(木) 00:50:20.24ID:n0XifzBg 時間の無駄になる相手に
レスを返しては行けない
分かる人だけ守って欲しい
自分の時間を守って欲しい
レスを返しては行けない
分かる人だけ守って欲しい
自分の時間を守って欲しい
769デフォルトの名無しさん
2017/09/21(木) 00:59:26.34ID:K0No9bcT >>762
何がそうじゃないのかわからんのだがww
今度は「デザパタ学習が唯一の道ではない」に主張を変えたのか
その主張なら誰も否定しないだろね
最初からデザパタ学習が唯一の道なんて言ってる人いないから
何がそうじゃないのかわからんのだがww
今度は「デザパタ学習が唯一の道ではない」に主張を変えたのか
その主張なら誰も否定しないだろね
最初からデザパタ学習が唯一の道なんて言ってる人いないから
770デフォルトの名無しさん
2017/09/21(木) 01:08:43.31ID:N1EOCCyb デザパタとリアルで言っても大丈夫でしょうか?
771デフォルトの名無しさん
2017/09/21(木) 01:40:52.00ID:QBtXCTqk >>770
いやー、やめとけ
いやー、やめとけ
772デフォルトの名無しさん
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はあまりにも淡々としすぎているが)
だから頻出パターンならいい教科書で各言語機能を学べば自然と目にしてる。
そして文法は学ぶ必要があるから、これらは読むしかない。
その後にデザパタを見ても、頻出パターンは確実に重複するんだよ。
そしてどうでもいいパターンを学ぶ意味はないし。
デザパタは結局頻出パターンだから、学ぶ気があればどの方法でも自然と身につく。
コードリーディングでも、教科書を読んでも。
「デザパタ自体を学習せねば!色々初めて見るし!」と思ったのなら、それは君らが普段からあれこれ見落としているだけ。
デザパタなんてそこかしこに転がっている。いちいち言及されてないけど。
だから本来はわざわざ別に学習しなければならない物でもないのさ。
君がそう思うのならそれでいい。
ただ事実として言えるのは、「デザパタ」は頻出パターンであり、当然他でも言及されてるんだよ。
例えばファクトリー、以下はJavaScriptの例だが、クロージャの部分でさらっと出てくる。
ただしJavaScriptの場合はクロージャを生成する為にファクトリーを積極的に使う理由があり、GoFの範囲を超えている。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures
もちろんイテレータはプログラミング言語C++の中でハゲが力説しているし、
ストラテジーについては継承まんまだろ。OOP言語なら確実に説明されてる。
各言語機能も、作った側は「こう使って欲しい」ってのがあるから、それぞれ力説されてる。
(K&Rはあまりにも淡々としすぎているが)
だから頻出パターンならいい教科書で各言語機能を学べば自然と目にしてる。
そして文法は学ぶ必要があるから、これらは読むしかない。
その後にデザパタを見ても、頻出パターンは確実に重複するんだよ。
そしてどうでもいいパターンを学ぶ意味はないし。
デザパタは結局頻出パターンだから、学ぶ気があればどの方法でも自然と身につく。
コードリーディングでも、教科書を読んでも。
「デザパタ自体を学習せねば!色々初めて見るし!」と思ったのなら、それは君らが普段からあれこれ見落としているだけ。
デザパタなんてそこかしこに転がっている。いちいち言及されてないけど。
だから本来はわざわざ別に学習しなければならない物でもないのさ。
773デフォルトの名無しさん
2017/09/21(木) 02:03:32.34ID:2yneGSNP >>772
> 文法は学ぶ必要があるから、これらは読むしかない。
文法はコード書いたり読んだりしてれば自然と身につくよ
日本語の文法を学ばない人に日本語は使えないかというとそうじゃないだろ?
教科書を読むのが文法を学ぶ唯一の方法だと思ったら大間違いだよ
はい、これがお前的反論パターンw
> 文法は学ぶ必要があるから、これらは読むしかない。
文法はコード書いたり読んだりしてれば自然と身につくよ
日本語の文法を学ばない人に日本語は使えないかというとそうじゃないだろ?
教科書を読むのが文法を学ぶ唯一の方法だと思ったら大間違いだよ
はい、これがお前的反論パターンw
774デフォルトの名無しさん
2017/09/21(木) 02:29:40.61ID:q11aClZE ハロパタ
775デフォルトの名無しさん
2017/09/21(木) 02:35:36.57ID:ijaAIW4i >>772
上から目線で捉えていることは
無条件で正しいとでも思ってるのかな
「君がそう思うのならそれでいい」が
GOFの23パタをすべて習得してるのは当然の前提として
GOF以外のデザパタもあるし
GOFの23パタからアレンジしたものもある
日本ではマイナーなものもある
Null Objectなんかは最近浸透してきたが
Type ObjectとかExtension Objectとか他にも色々ある
またイテレータと同様に
ビジターにも内部/外部があるとか
関数型やジェネリックの書き方があるとか
発展的なトピックもある
だからデザパタ単体で学習した方が整理される
言語を学んでいるときはパターンより文法に
コードリーディングしてるときは
実装のテクニックに目が行きがちだしね
上から目線で捉えていることは
無条件で正しいとでも思ってるのかな
「君がそう思うのならそれでいい」が
GOFの23パタをすべて習得してるのは当然の前提として
GOF以外のデザパタもあるし
GOFの23パタからアレンジしたものもある
日本ではマイナーなものもある
Null Objectなんかは最近浸透してきたが
Type ObjectとかExtension Objectとか他にも色々ある
またイテレータと同様に
ビジターにも内部/外部があるとか
関数型やジェネリックの書き方があるとか
発展的なトピックもある
だからデザパタ単体で学習した方が整理される
言語を学んでいるときはパターンより文法に
コードリーディングしてるときは
実装のテクニックに目が行きがちだしね
776デフォルトの名無しさん
2017/09/21(木) 05:42:15.46ID:eSaSp7RC みなさん、ほんとうにデザパタを使っているんですか?
簡単な分かり易いものは使っているんでしょうが、これぞっていうパターンを
使っている人このスレに居ますか?
大手企業のパッケージ開発やフレームワーク開発に従事している秀才プログラマー
が使っているのは度々見ましたが、中階層、低階層の現場では見たことありません。
ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
簡単な分かり易いものは使っているんでしょうが、これぞっていうパターンを
使っている人このスレに居ますか?
大手企業のパッケージ開発やフレームワーク開発に従事している秀才プログラマー
が使っているのは度々見ましたが、中階層、低階層の現場では見たことありません。
ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
777デフォルトの名無しさん
2017/09/21(木) 06:50:22.15ID:aDCr5zcn アルカンシェルパターンはよく使ってるね
最強のパフォーマンスを目指す選ばれた者だけが行使することを許された神ーGODーの力
最強のパフォーマンスを目指す選ばれた者だけが行使することを許された神ーGODーの力
778デフォルトの名無しさん
2017/09/21(木) 07:20:26.51ID:QBtXCTqk >>776
使ってねぇって言ってるだろハゲ
使ってねぇって言ってるだろハゲ
779デフォルトの名無しさん
2017/09/21(木) 07:51:05.32ID:xOLq2+H5 >>776
http://www.techscore.com/tech/DesignPattern/index.html/
適当にググって出て来たここに紹介されてる奴を眺めて思い返してみたけど、ほぼ全部使ってるわ
もちろん、これはナントカパターンだ赤ペン先生でやったぞ!ってモロに意識しながら使うと言うよりか、いつも書いてるあのコードってカタログから選ぶとこのパターンだなって感じ
http://www.techscore.com/tech/DesignPattern/index.html/
適当にググって出て来たここに紹介されてる奴を眺めて思い返してみたけど、ほぼ全部使ってるわ
もちろん、これはナントカパターンだ赤ペン先生でやったぞ!ってモロに意識しながら使うと言うよりか、いつも書いてるあのコードってカタログから選ぶとこのパターンだなって感じ
780デフォルトの名無しさん
2017/09/21(木) 09:12:15.36ID:Xs4LibNR781デフォルトの名無しさん
2017/09/21(木) 15:56:35.21ID:EmOs9oCs782デフォルトの名無しさん
2017/09/21(木) 16:00:36.62ID:QBtXCTqk783デフォルトの名無しさん
2017/09/21(木) 18:57:33.91ID:jvulp0iD パターンハラスメント
784デフォルトの名無しさん
2017/09/21(木) 19:07:59.73ID:EmOs9oCs785デフォルトの名無しさん
2017/09/21(木) 19:29:18.74ID:ffbJfIAO デザインパターンなんてゆとりには通じないよ
ゆとりはif文とforループしか理解できない
彼らとのコミュニケーションは全て懇切丁寧に一から説明しないといけない
そして彼らはそれが当たり前だと思っている
甘やかされて育った人間があれほど厄介な生き物になるとは思わなかった
違う生き物と話しているようで辛い
ゆとりはif文とforループしか理解できない
彼らとのコミュニケーションは全て懇切丁寧に一から説明しないといけない
そして彼らはそれが当たり前だと思っている
甘やかされて育った人間があれほど厄介な生き物になるとは思わなかった
違う生き物と話しているようで辛い
786デフォルトの名無しさん
2017/09/21(木) 20:01:30.88ID:0x00hAVC デザパタの分かる年寄りより
分からない若いのを雇うのがIT土建屋
分からない若いのを雇うのがIT土建屋
787デフォルトの名無しさん
2017/09/21(木) 20:13:18.07ID:EmOs9oCs788デフォルトの名無しさん
2017/09/21(木) 20:18:00.45ID:ffbJfIAO 使い潰してもいくらでも捕獲できるし便利っちゃ便利だわな
789デフォルトの名無しさん
2017/09/21(木) 20:18:42.03ID:N1EOCCyb デザインパターン
790デフォルトの名無しさん
2017/09/21(木) 21:59:15.38ID:F/cUryZs >>775
なんだゆとりか。
つか、君は結局何が言いたいんだ?
> 圧倒的に上達が早い (>>767)
については、俺は既に
> どっちが上達が早いのかは知らん。 (>>762)
と言っているんだから、平行線だし、ここの議論では結論は出ない。
各自が各々の考えを主張できるだけだ。
君がそう思うのなら、君はそうすればいいだけ。俺はそうは思わないから、俺はそうしない。
それ以上でも以下でもないだろ。勝手に切れるゆとりは多いが。
> コードリーディングしてるときは
> 実装のテクニックに目が行きがちだしね
それは君がそうだってだけ。自覚できているのなら、そうならないように気をつけながら読めばいいだけ。
>>785
ゆとりが糞なことについては同意。
てかまじで、>>775とか何が言いたいのか分からん。
同意してくれなきゃヤダってゴネてるのか?としか。
よく見かけるけどね、このパターン。
なんだゆとりか。
つか、君は結局何が言いたいんだ?
> 圧倒的に上達が早い (>>767)
については、俺は既に
> どっちが上達が早いのかは知らん。 (>>762)
と言っているんだから、平行線だし、ここの議論では結論は出ない。
各自が各々の考えを主張できるだけだ。
君がそう思うのなら、君はそうすればいいだけ。俺はそうは思わないから、俺はそうしない。
それ以上でも以下でもないだろ。勝手に切れるゆとりは多いが。
> コードリーディングしてるときは
> 実装のテクニックに目が行きがちだしね
それは君がそうだってだけ。自覚できているのなら、そうならないように気をつけながら読めばいいだけ。
>>785
ゆとりが糞なことについては同意。
てかまじで、>>775とか何が言いたいのか分からん。
同意してくれなきゃヤダってゴネてるのか?としか。
よく見かけるけどね、このパターン。
791デフォルトの名無しさん
2017/09/21(木) 22:05:21.29ID:QBtXCTqk デザパタなんて使わねーよ
792デフォルトの名無しさん
2017/09/21(木) 22:53:56.69ID:1e+K8/4+ >>791
使ってることに気づいていないクズ
使ってることに気づいていないクズ
793デフォルトの名無しさん
2017/09/21(木) 23:13:46.19ID:F/cUryZs >>776
何でもそうだが、デザパタもやりすぎたら手段が目的化するんだよ。>>775とか。
言われてみれば使ってるっていう、>>779位がちょうどいい頃合だと思うよ。
何が問題って、GoF自体が古いからではあるが、今ならもっと単純にできるものが大量に有って、
というかGoFの時点で既にアクロバティック気味で、何がやりたいんだこいつらは?って感じなんだよ。
名前も厨二過ぎてイミフだし。
結局はOOPの文法の全ての組み合わせから、あるあるに厨二な名前をつけただけ、っていう。
例えばコンテナ等でお約束的に使われる「型消去」だが、GoFにはないだろ。
(見落としかもしれんが、それなら「型消去」と直感的な名称の方が断然良いからGoFが使われないだけ)
だからWikiにも書いてある通り、俺は
> デザインパターンをむやみに適用するのは不適切であり、不適切な使用はコードの複雑さを無意味に高めてしまうと注意している。
> 一部のデザインパターンは、プログラミング言語(例: Java, C++)の機能の欠損の印であると主張されることがある。
の側面もかなりあると思うよ。
何でもそうだが、デザパタもやりすぎたら手段が目的化するんだよ。>>775とか。
言われてみれば使ってるっていう、>>779位がちょうどいい頃合だと思うよ。
何が問題って、GoF自体が古いからではあるが、今ならもっと単純にできるものが大量に有って、
というかGoFの時点で既にアクロバティック気味で、何がやりたいんだこいつらは?って感じなんだよ。
名前も厨二過ぎてイミフだし。
結局はOOPの文法の全ての組み合わせから、あるあるに厨二な名前をつけただけ、っていう。
例えばコンテナ等でお約束的に使われる「型消去」だが、GoFにはないだろ。
(見落としかもしれんが、それなら「型消去」と直感的な名称の方が断然良いからGoFが使われないだけ)
だからWikiにも書いてある通り、俺は
> デザインパターンをむやみに適用するのは不適切であり、不適切な使用はコードの複雑さを無意味に高めてしまうと注意している。
> 一部のデザインパターンは、プログラミング言語(例: Java, C++)の機能の欠損の印であると主張されることがある。
の側面もかなりあると思うよ。
794デフォルトの名無しさん
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が何故こういう結論を出したのか考えるほうがいいと思うぞ。
> ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
君がここら辺の話について来れないのなら、とりあえずまず読んでみろ、ではある。
それでどう思うかは君の自由だ。
多分結局は適性なんだよ。パターンから選ぶほうが楽なら積極的に使えばいい。
俺にはデザパタは粒度が大きすぎる。自分で継承/匿名関数等を使って組み上げるほうが楽だ。(というより直感的)
ただし結果的には同じようなことになっているとも思うが。
ただ、使ってる/使ってないと言えば、それは確実に使っている。
既に言ったがストラテジーは継承そのものだから、OOPならほぼ間違いなく使うし、
オブザーバーってのはフレームワークのイベントモデルがこれ(.NETとHTMLはそう)なので、
例えばC#やJavaScriptにおいてこれを使ってないというのはありえない。(自覚しているかどうかは別)
なおJavaScriptはこれを言語自体にも取り込もうとしたが、いいところまで行って頓挫した。
https://www.html5rocks.com/ja/tutorials/es7/observe/
本当に頻出なら言語で直接サポートした方が便利だから、そうなって行くものなんだよ。
それがイテレータであってね。
だから、この類の「言語新機能」を追いかけていても、頻出パターンについては自然と学習することになる。
GoFは1995だし、それからソフトウェア工学も進歩しなかったわけではない。(Javaは10年間進歩しなかったが)
新しい言語は分かりきっている問題に対しては対策をしてくる。
そしてGoは「継承はいらない」という彼らなりの結論を出してる。
GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。
> ちなみに我輩はしがない流れ者の派遣プログラマー(プログラム設計もやってます)です。
君がここら辺の話について来れないのなら、とりあえずまず読んでみろ、ではある。
それでどう思うかは君の自由だ。
多分結局は適性なんだよ。パターンから選ぶほうが楽なら積極的に使えばいい。
俺にはデザパタは粒度が大きすぎる。自分で継承/匿名関数等を使って組み上げるほうが楽だ。(というより直感的)
ただし結果的には同じようなことになっているとも思うが。
795デフォルトの名無しさん
2017/09/21(木) 23:55:29.08ID:2yneGSNP ストラテジーが継承そのものってどういう意味?
HTMLのイベントモデルがオブザーバーってどういうこと?
HTMLのイベントモデルがオブザーバーってどういうこと?
796デフォルトの名無しさん
2017/09/22(金) 00:00:17.04ID:kB3Gqsn3 >>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。
いまでもGoFを学ぶ意味があると言うと、盲信してることにされちゃうんだね
ということは、Goの出した結論をGoを指示する人は盲信してるの?
まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。
いまでもGoFを学ぶ意味があると言うと、盲信してることにされちゃうんだね
ということは、Goの出した結論をGoを指示する人は盲信してるの?
まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
797デフォルトの名無しさん
2017/09/22(金) 00:31:51.44ID:sr7lvu8c >>796
> まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
その通りだ。俺は自分で考えろと言っているだけだ。
GoFが古いのは事実だ。
その間にソフトウェア工学が進歩していると仮定するなら、当然問題は解決されてくる。
実際そうなっているわけでね。
メジャー言語では、Javaは例外的に全く進歩してないが、
他言語(C++/C#/JavaScript)はなんだかんだで色々試行しているよ。
俺自身、継承はちょっと結合が強すぎるとは感じる。
ただ全部委譲の方がいいか?と言われれば、どうかな?とも思うが。
とはいえ、「全部委譲でよし、継承イラネ」ってのは2chでも散見されるだろ。
で、君はSwiftやScalaを知っているんだろ?それはどうなっているんだ?
> まぁGoが正しいわけじゃないし、SwiftやScalaが出した答えも考える価値があるね
その通りだ。俺は自分で考えろと言っているだけだ。
GoFが古いのは事実だ。
その間にソフトウェア工学が進歩していると仮定するなら、当然問題は解決されてくる。
実際そうなっているわけでね。
メジャー言語では、Javaは例外的に全く進歩してないが、
他言語(C++/C#/JavaScript)はなんだかんだで色々試行しているよ。
俺自身、継承はちょっと結合が強すぎるとは感じる。
ただ全部委譲の方がいいか?と言われれば、どうかな?とも思うが。
とはいえ、「全部委譲でよし、継承イラネ」ってのは2chでも散見されるだろ。
で、君はSwiftやScalaを知っているんだろ?それはどうなっているんだ?
798デフォルトの名無しさん
2017/09/22(金) 00:32:11.77ID:Nn2M/THg >>794
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。
継承という文法がなくても
継承を別の方法で実装できるからでしょ?
「継承はいらない」ではなく「継承を直接行うための文法はいらない」が正しい
そしてGoでも継承自体はやる。
> そしてGoは「継承はいらない」という彼らなりの結論を出してる。
> GoFなんて古典を妄信するより、Goが何故こういう結論を出したのか考えるほうがいいと思うぞ。
継承という文法がなくても
継承を別の方法で実装できるからでしょ?
「継承はいらない」ではなく「継承を直接行うための文法はいらない」が正しい
そしてGoでも継承自体はやる。
799デフォルトの名無しさん
2017/09/22(金) 00:38:17.90ID:9s7VGfiV ほんと、ストラテジーが継承そのものってどういうことよ??
最近はOOでも関数を渡せる言語が増えてきたから
ストラテジーの実装は継承使わないほうが多いと思うぞ
古臭いGoFをそのまま学ぶ必要はないだろうが
単に各パターンを知る・使えるようになることよりも
パターンを通してOOの設計原則を学ぶことが重要
最近はOOでも関数を渡せる言語が増えてきたから
ストラテジーの実装は継承使わないほうが多いと思うぞ
古臭いGoFをそのまま学ぶ必要はないだろうが
単に各パターンを知る・使えるようになることよりも
パターンを通してOOの設計原則を学ぶことが重要
800デフォルトの名無しさん
2017/09/22(金) 09:48:55.51ID:eeRMTLx0 アラン・ケイやGoFのデザパタに触れるとスレが荒れるということは分かった
801デフォルトの名無しさん
2017/09/22(金) 11:19:40.04ID:b6yHr9// 名前がついてるものの中でも
クイックソートやB+Tree、線形補完でスレが荒れるなど聞いたことないし
やはり何か根本的に微妙なんだろうな
クイックソートやB+Tree、線形補完でスレが荒れるなど聞いたことないし
やはり何か根本的に微妙なんだろうな
802デフォルトの名無しさん
2017/09/22(金) 12:09:12.17ID:z4GP1i1k 良し悪しを証明出来ないからだろう
アルゴリズムのオーダーとかなら数学で証明できるから議論の余地がない
数学的に曖昧なものほどバカでも議論に入る余地があるから調子乗って参加しちゃう
こういう議論でしか話せないんだよバカは
アルゴリズムのオーダーとかなら数学で証明できるから議論の余地がない
数学的に曖昧なものほどバカでも議論に入る余地があるから調子乗って参加しちゃう
こういう議論でしか話せないんだよバカは
803デフォルトの名無しさん
2017/09/22(金) 12:52:53.21ID:gDV2cvxW クイックソートでも再帰を使えないアホウが発狂するぞ
どんなネタでも発狂するキチガイは存在する
どんなネタでも発狂するキチガイは存在する
804デフォルトの名無しさん
2017/09/22(金) 14:02:03.76ID:juWn7/fD 再帰なんてわかんなかったら繰り返しになるまでコード書いて見ればいい
繰り返し部分を関数にすれば作成完了だ
しかし、スタックオーバーフローで死ぬ
ここまでがワンセンテンスだ
繰り返し部分を関数にすれば作成完了だ
しかし、スタックオーバーフローで死ぬ
ここまでがワンセンテンスだ
805デフォルトの名無しさん
2017/09/22(金) 14:30:09.14ID:b6yHr9// 要は名前を付けるほどの物でも無かったんじゃね、説
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- 【カブス】今永昇太 1年約34億円で残留へ QO受諾 米メディア報じる [鉄チーズ烏★]
- 【悲報】おこめ券、9.5億円配布分のうち2.4億が経費、うちJAが1億円中抜き🤗高市ありがとう [359965264]
- 【悲報】高市有事で日本に同調する国、1つも現れないwwwwwwwwwwwwwww [603416639]
- 【雑談】暇人集会所part19
- 不知火フレア、尾丸ポルカ、星街すいせい、さくらみこ、白銀ノエル「「「「「お前くんっ!結婚して!」」」」」←誰を選ぶ?
- 自閉症が「んなっしょい」と連呼するお🏡
- ブラックフライデーでダークソウル買って初プレイしてみようかなと思うけどどうかな
