+ JavaScript(ECMAScript)質問用スレッド vol.122 +at TECH
+ JavaScript(ECMAScript)質問用スレッド vol.122 + - 暇つぶし2ch175: ◆SEdFBOkLSw
16/09/02 01:23:30.53 nUqjDcPO.net
>>171
だから、
babelは言語ではない。「ES6のトランスパイラ」だ
tscは「TypeScriptという言語」のトランスパイラだ
「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、
「tscは「TypeScriptという言語」のトランスパイラ」で処理されるためのソースがある。
トランスパイラで処理されるためのソースがある。
それらのソースは、トランスパイラで処理されるためのものである。
おわかり?

176:デフォルトの名無しさん
16/09/02 01:23:45.28 gFIXdWf6.net
> 最初にbabelはAltJSと同じ立ち位置、に噛み付いてきた)だけであって、
babelはトランスパイラ、AltJSは言語
全然立ち位置が違う。
tsc(トランスパイラ)とTypeScript(言語)が立ち位置が同じと言っているようなもん

177:デフォルトの名無しさん
16/09/02 01:25:11.41 gFIXdWf6.net
>>173
> 「ES6のトランスパイラ」で処理されるためのJavaScriptソースがある、
それはどんなJavaScriptソースなんだ?
ここに具体的なコードを書いてみろ。

178: ◆SEdFBOkLSw
16/09/02 01:25:31.37 nUqjDcPO.net
>>172
理解はしてるよ。
中身が同じにこだわるのは、
「一つの言語で云々、babelというのはなんに対しても最新のJavaScriptが使えるもの」ってお前の発言に則って話してるから、
それを否定するなら俺としてはありがたい話だ。

179: ◆SEdFBOkLSw
16/09/02 01:27:24.62 nUqjDcPO.net
>>175
そりゃ、ES6だよ。
let func = () => console.log('hello');
ただ、目的としてはトランスパイラにかけるためのソースなだけで。
だから、目的論なの。
>>159の後半な。

180:デフォルトの名無しさん
16/09/02 01:27:51.64 gFIXdWf6.net
170 返信: ◆SEdFBOkLSw [sage] 投稿日:2016/09/02(金) 01:19:59.68 ID:nUqjDcPO [9/11]
> 中身にこだわってはないよ。
176 名前: ◆SEdFBOkLSw [sage] 投稿日:2016/09/02(金) 01:25:31.37 ID:nUqjDcPO [11/11]
> 中身が同じにこだわるのは、

↑ こいつ頭大丈夫か?w
中身にこだわってないと言ったくせに
ほんの6レスで中身が同じにこだわってるwww

181:デフォルトの名無しさん
16/09/02 01:28:54.56 gFIXdWf6.net
>>177
> let func = () => console.log('hello');
そのコードはどの部分が、
「ES6のトランスパイラで処理されるため」になってるんだ?

182: ◆SEdFBOkLSw
16/09/02 01:29:42.84 nUqjDcPO.net
>>179
お前敢えて誤読してるか理解してないフリしてんの?
それともマジでバカなの?

183: ◆SEdFBOkLSw
16/09/02 01:30:47.92 nUqjDcPO.net
あきれるわ。おやすみ。

184:デフォルトの名無しさん
16/09/02 01:31:21.75 gFIXdWf6.net
>>179
俺は
「ES6のトランスパイラ」で処理される、ES6のコードと
「ES6のトランスパイラ」で処理されない、ES6のコードの
違いが何かってことを聞いてるんだよ。

185:デフォルトの名無しさん
16/09/02 01:37:01.83 gFIXdWf6.net
ES6のコードはES6に対応してない古いブラウザに対応するときにだけbabelで変換する必要があるのであって、
ES6に対応しているブラウザではそのまま動かせるって分かってないのかな?
babelを通すか通さないかの違いは、それぞれのブラウザで動作するかどうかの
テストコードが有って、それで保証されるから何の問題もない。
中身が変わるだけで(中身にはこだわりません)
動きが変わってなければ(テストで保証する所)何も問題ない。
babelは言語ではなくトランスパイラであって
言語はES6。このES6はブラウザでネイティブに動く言語
その他のAltJSはブラウザでネイティブに動かない言語
だから、AltJSとES6は「同じ言語というカテゴリで比較すると「立ち位置が違う」と言えよう。
なおAltJS(言語)とbabel(トランスパイラ)はそもそもカテゴリが違う。

186:デフォルトの名無しさん
16/09/02 03:38:22.58 kWkQROgW.net
漫画喫茶のダイス(DICE)を運営してるのはベルシティ(ザ シティ)というパチンコ店です。
ザ シティ・ベルシティ伊勢佐木町店(神奈川県)の周りにはソープランドがたくさんあります(ソープランド街です)。
このパチンコ店は韓国人か中国人が経営者の可能性があります(パチンコ店のほとんどは韓国人が経営してます)。
ザ シティ・ベルシティ伊勢佐木町店の周りには韓国料理店がたくさんあり、数キロ先には横浜中華街があります(韓国人、中国人がすごく多い地域です)。
普通はこんな場所に店を出さない気がします。
DICE系列 関東圏4
スレリンク(netspot板)

ダイス(DICE)=まんがランド(漫画喫茶)=ちょっと気分転館(漫画喫茶)=ねっとラボ=ベルシティ(ザ シティ)というパチンコ店

パチンコ店のほとんどは韓国人が経営してます

187:デフォルトの名無しさん
16/09/02 12:34:18.86 n2lhI+0z.net
>>149
違う。普通はテストに引っかかる前でも後でも、
互換性のない部分で問題ないように書こうねということになる。
つまり使えるのはちょっとES2015に近いaltJSであって、
ES2015フルに使っていい状況で作るのとは大きく違う。

188:デフォルトの名無しさん
16/09/02 22:23:40.28 gFIXdWf6.net
>>185
> 互換性のない部分で問題ないように書こうねということになる。
それはbabelを使わなくても、やってることだろ?
babelが対象とするのはECMAScriptの部分でDOM APIは対象外。
特定のブラウザでしか使えないAPIに比べれば
互換性がない部分は遥かに少ない。
その互換性がない部分っていうのはES6の部分なんだから・・
おまえ、普段ES6のコード書いてないだろ?
お前はES6のコードを書かないように気をつけている。
それに比べれば書かないように気をつけるコードはほんの僅かだよ。   
互換性がない所はES5で書けば良いんだしね。

189:デフォルトの名無しさん
16/09/02 22:25:51.84 gFIXdWf6.net
ざっと見る限りbabelとES6で互換性がない点は全体の1%程度だよ。
知らずに書いてしまうことはほとんどありえない。

190:デフォルトの名無しさん
16/09/02 22:34:24.02 gFIXdWf6.net
★SE 曰く、
中身が違うからポリフィルは使ってはいけない。
動作が同じになるように作られていたとしても
中身が違うからポリフィルは使ってはいけない。
また、MSが実装したPromiseも使ってはいけない。
PromiseはFirefoxが作ったものが唯一の本物であり、
中身が違えば動作が同じでも別物である。

191:デフォルトの名無しさん
16/09/03 05:16:03.21 N47o0j5/.net
>>186
Proxyが非対応でSymbolやWM周りが非常に気をつける必要がある時点で1%じゃ済まないね。
>>それはbabelを使わなくても、やってることだろ?
やらないし。もうモダンブラウザはほぼ100%対応してるのだから。
実質8割のbabelとは全然全然違う。
おまえ、普段ES6のコード書いてないだろ?

192:デフォルトの名無しさん
16/09/03 08:43:25.11 GDuT1yRG.net
レスバトル案の定自演だった

193:デフォルトの名無しさん
16/09/03 10:02:38.69 1nvmVGqX.net
>>189
ならそれだけ使わなければいいだけだろ?w
babelを使わない場合に、Proxyが使えるのか?

194:デフォルトの名無しさん
16/09/03 10:08:49.40 EZVA2rF2.net
> Promiseで実行指定した処理群内部では
> タイマー関連を使えないのでしょうか?
使える。
> これが使えないならば、WebWorkerでも極力使わない方が良い様に思います。
タイマー関連が使えるかどうかが、WebWorkerとどう関係があるのか
さっぱりわからん。
まず前提として以下のような制限がある。
URLリンク(developer.mozilla.org)
> 例えば、Worker 内から直接 DOM を操作することはできません。また window
> オブジェクトのデフォルトのメソッドやプロパティで、使用できないものがあります。
そして以下にはsetTimeoutはWorkerの中で使えると書いてある。
URLリンク(developer.mozilla.org)

195:+ JavaScript の質問用スレッド vol.122 +の73
16/09/03 10:41:23.55 e3VOV86p.net
此方に来ましたか。 お返事ありがとうございます。
Promiseは非同期処理群の処理と認識しています。
WebWorkerは単発の非同期処理と思っています。
WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
Promiseは非同期処理群の処理中ならば
タイマーの稼働・停止を別の処理で対応出来るかと思っていました。
Promiseの指定した処理群の個々でタイマーの稼働・停止が必要ならば
WebWorkerと同じ感じで作れば良いのかな。
Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。

196:デフォルトの名無しさん
16/09/03 10:53:57.66 EZVA2rF2.net
> Promiseは非同期処理群の処理と認識しています。
それ自体は間違ってはいない。
だけど重要なのはJavaScript自体はシングルスレッドということ
まずJavaScript(≒ECMAScript)自体にスレッドを扱う機能はない。
setTimeoutやXMLHttpRequest とかはブラウザが提供する機能であり、
その内部ではスレッドが使えるし、使っている。
そしてこれらの機能からイベントと言う形で処理の状況を知ることができる。
イベントは通常コールバックを使うことで知ることができるが、
Promiseっていうのはコールバックの一部である「処理が終了したというイベント」を
容易に扱えるようにしたもの。
終了したと言うイベントというのは「setTimeoutで指定した時間が過ぎた」とか
XMLHttpRequestであれば「HTTPリクエストが完了した」とかいうイベント。
なので、HTTPリクエストが10%完了、20%完了という進捗状況をPromiseで知ることは出来ない。

197:デフォルトの名無しさん
16/09/03 10:58:35.97 EZVA2rF2.net
WebWorkerというのはブラウザが提供する機能で
JavaScriptでスレッドを使うものとざっくり言われているが、
正確に言えば、JavaScriptではスレッドが使えないのは変わらずで、
ブラウザが新たなスレッドを作って、そのスレッドの環境内で
新たなJavaScriptを実行するというのが正しい。
WebWorkerの作り方なんてこんなんだしねw
> var myWorker = new Worker("worker.js");
他の言語のスレッドの作り方を知ってると、
JavaScriptファイルを指定するとか、なんじゃこりゃ?って思うよw

そして、メインのJavaScriptと、Workerで作ったスレッドとは
postMessageを使って通信することができる。
メッセージの内容は自由だから、どんなやり取りでもできる。

198:デフォルトの名無しさん
16/09/03 11:03:08.37 EZVA2rF2.net
>>193
> Promiseは未使用なので、VS2015の実装状況を確認してから試してみます。
Promiseは別にVS2015で実装されてるかどうかを考える必要はないよ。
動かすブラウザがPromiseの機能を持っているかどうかだから。
そしてPromiseは純粋なJavaScriptの範囲で実装できるのでJavaScriptライブラリが存在する。
jQueryライブラリ導入のようにPromiseライブラリ導入すればよい。
そももブラウザが持ってるPromiseの機能は最低限のものなので
それを拡張して便利なメソッドを追加したbluebirdが使われることも多い。
URLリンク(bluebirdjs.com)

199:デフォルトの名無しさん
16/09/03 11:04:45.06 EZVA2rF2.net
>>193
で、ここまで説明したんだが、
> WebWorkerはタイマーの稼働・停止の一連の処理を処理内部でまとめているのに対して
> Promiseは非同期処理群の処理中ならば
> タイマーの稼働・停止を別の処理で対応出来るかと思っていました。
それはこれが意味不明だからなんだわw
そもそもの前提知識がずれてるよって話。

200:デフォルトの名無しさん
16/09/03 11:16:01.65 EZVA2rF2.net
違う方面から説明をすると、
ある処理をする関数があったとして「その処理をWebWorkerを使って実行する。」
というのは文章として成り立ってる。
だけど「その処理をPromiseを使って実行する。っていうのは文章としておかしい。
Promiseっていうのは単に終了イベントを知るためのものだから。
ある処理をする関数があったとして、その関数はPromiseオブジェクトを返す。
その処理の終了はPromiseの仕組みで知ることができる。
というのであれば文章として問題ない。
従来は処理の終了をコールバックを使って判断していた。

201:193
16/09/03 11:20:58.37 e3VOV86p.net
>>194-195
説明ありがとうございます。
WebWorkerは自分で書いてみた事が有ります。 入門書片手ですが。
入門書でメッセージの構成が明確でなかったので、苦労しました。
Promiseの動作確認は、現在有るWebWorkerの処理の塗り替えでやってみます。
ありがとうございました。

202:デフォルトの名無しさん
16/09/03 11:35:38.80 EZVA2rF2.net
> Promiseの動作確認は、現在有るWebWorkerの処理の塗り替えでやってみます。
そこがなんかずれてるんだよねw
PromiseかWebWorkerか じゃないんだよw
スレッドを使う方法としては、2通りの方法があって、
WebWorkerを使うか、WebWorkerを使わないか。
WebWorkerを使わないでスレッドを使うっていうのは、
WebWorker以外のブラウザの機能、つまりsetTimeoutやXMLHttpRequestが
内部で使ってるスレッドを使うって意味ね。
で、これらとPromiseは全く別の概念。Promiseは処理の終了処理を
コールバックよりも容易に判定したいだけ。
だから、XMLHttpRequest + Promise (Fetch APIがまさにこれ)や
WebWorker + Promiseという組み合わせで使うんだよ。
WebWorkerからは通常postMessageを使って処理をやり取りするんだけど、
その部分(new Worker部分まで含めて)を関数やクラスでラッピングしてPromiseを返すことで
「内部で別スレッドを使って非同期で処理してその結果をPromiseで知ることができる」
と言うものを作ることができる。

203: ◆SEdFBOkLSw
16/09/03 12:00:04.87 o5roFWxE.net
俺は、どれが悪でどれが善って話はしてないんだよなぁ。
>>188
Promiseがどうの、誰かどうの、じゃ無くて。
中身が違えば動作が同じでも別物である、の着眼点の違いがわかったわ。
ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、
故に完璧に同じだと保証する工数が無駄なので、ポリフィルは使わない。ポリフィルのバージョンアップに追従する価値は余計にない、
だな。
要はその程度の開発だってことだろ、Webってのは(笑)

204: ◆SEdFBOkLSw
16/09/03 12:01:39.62 o5roFWxE.net
>>200
イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。
何を発火させて何をリッスンするかの違いに落ち着くんだけど。

205:デフォルトの名無しさん
16/09/03 12:18:31.50 EZVA2rF2.net
>>202
> イベントドリブンに最初からしておけば、Promiseなんか要らんのだけどな。
実現できるか? 実現できないか?
だけで判断するのは未熟な証拠。
Promiseはコールバックでもできることを別の形で実現したもの。
必須か必須でないかの話をするならば、最初から必須ではない。
Promiseは可読性とメンテナンス性を上げるための道具なんだから。
だからお前がしたり顔で「要らんのだけどな」って言ったところで
俺は最初からそれは知ってるとしか言いようがない。
無くてもできると言うのを踏まえた上でみんな話をしてるのに、
あんたはその話をする最低ラインに到達していない。

206:デフォルトの名無しさん
16/09/03 12:20:20.05 EZVA2rF2.net
>>201
> ブラックボックスを許さないし、違うのであれば、その違う部分が同じ動きをする保証が必要である、それは、「ほぼ同じ」では無意味で「完璧に全く同じ」と保証されないといけない、
じゃあ、お前、IEとChromeとFirefoxは
ブラックボックスで、同じ動きをするという保証もないけど、
どうすんの?
OSの違いもあるし、今はAndroidで機種ごとに
微妙に動き違うんだけど?
お前、そんなんで仕事できるの?
「俺はIEでしか仕事できません!」じゃ
仕事にならなんからねw

207:デフォルトの名無しさん
16/09/03 12:22:20.80 EZVA2rF2.net
Webはその程度って言うけど、
Webは多くのブラウザやOSに対応するのが絶対条件なんだが、
何を持って「Webはその程度」って言ってるの?
顧客の条件が、多くのブラウザやOSといった
ブラックボックスの環境に対応することなんだけど?
お前は「その程度」のことも出来ないの?

208: ◆SEdFBOkLSw
16/09/03 13:38:12.23 WfmCkwdk.net
何を反射的に噛み付いてるかわからん。
俺も知ってるから使わんのだよ。
それが読み取れない時点でお前がついてこれてなくない?
IEもFireFoxもChromeも全然ブラックボックスじゃないじゃんw
お前がなんのソースも読んだことなければ、MSと保守契約結んだこともなさすぎて笑えるわ。
iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
そんなんで仕事できるよ。
>>205
お前のレベルをもって、その程度、って言ってるんだよ。

209: ◆SEdFBOkLSw
16/09/03 13:44:41.92 WfmCkwdk.net
一回、このアホがどれくらいの規模の物を商品として作ったのか聞いてみたいわ。

210: ◆SEdFBOkLSw
16/09/03 13:48:52.73 WfmCkwdk.net
まぁいいや。
こいつの言うのが何であれ、なんの意味も成さんな。
実務ゼロっぽいし。

211:デフォルトの名無しさん
16/09/03 13:57:18.18 EZVA2rF2.net
>>26
へ? IEのソースコード公開されてないよ?
保守契約結んでもIEのソースは公開されない。
つーかソースコード開示する契約があるとしたら
それは保守契約じゃないしwww

> iOSのバージョンやAndroidごとに動き違うね。だから、社用には決まった機種を使うんだよ。
それはお前が決められることじゃない。
客が決めること。
客が世の中で使われているスマホの9割に対応するって言ったら
それに対応しないといけないんだよ。
で、どうするの? お前は出来ないの?w

212:デフォルトの名無しさん
16/09/03 13:57:46.31 EZVA2rF2.net
わかると思うけど、>>26じゃなくて>>206あてね。

213:デフォルトの名無しさん
16/09/03 13:59:56.35 EZVA2rF2.net
それから、babelで変換したとしても変換したコードは見れるし、
babel自体もオープンソースなので、全然ブラックボックスではありませんね
ブラックボックスってどこから出てきたのでしょうか?w

214: ◆SEdFBOkLSw
16/09/03 14:02:05.07 WfmCkwdk.net
>>209
結んでから言ってねw
後半。
違うよ。要件定義ってそうじゃない。
対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
保証できない事を約束できないっしょ。
お前、マとしての実務以前に、要件定義すらしたことないの?
9割って、一体何だ?w

215: ◆SEdFBOkLSw
16/09/03 14:03:10.48 WfmCkwdk.net
>>211
お前は本当に馬鹿だな。
それはブラックボックスとは関係なく、中間層の話だろ。
議題が変わると混乱するタイプの話かな。

216:デフォルトの名無しさん
16/09/03 14:13:08.29 EZVA2rF2.net
>>212
> 対応してほしいなら、どの機種のどれに対応して欲しいか明確じゃないと。
普通は、IE9以上、Edge、Chrome、Firefoxとかだな。
Edge、Chrome、Firefoxに関しては短期間でバージョンアップするので
固定するようなことはしないし、できない。
一例をあげるとこれぐらいの頻度で更新されてる。1ヶ月に1回だな。
URLリンク(ja.wikipedia.org)
48.0.2564 2016-01-20
49.0.2623 2016-03-02
50.0.2661 2016-04-13
51.0.2704 2016-05-25
52.0.2743 2016-06-02
53.0 2016-06-02
> 保証できない事を約束できないっしょ。
> お前、マとしての実務以前に、要件定義すらしたことないの?
保証できないことは約束しない。当たり前のことなんだが?
お前開発したときよりも1ヶ月あとにリリースされるバージョンで動作するかどうやって保証するんだ?
なんでもかんでも保証するなよ。保証しませんの一言でおしまいだろ。

> 9割って、一体何だ?w
は? 世の中に存在するスマホの機種の9割に対応するってことだけど?
OSで言えば、iOS8以上 + Android 4.0以上とか。
これ実際に仕事で大手企業から言われた条件な。
お前、スマホ対応とかの仕事できないだろw

217:デフォルトの名無しさん
16/09/03 14:14:40.62 EZVA2rF2.net
>>213
> それはブラックボックスとは関係なく、中間層の話だろ。
ブラックボックスって言い出したのはお前だろ?w
お前の言うブラックボックスはどこなんだって話。
babelはブラックボックスではないと確定しました。
はい、で?お前は何がブラックボックスだって?

218:デフォルトの名無しさん
16/09/03 14:24:14.31 EZVA2rF2.net
そういやソースコード見るために、MSと保守契約(笑)の話もあったな。
こっちは恥ずかしくてスルーするんだろうなw

219: ◆SEdFBOkLSw
16/09/03 14:26:12.90 WfmCkwdk.net
>>214
普通とか別に要らないよw
Edgeに関しては撒くKBでコントロールできる、
FireFoxはLTS
ChromeはChronium
で固定できるし、してるよ。
その後の保証が要るなら保守契約結んでもらうだけじゃん?
こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。
世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
iOS8以上、なら俺も発注出すな。
>>215
うん、得体のしれないポリフィル、に対して言ってた。
読めば良いだけ、なら、そんな工数無駄なので、作れば良いだけ。
お前はなんのソースも読まずに、これで大丈夫だ!なぜならこれが最新のもので、オープンソースのグループによって更新されてるから、って態度なんだけど。

220:デフォルトの名無しさん
16/09/03 14:26:14.91 bZbzbaoD.net
面白いのが居るね。
制御系をやらせてみたいなwww

221: ◆SEdFBOkLSw
16/09/03 14:28:46.36 WfmCkwdk.net
>>216
ソースコード見ると言うよりも、
動かん、スペックシート送れって言ってみ?
無駄の多いMSDNみたいなクソみたいなの送ってくるから。
それでもおかしいとなると、人間よこせ、確認しろって言って、
確認後KB作ってくれるよ。
.net 2.0になりたての頃よく呼んだ。
いずれにせよ、ソースを見ずに、中身は理解できるし、おかしければ治る。
まぁ、そんなことした事ないんだろうけど(笑)

222:デフォルトの名無しさん
16/09/03 14:36:29.05 EZVA2rF2.net
> Edgeに関しては撒くKBでコントロールできる、
俺をどうやってKBでコントロールする気だ?w
ウェブの世界っていうのは世界中の人間を相手にしてる。
コントールするのは不可能という大前提がある。
この大前提は、お前の一存で決めることは不可能な絶対条件。
お前にはこの世界の仕事は無理だよw
> その後の保証が要るなら保守契約結んでもらうだけじゃん?
> こっちが保証するのは、要件定義どおりに決めた結果でしかないし、検収印もらったらそれで良い話。
だからbabel使って変換したソースコードが、こっちが保証しているブラウザで
動けばそれでおしまいってだけなんだが?お前が言っていることの範囲内だろ。
当たり前だがbabelはソースコードを変換するだけで納品物は変換されたソースコードだ。
だからbabelが勝手にバージョンアップすることはない。babelが原因で動かなくなることはない。

> 世の中に存在するスマホを全部列挙してもらわないと、その9割なんか定義できんだろ。
Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
その作業をどちらがやるかは客と相談して決めること。
> うん、得体のしれないポリフィル、に対して言ってた。
ポリフィルはすべてソースコード公開されてるから
ブラックボックスじゃないなwwww
で、ブラックボックスって何の話?w

223:デフォルトの名無しさん
16/09/03 14:37:53.45 EZVA2rF2.net
>>218
> 面白いのが居るね。
> 制御系をやらせてみたいなwww
制御系は特許の塊だから、ブラックボックスのまま
使う必要があるだろうね。

ブラックボックスだから保証できません!
だからブラックボックスの環境では仕事できません!
じゃだめなんだよね。
ブラックボックスがあるという前提で
どこまで保証できるか?できないかを
はっきりさせるのが仕事。

224: ◆SEdFBOkLSw
16/09/03 14:38:54.38 WfmCkwdk.net
>>218
死屍累々だぞこの調子だと。
でも未だに業界的に変なの動いてるからな。
俺もCバスはそろそろ捨ててほしいと思うが、思うだけであって実際問題は金かかるからな。リプレイス待ち案件。
そういうのを見た上で、それでも、彼は最新のコードを使えば大丈夫だと思っているに違いないよ。
>>220
うん、だから、イントラの話しであって、Webの話じゃないじゃん。
で、その上で、お前の開発への考え方聞いて、Webってそんなもんなんだな()って言ってんの。理解できる?
ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
読む工数は誰かくれんの?

225:デフォルトの名無しさん
16/09/03 14:39:52.29 EZVA2rF2.net
>>219
> 確認後KB作ってくれるよ。
いや、KB作って終わりじゃないだろ・・・・
ウェブの世界では多くの人と環境を相手してる。
という変えられない絶対条件があるんだよ。
その条件で仕事しないといけないの。
KBあればばっちりだ!じゃない。それを世界中の人に使わせないことには
お前のやり方じゃ仕事できんだろ。つまりそのやり方は破綻してるんだよ。

226:デフォルトの名無しさん
16/09/03 14:42:29.94 EZVA2rF2.net
>>222
> うん、だから、イントラの話しであって、Webの話じゃないじゃん。
だからお前は「ウェブ程度」のことができないって結論なの。
一度世界中の人と環境を相手に仕事してごらん?w
> ブラックボックスじゃない、は読んだあとわかるんだよね。それまでは依然としてブラックボックスだよ。
> 読む工数は誰かくれんの?
何を読む工数?
ChromeやFirefoxはブラックボックじゃなくて
お前はそれを読んでるんだろ?
その工数を誰かがくれたんだろ?
マッチポンプかw

ブラックボックスは駄目だ!ソースコード読まなきゃ!
→ ソースコード読む工数は誰がくれるんだ!
じゃあブラックボックスでやれよw

227: ◆SEdFBOkLSw
16/09/03 14:42:49.83 WfmCkwdk.net
客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
9割、が要件じゃないような。
納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
即切ったわ。
>>221
NDAさんはどこ行くんだよ。

228: ◆SEdFBOkLSw
16/09/03 14:45:38.93 WfmCkwdk.net
>>224
Web程度、って言うほどの事でもないような。
Web屋には一目置いてるけど、結局こういう精神性なのか、と残念に思ってる所だけど。
世界中の人は相手にしてるよ。割と。
FireFoxとchromeは読んでるよ。いわば環境じゃん。

229:デフォルトの名無しさん
16/09/03 14:46:43.87 EZVA2rF2.net
>>225
> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
はぁ。いっつもこいつそうだよ。
俺が以下の文脈で「相談」って言ったら、
> Andorid 4.0以上のスマホという条件があれば、全部列挙することはできるだろw
> その作業をどちらがやるかは客と相談して決めること。
その「相談」だけを抜き出して、別の意味で使うんだよ。
卑怯だよねw

> 客と相談して決める事なら、決めた結果が要件定義に反映する内容であって、
> 9割、が要件じゃないような。
9割は客が決めた要件。相談して決めていない。俺が言って「相談」とはAndoroid4.0以上のスマホの列挙作業を誰がやるかだ。

230:デフォルトの名無しさん
16/09/03 14:48:21.76 EZVA2rF2.net
>>226
> FireFoxとchromeは読んでるよ
その工数は誰が出してると思ってるんだ?
じゃあ、FirefoxでPromiseを定義している
ソースコードはどれだい?みたいな質問に
答えられるはずだよな。
一応証拠として聞いておこうか?

231:デフォルトの名無しさん
16/09/03 14:48:57.81 EZVA2rF2.net
言っとくが読むっていうのはファイルを探すことじゃないぞ
その中身まで理解していなければ読んだことにはならない。

232: ◆SEdFBOkLSw
16/09/03 14:49:16.41 WfmCkwdk.net
知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
ブラックボックスのまま、ってどういう事かわからん。
エラッタかどうか挙動を確かめる行為すら、既に解析行為だろ。

233:デフォルトの名無しさん
16/09/03 14:50:05.16 EZVA2rF2.net
>>225
> 納品はバベったコード、で、改修させてえらい工数見積もられたことあるな。
なんでだ? babelは単なるES6なんだが?
そのES6のコードをbabelで変換せずに
納品すればいいだけじゃねーかw

234: ◆SEdFBOkLSw
16/09/03 14:50:24.49 WfmCkwdk.net
>>228
何の噛みつき方かわからんよ。
そりゃ業務知識だからほいほい言うわけないじゃん。

235:デフォルトの名無しさん
16/09/03 14:50:48.72 EZVA2rF2.net
>>230
> 知財かどうかなんて、APIが知財かどうかすら関係するんだから、弁理士弁護士案件だろ。
> ブラックボックスのまま、ってどういう事かわからん。
そもそもお前が、ブラックボックスって話を始めたよな?
マッチポンプかwwww

236:デフォルトの名無しさん
16/09/03 14:51:38.25 EZVA2rF2.net
>>232
> そりゃ業務知識だからほいほい言うわけないじゃん。
Promiseのソースコードがどれかって質問しただけで、
業務知識(?)なんか聞いてませんよw

237: ◆SEdFBOkLSw
16/09/03 14:51:58.07 WfmCkwdk.net
>>231
請け先に言えw
babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
バイナリ書かせてる時代にはよくあった話だけど、またこれかと。

238: ◆SEdFBOkLSw
16/09/03 14:52:14.35 WfmCkwdk.net
>>233
お前頭おかしいだろ。

239: ◆SEdFBOkLSw
16/09/03 14:52:38.97 WfmCkwdk.net
>>234
仕事で調べたことは、会社の資産な。

240:デフォルトの名無しさん
16/09/03 14:53:23.42 aPmwwe34.net
>>222
> Cバス
脱線するが、君はそっち系なのか?酷く懐かしすぎる名前だが。
新商品なんて出てるのか?母艦が手に入らないと思うが。

241:デフォルトの名無しさん
16/09/03 14:53:30.60 EZVA2rF2.net
>>235
> babel変換元を納品してないが故に、うち用にも使ってる社内ライブラリがうんぬん、その当時のうんぬん、で結果そうなったんだよ。
はぁ? それって実行ファイルのバイナリ(exeファイル)だけを納品して
ソースコードを納品してないという、ちゃんとした仕事をしてない所に
ありがちな話ってだけじゃねーか。
それは明らかにbabelの問題じゃねーよw

242:デフォルトの名無しさん
16/09/03 14:57:15.99 EZVA2rF2.net
>>237
> 仕事で調べたことは、会社の資産な。
それは違うぞw
データベースの著作権の話でもぐぐれ。
内容が非公開情報であるとか特殊な条件が揃わない限り、
それは会社の資産にはならない。
(当然オープンソースのChromeのソースコードは非公開ではない)

243: ◆SEdFBOkLSw
16/09/03 14:57:18.23 YIu9WVDu.net
>>238
80年生まれのくせにそのへん触れるか故にオッサン扱いされてるけど、
機械から人体から得体のしれない設備まで手広く通信周りやってるよ。
手に入らんから困るんよ。もう共食いも良いところだよ。
捨てないで!ってアナウンスするレベル。

244:デフォルトの名無しさん
16/09/03 14:59:04.36 EZVA2rF2.net
まあなんてていうか、
◆SE って変化させる能力が
極端に劣ってるみたいねw

245: ◆SEdFBOkLSw
16/09/03 15:00:35.21 YIu9WVDu.net
>>239
babelのせいじゃない?うん、まぁ、その会社がbabelをつかったせい、であってbabelに罪はないのは確かだよ。
だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。
>>240
それは著作権というか、それこそ知財の問題であって、
そうじゃなくて俺なり社内のだれなりが工数使って調べたことは、資産なの。
お前働いた事無いの?

246:デフォルトの名無しさん
16/09/03 15:01:00.03 EZVA2rF2.net
>>241
え? Cバスの中身、ブラックボックスじゃなくて
全部知り尽くしてるんでしょ?
自分で作れば良いんじゃないですかねぇw

247: ◆SEdFBOkLSw
16/09/03 15:01:30.94 YIu9WVDu.net
>>242
そりゃ、敢えて変化させないからな。
それで良いと思ってるよ。

248: ◆SEdFBOkLSw
16/09/03 15:01:54.37 YIu9WVDu.net
>>244
誰がどの金で?
お前バカなの?

249:デフォルトの名無しさん
16/09/03 15:02:36.24 EZVA2rF2.net
>>243
> だから、ネイティブでES6で書くか、古いJavaScript書くかどっちかにして、って話なんだけど。
ネイティブでES6を書くという結論でいいだろw

そして納品してから1ヶ月後にな、やっぱり古いブラウザでも動かしたいって
客に言われたらな、そんときにbabel使って変換してやれば良いんやで?

250:デフォルトの名無しさん
16/09/03 15:02:47.73 aPmwwe34.net
>>241
ちなみにCバスにこだわる理由は?
まあ色々便利だとは聞いているが、保守部品なら仕方ないとして、新規商品で使う必要はない。
今時ならarduinoなりラズパイみたいな奴にに仕込んでイーサで通信する方が楽なはずだが。

251:デフォルトの名無しさん
16/09/03 15:03:41.91 EZVA2rF2.net
>>246
馬鹿はお前だ。
ブラックボックスが嫌なら金がかかる。
金がかからないならばブラックボックスのままでやる
ブラックボックスのままテストをしっかりやれば
それで十分だって話をしてるんだよ。

252:デフォルトの名無しさん
16/09/03 15:05:42.57 EZVA2rF2.net
俺は、ブラックボックスを許さないと言ったお前の>>201の発言を
否定しているだけ。
つまりお前は金がかかるからブラックボックスのままでやるんだろ?

253:デフォルトの名無しさん
16/09/03 15:07:52.79 EZVA2rF2.net
つーか組み込み系でもCバスを使った製品の中身が
変わることだってあるんだが。
同じ製品であっても、中身を変えることがある。
中身にこだわるな。中身が違っていたとしても、
テストに合格すればそれは問題ない。

254: ◆SEdFBOkLSw
16/09/03 15:09:41.97 YIu9WVDu.net
>>247
え?うん、ネイティブで動くものに対してES6で書くことは全く否定してないけど、どしたの?
やっぱり古いブラウザで動かしたい、は多分断るな。
余程言われても、babelは使わずに直すと思うよ。
>>248
新商品で積極的には使わないよ。
リプレイスするなら新しい組込の仕様品あるからそっちで構築するんだけど、
2台壊れたから!とかそう言うの多い。
法改正で制度上この数値が残らないと困るからこれだけDBに残して!とか。
上的にはSIになったから単位だけ、で改修受けたのがマズったなって思ってるとのこと。
Cバスにこだわると言うより、何故か他社製旋盤に相乗りしてる、とか、いにしえの何かがあるらしいよ。自分が幼児の頃の歴史を紐解いて良いもの出てきた事無いから積極的には聞かん。

255: ◆SEdFBOkLSw
16/09/03 15:12:09.68 YIu9WVDu.net
>>249
しっかりやれば、が定義できないじゃん。
見た目上、データ上正しければそれは正しいデータだ、って言う根拠。
>>250
逆。
金がかかるから、ブラックボックスを使わんのだよ。

256: ◆SEdFBOkLSw
16/09/03 15:12:51.42 YIu9WVDu.net
>>251
何を言うてるかわからん。
ソリューション売りしてんだよ。

257:デフォルトの名無しさん
16/09/03 15:18:04.76 EZVA2rF2.net
>>252
> やっぱり古いブラウザで動かしたい、は多分断るな。
> 余程言われても、babelは使わずに直すと思うよ。
そのコスト誰がだすん?w
babel使ったら簡単に対応できる。
テストコードがあるからそのテストを通せば良い。
babelはブラックボックスではないがブラックボックスと考え
中身がどうなっても、テストが動けば良い。そうだろう?
いざとなったら中身を確認することもできる。
どうせ古いIEへの対応でIEはブラックボックス
IEとFirefoxとChromeで動きも違う。バージョンごとで動きも違う。
ホワイトボックスとして扱うことはコストの点から実質不可能。
問題はコストだよ。最新のES6を使ってコストを減らせ
babelを使えば古いブラウザに対応するコストも減らせる。

258:デフォルトの名無しさん
16/09/03 15:18:46.25 EZVA2rF2.net
>>254
> 何を言うてるかわからん。
他の人に聞きたい。
> ソリューション売りしてんだよ。
↑これ何を言うてるか分かる人おる?w

259:デフォルトの名無しさん
16/09/03 15:19:58.56 EZVA2rF2.net
>>253
> 金がかかるから、ブラックボックスを使わんのだよ。
じゃあ、ブラックボックスがあったら、
それに相当するものを自分で作るわけですよね?
その金誰が出すの?w

はぁ、ブラックボックスがあるという
絶対変えられない世界に生きてるって分かってないのかな?
IEやWindowsのソースコードは保守契約結んでも見れません(笑)

260:デフォルトの名無しさん
16/09/03 15:20:23.76 EZVA2rF2.net
> やっぱり古いブラウザで動かしたい、は多分断るな。
能力がないから

261:デフォルトの名無しさん
16/09/03 15:23:04.80 aPmwwe34.net
>>252
なるほど何となく状況は想像がついた。回答ありがとう。

262:デフォルトの名無しさん
16/09/03 15:23:16.22 EZVA2rF2.net
古いブラウザ古いブラウザっていうけど、
最新のSafari 9でもArrow functionsに対応していない。
URLリンク(caniuse.com)
書いてあるSafari 10はまだリリースされてません

263:デフォルトの名無しさん
16/09/03 15:25:34.19 EZVA2rF2.net
最新のブラウザだけを相手にする場合でも
このブラウザはこのES6の機能に対応している?していない?
って考えて特定のブラウザのために使うのをやめるよりも
babel使ってES6の機能はどのブラウザでも使える。
ただし一部完璧じゃないものがある。
って考える方がはるかにコストが低いんだわ。

Android 4.0以上という要件だと、それらの
ブラウザを全部集めないとテストできないからね。

264: ◆SEdFBOkLSw
16/09/03 15:50:53.07 YIu9WVDu.net
「簡単に対応が出来る」
ようわからんな。
対応はできてもテストの金がかかる事は否定しないとか。
メンツの勝負になってない?
そういうメンツの勝負であれば、お前の勝ちで良いけど。
ホワイトボックスとして扱う事はコスト上不可能、ってそれくらいのコストしかかけない製品作んないから良いんだよ。
変な言い方で、敢えて語弊のある言い方すると、
高いほう、全て内製が良いとすら言われる製品だからお前がいってる製品とは多分だいぶ違うので、その辺の予算とは乖離あると思うわ。
ただその金の根拠は必要だけど。
内製良いよ。ライブラリに左右されんから。
コンパイラと処理系自体すら昔は作ってたしな。
そろそろまた元号でテキトーにやってる会社は死に目見るだろうし。

265:デフォルトの名無しさん
16/09/03 15:53:21.77 EZVA2rF2.net
>>262
> 対応はできてもテストの金がかかる事は否定しないとか。
そこはbabelと関係ないからだよ。
babelを使っても使わなくてもテストはしないといけないだろ。
テスト内容自体は同じ。

266:デフォルトの名無しさん
16/09/03 15:53:47.63 EZVA2rF2.net
>>262
> 内製良いよ。ライブラリに左右されんから。
そのコストは誰が出すと思ってるんだ?w

267: ◆SEdFBOkLSw
16/09/03 15:57:26.09 YIu9WVDu.net
>>263
え?うん。
なら、最初から使わずに書けばいいんでは?って話だけど。
>>264
客。
あのさあ、何が言いたいの?
babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
もうその話題には触れん。
何が自分の苛立ちの原点なの?否定されたところ?正しいと思ってるところが理解されないところ?

268:デフォルトの名無しさん
16/09/03 15:58:34.24 EZVA2rF2.net
>>265
> なら、最初から使わずに書けばいいんでは?って話だけど。
図式化しないと理解できんのかな?w

[ 開発 ] + [ テスト ]
テストは同じ。開発はbabelを使ったほうが簡単になる。

269:デフォルトの名無しさん
16/09/03 15:59:48.40 EZVA2rF2.net
>>265
> babelは完璧なES6で、AltJSとは一線を画す物だ、とエヴァンジェリスト気取りたいなら、それでいいよ。
だからbabelはトランスパイラ。言語はES6(JavaScript)
AltJSとはJavaScriptではない言語のことなんだから
その言葉自体が間違ってんの。

270:デフォルトの名無しさん
16/09/03 16:00:56.87 EZVA2rF2.net
>>265
なに? コストは客が払うだって!
ならbabel使ってもコストは客に払わせばいいじゃないかw
もっともbable使ったほうがコストは下がるけどな。

271:デフォルトの名無しさん
16/09/03 16:04:48.79 EZVA2rF2.net
どうせbabelはES6に完全対応してないと言ってくるだろうから
先に反論しておくと、最新版Safariも完全対応してないw
ブラウザごとにコードを変えるっていうのはコストがかかる。
どうせ客がコストを払うから知ったことじゃないっていうんだろうけどさw
ブラウザがバージョンも含めればたくさんあって
ウェブの世界では特定のブラウザとバージョンを指定できないのだから
使用されているほぼ全てに対応しないといけない。
それごとにコードを変えるなんてやってられないので、
babelを使う。babelを使うとそれぞれのブラウザの差が減る。
そのため単一のコードで多くのブラウザに対応できるのでコストも減る。
どうせコストは客が払うから、いくらかかっても
知ったことじゃないって考えの人にはわからないかw

272:デフォルトの名無しさん
16/09/03 16:16:36.11 EZVA2rF2.net
◆SE に言っておくけど、
お前、頭の固いおっさんに育ってしまったな
リアルで誰も言ってくれないだろうから俺が言ってあげるよ。
お前は子供の頃誰もが、ああはなりたくないと思ってる
頭の固いただのおっさん。
変化することをやめ、挑戦することをやめ、
現状維持。これ以上何もしたくない。
そういう、頭の固いおっさん。

273: ◆SEdFBOkLSw
16/09/03 16:30:32.32 P8EZ6WkE.net
研究開発は、研究開発費でしてるけどね。
変化させない事と、変化させる事、ひいては、運用する事、改善する事は全部ひとつながりだけど、全部それぞれが違うよ。
何かを変化させない事が別の何かを変化させることだったり、何かを変化させて何かを変化させない事もあるし、
そんな革新、革新!と騒いでも、何が革新か自体よくわからなくなるよ、そのうち。
今まであった物に、新しい名前をつけると割としっくりくるようなもんと同じ。今俺が何ヤジってるかはわかると思うけど。

274:デフォルトの名無しさん
16/09/03 16:35:14.63 EZVA2rF2.net
◆SE が今度は研究開発とか
また関係ない話をしだしたぞw
お前と話をしてると話がまとまらないって
よく言われるだろwww

275:デフォルトの名無しさん
16/09/03 16:36:40.92 EZVA2rF2.net
俺が言ってるのは、◆SE 自身に
変える能力がないってこと。
個人の能力だよ。
あ、だから変えるのは研究所とかがやってくれることで
俺には関係ないって発想につながってるのかwww

276: ◆SEdFBOkLSw
16/09/03 16:40:21.73 P8EZ6WkE.net
そもそも、立ち位置の問題であって、
それは処理系作ってた人間が一番わかってんだけどなぁ。
同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、そのチューニング、このコンパイラだと無意味だからオプティマイザにまかせましょ、みたいな話に近い。
そのうち、C++が出来て、でもまだCへのトランスパイラで、そのうち、STLだ、いや、これは標準になったんだ、って無駄なやりとりがあった時代を知らんのだろうな。俺もリアルタイムじゃないけど。

277: ◆SEdFBOkLSw
16/09/03 16:41:21.34 P8EZ6WkE.net
>>273
知らんがな。。どんな仕事をしてるんだ、と言うから仕事の話をできる範囲で話したんじゃん。
個人的には色々しとるよ。

278: ◆SEdFBOkLSw
16/09/03 16:43:51.70 P8EZ6WkE.net
その上で、最初の方のレスに戻るけど、
そういう先端()の人間が殲滅すべきものはbabelであって、babel無けりゃ古いブラウザも死んでいくんじゃねえの?本来死んでる物を活かすからそうなるんじゃねえの?みたいな話してたんじゃん。
だからネイティブで書くことには何の問題も無いって言ってるんだけど。

279: ◆SEdFBOkLSw
16/09/03 16:44:46.76 P8EZ6WkE.net
なんかプライド傷つけたんならすまんな。
そんじゃ。

280:デフォルトの名無しさん
16/09/03 16:46:08.31 EZVA2rF2.net
>>274
> 同じ正しいCのソースでも何でコンパイルするかで割と意味が違ったり、
やっぱり、同じソースでC言語の仕様の範囲なのに、
コンパイルされた結果が違うから動作まで違うんですよね?w
でもbabelはES6で書いたコードをES5に変換するだけです。
だから動作は同じです。

281:デフォルトの名無しさん
16/09/03 16:46:40.99 EZVA2rF2.net
>>277
プライド? 傷ついたのはお前じゃね?
お前、俺が傷つくようなこと言ってないじゃんw

282:デフォルトの名無しさん
16/09/03 16:52:59.71 EZVA2rF2.net
>>276
お前はネイティブで書きたいから、古いブラウザに対応するために
ES5でコードを書くって言ったばかりじゃんw
じゃあ今まさにそのES5のコードは増えていってるわけで、ES6へ変化できないってことになる。
えとさ、コードをES6用に書き換えるのにもコストは掛かるんだよ。
どうせ金は客が出すからって考えなんだろうけど。
babelを使っていれば、今すぐES6ネイティブでコードを書ける。
ES5の対応を切るのはbabelでES6からES5への変換プリセットをOFFにするだけでいい。
babelを使っていれば、ES6をブラウザでネイティブに動かす対応は一瞬で終わる。(当然だがテストは常に行われている)
それがAltJSとは全然立場が違うって話に繋がる。
AltJSで書けば、AltJSの設定をOFFにしても動かずコード書き換えが必要だからね。
重要なのは今ES5のコードを減らすこと。
対応ブラウザをどうするかは顧客の要求できまることだから
こっちがあれこれ言えることではない。

283:デフォルトの名無しさん
16/09/03 17:16:40.84 AuZUWRpv.net
少なくともブラウザのソースを見ないと!っていうのは愚の骨頂だな

284:デフォルトの名無しさん
16/09/03 17:32:29.46 EZVA2rF2.net
その言い方だとまたトンチンカンなレスしてきそうだがw

285:デフォルトの名無しさん
16/09/03 17:48:47.28 N47o0j5/.net
>>191
使わなければいいという返しが来るとは思わなかった。
君はアレだね。できればES6で書きたいな、でも古いブラウザのしがらみから抜けられないな、
全く使えないよりも使える方がマシ、だから悪くなりようがないという考えなのだろう。
もちろんそれもあるよ。でもね、状況は動いてるのよ。
2016年になるまでなら、対応途中のモダンブラウザも含めて、できるだけ対応させるという
1つのより良くするための解でしか無かったけれど、
今ES6対応ブラウザが出揃ってきた状態でその中で対応を広げる役目としてのbabelを考えると、
億劫な点が出てくるというのは分かるだろう?
勘違いしてほしくないけれど、babalが悪いと言ってるんじゃないよ。
babelで生成されるコードのレベルが、ES6の時代なので書きま~すっていう意気込みとは合わないってこと。
それでここからが大事な点になるのだけど、
babelのES6からの乖離は部分部分で見ると確かに小さい。SymbolやProxyを除いたとして、
それらを寄せ集めるともしかしたら1%と言えるくらいしかないのかもしれない。
でもね、各ブラウザstable版に機能が実装されていく時は、基本的には安定した機能が丸ごと有効になるわけで、
機能があるかないか程度にしか気にしなくていいのよ。
でもね、babelのように細かな非互換が多いと、
それは開発版ブラウザに機能が実装されてる最中で、フラグで有効化してES6の振る舞いを実験していた
1年前の状態さながらなのよ。

286:デフォルトの名無しさん
16/09/03 17:49:36.57 N47o0j5/.net
>>191
1年前でもフラグを全て有効にすれば、世にあるES6対応度テストでは9割以上取れていた。
でもね、じゃあ今年に入ってから俺がES5以前気にしないで書いたコードが1年前のそのブラウザで動くかというと、
精々8割くらいしか動かないと思う。そういう意味で、babelのコードは8割といったのよ。
babalを使っていれば常に最新を追えるような感覚もするかもしれない。
それは、確かに今ES2017以上の機能をES2016対応実装向けのコードとして書きだした場合は正しい。
でもね、今ES2015のしっかりした実装がある中、ES5向けにコードを書き出す場合と言うのは、
何時までたってもハッカーが時期早々と揶揄されながら開発版ブラウザでフラグを有効にして、
不安定で未完成なES6で遊んでいた2016年より前のもやもやしていた状況のままだということ。
つまり時代遅れなのに時期早々感を負わないといけないという欠点があるわけ。
もちろんbabelが悪いわけではないし、対応を広げたいという前提のもとでなら、babelを使うという結論しかない。ES6はオマケなわけだ。
でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。
切り捨てるのはまだ早いと思うかも知れないが、意外とそうでもない。
IE8以前をJS OFFと同じとみなして、もう2段階くらい設定してプログレッシブ・エンハンスメントをするということがあるが、
ES5対応環境もピンからキリまで広くなりすぎたし、ここらで思い切ってJS OFF側にまとめて、
ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。

287:デフォルトの名無しさん
16/09/03 18:08:14.44 EZVA2rF2.net
>>283
あんたは重要な点を見落としているね。
あんたが言っているのはすべてbabelを使わなうても当てはまることなんだよ。
ブラウザ間の互換性は完璧ではない。
あるブラウザには搭載されていて、あるブラウザには搭載されていない。
そういう機能がある。
babelはその機能の差を減らすものでしか無い。

話は単純。
1. ブラウザの間での違いはあるしなくならない。(もちろんbabelを使わない場合の話)
2. babelを使わないならばブラウザ間での違いが大きい。
3. babelを使うとブラウザ間の違いが減る。
これを前提の話をしよう。

288:デフォルトの名無しさん
16/09/03 18:13:17.33 EZVA2rF2.net
babelを使うとブラウザ間の違いが減る。
という前提で話をすると、
ES6を完全に搭載していないブラウザが多く使われている今は
babelによって、その機能の差が大きく減る。
そしてその次はES2016、ES2017と話は進んでいく。
当然今のブラウザはES2016、ES2017の対応は少ないだろう。
ある時それらに対応したブラウザが一つだけでた。
となるとやっぱりブラウザの間の違いがでてくる。
そしてまた新しい仕様がでてきて、それに対応しているのはどれ?
という状況がずっと続く。
ブラウザの数は多い。バージョンアップの頻度も高い。
だからブラウザ任せでは機能の差を埋めることは難しい。
そこでbabelがでてくる。babelを使うことで機能の差は減る。

289:デフォルトの名無しさん
16/09/03 18:16:26.40 EZVA2rF2.net
>>284
> でも、モダンで良いコードを書きたいという気持ちが強いなら、古く取り残された環境を切り捨てる勇気も必要だと思う。
モダンで書くよりも重要なのは、今あるブラウザで動かすこと。
そしてその次が開発コストを下げること。
多種多様なブラウザを相手にしていたら開発コストは下がらない。
だからbabelを使ってブラウザ間の違いを減らして
コストを下げることが重要になる。
その次だよモダンで書くことでコストを下げるという理由がくるのは。
優先順位は低い。だからbabelで対応していないものは使わないと言う
選択肢が当然成り立つ。
そして「babelで対応していない機能」は「babelを使わなくてもブラウザが対応した時」に使えばよかろう?
ES6の機能をすべて使うことが目的じゃないんだからさ。

290:デフォルトの名無しさん
16/09/03 18:18:01.40 EZVA2rF2.net
>>284
> ES6対応以降のモダンなブラウザとの二極にするというのはある案だと思っているし、俺のところは今年度からそうしてる。
Safari最新版はアロー関数に対応していないんだが?

291:デフォルトの名無しさん
16/09/03 19:21:50.91 N47o0j5/.net
>>288
Safariはモダンブラウザに含めていない。
ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
他は眼中にない。

292:デフォルトの名無しさん
16/09/03 19:27:20.93 EZVA2rF2.net
>>289
じゃあスマホは?
例えばAndroid 4系はアロー関数に対応していない。
URLリンク(caniuse.com)

293:デフォルトの名無しさん
16/09/03 19:32:55.57 EZVA2rF2.net
Chrome、Firefox、Edgeということは
URLリンク(www.netmarketshare.com)
ブラウザの66.82%にしか対応していません。
モバイルの場合は
URLリンク(www.netmarketshare.com)
Chrome、Firefox、Edgeの53.65%にしか対応していませんってことだよね。
(Android Browserを入れても62.22%)

294:デフォルトの名無しさん
16/09/03 19:35:23.00 N47o0j5/.net
>>290
いや、逆だよ。超逆。
Androidの古いブラウザを切り捨てられる時期というのが強い。
Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
一番問題あるのはSafariくらいで、それももうすぐだろう。
誤解無いように書くが、
上でも言ったようにプログレッシブ・エンハンスメントだし、
当然全てのコードを書き換えたわけではない。
今年度から新しく初めて長くメンテしていくサービスでのコードは原則そういうポリシーになっただけ。
なので問題は無い。

295:デフォルトの名無しさん
16/09/03 19:40:30.57 EZVA2rF2.net
>>292
意味がわからん。
重要なのは切り捨てるタイミングと
コードを新しくするタイミングの問題。
babelを使うと古いブラウザを切り捨てるタイミングを
自由にコントロールできる。
そして古いブラウザを切り捨てるよりも前にコードを新しくできる。
つまり古いブラウザを切り捨てたときにはすでにコードは新しくなってる。
あんた、今、古いブラウザを切り捨てたのに、
古いコードを抱えてるじゃん。
> Android 4系と言っても、実は後半くらいか徐々に、終盤は大体、
> ベンダーがChrome載せててデフォルトにしてるから、実は問題ないんだよ。
だからシェアのリストだしただろ? ChromeとAndroid Browserを
入れたとしても62.22%にしかならない。

296: ◆SEdFBOkLSw
16/09/03 20:12:11.53 YIu9WVDu.net
俺以外とも噛み合ってねえじゃんw
>>284は説明上手いな。

297:デフォルトの名無しさん
16/09/03 20:15:24.73 EZVA2rF2.net
おい、馬鹿(◆SE)がまた来たぞw

298:デフォルトの名無しさん
16/09/03 20:18:55.72 EZVA2rF2.net
重要なのは、ES6対応度テストで合格する割合じゃないんだよね。
どれだけ多くの世間で使われているブラウザに対応できるか。
俺が一番重要視してるのは、より実用的なのはどれかだよ。
ES6対応度テストで9割合格していても、
それが今使われてるブラウザの6割じゃ役に立たない。
ES6対応度テストで8割でもそれを使うことで
ブラウザの9割で動かせるほうが重要。

299:デフォルトの名無しさん
16/09/03 20:22:54.41 N47o0j5/.net
>>293
>>babelを使うと古いブラウザを切り捨てるタイミングを
>>自由にコントロールできる。
いやー一年前まではそう思ってましたよ。
上でも書いたけれど、君の発言を見てると一年前二年前の若い自分を思い出す。
でもそうじゃなかったから使ってないの。まだ分からない?
理由は大体書いたよ。
babelただ使うだけで使わないよりも『より良くなる』時代ってのはもう終わったの。
あんまり踏み込んで欲しくないので書かなかったことを少しだけ言うと、
ウチではES6基本というのは実は嘘。今はもうES2016基本にしかけてる。
で、そのために、『より良くする』ためにbabelではないがトランスパイラ+ポリフィル使ってる。
が、これもES2016の重箱の角はつつけていないので、本当は使わないで済むなら使いたくないのよ。
モダンなコードを書くメリットと、重箱の角を心の隅で気にしないといけないコストと、若干の好奇心のつり合いを見て今はこういう形になっている。
だから本当に100%ES2016で開放された気分で書けてるのかというとそうではない。
あれだけ変更の少ない2016->2015でもそうなんだよ?
babelのES5変換なんて満足できていたのは最初だけ、ブラウザの対応が未熟だった頃だけだよ。
当初君と同じ夢を見ていたウチのメンバーは一年くらいかけて
実は古いブラウザというしがらみから逃れるために、babelというしがらみに縋ってただけだって気がついたの。
今はbabel使って後から外�


300:キなんて夢物語だよ。黒歴史。 実はそういった試みで始めたものいくつかあったんだが、まともに活用しきれない。 多くは実らず捨てることになって、一部は泣きながらリファクタリングしてる最中。



301:デフォルトの名無しさん
16/09/03 20:24:00.35 N47o0j5/.net
>>293
でもまあ、ふと思ったけど、俺も今のbabelは触ってないからな。精々半年前の感覚のままだ。
今はもしかしたら殆ど完璧になってて、憂いが減ってんのかな?
そこはちょっと反省。
どうしてbabelで旧ブラウザの対応するのを見限ったかって言うとね、
そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
でも今babelの対応状況改めて見てみたらやっぱり無理だ。
マイナーかもしれないけれど、毎度一箇所は使うだろう点が残ってる。
やっぱり痛いのはプロトタイプの設定や、サブクラス化かなぁ。
めっちゃ使うということは無いが、ここらを我慢するのはやっぱりES6使ってるとは俺は思えないわ。

302:デフォルトの名無しさん
16/09/03 20:26:29.35 EZVA2rF2.net
>>297
あんた自分で言ったセリフ思い出してね。
> Safariはモダンブラウザに含めていない。
> ウチではずっとChrome第一Firefox第二、近頃はEdge第三。
Safariに対応できてない、IEに対応できてない。
対応できるブラウザは6割。
それがお前が今できることの限界だよ。

303: ◆SEdFBOkLSw
16/09/03 20:27:46.15 YIu9WVDu.net
>>295
無意味な中傷せんと、皆の意見を真摯に聞いとけ。
だいたい同じ事言ってる。
あとな、動作が同じって、それは違うからな。
いくら時間がかかっても良いから同じ結果を出します、ってのは、結果同じでも動作違うからな。
万回以上呼ばれだしたら体感で速度変わるし。
>>278に対してだけど。

304:デフォルトの名無しさん
16/09/03 20:28:02.67 EZVA2rF2.net
>>298
> そもそも、babelのバグや細かい非互換のせいで大きいコードがしばしばまともに通らなかったからだよ。
> だから、笑えるけどbabelで通るように書き換えてたの。当然歪になってるから使い回せない、使い回したくないの。
だったらbabelで通るように書き換えないで、
その機能を使わなければいいだけでは?
だってそもそもbabelを使わないならば
その機能は使えないんだからさ。
その機能を使わないと言う選択肢をとることはできるはずだ。

305:デフォルトの名無しさん
16/09/03 20:28:44.55 EZVA2rF2.net
>>300
今はお前と話はしてない。
お前のみんなの扱いはすでに決まってるんだよ。
おバカさんw

306: ◆SEdFBOkLSw
16/09/03 20:30:06.63 YIu9WVDu.net
>>298
そう。だから、結局同じ構文で書いた、ただのbabelって処理系用の言語なんよね。
>>301
それは、babel用のコードを書くに、他ならなくないか?
babel無視したら、そんな回避コード書かんで良いんだから。
俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。

307:デフォルトの名無しさん
16/09/03 20:30:30.26 EZVA2rF2.net
>>297
言ってることが抽象的すぎて
具体例が一つもないよね。
問題があるという前提で話をしているが、
そもそも、お前が言う問題は本当にあるのか?って話。
まず、具体的な問題があることが前提だから
どういうときに問題があるのかを言ってくれないか?

308:デフォルトの名無しさん
16/09/03 20:31:13.84 EZVA2rF2.net
>>303
> それは、babel用のコードを書くに、他ならなくないか?
ぜんぜん違う。その言語はES6でそのまま動く
ES6用とbabel用に違いはない。

309: ◆SEdFBOkLSw
16/09/03 20:31:17.36 YIu9WVDu.net
>>302
お前の中だろ。
問題を極端に矮小化したり拡大解釈したり、一般化したり特殊化すんのは良くないぞ。

310:デフォルトの名無しさん
16/09/03 20:32:03.05 EZVA2rF2.net
> 俺が仕事でES5書いてるのとレベル全く変わらんじゃないか。
わざわざES6のコードを避けるほうが大変だろwww
どちらがどれだけ大変かの話をしてる。
babelを使えば、避ける必要性が大きく減る。

311:デフォルトの名無しさん
16/09/03 20:32:49.45 EZVA2rF2.net
>>306
あっちのスレでもお前、馬鹿にされてるじゃんwww
自覚しとけ。
お前は俺に反論できないことはたくさんあったが
それはお前にほとんどレスしてるだろw

312: ◆SEdFBOkLSw
16/09/03 20:33:04.45 YIu9WVDu.net
>>305
ES5もES6でそのまま動くよw
babel用に使えないものがあるから使わないのは、ES6のサブセットじゃん。
babel用に使えないものを避けて書いたのと、気にせず書いたES6は違うコードなんじゃねえの?

313: ◆SEdFBOkLSw
16/09/03 20:33:43.02 YIu9WVDu.net
>>308
明後日のレスだけして、それで答えた気になってたらしゃーないわ。

314: ◆SEdFBOkLSw
16/09/03 20:36:11.49 YIu9WVDu.net
>>307
避ける方が大変?なんだそりゃ。
言語仕様把握せずに開発してる訳でもあるまい。
規約が無い訳でもあるまい。
子供のバイトみたいな話しないでくれ。

315:デフォルトの名無しさん
16/09/03 20:37:02.13 EZVA2rF2.net
>>309
> ES6のサブセットじゃん。
ん? 各ブラウザのES6の実装度を知らないのかな?
どのブラウザでも使えるのはES6のサブセットでしか無いんだけど?

316:デフォルトの名無しさん
16/09/03 20:38:01.48 EZVA2rF2.net
>>311
> 避ける方が大変?なんだそりゃ。
そりゃそうだろ。
どのブラウザで、どの機能が使えるかをいちいち把握しないといけない。
お前アロー関数がSafariで使えないことを把握していたか?
そういった細かい機能を把握する必要がなくなる。

317:デフォルトの名無しさん
16/09/03 20:38:52.88 EZVA2rF2.net
言語仕様を把握していても、アロー関数がSafariで
動かないってことを知ることは出来ないんだよ。

318: ◆SEdFBOkLSw
16/09/03 20:41:04.47 YIu9WVDu.net
>>312
そうだね。
だから、ブラウザごとに要件定義すんじゃんね。
そこに、これまたbabelって処理系が入る、と。
お前の理屈破綻してるのわかる?
どこが、一つのES6で良いの?w
最大公約数で書けば良い、なら、
ホントに最大公約数で書けばいいじゃん。ES5。
要件定義できるなら、その最大公約数で書けばいいだけ。
中途半端に先端気取って無駄な事なの。

319:デフォルトの名無しさん
16/09/03 20:41:56.59 EZVA2rF2.net
ES6を完全サポートしているブラウザを100とすると、
babelを使わないと、
1~100までのすべてのブラウザを考慮しなければいけなくなる。
babelを使えば80以下のブラウザがすべて80にまで底上げされるから
80~100のブラウザだけを対応すれば良くなる。

320: ◆SEdFBOkLSw
16/09/03 20:43:55.93 YIu9WVDu.net
>>313
してたよ。
ついでに言うとOperaも対応してない。
Android標準ブラウザは4系でも全滅。IEも11でも使えない。

321: ◆SEdFBOkLSw
16/09/03 20:45:13.51 YIu9WVDu.net
>>316
ES5で書けば100のブラウザ相手に書けんじゃん。
底上げしたから、何もしなくて良いわけでもないし。
骨折り損。

322:デフォルトの名無しさん
16/09/03 20:45:14.45 N47o0j5/.net
>>299
何が言いたいのか、いやもう建設的な話し合いをする気は無いんだろうけど、
一応会話してみるか。
対応するときはES5で書く。それだけでしょ?
そして、その話は本題と関係ないでしょ?
古いブラウザを見限っていいから、Babelを使うなと言ってるんじゃないから。
古いブラウザを見限らないとしても、ウチではBabalは使わない。ただES5で書くだけ。
まさかウチではもう今年度からピュアES6しか書きませんと言ってるのだと思ってた?
誤解させてごめんね。
で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
ES6を使いたいから、後々外せばいいだけだから便利、な感覚でBabelを使うと怪我するよと言ってるの。
Babalを使うのなら、あくまでES_Babelというalt JSを使うんだという認識・覚悟で居たほうが正しい。
そして副題として、俺はそれは嫌ということ。ここは個人的な部分だし、環境なので異論は認めるし、批判は受け付けていない。
二極化提案については、まだ実験中で良し悪し分からず、オススメする気もなくポロッと言ってしまっただけだし、
あまり深入りしてほしくないのでこれ以上話したくない。

323:デフォルトの名無しさん
16/09/03 20:45:47.57 EZVA2rF2.net
>>315
> だから、ブラウザごとに要件定義すんじゃんね。
> そこに、これまたbabelって処理系が入る、と。
ブラウザは実行環境、
babelはトランスパイラ。
違うものを混ぜるなって何度も言っただろ。
お前はES6に対応していないブラウザを一つずつ何個も
この機能は使える?使えない?って悩んでいるのだろうが
babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
お前の言葉で言う最大公約数がES6に底上げされる。
最大公約数5よりも最大公約数10の方がいいだろw

324:デフォルトの名無しさん
16/09/03 20:46:33.45 N47o0j5/.net
おいおい……俺がちょっと推敲してる間に20も進むとか……

325:デフォルトの名無しさん
16/09/03 20:49:51.97 EZVA2rF2.net
>>319
なんか一人二役ご苦労さんって感じになってきたな。
わざとらしく大文字小文字を使い分けてるのかい?www
> 対応するときはES5で書く。それだけでしょ?
そのES5をES6に書き換えるコストは誰が払うんだ?ずっとES5のまま?
なんで可読性、メンテナンス性が低いコードを今のタイミングで量産するのさ?w
長期的なバージョンアップっていうのが考慮されてないぞ。
> で、本題はBabalの吐くコードはES_Babalであって、ES6とは遠からず近からずなものでしかないということ。
なんでそこでbabelの吐くコードを気にしないといけないのかわからん。
そもそもbabelの吐くコードはES5だ。ES_Babelなんてものはない。
babelは言語ではなくて単なるトランスパイラ。言語はES6そのもの

326:デフォルトの名無しさん
16/09/03 20:50:46.13 EZVA2rF2.net
>>318
> ES5で書けば100のブラウザ相手に書けんじゃん。
ただし可読性とメンテナンス性が低いコードになる。

327:デフォルトの名無しさん
16/09/03 20:52:05.59 EZVA2rF2.net
>>317
> ついでに言うとOperaも対応してない。
> Android標準ブラウザは4系でも全滅。IEも11でも使えない。
そっかー、babel使ってテストにもちゃんと通って
手動でも確認したときも問題なく動いていたから知らんかったわーw

まあ嘘だけど、このようにいちいち把握する必要がなくなる。

328:デフォルトの名無しさん
16/09/03 20:52:33.02 vfo9HhT2.net
この板ってどのスレでも定期的にこういう事起こるよね
C#のラムダ禁止おじさんとか

329: ◆SEdFBOkLSw
16/09/03 20:52:38.94 YIu9WVDu.net
>>322
一人二役って、アホな発言にも程があるわ。
言うに困ったらそれか。
>>322
言語は、そのものじゃなくてサブセットなんじゃねえの?

330: ◆SEdFBOkLSw
16/09/03 20:53:35.43 YIu9WVDu.net
>>323
お前が下手なだけ。
>>324
必要が無いのと、無責任なのは違うよ。
あと、letも、ずっとSafariだけ未対応だった。

331: ◆SEdFBOkLSw
16/09/03 20:54:01.45 YIu9WVDu.net
>>325
ラムダは積極的に使えば良いのにな。

332:デフォルトの名無しさん
16/09/03 20:56:57.70 EZVA2rF2.net
>>326
> 言語は、そのものじゃなくてサブセットなんじゃねえの?
そうだなES6の殆どが使えるがサブセットだなw
それよりもES6に完全対応してないブラウザの方が
より大きな問題だよ。

333:デフォルトの名無しさん
16/09/03 20:58:33.36 N47o0j5/.net
もういい。
俺はともかく、ES6ってそんなレベルじゃねーぞって変なこだわり言ってるだけだから。
とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
相手が建設的な話し合いする気がないどころか、現実逃避始めちゃったので、今となってはそれすらどうでもいい。
>>320
>>babelを使うと、多くのブラウザの最低レベルが揃うんだよ。
そう。いいこと言った。
最初からこのくらいに収めてくれてれば俺が駄スレで駄レス重ねる必要もなかったのに。
結局会話にならなかったし、ほんと、無駄な時間過ごしちゃったな~

334:デフォルトの名無しさん
16/09/03 20:59:03.26 EZVA2rF2.net
>>327
> 必要が無いのと、無責任なのは違うよ。
誰が無責任でいられるって言ったんだよ。
アホかw
ちゃんとテストコード書いて問題なく動くことを確認してる。
それが責任を果たすということだろ。
> あと、letも、ずっとSafariだけ未対応だった。
せっかくより良くなったES6を
全く使えない状況になるんだよねw

335:デフォルトの名無しさん
16/09/03 21:01:48.79 EZVA2rF2.net
>>330
> とりあえずBabel使うとES6でガッツリ書けます。将来的には外すだけみたいに言わないでくれれば他はどうだってよかった。
もちろん将来的には外すだけじゃねーよw
しっかりテストコード書いて、テストする。
これは、babelとは関係なく、ブラウザのバージョンアップでも
急に動かなくなったりする可能性があるのだから当然するべきこと。
babelを外してもし動かなくなるのなら、その部分だけの修正で済むだろ。
今からbabelを外して動くかどうかもテストしてればいいんだよ。
それをやってるから、ES6で書いてbabelを使っても使わなくても
同じように動くコードになるって言ってるの。

336:デフォルトの名無しさん
16/09/03 21:09:12.58 N47o0j5/.net
>>332
だからね。君が言ってるそれは、BabalがES6のコードを完璧にES5に変換できるということ前提なの。
実際はね、ES6ではなく、ES_Babalで書かないといけないの。
ES_BabalというのはES6から機能と安定性を取り去った言語なわけ。
で、それを将来ES6か何かに書き換えるわけ。
それがES5のしがらみとどっちが強いかは人次第なのかもしれない。
君はそれに十分満足していて、俺は不満。ただそれだけなのかもしれない。
でも、ES6を使いこなしていったらすぐに俺の考えに近くなるんじゃないかなという想像。
無駄なおせっかいだったのよ。それだけ。

337:デフォルトの名無しさん
16/09/03 21:13:20.81 EZVA2rF2.net
> 実際はね、ES6ではなく、ES_Babalで書かないといけないの。
だから書かなくて良いんじゃないですかねぇw
ES6で完璧に書けないものは書かなくていい。
なんでES6を使うって言ったら、babelで使えない機能まで
ES6を使おうってするんだ?w

どうせテスト書くだろ。完璧に動かなくてもテストで通る範囲が動けば問題ないんだよ。
そもそもブラウザですらES6に完全に対応していない。
どちらにしろES6に完全対応していない環境と言う前提のもとで、
正しく動くアプリを作るんだよ。作るのが仕事なの。
そしてより可読性、メンテナンス性に優れたコードを今すぐ書くということ。

338: ◆SEdFBOkLSw
16/09/03 21:15:25.72 YIu9WVDu.net
>>331
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
お前は仕様からしか書いてないんだもの。
>>332
お前は本当に何を問題とされているかわかんねえやつだな。

339:デフォルトの名無しさん
16/09/03 21:17:26.35 EZVA2rF2.net
テストコード書いて問題なく動く、そこが違うんだよなぁ。
こっちは仕様と実装からテスト仕様書いてて、
え? だからそのテスト仕様書通り動けばいいだろ?
何言ってるのかさっぱりわからんwww

340:デフォルトの名無しさん
16/09/03 21:18:06.86 EZVA2rF2.net
> こっちは仕様と実装からテスト仕様書いてて、
あ、実装を書かないとテスト仕様書が書けないタイプ?

341:デフォルトの名無しさん
16/09/03 21:21:04.16 EZVA2rF2.net
実装からテストを書くっていうのは、
要するにprivateメソッドを書いてから
そのテストコードを書くって言ってるのかな?
まあまた意味不明なことを言い出したなって
思ってますよw

342:デフォルトの名無しさん
16/09/03 21:23:23.04 EZVA2rF2.net
実装のテストっていうのは、その実装が変われば
同じ動作をしていてもアプリは問題なく動いていても
失敗するものってことでいいんですか?

343: ◆SEdFBOkLSw
16/09/03 21:24:59.62 YIu9WVDu.net
>>337
当たり前だろ。。
>>338
違うよ。
コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
その詳細設計から書くじゃん、テスト。
実装、がもしかして食い違ってる?
お前が書く内容、って意味じゃなくて、処理系の実装、な。
しかし、改めてbabel見てみたが、末尾再帰もできんままか。

344: ◆SEdFBOkLSw
16/09/03 21:26:13.79 YIu9WVDu.net
>>339
何言ってるのかわからん。
その処理系でテストを完了していない限り、失敗も成功もないだろ。宙ぶらりん。
だからテストすんじゃん。

345:デフォルトの名無しさん
16/09/03 21:28:37.51 EZVA2rF2.net
いつの話をしてるのやらw
URLリンク(teppeis.hatenablog.com)
2015-03-29
BabelとTraceurでES6末尾再帰最適化を試す
ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。

346:デフォルトの名無しさん
16/09/03 21:28:59.57 N47o0j5/.net
>>334
うん。だから君は、ES6を、モダンで良い言語で書きたいから使ってるわけではなく、
「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
普通はES6で書いて動かすためにトランスパイラを試す筈だが、
君はおそらくBabelをES6入門用的に使っているのだろう。
Babelはもう成長しないが、君はどうするの?
うーん。もしかして、ES2017や18の時代になっても、
Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
ES6-サブクラス+デコレータ-hogehoge+fugafuga
みたいなおかしな言語で書き続けるの??
そこに無理があると言ってるのよ。
君ももし本当にES_BabelをES6と信じてるのなら成長したほうが良いよ。
で、Babelは使うのは良いが憂いができるだけ少なくなるようにした方がいい。

347:デフォルトの名無しさん
16/09/03 21:32:40.61 EZVA2rF2.net
>>340
337 自分:デフォルトの名無しさん[sage] 投稿日:2016/09/03(土) 21:18:06.86 ID:EZVA2rF2 [83/86]
> こっちは仕様と実装からテスト仕様書いてて、
あ、実装を書かないとテスト仕様書が書けないタイプ?
340 返信: ◆SEdFBOkLSw [sage] 投稿日:2016/09/03(土) 21:24:59.62 ID:YIu9WVDu [24/25]
>>337
当たり前だろ。。
この流れで、↓これとか
> コードを書く/書いてもらう前に、何もかも分かった状況にして、こうすれば書けるから、と実装に対する詳細設計を起こすよね。
> その詳細設計から書くじゃん、テスト。
・・・馬鹿なのか?

1. 実装に対する詳細設計を書く
2. つまり詳細設計は実装を書くよりも前に存在する。
3. (実装を書く前の)詳細設計からテストを書く。
実装を書かなくてもテスト仕様書は書ける。

348: ◆SEdFBOkLSw
16/09/03 21:35:40.90 YIu9WVDu.net
>>342
おお、if文のあとの再帰で死ぬやつ治ってんだ。
ちなみに、その話のあと、一旦disabledになったのよ。

349: ◆SEdFBOkLSw
16/09/03 21:38:38.17 YIu9WVDu.net
>>344
だから。もう。
お前がどう書くかは関係ねえの。
それからテスト書いたら意味ねえじゃん。
ホワイトボックスで、それが検証可能な事には意味があるけど、そうじゃねえよ。
処理系の実装だよ。

350:デフォルトの名無しさん
16/09/03 21:41:34.55 EZVA2rF2.net
>>343
> 「Babelが対応してる機能」を「Babelが対応してるから」使ってるだけでしょ?
違う。ES6の機能のうち、babelで変換しても確実に動くものだけを使ってる。
だから「ES6が対応している機能」のうち「babelでも対応しているもの」を使っている。
が正解。
そしてそれは普段から書いている「実際のブラウザで問題なく動くか?」という
テストがあれば追加工数は必要なくテストできる。
> Babelはもう成長しないが、君はどうするの?
成長してないと判断したところはどれ?
見ての通りes2017に対応したプリセットもある。 URLリンク(babeljs.io)
仮にbabelが成長しなくても、今書いているコードはそのままES6対応ブラウザで動くし
ES5ブラウザでも動く。今のやり方はそのまま続けられるじゃん。
場合によっては古いブラウザを切り捨てることで、babelが無くても動く。
将来の心配をしなくて済む。そこがAltJSとの違い。
> ES6-サブクラス+デコレータ-hogehoge+fugafuga
> みたいなおかしな言語で書き続けるの??
と言われてもね。現実に存在するブラウザが、そんな感じでしょw
ES6の全てに対応していない。あんた今、そんなおかしな言語で書いてるんだよw
> うーん。もしかして、ES2017や18の時代になっても、
> Arrayのサブクラスすら作れないなんちゃってES2017で書くの?
Arrayのサブクラスを使わないでES2017で書くよ。
お前は古いブラウザを切り捨てるんだろ?
それが要件として認められるならば、俺古いブラウザを切り捨てるだけだよw

351:デフォルトの名無しさん
16/09/03 21:46:47.80 EZVA2rF2.net
>>346
またマッチ・ポンプ?w
テストは実装前に書くって話でいいんだよね?w
俺が言いたいのは、>>335でお前が言った
> こっちは仕様と実装からテスト仕様書いてて、
実装からテスト仕様書くなやってことなんだけど?

で、俺は仕様と詳細設計からテスト仕様書書いて
それをテストコードにしてるから、
実装が変わっても問題ないって話をしてるんだけど。

352: ◆SEdFBOkLSw
16/09/03 21:51:24.54 YIu9WVDu.net
>>348
だから、処理系の実装だってば。
お前話の流れが読めないやつだな。
前のレス見ればわかんじゃん。
>>347
だから、それがbabel用のコードなんじゃねえの?
ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ただ、そのまま他の環境でも動くだけで。
それは、ES5を書いて、これはES6の仕様範囲内だから、ES6です、って強弁するのと変わらんではないか。

353:デフォルトの名無しさん
16/09/03 21:54:03.20 N47o0j5/.net
>>347
うーん。君のポリシーがよくわからないね。
今のブラウザがES6の全てに対応していない?
そりゃそうだ。ES5すら全てに対応してるわけではないからね。
ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
さっきも言ったが俺はそここそが一番気になるんだから。
いや違うか、君は不完全でも気にしないと言ってるわけだ。
ES6とES_Babelの見分けなんてつかないよと、
いや、Babelで変換できないES6の機能なんてES6と認めないよと言ってるわけだ。
やっぱり君はBabel志向なんだよ。
それは違う、とにかく対応を広げるために機能の劣るBabelを仕方なく使ってるんだっていうなら
やっぱりES6ではなくES_Babelを書いてるってことを認めないといけない。
それか、実はES6なんて理解してなくてBabel志向なだけですというのも理屈が通る。
そのどちらか。

354:デフォルトの名無しさん
16/09/03 21:57:03.42 EZVA2rF2.net
>>349
> だから、処理系の実装だってば。
処理系の実装ってなに?
お前は処理系の実装のテストを "書いている" といった。
そうわざわざ言うってことは、当然普段から書いているのだろう?
ブラウザの場合お前はbabel等を使わない。
ってことは当然処理系の実装のテストというのは、
ブラウザが持っているJavaScript実装。
ChakraやSpiderMonkeyやV8という処理系であるはずだ。

お前はこれらのJavaScriptエンジンを
わざわざ開発元がやってるはずのテストを
JavaScriptエンジンの開発や検証という段階でもないのに、
アプリの開発という仕事の中でやってるということか?
そういう話でいいのか?

355:デフォルトの名無しさん
16/09/03 21:59:14.75 EZVA2rF2.net
>>349
> だから、それがbabel用のコードなんじゃねえの?
> ES6と同じ構文で書いたES6のサブセットな、babelにコンパイルさせる為の言語。
ES6のサブセットという言語はない。
俺がES6のサブセットを使っているだけ。
そもそもどのブラウザもES6に完全対応してないのだから
俺だけじゃなくてみんなES6のサブセットを使ってる。
お前、SafariでES6のサブセットを使ったら、
それをSafariで動かすための言語っていうのかよwwww
それぐらいわからんかなw

356:デフォルトの名無しさん
16/09/03 22:05:42.45 EZVA2rF2.net
>>350
> 今のブラウザがES6の全てに対応していない?
> そりゃそうだ。ES5すら全てに対応してるわけではないからね。
>
> ということは、それより遥かに劣るBabelは極めて不完全って認めるわけなの?
そこが話がつながってない。
babelはES6に対応していないブラウザをES6対応に近づけるものであって、
ブラウザとES6対応度で競争しているわけじゃない。
ブラウザは他のブラウザとES6対応度で競争しているかもしれない
その競争でどこそこのメーカーのブラウザが劣っているか劣っていないかって
いう話をするのならわかる。
だがbabelの目的は、劣っているブラウザを救済する所にある。
babelと比較するのであれば同じ目的のTraceurやClosureだろう。
あんたはES6を使いたいとしか思ってないようだが、
俺が一番に考えているのは、より多くのユーザーが使ってるブラウザで動かすということだ。
その上で可読性やメンテナンス性を上げるという理由で出来る限りES6を使うって話をしてるんだよ。

357: ◆SEdFBOkLSw
16/09/03 22:15:50.24 YIu9WVDu.net
>>351
文盲なの?
そのエンジンと自社製品の組み合わせのテストだよ。
>>352
最後。
その通り、Safariの為の言語だよ。その時点では。
SafariとFireFoxの為に書いたのであれば、SafariとFireFoxの為の言語。

358:デフォルトの名無しさん
16/09/03 22:17:06.63 EZVA2rF2.net
ん? まさかと思うが、もしかして◆SEって
ブラウザごとにソースコード書き換えてるのか?
あるサイトを作ったとして、
Chromeはアロー関数を使ったコードで
Safariはアロー関数を使わないコード。
一つのコードで複数のブラウザに対応するのではなく
各ブラウザごとに書き換えたを変えてるのか?
まさかな。babelを使うと一つのコードで
複数のブラウザに対応できるぞwww

359:デフォルトの名無しさん
16/09/03 22:18:28.08 W9R0/4bk.net
バベル君面白いw
バベル君の事が理解出来る様に、オレも少しかじってみるわw

360:デフォルトの名無しさん
16/09/03 22:18:34.81 EZVA2rF2.net
>354
> そのエンジンと自社製品の組み合わせのテストだよ。
言い方がおかしいな。
普通は
そのエンジンと自社製品の組み合わせ「で」テストをするという。
確認するが
そのエンジンと自社製品の組み合わせ「の」テストを書いているという意味か?

361:デフォルトの名無しさん
16/09/03 22:19:06.56 N47o0j5/.net
>>353
うん。それならいい。
あくまでES6を意識したBabelScriptという下駄を古いブラウザに履かせるという認識ならいい。

裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
そうでないのなら尽く良い。
その他いろんな話をしたが、もうそれに関しての共通理解は諦める。

362:デフォルトの名無しさん
16/09/03 22:20:31.06 EZVA2rF2.net
>>354
◆SEくんおもしろいw
> その通り、Safariの為の言語だよ。その時点では。
じゃあブラウザとバージョンの数だけ別の言語があるってことかい?

363:デフォルトの名無しさん
16/09/03 22:21:58.64 EZVA2rF2.net
>>358
> 裏切りを知らないサンタクロースを信じる子供か、黒歴史を未経験な魔法に憧れる中二病患者かと思ったから忠告したけど、
だからテストコードを書いている。
このテストコードはbabelを使った場合と使わない場合の両方で動く。
裏切られる前提で、裏切られてもすぐに修正できるように
ちゃんと対策をしている。

364:デフォルトの名無しさん
16/09/03 22:24:51.69 EZVA2rF2.net
◆SEの理屈ではJavaScriptという言語は無いってことになるだろうね。
なぜならばどのJavaScriptでも同じブラウザでも
バージョンが違えば、わずかながらでも違いがあるから。
ECMAScriptという仕様を完全に見対している言語もない。
そういえばC++も仕様を完全に満たしている処理系はないっていわれてるな。
つまり、それぞれの処理系で別々の言語が実装されている。それはC++とは呼ばないw

365: ◆SEdFBOkLSw
16/09/03 22:29:30.55 zOLpCpsC.net
>>355
基本は両方同じ、かつネイティブに処理されるコードを書いて欲しいね。
依存部分はライブラリで吸収するから。
>>359
え?うん。
お前も認めてたじゃん。どのブラウザもサブセットだって。

366: ◆SEdFBOkLSw
16/09/03 22:30:37.47 zOLpCpsC.net
>>361
え?MSの2012でコンパイルできる、cppのソースコード、以外の、現実に則した表現あるの?

367:デフォルトの名無しさん
16/09/03 22:31:28.65 EZVA2rF2.net
>>362
> お前も認めてたじゃん。どのブラウザもサブセットだって。
お前、毎度毎度、重要な単語を抜き取るよなw
わざとやってるだろ。

どのブラウザも「JavaScript(ECMAScript)という言語の」サブセットだって
言ったんだよ。別の言語であればそれはサブセットとはいわない。

