- ECMAScript デス 4
685 :デフォルトの名無しさん[sage]:2015/07/22(水) 02:09:12.38 ID:wbhhK6Bo - ここは人は居るんですかね?
|
- ECMAScript デス 4
686 :デフォルトの名無しさん[sage]:2015/07/22(水) 02:57:00.54 ID:wbhhK6Bo - まあいいや、勝手に始めてみます。
Web製作板の質問スレは知っていますが、どうも合わないので。 多層継承を積極的に試したことがある人は居ますか? もし居ましたら、問題点等があれば教えてください。 一応、googleのコーディング規約だと止めろということになっています。 > 多層のプロトタイプヒエラルキー > 好ましくありません. > http://cou929.nu/data/google_javascript_style_guide/ こちらで試したところ、デバッグのときに見にくくなる位で、それ以外は特に問題はありません。 これを止めるのは特性を殺してしまうことになるので、 問題なければさらに積極的に進めていこうと思っています。 あらかじめハマりポイントをご存知の方がいれば、教えてください。
|
- ECMAScript デス 4
689 :デフォルトの名無しさん[sage]:2015/07/22(水) 21:17:35.87 ID:wbhhK6Bo - >>687
以前ちら見した限りでは、goog.inherits()はクラス的構文で書けるだけで、 何の役にも立たないという結論だ。 継承深度は変わらないので、デバッグの手間も減らない。 むしろ、googleがなぜそんな中途半端な結論になっているのかが分からない。 そちらの理解もこちらと同じく、見にくくなるだけが問題だ、というのは了解した。ありがとう。 >>688 スーパークラスの差し替えの予定は無い。 また、内部状態を持たないオブジェクト(辞書のようなもの)によるインスタンスツリーだが、何か危険かな? オブジェクトコンポジションも見やすくはならない。継承深度は変わらない。(継承ではなく使用だが) もちろんフラットに展開してオブジェクトコンポジション的に書くことは出来る。(今がそれに近い) 逆に基本的にオブジェクトコンポジションで書き、それぞれのプロパティを検査し、動的に折りたたむことも出来る。 こっちの方がいいかな? 目的は、単にJavaScriptのNative継承が使えるものなのかどうかの味見だ。 最初から捨てるのではなく、まずは試す。駄目なら捨てる。 既に駄目だとわかっているのなら、無駄足になるから先に教えて欲しい。
|
- 【JavaScript】スクリプト バトルロワイヤル50【php,py,pl,rb】 [転載禁止]©2ch.net
786 :デフォルトの名無しさん[sage]:2015/07/22(水) 21:54:58.16 ID:wbhhK6Bo - >>778に一票。
Rubyはプロトタイプに特化していて、平気で仕様を捨てていくと聞いた。 従って、今学んだ『文法』は数年後には丸ごとゴミになる。 プログラマにとって重要なのは『文法』ではないが、 新しいことを丸ごと覚えなおすのは養殖系には無理だと思う。 ただ、Javaだとおそらくオブジェクト構文を叩き込まれるが、正直なところ、 オブジェクト指向は大規模プログラミングをするときに生きるものであって、 初心者が最初に学ぶべきものではない。 あれはとりあえずプログラミングが出来るようになってからでいいものだ。 だから、全くの初心者ならRubyのほうが得られるものが多いかもしれない。 ただ、Rubyを職業にするつもりであれば、上記のように天然系への脱皮が出来ないと死ぬ。 健闘を祈る。
|
- ECMAScript デス 4
692 :デフォルトの名無しさん[sage]:2015/07/22(水) 22:45:25.39 ID:wbhhK6Bo - >>690
逆に、そちらではどれくらいの継承深度で書いているの? こちらが勝手に定義していいのなら、2-3階層が「フラット」で、それ以上が「多層」になる。 こちらは、デフォのprototypeは使っている。 コンストラクタも用意してはみたが、正直あまりnewするメリットを感じないので、多用はしていない。 コンストラクタの中でのnewは1箇所あるかないかで、大半は2-3階層だ。(new_obj-obj-Object.prototype) ただ、似て非なるインスタンスが多い場合、共通部分を切り出して継承するとコード/フットプリントを削減できる。 だから試してみた。多分5-6階層になっている。 問題は各オブジェクトの該当プロパティがどこに書いてあるか分かりにくいことだが、 これは、クラスツリーが形成される一般のオブジェクト指向言語でも同じことだ。 JavaScriptはインスタンスツリーも作れるから、こちらで試しているのだが、 インスタンスツリーは禁止でクラスツリーはいくらでもいいですよというのは変だ。 (JavaScriptはその区別をしていないし、 クラス的な使い方であっても動的に変更が効いてしまうという危険性はあるとしても) ただ見たところ、見にくさ以外の問題点は感じられない。だから聞いてみている。
|
- ECMAScript デス 4
693 :デフォルトの名無しさん[sage]:2015/07/22(水) 23:02:34.90 ID:wbhhK6Bo - >>691
それが君にとって見やすいのなら、そう書けばいい。 それがチームにとって見やすいのなら、コーディング規約で縛ればいい。 俺はgoog.inherits()なんて余計に読みにくくなるだけのゴミだと判定しただけ。 だから俺は使わない。 あれはJavaScriptにクラス構文を導入するためのシンタックスシュガーだというのなら、その通りだ。 しかし俺は、JavaScriptネイティブの書き方で特に問題を感じない。
|
- 【JavaScript】スクリプト バトルロワイヤル50【php,py,pl,rb】 [転載禁止]©2ch.net
790 :デフォルトの名無しさん[sage]:2015/07/22(水) 23:16:16.73 ID:wbhhK6Bo - >>787
言語仕様そのものではなく、フレームワークだけか。 だったら最初の授業としてはRubyの方がいい気はするが、問題はその後だな。 天然系になれそうになかったら、Java講座をそのあとに受ければいいだけではあるが。
|