アルゴリズムとかデザパタを覚えたりJavaScriptのライブラリを
練習しまくると
・配列や連想配列ほかデータ構造や制御構文、オブジェクト、関数、メソッド、
をどうやって「どうやって組み合わせるか」がなんとなくコツが掴めてくる。
(でもこれらの公式みたいなのは出来上がってなくて、自分と違う組み合わせ方
をしている人のコードを見てしまうと混乱する。)
・つまり、「呼び出し側で変数、関数、配列、制御構文、オブジェクト、メソッド」をどうやって配置するのかって、「絶対の公式」が規定されていないから、組み合わせは 人それぞれなのかな?
→一度変数に保持してからその変数を使う人もいるし、
if文の条件分岐や関数呼び出しの () の中で更に別の式をごっそり詰め込んで
その内部の() の中に更に別の式を詰め込んでしまう人もいる。
配列の[] 内に結構長い式を詰め込む人もいる。
オブジェクトのクラス定義だと、メソッドやコンストラクタに渡す「引数名」
とクラスの「メンバ変数名」が同じで、
メソッド内の内のローカル引数名とメンバ変数がどっちなのか混乱することが
よくある。
・デザインパターンを覚えたことでこれらの組み合わせのコツをなんとなく掴んだが、今度は「複数のデザインパターンを組みわせて」もっと大きなものを作るときの
「組み合わせ方」が上手くつかめない。
・そこで、これらの「組み合わせ方」について議論するスレを立てました。
実行側でのコード構造の組み合わせ方 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/09/03(日) 02:53:52.62ID:V/LSJTV52デフォルトの名無しさん
2017/09/03(日) 03:15:35.12ID:ULbykCIX >>1
もうちょっと議論のテーマをまとめて欲しい
>「複数のデザインパターンを組みわせて」
>もっと大きなものを作るときの
>「組み合わせ方」
これがテーマかな?
あとサンプルコードがないと
具体的にどんなケースなのか分かりにくい
もうちょっと議論のテーマをまとめて欲しい
>「複数のデザインパターンを組みわせて」
>もっと大きなものを作るときの
>「組み合わせ方」
これがテーマかな?
あとサンプルコードがないと
具体的にどんなケースなのか分かりにくい
2017/09/03(日) 03:29:04.15ID:PV3GMLPY
>JavaScript
混乱してるようだけどほぼこれが原因
混乱してるようだけどほぼこれが原因
4デフォルトの名無しさん
2017/09/03(日) 03:54:35.42ID:V/LSJTV5 >>2-3
いや俺一人の悩みの相談じゃないよ。
例えば俺の場合だと、結城浩 著者のデザインパターン入門で
23種のデザインパターンを勉強した。
すると演習問題の最後で、GoFの「Interpreter」と「Facade」「FactoryMethod」
を組み合わせたちょっと複雑なプログラムを試しに書いて動かした。
(動いたのでこれ自体に困っているわけではない。)
サンプルコードはクラスのファイルが17クラス分もあって2chに書くと大変だよ。
だけど、これを応用する時単体のパターンではなく「組み合わせ」るという発想はどうすれば
いいだろうと思って、スレを立てた。
パターンだけじゃなく、基本的な関数やメソッドやif文 for文なんかも、
「単発で書く」のは構文を覚えて慣れれば誰でもできるけど、
「組み合わせて目的を達成する」のって結構自分で考えるのが難しくて、
何らかの「お決まりのパターンを真似る」しか無いけど、参考になるものが
いつも簡単に見つかるわけじゃないし、真似ればうまくいくと思ってたのに
実際全然的が外れることもある。
これは別にJavaだろうがJavaScriptだろうが C, Python, シェルスクリプト
関係なくどの言語でも当てはまることだから、それについて議論するスレを
立てたいと思って建てた。
いや俺一人の悩みの相談じゃないよ。
例えば俺の場合だと、結城浩 著者のデザインパターン入門で
23種のデザインパターンを勉強した。
すると演習問題の最後で、GoFの「Interpreter」と「Facade」「FactoryMethod」
を組み合わせたちょっと複雑なプログラムを試しに書いて動かした。
(動いたのでこれ自体に困っているわけではない。)
サンプルコードはクラスのファイルが17クラス分もあって2chに書くと大変だよ。
だけど、これを応用する時単体のパターンではなく「組み合わせ」るという発想はどうすれば
いいだろうと思って、スレを立てた。
パターンだけじゃなく、基本的な関数やメソッドやif文 for文なんかも、
「単発で書く」のは構文を覚えて慣れれば誰でもできるけど、
「組み合わせて目的を達成する」のって結構自分で考えるのが難しくて、
何らかの「お決まりのパターンを真似る」しか無いけど、参考になるものが
いつも簡単に見つかるわけじゃないし、真似ればうまくいくと思ってたのに
実際全然的が外れることもある。
これは別にJavaだろうがJavaScriptだろうが C, Python, シェルスクリプト
関係なくどの言語でも当てはまることだから、それについて議論するスレを
立てたいと思って建てた。
2017/09/03(日) 04:07:12.78ID:LluVimQv
「絶対の公式」みたいな考えをまず捨てる必要がある
アルゴリズムやデザパタを勉強したのならそんなもんあり得ないって理解できるはず
その上でコードをたくさん読んで自分の審美眼を磨いていくといい
アルゴリズムやデザパタを勉強したのならそんなもんあり得ないって理解できるはず
その上でコードをたくさん読んで自分の審美眼を磨いていくといい
6デフォルトの名無しさん
2017/09/03(日) 04:07:30.66ID:V/LSJTV5 わかったこうしよう。
いくらプログラミングの基礎の勉強をしても、
「アメブロで自分のアカウントでログインして、他の人のブログのいいね!を
自動でクリックするツールをGUIで他人も使えるようにして、配信して、お金を
入金させる仕組みを作ろう」ってなったときに、
「このライブラリやモジュールを importして、 このクラスやインタフェースを
extends, implementsして、このクラスのインスタンスを委譲で保持して、
こういう配列構造を作って、こういうコンストラクタにして、こういう
メソッドの呼び出し方をして、こういうときは条件分岐して、
こういうときはfor文でループ」
みたいなのがスッと思いつくまでには至っていない。
だから「組み合わせて目標を達成するやり方が分かっていない」という状態。
いくらプログラミングの基礎の勉強をしても、
「アメブロで自分のアカウントでログインして、他の人のブログのいいね!を
自動でクリックするツールをGUIで他人も使えるようにして、配信して、お金を
入金させる仕組みを作ろう」ってなったときに、
「このライブラリやモジュールを importして、 このクラスやインタフェースを
extends, implementsして、このクラスのインスタンスを委譲で保持して、
こういう配列構造を作って、こういうコンストラクタにして、こういう
メソッドの呼び出し方をして、こういうときは条件分岐して、
こういうときはfor文でループ」
みたいなのがスッと思いつくまでには至っていない。
だから「組み合わせて目標を達成するやり方が分かっていない」という状態。
2017/09/03(日) 04:15:16.16ID:LluVimQv
8デフォルトの名無しさん
2017/09/03(日) 04:25:07.90ID:V/LSJTV52017/09/03(日) 04:57:03.17ID:LluVimQv
>>8
それはもう少し抽象度の高い原則だね
デザインパターンの背後にある原則はもう少し実装よりのやつ
「変化する部分をカプセル化する」とか「継承よりコンポジション」みたいな
各パターンについてなんでこのパターンがあるといいのかっていうWhyを理解して
パターン間で共通する設計原則を理解するといいと思う
結城本はそういう部分の説明がないからあまりいい本ではないよ
それはもう少し抽象度の高い原則だね
デザインパターンの背後にある原則はもう少し実装よりのやつ
「変化する部分をカプセル化する」とか「継承よりコンポジション」みたいな
各パターンについてなんでこのパターンがあるといいのかっていうWhyを理解して
パターン間で共通する設計原則を理解するといいと思う
結城本はそういう部分の説明がないからあまりいい本ではないよ
10デフォルトの名無しさん
2017/09/03(日) 05:55:16.95ID:V/LSJTV5 >>9
じゃあどんな本がおすすめですか?
じゃあどんな本がおすすめですか?
2017/09/03(日) 07:01:50.47ID:e9mk7X/B
Stoyan Stefanov 著
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012
JavaScriptデザインパターン、Addy Osmani, 2013
今は、GoF よりも、20年以上経っているから、
ほとんどのデザインパターンは、フレームワークが実装していて、
プログラマーが書くことは無い
今は、XML の設定ファイルから、クラスを動的に作る、DI が流行ってる
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012
JavaScriptデザインパターン、Addy Osmani, 2013
今は、GoF よりも、20年以上経っているから、
ほとんどのデザインパターンは、フレームワークが実装していて、
プログラマーが書くことは無い
今は、XML の設定ファイルから、クラスを動的に作る、DI が流行ってる
■ このスレッドは過去ログ倉庫に格納されています
