17/06/04 18:39:31.69 +x9cOwwe.net
>>628
これ。typescript使ってるから正直どうでもいい。
651:デフォルトの名無しさん
17/06/04 22:48:20.08 qUWZGkRh.net
>>629
ts2.1でtarget es5でも使えるようになったしな
652:デフォルトの名無しさん
17/06/05 21:13:25.69
653:nBMIbdLx.net
654:デフォルトの名無しさん
17/06/05 22:36:15.71 hT8phHO4.net
>>631
node起動するだけなら7MBしか食ってなかったぞ?
655:デフォルトの名無しさん
17/06/06 09:07:00.80 rjyabpco.net
>>632
v8が起動するんだからそんな少ないわけないだろw
656:デフォルトの名無しさん
17/06/06 09:39:06.61 dRy+c6tT.net
>>633
こんな感じのようだが?
URLリンク(qiita.com)
> process.memoryUsage()
{ rss: 9019392,
heapTotal: 5115392,
heapUsed: 2658096 }
657:デフォルトの名無しさん
17/06/06 12:19:41.83 e4Yt3Epi.net
そりゃnode.js内のメモリ消費量でねーの
ランタイム内のプロセスと実行環境自体のプロセスを混同させるような>>634もアレだがな
だからWeb屋は
658:デフォルトの名無しさん
17/06/06 13:46:28.87 rjyabpco.net
ちょっとしたサービス作って待ち受けするだけで普通に数百MBは食うぞ
659:デフォルトの名無しさん
17/06/06 13:56:30.47 yrQvF/57.net
ちょっとしたサービスなら200MB台で済んでる気が
660:デフォルトの名無しさん
17/06/06 13:59:17.60 rjyabpco.net
>>637
うん、実際そんなもんだよ
サービスによりけりだけど単位は百MBにはなるね
661:デフォルトの名無しさん
17/06/06 15:37:19.98 CUcBhzlW.net
えメモリ500MBのvpsじゃキツいのかよ!
662:デフォルトの名無しさん
17/06/06 16:38:33.57 rjyabpco.net
>>639
nodeやるなら512は実用的じゃないと思う
ssdならスワップ早いからなんとかいけるかもしれんが最低でも1GBは欲しい
663:デフォルトの名無しさん
17/06/06 17:48:28.25 RW5d4zA8.net
>>640
node起動するだけなら7MBしか食ってなかったぞ?
664:デフォルトの名無しさん
17/06/06 17:53:37.43 Q/vepSQ/.net
nodeは依存関係の関係でアホみたいにモジュールロードあるからね
665:デフォルトの名無しさん
17/06/06 22:49:25.44 dRy+c6tT.net
>>641
条件は「nodeを起動するだけ」なんだからその程度だろうね。
>>642
そりゃexpressとか動かせばその分のメモリ食うさ
でもそれはrailsとかでも同じなわけで、なんのモジュールをロードするかとか
言ってない上、nodeを起動するだけのメモリ使用量しかわかるわけがない
666:デフォルトの名無しさん
17/06/06 23:48:02.40 rexPHFK5.net
>>643
バカは黙ってた方がいいとおもう
667:デフォルトの名無しさん
17/06/06 23:52:26.78 uLFYe46X.net
>>644
何も言い返せないなら黙っていたほうが良い
668:デフォルトの名無しさん
17/06/07 00:17:35.99 uxrwudqM.net
7MB君ってほんとうにおめでたい脳味噌してるんだな
669:デフォルトの名無しさん
17/06/07 00:20:57.96 Xdd0wH5l.net
>>643
socket.ioのみの簡単なサービスですら200M越えるんだが?
君はどうやって使用メモリを調べてるのかな?ん?
linuxコマンドでも書いてごらん
670:デフォルトの名無しさん
17/06/07 00:22:10.32 c02yQ3lM.net
>>631の文脈からして何らかのサーバー立てるんだからnode単体の話をするのは空気読めてないよね
671:デフォルトの名無しさん
17/06/07 00:27:56.94 Xdd0wH5l.net
>>648
おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?
で?
検証用のコードと7MBの確認コマンド公開まだかな?
672:デフォルトの名無しさん
17/06/07 00:31:58.18 Xdd0wH5l.net
649はレス相手間違えた
この期に及んでnode単体という屁理屈で逃げてるやつは回答まだかな?
673:デフォルトの名無しさん
17/06/07 00:32:13.23 kUtim7jQ.net
>>647
たった5行でWebサーバーが書ける
URLリンク(engineer.recruit-lifestyle.co.)
674:jp/techblog/2015-06-22-node1/ httpモジュールを使っている分、nodeだけのメモリ使用量ではないが、 ps uのRSSの値は26000KB、つまり26MBだが?
675:デフォルトの名無しさん
17/06/07 00:33:21.79 kUtim7jQ.net
>>649
> おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?
サーバーたてなくてもコマンド実行するという使い方もあるだろ?
676:デフォルトの名無しさん
17/06/07 00:46:45.23 kUtim7jQ.net
> nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる
> 安いプランのVPSだとメモリ1Gとかだから
>>631の文脈から言って、メモリを相当食う何かを動かしているのだろう。
だがそれはnodeの使用量ではなく、モジュールの使用量がほとんど。
nodeのバージョンアップでメモリ使用量が増えたとしても
大部分のモジュールの使用量は変わらないので、気にするレベルにはならない。
677:デフォルトの名無しさん
17/06/07 01:45:14.18 GBlW6tcD.net
メモリの使用量を抑えようと思ったら何を使うのが一番いいんだろうな。
やっぱgoとか?
678:デフォルトの名無しさん
17/06/07 05:15:29.36 H4RzZJ5B.net
c
679:デフォルトの名無しさん
17/06/07 14:14:41.23 Kk4r5o3h.net
Cは現実的じゃない
Goでおk
それかRust
680:デフォルトの名無しさん
17/06/07 18:49:24.55 GBlW6tcD.net
間を取ってobjc
681:デフォルトの名無しさん
17/06/07 18:51:47.29 GBlW6tcD.net
v8ってandroidでも動くようにしてるんだよね。新しいバージョンのほうが省メモリの可能性ないかな。
android goとか出してるわけだし
682:デフォルトの名無しさん
17/06/07 21:06:02.29 Q5pKLWbH.net
v8のignitionは省メモリ、スモールフットプリントのためだから可能性は十分よ
683:デフォルトの名無しさん
17/06/07 22:03:21.25 kUtim7jQ.net
結局逃げちまってたかw
684:デフォルトの名無しさん
17/06/07 22:28:48.05 Kk4r5o3h.net
v8がiosで動けばな
685:デフォルトの名無しさん
17/06/08 13:07:07.77 oPuedIYN.net
久々に延びてるから良い話題期待したもれが間違ってたし
686:デフォルトの名無しさん
17/06/10 23:18:03.35 c4FhnErI.net
>>661
v8じゃないけどnode.jsなら
URLリンク(www.janeasystems.com)
687:デフォルトの名無しさん
17/06/13 13:54:50.94 ohFJ/OWS.net
selenium使ってるんだけどnodeだとすんごい使いづらいな
他はpythonしか知らないけど
688:デフォルトの名無しさん
17/06/15 14:45:14.68 p0Tdw73d.net
中学生でもランサム作ってるんだから
それくらいがんがれ
689:デフォルトの名無しさん
17/06/21 08:58:52.16 E+Sq/aqi.net
Windows10のユーザーフォルダでnpmにてnode-notifierと言うライブラリをインストールしたのですが
ユーザーフォルダ以外でnode-notifierを呼び出しても見つからずにエラーが出ます。
これを解決するにはWinの環境変数でPATHを通さないとダメなのでしょうか?
それとも呼び出し時に何か指定すれば良いのでしょうか?
690:デフォルトの名無しさん
17/06/21 10:18:32.72 A4qiE8Ip.net
>>666
グローバルインストールっのがあるんじゃ?
691:デフォルトの名無しさん
17/06/23 10:29:44.77 0OdP20aK.net
>>666
-g
692:デフォルトの名無しさん
17/06/28 10:06:32.62 +O8L6XqQ.net
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
URLリンク(twitter.com)
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
URLリンク(b.hatena.ne.jp)
693:2601508/ 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など動的言語は確実に廃れる。 保守に強い言語のみ生き残れる。
694:デフォルトの名無しさん
17/06/28 10:07:07.91 +O8L6XqQ.net
瑕疵担保責任(かしたんぽせきにん)
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
URLリンク(www.atmarkit.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
695:デフォルトの名無しさん
17/06/28 11:55:35.82 6M+2cmcB.net
そのぶん金取るだけだよな
そんな主張もできない弱小は存在価値ないから他に吸収された方がいい
696:デフォルトの名無しさん
17/06/28 16:29:31.80 7uiFkJf0.net
>>671
マルチに反応するな
697:デフォルトの名無しさん
17/06/28 21:25:29.27 V4ji+kX8.net
>>670
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、有償で改修するだろう。
の間違いでは?
普通は不具合の修正に有償で対応する方を選ぶでしょ?
698:デフォルトの名無しさん
17/06/29 03:44:27.70 KULunYvr.net
app.jsみたいなフレームワーク固有のファイルって
どんな役割なのかもよくわからんし
何を書けばいいのかもわからないしすげえ苦手だ。
最低限何を書けば動くの?
699:デフォルトの名無しさん
17/06/29 09:04:07.63 nn6a6Cug.net
フレームワークのドキュメントに書いてあるんじゃないですかね…
書いてないなら使う価値がない(品質が水準に達していない)
700:デフォルトの名無しさん
17/07/08 17:32:49.37 Ra2NVXKJ.net
koa2ってどうよ? 使っているヤシ居る?
701:デフォルトの名無しさん
17/07/08 21:12:14.30 XWVPkNFz.net
触ろうと思ってサンプルプロジェクト作って中途半端に弄ってから半年経ったわ
702:デフォルトの名無しさん
17/07/09 00:03:48.07 FGayP2eL.net
jQueryとかnode.jsとかデファクトスタンダードでみんなやってる感のやつはどうも食指が動かない
変わり者ですみません
703:デフォルトの名無しさん
17/07/09 00:23:45.88 nvV/UuF5.net
本当の変わり者は自分を変わり者とは言わない
704:デフォルトの名無しさん
17/07/09 00:24:16.28 iCzPmO29.net
中二病やん
705:デフォルトの名無しさん
17/07/09 00:29:34.35 nYzmJ4mS.net
nodeは一部の変態しかつかってないだろ?
スタンダードとかないわ
706:デフォルトの名無しさん
17/07/09 00:36:10.71 ODdY4A4c.net
>>678
それでは変わったことをやっている人が
みんなやってるものをやれば良いのでは?
707:デフォルトの名無しさん
17/07/09 00:38:52.02 iCzPmO29.net
人と違うことが誇らしいお年頃~
708:デフォルトの名無しさん
17/07/09 01:14:59.47 A+aVbo6r.net
んなこと言ってるくせに変わったものなんか使ってないんだろどうせ
709:デフォルトの名無しさん
17/07/09 02:41:44.02 zx3kMPLK.net
自分から○○がやりたい!っていうのなら
それは前向きな意見であるが、
みんながやってるからやらない。
誰もやってないからそれをやるっていうのは
それをやりたいという意志がないので
後ろ向きな考え方だよ。やる気が無いといえる
710:デフォルトの名無しさん
17/07/09 08:27:13.61 CH1C34jF.net
みんながやってるからやりたくない、はひねくれ者
気がついたらみんながやってることと違うことをやってた、てのが変わり者
711:デフォルトの名無しさん
17/07/09 10:14:40.44 LHQ7nZ8B.net
javascriptとかいうデファクトスタンダードの権化を使うのをまずやめるべきだね
712:デフォルトの名無しさん
17/07/09 12:11:00.81 zrZ5NBAs.net
x86やARMも使ってはいけない
713:デフォルトの名無しさん
17/07/09 12:43:30.36 TMBKe/0c.net
インターネットを使ってるようじゃ変わり者ではない
714:デフォルトの名無しさん
17/07/09 17:11:49.90 88Sc1mx+.net
>>676
async await使ってるならむしろどんどん触るべきじゃないのか。
俺はgoでサーバサイド書いてるからあえて使ってないけど、
全部jsでやるならkoaかも
715:デフォルトの名無しさん
17/07/09 18:30:24.07 cjuI8GCo.net
express使ってても自分でミドルウェア書きまくるわけじゃないからな
標準のやらpassportやら使うだけだからasync/await使えて嬉しいことはほぼない
結局エコシステム揃ってる方を使う
716:デフォルトの名無しさん
17/07/10 13:43:08.24 gqDySAuG.net
>>691
koaってexpressのミドルウェア使えたはず。
だからエコシステム的には問題ない。
とは言えasync-awaitもところどころ詰まるところはあるのは分かる
(例えばarrayのmapに渡す関数としては使えないとか。)
でも今から使うならkoaの方かな。
717:デフォルトの名無しさん
17/07/10 13:46:50.96 Labl8nFy.net
expressのミドルウェア使うならexpressでええやん
718:デフォルトの名無しさん
17/07/10 14:16:11.77 gqDySAuG.net
>>693
非同期処理を同期的にかける魅力には勝てない。
719:デフォルトの名無しさん
17/07/10 14:57:56.02 szK1finj.net
691に戻る
720:デフォルトの名無しさん
17/07/10 16:33:23.58 hbYLDPUX.net
f
721:デフォルトの名無しさん
17/07/10 17:53:20.41 LYSrTSKk.net
>>692
array.mapに非同期関数渡したいならrxjsで処理してtoPromiseすればおk
722:デフォルトの名無しさん
17/07/10 18:48:24.41 gqDySAuG.net
>>697
いや。そもそもPromise.Allがmapと同義じゃんってわかったから
あえてrxjsは使わなくてもok
723:デフォルトの名無しさん
17/07/10 19:17:56.48 9M+6V9gq.net
まっ CORE ASP使っている身としては、koa2で十分なんだが、JadeからPugへの変更って必要だったのかえぇ~? いまいちのような感じかする。
軽いCMSにkoa2は便利。 重いのもいけそうではあるが・・・
724:デフォルトの名無しさん
17/07/10 19:26:02.76 LYSrTSKk.net
>>699
jadeもpugも一緒だぞ
商標の問題で名前変えただけで
725:デフォルトの名無しさん
17/07/11 16:15:40.20 IkyG2RiR.net
koa2ってなに?koa.jsのこと?
726:デフォルトの名無しさん
17/07/11 17:21:49.33 9uLf2kf9.net
koe.js v2
727:デフォルトの名無しさん
17/07/11 17:22:14.73 9uLf2kf9.net
x koe.js v2
o koa.js v2
728:デフォルトの名無しさん
17/07/11 23:24:55.50 rvrzGERi.net
あんましexpressもkoaも使ってるぜーって情報発信してる人いない気がする。
知らないうちにブロだクションで動いてるんかな
729:デフォルトの名無しさん
17/07/11 23:54:59.61 0kzPGIzN.net
expressってwebアプリケーションフレームワークって感じじゃないからな
rubyでいえばrack相当でrails相当じゃないから表に出ない
730:デフォルトの名無しさん
17/07/12 00:05:15.88 lpTuRvg7.net
expressはnode.js標準に付いていてもおかしくない程度の軽いフレームワークだしな
731:デフォルトの名無しさん
17/07/12 01:08:53.04 VV5TEq59.net
ぶっちゃけ、express使うような案件だとphpでよくない?っておもっちゃう
732:デフォルトの名無しさん
17/07/12 01:23:02.63 qAT72GnU.net
socket.ioとか使いたいからそれはないな
733:デフォルトの名無しさん
17/07/12 03:27:41.84 VV5TEq59.net
>>708
おれもゲームサーバーでnode+socket.io使ってるけど、expressで配信するコンテンツってphpでよくね?ってパターン多い気がする
どうしても非同期じゃないと無理ってパターン以外は非同期のデメリットがでかすぎる
とくにDBがらみの単純な登録画面とかね
phpの数倍の開発コストかかるよ
734:デフォルトの名無しさん
17/07/12 04:17:22.08 Rdi75m+a.net
expressでdbアクセスなんてしてないな
bffとして使ってるから
node/expressの後ろのapi鯖はphpだったりrailsだったりjavaだったり
735:デフォルトの名無しさん
17/07/12 04:21:26.67 VV5TEq59.net
>>710
ああ、そういう二段構えならokだね
736:デフォルトの名無しさん
17/07/12 07:31:45.77 46U9BX05.net
でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない?
737:デフォルトの名無しさん
17/07/12 07:33:23.93 46U9BX05.net
それにasync awaitつかえば非同期処理はかなり自然に書けないかな?
学習コストは高くなるかもだけど
738:デフォルトの名無しさん
17/07/12 08:32:57.14 Fm5flkvk.net
async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`)
TypeScriptはコンパイルしたくないって言われた、、、
739:デフォルトの名無しさん
17/07/12 08:35:16.60 VV5TEq59.net
最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う
必要な場面で局所的に使うのがnodeっていうイメージ
740:デフォルトの名無しさん
17/07/12 11:37:51.18 WN7PTjbN.net
phpだってさすがにスレッドぐらい使えるだろう
741:デフォルトの名無しさん
17/07/12 14:22:08.20 sNyzU/qO.net
非同期DB使えよ
742:デフォルトの名無しさん
17/07/12 15:54:06.61 46U9BX05.net
>>716
むっちゃしんどかった。
goを学習してgorutineで書き直したわ。
743:デフォルトの名無しさん
17/07/24 09:12:28.43 /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の内容が表示される
何か上手い解決策はないでしょうか。
744:デフォルトの名無しさん
17/07/24 10:45:49.25 1TXRI9Gx.net
constructor内で
this.index.bind(this)でthisの束縛をすれば解決しませんか?
745:デフォルトの名無しさん
17/07/24 15:05:38.54 BdqEvISL.net
うむ
746:デフォルトの名無しさん
17/07/24 17:23:58.44 /vKjgZpt.net
>>720
お答えいただきありがとうございます。
それを全部のメソッドにやるのも何かしっくりこないので、
下のようにクロージャにしてしまったら何とか期待する動作になりました。
function dbaccess(db) {
let _db = db;
return {
index(req, res) {
}
// 以下略
}
}
クラスだと上手くいかないのがイマイチ納得できてませんけど。
747:デフォルトの名無しさん
17/07/25 06:14:42.65 5XPEt11J.net
>>722
それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。
748:デフォルトの名無しさん
17/07/25 21:46:43.91 1fcXX4D/.net
>>719
おいおい、変なことしないほうが良いぞ
もうちょっと調べるべきだろ?
他のプロジェクトでそんな書き方してるか?
昔やったきりで忘れたし今のやり方は変わってるかもしれないから
適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ?
749:デフォルトの名無しさん
17/07/25 22:27:51.60 5XPEt11J.net
>>724
URLリンク(qiita.com)
によると
req,res,nextの3引数を取る関数を作ればいいみたいね。
偶然にもクロージャーを使うというのは正解だけど
nextを省略してるってことは他のミドルウエアを後から追加したら
動かなくなる
こういうの見てるとtypescript使うべきって思う。
型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。
750:デフォルトの名無しさん
17/07/25 22:30:30.22 FGFvX1HY.net
>>719
GCされてね?
751:デフォルトの名無しさん
17/07/26 15:41:26.54 2Xw6+C7K.net
722です
一応、最小限っぽいコードを書いてみました。
URLリンク(www.dotup.org)
users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。
>>724
本家のサンプルも利用者のblog記事なども一通り見たのですが、
見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて
影響なさそうなクロージャにしてしまいました
>>725
ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます
本音を言うと、ただ書き忘れただけなのですけど。
752:デフォルトの名無しさん
17/07/26 16:04:27.16 2Xw6+C7K.net
ちなみに、なんでクラスで書こうと思ったのかと言えば
クロージャとクラスのインスタンスが内部的には等価だと思っていたからです
753:デフォルトの名無しさん
17/07/26 16:54:58.69 p1ZvRLSy.net
codepenとか使うかgithubに上げるかして欲しいわ。
正直zipでってなんかイャ
754:デフォルトの名無しさん
17/07/26 16:56:23.68 p1ZvRLSy.net
>>728
将来の自分のためにも流儀は合わせてお�
755:ュべき。 コード量の削減に影響するとも思えない。
756:デフォルトの名無しさん
17/07/26 21:17:16.61 EkC4vcRh.net
>>728
thisが違うことから等価じゃないことが証明されてるでしょ?
じゃあクラスで書こうと思った理由は消滅してるよね?
ならクラスで書くのをやめるべきだよね?
757:デフォルトの名無しさん
17/08/18 21:49:38.61 ujwXUmoS.net
useの第2引数に何が許されてるのかドキュメント読みなさい
758:デフォルトの名無しさん
17/08/27 14:46:16.26 JVSE3drk.net
forkの経緯を眺めてたけどこれio.jsの時と違って結構めんどくさいな
これまでのNodeは人治主義のOSSだったってことか
759:デフォルトの名無しさん
17/08/27 15:42:03.26 XHFSs/EA.net
シングルスレッドだから遅くならないって言うけど
マルチスレッド言語で動的にスケールすればいいでしょ?
760:デフォルトの名無しさん
17/08/27 15:44:19.45 IFPOQiAt.net
Node.js Foundationに対し不安を持つグループによるNode.jsのフォークプロジェクト「Ayo.js」誕生
URLリンク(mag.osdn.jp)
761:デフォルトの名無しさん
17/08/27 15:53:01.24 4pu+F5Jq.net
>>734
だよな
762:デフォルトの名無しさん
17/08/27 15:53:18.14 4pu+F5Jq.net
>>735
matakayo
763:デフォルトの名無しさん
17/08/27 16:05:49.89 iBnNI7N6.net
シングルスレッドだから遅くならないなんて言っている人なんているかねぇ?
C10Kの話ならかなりニュアンスが違う。
764:デフォルトの名無しさん
17/08/27 16:12:18.21 HAnDkIM0.net
優秀な一名をこき使うから速いんだな。
ほんの少しでも空時間があったら仕事をぶっこむ。
人間なら死ぬわ。
765:デフォルトの名無しさん
17/08/27 16:17:42.17 XHFSs/EA.net
>>738
メモリ使用量が増えないってnodeのメリットじゃないの?
そんなのスケールアウトで十分だと思うんだが
766:デフォルトの名無しさん
17/08/27 16:22:23.64 sNhXAArf.net
> メモリ使用量が増えないってnodeのメリットじゃないの?
だれがメモリ使用量が増えないというメリットが有ると
いったんだ? お前の脳内か?
767:デフォルトの名無しさん
17/08/27 17:35:42.54 0P4eY3kj.net
nodeが良かったのはは非同期apiにより
プロセスあたりのリクエスト処理数を高めたからでしょう?
マルチプロセスにすればその分リクエスト処理数もある程度スケールしてくれる。ただしdbアクセスは考慮しないものとする
768:デフォルトの名無しさん
17/08/27 18:30:42.93 LIgBPoun.net
mongoDBとかNoSQLとはなんだったのか
769:デフォルトの名無しさん
17/08/27 18:57:54.53 IIGC9wQX.net
>>743
nodeとは全く別もので、ただのデータベース
770:デフォルトの名無しさん
17/08/28 11:26:19.65 XrV67/p5.net
Nodeが普及したのは良いサイバーサイドJS環境だったから
771:デフォルトの名無しさん
17/08/29 09:43:28.14 PNzW02X+.net
let dict = {}
で辞書のように使おうとしたんだけど、
dict['constructor']ではまった
アレイにkvペア入れて頑張るしか無いの?
16万項目あるので線形検索は躊躇う
772:デフォルトの名無しさん
17/08/29 10:19:27.35 9ZzXxIqM.net
Mapを使うとかlet dict = Object.create(null)とか
773:デフォルトの名無しさん
17/08/29 11:53:07.27 sgTDSrY2.net
>>746
16万項目のデータをメモリ内に置くのか。
もっといい方法無いかな。realmとか使えればいいんだけど。
774:デフォルトの名無しさん
17/08/29 11:59:45.48 PNzW02X+.net
Object.createで上手くいった
try catchで検出してエラーになるのを、別管理と考えてたけど、すっきりした
さんきゅ
775:デフォルトの名無しさん
17/08/29 12:07:49.40 PNzW02X+.net
>>748
db構築に使うフォーマット変換ツールなので、適切な時間で終了する事が要件で
利用リソース量はあまり気にしない
776:デフォルトの名無しさん
17/09/03 12:30:07.14 U+3KDr2c.net
eslintとそれにぶら下がるプラグイン本当互換性がない
ツール入れる所でトラブらないといけないとかだるいわ
これだからJavaScriptなんて書きたくないんだよ
777:デフォルトの名無しさん
17/09/03 12:34:43.60 DIhXI1rF.net
eslintのプラグイン何を使おうとしてるの?
使わなければいいじゃない
778:デフォルトの名無しさん
17/09/03 12:59:47.72 VH3Jw1dH.net
airbnb辺りのプリセット使えばええやん
779:デフォルトの名無しさん
17/09/03 20:32:32.58 CKCB7oSp.net
そのairbnb関連のjsx-a11yとかな
URLリンク(github.com)
780:デフォルトの名無しさん
17/09/04 11:57:48.72 xXgpQO1P.net
>>742
そういうのもNginxやApacheがある程度やってくれるようになってるからね。
後ろは好きな言語をそのまま使えばいい。PHP-FcgidとかuWSGIとかRackとかServletとか。
781:デフォルトの名無しさん
17/09/04 18:58:52.14 XPn2hQsA.net
>>755
非同期apiはphp処理系では無理じゃない?phpはインスタンスの生存時間がリクエストを受けてからレスポンスを返すまでの固定だよね。
どうやってイベントループ回すの?
782:デフォルトの名無しさん
17/09/04 20:39:48.99 tWvDAnX3.net
>>756
フレームワークによってはイベントループで生存期間が無限のものもあったはず。
前の会社で、そういうWebSocketフレームワーク使おうとしてたよ。
…そんな用途全く想定してない普通のPHP用のオレオレライブラリ組み合わせて
メモリリーク起こしてたけど(藁
783:デフォルトの名無しさん
17/09/05 08:00:30.55 JsNUX7wh.net
>>757
メモリリーク起こすなら使えないな。
phpってインスタンスの生存時間短い前提だから、
メモリリークってさほど気にしなくて良い言語なのかも。
素直にjsでいい気がするけどね。今の時代。
yahooで勤務してる知り合いも今はjsでサーバサイドを書いてるってさ。
784:デフォルトの名無しさん
17/09/05 14:51:11.75 x6NjkUnp.net
もともとCGIはリクエスト毎にプロセス作ってサービスしてた
なので、一つのリクエストが終了するとperlやphpのプロセスも終了するので、オブジェクトを解放(リファレンス外す)しないCGIが多くある
ところが、これじゃおせーよと言うことで、終了させないで無理やりに複数リクエストを処理させる仕組みをでっち上げた
これがPHP-FcgidとかuWSGI
リークしまくりのサービスが出来上がり
三菱とかやりそうだろ
785:デフォルトの名無しさん
17/09/05 15:05:46.14 EAdtS/tk.net
だから一定数のリクエストを処理したらプロセス再起動する
三菱でも大丈夫
786:デフォルトの名無しさん
17/09/05 15:06:06.76 y9gU3zED.net
メモリだけじゃなくて
CPUもファイルI/Oも簡単に食い潰せるからな
787:デフォルトの名無しさん
17/09/05 16:00:05.67 JsNUX7wh.net
>>760
なるほどね。大雑把な作りだ。
大昔Dephiの案件をやった時に、PLが
ひとかたまりのEXEを画面ごとにバラバラのEXEにして
切り替えるたびに終了させる仕組みを作り出して、メモリリークを
極力抑える仕様にしてたの思い出した(データはDBにおいてる)
788:デフォルトの名無しさん
17/09/05 17:07:49.21 x6NjkUnp.net
>>760
三菱は自動再起動なんて技術がないから、連絡受けて手動で再起動してた
789:デフォルトの名無しさん
17/09/06 21:18:48.34 CWS2BygD.net
何故、三菱が引き合いに出されるのだ?
なんかやらかしたんかい。
790:デフォルトの名無しさん
17/09/06 21:34:30.85 tZ2T0w/m.net
Librahackで検索
791:デフォルトの名無しさん
17/09/06 22:59:23.06 CWS2BygD.net
三菱電機インフォメーションシステムズ (MDIS) 製のソフトウェアは、
1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた
これか?
9秒に1回以上で破たんするなんてどんな実装か興味津々
792:デフォルトの名無しさん
17/09/06 23:25:37.77 tZ2T0w/m.net
これを読むとイメージがわかる
URLリンク(takagi-hiromitsu.jp)
URLリンク(el.jibun.atmarkit.co.jp) (事件をモデルにしたフィクション)
793:デフォルトの名無しさん
17/09/07 03:05:39.43 x1ExMc+m.net
そもそもDOMとのメモリリークとかまともに対応してきたJS界のエンジンが優秀過ぎるだけで
他のサーバサイド言語で環境を跨いた循環参照とか上手く処理できるエンジンは無いし、他のGC技術や調整も何年も遅れてる
794:デフォルトの名無しさん
17/09/07 06:19:08.39 +w9zPnXt.net
WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ?
普通にやったんじゃできないよね。
795:デフォルトの名無しさん
17/09/07 07:18:46.25 K4PeVUi8.net
応答しなければいい
796:デフォルトの名無しさん
17/09/07 09:17:55.33 9vlATu9m.net
>>769
expressだって、グローバルスコープの変数にコネクション保持すれば、その参照切るまで残るぞ
797:デフォルトの名無しさん
17/09/07 12:06:54.84 OJmUELTm.net
>>769
膨大な数のリクエスト処理するのになぜ閉じるのかが逆に理解できないんだけど
普通WebアプリやサービスのDBはつなぎっぱなしだとおもう
798:デフォルトの名無しさん
17/09/07 12:43:46.04 rxsfMKHp.net
Webのセッションが終わってるのにコネクションをセッションのために10分間保持してたって事でしょ?
普通はコネクションは閉じないがWebのリクエスト毎に紐付けは開放でしょ。
799:デフォルトの名無しさん
17/09/07 13:10:59.01 ZzrrO/3t.net
>>773
アプリサーバーとか作ったことある?
800:デフォルトの名無しさん
17/09/07 14:19:14.16 oGYUX/gJ.net
>>773
その紐付けを解放しないのが三菱流
801:デフォルトの名無しさん
17/09/07 19:20:21.66 +w9zPnXt.net
>>774
ないズラ
そんなヤツ僅少だろ
802:デフォルトの名無しさん
17/09/07 19:23:08.30 +w9zPnXt.net
>>775
三菱に限らずSIerの技術力低下が半端ない
803:デフォルトの名無しさん
17/09/07 22:32:27.03 9vlATu9m.net
自分達の底辺技術レベルが原因で、無実のエンジニアを罪人にして、ほっかむりしたのは三菱だけ
804:デフォルトの名無しさん
17/09/08 00:15:56.20 7o1xz83o.net
ちなみにDBってopenとtransactionを分離している奴があるけど、これって何で?
例えばIndexedDBでもそうで、open後にtransactionを作ってアクセスしなければならない。
しかし普通に読み書きだけなら
DBWrite(DBname, objectStores, key, value)
みたいなAPIでクエリ毎にopen/close繰り返した方が使う側は楽だよね。
何らかの理由でopenが重いから分離しているのだろうけど、
普通に実装すればそんなに重いとも思えない。
(実際はopenは数秒かかる時もある程重いが)
これって何で?
ちなみに類似ケースはXHRで、通常は毎回XHRをnewするだろ。
indexedDB.openもそれに近くて、本来はオブジェクトを初期化するだけで終わるはず。
805:デフォルトの名無しさん
17/09/08 00:27:44.82 vWsWUiiy.net
>>769
> WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ?
> 普通にやったんじゃできないよね。
コネクションプールを使ったら普通にそうなりますが?
806:デフォルトの名無しさん
17/09/08 00:28:57.91 vWsWUiiy.net
>>779
DBをopenしてselectしてcloseするなら
トランザクションいらないでしょ?
807:デフォルトの名無しさん
17/09/08 00:31:58.67 vWsWUiiy.net
>>779
> 何らかの理由でopenが重いから分離しているのだろうけど、
> 普通に実装すればそんなに重いとも思えない。
ゆえにopenが重いから分離しているという
あなたの想像は間違いだって言うこと。
根拠のない想像を結論にしないようにしよう
検証の前にあるのは結論ではなく仮定という
トランザクションは複数の操作を一塊にするもので
openが軽いのとは関係ない話
808:デフォルトの名無しさん
17/09/08 00:47:45.77 pIgMfxSJ.net
>>781
IndexedDBの場合はトランザクションは常に必要だ。
他の楽観的なトランザクション分離のDBについては知らん。
>>782
では何故openとtransactionを分離するんだ?
最初からtransaction単位でopen/closeするAPIにしておけばいいだけの話だろ。
そこを分離して手動でやらせる理由が分からん。
809:デフォルトの名無しさん
17/09/08 00:55:56.99 vWsWUiiy.net
IndexedDB特有の話なら、IndexedDBの話だって書けよ
はい、トランザクションつかってませーん。ばいなら
URLリンク(qiita.com)
オブジェクトストア作成
オブジェクトストアは、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'})
}
810:デフォルトの名無しさん
17/09/08 00:57:25.86 vWsWUiiy.net
IndexedDB特有の話ならtransaction使わないと
readonlyなのかreadwriteなのか決められないからだろ
811:デフォルトの名無しさん
17/09/08 01:14:01.64 mcCYyLIS.net
>>779
DBへの接続(open)とトランザクションは別のレイヤーだからだよ
1つの接続で2つのトランザクションを実行したい場合どうすんの?
transactionを明示的に指定しない場合に
デフォルト設定で例えばステートメント単位でトランザクションになるような仕組みがDBにあればtransaction指定は必須でなくなる
一般的なRDBはそうなってると思うけど
812:デフォルトの名無しさん
17/09/08 01:20:17.29 pIgMfxSJ.net
>>784-785
つかお前根本的に分かってないだろ。
IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。
これはMDNからはとてもそうは読めないのだが、とにかくそう。
そしてAPIが
> DBWrite(DBname, objectStores, key, value)
> DBWrite
とかでいいのではないか?というのが俺の疑問なのだが。
何故かは知らんがDBには「繋ぎっぱなし」の文化はあるんだよ。>>772
IndexedDBのAPIからもそれは読みとれる。
> Web アプリが別のタブで開かれているときにバージョンを変更する
> URLリンク(developer.mozilla.org)
毎回閉じる文化ならそもそもこれは要らない。
MDISはこの「繋ぎっぱなし」の文化でWeb側にも解放したらリソースが枯渇しただけだろ。
ただそもそもこの「繋ぎっぱなし」ってなんなのさ?
open/closeが軽いのなら毎回open/closeすればいいだけだし、
普通に実装すれば重いとも思えないし、ということなのだが。
(ただし実際にはIndexedDBでもopen/closeは重い)
813:デフォルトの名無しさん
17/09/08 01:26:20.56 pIgMfxSJ.net
>>786
> transactionを明示的に指定しない場合に(以下略)
これについてはそれでいい。
APIコール1回=1つのtransactionになるって事で。
> 1つの接続で2つのトランザクションを実行したい場合どうすんの?
これってどういうケース?
その2つのトランザクションをくっつけて1つのトランザクションにしておけばいいだけの話では?
並列性を限界まで出したくて、例えばライト/リードでトランザクションを分けておきたいとかか?
814:デフォルトの名無しさん
17/09/08 03:16:51.74 mcCYyLIS.net
>>788
1回の接続で複数トランザクションを実行したいケースってあんまりないのかな
例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら?
トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね
だから一般的にはトランザクション境界と接続の開閉を一つにしたAPIってのはいい設計じゃないと
815:思う >>787 繋ぎっぱなしの文化なんかなくて、ただの開放漏れのバグだよ openしたらcloseするのが必須
816:デフォルトの名無しさん
17/09/08 08:36:52.78 Q9xrmP/+.net
>>780
コネクションプーリングはコネクションを使いまわす仕組みだからDBには繋がったままだけどWebのセッションからはリクエストの度に切り離される。
とっくに終わってるセッションがコネクションを独占するようなアホな作りはどうやったらできるのかって事。
817:デフォルトの名無しさん
17/09/08 08:40:11.92 Q9xrmP/+.net
>>787
繋っぱなしってコネクションプーリングのことでしょ。アプリから見ると毎回、open/closeしてるように見える。
818:デフォルトの名無しさん
17/09/08 09:36:43.18 vWsWUiiy.net
>>790
コネクションを独占ってなんだ?
異なるセッションから、コネクションを使いまわすのがコネクションプーリングなんだが?
セッションが終わってるっていうのなら、コネクションは明け渡してるだろ
819:デフォルトの名無しさん
17/09/08 09:38:38.44 vWsWUiiy.net
>>787
> IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。
じゃあなおのこと、openでトランザクションは貼れないな。
だって、何の操作をするかで、トランザクションの種類が変わるわけで
openした時点ではわからないんだから
820:デフォルトの名無しさん
17/09/08 09:40:18.14 vWsWUiiy.net
>>787
> そしてAPIが
> > DBWrite(DBname, objectStores, key, value)
> > DBWrite
> とかでいいのではないか?というのが俺の疑問なのだが。
トランザクションは複数のDBWriteを
一つにまとめるものなんだから
それじゃだめだろって言ってるんだが?
いいからトランザクションを勉強してくれ
お前、根本的に分かってない(笑)
821:デフォルトの名無しさん
17/09/08 11:27:15.08 K/Y+ost0.net
>>792
>>766-767
822:デフォルトの名無しさん
17/09/08 19:22:44.56 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の標準形だからだと思う)
823:デフォルトの名無しさん
17/09/08 19:23:19.38 pIgMfxSJ.net
DBのAPIは意味不明で、そもそもオブジェクト指向にも反してる。
ユーザがやりたいのはread/writeであって、open/closeではない。
File.openの代わりにHDD.open+File.readというAPIにする奴がいたら、死ねでしかないだろ。
open/closeってもしかして今みたいなパケット相乗り回線ではなく、専用回線を掴んでいた時の名残か?
824:デフォルトの名無しさん
17/09/08 19:24:30.23 pIgMfxSJ.net
>>790
MDISのケースは多分、図書館内端末用の界面にそのままWebを接続しただけだろ。
この場合、見た目は問題なく動く。
リソース枯渇のケースはコードから落とすしかないが、レビューが新規コードだけなら無理だ。
(この場合は新規コードはほぼ無しで、問題は�
825:。動作しているコード内にあるから) おそらくMDISもB方式で、自前でコネクションプーリングしてる。 これは館内端末用で、端末に行列が出来ているかどうかは知る由もないから、closeはタイムアウトで10分とした。 ここまでは妥当な設計で、館内端末なんて高々数十台だし、問題なく動く。 問題はこれをそのままWeb側にも解放したことで、 この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。 本来は、 D. Webからの入力を受ける「仮想端末」を用意し、Web入力は一旦全部そこで受けてからDBアクセス。 E. open/closeを毎回やるようにする。(Aと同じ) のどちらかが必要で、本来はDの方がいいし多分そうしていると思う。 Dの場合はDDoS時にも館内端末は無傷で済む。 追加コードは仮想端末部分だけであり、既存コードには一切手を入れる必要がない。 Eの場合は全体のパフォーマンスが「いちいちopen/close」分だけ落ちる。 とはいえ真面目にDBを組んであればUIからでは見えないとも思う。 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。 (そうなっていない場合は全体ソースを見直す必要があり、現実的ではない)
826:デフォルトの名無しさん
17/09/08 23:49:21.12 mcCYyLIS.net
>>796
もうめんどくさいな君w
DBへの接続とトランザクション境界を一致させた画期的APIを作って流行らせればいいよ?
一つのユースケースたけに特化したものとしては別にあっても悪く無いと思うよ
ただなぜそういう設計のものが存在しないのか考えてからね
827:デフォルトの名無しさん
17/09/09 01:02:01.91 al+wrNfN.net
>>797
> ユーザがやりたいのはread/writeであって、open/closeではない。
そのうち二回のwriteを実行して二回目のwriteで
エラーが起きた時に一回目のwriteもロールバックするために
トランザクションがあるんですよ?
828:デフォルトの名無しさん
17/09/09 01:12:33.18 al+wrNfN.net
URLリンク(developer.mozilla.org)
データベースからデータを取得する
よーし、今から customers テーブルのデータを読み込むぞー!
var transaction = db.transaction(["customers"]);
おい、ちょっとまて俺はdbオープンした時に
自動的にトランザクション実行するぞ!
全てのテーブルに対してreadwriteロックじゃ
誰も読み込みも書き込みもできない
俺はcutomersテーブルなんか触らないけどなwww
こういう迷惑バカが居るから、openとトランザクションは別にするべき
829:デフォルトの名無しさん
17/09/09 01:14:33.64 al+wrNfN.net
>>798
open/closeのパフォーマンスを気にしてるのはお前だけだ
忘れろな
830:デフォルトの名無しさん
17/09/09 01:16:06.59 al+wrNfN.net
>>798
> 問題はこれをそのままWeb側にも解放したことで、
> この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。
誰もコネクションが枯渇したなんて言ってない
831:デフォルトの名無しさん
17/09/09 01:26:53.73 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
832:デフォルトの名無しさん
17/09/09 01:27:51.16 al+wrNfN.net
コネクションプールを行うためのミドルウェアが
833:デフォルトの名無しさん
17/09/09 08:27:34.35 HacXztT4.net
>>802
少なくともコネクションプーリングを考えたヤツはopen/closeのコストが大きいと考えてる。
数十ミリ秒と数ミリ秒の差が影響するシステムもある。
834:デフォルトの名無しさん
17/09/09 11:05:16.16 2lDsKHBN.net
連想配列のキーに使用できる文字列の仕様ってどこに載ってますか?
835:デフォルトの名無しさん
17/09/09 11:18:09.89 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
836:デフォルトの名無しさん
17/09/09 11:31:15.85 LLd0E2c+.net
連想配列ならMapが最強
従来のオブジェクト形式が良いにしても
o = Object.create(null)でo[key]の方が早い
837:デフォルトの名無しさん
17/09/09 11:46:17.16 36A1ffms.net
o[key] = 0
で破綻するやん
838:デフォルトの名無しさん
17/09/09 11:50:30.88 al+wrNfN.net
>>806
だからなんだよ。
トランザクションの話をしてる時に
open/closeのコストを考えるなって話だろうが
839:デフォルトの名無しさん
17/09/09 12:01:05.07 al+wrNfN.net
>>808
> 連想配列にキーが存在するかチェックするのならinが速いな
一回あたり
59.21ナノ秒(=0.00000005921秒)
97.41ナノ秒(=0.00000009741秒)
だと10万回~100万回ぐらいチェックしない限り
速度を気にしたって意味なさそうだね。
840:デフォルトの名無しさん
17/09/09 12:42:11.18 gq9mYezw.net
Object を連想配列にした場合、キーを、__proto__ にすると誤動作するから、
そのキーだけ、特別な処理が必要
他にも、使えないキーがあるかも
841:デフォルトの名無しさん
17/09/09 12:46:58.91 al+wrNfN.net
>>813
どういう時に __proto__ をキーに使ったの?
842:デフォルトの名無しさん
17/09/09 14:34:12.81 gq9mYezw.net
英文から、すべての単語を取り出して、出現回数でも調べたのかな?
どこかのサイトで、そういう質問を見た
843:デフォルトの名無しさん
17/09/09 15:01:25.52 1mapG51j.net
つい最近>>746でオレが聞いた
844:デフォルトの名無しさん
17/09/09 15:37:47.37 al+wrNfN.net
>>815
そういう場合は、適当なプリフィックスをつけるだけで解決するね
obj['@' + word] = なんとか
845:デフォルトの名無しさん
17/09/09 16:00:58.16 3M7laixG.net
Object.create(null)で作ったオブジェクトには__proto__は無いし自由に値を設定できるこれ豆
846:デフォルトの名無しさん
17/09/09 17:11:43.49 gq9mYezw.net
Object.create() は、ECMA 5.1, IE9 以上か
こういう機能が無かった、ES3 の頃の話かな
847:デフォルトの名無しさん
17/09/09 19:32:09.22 JfRpRKzR.net
chromeのdevtoolsからconsole.dir({})やるとオブジェクトの中身が見れるけど
nodejsの場合はどうやって見るんでしょうか?
848:デフォルトの名無しさん
17/09/11 09:40:29.07 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) プログラマーズ
849:デフォルトの名無しさん
17/09/12 14:01:13.14 yQ6PO1c5.net
URLリンク(github.com)
調べ物をしている最中にこんなの見付けたんだけど
Httpdがリクエスト受け取ってる時点でDDoS対策にならないんじゃないの?
850:デフォルトの名無しさん
17/09/12 14:33:55.38 ziqXdae+.net
>>822
動作の軽いリバースプロキシ立ててそこで対応するほうがよさそう
851:デフォルトの名無しさん
17/09/12 15:30:08.72 bSzAw540.net
node 8.0ってimpotr対応してないの?
852:デフォルトの名無しさん
17/09/12 18:35:03.20 e3er3ToK.net
Chromeですら対応したというのに・・
853:デフォルトの名無しさん
17/09/12 18:49:24.80 BAm9hYWq.net
node 8はこの秋LTSになるんだからアグレッシブに最新機能は入れないよ
node 9には入る
854:デフォルトの名無しさん
17/09/12 21:29:56.96 LuYVlbWB.net
くそっ、typoかよ騙された
855:デフォルトの名無しさん
17/09/15 21:47:46.74 v6+6iXpW.net
>>810
どういうこと?くわしく
856:デフォルトの名無しさん
17/09/15 23:16:55.75 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番目のようにデータが見やすく作る方法ってないですか?
857:デフォルトの名無しさん
17/09/15 23:30:32.45 Xh3vGrxx.net
なんでObject.createしばりなの?
リテラル使っちゃだめな理由は?
858:デフォルトの名無しさん
17/09/15 23:36:18.16 QyBaQfPQ.net
>>828
>>809を読め
>>830
>>746とか>>813を読め
859:デフォルトの名無しさん
17/09/15 23:40:38.42 wJEpgv7W.net
リテラルじゃ継承されるからじゃね
860:デフォルトの名無しさん
17/09/16 00:01:15.52 xdW9+GRk.net
>>829
Object.assign(Object.create(null), { a: {name: 1}, b: {name: 2}, }) ;
>>810
undefinedと比較
861:デフォルトの名無しさん
17/09/16 00:09:23.95 YClTS+Ib.net
>>833
Object.assignはシャローコピーだから>>829と同じじゃない
undefinedとの比較は>>809とは違うしどっちみちundefinedを値として使うと破綻する
862:デフォルトの名無しさん
17/09/16 00:18:50.51 gf/ZkNkm.net
>>831
え~~、Object.prototypeのプロパティに被る可能性があるからっていう理由で
>>829みたいな書き方になっちゃうの。。。用途によるんだろうけど何とも言えない気分
863:デフォルトの名無しさん
17/09/16 00:36:48.84 NSNMTUH3.net
使うプロパティの種類が限られてるなら
気にする必要ないだろ
864:デフォルトの名無しさん
17/09/16 08:30:48.03 7pQmikz8.net
>>829
jqueryから$を取り上げよう
865:デフォルトの名無しさん
17/09/16 08:33:39.21 NSNMTUH3.net
>>837
また新しいライブラリを作ろうって話かよ。
lodashでできるんじゃね?
866:デフォルトの名無しさん
17/09/16 09:45:53.23 7pQmikz8.net
簡単な関数だよ
$(name1, value1 ...)
で>>829みたいな事をすれば良い
867:デフォルトの名無しさん
17/09/16 09:57:17.44 NSNMTUH3.net
そうするとjQueryと勘違いされるから
違う関数名のほうが良さそうだね
868:デフォルトの名無しさん
17/09/16 11:34:59.96 C+9D3UXm.net
にわかばっかだなここ
{
__proto__: null,
a:1
}
を使えば良いだけだろ……
その程度も知らないようじゃJSer失格
恥ずかしいよほんとに
869:デフォルトの名無しさん
17/09/16 18:21:39.65 /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);
}
じゃとれませんでした
どうやって取るんでしょうか?
870:デフォルトの名無しさん
17/09/16 18:46:19.62 GikFp8do.net
もはやnode.jsの話じゃないな
node.js使わずchromeでやってるんだからわざとやってるだろ
まずはjavascript prototypeでググれ
それで分からないことはどこかのjavascriptスレで聞け
871:デフォルトの名無しさん
17/09/16 21:08:44.37 qXL21HWW.net
?????????????????
872:デフォルトの名無しさん
17/09/16 21:17:16.00 fS24z2RM.net
バッドノウハウ多すぎ!!!!!!!!
873:デフォルトの名無しさん
17/09/17 09:39:33.63 FQFctnSq.net
>>843
chromeのコンソールでconsole.logした方が解析しやすいじゃん バカなの?
874:デフォルトの名無しさん
17/09/17 18:24:28.11 bBG8AL9E.net
>>842
getOwnPropertyNamesは名前の通りOwnなプロパティしか取れん
for-inは継承を遡るが、列挙不可にされてるプロパティは取れん
ビルトインプロパティは基本的に列挙不可されているので
結局for-inでも殆どOwnなプロパティしか取れん
それを取るには、__proto__を繋げていって一つ一つにgetOwnすること
875:デフォルトの名無しさん
17/10/16 07:08:15.82 x77nDEIG.net
URLリンク(nodejs.org)
の、8.7.0 Current をインストールしました。
で、
node.jsを立ち上げ、
.helpは通るのですが、
$ node
や、
$ node -v
は、
SyntaxError: Unexpected identifier
になってしまいます。
どうすればいいでしょうか?
876:デフォルトの名無しさん
17/10/16 07:58:53.13 BYvG9erR.net
コマンドプロンプト・PowerShell で、
node -v
とコマンドを打つと、そのコマンドの実行ファイルを、OS が探す必要がある
つまり、その実行ファイルの場所を、環境変数PATH などで、OSに教える必要がある
環境変数PATHに指定していなくても、
絶対・相対パスで指定すれば、実行できるはず
Windowsのパス(PATH)の読込順 と起動される順番
URLリンク(takuya-1st.hatenablog.jp)
877:デフォルトの名無しさん
17/10/16 08:26:32.58 x77nDEIG.net
>>849
レスありがとうございます。
では、どうやればいいのでしょうか?
node.exeは↓にあります。
"C:\Program Files\nodejs\node.exe"
878:デフォルトの名無しさん
17/10/16 08:44:36.72 H4ZQF/LB.net
これはひどい
879:848
17/10/16 09:14:18.01 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
880:a file しかし、 $ node -vを打っても、 エラーになってまう。 これは不思議なことだと思わないかね?
881:デフォルトの名無しさん
17/10/16 11:09:57.97 FZpcfz8T.net
思わんよ
お前だからな
882:デフォルトの名無しさん
17/10/16 15:17:21.46 kN1YFDVK.net
なんでそんなレベルでnode.jsインストールしようと思ったんだろ
883:848
17/10/16 19:08:59.31 x77nDEIG.net
>>854
URLリンク(www.webprofessional.jp)
このページの黒い部分でいうと、
> console.log('Node is running');
や
> .help
これは、
実行出来るのです。
この状態でバージョン確認をするにはどうすればいいのでしょうか?
884:デフォルトの名無しさん
17/10/16 19:46:31.00 MK8giXG1.net
>>850
C:\Program Files\nodejs\node.exe
885:デフォルトの名無しさん
17/10/16 20:38:10.52 VwEzpL/B.net
>>855
> process.version
886:848
17/10/16 20:56:45.49 x77nDEIG.net
>>857
お、ありがとうございます。 通りました。
じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。
$ which node
$ node --version
887:デフォルトの名無しさん
17/10/16 21:14:41.96 VwEzpL/B.net
>>858
849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す
パスの通し方とかでググって
コマンドプロンプト使う時の基本だから
888:デフォルトの名無しさん
17/10/16 21:32:19.39 dl4DNYXd.net
windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな
$は入力するものじゃないしwitchコマンドはwindowsにはない
889:デフォルトの名無しさん
17/10/16 23:57:03.44 BYvG9erR.net
例えば、コマンドプロンプトで、
where notepad
と打てば、メモ帳の実行ファイルの場所が、表示される
where node
と打てば?
890:848
17/10/17 01:14:58.50 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
と表示されます。
さらに、
URLリンク(qiita.com)
ここを参考にして、コマンドプロンプトに、
C:\Windows\system32>node --version
と、打つと
v8.7.0
と表示されます。
ってことは、「nodejsのパスは通ってる」ってことはないですか?
さらに、コマンドプロンプトで、
C:\Windows\system32>npm --version
と、打つと、コマンドプロンプトがどこかに行って戻って来ません。
891:デフォルトの名無しさん
17/10/17 02:57:58.14 HKb0WdLR.net
npm の仕組みについても、検索して調べて!
思い付きで、色んなコマンドを打っても、動かない
C:\Windows\system32>node --version
C:\Windows\system32>
そもそも、ここは、Windows のシステム領域だろ。
こんな場所へは行かないし、ここからコマンドを打つことは、絶対にない
自分のホームディレクトリ以下に、プロジェクトフォルダを作って、
そこからコマンドを実行する
プロジェクトフォルダ>node --version
これで、コマンドが探せないのなら、
>>849
のサイトを見て、勉強する
OS の仕組みについて、何年も勉強していなければ、
環境構築・システム運用はできない
892:848
17/10/17 03:06:35.78 ISfP7NF8.net
つか、わかった。
スタートメニューに色々出来るけど、
nodejs
と、
Node.js command prompt
があって、
Node.js command prompt
を立ち上げるべきを、
nodejs
を立ち上げてたのだと思う。
893:848
17/10/17 03:18:05.69 ISfP7NF8.net
URLリンク(gihyo.jp)
つかこれの、真ん中ぐらいの、
>を実行すると,コンソールに「foo」と出るのが確認できます。
これが確認出来ました。
ありがとうございました。
894:848
17/10/17 03:22:08.69 ISfP7NF8.net
しかし、nodejsも、Node.js command prompt も、
どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね?
895:デフォルトの名無しさん
17/10/17 10:55:35.86 tiaX2vSA.net
それを調べて糧にするのがお前の役目だろ
896:848
17/10/17 11:29:12.47 ISfP7NF8.net
node.jsを使ってjQueryチックにWebサイトをクローリングする方法
URLリンク(liginc.co.jp)
これが半分ぐらい出来たんですけど、
これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね?
897:848
17/10/17 11:30:33.39 ISfP7NF8.net
私的には.csvのデータで十分なんだけど。
898:デフォルトの名無しさん
17/10/17 15:55:26.78 G9wCIPXR.net
プログラミングの学習が目的ではないみたいだし
潔く諦めてGUIのスクレイピングツールを使え
自分で学ぼうとしないやつを
いつまでも相手にするほどみんなヒマじゃないから
899:デフォルトの名無しさん
17/10/17 19:05:26.58 OFQ0CJNG.net
>>868
SQLiteおぬぬめ
900:デフォルトの名無しさん
17/10/17 22:43:19.58 HKb0WdLR.net
MongoDB, Redis など、NoSQL系DB で良い
901:デフォルトの名無しさん
17/10/18 11:32:51.58 RFRRa2Hk.net
KVS最強
902:デフォルトの名無しさん
17/10/23 09:02:07.81 2VeGFVWI.net
windows10をFCUしたら
node-notifierと言うライブラリが機能しなくなってしまいました。
呼び出すとエラーも出さずに消えてしまいます。
どこを確認すべきでしょうか?
903:デフォルトの名無しさん
17/10/23 12:01:05.02 bv0ZvSeb.net
クリーンなPCで検証
904:デフォルトの名無しさん
17/10/25 17:27:32.02 wXo7lKEI.net
コレってnode.jsでGoogle Assistantを呼び出せるの?
URLリンク(github.com)
905:デフォルトの名無しさん
17/11/02 09:20:24.78 qskrUnxL.net
>>876
書いてあるだろ
906:デフォルトの名無しさん
17/11/02 18:07:41.82 bLT6lfrr.net
expressってproductで使われてんの?
907:デフォルトの名無しさん
17/11/02 18:13:56.96 RicVp4Qn.net
ツイッターもインスタグラムも使ってるよ
908:デフォルトの名無しさん
17/11/02 19:46:41.59 cCQG4q+b.net
koa使おうぜ
909:デフォルトの名無しさん
17/11/03 09:20:41.79 tbSBcvrg.net
複数人体勢のexpressのほうが安心
koaは作者一人だから不安だから使わない
910:デフォルトの名無しさん
17/11/06 21:16:07.71 tccVqtCS.net
koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品
911:デフォルトの名無しさん
17/12/01 17:33:36.24 Tsnnxn0j.net
koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。
いいで~ koa2+react。
912:デフォルトの名無しさん
17/12/01 20:58:49.48 dEoQxhVh.net
>>883
うむ
913:デフォルトの名無しさん
17/12/02 05:34:12.07 IJ6GXagf.net
サーバサイドでreactってどういう意味?
914:デフォルトの名無しさん
17/12/02 08:11:38.76 zj58uySz.net
ssrじゃね?
915:デフォルトの名無しさん
17/12/02 12:17:05.09 JzqKudWn.net
ssrっていらなくね?
916:デフォルトの名無しさん
17/12/02 13:37:03.76 iXlrNF2g.net
ツイッターもインスタもNetflixもやってるぞ
917:デフォルトの名無しさん
17/12/04 01:47:10.73 sdiyRgle.net
メテオとかいうFWって死んじゃったんですか?
918:デフォルトの名無しさん
17/12/04 20:47:28.49 EJPuWg3p.net
全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。
10年後も、その時の最新のnodeで使えるんなほんまに。
919:デフォルトの名無しさん
17/12/06 19:36:04.95 GgcfIolq.net
ん? SSRに何か問題でも?
920:デフォルトの名無しさん
17/12/06 20:20:27.85 MyyqK5wy.net
鯖側の負荷が増える
921:デフォルトの名無しさん
17/12/12 22:19:31.72 gHkSE4eN.net
node.js難しいっていうイメージだったけど、
JavaScriptがウンコだったってことみたい
なんでこんなに散らかってしまったんだ
せめて書き方を統一しろよ
922:デフォルトの名無しさん
17/12/12 23:49:28.08 gqOvSsDA.net
>>893
ESLint使えば?
923:デフォルトの名無しさん
2017/12/
924:12(火) 23:57:54.77 ID:8VRWkTHd.net
925:デフォルトの名無しさん
17/12/13 00:01:47.40 pDkqMCU5.net
JavaScriptは言語仕様が使いにくいとは思う
小規模なら使いやすいかというと全然そんなことない
926:デフォルトの名無しさん
17/12/13 23:32:59.98 dQY+CYRc.net
言語仕様に難しいところはない。
難しいと思う所言ってみな?
927:デフォルトの名無しさん
17/12/14 01:12:30.76 JyoUxFOL.net
プロトタイプベースなところ
使いやすいと思ったことがない
928:デフォルトの名無しさん
17/12/14 01:32:58.14 LEbaYuuB.net
プロトタイプなんて使うことないだろ?
929:デフォルトの名無しさん
17/12/14 05:58:01.99 fEY/FzHm.net
>>893
うむ
930:デフォルトの名無しさん
17/12/14 05:59:02.65 fEY/FzHm.net
>>896-897
仕様が難しいというのと馬鹿の扱いが難しいのは別の話だな
931:デフォルトの名無しさん
17/12/14 10:39:14.62 y5gxd1px.net
ES2015に従えばプロトタイプってことを意識することはないかな。
既存のクラスにメソッド追加したいときとかなら意識するけども。
932:デフォルトの名無しさん
17/12/14 20:55:43.66 LEbaYuuB.net
>>902
prototypeを使って簡単なことをするのと
prototypeを使って複雑なことをするのでは
当たり前だけど難易度が違うのさ
既存のクラスにメソッドを追加するのは、
prototypeの簡単な使い方に含まれる
意味はわからなくてもいいから、こういう書き方をすればOK
程度の説明だけでもクラスにメソッドを追加することはできる
933:デフォルトの名無しさん
17/12/15 02:24:03.53 OK9q/vji.net
クラスだけじゃなく手続き型っぽくも書いたり
はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない?
凄く冗長に厳かに書いたかと思えばハッキ―なテクニックも使ったりもするしね
世の中には「良い書き方は1つ」を目指してる言語もあるけどJSはその対極だからね
標準ライブラリが少ないという点もそう
俺はそういう点こそが好きだけどね
934:デフォルトの名無しさん
17/12/15 07:18:04.72 18KhAamS.net
OOPが常に最適解ではないというのは衆知の事実だしな。
俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。
935:デフォルトの名無しさん
17/12/15 11:04:58.73 vwC80Nto.net
node-redを使ってるんですが
フローって作成するとメモリに常駐するんですか?
作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね?
936:デフォルトの名無しさん
17/12/15 17:13:59.28 WQPs5rl9.net
パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね
現状じゃ括弧のネスト増えるからとてもじゃないけど書けない
937:デフォルトの名無しさん
17/12/15 17:30:06.75 nGMqwgOn.net
関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし
そしたらパターンマッチも不可欠だし
関数型への道は険しい
Elm使え
938:デフォルトの名無しさん
17/12/15 21:51:56.77 OK9q/vji.net
ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが
|>await|>など提案によりStage1の中ではHotになりつつある
あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負
そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要
頑張れ
939:デフォルトの名無しさん
17/12/15 22:47:15.05 L7gVN0RS.net
>>907
パイプだろうがドットだろうが大差ないだろw
どうせ一行が長くなったら改行するんだから
つまり
foooooooooo()
| baraaaaaaaaaaaa()
| bazzzzzzzzzzzzzzz()
でも
foooooooooo()
.baraaaaaaaaaaaa()
.bazzzzzzzzzzzzzzz()
でも同じだろと
foo() | bar() | baz() でも
foo().bar().baz() でも同じだろと
940:デフォルトの名無しさん
17/12/15 23:37:27.58 WQPs5rl9.net
>>910
いや、メソッドじゃなくて関数
bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo()))
と
foooooooooo()
|> baraaaaaaaaaaaa()
|> bazzzzzzzzzzzzzzz()
じゃ後者がいいやん?
メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね
941:デフォルトの名無しさん
17/12/15 23:54:55.14 SRfxT1c6.net
>>910
>>911
パイプの方が可読性高いだけでもいいわ
メソッドチェーンは読みにくくなるから嫌い
942:デフォルトの名無しさん
17/12/16 00:14:10.39 plaGBrRo.net
URLリンク(www.npmjs.com)
babel-plugin-pipe-operator
Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior
これ使えば今すぐ使えるのかな?
943:デフォルトの名無しさん
17/12/16 00:18:33.91 ArLhqftT.net
A | B | C
たぶん、パイプだと並行処理する
1. Aが最初の1KBを処理する
2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理
3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理
944:デフォルトの名無しさん
17/12/22 09:15:33.73 8f8y8qIA.net
これの第2引数って{anyway:true}みたいなのを渡せばいいんですか?
URLリンク(i.imgur.com)
945:デフォルトの名無しさん
17/12/22 09:37:16.18 8f8y8qIA.net
合ってました自己解決しまひた
946:デフォルトの名無しさん
17/12/22 21:07:59.68 dt9jytk4.net
socket.io 2.0.4で指定したルーム内の全てのソケットもしくは
ソケットIDを取るにはどうしたらいいですか?
socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、
同じようなことを2.0.4でしたいです。
947:デフォルトの名無しさん
17/12/22 23:11:18.78 dt9jytk4.net
自己解決しました。
socket.ioのgithubに行ったら詳しいドキュメントがありました。
948:デフォルトの名無しさん
17/12/27 08:03:34.44 hw44w6Qj.net
JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。
ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。
CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。
949:デフォルトの名無しさん
17/12/27 14:23:29.84 LFgX9gcs.net
一年くらい前にブラウザのSW上に実装した記事をどっかで見たな
950:デフォルトの名無しさん
17/12/29 09:12:07.30 LK61JUUB.net
console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。
一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。
Node.jsは後者みたいだけど。
951:デフォルトの名無しさん
17/12/29 12:21:26.51 LK61JUUB.net
あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから
とりあえず前者にしておけばいいんだな。
952:デフォルトの名無しさん
17/12/31 21:37:45.29 9jWP4uLU.net
クライアントサイドjavascriptのスレってどこにあるんですか?
WebProg板にあるのかと思いきやあっちもサーバサイドだし
953:デフォルトの名無しさん
17/12/31 22:08:43.06 beY0Iyii.net
これ
スレリンク(tech板)
954:デフォルトの名無しさん
17/12/31 23:43:06.40 B2mtcXzM.net
web制作板
955:デフォルトの名無しさん
18/01/01 08:44:35.42 oE47bkuE.net
ありがとん
3つめもあるとは想定外でした
956:デフォルトの名無しさん
18/01/07 11:33:35.99 pcvnpBsv.net
child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう
スレッドのj
957:oin()のように待ち合わせる機能はないのかな。
958:デフォルトの名無しさん
18/01/10 11:06:47.57 AcbVN6ZK.net
workerってWebWorkerのこと?
それならSharedArrayBufferとAtomics APIでできるよ
ただCPU脆弱性問題で今は無効にされてる
959:デフォルトの名無しさん
18/01/10 22:10:28.26 oFasEgAN.net
サーバーサイドでそれ無効にする必要ある?
Webブラウザは様々なサイトのコードを実行するから
対策が必要だろうが
サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん
960:デフォルトの名無しさん
18/01/10 22:13:57.25 NAqv0WmW.net
>>929
いつの間にサーバーOS=シングルユーザーOSになったんだよw
OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ
961:デフォルトの名無しさん
18/01/10 22:57:46.99 PVJi42Un.net
自鯖レン鯖ならともかくコンテナやVPSでメモリ共有する環境もあるしな
962:デフォルトの名無しさん
18/01/10 23:40:19.20 ejeCAGvR.net
他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね?
963:デフォルトの名無しさん
18/01/11 00:49:54.75 PrVjW9Sz.net
URLリンク(blog.trendmicro.co.jp) 読んだだけの
大雑把な理解だが、
カーネルのメモリを覗けるのがメルトダウン
同じコードを共有した他のプロセスのメモリを覗けるのがスペクター
だと思ってる
メルトダウンはカーネルのメモリを覗けるものだから
カーネルが覗かれないように対策できる
スペクターはアプリが覗かれないように対策する必要があるが
その必要があるのは、例えばブラウザのような同じブラウザ上で
別々の人が作った任意のコードを実行するようなものだから
攻撃の前提を満たすのが難しい
964:デフォルトの名無しさん
18/01/11 01:45:26.94 zDr2JTOQ.net
>>933
この記事はいいね。
> その必要があるのは、例えばブラウザのような同じブラウザ上で
> 別々の人が作った任意のコードを実行するようなものだから
この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、
Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。
同じアプリである必要はないはずよ。
965:デフォルトの名無しさん
18/01/11 09:18:34.65 gamfIHe5.net
Spectreの2つの亜種のうち
1つは同じプロセスの内容だけを覗けて
もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど?
966:デフォルトの名無しさん
18/01/11 14:51:21.63 xvA5vOWN.net
Spectreは2つ組み合わせて使わないと意味がない
967:デフォルトの名無しさん
18/01/13 20:38:05.97 iJyUFjEF.net
一度でもasync/awaitを使ってしまうと、もう元には戻れない
楽すぎるぅぅぅぅぅ
968:デフォルトの名無しさん
18/01/13 20:47:08.73 /br76GKn.net
便利やろ?babelさまさまやで
969:デフォルトの名無しさん
18/01/13 22:03:52.60 xaNBQnI8.net
単発非同期にはasync-awaitで十分便利だけど
イベントのようなものを扱うのはまだまだ難しい
まず値が複数あるということ
一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は
結局done:trueを見ないといけないから使えない
また、イベントって標準on~も結構な工夫がされてるけど、
イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある
この辺り最近ずっと個人的に研究してるが容易ではない
970:デフォルトの名無しさん
18/01/24 19:25:24.68 BUPTScBe.net
最近node.jsを勉強しています。
socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら
その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか?
971:デフォルトの名無しさん
18/01/24 19:35:05.25
972:yxm2qYfd.net
973:デフォルトの名無しさん
18/01/24 19:42:51.25 BUPTScBe.net
スマホでアクセスポイントが変わったりした場合、一回切れますよね?
974:デフォルトの名無しさん
18/01/25 11:23:58.90 zPND7U3x.net
同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね
975:デフォルトの名無しさん
18/01/25 11:26:00.59 zPND7U3x.net
TCPかUDPかとかでも違うんだろうけど
socket.ioがどっちかは忘れた
976:デフォルトの名無しさん
18/01/25 19:29:10.53 Jk7QmDIY.net
socket.ioってクッキーみたいので、セッションID維持してて
切れても安心みたいな感じじゃないんですか?
977:デフォルトの名無しさん
18/01/26 05:42:52.58 XyEr3Esl.net
やってみろ
978:デフォルトの名無しさん
18/02/01 14:15:55.68 zVItOEuq.net
node.jsって人気ないな~
解説ブログは古いし、間違ってるし、
こんなんで作ったらバグだらけやん
979:デフォルトの名無しさん
18/02/01 14:21:50.49 XMp5TkVS.net
はげそれ
ブームは去った
980:デフォルトの名無しさん
18/02/01 19:35:39.75 3VWe7l68.net
>>947
今は何が流行ってんの?
981:デフォルトの名無しさん
18/02/01 20:52:06.68 6/askoF7.net
unity
982:デフォルトの名無しさん
18/02/01 21:34:46.61 lSl6eIsr.net
golangに持って行かれたね
983:デフォルトの名無しさん
18/02/02 07:24:52.85 E+B1ekpI.net
結局、どう使うべきかわからないというのが問題なんじゃないかな
拡張機能があるけど、個々の機能はわかるけど、うまくピースがはまらないイメージ
984:デフォルトの名無しさん
18/02/02 07:41:34.72 sggyuymU.net
juliaもそうだった
985:デフォルトの名無しさん
18/02/02 19:30:20.18 E+B1ekpI.net
プログラムの設計思想がぴんとこない
非同期で時間のかかることやらせるならsocket.ioは必須なの?
切断したときにどう復旧させるの?
自分は何者で何をしてたかの情報をうまく組み合わせる必要ない?
986:デフォルトの名無しさん
18/02/02 22:13:57.33 ISpZH99S.net
どう使うべきかじゃなくて
自分が作りたいものを作る時に何を使うかだろ
987:デフォルトの名無しさん
18/02/03 07:40:05.67 dVw1phCl.net
そこが想像できない、よくわからないから抜け出せないので、使う候補に上がってこない
988:デフォルトの名無しさん
18/02/03 09:00:51.63 C+glEnt3.net
世界的な事例のほとんどは
バックエンドをマイクロサービス化
↓
その前段のbffにnode.js
これだからモノリシックなシステムには無縁
989:デフォルトの名無しさん
18/02/03 09:43:35.86 qWVkS+Es.net
それだとgolangに負けるな
990:デフォルトの名無しさん
18/02/03 09:48:29.04 q+B7XjZz.net
bffでnode.js使うところはssrもやってるからgoは選ばれないんじゃね
結局そういうアーキテクチャの要請があってプロダクトが選ばれる
991:デフォルトの名無しさん
18/02/03 10:20:29.26 k4L1joBU.net
bffとssrって関係あるかねぇ?
992:デフォルトの名無しさん
18/02/03 10:30:11.33 lOPjGEYQ.net
isomorphic javascriptでググれ
993:デフォルトの名無しさん
18/02/04 10:07:02.98 iEv00Bkz.net
SNSのバックエンドをExpressオンリーにするのって無理かな
994:デフォルトの名無しさん
18/02/04 14:58:55.91 WVo2r3Ik.net
>>962
phpでもrubyでもいけるのにexpressじゃ無理かもしれないと思った理由は?
995:デフォルトの名無しさん
18/02/04 15:27:37.16 B22IaXtA.net
一つのexpressにHTTPdからAPI鯖まで全部詰め込んでもいいんだぞ
996:デフォルトの名無しさん
18/02/04 21:03:28.89 iEv00Bkz.net
>>963
あまりそういう話を聞かないから
不都合全く無いの?
997:デフォルトの名無しさん
18/02/04 21:25:10.40 UUFlqCAw.net
expressはあんまり高水準のフレームワークじゃないしormはsequelizeくらいしかないしメリットなさげじゃね
998:デフォルトの名無しさん
18/02/05 07:30:15.23 GXsl78
999:kw.net
1000:デフォルトの名無しさん
18/02/05 12:00:21.59 ozQGTy2c.net
使う側は意識することないだろ
1001:デフォルトの名無しさん
18/02/06 06:03:09.31 xat7U2Z1.net
meteor.jsとか見てるとjsのメリットすごいけどね
1002:デフォルトの名無しさん
18/02/06 06:07:24.84 BAsI0MB0.net
ssrでしょ
うん……
1003:デフォルトの名無しさん
18/02/07 09:30:35.59 5vmiY3qq.net
>>967
一人しか利用しないなら使わなくていいんじゃないの。
1004:デフォルトの名無しさん
18/02/07 18:55:54.33 GPioIT5w.net
素朴な疑問だけど
ここのみんなは node.js でどんなサービス作ってるの?
1005:デフォルトの名無しさん
18/02/07 19:02:22.99 ob9DrvK1.net
特定業種にiPadごと配るアプライアンス的なサービスのBff
なので事例には出しにくいけどバッチリ使ってる
1006:デフォルトの名無しさん
18/02/07 19:11:11.32 GPioIT5w.net
>>973
そのiPadに入ったアプリが通信する先のサービスってこと?
あとBffって何ですか?
無知ですまん
1007:デフォルトの名無しさん
18/02/07 19:19:56.30 IITgqAFh.net
Backends for Frontends
URLリンク(samnewman.io)
1008:デフォルトの名無しさん
18/02/07 20:36:41.69 GPioIT5w.net
ありがとう、翻訳して読んだりしました
難しい
gateway とか dispacher的なもの?
nodeとnginxの関係を見た時nginxがbffの位置づけ?
見当違いならほっといてください
1009:デフォルトの名無しさん
18/02/11 15:29:51.01 6yH3qsLl.net
socketを使う必要がってnode+expressがやりやすそうと考えて
独学でnode.js始めて(独学)1年くらいです
sessionにredis使ってまして
通常のhttpとsocketでの共有が面倒なのですが
皆さん、どんな方法使ってます?
1010:デフォルトの名無しさん
18/02/11 15:43:11.62 xSFjw/ao.net
socketってwebsocketのこと?
node.jsではnetモジュールが提供するtcp用のapiが本来のsocketだから変な略し方すると話が通じないよ
websocketならhttpで始まるからセッションは普通に共有できるはず
websocketを使うのにsocket.ioを使ってるならそれも書いた方がいい
最近はsocket.io使ってる人が少なそうだからレスが付くかはわからんけど
1011:デフォルトの名無しさん
18/02/11 16:01:04.40 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使われなくってるのは何故?
1012:デフォルトの名無しさん
18/02/11 16:29:55.16 d+jiviOC.net
こういうユーティリティで便利なのがないかさがしてみるのも一手
URLリンク(www.npmjs.com)
昔はwebsocket使えないブラウザが多かったから他のプロトコルにフォールバックしてくれるsocket.ioが重宝されてたらしい
今はwebsocket使える前提でいいからフォールバックは不要なので豊富な機能が不要ならwsとかシンプルなモジュールで十分って感じ
再接続とか考えるとsocket.io便利そうだけどね
1013:デフォルトの名無しさん
18/02/11 16:40:57.21 6yH3qsLl.net
>>980
express-socket.io-session 良さそ気
wsっかぁ、
自分を慰める理由が欲しいんだけど
room機能実装するならwsじゃなくてsocket.ioが楽?
1014:デフォルトの名無しさん
18/02/11 16:46:20.51 XUA6USjD.net
1015:roomとか必要ならsocket.ioでいいんじゃない よく聞くのはそれと再接続目当てな希ガス
1016:デフォルトの名無しさん
18/02/11 16:47:48.35 A30L58fq.net
お題が単に「room機能をとにかく楽に実装したい」ならgun.jsとかのほうが楽やで
1017:デフォルトの名無しさん
18/02/11 16:49:45.40 6yH3qsLl.net
thankYou!!!
生きてく元気ちょっと出た
1018:デフォルトの名無しさん
18/02/11 18:35:48.00 aqz0aJT4.net
未だにpython2に依存してるのが残念すぎる
1019:デフォルトの名無しさん
18/02/11 18:40:40.49 qCYdb3sP.net
残念おっぱいそん2
1020:デフォルトの名無しさん
18/02/11 18:57:55.27 A30L58fq.net
>>985
なーにそれ?くわしく
1021:デフォルトの名無しさん
18/02/11 19:18:40.58 WzEjvwQn.net
リアルタイムwebをいじりたいならmeteor.jsに乗っかるのも一つの手
1022:デフォルトの名無しさん
18/02/11 19:27:38.72 soB6fX+V.net
ビルドで使ってるgypがpython3に対応してないって話じゃね
開発元のgoogleでは対応済みなん?
まだならnode側じゃどうしょうもない
1023:デフォルトの名無しさん
18/02/11 19:53:03.30 A30L58fq.net
issue検索してみたけどgypへの依存なくせやって話もしつこく何回も立ってたんだね
1024:デフォルトの名無しさん
18/02/11 19:58:05.07 8+fCt4+r.net
v8のビルドがgypならそれも無理がありそうだがなんか代替案出てるんけ?
1025:デフォルトの名無しさん
18/02/13 19:06:40.59 X+YiM6Et.net
今日ジュンク堂行ったらnode.jsの本2つしかなかった。
しかも入門書、やっぱりnode.jsオワコン?
他にwebsocketできるものなんてあるの?
1026:デフォルトの名無しさん
18/02/13 19:09:35.96 flHxC5Ds.net
>>992
javaでもc#でも
1027:デフォルトの名無しさん
18/02/13 19:14:04.34 kAM/OKSF.net
node.jsは全然オワコンじゃない
es2015,6,7,8と毎年進化していく予定なんだから
むしろこれから盛り上がるってなもんで
1028:デフォルトの名無しさん
18/02/13 19:20:12.25 X+YiM6Et.net
同じことやるにしてもjava勉強したほうがいいのかな
C#はやらないけど
1029:デフォルトの名無しさん
18/02/13 19:21:38.52 esah1bhU.net
node.jsもjavascriptも毎年大きなバージョンアップが確定だから書籍は出しにくいよなぁ
1030:デフォルトの名無しさん
18/02/13 19:22:12.35 s321QVV0.net
>>995
javaやるくらいならc#にしとけ
1031:デフォルトの名無しさん
18/02/13 19:24:14.62 X+YiM6Et.net
windowsは使わないのでC#はいらない
dockerをそろそろ勉強しないといけないので、dockerといっしょにjavaでwebsocketもやるかな
1032:デフォルトの名無しさん
18/02/13 19:26:02.48 WkRgLvef.net
javaは死につつあるからgoの方がマシかな
1033:デフォルトの名無しさん
18/02/13 19:26:50.37 WkRgLvef.net
なお次スレ
1034:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 673日 2時間 58分 16秒
1035:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています