任天堂「今後C++は捨てJavaScriptで開発していく」 (887レス)
任天堂「今後C++は捨てJavaScriptで開発していく」 http://mevius.5ch.net/test/read.cgi/tech/1363752460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
153: デフォルトの名無しさん [sage] 2013/03/22(金) 02:36:41.68 >>152 seal()書き忘れるか、seal()が必要だって知らない人がメンテとかしたりしたらアウトだから。 書き忘れなきゃOKとか言う?それってtypoしなきゃOKと言うのと変わらないよ。 C++でnew禁止にできるみたいな、絶対に間違いが起こらない方法は無いと思うんだ。 あるなら教えてほしい。 あと、seal()しまくりなのは汚いし見づらいしエレガントじゃないよね。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/153
154: デフォルトの名無しさん [sage] 2013/03/22(金) 02:41:19.71 C++知らない人がメンテとかしたらアウトだか。 >>153への皮肉はこんなもんでいいだろ?w http://mevius.5ch.net/test/read.cgi/tech/1363752460/154
155: デフォルトの名無しさん [sage] 2013/03/22(金) 02:48:54.79 >>154 C++のnew禁止テクニックとseal()の違いがわからないなら、プログラミングセンスなさすぎだよ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/155
156: デフォルトの名無しさん [sage] 2013/03/22(金) 02:54:05.41 new禁止テクニックの話は一言もしてないw http://mevius.5ch.net/test/read.cgi/tech/1363752460/156
157: デフォルトの名無しさん [sage] 2013/03/22(金) 02:57:17.19 new禁止テクニックのような根本的対策じゃなきゃ意味ないよって言ってるのが 理解できないのか、new禁止テクニックを知らないのか。どっち? http://mevius.5ch.net/test/read.cgi/tech/1363752460/157
158: デフォルトの名無しさん [sage] 2013/03/22(金) 03:00:41.45 >>153 Object.seal()を直接書いて回るとか何の冗談だよ いまどきJavascriptでそれなりのプロダクトを作るなら クラス継承の手順なんかも隠蔽したオブジェクト生成関数を用意してそれを使う センスとか以前の問題じゃね? http://mevius.5ch.net/test/read.cgi/tech/1363752460/158
159: デフォルトの名無しさん [sage] 2013/03/22(金) 03:03:03.19 書き忘れたら書き間違えで新たなプロパティ扱いになるって言っても C++はC++で書き忘れたら色んなものが解放されないという言語なのだけれど… http://mevius.5ch.net/test/read.cgi/tech/1363752460/159
160: デフォルトの名無しさん [sage] 2013/03/22(金) 03:06:23.82 >>158 残念ながらそれでも駄目なんだ。 なぜなら、JavaScriptでは実引数の型を強制できないから、hoge({maxLength:10})とかできちゃうし。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/160
161: デフォルトの名無しさん [sage] 2013/03/22(金) 03:08:39.66 >>159 念のため説明すると、new禁止にすると、hoge = new Hoge();でコンパイルエラーになるから これが根本対策になり得る。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/161
162: デフォルトの名無しさん [sage] 2013/03/22(金) 03:13:08.67 >>160 それはオブジェクトというより今時の大抵の言語にあるハッシュとしての使いかただね Javascriptは両方とも同じものだけど ハッシュのキーワードミスって別のプロパティ弄っちゃうとか Javascript固有の問題じゃないだろう オブジェクトの生成はプロジェクトで決めた生成方式で統一すればいい http://mevius.5ch.net/test/read.cgi/tech/1363752460/162
163: デフォルトの名無しさん [sage] 2013/03/22(金) 03:23:05.56 オブジェクトの生成ルール決めてるプロジェクトでhoge({maxLength:10})とかやって自爆するのは C言語で型とか適当でキャストしまくって自爆するのと同じようなものだろw http://mevius.5ch.net/test/read.cgi/tech/1363752460/163
164: デフォルトの名無しさん [sage] 2013/03/22(金) 03:39:01.27 >>162 ルールを決めても、それを言語仕様的に強制できなければ、誰かが間違える可能性が残る。 誰かというのは、将来のメンテナも含めてね。 それと、xの仕様を変えることによって問題を解決するのなら、maxLengthを プライベート変数にして、setter,getterにした方がいいと思うんだけど、どう? http://mevius.5ch.net/test/read.cgi/tech/1363752460/164
165: デフォルトの名無しさん [sage] 2013/03/22(金) 03:41:01.60 >>163 自爆するのが悪いというのは、typoするのが悪いというのと変わらないよ。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/165
166: デフォルトの名無しさん [sage] 2013/03/22(金) 03:44:19.64 >>164 >>49を見直してこいよ maxLengthをset/getにしてもmaxlengthを作れちゃうから問題だと言ってるのに http://mevius.5ch.net/test/read.cgi/tech/1363752460/166
167: デフォルトの名無しさん [sage] 2013/03/22(金) 03:47:42.26 >>165 どんな言語でも、言語仕様で強制される以外のルールも守らなければ自爆するって言ってるんだよ?w http://mevius.5ch.net/test/read.cgi/tech/1363752460/167
168: デフォルトの名無しさん [sage] 2013/03/22(金) 04:22:59.02 JavaScriptでnew禁止するのは簡単。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/168
169: デフォルトの名無しさん [sage] 2013/03/22(金) 05:15:32.20 >>161 ではC++で解放忘れをコンパイルエラーにする方法は? http://mevius.5ch.net/test/read.cgi/tech/1363752460/169
170: デフォルトの名無しさん [sage] 2013/03/22(金) 06:18:05.68 どんなに優れた言語でもウンコードは書ける http://mevius.5ch.net/test/read.cgi/tech/1363752460/170
171: デフォルトの名無しさん [sage] 2013/03/22(金) 06:44:15.35 TSRが書けなくなるの? http://mevius.5ch.net/test/read.cgi/tech/1363752460/171
172: デフォルトの名無しさん [sage] 2013/03/22(金) 06:48:12.33 >>166 setterにすれば、>>49はsetMaxLength()とsetMaxlength()のtypoの問題にかわる。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/172
173: デフォルトの名無しさん [sage] 2013/03/22(金) 06:50:37.63 typoうんぬんが開発の生産性と関係あると思ってるヤツは素人 http://mevius.5ch.net/test/read.cgi/tech/1363752460/173
174: デフォルトの名無しさん [sage] 2013/03/22(金) 06:50:47.43 >>167 そんなの当たり前だが、今回の問題と何の関係があるのかな? http://mevius.5ch.net/test/read.cgi/tech/1363752460/174
175: デフォルトの名無しさん [sage] 2013/03/22(金) 06:52:03.00 >>169 ない。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/175
176: デフォルトの名無しさん [sage] 2013/03/22(金) 06:52:37.46 >>172 setterにすると>>49のコードが具体的にどう変わるか書いてみてくれない? http://mevius.5ch.net/test/read.cgi/tech/1363752460/176
177: デフォルトの名無しさん [sage] 2013/03/22(金) 06:54:19.46 >>176 書いたじゃん。 理解できないのか? http://mevius.5ch.net/test/read.cgi/tech/1363752460/177
178: デフォルトの名無しさん [sage] 2013/03/22(金) 07:01:29.20 >>177 function hoge(x) { x.setMaxLength() = 100; } // 正 function hoge(x) { x.setMaxlength() = 100; } // 誤 ってこと? http://mevius.5ch.net/test/read.cgi/tech/1363752460/178
179: デフォルトの名無しさん [sage] 2013/03/22(金) 07:06:04.93 178 悪いが、JavaScriptを知らない奴にまで説明する優しさは持ってない。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/179
180: デフォルトの名無しさん [sage] 2013/03/22(金) 07:08:00.09 >>179 いやおれは普通にこういうことだとおもったんだが x = { val:0, get maxLength() {return this.val}, set maxLength(v) {this.val = v}} function hoge(x) { x.maxLength = 100; } // 正 function hoge(x) { x.maxlength = 100; } // 誤 x.maxlengthに間違ったら意味無いよね? http://mevius.5ch.net/test/read.cgi/tech/1363752460/180
181: デフォルトの名無しさん [sage] 2013/03/22(金) 07:13:44.71 ああ、xを実引数にしてhoge()を呼び出すと思ってくれ http://mevius.5ch.net/test/read.cgi/tech/1363752460/181
182: デフォルトの名無しさん [sage] 2013/03/22(金) 07:16:02.22 >>180 俺の話からそんなコードを想像したのなら、そりゃ話は噛み合わないな。 http://mevius.5ch.net/test/read.cgi/tech/1363752460/182
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 705 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s