368: ◆SEdFBOkLSw
16/09/03 22:31:56.90 zOLpCpsC.net
>>357
そうよ。おかしかったらパッチ書いてプルリクするもの。

369:デフォルトの名無しさん
16/09/03 22:32:33.75 N47o0j5/.net
>>360
そこに関しては納得してる。
俺が違和感があるのは、よくそれで問題にならず我慢できるなってこと。
よくArrayのサブクラスとか作らないで済むね?
Proxy使ったこと無い?@@系は?
当然独自クラスシステムフレームワーク構築するのに
プロトタイプ書き換えるとか当然やったこと無いんだろうな~
って感じ。
そういう驚きと、同じ世界に居ない悲しみ。そんなとこ。

370: ◆SEdFBOkLSw
16/09/03 22:32:54.26 zOLpCpsC.net
>>364
重要な単語も何も、本家とサブセットは関係が定義できようが、
サブセット同士はただ違うものとしか。

371:デフォルトの名無しさん
16/09/03 22:33:53.31 EZVA2rF2.net
>>362
> 依存部分はライブラリで吸収するから。
アロー関数は文法なんだから、JavaScriptファイルを
分離しないと、構文エラーになるんだが?
そのライブラリはブラウザごとに読み込むファイルを分けるのか?
またパフォーマンスが落ちそうなことをwww

372:デフォルトの名無しさん
16/09/03 22:35:25.80 EZVA2rF2.net
>>367
だから、そうやって重要な単語を抜き取って焦点をぼかすのはやめろ。
とある言語の、サブセット同士が違うものであっても
それはとある言語のサブセットであって、言語としては同じだろうが。
BASICはどの実装でもBASICであり
COBOLはどの実装でもCOBOLだ。

373:デフォルトの名無しさん
16/09/03 22:37:05.23 EZVA2rF2.net
>>366
> よくArrayのサブクラスとか作らないで済むね?
といわれてもね。長年やってるからね。
長いES5の時代にArrayのサブクラスをつくらないで
やってきた人間に、そんなこといわれてもねw
その他も同じ。
お前のほうがやってきた経験少ないんじゃね?

374:デフォルトの名無しさん
16/09/03 22:41:45.37 EZVA2rF2.net
>>366
そうだな。君、何かのポリフィルを自分で考えたことある?
特定のブラウザでは簡単にできないことを、
別の方法を使って実現するってことをやったことある?
そういう経験がないんじゃないかな?
バッドノウハウといわれるけど、仕事ではそれをやらないといけない。
Arrayのサブクラスが作れないからできませんって
簡単に泣き言を言ったらだめだよ。
Arrayのサブクラスを作ることが目的になることはまずない。
別の方法で顧客の要求を実現するんだよ。
これって発想力の問題かなぁ、それとも問題解決能力?

375:デフォルトの名無しさん
16/09/03 22:56:19.81 N47o0j5/.net
>>370
当然俺もいきなり活用できたわけじゃない。
折角の機能活用できるようになろうとここ1,2年実験・研究を人一倍積み重ねてきたのよ。
いや、違うか。それより前から、特にES4の頃からかなぁ
JSなんてと言われる声が大きかった時でも、
これからはJSの時代だ。JSを深く知ろう、そしてJSの良さをもっと知ってもらおう。
JSを良くしていこう。とずっとずーっと思ってたのよ。
だからES6の盛り上がりには喜んだし、
MLも当初から参加して全て読んで、細部だが提案にも参加した。
そして実装される前から、トランスパイラではなく、エンジン毎実装されているエミュレータでテストしたりしてきたのよ。
ブラウザに機能がコミットされたら、いやされる直前に自分でローカルでコミットして即ビルド。
とにかく誰よりもよくES6を知り、よく使えるようになろうと努力した。
というのは多少大袈裟だが、そのくらいの熱はあるよ。

376:デフォルトの名無しさん
16/09/03 22:59:14.75 N47o0j5/.net
つかArrayのサブクラスもできるんだけどね。
__proto__がサポートされていれば。

377: ◆SEdFBOkLSw
16/09/03 23:12:05.52 YIu9WVDu.net
>>369
いや、それは言語名を拡大解釈しすぎだろ。

378: ◆SEdFBOkLSw
16/09/03 23:14:31.28 YIu9WVDu.net
>>371
お前どう聞いてもそのノウハウないんだけど。
なんか書いたことある?アーキとしてライブラリ。
>>368
うん、文法上無理なものは、無理に使わないよ。
ライブラリはブラウザごとに違うよ?
当たり前だけど、そのブラウザ用に書いてるからパフォーマンス高いよ(笑)

379:デフォルトの名無しさん
16/09/04 01:41:38.94 dQFc65WQ.net
そもそも、ブラウザのソースをむっちゃ細かく読み、ブラウザごとに誤差レベルのパフォーマンスのためにプログラムをかき分け、利用者にはKBのバージョンまで指定する
そんならネイティブで書いたほうがいっそ早くね?

380:デフォルトの名無しさん
16/09/04 01:42:25.34 dQFc65WQ.net
↑ネイティブっていうのはブラウザ上じゃなくてって意味ね
それだと今度はOSのソースを読み出すのかな?

381: ◆SEdFBOkLSw
16/09/04 02:09:57.16 OwMR9jkC.net
>>376
クラサバの話?
だいたい似たようなもんだよ。
社内端末は、何処の会社でもそうだろうけど、標準品のパターンしか無いから。
クラサバは基本的にはあんまり作らんけどね。
標準品があるがゆえにが、何かにもインストールするのは難しい。
毎月10日に数万人が同時使用するようなものもあるから、ウェブ向きのもあるんだけどね。

382: ◆SEdFBOkLSw
16/09/04 02:11:11.84 OwMR9jkC.net
>>377
案件次第だけど、RedHatと、MSは調査させることができる保守契約だから、
ソースは見なくて済むよ。

383:デフォルトの名無しさん
16/09/04 02:40:24.68 dQFc65WQ.net
よくよく考えると、ハードウェアにも依存するよね
テストだけじゃなくてソースまで読むとなると、CPUとかグラフィックカードの設計図まで見ながら実装や結果が異なるかもしれない!とか言いながら開発してるのかな?
これとかは面白かったな
URLリンク(www.sophos.com)

384: ◆SEdFBOkLSw
16/09/04 02:52:39.61 puAB8LUN.net
ハードウエア依存するね。
そのへんはウェブ屋がよくまとめてくれてるよ。
このCSSをONにしたら、アニメーションがGPU使ってる行われるので、適宜利用可能そうであれば取り込んでください、とかたまり来るな。

385:デフォルトの名無しさん
16/09/05 21:45:07.44 g6CwjeFO.net
こういうwebアプリってどうやってつくってるんですか
pdgを縮小とかって、どうやってやってるのでしょうか?
javascriptは関係ありますでしょうか?
URLリンク(smallpdf.com)

386:デフォルトの名無しさん
16/09/05 23:05:01.84 La2BdvKf.net
void func(int a)
{

387:デフォルトの名無しさん
16/09/05 23:10:26.66 La2BdvKf.net
未使用変数への対処ですが、C言語だと
void func(int /*a*/)
{
....
}
void func(int a)
{
(void)a;
....
}
こんな風にしますが、JavaScriptだと定石みたいなのはありますか?
$('#element').on('mousedown', function(/*event*/) {
});
でよさそうな気がしますが、アロー関数の時は
$('#element').on('mousedown', /*event*/() => {
});
こんな風にしないとだめでかっこ悪いきがします。

388:デフォルトの名無しさん
16/09/06 00:15:41.30 vTB9MQXO.net
>>384
未使用変数を必ず対処しないといけないということはない。
例えばイベントハンドラで引数にeventやeを取るのは「形」だ。
型宣言みたいなもんで、それを書いてあるからといって必ずしも
eventを利用しないことは皆知っている。
むしろその関数が別定義されていても、eventを受ける関数、
イベントハンドラの定義なんだと瞬時にわかるので意味がある。
つまりイベントハンドラとしてイベントを受け取るということだけで、
機能が満たされて意味的に「未使用」ではないとも見れる。
もしくは本当にイベントをトリガーとして関数を呼び出したいだけであれば、
引数を書かないでおくべき。
コメントアウトする文化はないのでけしてしてはいけない。
上で述べた引数をあえて書く、書かないは、関数の機能やニュアンスを表すための
弱い動的型付け言語における読み手に対する情報の追加だ。
しかしコメントアウトは書き手にとってのメタ的な情報でしか無い。
読み手に未使用変数の情報を伝えても何のプラスにもならないし、
何らかのニュアンスの提示かと思わせて混乱させるだけだ。

389:デフォルトの名無しさん
16/09/06 03:32:45.25 R2NwcGdU.net
キモい ◆SEは死んだ?w

390:デフォルトの名無しさん
16/09/06 03:37:28.46 s5Bd4cPT.net
>>384
使用してない変数なら書かなければいいだけ。
使わないのに引数を省略出来ないっていうのは
C言語特有の問題だ。C言語特有の問題を持ち込まないように

391: ◆SEdFBOkLSw
16/09/06 08:18:45.82 aJS2GtR8.net
>>386
そんなに否定されるか不安なのか?
>>384
その定石は要はコンパイラが未使用変数だよ、と警告上げてくるから、使ってるフリするやつじゃないの?
長々誰かが説明してるけど、結論どっちでも良いよ。
書いても書かなくても。

392:デフォルトの名無しさん
16/09/06 09:41:59.19 KC/iVCRe.net
>>385, >>387, >>388
ありがとうございます。
すみません、言葉足らずでしたが、>>388さんの通りC言語の
コンパイラの警告と同じような意味合いでの
eslintなどのunused-varsへの対処方法の相談でした。
引数消せばそれで良さそうとは思いましたが、それだと>>385さんの通り
eventとか意味を持った引数がわかりにくくなりそうなので、定石みたいなのはあるのかなと。
結論はどちらでも良いとのことで好きなようにやっておきます。

393:デフォルトの名無しさん
16/09/06 13:11:41.52 vTB9MQXO.net
>>389
一番いいのはそういう警告は殆どOFFにするか、無視すること。
正直言って本当に厄介なバグは見つけてくれない気休め程度のもの。
気休めに気を使うことくらい馬鹿らしいことはないと思わないか?
どちらでもいいと言われてるのは書く/書かないであって、
コメントアウトは3つの選択肢の中では最低と思った方がいい。

394:デフォルトの名無しさん
16/09/08 07:45:15.23 O7PwNYbW.net
プロミスって簡単に探したら、種類がいっぱい有るんですね。
現在対象にしているのが、WinJS。
timeoutなんてのが有って驚いた。
これだと非同期ロジックにシーケンス書ける。

395:デフォルトの名無しさん
16/09/08 14:31:46.31 OkMPKk85.net
標準Promiseは機能が少ないので、async/awaitを使って補うのがベストプラクティス。
もしくはextendsしても良いが、やや大変で難しいと思う。
一応キャンセルの案は入るのでtimeoutとかは簡単に実装できるようにはなる。
CancelToken型になりそうなのがまたちょっとアレだが、まあ拡張としては最適なのだろう。
URLリンク(github.com)

396:デフォルトの名無しさん
16/09/08 23:37:57.85 Vzj7Ghpg.net
ちなみにasync/awaitに対応しているブラウザは少ないので
必然的にbabelを使うということである。

397:デフォルトの名無しさん
16/09/08 23:41:49.64 Vzj7Ghpg.net
なお、俺はasync/awaitを使いたいならbabelと言っただけで
async/awaitを使うと機能が増えるとは言ってない。
その話は言ったやつに聞け

398:デフォルトの名無しさん
16/09/09 00:04:44.99 4wEFuM4p.net
>>393
ブラウザの話だけでいうのもどうかと思うよ。
WinJSが出てくるのならNW.jsとかNode系V8系の環境の話も十分考えられる。
V8系ならフラグオンで使えるわけだからね。
というかすぐ、互換性が~とか言い出したり、実務を必ず伴わせようとするのは悪い癖だと思う。
ここはESスレなんだし、仕様やAPIの宙に浮いた話だって良いじゃない。
web制作板だったら確かに互換性や実際に世のブラウザで動く話は無視できないかもしれないけれど、
ここはプログラム技術板なんだし、
JSはそれこそ自分用のブラウザ拡張機能を作るためだったりするのにも使えるわけだし、
別に実験や遊びとしてこういった技術を扱う前提であってもいいと思う。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch