【node.js】サーバサイドjavascript 5【Nashorn】 (796レス)
【node.js】サーバサイドjavascript 5【Nashorn】 http://mevius.5ch.net/test/read.cgi/tech/1518528093/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [] 2018/02/13(火) 22:21:33.91 ID:moEhrPrC pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。 サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 http://nodejs.org/ ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系 https://github.com/ayojs/ayo Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf ayo.js の経緯 https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310 javascriptはrubyと比較してもかなり速い http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv 基礎から学ぶNode.js http://gihyo.jp/dev/serial/01/nodejs node.jsの概要とアプリケーション開発の準備 http://gihyo.jp/dev/serial/01/realtimeweb/0002 前スレ 【node.js】サーバサイドjavascript 4【io.js】 http://mevius.5ch.net/test/read.cgi/tech/1460359714/ 【node.js】サーバサイドjavascript 3【io.js】 http://echo.2ch.net/test/read.cgi/tech/1419673207/ 【node.js】サーバサイドjavascript 2【Rhino】 http://peace.2ch.net/test/read.cgi/tech/1358937029/ 【node.js】サーバサイドjavascript【Rhino】 http://toro.2ch.net/test/read.cgi/tech/1310087535/ http://mevius.5ch.net/test/read.cgi/tech/1518528093/1
716: デフォルトの名無しさん [sage] 2021/12/26(日) 18:30:25.89 ID:oeLmweY9 定期的に呟いてる人だから気にせんでいいよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/716
717: デフォルトの名無しさん [sage] 2021/12/26(日) 18:50:24.76 ID:PmcDL+gd >>714 オブジェクト指向的センスが無いと言う事だね 今の時代、両方出来ないとプロだと厳しいと思うがね http://mevius.5ch.net/test/read.cgi/tech/1518528093/717
718: デフォルトの名無しさん [sage] 2021/12/26(日) 18:55:49.66 ID:S+a9i6vw プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが 混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか) class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/718
719: デフォルトの名無しさん [sage] 2021/12/26(日) 19:35:46.48 ID:kUhTwtcg GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世 時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな TC39的にはES4で入れ損なったから悲願だったんだろうけど http://mevius.5ch.net/test/read.cgi/tech/1518528093/719
720: デフォルトの名無しさん [sage] 2021/12/26(日) 20:25:20.58 ID:M+F+5/6j プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは http://mevius.5ch.net/test/read.cgi/tech/1518528093/720
721: デフォルトの名無しさん [sage] 2021/12/26(日) 20:48:01.50 ID:S+a9i6vw >>720 仮にそうだとしても、IDEの都合を優先してプログラミング言語を簡素化するのは完全に本末転倒だろ 初心者専用のオモチャが欲しければScratchで満足しとけ http://mevius.5ch.net/test/read.cgi/tech/1518528093/721
722: デフォルトの名無しさん [sage] 2021/12/26(日) 20:54:53.04 ID:M+F+5/6j >>721 既存との互換を保ったまま機能追加されてるわけだから言語自体は簡素化されたのてはなく複雑化されたのでは それはさておき従来の機能が使えなくなるわけでもなく何が不満なのかわからない http://mevius.5ch.net/test/read.cgi/tech/1518528093/722
723: デフォルトの名無しさん [sage] 2021/12/26(日) 21:02:39.16 ID:4h95DB/2 >>718 してない。 だから細かい設定が解りづらい。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/723
724: デフォルトの名無しさん [sage] 2021/12/26(日) 21:18:20.64 ID:S+a9i6vw >>722 糖衣構文を導入した分言語は複雑化してるし、IDEも余計に対応する必要がある。 IDEを優先するなら何もしないのが最善。 (もちろん仕様を削れるのが最善だが、JSの場合はこれはかなり無理なので) >>723 仕様で確定してないのなら、混ぜて使う事は禁止だし、 クラスで閉じて使う分にはプロトタイプベースは見えないから問題ないだろ。 何を問題視してる? http://mevius.5ch.net/test/read.cgi/tech/1518528093/724
725: デフォルトの名無しさん [sage] 2021/12/26(日) 21:26:19.15 ID:PIvfFszt >>723 ECMAScriptの仕様書も読んだことない低脳が堂々と嘘を書くなよ ES2020の14.6.12 http://mevius.5ch.net/test/read.cgi/tech/1518528093/725
726: デフォルトの名無しさん [sage] 2021/12/26(日) 21:33:51.63 ID:PIvfFszt >>725 自己レス「ES2020の14.6.13」の書き間違い http://mevius.5ch.net/test/read.cgi/tech/1518528093/726
727: デフォルトの名無しさん [sage] 2021/12/26(日) 22:43:28.35 ID:M+F+5/6j >>724 そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ 例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う 構文解析なんかは大して難しい話ではない http://mevius.5ch.net/test/read.cgi/tech/1518528093/727
728: デフォルトの名無しさん [sage] 2021/12/26(日) 22:59:58.91 ID:vgGpFQt6 実際にTypeScriptはinterface導入してるし何も問題ないだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/728
729: デフォルトの名無しさん [sage] 2021/12/26(日) 23:27:54.98 ID:S+a9i6vw >>727 最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、 IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。 プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。 IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。 IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、 一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。 GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。 静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。 実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。 最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。 ちなみにTSが型を導入したのも、IDEを作るためではなく、 プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。 そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。 型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/729
730: デフォルトの名無しさん [sage] 2021/12/27(月) 00:11:53.01 ID:Btn3kp2t >>729 言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ 実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>720 ではIDEや静的解析といっている http://mevius.5ch.net/test/read.cgi/tech/1518528093/730
731: デフォルトの名無しさん [sage] 2021/12/27(月) 05:27:18.08 ID:5b2Vj92V >>730 > 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。 それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。 IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。 よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。 上下関係で言えばプログラミング言語の『仕様』が完全に上であって、 IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 > 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? 俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。 でも確かにこれが一番生産性が高いんだよ。 当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。 だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。 最大のメリットは構文解釈を自前で実装する必要がない事。 構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、 IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。 これで言語側の仕様変更に自動的に追従するようになる。 IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。 > 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。 しかも自前の実装もなしだから、最も生産性が高い。 自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、 それはIDEではなくリンターと呼ぶべきだが、 それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、 IDEはそのエラーを表示する事に徹するのが最も生産性が高い。 IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/731
732: デフォルトの名無しさん [sage] 2021/12/27(月) 08:32:17.24 ID:Btn3kp2t >>731 > IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 なぜそうあるべきなのですか? 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して 宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと http://mevius.5ch.net/test/read.cgi/tech/1518528093/732
733: デフォルトの名無しさん [] 2021/12/27(月) 09:13:46.85 ID:mFj7RPUl 今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。 クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/733
734: デフォルトの名無しさん [sage] 2021/12/27(月) 09:41:04.48 ID:VqPkBZyA >>733 >>719はクラスベースを時代遅れと書いたんだが ぶっちゃけオブジェクト指向が過去のものになってきてるのみんな分かってるだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/734
735: デフォルトの名無しさん [sage] 2021/12/27(月) 10:22:30.58 ID:5b2Vj92V >>732 > 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが 「多い」というのならまず具体的に名前を複数挙げてみろ。 出来なければそれは君の妄想だね。 > また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? 違うぞ。それは今の話に関係ない。(どっちでもいい) > 意図してたのはintellisenseのような意味解析が必要な機能です だから何?これも君の考えが間違ってる。 flycheckのやり方でも原理的にインテリセンスは出来るんだよ。 インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、 仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。 実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、 候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。 今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。 全言語向けに自前でやってる事なんてないと思うよ。 プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。 自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。 それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。 eval出来る環境があり、それが一番近道なら、やればいいだけ。 君は多分「生産性」を勘違いしてる。 むしろ再開発しすぎてるし。 現状どうなってるのか知らないのだけど、メジャーなIDE、 例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか? 誰か使ってたら教えてくれ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/735
736: デフォルトの名無しさん [sage] 2021/12/27(月) 10:51:32.02 ID:gEDfakwV ×クラスベース ○クラス構文 クラス構文で書いてもプロトタイプベースなのは変わらん http://mevius.5ch.net/test/read.cgi/tech/1518528093/736
737: デフォルトの名無しさん [] 2021/12/27(月) 11:21:14.15 ID:mFj7RPUl >>734 確かにクラスベースがってよりオブジェクト指向が時代遅れって感じだね。 JS自体は関数プログラミングもいける。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/737
738: デフォルトの名無しさん [sage] 2021/12/27(月) 11:22:05.04 ID:lxgQYw9b 言語仕様も分かってないIDEも使ってない部外者の素人同士が長文レスバって地獄だな http://mevius.5ch.net/test/read.cgi/tech/1518528093/738
739: デフォルトの名無しさん [sage] 2021/12/27(月) 11:54:45.10 ID:Btn3kp2t >>735 > 「多い」というのならまず具体的に名前を複数挙げてみろ。 例えばgolangやrustはコアチームがツール開発に積極的ですね ツールのチームがコア言語に対してフィードバックしていたりする > eval出来る環境があり、それが一番近道なら、やればいいだけ。 "構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ >>737 オブジェクト指向というか継承が忌避されてる気はする http://mevius.5ch.net/test/read.cgi/tech/1518528093/739
740: デフォルトの名無しさん [sage] 2021/12/27(月) 12:21:31.31 ID:VwNgBMvN オブジェクト指向ならではの筆頭が継承だから継承が忌避されてる=オブジェクト指向が忌避されてるってことよ OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない http://mevius.5ch.net/test/read.cgi/tech/1518528093/740
741: デフォルトの名無しさん [sage] 2021/12/27(月) 13:11:44.45 ID:+2NyFcdP クラスの定義だけど、 classとfunctionを混在した書き方でも問題ないの? http://mevius.5ch.net/test/read.cgi/tech/1518528093/741
742: デフォルトの名無しさん [sage] 2021/12/27(月) 13:40:18.86 ID:Uq9DqbRx >>741 混在した書き方っての次第だが class A {} A.prototype.x = () => {} a = new A() a.x() こんなのは当たり前に動くぞ つかまずは自分で試せよw JSなんかブラウザあれば動かせるんだからさー http://mevius.5ch.net/test/read.cgi/tech/1518528093/742
743: デフォルトの名無しさん [sage] 2021/12/27(月) 15:00:45.57 ID:5b2Vj92V >>739 > 例えばgolangやrustはコアチームがツール開発に積極的ですね それで、それらの言語のどの仕様がIDEの都合で採用されたものなの? > 藁人形論法はやめてくれ なら最初から分かるように主張しろ。 何が言いたいか分からないからエスパーして複数挙げてみただけ。 馬鹿は無視してきっちり自分の意見を書ききれ。 3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。 MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。 5ch程度の文にすら手こずるようではどだい無理だよ。 解釈が動的か静的かは意味無い。 出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。 その手段の一つが静的解析でソース作成時にエラーを表示する事であって。 でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。 構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。 実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。 構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。 それで今時のIDEで実際どうなのか聞いたんだよ。 もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。 継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、 それの残骸がデザインパターンなのだが、 結果、継承すべきでない局面での継承で酷い事になってるからだよ。 でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。 あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。 Rustはやってないから知らん。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/743
744: デフォルトの名無しさん [sage] 2021/12/27(月) 15:36:34.22 ID:KDGmbGA4 何言ってるか分からない相手にエスパーして反論って藁人形そのもので完全に異常者 http://mevius.5ch.net/test/read.cgi/tech/1518528093/744
745: デフォルトの名無しさん [sage] 2021/12/27(月) 15:55:56.69 ID:h2/Ma5NI いい加減スレチだから他所でやってもらえんかね このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/745
746: デフォルトの名無しさん [sage] 2021/12/27(月) 16:04:01.18 ID:XkNPDe9x 最近アツいサーバサイドJSはnodeよりもdenoよりもCloudflare Workers http://mevius.5ch.net/test/read.cgi/tech/1518528093/746
747: デフォルトの名無しさん [sage] 2021/12/27(月) 16:21:39.89 ID:U0LFk7o9 denoって全然使われてないの? http://mevius.5ch.net/test/read.cgi/tech/1518528093/747
748: デフォルトの名無しさん [sage] 2021/12/27(月) 16:28:54.26 ID:XkNPDe9x denoは苦戦してるみたいだねー それでexpressなどnode用のライブラリが動くように互換性を高める方針になった でもそれならnode使い続ければいいやってなりそう http://mevius.5ch.net/test/read.cgi/tech/1518528093/748
749: デフォルトの名無しさん [] 2022/01/05(水) 00:01:04.66 ID:XksPZRYQ puppeteerを使って投票サイトの投票を自動化したいのだけど、 実行してもエラーを起こさず無反応なんだよね Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、 UserAgent以外で何か対策ないっすかね http://mevius.5ch.net/test/read.cgi/tech/1518528093/749
750: デフォルトの名無しさん [sage] 2022/01/05(水) 00:22:23.97 ID:n516+jFB いくらでも試すことはあるけど悪事の片棒を担ぎそうで怖いな 一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける http://mevius.5ch.net/test/read.cgi/tech/1518528093/750
751: デフォルトの名無しさん [] 2022/01/05(水) 00:33:19.61 ID:XksPZRYQ んじゃ、逆にWEBサイトを作る側はどんな対策をしているのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/751
752: デフォルトの名無しさん [sage] 2022/01/05(水) 10:54:49.76 ID:4mwV9n2W reCAPTCHA使ってんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1518528093/752
753: デフォルトの名無しさん [] 2022/01/05(水) 15:02:25.17 ID:XksPZRYQ >>752 使ってるところは諦めてるんだけど、使ってないところはどうやってるのかな〜と思って UserAgentをガラケーにしてみたり、プレステにしても無反応なんだよね http://mevius.5ch.net/test/read.cgi/tech/1518528093/753
754: デフォルトの名無しさん [sage] 2022/01/05(水) 15:47:16.38 ID:w42D9Ab/ 手動で操作した時のリクエストヘッダーの中身を解析して 間違いなく妥当なリクエストが投げられてるのが大前提 あとは“how to detect headless browser”でググるといいよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/754
755: デフォルトの名無しさん [sage] 2022/01/06(木) 22:16:32.70 ID:vwKSLmqQ npmがぶっ壊れたらどうすればいいですかapt でuninstall installしても治りません http://mevius.5ch.net/test/read.cgi/tech/1518528093/755
756: デフォルトの名無しさん [sage] 2022/01/10(月) 00:21:58.20 ID:MINWORCd スレ立てるまでもない質問はここで 158匹目 https://mevius.5ch.net/test/read.cgi/tech/1635193843/538 ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、 Ruby on Rails 初心者用コースの内容を書いておいた 基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。 学習環境も揃わないので、無理 Railsでは、Railsチュートリアル・Railsガイド・ 黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、 Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている これほど、良い教科書が揃っているフレームワークはない! Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、 PHP自体がオワコンになってしまったw 日本のウェブ開発の将来は、ほぼKENTAが決めている。 Scala を滅ぼしたのも、KENTA http://mevius.5ch.net/test/read.cgi/tech/1518528093/756
757: デフォルトの名無しさん [sage] 2022/02/19(土) 23:48:14.35 ID:ukL0Abnm for await (const chunk of stream(foo)) { response.write(chunk); } response.end(); ↑みたいな感じでレスポンスに直接書いてってるやつって、一旦に変数に入れることって可能? const chunks; for await (const chunk of stream(foo)) { // chunksにchunkを書き込んでいく } response.write(chunks); res.end(); ↑こんな感じに書きたくてさ レスポンスのサイズを減らしたくてzlibのコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで ただ書き方がよく分からんくてね http://mevius.5ch.net/test/read.cgi/tech/1518528093/757
758: デフォルトの名無しさん [sage] 2022/02/20(日) 02:19:47.65 ID:flSfy5Gd そんな感じのコードでやれると思うけど ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ http://mevius.5ch.net/test/read.cgi/tech/1518528093/758
759: デフォルトの名無しさん [sage] 2022/02/20(日) 02:30:31.20 ID:r6gz02kC > レスポンスにパイプ stream.pipeline()関数を使えってこった http://mevius.5ch.net/test/read.cgi/tech/1518528093/759
760: デフォルトの名無しさん [sage] 2022/02/20(日) 03:59:37.87 ID:Y4d5gioW >>757 chunksに貯め込んでからzlib.gunzip()やzlib.inflate()を呼んでいたらメモリの無駄遣い そこでzlib.createGunzip()やzlib.createInflate()で変換用streamを作って使う それも昔はinput_stream.pipe(transform_stream).pipe(ourput_stream)と多段に繋げていたが しかし速度差がある時のバッファリング問題もあるため一気に協調させることになり 今はpipeline(input_stream, transform_stream, ourput_stream, cb) と好きなだけ並べて書く http://mevius.5ch.net/test/read.cgi/tech/1518528093/760
761: デフォルトの名無しさん [sage] 2022/02/20(日) 13:07:52.69 ID:G2bzmeXG 758 759 760 ありがとう pipelineってやつ使うとよいみたいやね 調べてみますわ http://mevius.5ch.net/test/read.cgi/tech/1518528093/761
762: デフォルトの名無しさん [sage] 2022/05/08(日) 08:50:47.73 ID:Hc0pjWMa なんでchildprocessのイベントにはSIGINTが実装されてないんだろ それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう 親同様にリスナー付けてexitを止められるようにするべきだと思うんだが http://mevius.5ch.net/test/read.cgi/tech/1518528093/762
763: デフォルトの名無しさん [sage] 2022/10/10(月) 18:43:55.67 ID:MKhHDYOQ 相対パスでローカルモジュールをnpm iするとdependencieではfile:から始まる相対パスになるけど 実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな なんでこんな実装になってんだ http://mevius.5ch.net/test/read.cgi/tech/1518528093/763
764: デフォルトの名無しさん [sage] 2022/10/10(月) 18:53:57.82 ID:MKhHDYOQ いや更新時の参照用ならこれでいいのか nodeのrequire/importとnpmのinstall/updateを混同してたわ http://mevius.5ch.net/test/read.cgi/tech/1518528093/764
765: デフォルトの名無しさん [] 2022/10/12(水) 13:25:20.11 ID:pFlsWqq0 バックエンドnode.jsだけで食っていけますか http://mevius.5ch.net/test/read.cgi/tech/1518528093/765
766: デフォルトの名無しさん [sage] 2022/10/12(水) 13:50:41.51 ID:PMp24lyt nodejs単体というよりOODBの管理ととトランザクションいじれるようになるのが一番じゃね? http://mevius.5ch.net/test/read.cgi/tech/1518528093/766
767: デフォルトの名無しさん [sage] 2022/10/20(木) 13:26:50.96 ID:qyQuWblL >>765 可能と言えば可能だけど無理と言えば無理 結局何作って金稼ぐかに帰ってくる PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど 人口多いPHPでやれば良くないっすか?で詰む 改めてNode.jsを使う意味に戻ってくる http://mevius.5ch.net/test/read.cgi/tech/1518528093/767
768: デフォルトの名無しさん [sage] 2022/10/21(金) 14:23:53.93 ID:QgmICw4I この業界ってnodeよりphpのほうが多いの? http://mevius.5ch.net/test/read.cgi/tech/1518528093/768
769: デフォルトの名無しさん [sage] 2022/10/21(金) 17:27:25.06 ID:yOIwuGST nodeはhttpサーバ目指してんのか クロスプラットフォームのコマンドツール群目指してんのか 立ち位置が分かりにくくなってきてるなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/769
770: デフォルトの名無しさん [sage] 2022/10/21(金) 17:37:31.50 ID:gaBKDdgt >>769 その辺はわりと初期から迷走してるでしょ フロントエンド用ライブラリ郡も全てnpmで管理してるし http://mevius.5ch.net/test/read.cgi/tech/1518528093/770
771: デフォルトの名無しさん [sage] 2022/10/21(金) 20:11:01.49 ID:ho0gY/No 立ち位置としては単なるJSのランタイムだから別に迷走はしてない あれもこれもできている現状は目標が達成できている状態だな http://mevius.5ch.net/test/read.cgi/tech/1518528093/771
772: デフォルトの名無しさん [sage] 2022/10/21(金) 20:53:45.43 ID:r+LUs0oF 自分が作りたいものを実現できるならそれでいいし http://mevius.5ch.net/test/read.cgi/tech/1518528093/772
773: デフォルトの名無しさん [sage] 2022/10/22(土) 10:24:29.33 ID:nOyTQUKy またnpmとbowerに分かれるのか http://mevius.5ch.net/test/read.cgi/tech/1518528093/773
774: デフォルトの名無しさん [sage] 2022/10/22(土) 12:20:56.88 ID:J0WzfMNr >>770 そもそもフロントエンドの実行環境はnodeじゃないしな。 そこで動くライブラリもnpmにしたのはライブラリ開発者側の意思だろ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/774
775: デフォルトの名無しさん [sage] 2022/12/01(木) 15:22:36.40 ID:gR9AoUvr npm@9にしたらupdate時にinstall済みのローカルモジュールがsymlinkから実ファイルコピーに書き換えられた --install-linksの挙動変更だけじゃなかったのか http://mevius.5ch.net/test/read.cgi/tech/1518528093/775
776: デフォルトの名無しさん [sage] 2023/01/09(月) 13:40:55.90 ID:pkwz3DCl substackがGithubリポジトリごと全部消してるけど何かあったのか npmは基本消せないから今のところは支障ないけど http://mevius.5ch.net/test/read.cgi/tech/1518528093/776
777: デフォルトの名無しさん [sage] 2023/01/09(月) 15:20:15.81 ID:QAUxwh3d スマホ持ってないのに2段階認証押し付けられて嫌気がしたからとか見かけたな http://mevius.5ch.net/test/read.cgi/tech/1518528093/777
778: デフォルトの名無しさん [sage] 2023/01/09(月) 19:48:04.21 ID:pkwz3DCl 思ったよりしょうもなかったがバイク事故とかじゃなくてよかったわ http://mevius.5ch.net/test/read.cgi/tech/1518528093/778
779: デフォルトの名無しさん [sage] 2023/01/26(木) 12:54:12.49 ID:O11XvwYM TSのバックエンドでファイル処理つったらstreamでいいのかな BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中 http://mevius.5ch.net/test/read.cgi/tech/1518528093/779
780: デフォルトの名無しさん [sage] 2023/01/26(木) 13:13:59.54 ID:f8HqO3bH 最初はfs.writeFileとfs.readFileを使え streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役 BufferやBlobはデータをメモリ上で扱う際の形式の一つ TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ http://mevius.5ch.net/test/read.cgi/tech/1518528093/780
781: デフォルトの名無しさん [sage] 2023/01/26(木) 13:26:12.10 ID:O11XvwYM >>780 どうも BufferとBlobは役割同じに思えるけどなんで分けてるん? http://mevius.5ch.net/test/read.cgi/tech/1518528093/781
782: デフォルトの名無しさん [sage] 2023/01/26(木) 14:46:29.69 ID:gEyoKRRe BufferはNode固有のAPI Blobは後から出てきたWeb (ブラウザ) のAPI そしてTypedArrayBufferはECMAScriptのAPI ストリームとかURLとか他にも重複してるのが多数ある http://mevius.5ch.net/test/read.cgi/tech/1518528093/782
783: デフォルトの名無しさん [sage] 2023/01/26(木) 15:24:22.66 ID:G0G6dXL8 >>782 どうも JSごちゃごちゃしてて難しいっすね でも大体わかったわ http://mevius.5ch.net/test/read.cgi/tech/1518528093/783
784: デフォルトの名無しさん [sage] 2023/02/10(金) 08:27:38.73 ID:WC55EdF2 今ってORMはPrisma一択? http://mevius.5ch.net/test/read.cgi/tech/1518528093/784
785: デフォルトの名無しさん [sage] 2023/02/10(金) 10:01:03.33 ID:9VW44qMw 勢いでは完全に負けてるが一応TypeORMもあるんじゃね http://mevius.5ch.net/test/read.cgi/tech/1518528093/785
786: デフォルトの名無しさん [sage] 2023/03/01(水) 14:51:23.19 ID:dWfTEqUX util.aborted()が生えたけど用途がわからん http://mevius.5ch.net/test/read.cgi/tech/1518528093/786
787: デフォルトの名無しさん [sage] 2023/07/27(木) 23:08:16.03 ID:nxFTW9tq nodejsでDBマネージャーとかログマネージャーとか、可能な限り同一インスタンスを維持したいインスタンスって一般的にどうしてますでしょうか。 class DbManager{ private constructor(){} static instance = new DbManager(); } staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。 他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。 毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか http://mevius.5ch.net/test/read.cgi/tech/1518528093/787
788: デフォルトの名無しさん [sage] 2023/07/28(金) 01:56:41.01 ID:HsfaqfZ/ 常に引数で外部注入して生成するけど 引数にundefinedが来たら自動的にデフォルト注入を使って生成かな http://mevius.5ch.net/test/read.cgi/tech/1518528093/788
789: デフォルトの名無しさん [sage] 2023/07/28(金) 03:31:39.50 ID:H/mKlItN >>788 ありがとうございます。 そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう… とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/789
790: デフォルトの名無しさん [sage] 2023/07/28(金) 09:58:33.60 ID:Za7BrkqV ファイル(モジュール)のトップレベルで export const instance = new Xxx(); で十分 Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/790
791: デフォルトの名無しさん [sage] 2023/07/28(金) 10:36:22.85 ID:HsfaqfZ/ singletonならそれでいいね http://mevius.5ch.net/test/read.cgi/tech/1518528093/791
792: デフォルトの名無しさん [sage] 2023/07/28(金) 12:39:37.08 ID:Zbfe02RK >>787 > 同一インスタンスを維持したい シングルトンの話だな http://mevius.5ch.net/test/read.cgi/tech/1518528093/792
793: デフォルトの名無しさん [sage] 2023/08/18(金) 15:34:38.37 ID:ccv6NoZV やめてっ!そこはビンカンなの! http://mevius.5ch.net/test/read.cgi/tech/1518528093/793
794: デフォルトの名無しさん [sage] 2023/10/13(金) 21:17:44.43 ID:uv+WVTr3 おぉ(゚ロ゚屮)屮 http://mevius.5ch.net/test/read.cgi/tech/1518528093/794
795: デフォルトの名無しさん [] 2024/06/07(金) 19:13:05.87 ID:pMHNGLdE Prismaが快適すぎて最近はこれ使いたいがためにnode使ってるまであるわ たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる http://mevius.5ch.net/test/read.cgi/tech/1518528093/795
796: デフォルトの名無しさん [sage] 2024/07/22(月) 05:05:01.65 ID:lDVL1NiC わざわざランタイム側でsqlite内蔵する意味がわからん 暇なのか http://mevius.5ch.net/test/read.cgi/tech/1518528093/796
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s