1 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 16:28:34.52 ID:ORuOCkHy.net] pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。 サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 nodejs.org/ io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系 iojs.org/ Rhino - JVM上で実行できる処理系 https://developer.mozilla.org/ja/Rhino io.js の経緯 stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js javascriptはrubyと比較してもかなり速い shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv 基礎から学ぶNode.js gihyo.jp/dev/serial/01/nodejs node.jsの概要とアプリケーション開発の準備 gihyo.jp/dev/serial/01/realtimeweb/0002 前スレ 【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net echo.2ch.net/test/read.cgi/tech/1419673207/ 【node.js】サーバサイドjavascript 2【Rhino】 peace.2ch.net/test/read.cgi/tech/1358937029/ 【node.js】サーバサイドjavascript【Rhino】 toro.2ch.net/test/read.cgi/tech/1310087535/
500 名前:デフォルトの名無しさん [2017/04/08(土) 01:27:17.78 ID:GAoRTfTW.net] 何やこいつ キャンセルする必要がない単発はPromiseでいいし、キャンセルが必要か連発ならobs使えばいいって話だろ しゅうきょーせんそーかな?
501 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:28:10.51 ID:Ibdd+rg/.net] 単発だからってキャンセルする必要が無いことにはならないんだが? 言ってる意味わかる?
502 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:31:42.23 ID:Ibdd+rg/.net] Observableが得意なのはキャンセルだけじゃなくて 並列処理もなんで、fs.fstatを並列で実行したいときにも 簡単にかけるというメリットも有るな
503 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:33:57.12 ID:i0oWHzgI.net] いくら君らが言い合っても、現実はかわらないでしょ? 今ある仕様がすべてで文句かるなら他の言語つかいなよで終わる話しじゃないの? 生産性のない答えもない事で争って暇すぎるだろ
504 名前:デフォルトの名無しさん [2017/04/08(土) 01:36:49.14 ID:GAoRTfTW.net] >>490 「キャンセルする必要がない場合は」 よく嫁
505 名前:デフォルトの名無しさん [2017/04/08(土) 01:37:27.20 ID:GAoRTfTW.net] こいつもしかしてIT速報の管理人か? 転載禁止やぞ。対立煽りはNG
506 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:45:22.63 ID:w3FPiolV.net] スプーンとお玉の関係に似てる。 ジャムをすくうのにお玉を使ったら逆に不便だろ。そこは適切にスプーンを使え。 キャンセル処理がPromiseだと絶対無理というわけでもないし、Rxが必要とも思えないプロジェクトで無理やりRxを使う必要もない。
507 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:49:13.35 ID:Ibdd+rg/.net] >>493 > 「キャンセルする必要がない場合は」 それはまずないだろうねw
508 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:25:27.18 ID:FnclMLRN.net] レスの文体からして前からJSスレに常駐してる荒らしでしょ コピペブログ管理人もやってたのかは知らんが
509 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:31:02.63 ID:hy422I1n.net] >>487 システムコールってwikipediaにもエントリあるのに unix/linux系はダメなwindows君か どうりでダメなわけだ
510 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:35:20.51 ID:Ibdd+rg/.net] >>498 分かってないなw なんでシステムコールの話がでてくるんだってことだよ。 nodeのAPIと、OSのシステムコールを 一対一で直接結びつける必要はないっつーの nodeのAPIは単純な一命令でも、内部の実装は 何回もシステムコール呼んだって良いわけだ。 それが分かってないから、お前はシステムコールが キャンセルできるかどうかなんて言い出したんだろ こっちは全部お見通しだってーの
511 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 05:35:10.56 ID:iZgQ7lMc.net] fetchはキャンセルできる必要があるが、 fetchの戻り値をObsevableにするのは駄目。 Obsevableって一様な幾つものデータを受け取るのに向いているので fetchのように幾つかの段階で全然違うものが帰って来るのには向いていない。 単純に、Responseにabortメソッドを付けるのが良いと思う 勿論途中のStreamをObsevableにするのはとても良いと思うけど、 それを含んだ全体をするのはおかしい。
512 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 05:38:38.21 ID:iZgQ7lMc.net] というか考えたら分かると思う。 キャンセルしたいのはfetchではなく、DLなのだから。 やっぱりCancelToken以外の解は無いと思うよ。
513 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:16:04.09 ID:uEU+oXmi.net] イベントでいいじゃんかよ、もう
514 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:29:52.27 ID:py60arCP.net] > キャンセルしたいのはfetchではなく、DLなのだから。 fetchはデータ送信もするんだが? その場合キャンセルしたいのは何だよ
515 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:40:38.81 ID:py60arCP.net] >>500 > 単純に、Responseにabortメソッドを付けるのが良いと思う fetchの戻り値はpromiseであってresponseではない。 responseはpromiseのthenの時に渡される。 promiseのthenが呼び出されるのはfetchの処理が完了した後。 つまりresponseを取得したとき=fetchし終わった時に abortするのは遅すぎる
516 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:46:58.17 ID:1OsO7EoR.net] >>499 なにを見通してるのかさっぱり分からんがnodeは低水準のapiを提供するものだ そうすれば複数のシステムコールを組み合わせた高水準apiはユーザーレベルのライブラリで実現できる だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない
517 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:50:52.30 ID:1OsO7EoR.net] >>504 仕様にはstreamが追加されてる https://fetch.spec.whatwg.org/#streams
518 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:56:59.44 ID:py60arCP.net] >>505 > nodeは低水準のapiを提供するものだ どこにそんなことが書いてあるのか? nodeの立場はブラウザと同じだ。 JavaScriptの実行環境だ。 お前の理屈だと、ブラウザは低水準のAPIを提供するものということになる。
519 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:58:44.31 ID:py60arCP.net] >>505 > だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない じゃあ、例えば、fs.lstatSync は posixのどの薄いラッパーなのか言ってみ
520 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:01:09.86 ID:py60arCP.net] >>506 > 仕様にはstreamが追加されてる どっちみち仕様を加えるなら Observableにした方がいいだろうな。
521 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:02:35.33 ID:py60arCP.net] しかもPOSIXは非同期I/Oをキャンセルする機能あるじゃんwww https://linuxjm.osdn.jp/html/LDP_man-pages/man3/aio_cancel.3.html aio_cancel - 完了していない非同期 I/O リクエストをキャンセルする POSIX.1-2001, POSIX.1-2008.
522 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:22:58.68 ID:+j3lf9vK.net] >>507 https://nodejs.org/api/fs.html File I/O is provided by simple wrappers around standard POSIX functions. >>508 lstat >>510 posix aioはほとんどのosで実装されてないしnodeでもサポートしてない
523 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:25:59.41 ID:+j3lf9vK.net] >>510 細かく言うとposix aioはほとんどのos kernelで実装されてない gnuがユーザーレベルのライブラリとして実装したものがあるだけ
524 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:34:34.87 ID:+j3lf9vK.net] manだとlstat(2)に対して>>510 のaio_xxx(3)なのでシステムコールじゃないことが分かる
525 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:36:55.48 ID:py60arCP.net] >>511 lstatは非同期じゃないぞw
526 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:39:34.36 ID:+j3lf9vK.net] >>504 fetch apiが返すpromiseはfetchが完了してからresolveするわけではない 完了してからresolveするのはres.text()が返すpromise
527 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:40:34.49 ID:+j3lf9vK.net] >>514 >>508 のlstatSyncは非同期じゃない
528 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:43:59.84 ID:py60arCP.net] >>516 逆だったなw fs.lstatの方だ
529 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:45:48.32 ID:+j3lf9vK.net] >>517 lstat
530 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:46:03.01 ID:py60arCP.net] >>515 > fetch apiが返すpromiseはfetchが完了してからresolveするわけではない 完了してからだよ。正確にはレスポンスが返ってきてから、 データの受信が完全に完了してからではない。 でないと、Response.statusが取れるわけがないだろう?
531 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:46:40.03 ID:py60arCP.net] >>518 それではシステムコールにあるPromise相当のものは何?w
532 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:51:37.12 ID:+j3lf9vK.net] >>519 そう、だから完了してからじゃないじゃん 最初のチャンクが届いたらresolveする 「fetchの処理が完了した後」は明らかな間違い
533 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:53:33.42 ID:+j3lf9vK.net] >>520 システムコールにはない 単にワーカースレッドでlstat呼ぶだけ
534 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:53:53.72 ID:py60arCP.net] >>521 Fetchの処理はリクエスト投げてレスポンス戻すところまでだよ。 ダウンロードが終了するまでの話は最初からしてない で、Fetchのキャンセル(thenが発動する前)はPromiseでできるの? できないでしょ? そこに新しい仕様が必要ならObservableを使えば良いわけさ。
535 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:54:42.49 ID:py60arCP.net] >>522 だろう? Promiseを含めて「システムコールの軽いラッパー」と お前が呼ぶならば、Observableを含めたって「システムの軽いラッパー」になる
536 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:03:11.46 ID:0e5YIioE.net] >>523 fetch apiがpromiseベースでバカなのは何年も前から言われてるし俺も言ってきたからそこに反論する気はない
537 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:05:16.72 ID:0e5YIioE.net] >>524 キャンセルできなくて単発で結果が決まるシステムコールのラッパーにpromiseよりobservableを選ぶメリットは?
538 名前:デフォルトの名無しさん [2017/04/08(土) 20:20:53.33 ID:cXe/TGOq.net] システムコールとライブラリの違いをわかってないやつがいそうだから、用語をシステムAPIかOSのAPIで統一してくれ
539 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:27:37.55 ID:py60arCP.net] >>526 並列処理がしやすいから
540 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:31:19.27 ID:iZgQ7lMc.net] >>523 何度も説明してるが、キャンセルは必要だが、Observableはそぐわない CancelTokenのようなものじゃないと実際齟齬が出るし その流儀に則って真似して使いやすいように色んなAPIを実装していくのは大変
541 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:33:09.43 ID:py60arCP.net] 俺がobservableの話で並列処理の話を始めると すぐにキャンセルの話に変えるやつってなんなんだろうねw わざとなのかな?
542 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:38:17.35 ID:FGB2+VgV.net] >>528 正しくは並行処理だが常に必要となるわけではない 必要ならpromiseをobservableでラップすればいいだけ そのために無駄に高機能なapiを土台にするメリットはない シンプルの上にリッチを乗せることは有意だが逆は無意味だ
543 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:40:15.25 ID:py60arCP.net] > 正しくは並行処理だが常に必要となるわけではない 絶対に必要ないならいらんだろうさ 常に必要となるわけではない=必要な場合もある。 ならば同じやり方でやったほうが楽
544 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:49:17.82 ID:FGB2+VgV.net] 長さ1の配列があればスカラ値の変数はいらない let x=1 let y=2 let z=x+y これは配列が必要な場合と同じやり方で let x=[1] let y=[2] let z=[x[0]+y[0]] ってやった方が楽 なるほど
545 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 16:42:26.31 ID:4FESG0wM.net] なるほどじゃねぇよ
546 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 17:00:22.44 ID:ZPMPIHcF.net] Observableだけでなく、jQueryもLodashもそうなんだけど、 配列をスカラのように扱うことができるんだよね。 1と2以上を同一化して処理できる。 例えばquerySelectorAllは配列を返す。$()だとスカラ値を返す どちらもセレクタから複数の要素を検索しているようだけど、この違いによって querySelectorAllではループ処理が必要になるが、jQueryではループ処理が不要になる Promiseも単数だから並列しようと思ったら配列が必要になってループも必要になる つまり>>533 でいう後者の書き方 Observableであれば単数も複数も同じように処理できるから、>>533 の前者の書き方で 複数の対象を単数と同じ書き方で並列に処理できる。
547 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 18:21:09.53 ID:c0gwQMp6.net] querySelectorAllが配列を返すなんてとんと知りませんでしたわ
548 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 19:39:40.08 ID:FYNHGER+.net] そもそも「配列」という言葉の定義がない 因みにNodeListは@@iterator対応の予定がずっとある
549 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 20:58:23.64 ID:04OXxo7q.net] jQueryしか使わないゆとりだから下のレイヤーのことは知らないんだろ
550 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 21:08:17.95 ID:qkkzIUk4.net] 下層民同士仲良くしなさいよ〜 粛清すっぞ
551 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 16:04:40.78 ID:/vWjJFQd.net] 一年に1,2回はtoArrayをどうするかの話題で盛り上がるよね Array、TypedArray、@@iterator、length、Array.isArrayとか沢山楽しい話できるよね
552 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 15:44:57.90 ID:EI2QNfVc.net] キャンセルトークン方式のプロポーザル https://github.com/tc39/proposal-cancellation
553 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:28:11.22 ID:rWanRa9I.net] >>541 https://azu.github.io/slide-what-is-ecmascript/slide/12.html Stage 0: Strawman アイデア から抜け出したら、もう一回知らせてくれ せめてStage 3にならなければ評価する価値もない
554 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:53:27.45 ID:CJtRplzd.net] stage1のobservableも評価する価値がない よってこの話題完全終了
555 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:56:52.33 ID:3Yv+2Fi9.net] 50歩100歩ってやつだな。 差は2倍もあるということだ
556 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:09:11.09 ID:62uXcToV.net] デバッグ用にconsole.logで出力を行ってるんだけど、foreverで起動するときはどこにも出力されてないって事でいいのかな?
557 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:46:41.59 ID:fGKCOXVl.net] 今日追加されたのより一歩進んでたって話にならんよ
558 名前:デフォルトの名無しさん [2017/04/12(水) 12:43:00.43 ID:rqT+n0Ti.net] >>544 ゴールまで千里の道というオチですね
559 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 16:04:44.52 ID:WRJ4LE6o.net] >>545 Optionsを観ると以下のようになってる。 -o OUTFILE Logs stdout from child script to OUTFILE -e ERRFILE Logs stderr from child script to ERRFILE
560 名前:デフォルトの名無しさん [2017/04/16(日) 06:10:01.13 ID:JlKTjebd.net] ln -s -f /dev/null /dev/stdout
561 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 22:47:20.35 ID:vwhSF093.net] Converting circular structure to JSON at JSON.stringify 自分なりにdeepCopyつもりのコードで 上記エラーが出た場合に、原因なコードを簡単に見つける方法ってどんなのがありますでしょうか?
562 名前:デフォルトの名無しさん mailto:sage [2017/04/22(土) 11:59:52.05 ID:WQjYmpaa.net] >>550 stackoverflow.com/questions/14962018/detecting-and-fixing-circular-references-in-javascript
563 名前:デフォルトの名無しさん [2017/04/25(火) 16:04:38.46 ID:+ad05VVs.net] circular structur 原因書いてますやん
564 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 14:11:46.04 ID:mOputr8e.net] >>551 まさにピッタリの解説でした。ありがとうございました。
565 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 08:36:18.97 ID:NZ0i2p+n.net] 循環参照を持っていてもちょっと関数噛ましてテーブル2つに変換すればJSONに落とし込むことは可能だよ
566 名前:デフォルトの名無しさん [2017/04/28(金) 12:43:11.19 ID:TC+lQYaW.net] 以下のように表記を統一するクラス(またはデータベース)でありますでしょうか? 'php' => 'PHP' , 'perl' => 'Perl' , 'javascript' => 'JavaScript' ,
567 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 13:10:12.31 ID:ytJUGaM1.net] 自然言語処理用でいいの最近見たけど忘れた
568 名前:デフォルトの名無しさん [2017/04/28(金) 15:01:07.81 ID:TC+lQYaW.net] 思い出してください w 「自然言語処理 "単語の正規化" 」でググってみましたがズバリ思っているようなのはヒットしませんでした。 どなたか是非!
569 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 05:10:42.30 ID:GfKuDHiR.net] つうか全部小文字の単語を直したいだけの辞書なら 通常の固有名詞辞書にちょっと手を加えればいいだけじゃん
570 名前:あ mailto:sage [2017/04/29(土) 11:53:18.38 ID:R/nsoadB.net] freetaggerとか昔使ったことあるけど、javaScriptなんかの表記の統一は辛かったような。 isDisabledのiはどうするのとか、結局プロジェクト向けのスクリプト書いた気がする。
571 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 12:10:57.72 ID:xHNM2Zad.net] >>559 結局はそうだよな 完全な答えがあるものじゃないし
572 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:37:41.27 ID:jNZhewdQ.net] package.jsonの"scripts"に書いたコマンドをnpm runで実行する際はnode_modules/.bniがPATHに 追加されますが、これ以外に任意のディレクトリをPATHに追加する方法ってあるでしょうか。
573 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:44:19.89 ID:/FJiuNZS.net] 実行するコマンドの前で設定するとか
574 名前:デフォルトの名無しさん [2017/05/04(木) 01:58:16.57 ID:arHoxXIF.net] windowsだからpythonのpip以上にnpm厄介だな
575 名前:561 mailto:sage [2017/05/04(木) 11:09:36.82 ID:l8/ufUYV.net] ありがとうございます。でもwindowsだとうまくいかないなぁ。 "somecommand": "set PATH=%PATH%;<パス> && <コマンド>" #<コマンド>は内部でPATH環境変数を使用するスクリプトで、これ自体にはPATHが通っている。 &&の両側のコマンドが同時に立ち上がるんだから当然と言えば当然か。 でもコマンドプロンプトで順次実行する&に変えても結果は同じだった。 bashのexportみたいなのが使えればいいんだけど。
576 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 11:15:14.24 ID:rRUt3/Oc.net] めんどくせぇなぁ、 そのためのnpmライブラリでもあんだろ
577 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 14:13:58.13 ID:PLZ28pn/.net] cross-envが定番 https://www.npmjs.com/package/cross-env
578 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 14:31:06.73 ID:lWCYxa45.net] 他にnpm-run-allとかrimrafとかあればwinでも動くnpm scriptsが書ける
579 名前:561 mailto:sage [2017/05/04(木) 15:13:22.65 ID:l8/ufUYV.net] ありがとうございます。cross-envでいけました。
580 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 06:40:04.53 ID:jJg9RTT4.net] カオスですね
581 名前:デフォルトの名無しさん [2017/05/08(月) 19:19:22.70 ID:Eylo3eTX.net] node.jsでimportを使うと
582 名前:SyntaxError: Unexpected token import ってなるんですが、importに対応したnode.jsはまだ出てないのでしょうか? [] [ここ壊れてます]
583 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 19:53:32.68 ID:zqCx33pk.net] 質問する前にぐぐれ sakamock.hatenablog.com/entry/2016/02/03/091623 yosuke-furukawa.hatenablog.com/entry/2016/05/10/111102 va2577.github.io/post/18/
584 名前:デフォルトの名無しさん [2017/05/09(火) 01:01:42.73 ID:VdFod0fE.net] >>571 importの使い方を聞いていません babelとwebpackでimport書いてるので使い方は知ってます node.js自体がimportを実装しているのかを聞いています
585 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 06:20:18.78 ID:SYbF5UtF.net] してないよ
586 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 06:58:49.50 ID:i7CM3KKL.net] *.mjsからはimport出来るようにしようぜ ってのを結構前に読んだ気がするけど、まだ実装されたないんか?
587 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 08:05:18.10 ID:SYbF5UtF.net] 実装どころか提案文書はドラフトのままだよ (技術的検証が済んでACCEPTされないと実装に進まない) 検証だけであと1年以上掛かるってさ なお拡張子(*.mjs)でES moduleかどうか判別する手法は 考え得る限り最低の糞という判断が下されたので無くなる
588 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 14:19:15.46 ID:QH2cY82P.net] そこはESの管轄外だよ NodeがWebと合わせる必要もない
589 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 14:46:23.14 ID:mIqB5B7Y.net] 相互運用性は必要
590 名前:デフォルトの名無しさん [2017/05/09(火) 14:48:00.66 ID:bmQioI1H.net] いやnodeってv8使ってる立場だから何もできんでしょ 間違ってる?
591 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 15:09:01.72 ID:UecSchXq.net] v8はネットワークもファイルシステムも持ってないからimportは環境(ブラウザやnode)に丸投げでしょ
592 名前:デフォルトの名無しさん [2017/05/09(火) 15:45:52.73 ID:bmQioI1H.net] なるほど
593 名前:デフォルトの名無しさん [2017/05/09(火) 16:25:22.62 ID:yROPnHQF.net] Buffer.byteLengthをブラウザ側でも利用できるように移植して欲しい 今時バイトでカウントするにも自力でコード書かないといけないのは無駄すぎる
594 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:56:24.65 ID:AJpeMRYn.net] importはJavaScript(EcmaScript)の仕様範疇の中に入れてもいいが、 ブラウザで動かすJavaScriptにおいて、 importはビルド時に解決する問題になるんだよね。 なぜならファイルのアクセス数が増えてパフォーマンス低下につながるから。 JavaScriptファイルを結合することでパフォーマンスをあげるという目的があるから 結合させずに動いたとしても、ビルド時に結合させるという手段は今後も続く。 ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って 結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ
595 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:01:42.74 ID:AJpeMRYn.net] >>581 ブラウザ側で実装する or 自力でコードを書く の中間に、ライブラリを使うという方法があるよ。 この方法を使えば、既存のブラウザでも動くし 自力でコードを書くムダもない 自力でコードを書けるたぐいのものなら、ブラウザに移植してほしい理由を言うとしたら 「ネイティブで実装されていれば速い可能性がある」であるべきだろう
596 名前:あ mailto:sage [2017/05/09(火) 23:27:53.20 ID:jm0lp/yb.net] >>582 すごく巨大なファイルへのアクセス数でパフォーマンス低下するか、 CDNで配信されてて、もうすでにブラウザキャッシュに存在するかだと、後者の方が速いと思うけど。
597 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:38:56.70 ID:AJpeMRYn.net] すごく巨大なファイルもCDNで配信されブラウザにキャッシュされるだろw
598 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:45:41.79 ID:UecSchXq.net] お前らhttp/2知らんのか
599 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:35:14.26 ID:APsKv2KG.net] >>586 コネクションが再利用されるとしても、 ファイル要求は別に行われるだろうが
600 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:43:19.47 ID:dOAvi++p.net] 要求されるまでもなくプッシュできる キャッシュとの絡みで今んとこ絵にかいた餅だが
601 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 06:37:42.31 ID:p6BdxMwR.net] ふーん そういう妄想は同人誌即売会で売ってるといいよ
602 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:21:57.19 ID:3E/iyxQi.net] それよりもminifyが未だにes2015を正式対応してないの早くなんとかしてほしい。ブラウザがes2015サポートしてても結局es5で吐き出してる
603 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:20:22.50 ID:f7GpB8cT.net] babel使えば? babel自体にminify入ったろ?
604 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:27:47.55 ID:3E/iyxQi.net] >>591 おー。愚痴ってみるもんですな。 typescript使ってたんだけどbabel挟んでみようかな。
605 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:31:57.68 ID:f7GpB8cT.net] typescript使ってるならビルドした後minifyすればいいだろ
606 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 23:04:23.70 ID:3E/iyxQi.net] >>593 そう言ってるんだよ
607 名前:デフォルトの名無しさん [2017/05/11(木) 09:14:44.78 ID:2k4cBKy7.net] jsでデスクトップアプリケーションが作
608 名前:ャできるelectronでソフトを作りたいのですが、 http通信のためのモジュールであるrequestモジュールを、main processからrequireするといろんなプロパティを持ったオブジェクトが返ってきてその中の関数でhttp通算できるのですが、 renderer processからrequireするとただのrequestという名前の関数オブジェクトが返されるだけで使い物にならないです。 pc通信でrenderer processからmain processにhttp通信を代行してもらうしかhttp通信をrenderer processで扱うための方法はないですか? [] [ここ壊れてます]
609 名前:デフォルトの名無しさん [2017/05/11(木) 09:15:08.72 ID:2k4cBKy7.net] x pc通信 o ipc通信
610 名前:デフォルトの名無しさん [2017/05/11(木) 15:47:14.50 ID:5AwxqDXW.net] >>595 renderプロセスはブラウザと同じなのでfetch使えばいいですよ
611 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 10:36:16.44 ID:0XJDwknN.net] >>582 なんかごちゃごちゃ言ってる間にブラウザがモジュールサポートし始めたで https://medium.com/dev-channel/es6-modules-in-chrome-canary-m60-ba588dfb8ab7
612 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 21:53:20.88 ID:RdNTmSbh.net] >>598 そりゃサポートはされるだろ 結合しないと遅いってだけなんだから
613 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:55:56.28 ID:zfFA8MYk.net] >>599 モジュール化するほうがファイル増えて遅くなりそうなんだが
614 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:08:46.87 ID:f5G7qLua.net] >>600 だからwebpackでビルドして結合するんだよ
615 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 09:42:16.53 ID:7pndE6Ym.net] >>582 > ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って > 結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ 事実誤認も甚だしい パックする仕組みは配信からの要求で考えられた それをトランスパイルとかいう歪な仕組みを進めている連中が取り込んだだけ 逆だね
616 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 17:57:39.66 ID:DoozTjZk.net] >>602 うん だからhttp配信という構図だとパックする必要があるからimportがあまり意味がないというのは間違ってないとおもうんだが
617 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 22:06:37.81 ID:qm49A/r9.net] 馬鹿に何を言っても無駄っぽいよ ほどほどに
618 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 08:08:37.33 ID:GJiVsoER.net] 正しいか正しくないかでなく 自分が最後に喋って締めないと気が済まない人種というのがいるのだ マウンティング症候群を併発していることが多い ようするにキチガイ
619 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 08:58:24.04 ID:Yfbw1s8U.net] 特徴的なレス引用と改行だから覚えとくといいよ
620 名前:デフォルトの名無しさん [2017/05/14(日) 12:02:12.51 ID:RQAIFfqK.net] >>605 それって相手もそうじゃないとそんな状態が発生しなくね どっちかが最後にレスしなくてもいいと思ってるならいつまでも会話続かなくね
621 名前:デフォルトの名無しさん [2017/05/15(月) 16:08:20.12 ID:K4VlRHcT.net] >>607 自分はするけど相手がするのは許せない人なんでしょ
622 名前:デフォルトの名無しさん [2017/05/15(月) 18:54:23.23 ID:ejKo8zg4.net] 609
623 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:26:28.49 ID:/lAAh6KQ.net] 初めてインストールする初心者なんですが、インストールしようとすると 下記エラーが出てインストール出来ません。 There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. 色々ググってみましたが解決方法がさっぱりです。 どなたか対処方法をご存じでしょうか? ご意見を戴ければ幸いです。
624 名前:デフォルトの名無しさん [2017/05/26(金) 19:28:40.56 ID:GnitEmTF.net] OSを入れなおすと治るはず
625 名前:デフォルトの名無しさん [2017/05/26(金) 19:31:51.91 ID:3n6eNBdq.net] zip版でやったら?
626 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 19:53:10.09 ID:IXNjZ2pR.net] 検索すると解決法がでて来てるじゃん それをやったけど解決しないというのか? それとも検索する能力がないのか? はっきりしろ
627 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 19:56:45.81 ID:r0MrR931.net] 英語読めないバカなんだろ
628 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 20:56:17.06 ID:/lAAh6KQ.net] >>614 その通りです。英語どころか日本語にすら不自由しているバカです。 よろしければ解決方法をお教え戴けないでしょうか?
629 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 02:29:43.21 ID:0Q3Lyy5A.net] >>615 win版はとにかく問題がおおくMSが公式にインストール順序公開してたぞ ぐぐってみろ
630 名前:デフォルトの名無しさん [2017/05/31(水) 17:32:42.62 ID:ZPfn9esu.net] Node v8.0.0 リリース https://nodejs.org/en/blog/release/v8.0.0/ ついに来たか!
631 名前:デフォルトの名無しさん [2017/05/31(水) 18:12:03.95 ID:buo/Bij8.net] >>617 npm5も yarnよりは遅いけど高速化&lockファイル追加
632 名前:デフォルトの名無しさん mailto:sage [2017/05/31(水) 19:21:31.62 ID:JH+W+dlz.net] つーかむしろリリース早くないか? どうしちゃったの最近
633 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 06:22:15.78 ID:YAAERIty.net] 野良ライブラリが挙動不安定になりそうだな。
634 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 02:24:58.72 ID:5FvMCxhk.net] いやん、6にしなきゃなぁと思ってたら8がでちゃったよ
635 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 08:28:21.48 ID:Ya2UW7fS.net] おれ4のまま使ってるんたけど6とか8は何が違うの?
636 名前:デフォルトの名無しさん [2017/06/04(日) 13:22:39.42 ID:x+PHGK1n.net] スーパーサイヤ人だとフリーザしか倒せないけど スーパーサイヤ人2ならセルまでなら倒せるぐらい
637 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:13:46.93 ID:cUbmknIq.net] >>623 具体的に何がかわるんだろう?
638 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:26:15.30 ID:QmvXFzFq.net] 主にasyn/awaitなどのes新機能 kangax.github.io/compat-table/es2016plus/
639 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:31:35.11 ID:cUbmknIq.net] >>625 なるほど ところで下位互換は保たれてるんだろうか?
640 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:44:01.38 ID:075YxDUD.net] semver準拠でメジャーバージョンアップだからブレーキングチェンジがあるということ 些細なものばかりに見えるけど https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8.0.0
641 名前:デフォルトの名無しさん [2017/06/04(日) 16:17:05.52 ID:qUWZGkRh.net] async/awaitとかの大抵の機能はnodeのバージョンアップしなくてもbabelとかtypescript使えば古いバージョンでも使えるよ
642 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 18:39:31.69 ID:+x9cOwwe.net] >>628 これ。typescript使ってるから正直どうでもいい。
643 名前:デフォルトの名無しさん [2017/06/04(日) 22:48:20.08 ID:qUWZGkRh.net] >>629 ts2.1でtarget es5でも使えるようになったしな
644 名前:デフォルトの名無しさん mailto:sage [2017/06/05(月) 21:13:25.69 ID:nBMIbdLx.net] nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる 安いプランのVPSだとメモリ1Gとかだから
645 名前:デフォルトの名無しさん mailto:sage [2017/06/05(月) 22:36:15.71 ID:hT8phHO4.net] >>631 node起動するだけなら7MBしか食ってなかったぞ?
646 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 09:07:00.80 ID:rjyabpco.net] >>632 v8が起動するんだからそんな少ないわけないだろw
647 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 09:39:06.61 ID:dRy+c6tT.net] >>633 こんな感じのようだが? qiita.com/shouta-dev/items/09d7055329710684d9c7 > process.memoryUsage() { rss: 9019392, heapTotal: 5115392, heapUsed: 2658096 }
648 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 12:19:41.83 ID:e4Yt3Epi.net] そりゃnode.js内のメモリ消費量でねーの ランタイム内のプロセスと実行環境自体のプロセスを混同させるような>>634 もアレだがな だからWeb屋は
649 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:46:28.87 ID:rjyabpco.net] ちょっとしたサービス作って待ち受けするだけで普通に数百MBは食うぞ
650 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:56:30.47 ID:yrQvF/57.net] ちょっとしたサービスなら200MB台で済んでる気が
651 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:59:17.60 ID:rjyabpco.net] >>637 うん、実際そんなもんだよ サービスによりけりだけど単位は百MBにはなるね
652 名前:デフォルトの名無しさん [2017/06/06(火) 15:37:19.98 ID:CUcBhzlW.net] えメモリ500MBのvpsじゃキツいのかよ!
653 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 16:38:33.57 ID:rjyabpco.net] >>639 nodeやるなら512は実用的じゃないと思う ssdならスワップ早いからなんとかいけるかもしれんが最低でも1GBは欲しい
654 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 17:48:28.25 ID:RW5d4zA8.net] >>640 node起動するだけなら7MBしか食ってなかったぞ?
655 名前:デフォルトの名無しさん [2017/06/06(火) 17:53:37.43 ID:Q/vepSQ/.net] nodeは依存関係の関係でアホみたいにモジュールロードあるからね
656 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 22:49:25.44 ID:dRy+c6tT.net] >>641 条件は「nodeを起動するだけ」なんだからその程度だろうね。 >>642 そりゃexpressとか動かせばその分のメモリ食うさ でもそれはrailsとかでも同じなわけで、なんのモジュールをロードするかとか 言ってない上、nodeを起動するだけのメモリ使用量しかわかるわけがない
657 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 23:48:02.40 ID:rexPHFK5.net] >>643 バカは黙ってた方がいいとおもう
658 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 23:52:26.78 ID:uLFYe46X.net] >>644 何も言い返せないなら黙っていたほうが良い
659 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:17:35.99 ID:uxrwudqM.net] 7MB君ってほんとうにおめでたい脳味噌してるんだな
660 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:20:57.96 ID:Xdd0wH5l.net] >>643 socket.ioのみの簡単なサービスですら200M越えるんだが? 君はどうやって使用メモリを調べてるのかな?ん? linuxコマンドでも書いてごらん
661 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:22:10.32 ID:c02yQ3lM.net] >>631 の文脈からして何らかのサーバー立てるんだからnode単体の話をするのは空気読めてないよね
662 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:27:56.94 ID:Xdd0wH5l.net] >>648 おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー? で? 検証用のコードと7MBの確認コマンド公開まだかな?
663 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:31:58.18 ID:Xdd0wH5l.net] 649はレス相手間違えた この期に及んでnode単体という屁理屈で逃げてるやつは回答まだかな?
664 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:32:13.23 ID:kUtim7jQ.net] >>647 たった5行でWebサーバーが書ける engineer.recruit-lifestyle.co.jp/techblog/2015-06-22-node1/ httpモジュールを使っている分、nodeだけのメモリ使用量ではないが、 ps uのRSSの値は26000KB、つまり26MBだが?
665 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:33:21.79 ID:kUtim7jQ.net] >>649 > おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー? サーバーたてなくてもコマンド実行するという使い方もあるだろ?
666 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:46:45.23 ID:kUtim7jQ.net] > nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる > 安いプランのVPSだとメモリ1Gとかだから >>631 の文脈から言って、メモリを相当食う何かを動かしているのだろう。 だがそれはnodeの使用量ではなく、モジュールの使用量がほとんど。 nodeのバージョンアップでメモリ使用量が増えたとしても 大部分のモジュールの使用量は変わらないので、気にするレベルにはならない。
667 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 01:45:14.18 ID:GBlW6tcD.net] メモリの使用量を抑えようと思ったら何を使うのが一番いいんだろうな。 やっぱgoとか?
668 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 05:15:29.36 ID:H4RzZJ5B.net] c
669 名前:デフォルトの名無しさん [2017/06/07(水) 14:14:41.23 ID:Kk4r5o3h.net] Cは現実的じゃない Goでおk それかRust
670 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 18:49:24.55 ID:GBlW6tcD.net] 間を取ってobjc
671 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 18:51:47.29 ID:GBlW6tcD.net] v8ってandroidでも動くようにしてるんだよね。新しいバージョンのほうが省メモリの可能性ないかな。 android goとか出してるわけだし
672 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 21:06:02.29 ID:Q5pKLWbH.net] v8のignitionは省メモリ、スモールフットプリントのためだから可能性は十分よ
673 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 22:03:21.25 ID:kUtim7jQ.net] 結局逃げちまってたかw
674 名前:デフォルトの名無しさん [2017/06/07(水) 22:28:48.05 ID:Kk4r5o3h.net] v8がiosで動けばな
675 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 13:07:07.77 ID:oPuedIYN.net] 久々に延びてるから良い話題期待したもれが間違ってたし
676 名前:デフォルトの名無しさん mailto:sage [2017/06/10(土) 23:18:03.35 ID:c4FhnErI.net] >>661 v8じゃないけどnode.jsなら www.janeasystems.com/blog/node-js-meets-ios/
677 名前:デフォルトの名無しさん [2017/06/13(火) 13:54:50.94 ID:ohFJ/OWS.net] selenium使ってるんだけどnodeだとすんごい使いづらいな 他はpythonしか知らないけど
678 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 14:45:14.68 ID:p0Tdw73d.net] 中学生でもランサム作ってるんだから それくらいがんがれ
679 名前:デフォルトの名無しさん [2017/06/21(水) 08:58:52.16 ID:E+Sq/aqi.net] Windows10のユーザーフォルダでnpmにてnode-notifierと言うライブラリをインストールしたのですが ユーザーフォルダ以外でnode-notifierを呼び出しても見つからずにエラーが出ます。 これを解決するにはWinの環境変数でPATHを通さないとダメなのでしょうか? それとも呼び出し時に何か指定すれば良いのでしょうか?
680 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 10:18:32.72 ID:A4qiE8Ip.net] >>666 グローバルインストールっのがあるんじゃ?
681 名前:デフォルトの名無しさん [2017/06/23(金) 10:29:44.77 ID:0OdP20aK.net] >>666 -g
682 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:06:32.62 ID:+O8L6XqQ.net] 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE 今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、 元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。 一部で地獄を見ても。 https://twitter.com/yukihiro_matz/status/869061879389343744 367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/ 372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:??? Railsでシステム作って納品する ↓ Railsはマイナー、メジャーのアップデートが半年以内に必ずある ↓ 客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく ↓ 気づいてから1年以内に通知すれば、5年間無料保証ゲット ↓ つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな 376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS >>378 >>379>>375 客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう 営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。 こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。 これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。 保守に強い言語のみ生き残れる。
683 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:07:07.91 ID:+O8L6XqQ.net] 瑕疵担保責任(かしたんぽせきにん) 瑕疵担保責任のポイント 民法改正で事実上期限が「無制限」になった バグや設計のミスなどは、瑕疵担保責任 納品物に不具合があれば損害賠償を請求される可能性もある 不具合を指摘されたらすぐに行動をとるべし 軽微なミスでも先延ばししない www.atmarkit.co.jp/ait/articles/1706/26/news014.html itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt 改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、 通知後5年以内は修正や報酬の減額などを求められるとしている 全ベンダーが泣いた民法改正案を解説しよう その1 www.atmarkit.co.jp/ait/articles/1609/14/news009.html www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html ポイント1:修補や損害賠償、契約解除の期限がなくなる 従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。 条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、 その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、 11年後まで請求可能なのだ。 もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、 「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、 バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
684 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 11:55:35.82 ID:6M+2cmcB.net] そのぶん金取るだけだよな そんな主張もできない弱小は存在価値ないから他に吸収された方がいい
685 名前:デフォルトの名無しさん [2017/06/28(水) 16:29:31.80 ID:7uiFkJf0.net] >>671 マルチに反応するな
686 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 21:25:29.27 ID:V4ji+kX8.net] >>670 「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、 バグが見つかればユーザーのところに飛んで行き、有償で改修するだろう。 の間違いでは? 普通は不具合の修正に有償で対応する方を選ぶでしょ?
687 名前:デフォルトの名無しさん [2017/06/29(木) 03:44:27.70 ID:KULunYvr.net] app.jsみたいなフレームワーク固有のファイルって どんな役割なのかもよくわからんし 何を書けばいいのかもわからないしすげえ苦手だ。 最低限何を書けば動くの?
688 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 09:04:07.63 ID:nn6a6Cug.net] フレームワークのドキュメントに書いてあるんじゃないですかね… 書いてないなら使う価値がない(品質が水準に達していない)
689 名前:デフォルトの名無しさん mailto:sage [2017/07/08(土) 17:32:49.37 ID:Ra2NVXKJ.net] koa2ってどうよ? 使っているヤシ居る?
690 名前:デフォルトの名無しさん mailto:sage [2017/07/08(土) 21:12:14.30 ID:XWVPkNFz.net] 触ろうと思ってサンプルプロジェクト作って中途半端に弄ってから半年経ったわ
691 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:03:48.07 ID:FGayP2eL.net] jQueryとかnode.jsとかデファクトスタンダードでみんなやってる感のやつはどうも食指が動かない 変わり者ですみません
692 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:23:45.88 ID:nvV/UuF5.net] 本当の変わり者は自分を変わり者とは言わない
693 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:24:16.28 ID:iCzPmO29.net] 中二病やん
694 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:29:34.35 ID:nYzmJ4mS.net] nodeは一部の変態しかつかってないだろ? スタンダードとかないわ
695 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:36:10.71 ID:ODdY4A4c.net] >>678 それでは変わったことをやっている人が みんなやってるものをやれば良いのでは?
696 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:38:52.02 ID:iCzPmO29.net] 人と違うことが誇らしいお年頃〜
697 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 01:14:59.47 ID:A+aVbo6r.net] んなこと言ってるくせに変わったものなんか使ってないんだろどうせ
698 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 02:41:44.02 ID:zx3kMPLK.net] 自分から○○がやりたい!っていうのなら それは前向きな意見であるが、 みんながやってるからやらない。 誰もやってないからそれをやるっていうのは それをやりたいという意志がないので 後ろ向きな考え方だよ。やる気が無いといえる
699 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 08:27:13.61 ID:CH1C34jF.net] みんながやってるからやりたくない、はひねくれ者 気がついたらみんながやってることと違うことをやってた、てのが変わり者
700 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 10:14:40.44 ID:LHQ7nZ8B.net] javascriptとかいうデファクトスタンダードの権化を使うのをまずやめるべきだね
701 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 12:11:00.81 ID:zrZ5NBAs.net] x86やARMも使ってはいけない
702 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 12:43:30.36 ID:TMBKe/0c.net] インターネットを使ってるようじゃ変わり者ではない
703 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 17:11:49.90 ID:88Sc1mx+.net] >>676 async await使ってるならむしろどんどん触るべきじゃないのか。 俺はgoでサーバサイド書いてるからあえて使ってないけど、 全部jsでやるならkoaかも
704 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 18:30:24.07 ID:cjuI8GCo.net] express使ってても自分でミドルウェア書きまくるわけじゃないからな 標準のやらpassportやら使うだけだからasync/await使えて嬉しいことはほぼない 結局エコシステム揃ってる方を使う
705 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:43:08.24 ID:gqDySAuG.net] >>691 koaってexpressのミドルウェア使えたはず。 だからエコシステム的には問題ない。 とは言えasync-awaitもところどころ詰まるところはあるのは分かる (例えばarrayのmapに渡す関数としては使えないとか。) でも今から使うならkoaの方かな。
706 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:46:50.96 ID:Labl8nFy.net] expressのミドルウェア使うならexpressでええやん
707 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 14:16:11.77 ID:gqDySAuG.net] >>693 非同期処理を同期的にかける魅力には勝てない。
708 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 14:57:56.02 ID:szK1finj.net] 691に戻る
709 名前:デフォルトの名無しさん [2017/07/10(月) 16:33:23.58 ID:hbYLDPUX.net] f
710 名前:デフォルトの名無しさん [2017/07/10(月) 17:53:20.41 ID:LYSrTSKk.net] >>692 array.mapに非同期関数渡したいならrxjsで処理してtoPromiseすればおk
711 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 18:48:24.41 ID:gqDySAuG.net] >>697 いや。そもそもPromise.Allがmapと同義じゃんってわかったから あえてrxjsは使わなくてもok
712 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 19:17:56.48 ID:9M+6V9gq.net] まっ CORE ASP使っている身としては、koa2で十分なんだが、JadeからPugへの変更って必要だったのかえぇ〜? いまいちのような感じかする。 軽いCMSにkoa2は便利。 重いのもいけそうではあるが・・・
713 名前:デフォルトの名無しさん [2017/07/10(月) 19:26:02.76 ID:LYSrTSKk.net] >>699 jadeもpugも一緒だぞ 商標の問題で名前変えただけで
714 名前:デフォルトの名無しさん [2017/07/11(火) 16:15:40.20 ID:IkyG2RiR.net] koa2ってなに?koa.jsのこと?
715 名前:デフォルトの名無しさん [2017/07/11(火) 17:21:49.33 ID:9uLf2kf9.net] koe.js v2
716 名前:デフォルトの名無しさん [2017/07/11(火) 17:22:14.73 ID:9uLf2kf9.net] x koe.js v2 o koa.js v2
717 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 23:24:55.50 ID:rvrzGERi.net] あんましexpressもkoaも使ってるぜーって情報発信してる人いない気がする。 知らないうちにブロだクションで動いてるんかな
718 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 23:54:59.61 ID:0kzPGIzN.net] expressってwebアプリケーションフレームワークって感じじゃないからな rubyでいえばrack相当でrails相当じゃないから表に出ない
719 名前:デフォルトの名無しさん [2017/07/12(水) 00:05:15.88 ID:lpTuRvg7.net] expressはnode.js標準に付いていてもおかしくない程度の軽いフレームワークだしな
720 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 01:08:53.04 ID:VV5TEq59.net] ぶっちゃけ、express使うような案件だとphpでよくない?っておもっちゃう
721 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 01:23:02.63 ID:qAT72GnU.net] socket.ioとか使いたいからそれはないな
722 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 03:27:41.84 ID:VV5TEq59.net] >>708 おれもゲームサーバーでnode+socket.io使ってるけど、expressで配信するコンテンツってphpでよくね?ってパターン多い気がする どうしても非同期じゃないと無理ってパターン以外は非同期のデメリットがでかすぎる とくにDBがらみの単純な登録画面とかね phpの数倍の開発コストかかるよ
723 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 04:17:22.08 ID:Rdi75m+a.net] expressでdbアクセスなんてしてないな bffとして使ってるから node/expressの後ろのapi鯖はphpだったりrailsだったりjavaだったり
724 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 04:21:26.67 ID:VV5TEq59.net] >>710 ああ、そういう二段構えならokだね
725 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 07:31:45.77 ID:46U9BX05.net] でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない?
726 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 07:33:23.93 ID:46U9BX05.net] それにasync awaitつかえば非同期処理はかなり自然に書けないかな? 学習コストは高くなるかもだけど
727 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 08:32:57.14 ID:Fm5flkvk.net] async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`) TypeScriptはコンパイルしたくないって言われた、、、
728 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 08:35:16.60 ID:VV5TEq59.net] 最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う 必要な場面で局所的に使うのがnodeっていうイメージ
729 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 11:37:51.18 ID:WN7PTjbN.net] phpだってさすがにスレッドぐらい使えるだろう
730 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 14:22:08.20 ID:sNyzU/qO.net] 非同期DB使えよ
731 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 15:54:06.61 ID:46U9BX05.net] >>716 むっちゃしんどかった。 goを学習してgorutineで書き直したわ。
732 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 09:12:28.43 ID:/vKjgZpt.net] express-resourceを使ってAPIサーバーを作りたいって考えているのですが データベースへのアクセス手順を共通化したくなり、下記のようにしました。 class dbaccess { constructor(db) { this.db = db } index(req, res, next) { console.log(this) // undefined this.db.find({}, (e,r)=>res.json(r)) } // 以下略 } app.use('users', new dbaccess(db)) 1 APIクライアントからの GET / -> this が undefined になっていてエラーになる 2 下記のコードからのindex()呼び出し var dba = new dbaccess(db) dba.index(null, null) -> thisの内容が表示される 何か上手い解決策はないでしょうか。
733 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 10:45:49.25 ID:1TXRI9Gx.net] constructor内で this.index.bind(this)でthisの束縛をすれば解決しませんか?
734 名前:デフォルトの名無しさん [2017/07/24(月) 15:05:38.54 ID:BdqEvISL.net] うむ
735 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 17:23:58.44 ID:/vKjgZpt.net] >>720 お答えいただきありがとうございます。 それを全部のメソッドにやるのも何かしっくりこないので、 下のようにクロージャにしてしまったら何とか期待する動作になりました。 function dbaccess(db) { let _db = db; return { index(req, res) { } // 以下略 } } クラスだと上手くいかないのがイマイチ納得できてませんけど。
736 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 06:14:42.65 ID:5XPEt11J.net] >>722 それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。
737 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 21:46:43.91 ID:1fcXX4D/.net] >>719 おいおい、変なことしないほうが良いぞ もうちょっと調べるべきだろ? 他のプロジェクトでそんな書き方してるか? 昔やったきりで忘れたし今のやり方は変わってるかもしれないから 適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ?
738 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:27:51.60 ID:5XPEt11J.net] >>724 qiita.com/kazusa-qooq/items/23926befcb87c0c7b26f によると req,res,nextの3引数を取る関数を作ればいいみたいね。 偶然にもクロージャーを使うというのは正解だけど nextを省略してるってことは他のミドルウエアを後から追加したら 動かなくなる こういうの見てるとtypescript使うべきって思う。 型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。
739 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:30:30.22 ID:FGFvX1HY.net]
740 名前:="noopener noreferrer" target="_blank">>>719 GCされてね? [] [ここ壊れてます]
741 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 15:41:26.54 ID:2Xw6+C7K.net] 722です 一応、最小限っぽいコードを書いてみました。 www.dotup.org/uploda/www.dotup.org1319642.zip.html users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。 >>724 本家のサンプルも利用者のblog記事なども一通り見たのですが、 見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて 影響なさそうなクロージャにしてしまいました >>725 ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます 本音を言うと、ただ書き忘れただけなのですけど。
742 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:04:27.16 ID:2Xw6+C7K.net] ちなみに、なんでクラスで書こうと思ったのかと言えば クロージャとクラスのインスタンスが内部的には等価だと思っていたからです
743 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:54:58.69 ID:p1ZvRLSy.net] codepenとか使うかgithubに上げるかして欲しいわ。 正直zipでってなんかイャ
744 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:56:23.68 ID:p1ZvRLSy.net] >>728 将来の自分のためにも流儀は合わせておくべき。 コード量の削減に影響するとも思えない。
745 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 21:17:16.61 ID:EkC4vcRh.net] >>728 thisが違うことから等価じゃないことが証明されてるでしょ? じゃあクラスで書こうと思った理由は消滅してるよね? ならクラスで書くのをやめるべきだよね?
746 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 21:49:38.61 ID:ujwXUmoS.net] useの第2引数に何が許されてるのかドキュメント読みなさい
747 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:46:16.26 ID:JVSE3drk.net] forkの経緯を眺めてたけどこれio.jsの時と違って結構めんどくさいな これまでのNodeは人治主義のOSSだったってことか
748 名前:デフォルトの名無しさん [2017/08/27(日) 15:42:03.26 ID:XHFSs/EA.net] シングルスレッドだから遅くならないって言うけど マルチスレッド言語で動的にスケールすればいいでしょ?
749 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:44:19.45 ID:IFPOQiAt.net] Node.js Foundationに対し不安を持つグループによるNode.jsのフォークプロジェクト「Ayo.js」誕生 https://mag.osdn.jp/17/08/25/163000
750 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:53:01.24 ID:4pu+F5Jq.net] >>734 だよな
751 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:53:18.14 ID:4pu+F5Jq.net] >>735 matakayo
752 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:05:49.89 ID:iBnNI7N6.net] シングルスレッドだから遅くならないなんて言っている人なんているかねぇ? C10Kの話ならかなりニュアンスが違う。
753 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:12:18.21 ID:HAnDkIM0.net] 優秀な一名をこき使うから速いんだな。 ほんの少しでも空時間があったら仕事をぶっこむ。 人間なら死ぬわ。
754 名前:デフォルトの名無しさん [2017/08/27(日) 16:17:42.17 ID:XHFSs/EA.net] >>738 メモリ使用量が増えないってnodeのメリットじゃないの? そんなのスケールアウトで十分だと思うんだが
755 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:22:23.64 ID:sNhXAArf.net] > メモリ使用量が増えないってnodeのメリットじゃないの? だれがメモリ使用量が増えないというメリットが有ると いったんだ? お前の脳内か?
756 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 17:35:42.54 ID:0P4eY3kj.net] nodeが良かったのはは非同期apiにより プロセスあたりのリクエスト処理数を高めたからでしょう? マルチプロセスにすればその分リクエスト処理数もある程度スケールしてくれる。ただしdbアクセスは考慮しないものとする
757 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 18:30:42.93 ID:LIgBPoun.net] mongoDBとかNoSQLとはなんだったのか
758 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 18:57:54.53 ID:IIGC9wQX.net] >>743 nodeとは全く別もので、ただのデータベース
759 名前:デフォルトの名無しさん mailto:sage [2017/08/28(月) 11:26:19.65 ID:XrV67/p5.net] Nodeが普及したのは良いサイバーサイドJS環境だったから
760 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 09:43:28.14 ID:PNzW02X+.net] let dict = {} で辞書のように使おうとしたんだけど、 dict['constructor']ではまった アレイにkvペア入れて頑張るしか無いの? 16万項目あるので線形検索は躊躇う
761 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 10:19:27.35 ID:9ZzXxIqM.net] Mapを使うとかlet dict = Object.create(null)とか
762 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 11:53:07.27 ID:sgTDSrY2.net] >>746 16万項目のデータをメモリ内に置くのか。 もっといい方法無いかな。realmとか使えればいいんだけど。
763 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 11:59:45.48 ID:PNzW02X+.net] Object.createで上手くいった try catchで検出してエラーになるのを、別管理と考えてたけど、すっきりした さんきゅ
764 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 12:07:49.40 ID:PNzW02X+.net] >>748 db構築に使うフォーマット変換ツールなので、適切な時間で終了する事が要件で 利用リソース量はあまり気にしない
765 名前:デフォルトの名無しさん [2017/09/03(日) 12:30:07.14 ID:U+3KDr2c.net] eslintとそれにぶら下がるプラグイン本当互換性がない ツール入れる所でトラブらないといけないとかだるいわ これだからJavaScriptなんて書きたくないんだよ
766 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 12:34:43.60 ID:DIhXI1rF.net] eslintのプラグイン何を使おうとしてるの? 使わなければいいじゃない
767 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 12:59:47.72 ID:VH3Jw1dH.net] airbnb辺りのプリセット使えばええやん
768 名前:デフォルトの名無しさん [2017/09/03(日) 20:32:32.58 ID:CKCB7oSp.net] そのairbnb関連のjsx-a11yとかな https://github.com/evcohen/eslint-plugin-jsx-a11y/issues/283
769 名前:デフォルトの名無しさん [2017/09/04(月) 11:57:48.72 ID:xXgpQO1P.net] >>742 そういうのもNginxやApacheがある程度やってくれるようになってるからね。 後ろは好きな言語をそのまま
770 名前:使えばいい。PHP-FcgidとかuWSGIとかRackとかServletとか。 [] [ここ壊れてます]
771 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 18:58:52.14 ID:XPn2hQsA.net] >>755 非同期apiはphp処理系では無理じゃない?phpはインスタンスの生存時間がリクエストを受けてからレスポンスを返すまでの固定だよね。 どうやってイベントループ回すの?
772 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 20:39:48.99 ID:tWvDAnX3.net] >>756 フレームワークによってはイベントループで生存期間が無限のものもあったはず。 前の会社で、そういうWebSocketフレームワーク使おうとしてたよ。 …そんな用途全く想定してない普通のPHP用のオレオレライブラリ組み合わせて メモリリーク起こしてたけど(藁
773 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 08:00:30.55 ID:JsNUX7wh.net] >>757 メモリリーク起こすなら使えないな。 phpってインスタンスの生存時間短い前提だから、 メモリリークってさほど気にしなくて良い言語なのかも。 素直にjsでいい気がするけどね。今の時代。 yahooで勤務してる知り合いも今はjsでサーバサイドを書いてるってさ。
774 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 14:51:11.75 ID:x6NjkUnp.net] もともとCGIはリクエスト毎にプロセス作ってサービスしてた なので、一つのリクエストが終了するとperlやphpのプロセスも終了するので、オブジェクトを解放(リファレンス外す)しないCGIが多くある ところが、これじゃおせーよと言うことで、終了させないで無理やりに複数リクエストを処理させる仕組みをでっち上げた これがPHP-FcgidとかuWSGI リークしまくりのサービスが出来上がり 三菱とかやりそうだろ
775 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 15:05:46.14 ID:EAdtS/tk.net] だから一定数のリクエストを処理したらプロセス再起動する 三菱でも大丈夫
776 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 15:06:06.76 ID:y9gU3zED.net] メモリだけじゃなくて CPUもファイルI/Oも簡単に食い潰せるからな
777 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 16:00:05.67 ID:JsNUX7wh.net] >>760 なるほどね。大雑把な作りだ。 大昔Dephiの案件をやった時に、PLが ひとかたまりのEXEを画面ごとにバラバラのEXEにして 切り替えるたびに終了させる仕組みを作り出して、メモリリークを 極力抑える仕様にしてたの思い出した(データはDBにおいてる)
778 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 17:07:49.21 ID:x6NjkUnp.net] >>760 三菱は自動再起動なんて技術がないから、連絡受けて手動で再起動してた
779 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 21:18:48.34 ID:CWS2BygD.net] 何故、三菱が引き合いに出されるのだ? なんかやらかしたんかい。
780 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 21:34:30.85 ID:tZ2T0w/m.net] Librahackで検索
781 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 22:59:23.06 ID:CWS2BygD.net] 三菱電機インフォメーションシステムズ (MDIS) 製のソフトウェアは、 1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた これか? 9秒に1回以上で破たんするなんてどんな実装か興味津々
782 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 23:25:37.77 ID:tZ2T0w/m.net] これを読むとイメージがわかる takagi-hiromitsu.jp/diary/20130316.html el.jibun.atmarkit.co.jp/pressenter/2012/09/1-0f4e.html (事件をモデルにしたフィクション)
783 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 03:05:39.43 ID:x1ExMc+m.net] そもそもDOMとのメモリリークとかまともに対応してきたJS界のエンジンが優秀過ぎるだけで 他のサーバサイド言語で環境を跨いた循環参照とか上手く処理できるエンジンは無いし、他のGC技術や調整も何年も遅れてる
784 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 06:19:08.39 ID:+w9zPnXt.net] WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ? 普通にやったんじゃできないよね。
785 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 07:18:46.25 ID:K4PeVUi8.net] 応答しなければいい
786 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 09:17:55.33 ID:9vlATu9m.net] >>769 expressだって、グローバルスコープの変数にコネクション保持すれば、その参照切るまで残るぞ
787 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 12:06:54.84 ID:OJmUELTm.net] >>769 膨大な数のリクエスト処理するのになぜ閉じるのかが逆に理解できないんだけど 普通WebアプリやサービスのDBはつなぎっぱなしだとおもう
788 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 12:43:46.04 ID:rxsfMKHp.net] Webのセッションが終わってるのにコネクションをセッションのために10分間保持してたって事でしょ? 普通はコネクションは閉じないがWebのリクエスト毎に紐付けは開放でしょ。
789 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 13:10:59.01 ID:ZzrrO/3t.net] >>773 アプリサーバーとか作ったことある?
790 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 14:19:14.16 ID:oGYUX/gJ.net] >>773 その紐付けを解放しないのが三菱流
791 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 19:20:21.66 ID:+w9zPnXt.net] >>774 ないズラ そんなヤツ僅少だろ
792 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 19:23:08.30 ID:+w9zPnXt.net] >>775 三菱に限らずSIerの技術力低下が半端ない
793 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 22:32:27.03 ID:9vlATu9m.net] 自分達の底辺技術レベルが原因で、無実のエンジニアを罪人にして、ほっかむりしたのは三菱だけ
794 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:15:56.20 ID:7o1xz83o.net] ちなみにDBってopenとtransactionを分離している奴があるけど、これって何で? 例えばIndexedDBでもそうで、open後にtransactionを作ってアクセスしなければならない。 しかし普通に読み書きだけなら DBWrite(DBname, objectStores, key, value) みたいなAPIでクエリ毎にopen/close繰り返した方が使う側は楽だよね。 何らかの理由でopenが重いから分離しているのだろうけど、 普通に実装すればそんなに重いとも思えない。 (実際はopenは数秒かかる時もある程重いが) これって何で? ちなみに類似ケースはXHRで、通常は毎回XHRをnewするだろ。 indexedDB.openもそれに近くて、本来はオブジェクトを初期化するだけで終わるはず。
795 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:27:44.82 ID:vWsWUiiy.net] >>769 > WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ? > 普通にやったんじゃできないよね。 コネクションプールを使ったら普通にそうなりますが?
796 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:28:57.91 ID:vWsWUiiy.net] >>779 DBをopenしてselectしてcloseするなら トランザクションいらないでしょ?
797 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:31:58.67 ID:vWsWUiiy.net] >>779 > 何らかの理由でopenが重いから分離しているのだろうけど、 > 普通に実装すればそんなに重いとも思えない。 ゆえにopenが重いから分離しているという あなたの想像は間違いだって言うこと。 根拠のない想像を結論にしないようにしよう 検証の前にあるのは結論ではなく仮定という トランザクションは複数の操作を一塊にするもので openが軽いのとは関係ない話
798 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:47:45.77 ID:pIgMfxSJ.net] >>781 IndexedDBの場合はトランザクションは常に必要だ。 他の楽観的なトランザクション分離のDBについては知らん。 >>782 では何故openとtransactionを分離するんだ? 最初からtransaction単位でopen/closeするAPIにしておけばいいだけの話だろ。 そこを分離して手動でやらせる理由が分からん。
799 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:55:56.99 ID:vWsWUiiy.net] IndexedDB特有の話なら、IndexedDBの話だって書けよ はい、トランザクションつかってませーん。ばいなら qiita.com/butakoma/items/2c1c956b63fcf956a137#%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%B9%E3%83%88%E3%82%A2%E4%BD%9C%E6%88%90 オブジェクト
800 名前:ストア作成 オブジェクトストアは、RDBでいうテーブル。 var storeName = 'sampleStore'; var openReq = indexedDB.open(dbName, dbVersion); // オブジェクトストアの作成・削除はDBの更新時しかできないので、バージョンを指定して更新 openReq.onupgradeneeded = function(event){ var db = event.target.result; db.createObjectStore('storeName', {keyPath : 'id'}) } [] [ここ壊れてます]
801 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:57:25.86 ID:vWsWUiiy.net] IndexedDB特有の話ならtransaction使わないと readonlyなのかreadwriteなのか決められないからだろ
802 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:14:01.64 ID:mcCYyLIS.net] >>779 DBへの接続(open)とトランザクションは別のレイヤーだからだよ 1つの接続で2つのトランザクションを実行したい場合どうすんの? transactionを明示的に指定しない場合に デフォルト設定で例えばステートメント単位でトランザクションになるような仕組みがDBにあればtransaction指定は必須でなくなる 一般的なRDBはそうなってると思うけど
803 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:20:17.29 ID:pIgMfxSJ.net] >>784-785 つかお前根本的に分かってないだろ。 IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。 これはMDNからはとてもそうは読めないのだが、とにかくそう。 そしてAPIが > DBWrite(DBname, objectStores, key, value) > DBWrite とかでいいのではないか?というのが俺の疑問なのだが。 何故かは知らんがDBには「繋ぎっぱなし」の文化はあるんだよ。>>772 IndexedDBのAPIからもそれは読みとれる。 > Web アプリが別のタブで開かれているときにバージョンを変更する > https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB 毎回閉じる文化ならそもそもこれは要らない。 MDISはこの「繋ぎっぱなし」の文化でWeb側にも解放したらリソースが枯渇しただけだろ。 ただそもそもこの「繋ぎっぱなし」ってなんなのさ? open/closeが軽いのなら毎回open/closeすればいいだけだし、 普通に実装すれば重いとも思えないし、ということなのだが。 (ただし実際にはIndexedDBでもopen/closeは重い)
804 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:26:20.56 ID:pIgMfxSJ.net] >>786 > transactionを明示的に指定しない場合に(以下略) これについてはそれでいい。 APIコール1回=1つのtransactionになるって事で。 > 1つの接続で2つのトランザクションを実行したい場合どうすんの? これってどういうケース? その2つのトランザクションをくっつけて1つのトランザクションにしておけばいいだけの話では? 並列性を限界まで出したくて、例えばライト/リードでトランザクションを分けておきたいとかか?
805 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 03:16:51.74 ID:mcCYyLIS.net] >>788 1回の接続で複数トランザクションを実行したいケースってあんまりないのかな 例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら? トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね だから一般的にはトランザクション境界と接続の開閉を一つにしたAPIってのはいい設計じゃないと思う >>787 繋ぎっぱなしの文化なんかなくて、ただの開放漏れのバグだよ openしたらcloseするのが必須
806 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 08:36:52.78 ID:Q9xrmP/+.net] >>780 コネクションプーリングはコネクションを使いまわす仕組みだからDBには繋がったままだけどWebのセッションからはリクエストの度に切り離される。 とっくに終わってるセッションがコネクションを独占するようなアホな作りはどうやったらできるのかって事。
807 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 08:40:11.92 ID:Q9xrmP/+.net] >>787 繋っぱなしってコネクションプーリングのことでしょ。アプリから見ると毎回、open/closeしてるように見える。
808 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:36:43.18 ID:vWsWUiiy.net] >>790 コネクションを独占ってなんだ? 異なるセッションから、コネクションを使いまわすのがコネクションプーリングなんだが? セッションが終わってるっていうのなら、コネクションは明け渡してるだろ
809 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:38:38.44 ID:vWsWUiiy.net] >>787 > IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。 じゃあなおのこと、openでトランザクションは貼れないな。 だって、何の操作をするかで、トランザクションの種類が変わるわけで openした時点ではわからないんだから
810 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:40:18.14 ID:vWsWUiiy.net] >>787 > そしてAPIが > > DBWrite(DBname, objectStores, key, value) > > DBWrite > とかでいいのではないか?というのが俺の疑問なのだが。 トランザクションは複数のDBWriteを 一つにまとめるものなんだから それじゃだめだろって言ってるんだが? いいからトランザクションを勉強してくれ お前、根本的に分かってない(笑)
811 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 11:27:15.08 ID:K/Y+ost0.net] >>792 >>766-767
812 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:22:44.56 ID:pIgMfxSJ.net] >>789 ただのバグでMDISが糞だというのは同意だが、APIは糞だぞ。 > 例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら? これなら2つトランザクションを打てばいいだけ。それで何の問題もない。 > トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね ねえよ。具体的に挙げられないだろ。 open/closeがAPIにある場合の利点は、連続した同一DBに対する2つのトランザクションで、 ・open/transaction1/close/open/transaction2/close を ・open/transaction1/transaction2/close とでき、真ん中のclose/openを省ける分速度が稼げることだ。 しかしこの場合に、DB内部でキューイング機構を持ってこの余分なclose/openを自動的に省き、 ・ユーザ側で手動open/closeした場合と、 ・ユーザAPIはトランザクション単位で、DB内部で自動open/close で、パフォーマンスが全く変わらない場合、前者を使う理由がないだろ。 (現実的にはユーザ側でコネクションプールを実装する必要であり、 これの代替としてDB内部でキューイング機構を持っていてもパフォーマンスは変わらないはず) open/closeをユーザ側に見せている時、ユーザ側の解は以下で、 A. いちいちopen/closeして使う。 B. これがウザイから自前でラッパを用意し、 > アプリから見ると毎回、open/closeしてるように見える (>>791 ) ようにする。 C. さらにこれもウザイから、何らかの既存ラッパ(PouchDBとか)を使う。 だろ。俺はまずAを試し、スループットが全く出ないのでBにしたが、車輪の再開発感ありまくりだった。 コネクションプーリングするのが常なら、最初から付けとけよボケ、でしかない。 (なおPouchDBもdb.open必須。多分これがDBのAPIの標準形だからだと思う)
813 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:23:19.38 ID:pIgMfxSJ.net] DBのAPIは意味不明で、そもそもオブジェクト指向にも反してる。 ユーザがやりたいのはread/writeであって、open/closeではない。 File.openの代わりにHDD.open+File.readというAPIにする奴がいたら、死ねでしかないだろ。 open/closeってもしかして今みたいなパケット相乗り回線ではなく、専用回線を掴んでいた時の名残か?
814 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:24:30.23 ID:pIgMfxSJ.net] >>790 MDISのケースは多分、図書館内端末用の界面にそのままWebを接続しただけだろ。 この場合、見た目は問題なく動く。 リソース枯渇のケースはコードから落とすしかないが、レビューが新規コードだけなら無理だ。 (この場合は新規コードはほぼ無しで、問題は今動作しているコード内にあるから) おそらくMDISもB方式で、自前でコネクションプーリングしてる。 これは館内端末用で、端末に行列が出来ているかどうかは知る由もないから、closeはタイムアウトで10分とした。 ここまでは妥当な設計で、館内端末なんて高々数十台だし、問題なく動く。 問題はこれをそのままWeb側にも解放したことで、 この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。 本来は、 D. Webからの入力を受ける「仮想端末」を用意し、Web入力は一旦全部そこで受けてからDBアクセス。 E. open/closeを毎回やるようにする。(Aと同じ) のどちらかが必要で、本来はDの方がいいし多分そうしていると思う。 Dの場合はDDoS時にも館内端末は無傷
815 名前:ナ済む。 追加コードは仮想端末部分だけであり、既存コードには一切手を入れる必要がない。 Eの場合は全体のパフォーマンスが「いちいちopen/close」分だけ落ちる。 とはいえ真面目にDBを組んであればUIからでは見えないとも思う。 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。 (そうなっていない場合は全体ソースを見直す必要があり、現実的ではない) [] [ここ壊れてます]
816 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 23:49:21.12 ID:mcCYyLIS.net] >>796 もうめんどくさいな君w DBへの接続とトランザクション境界を一致させた画期的APIを作って流行らせればいいよ? 一つのユースケースたけに特化したものとしては別にあっても悪く無いと思うよ ただなぜそういう設計のものが存在しないのか考えてからね
817 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:02:01.91 ID:al+wrNfN.net] >>797 > ユーザがやりたいのはread/writeであって、open/closeではない。 そのうち二回のwriteを実行して二回目のwriteで エラーが起きた時に一回目のwriteもロールバックするために トランザクションがあるんですよ?
818 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:12:33.18 ID:al+wrNfN.net] https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB#Getting_data_from_the_database データベースからデータを取得する よーし、今から customers テーブルのデータを読み込むぞー! var transaction = db.transaction(["customers"]); おい、ちょっとまて俺はdbオープンした時に 自動的にトランザクション実行するぞ! 全てのテーブルに対してreadwriteロックじゃ 誰も読み込みも書き込みもできない 俺はcutomersテーブルなんか触らないけどなwww こういう迷惑バカが居るから、openとトランザクションは別にするべき
819 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:14:33.64 ID:al+wrNfN.net] >>798 open/closeのパフォーマンスを気にしてるのはお前だけだ 忘れろな
820 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:16:06.59 ID:al+wrNfN.net] >>798 > 問題はこれをそのままWeb側にも解放したことで、 > この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。 誰もコネクションが枯渇したなんて言ってない
821 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:26:53.73 ID:al+wrNfN.net] >>798 当たり前すぎることだが、MDISのシステムは 「1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた」 と言ってるだけで、 ウェブのクライアントが直接DBに接続したなんて誰も言ってない。 そもそもそんなことはできない ブラウザからデータベースに接続することなんてできない。 IndexedDBはお前、それブラウザん中に実装されてるもんだ。そこを勘違してたわけかw MDISのシステムはIndexedDBを用意してなんかいない。時代的に使ってすらいないだろう 本当に当たり前のことだが、 > D. Webからの入力を受ける「仮想端末」を用意し 仮想端末じゃなくて、普通はアプリケーション・サーバーっていうんだよ。 PHPだとウェブサーバーの場合もあるな。MDISも当然その仕組みだ > E. open/closeを毎回やるようにする。(Aと同じ) open/closeを毎回やっても、パフォーマンス向上のために内部的にデータベースに 接続しっぱなしにする機能がコネクションプールだ。正確言うと 前回のリクエストで使った(使い終わった)コネクションを使いまわす。 > 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。 あははw ばーかwww アプリは毎回open/closeをしてるんだよ。 コネクションプールというミドルウェアがcloseした時になにもしないように置き換えてるんだよw
822 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:27:51.16 ID:al+wrNfN.net] コネクションプールを行うためのミドルウェアが
823 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 08:27:34.35 ID:HacXztT4.net] >>802 少なくともコネクションプーリングを考えたヤツはopen/closeのコストが大きいと考えてる。 数十ミリ秒と数ミリ秒の差が影響するシステムもある。
824 名前:デフォルトの名無しさん [2017/09/09(土) 11:05:16.16 ID:2lDsKHBN.net] 連想配列のキーに使用できる文字列の仕様ってどこに載ってますか?
825 名前:デフォルトの名無しさん [2017/09/09(土) 11:18:09.89 ID:2lDsKHBN.net] 連想配列にキーが存在するかチェックするのならinが速いな const o = { 'a': 1, 'b': 2, 'あ b': 3, }; const key = 'あ b'; const l = 100000; console.time(); for (let i = 0; i < l; i += 1) { key in o; } console.timeEnd(); console.time(); for (let i = 0; i < l; i += 1) { o.hasOwnProperty(key); } console.timeEnd(); //undefined: 5.921ms //undefined: 9.741ms
826 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:31:15.85 ID:LLd0E2c+.net] 連想配列ならMapが最強 従来のオブジェクト形式が良いにしても o = Object.create(null)でo[key]の方が早い
827 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:46:17.16 ID:36A1ffms.net] o[key] = 0 で破綻するやん
828 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:50:30.88 ID:al+wrNfN.net] >>806 だからなんだよ。 トランザクションの話をしてる時に open/closeのコストを考えるなって話だろうが
829 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:01:05.07 ID:al+wrNfN.net] >>808 > 連想配列にキーが存在するかチェックするのならinが速いな 一回あたり 59.21ナノ秒(=0.00000005921秒) 97.41ナノ秒(=0.00000009741秒) だと10万回〜100万回ぐらいチェックしない限り 速度を気にしたって意味なさそうだね。
830 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:42:11.18 ID:gq9mYezw.net] Object を連想配列にした場合、キーを、__proto__ にすると誤動作するから、 そのキーだけ、特別な処理が必要 他にも、使えないキーがあるかも
831 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:46:58.91 ID:al+wrNfN.net] >>813 どういう時に __proto__ をキーに使ったの?
832 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 14:34:12.81 ID:gq9mYezw.net] 英文から、すべての単語を取り出して、出現回数でも調べたのかな? どこかのサイトで、そういう質問を見た
833 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:01:25.52 ID:1mapG51j.net] つい最近>>746 でオレが聞いた
834 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:37:47.37 ID:al+wrNfN.net] >>815 そういう場合は、適当なプリフィックスをつけるだけで解決するね obj['@' + word] = なんとか
835 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 16:00:58.16 ID:3M7laixG.net] Object.create(null)で作ったオブジェクトには__proto__は無いし自由に値を設定できるこれ豆
836 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 17:11:43.49 ID:gq9mYezw.net] Object.create() は、ECMA 5.1, IE9 以上か こういう機能が無かった、ES3 の頃の話かな
837 名前:デフォルトの名無しさん [2017/09/09(土) 19:32:09.22 ID:JfRpRKzR.net] chromeのdevtoolsからconsole.dir({})やるとオブジェクトの中身が見れるけど nodejsの場合はどうやって見るんでしょうか?
838 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 09:40:29.07 ID:vJ3AiMg+.net] ○次受けが多いほど退場率が早くなる。高くなる 直受けの50万 客:いつまでもうちにいていいよ 3次受けの50万(客は90万払ってる) 客:短期延長していい? 5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 長時間労働 高稼働 高スキル要求が多い フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。 労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる eJobgo JIET JISA で検索 優良エージェント・優良サイト 首都圏IT(PE-BANK) プログラマーズ
839 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 14:01:13.14 ID:yQ6PO1c5.net] https://github.com/rook2pawn/node-ddos 調べ物をしている最中にこんなの見付けたんだけど Httpdがリクエスト受け取ってる時点でDDoS対策にならないんじゃないの?
840 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 14:33:55.38 ID:ziqXdae+.net] >>822 動作の軽いリバースプロキシ立ててそこで対応す
841 名前:るほうがよさそう [] [ここ壊れてます]
842 名前:デフォルトの名無しさん [2017/09/12(火) 15:30:08.72 ID:bSzAw540.net] node 8.0ってimpotr対応してないの?
843 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 18:35:03.20 ID:e3er3ToK.net] Chromeですら対応したというのに・・
844 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 18:49:24.80 ID:BAm9hYWq.net] node 8はこの秋LTSになるんだからアグレッシブに最新機能は入れないよ node 9には入る
845 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 21:29:56.96 ID:LuYVlbWB.net] くそっ、typoかよ騙された
846 名前:デフォルトの名無しさん [2017/09/15(金) 21:47:46.74 ID:v6+6iXpW.net] >>810 どういうこと?くわしく
847 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:16:55.75 ID:AmSlTqPm.net] const o = { a: {name: 1}, b: {name: 2}, }; ↑をObject.create(null)で作りたいんですけど const z = Object.create(null); z.a = Object.create(null); z.a.name = 1; z.b = Object.create(null); z.b.name = 2; console.log(z.a.name, z.b.name); こう書くしかないんですかね?これだと読みづらくて1番目のようにデータが見やすく作る方法ってないですか?
848 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:30:32.45 ID:Xh3vGrxx.net] なんでObject.createしばりなの? リテラル使っちゃだめな理由は?
849 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:36:18.16 ID:QyBaQfPQ.net] >>828 >>809 を読め >>830 >>746 とか>>813 を読め
850 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:40:38.42 ID:wJEpgv7W.net] リテラルじゃ継承されるからじゃね
851 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:01:15.52 ID:xdW9+GRk.net] >>829 Object.assign(Object.create(null), { a: {name: 1}, b: {name: 2}, }) ; >>810 undefinedと比較
852 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:09:23.95 ID:YClTS+Ib.net] >>833 Object.assignはシャローコピーだから>>829 と同じじゃない undefinedとの比較は>>809 とは違うしどっちみちundefinedを値として使うと破綻する
853 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:18:50.51 ID:gf/ZkNkm.net] >>831 え〜〜、Object.prototypeのプロパティに被る可能性があるからっていう理由で >>829 みたいな書き方になっちゃうの。。。用途によるんだろうけど何とも言えない気分
854 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:36:48.84 ID:NSNMTUH3.net] 使うプロパティの種類が限られてるなら 気にする必要ないだろ
855 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 08:30:48.03 ID:7pQmikz8.net] >>829 jqueryから$を取り上げよう
856 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 08:33:39.21 ID:NSNMTUH3.net] >>837 また新しいライブラリを作ろうって話かよ。 lodashでできるんじゃね?
857 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 09:45:53.23 ID:7pQmikz8.net] 簡単な関数だよ $(name1, value1 ...) で>>829 みたいな事をすれば良い
858 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 09:57:17.44 ID:NSNMTUH3.net] そうするとjQueryと勘違いされるから 違う関数名のほうが良さそうだね
859 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 11:34:59.96 ID:C+9D3UXm.net] にわかばっかだなここ { __proto__: null, a:1 } を使えば良いだけだろ…… その程度も知らないようじゃJSer失格 恥ずかしいよほんとに
860 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 18:21:39.65 ID:/o2/v2Gm.net] chromeのdevtoolsのコンソールでconsole.log.を補完すると色々でてくるんですが、 console.logの中にはnameってプロパティがあるんですがこういうのはObject.getOwnPropertyNamesで取れました console.log(Object.getOwnPropertyNames(console.log)); console.logに含まれるhasOwnPropertyとか__proto__とか__defineGetter__なども関数とか for (let v in console.log) { console.log(v); } じゃとれませ
861 名前:んでした どうやって取るんでしょうか? [] [ここ壊れてます]
862 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 18:46:19.62 ID:GikFp8do.net] もはやnode.jsの話じゃないな node.js使わずchromeでやってるんだからわざとやってるだろ まずはjavascript prototypeでググれ それで分からないことはどこかのjavascriptスレで聞け
863 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 21:08:44.37 ID:qXL21HWW.net] ?????????????????
864 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 21:17:16.00 ID:fS24z2RM.net] バッドノウハウ多すぎ!!!!!!!!
865 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 09:39:33.63 ID:FQFctnSq.net] >>843 chromeのコンソールでconsole.logした方が解析しやすいじゃん バカなの?
866 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 18:24:28.11 ID:bBG8AL9E.net] >>842 getOwnPropertyNamesは名前の通りOwnなプロパティしか取れん for-inは継承を遡るが、列挙不可にされてるプロパティは取れん ビルトインプロパティは基本的に列挙不可されているので 結局for-inでも殆どOwnなプロパティしか取れん それを取るには、__proto__を繋げていって一つ一つにgetOwnすること
867 名前:デフォルトの名無しさん [2017/10/16(月) 07:08:15.82 ID:x77nDEIG.net] https://nodejs.org/en/ の、8.7.0 Current をインストールしました。 で、 node.jsを立ち上げ、 .helpは通るのですが、 $ node や、 $ node -v は、 SyntaxError: Unexpected identifier になってしまいます。 どうすればいいでしょうか?
868 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 07:58:53.13 ID:BYvG9erR.net] コマンドプロンプト・PowerShell で、 node -v とコマンドを打つと、そのコマンドの実行ファイルを、OS が探す必要がある つまり、その実行ファイルの場所を、環境変数PATH などで、OSに教える必要がある 環境変数PATHに指定していなくても、 絶対・相対パスで指定すれば、実行できるはず Windowsのパス(PATH)の読込順 と起動される順番 takuya-1st.hatenablog.jp/entry/20110116/1295188903
869 名前:デフォルトの名無しさん [2017/10/16(月) 08:26:32.58 ID:x77nDEIG.net] >>849 レスありがとうございます。 では、どうやればいいのでしょうか? node.exeは↓にあります。 "C:\Program Files\nodejs\node.exe"
870 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 08:44:36.72 ID:H4ZQF/LB.net] これはひどい
871 名前:848 [2017/10/16(月) 09:14:18.01 ID:x77nDEIG.net] >>851 インストールした、 node.jsのコマンドプロンプトみたいな所に、 ..helpを打てば、 ↓を返してくれる。 .break Sometimes you get stuck, this gets you out .clear Alias for .break .editor Enter editor mode .exit Exit the repl .help Print this help message .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file しかし、 $ node -vを打っても、 エラーになってまう。 これは不思議なことだと思わないかね?
872 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 11:09:57.97 ID:FZpcfz8T.net] 思わんよ お前だからな
873 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 15:17:21.46 ID:kN1YFDVK.net] なんでそんなレベルでnode.jsインストールしようと思ったんだろ
874 名前:848 [2017/10/16(月) 19:08:59.31 ID:x77nDEIG.net] >>854 https://www.webprofessional.jp/beginners-guide-node-package-manager/ このページの黒い部分でいうと、 > console.log('Node is running'); や > .help これは、 実行出来るのです。 この状態でバージョン確認をするにはどうすればいいのでしょうか?
875 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 19:46:31.00 ID:MK8giXG1.net] >>850 C:\Program Files\nodejs\node.exe
876 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 20:38:10.52 ID:VwEzpL/B.net] >>855 > process.version
877 名前:848 [2017/10/16(月) 20:56:45.49 ID:x77nDEIG.net] >>857 お、ありがとうございます。 通りました。 じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。 $ which node $ node --version
878 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 21:14:41.96 ID:VwEzpL/B.net] >>858 849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す パスの通し方とかでググって コマンドプロンプト使う時の基本だから
879 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 21:32:19.39 ID:dl4DNYXd.net] windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな $は入力するものじゃないしwitchコマンドはwindowsにはない
880 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 23:57:03.44 ID:BYvG9erR.net] 例えば、コマンドプロンプトで、 where notepad と打てば、メモ帳の実行ファイルの場所が、表示される where node と打てば?
881 名前:848 [2017/10/17(火) 01:14:58.50 ID:ISfP7NF8.net] 皆さん、レスありがとうございます。感謝します。 ちなみに、 コマンドプロンプトで、 C:\Windows\system32>where notepad と打つと、 C:\Windows\System32\notepad.exe C:\Windows\notepad.exe と表示されます。 さらに、 C:\Windows\system32>where node と打つと、 C:\Program Files\nodejs\node.exe と表示されます。 さらに、 https://qiita.com/taiponrock/items/9001ae194571feb63a5e ここを参考にして、コマンドプロンプトに、 C:\Windows\system32>node --version と、打つと v8.7.0 と表示されます。 ってことは、「nodejsのパスは通ってる」ってことはないですか? さらに、コマンドプロンプトで、 C:\Windows\system32>npm --version と、打つと、コマンドプロンプトがどこかに行って戻って来ません。
882 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 02:57:58.14 ID:HKb0WdLR.net] npm の仕組みについても、検索して調べて! 思い付きで、色んなコマンドを打っても、動かない C:\Windows\system32>node --version C:\Windows\system32> そもそも、ここは、Windows のシステム領域だろ。 こんな場所へは行かないし、ここからコマンドを打つことは、絶対にない 自分のホームディレクトリ以下に、プロジェクトフォルダを作って、 そこからコマンドを実行する プロジェクトフォルダ>node --version これで、コマンドが探せないのなら、 >>849 のサイトを見て、勉強する OS の仕組みについて、何年も勉強していなければ、 環境構築・システム運用はできない
883 名前:848 [2017/10/17(火) 03:06:35.78 ID:ISfP7NF8.net] つか、わかった。 スタートメニューに色々出来るけど、 nodejs と、 Node.js command prompt があって、 Node.js command prompt を立ち上げるべきを、 nodejs を立ち上げてたのだと思う。
884 名前:848 [2017/10/17(火) 03:18:05.69 ID:ISfP7NF8.net] gihyo.jp/dev/serial/01/nodejs/0001 つかこれの、真ん中ぐらいの、 >を実行すると,コンソールに「foo」と出るのが確認できます。 これが確認出来ました。 ありがとうございました。
885 名前:848 [2017/10/17(火) 03:22:08.69 ID:ISfP7NF8.net] しかし、nodejsも、Node.js command prompt も、 どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね?
886 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 10:55:35.86 ID:tiaX2vSA.net] それを調べて糧にするのがお前の役目だろ
887 名前:848 [2017/10/17(火) 11:29:12.47 ID:ISfP7NF8.net] node.jsを使ってjQueryチックにWebサイトをクローリングする方法 https://liginc.co.jp/programmer/archives/4848 これが半分ぐらい出来たんですけど、 これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね?
888 名前:848 [2017/10/17(火) 11:30:33.39 ID:ISfP7NF8.net] 私的には.csvのデータで十分なんだけど。
889 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 15:55:26.78 ID:G9wCIPXR.net] プログラミングの学習が目的ではないみたいだし 潔く諦めてGUIのスクレイピングツールを使え 自分で学ぼうとしないやつを いつまでも相手にするほどみんなヒマじゃないから
890 名前:デフォルトの名無しさん [2017/10/17(火) 19:05:26.58 ID:OFQ0CJNG.net] >>868 SQLiteおぬぬめ
891 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 22:43:19.58 ID:HKb0WdLR.net] MongoDB, Redis など、NoSQL系DB で良い
892 名前:デフォルトの名無しさん [2017/10/18(水) 11:32:51.58 ID:RFRRa2Hk.net] KVS最強
893 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 09:02:07.81 ID:2VeGFVWI.net] windows10をFCUしたら node-notifierと言うライブラリが機能しなくなってしまいました。 呼び出すとエラーも出さずに消えてしまいます。 どこを確認すべきでしょうか?
894 名前:デフォルトの名無しさん [2017/10/23(月) 12:01:05.02 ID:bv0ZvSeb.net] クリーンなPCで検証
895 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 17:27:32.02 ID:wXo7lKEI.net] コレってnode.jsでGoogle Assistantを呼び出せるの? https://github.com/actions-on-google/actions-on-google-nodejs
896 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 09:20:24.78 ID:qskrUnxL.net] >>876 書いてあるだろ
897 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:07:41.82 ID:bLT6lfrr.net] expressってproductで使われてんの?
898 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:13:56.96 ID:RicVp4Qn.net] ツイッターもインスタグラムも使ってるよ
899 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 19:46:41.59 ID:cCQG4q+b.net] koa使おうぜ
900 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 09:20:41.79 ID:tbSBcvrg.net] 複数人体勢のexpressのほうが安心 koaは作者一人だから不安だから使わない
901 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:16:07.71 ID:tccVqtCS.net] koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品
902 名前:デフォルトの名無しさん [2017/12/01(金) 17:33:36.24 ID:Tsnnxn0j.net] koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。 いいで〜 koa2+react。
903 名前:デフォルトの名無しさん [2017/12/01(金) 20:58:49.48 ID:dEoQxhVh.net] >>883 うむ
904 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 05:34:12.07 ID:IJ6GXagf.net] サーバサイドでreactってどういう意味?
905 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 08:11:38.76 ID:zj58uySz.net] ssrじゃね?
906 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:17:05.09 ID:JzqKudWn.net] ssrっていらなくね?
907 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 13:37:03.76 ID:iXlrNF2g.net] ツイッターもインスタもNetflixもやってるぞ
908 名前:デフォルトの名無しさん [2017/12/04(月) 01:47:10.73 ID:sdiyRgle.net] メテオとかいうFWって死んじゃったんですか?
909 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 20:47:28.49 ID:EJPuWg3p.net] 全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。 10年後も、その時の最新のnodeで使えるんなほんまに。
910 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 19:36:04.95 ID:GgcfIolq.net] ん? SSRに何か問題でも?
911 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 20:20:27.85 ID:MyyqK5wy.net] 鯖側の負荷が増える
912 名前:デフォルトの名無しさん [2017/12/12(火) 22:19:31.72 ID:gHkSE4eN.net] node.js難しいっていうイメージだったけど、 JavaScriptがウンコだったってことみたい なんでこんなに散らかってしまったんだ せめて書き方を統一しろよ
913 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 23:49:28.08 ID:gqOvSsDA.net] >>893 ESLint使えば?
914 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 23:57:54.77 ID:8VRWkTHd.net] なんでって20年以上も歴史のある言語で産まれたときとは用途も規模も全然違ってるからな
915 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 00:01:47.40 ID:pDkqMCU5.net] JavaScriptは言語仕様が使いにくいとは思う 小規模なら使いやすいかというと全然そんなことない
916 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:32:59.98 ID:dQY+CYRc.net] 言語仕様に難しいところはない。 難しいと思う所言ってみな?
917 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:12:30.76 ID:JyoUxFOL.net] プロトタイプベースなところ 使いやすいと思ったことがない
918 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:32:58.14 ID:LEbaYuuB.net] プロトタイプなんて使うことないだろ?
919 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 05:58:01.99 ID:fEY/FzHm.net] >>893 うむ
920 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 05:59:02.65 ID:fEY/FzHm.net] >>896-897 仕様が難しいというのと馬鹿の扱いが難しいのは別の話だな
921 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:39:14.62 ID:y5gxd1px.net] ES2015に従えばプロトタイプってことを意識することはないかな。 既存のクラスにメソッド追加したいときとかなら意識するけども。
922 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:55:43.66 ID:LEbaYuuB.net] >>902 prototypeを使って簡単なことをするのと prototypeを使って複雑なことをするのでは 当たり前だけど難易度が違うのさ 既存のクラスにメソッドを追加するのは、 prototypeの簡単な使い方に含まれる 意味はわからなくてもいいから、こういう書き方をすればOK 程度の説明だけでもクラスにメソッドを追加することはできる
923 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 02:24:03.53 ID:OK9q/vji.net] クラスだけじゃなく手続き型っぽくも書いたり はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない? 凄く冗長に厳かに書いたかと思えばハッキ―なテクニックも使ったりもするしね 世の中には「良い書き方は1つ」を目指してる言語もあるけどJSはその対極だからね 標準ライブラリが少ないという点もそう 俺はそういう点こそが好きだけどね
924 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 07:18:04.72 ID:18KhAamS.net] OOPが常に最適解ではないというのは衆知の事実だしな。 俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。
925 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:04:58.73 ID:vwC80Nto.net] node-redを使ってるんですが フローって作成するとメモリに常駐するんですか? 作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね?
926 名前:デフォルトの名無しさん [2017/12/15(金) 17:13:59.28 ID:WQPs5rl9.net] パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね 現状じゃ括弧のネスト増えるからとてもじゃないけど書けない
927 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:30:06.75 ID:nGMqwgOn.net] 関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし そしたらパターンマッチも不可欠だし 関数型への道は険しい Elm使え
928 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 21:51:56.77 ID:OK9q/vji.net] ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが |>await|>など提案によりStage1の中ではHotになりつつある あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負 そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要 頑張れ
929 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 22:47:15.05 ID:L7gVN0RS.net] >>907 パイプだろうがドットだろうが大差ないだろw どうせ一行が長くなったら改行するんだから つまり foooooooooo() | baraaaaaaaaaaaa() | bazzzzzzzzzzzzzzz() でも foooooooooo() .baraaaaaaaaaaaa() .bazzzzzzzzzzzzzzz() でも同じだろと foo() | bar() | baz() でも foo().bar().baz() でも同じだろと
930 名前:デフォルトの名無しさん [2017/12/15(金) 23:37:27.58 ID:WQPs5rl9.net] >>910 いや、メソッドじゃなくて関数 bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo())) と foooooooooo() |> baraaaaaaaaaaaa() |> bazzzzzzzzzzzzzzz() じゃ後者がいいやん? メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね
931 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:54:55.14 ID:SRfxT1c6.net] >>910 >>911 パイプの方が可読性高いだけでもいいわ メソッドチェーンは読みにくくなるから嫌い
932 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:14:10.39 ID:plaGBrRo.net] https://www.npmjs.com/package/babel-plugin-pipe-operator babel-plugin-pipe-operator Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior これ使えば今すぐ使えるのかな?
933 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:18:33.91 ID:ArLhqftT.net] A | B | C たぶん、パイプだと並行処理する 1. Aが最初の1KBを処理する 2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理 3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理
934 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 09:15:33.73 ID:8f8y8qIA.net] これの第2引数って{anyway:true}みたいなのを渡せばいいんですか? https://i.imgur.com/0gmvmSq.png
935 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 09:37:16.18 ID:8f8y8qIA.net] 合ってました自己解決しまひた
936 名前:デフォルトの名無しさん [2017/12/22(金) 21:07:59.68 ID:dt9jytk4.net] socket.io 2.0.4で指定したルーム内の全てのソケットもしくは ソケットIDを取るにはどうしたらいいですか? socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、 同じようなことを2.0.4でしたいです。
937 名前:デフォルトの名無しさん [2017/12/22(金) 23:11:18.78 ID:dt9jytk4.net] 自己解決しました。 socket.ioのgithubに行ったら詳しいドキュメントがありました。
938 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 08:03:34.44 ID:hw44w6Qj.net] JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。 ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。 CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。
939 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:23:29.84 ID:LFgX9gcs.net] 一年くらい前にブラウザのSW上に実装した記事をどっかで見たな
940 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 09:12:07.30 ID:LK61JUUB.net] console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。 一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。 Node.jsは後者みたいだけど。
941 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 12:21:26.51 ID:LK61JUUB.net] あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから とりあえず前者にしておけばいいんだな。
942 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 21:37:45.29 ID:9jWP4uLU.net] クライアントサイドjavascriptのスレってどこにあるんですか? WebProg板にあるのかと思いきやあっちもサーバサイドだし
943 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:08:43.06 ID:beY0Iyii.net] これ mevius.2ch.net/test/read.cgi/tech/1417749547/
944 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 23:43:06.40 ID:B2mtcXzM.net] web制作板
945 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 08:44:35.42 ID:oE47bkuE.net] ありがとん 3つめもあるとは想定外でした
946 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 11:33:35.99 ID:pcvnpBsv.net] child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう スレッドのjoin()のように待ち合わせる機能はないのかな。
947 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 11:06:47.57 ID:AcbVN6ZK.net] workerってWebWorkerのこと? それならSharedArrayBufferとAtomics APIでできるよ ただCPU脆弱性問題で今は無効にされてる
948 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:10:28.26 ID:oFasEgAN.net] サーバーサイドでそれ無効にする必要ある? Webブラウザは様々なサイトのコードを実行するから 対策が必要だろうが サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん
949 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:13:57.25 ID:NAqv0WmW.net] >>929 いつの間にサーバーOS=シングルユーザーOSになったんだよw OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ
950 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:57:46.99 ID:PVJi42Un.net] 自鯖レン鯖ならともかくコンテナやVPSでメモリ共有する環境もあるしな
951 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 23:40:19.20 ID:ejeCAGvR.net] 他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね?
952 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 00:49:54.75 ID:PrVjW9Sz.net] blog.trendmicro.co.jp/archives/16735 読んだだけの 大雑把な理解だが、 カーネルのメモリを覗けるのがメルトダウン 同じコードを共有した他のプロセスのメモリを覗けるのがスペクター だと思ってる メルトダウンはカーネルのメモリを覗けるものだから カーネルが覗かれないように対策できる スペクターはアプリが覗かれないように対策する必要があるが その必要があるのは、例えばブラウザのような同じブラウザ上で 別々の人が作った任意のコードを実行するようなものだから 攻撃の前提を満たすのが難しい
953 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 01:45:26.94 ID:zDr2JTOQ.net] >>933 この記事はいいね。 > その必要があるのは、例えばブラウザのような同じブラウザ上で > 別々の人が作った任意のコードを実行するようなものだから この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、 Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。 同じアプリである必要はないはずよ。
954 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 09:18:34.65 ID:gamfIHe5.net] Spectreの2つの亜種のうち 1つは同じプロセスの内容だけを覗けて もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど?
955 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 14:51:21.63 ID:xvA5vOWN.net] Spectreは2つ組み合わせて使わないと意味がない
956 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 20:38:05.97 ID:iJyUFjEF.net] 一度でもasync/awaitを使ってしまうと、もう元には戻れない 楽すぎるぅぅぅぅぅ
957 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 20:47:08.73 ID:/br76GKn.net] 便利やろ?babelさまさまやで
958 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 22:03:52.60 ID:xaNBQnI8.net] 単発非同期にはasync-awaitで十分便利だけど イベントのようなものを扱うのはまだまだ難しい まず値が複数あるということ 一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は 結局done:trueを見ないといけないから使えない また、イベントって標準on〜も結構な工夫がされてるけど、 イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある この辺り最近ずっと個人的に研究してるが容易ではない
959 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:25:24.68 ID:BUPTScBe.net] 最近node.jsを勉強しています。 socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか?
960 名前:デフォルトの名無しさん [2018/01/24(水) 19:35:05.25 ID:yxm2qYfd.net] >接続が切れた もう少し詳しく
961 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:42:51.25 ID:BUPTScBe.net] スマホでアクセスポイントが変わったりした場合、一回切れますよね?
962 名前:デフォルトの名無しさん [2018/01/25(木) 11:23:58.90 ID:zPND7U3x.net] 同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね
963 名前:デフォルトの名無しさん [2018/01/25(木) 11:26:00.59 ID:zPND7U3x.net] TCPかUDPかとかでも違うんだろうけど socket.ioがどっちかは忘れた
964 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 19:29:10.53 ID:Jk7QmDIY.net] socket.ioってクッキーみたいので、セッションID維持してて 切れても安心みたいな感じじゃないんですか?
965 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 05:42:52.58 ID:XyEr3Esl.net] やってみろ
966 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 14:15:55.68 ID:zVItOEu
] [ここ壊れてます]
967 名前:q.net mailto: node.jsって人気ないな〜 解説ブログは古いし、間違ってるし、 こんなんで作ったらバグだらけやん [] [ここ壊れてます]
968 名前:デフォルトの名無しさん [2018/02/01(木) 14:21:50.49 ID:XMp5TkVS.net] はげそれ ブームは去った
969 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 19:35:39.75 ID:3VWe7l68.net] >>947 今は何が流行ってんの?
970 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 20:52:06.68 ID:6/askoF7.net] unity
971 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 21:34:46.61 ID:lSl6eIsr.net] golangに持って行かれたね
972 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 07:24:52.85 ID:E+B1ekpI.net] 結局、どう使うべきかわからないというのが問題なんじゃないかな 拡張機能があるけど、個々の機能はわかるけど、うまくピースがはまらないイメージ
973 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 07:41:34.72 ID:sggyuymU.net] juliaもそうだった
974 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 19:30:20.18 ID:E+B1ekpI.net] プログラムの設計思想がぴんとこない 非同期で時間のかかることやらせるならsocket.ioは必須なの? 切断したときにどう復旧させるの? 自分は何者で何をしてたかの情報をうまく組み合わせる必要ない?
975 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 22:13:57.33 ID:ISpZH99S.net] どう使うべきかじゃなくて 自分が作りたいものを作る時に何を使うかだろ
976 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 07:40:05.67 ID:dVw1phCl.net] そこが想像できない、よくわからないから抜け出せないので、使う候補に上がってこない
977 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:00:51.63 ID:C+glEnt3.net] 世界的な事例のほとんどは バックエンドをマイクロサービス化 ↓ その前段のbffにnode.js これだからモノリシックなシステムには無縁
978 名前:デフォルトの名無しさん [2018/02/03(土) 09:43:35.86 ID:qWVkS+Es.net] それだとgolangに負けるな
979 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:48:29.04 ID:q+B7XjZz.net] bffでnode.js使うところはssrもやってるからgoは選ばれないんじゃね 結局そういうアーキテクチャの要請があってプロダクトが選ばれる
980 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 10:20:29.26 ID:k4L1joBU.net] bffとssrって関係あるかねぇ?
981 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 10:30:11.33 ID:lOPjGEYQ.net] isomorphic javascriptでググれ
982 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 10:07:02.98 ID:iEv00Bkz.net] SNSのバックエンドをExpressオンリーにするのって無理かな
983 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 14:58:55.91 ID:WVo2r3Ik.net] >>962 phpでもrubyでもいけるのにexpressじゃ無理かもしれないと思った理由は?
984 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 15:27:37.16 ID:B22IaXtA.net] 一つのexpressにHTTPdからAPI鯖まで全部詰め込んでもいいんだぞ
985 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 21:03:28.89 ID:iEv00Bkz.net] >>963 あまりそういう話を聞かないから 不都合全く無いの?
986 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 21:25:10.40 ID:UUFlqCAw.net] expressはあんまり高水準のフレームワークじゃないしormはsequelizeくらいしかないしメリットなさげじゃね
987 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 07:30:15.23 ID:GXsl78kw.net] node.jsでウェブサーバやる利点って何?超使いづらいんですけど
988 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 12:00:21.59 ID:ozQGTy2c.net] 使う側は意識することないだろ
989 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 06:03:09.31 ID:xat7U2Z1.net] meteor.jsとか見てるとjsのメリットすごいけどね
990 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 06:07:24.84 ID:BAsI0MB0.net] ssrでしょ うん……
991 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 09:30:35.59 ID:5vmiY3qq.net] >>967 一人しか利用しないなら使わなくていいんじゃないの。
992 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 18:55:54.33 ID:GPioIT5w.net] 素朴な疑問だけど ここのみんなは node.js でどんなサービス作ってるの?
993 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:02:22.99 ID:ob9DrvK1.net] 特定業種にiPadごと配るアプライアンス的なサービスのBff なので事例には出しにくいけどバッチリ使ってる
994 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:11:11.32 ID:GPioIT5w.net] >>973 そのiPadに入ったアプリが通信する先のサービスってこと? あとBffって何ですか? 無知ですまん
995 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:19:56.30 ID:IITgqAFh.net] Backends for Frontends https://samnewman.io/patterns/architectural/bff/
996 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 20:36:41.69 ID:GPioIT5w.net] ありがとう、翻訳して読んだりしました 難しい gateway とか dispacher的なもの? nodeとnginxの関係を見た時nginxがbffの位置づけ? 見当違いならほっといてください
997 名前:デフォルトの名無しさん [2018/02/11(日) 15:29:51.01 ID:6yH3qsLl.net] socketを使う必要がってnode+expressがやりやすそうと考えて 独学でnode.js始めて(独学)1年くらいです sessionにredis使ってまして 通常のhttpとsocketでの共有が面倒なのですが 皆さん、どんな方法使ってます?
998 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 15:43:11.62 ID:xSFjw/ao.net] socketってwebsocketのこと? node.jsではnetモジュールが提供するtcp用のapiが本来のsocketだから変な略し方すると話が通じないよ websocketならhttpで始まるからセッションは普通に共有できるはず websocketを使うのにsocket.ioを使ってるならそれも書いた方がいい 最近はsocket.io使ってる人が少なそうだからレスが付くかはわからんけど
999 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:01:04.40 ID:6yH3qsLl.net] >>978 ありがと&ごめん socket.ioを使ったwebsocketでした websocket側からsessionのハンドリングに自分は var sockeio = require('socket.io')(server, {'transports': ['websocket']}); var io = sockeio.of(ns).on('connection', function(socket) { /** socket.request.session; * で拾える */ }); てなことしてまして、拾うのは楽なんですが session save するのに redisの該当データをupdate(set)するってことしてます これ普通ですか?アホですか あとsocket.io使われなくってるのは何故?
1000 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:29:55.16 ID:d+jiviOC.net] こういうユーティリティで便利なのがないかさがしてみるのも一手 https://www.npmjs.com/package/express-socket.io-session 昔はwebsocket使えないブラウザが多かったから他のプロトコルにフォールバックしてくれるsocket.ioが重宝されてたらしい 今はwebsocket使える前提でいいからフォールバックは不要なので豊富な機能が不要ならwsとかシンプルなモジュールで十分って感じ 再接続とか考えるとsocket.io便利そうだけどね
1001 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:40:57.21 ID:6yH3qsLl.net] >>980 express-socket.io-session 良さそ気 wsっかぁ、 自分を慰める理由が欲しいんだけど room機能実装するならwsじゃなくてsocket.ioが楽?
1002 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:46:20.51 ID:XUA6USjD.net] roomとか必要ならsocket.ioでいいんじゃない よく聞くのはそれと再接続目当てな希ガス
1003 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:47:48.35 ID:A30L58fq.net] お題が単に「room機能をとにかく楽に実装したい」ならgun.jsとかのほうが楽やで
1004 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:49:45.40 ID:6yH3qsLl.net] thankYou!!! 生きてく元気ちょっと出た
1005 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:35:48.00 ID:aqz0aJT4.net] 未だにpython2に依存してるのが残念すぎる
1006 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:40:40.49 ID:qCYdb3sP.net] 残念おっぱいそん2
1007 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:57:55.27 ID:A30L58fq.net] >>985 なーにそれ?くわしく
1008 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:18:40.58 ID:WzEjvwQn.net] リアルタイムwebをいじりたいならmeteor.jsに乗っかるのも一つの手
1009 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:27:38.72 ID:soB6fX+V.net] ビルドで使ってるgypがpython3に対応してないって話じゃね 開発元のgoogleでは対応済みなん? まだならnode側じゃどうしょうもない
1010 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:53:03.30 ID:A30L58fq.net] issue検索してみたけどgypへの依存なくせやって話もしつこく何回も立ってたんだね
1011 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:58:05.07 ID:8+fCt4+r.net] v8のビルドがgypならそれも無理がありそうだがなんか代替案出てるんけ?
1012 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:06:40.59 ID:X+YiM6Et.net] 今日ジュンク堂行ったらnode.jsの本2つしかなかった。 しかも入門書、やっぱりnode.jsオワコン? 他にwebsocketできるものなんてあるの?
1013 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:09:35.96 ID:flHxC5Ds.net] >>992 javaでもc#でも
1014 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:14:04.34 ID:kAM/OKSF.net] node.jsは全然オワコンじゃない es2015,6,7,8と毎年進化していく予定なんだから むしろこれから盛り上がるってなもんで
1015 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:20:12.25 ID:X+YiM6Et.net] 同じことやるにしてもjava勉強したほうがいいのかな C#はやらないけど
1016 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:21:38.52 ID:esah1bhU.net] node.jsもjavascriptも毎年大きなバージョンアップが確定だから書籍は出しにくいよなぁ
1017 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:22:12.35 ID:s321QVV0.net] >>995 javaやるくらいならc#にしとけ
1018 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:24:14.62 ID:X+YiM6Et.net] windowsは使わないのでC#はいらない dockerをそろそろ勉強しないといけないので、dockerといっしょにjavaでwebsocketもやるかな
1019 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:26:02.48 ID:WkRgLvef.net] javaは死につつあるからgoの方がマシかな
1020 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:26:50.37 ID:WkRgLvef.net] なお次スレ
1021 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 673日 2時間 58分 16秒
1022 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています