21/11/27 11:35:18.29 LVgG7qhW.net
>>699
ならAirbnbというのは俺の勘違いだな。
俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった)
その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね?
なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり)
701:デフォルトの名無しさん
21/11/27 11:43:32.92 WAiK9igD.net
>>700
どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。
702:デフォルトの名無しさん
21/11/27 12:14:33.21 LVgG7qhW.net
一応自分でも再確認しているところだが、
> Always use semicolons. (google)
> Use them. Never rely on ASI. (jQuery)
> あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node)
> URLリンク(qiita.com)
npmのもかなりトンデモだった記憶があり、改めて確認すると、打つな派だ。
> ;(x || y).performAction()
> ;[a, b, c].forEach(performAction)
> for (var i = 0; i < 10; i ++) {
> switch (state) {
> case 'begin': start(); continue
> case 'end': finish(); break
> default: throw new Error('unknown state')
> }
> end()
> }
> URLリンク(www.w3resource.com)
となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか?
多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。
703:デフォルトの名無しさん
21/11/27 12:30:57.21 i1Pzoh/C.net
NodeはRyan Dahlが始めてセミコロンあり
npmはIsaac Z. Schlueterが始めてセミコロンなし
IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた
704:デフォルトの名無しさん
21/11/27 12:54:15.05 XFyMXPdv.net
セミコロンレスの強硬派として有名なのはStandard
カスタマイズも許さない
URLリンク(github.com)
705:デフォルトの名無しさん
21/11/27 13:40:28.79 LVgG7qhW.net
>>704
初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。
とはいえ議論する時間が一番無駄というのは同意だが。
多分セミコロン無し言語出身者用のルールが一つは必要で、
それに向けてのstandard命名なのだろうけど、なんだかね。
706:デフォルトの名無しさん
21/11/27 13:49:34.28 MtgsfYs/.net
文字列を「+」で繋げるのもうやめようよ。見にくいよ。
「´」(バッククォート)で括ればいいじゃん
707:デフォルトの名無しさん
21/11/27 13:51:01.70 NSUO7OXD.net
>>706
このルール入れろ
URLリンク(eslint.org)
708:デフォルトの名無しさん
21/11/28 09:28:43.85 yQx61O6E.net
javascriptならセミコロン無い方がいいかなぁ
709:デフォルトの名無しさん
21/12/14 18:36:52.92 R85W1UAs.net
async/awaitってawaitしかしないから無駄じゃね?
710:デフォルトの名無しさん
21/12/26 08:00:15.12 iIGCgNg3.net
Promise, async/await で無駄なのは、デタラメ解説の数々、ほぼ全滅だろ、酷い惨状だねー。
711:デフォルトの名無しさん
21/12/26 09:04:50.48 S+a9i6vw.net
それを言ったらWeb系言語は全部デタラメ解説で駄目だろ
初心者が情報公開の練習として解説を書くからそうなる
712:デフォルトの名無しさん
21/12/26 10:12:00.53 6ScHvZpk.net
それはしゃーない、正確さにこだわりすぎて萎縮する方がデメリットが大きい
読む方が気を付けて取捨選択するしかない
713:デフォルトの名無しさん
21/12/26 10:19:35.71 jog3O69G.net
c++とかjavaとか含めて進化してる技術の古い解説はことごとくゴミ化してるし一緒だわな
714:デフォルトの名無しさん
21/12/26 11:04:07.34 4h95DB/2.net
classは非推奨にして欲しい。
中途半端で使いにくい。
715:デフォルトの名無しさん
21/12/26 13:04:22.56 PmcDL+gd.net
>>714
どういう所?
716:デフォルトの名無しさん
21/12/26 13:40:10.35 S+a9i6vw.net
>>712
同意だが、C#はかなりマシ
一般的に上級者は初心者向けの説明なんて書きたくないものだが、
プログラミング自体について語りたい連中も多少はおり、そいつらを上手く取り込んでる
717:デフォルトの名無しさん
21/12/26 17:59:34.28 4h95DB/2.net
>>715
上っ面だけのクラスベース。
内容はプロトタイプのまま。
718:デフォルトの名無しさん
21/12/26 18:08:44.18 PnBrsUGe.net
上っ面といってもそこで整合とれていて内部の問題が表に現れないなら別に問題ないと思うが。
まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。
719:デフォルトの名無しさん
21/12/26 18:30:25.89 oeLmweY9.net
定期的に呟いてる人だから気にせんでいいよ
720:デフォルトの名無しさん
21/12/26 18:50:24.76 PmcDL+gd.net
>>717
オブジェクト指向的センスが無いと言う事だね
今の時代、両方出来ないとプロだと厳しいと思うがね
721:デフォルトの名無しさん
21/12/26 18:55:49.66 S+a9i6vw.net
プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ
クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが
混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか)
class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか?
722:デフォルトの名無しさん
21/12/26 19:35:46.48 kUhTwtcg.net
GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世
時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな
TC39的にはES4で入れ損なったから悲願だったんだろうけど
723:デフォルトの名無しさん
21/12/26 20:25:20.58 M+F+5/6j.net
プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは
724:デフォルトの名無しさん
21/12/26 20:48:01.50 S+a9i6vw.net
>>723
仮にそうだとしても、IDEの都合を優先してプログラミング言語を簡素化するのは完全に本末転倒だろ
初心者専用のオモチャが欲しければScratchで満足しとけ
725:デフォルトの名無しさん
21/12/26 20:54:53.04 M+F+5/6j.net
>>724
既存との互換を保ったまま機能追加されてるわけだから言語自体は簡素化されたのてはなく複雑化されたのでは
それはさておき従来の機能が使えなくなるわけでもなく何が不満なのかわからない
726:デフォルトの名無しさん
21/12/26 21:02:39.16 4h95DB/2.net
>>721
してない。
だから細かい設定が解りづらい。
727:デフォルトの名無しさん
21/12/26 21:18:20.64 S+a9i6vw.net
>>725
糖衣構文を導入した分言語は複雑化してるし、IDEも余計に対応する必要がある。
IDEを優先するなら何もしないのが最善。
(もちろん仕様を削れるのが最善だが、JSの場合はこれはかなり無理なので)
>>726
仕様で確定してないのなら、混ぜて使う事は禁止だし、
クラスで閉じて使う分にはプロトタイプベースは見えないから問題ないだろ。
何を問題視してる?
728:デフォルトの名無しさん
21/12/26 21:26:19.15 PIvfFszt.net
>>726
ECMAScriptの仕様書も読んだことない低脳が堂々と嘘を書くなよ
ES2020の14.6.12
729:デフォルトの名無しさん
21/12/26 21:33:51.63 PIvfFszt.net
>>728
自己レス「ES2020の14.6.13」の書き間違い
730:デフォルトの名無しさん
21/12/26 22:43:28.35 M+F+5/6j.net
>>727
そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ
例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う
構文解析なんかは大して難しい話ではない
731:デフォルトの名無しさん
21/12/26 22:59:58.91 vgGpFQt6.net
実際にTypeScriptはinterface導入してるし何も問題ないだろ
732:デフォルトの名無しさん
21/12/26 23:27:54.98 S+a9i6vw.net
>>730
最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、
IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。
プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。
IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。
IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、
一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。
GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。
静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。
実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。
最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。
ちなみにTSが型を導入したのも、IDEを作るためではなく、
プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。
そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。
型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。
733:デフォルトの名無しさん
21/12/27 00:11:53.01 Btn3kp2t.net
>>732
言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても
静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが
実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>723 ではIDEや静的解析といっている
734:デフォルトの名無しさん
21/12/27 05:27:18.08 5b2Vj92V.net
>>733
> 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ
IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。
それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。
IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。
よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。
上下関係で言えばプログラミング言語の『仕様』が完全に上であって、
IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
> 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ?
俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。
でも確かにこれが一番生産性が高いんだよ。
当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。
だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。
最大のメリットは構文解釈を自前で実装する必要がない事。
構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、
IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。
これで言語側の仕様変更に自動的に追従するようになる。
IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。
> 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの?
Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。
しかも自前の実装もなしだから、最も生産性が高い。
自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、
それはIDEではなくリンターと呼ぶべきだが、
それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、
IDEはそのエラーを表示する事に徹するのが最も生産性が高い。
IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。
735:デフォルトの名無しさん
21/12/27 08:32:17.24 Btn3kp2t.net
>>734
> IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。
なぜそうあるべきなのですか?
近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です
プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して
宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと
736:デフォルトの名無しさん
21/12/27 09:13:46.85 mFj7RPUl.net
今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。
クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。
737:デフォルトの名無しさん
21/12/27 09:41:04.48 VqPkBZyA.net
>>736
>>722はクラスベースを時代遅れと書いたんだが
ぶっちゃけオブジェクト指向が過去のものになってきてるのみんな分かってるだろ
738:デフォルトの名無しさん
21/12/27 10:22:30.58 5b2Vj92V.net
>>735
> 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが
「多い」というのならまず具体的に名前を複数挙げてみろ。
出来なければそれは君の妄想だね。
> また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね?
違うぞ。それは今の話に関係ない。(どっちでもいい)
> 意図してたのはintellisenseのような意味解析が必要な機能です
だから何?これも君の考えが間違ってる。
flycheckのやり方でも原理的にインテリセンスは出来るんだよ。
インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、
仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。
実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、
候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。
今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。
全言語向けに自前でやってる事なんてないと思うよ。
プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。
自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。
それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。
eval出来る環境があり、それが一番近道なら、やればいいだけ。
君は多分「生産性」を勘違いしてる。
むしろ再開発しすぎてるし。
現状どうなってるのか知らないのだけど、メジャーなIDE、
例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか?
誰か使ってたら教えてくれ。
739:デフォルトの名無しさん
21/12/27 10:51:32.02 gEDfakwV.net
×クラスベース
○クラス構文
クラス構文で書いてもプロトタイプベースなのは変わらん
740:デフォルトの名無しさん
21/12/27 11:21:14.15 mFj7RPUl.net
>>737
確かにクラスベースがってよりオブジェクト指向が時代遅れって感じだね。
JS自体は関数プログラミングもいける。
741:デフォルトの名無しさん
21/12/27 11:22:05.04 lxgQYw9b.net
言語仕様も分かってないIDEも使ってない部外者の素人同士が長文レスバって地獄だな
742:デフォルトの名無しさん
21/12/27 11:54:45.10 Btn3kp2t.net
>>738
> 「多い」というのならまず具体的に名前を複数挙げてみろ。
例えばgolangやrustはコアチームがツール開発に積極的ですね
ツールのチームがコア言語に対してフィードバックしていたりする
> eval出来る環境があり、それが一番近道なら、やればいいだけ。
"構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね
それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね
それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ
>>740
オブジェクト指向というか継承が忌避されてる気はする
743:デフォルトの名無しさん
21/12/27 12:21:31.31 VwNgBMvN.net
オブジェクト指向ならではの筆頭が継承だから継承が忌避されてる=オブジェクト指向が忌避されてるってことよ
OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない
744:デフォルトの名無しさん
21/12/27 13:11:44.45 +2NyFcdP.net
クラスの定義だけど、
classとfunctionを混在した書き方でも問題ないの?
745:デフォルトの名無しさん
21/12/27 13:40:18.86 Uq9DqbRx.net
>>744
混在した書き方っての次第だが
class A {}
A.prototype.x = () => {}
a = new A()
a.x()
こんなのは当たり前に動くぞ
つかまずは自分で試せよw
JSなんかブラウザあれば動かせるんだからさー
746:デフォルトの名無しさん
21/12/27 15:00:45.57 5b2Vj92V.net
>>742
> 例えばgolangやrustはコアチームがツール開発に積極的ですね
それで、それらの言語のどの仕様がIDEの都合で採用されたものなの?
> 藁人形論法はやめてくれ
なら最初から分かるように主張しろ。
何が言いたいか分からないからエスパーして複数挙げてみただけ。
馬鹿は無視してきっちり自分の意見を書ききれ。
3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。
MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。
5ch程度の文にすら手こずるようではどだい無理だよ。
解釈が動的か静的かは意味無い。
出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。
その手段の一つが静的解析でソース作成時にエラーを表示する事であって。
でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。
構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。
実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。
構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。
それで今時のIDEで実際どうなのか聞いたんだよ。
もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。
継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、
それの残骸がデザインパターンなのだが、
結果、継承すべきでない局面での継承で酷い事になってるからだよ。
でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。
あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。
Rustはやってないから知らん。
747:デフォルトの名無しさん
21/12/27 15:36:34.22 KDGmbGA4.net
何言ってるか分からない相手にエスパーして反論って藁人形そのもので完全に異常者
748:デフォルトの名無しさん
21/12/27 15:55:56.69 h2/Ma5NI.net
いい加減スレチだから他所でやってもらえんかね
このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ
749:デフォルトの名無しさん
21/12/27 16:04:01.18 XkNPDe9x.net
最近アツいサーバサイドJSはnodeよりもdenoよりもCloudflare Workers
750:デフォルトの名無しさん
21/12/27 16:21:39.89 U0LFk7o9.net
denoって全然使われてないの?
751:デフォルトの名無しさん
21/12/27 16:28:54.26 XkNPDe9x.net
denoは苦戦してるみたいだねー
それでexpressなどnode用のライブラリが動くように互換性を高める方針になった
でもそれならnode使い続ければいいやってなりそう
752:デフォルトの名無しさん
22/01/05 00:01:04.66 XksPZRYQ.net
puppeteerを使って投票サイトの投票を自動化したいのだけど、
実行してもエラーを起こさず無反応なんだよね
Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、
UserAgent以外で何か対策ないっすかね
753:デフォルトの名無しさん
22/01/05 00:22:23.97 n516+jFB.net
いくらでも試すことはあるけど悪事の片棒を担ぎそうで怖いな
一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける
754:デフォルトの名無しさん
22/01/05 00:33:19.61 XksPZRYQ.net
んじゃ、逆にWEBサイトを作る側はどんな対策をしているのでしょうか?
755:デフォルトの名無しさん
22/01/05 10:54:49.76 4mwV9n2W.net
reCAPTCHA使ってんじゃない?
756:デフォルトの名無しさん
22/01/05 15:02:25.17 XksPZRYQ.net
>>755
使ってるところは諦めてるんだけど、使ってないところはどうやってるのかな~と思って
UserAgentをガラケーにしてみたり、プレステにしても無反応なんだよね
757:デフォルトの名無しさん
22/01/05 15:47:16.38 w42D9Ab/.net
手動で操作した時のリクエストヘッダーの中身を解析して
間違いなく妥当なリクエストが投げられてるのが大前提
あとは“how to detect headless browser”でググるといいよ
758:デフォルトの名無しさん
22/01/06 22:16:32.70 vwKSLmqQ.net
npmがぶっ壊れたらどうすればいいですかapt でuninstall installしても治りません
759:デフォルトの名無しさん
22/01/10 00:21:58.20 MINWORCd.net
スレ立てるまでもない質問はここで 158匹目
スレリンク(tech板: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
760:デフォルトの名無しさん
22/02/19 23:48:14.35 ukL0Abnm.net
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のコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで
ただ書き方がよく分からんくてね
761:デフォルトの名無しさん
22/02/20 02:19:47.65 flSfy5Gd.net
そんな感じのコードでやれると思うけど
ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ
762:デフォルトの名無しさん
22/02/20 02:30:31.20 r6gz02kC.net
> レスポンスにパイプ
stream.pipeline()関数を使えってこった
763:デフォルトの名無しさん
22/02/20 03:59:37.87 Y4d5gioW.net
>>760
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) と好きなだけ並べて書く
764:デフォルトの名無しさん
22/02/20 13:07:52.69 G2bzmeXG.net
758 759 760
ありがとう
pipelineってやつ使うとよいみたいやね
調べてみますわ
765:デフォルトの名無しさん
22/05/08 08:50:47 Hc0pjWMa.net
なんでchildprocessのイベントにはSIGINTが実装されてないんだろ
それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう
親同様にリスナー付けてexitを止められるようにするべきだと思うんだが
766:デフォルトの名無しさん
22/10/10 18:43:55.67 MKhHDYOQ.net
相対パスでローカルモジュールをnpm iするとdependencieではfile:から始まる相対パスになるけど
実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな
なんでこんな実装になってんだ
767:デフォルトの名無しさん
22/10/10 18:53:57.82 MKhHDYOQ.net
いや更新時の参照用ならこれでいいのか
nodeのrequire/importとnpmのinstall/updateを混同してたわ
768:デフォルトの名無しさん
[ここ壊れてます] .net
バックエンドnode.jsだけで食っていけますか
769:デフォルトの名無しさん
22/10/12 13:50:41.51 PMp24lyt.net
nodejs単体というよりOODBの管理ととトランザクションいじれるようになるのが一番じゃね?
770:デフォルトの名無しさん
22/10/20 13:26:50.96 qyQuWblL.net
>>768
可能と言えば可能だけど無理と言えば無理
結局何作って金稼ぐかに帰ってくる
PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど
人口多いPHPでやれば良くないっすか?で詰む
改めてNode.jsを使う意味に戻ってくる
771:デフォルトの名無しさん
22/10/21 14:23:53.93 QgmICw4I.net
この業界ってnodeよりphpのほうが多いの?
772:デフォルトの名無しさん
22/10/21 17:27:25.06 yOIwuGST.net
nodeはhttpサーバ目指してんのか
クロスプラットフォームのコマンドツール群目指してんのか
立ち位置が分かりにくくなってきてるなぁ。
773:デフォルトの名無しさん
22/10/21 17:37:31.50 gaBKDdgt.net
>>772
その辺はわりと初期から迷走してるでしょ
フロントエンド用ライブラリ郡も全てnpmで管理してるし
774:デフォルトの名無しさん
22/10/21 20:11:01.49 ho0gY/No.net
立ち位置としては単なるJSのランタイムだから別に迷走はしてない
あれもこれもできている現状は目標が達成できている状態だな
775:デフォルトの名無しさん
22/10/21 20:53:45.43 r+LUs0oF.net
自分が作りたいものを実現できるならそれでいいし
776:デフォルトの名無しさん
22/10/22 10:24:29.33 nOyTQUKy.net
またnpmとbowerに分かれるのか
777:デフォルトの名無しさん
22/10/22 12:20:56.88 J0WzfMNr.net
>>773
そもそもフロントエンドの実行環境はnodeじゃないしな。
そこで動くライブラリもnpmにしたのはライブラリ開発者側の意思だろ。
778:デフォルトの名無しさん
22/11/02 16:05:58.82 IF6ghKjX+
テ口リス├の敵は味方、金正恩を支持しよう!
都心まて゛数珠つなき゛で私有地上空を侵犯するJΑLだのÅNАだのクソアヰヌドゥた゛のクサヰマークた゛のコ゛キブリフラヰヤ一だの
女風呂のそ゛きながら威カ業務妨害騒音ヘリグルク゛儿飛は゛して住民イラヰラ犯罪惹起してる猥褻犯罪逮捕者た゛らけのクソポリ公た゛の
国土破壊省だの都心まて゛数珠つなぎで騒音に温室効果ガスにコ口ナにとまき散らして,氣候変動させて海水温上昇させて,
地球破壞して土砂崩れに洪水.暴風、干は゛つ.森林火災にと災害連発させて、静音が生命線の知的産業を根絶やしにして儲けてる
この殺人テ□リストどもこそか゛安全保障にとって重大て゛差し迫った脅威であり.國際社會全体にとって明白で深刻な脅威だろ
ウケルのは大気圏外を飛んて゛るミサヰ儿か゛上空を通過しただのほさ゛いて國民を煽って電車まで止めて号外まで出すキチカ゛イっふ゜りな
人類に涌いた害虫税金泥棒公務員ってのはこういう白々しいネタまて゛作り上げてバカ騙して利権倍増させて私腹を肥やしてるわけよ
創価学會員は.何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ━か゛囗をきけて容認するとか本氣で思ってるとしたら侮辱にもほどか゛あるぞ!
htTPs://i,imgur、cοm/hnli1ga.jpeg
779:デフォルトの名無しさん
22/12/01 15:22:36.40 gR9AoUvr.net
npm@9にしたらupdate時にinstall済みのローカルモジュールがsymlinkから実ファイルコピーに書き換えられた
--install-linksの挙動変更だけじゃなかったのか
780:デフォルトの名無しさん
23/01/09 13:40:55.90 pkwz3DCl.net
substackがGithubリポジトリごと全部消してるけど何かあったのか
npmは基本消せないから今のところは支障ないけど
781:デフォルトの名無しさん
23/01/09 15:20:15.81 QAUxwh3d.net
スマホ持ってないのに2段階認証押し付けられて嫌気がしたからとか見かけたな
782:デフォルトの名無しさん
23/01/09 19:48:04.21 pkwz3DCl.net
思ったよりしょうもなかったがバイク事故とかじゃなくてよかったわ
783:デフォルトの名無しさん
23/01/26 12:54:12.49 O11XvwYM.net
TSのバックエンドでファイル処理つったらstreamでいいのかな
BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中
784:デフォルトの名無しさん
23/01/26 13:13:59.54 f8HqO3bH.net
最初はfs.writeFileとfs.readFileを使え
streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役
BufferやBlobはデータをメモリ上で扱う際の形式の一つ
TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ
785:デフォルトの名無しさん
23/01/26 13:26:12.10 O11XvwYM.net
>>784
どうも
BufferとBlobは役割同じに思えるけどなんで分けてるん?
786:デフォルトの名無しさん
23/01/26 14:46:29.69 gEyoKRRe.net
BufferはNode固有のAPI
Blobは後から出てきたWeb (ブラウザ) のAPI
そしてTypedArrayBufferはECMAScriptのAPI
ストリームとかURLとか他にも重複してるのが多数ある
787:デフォルトの名無しさん
23/01/26 15:24:22.66 G0G6dXL8.net
>>786
どうも
JSごちゃごちゃしてて難しいっすね
でも大体わかったわ
788:デフォルトの名無しさん
23/02/10 08:27:38.73 WC55EdF2.net
今ってORMはPrisma一択?
789:デフォルトの名無しさん
23/02/10 10:01:03.33 9VW44qMw.net
勢いでは完全に負けてるが一応TypeORMもあるんじゃね
790:デフォルトの名無しさん
23/03/01 14:51:23.19 dWfTEqUX.net
util.aborted()が生えたけど用途がわからん
791:デフォルトの名無しさん
23/07/27 23:08:16.03 nxFTW9tq.net
nodejsでDBマネージャーとかログマネージャーとか、可能な限り同一インスタンスを維持したいインスタンスって一般的にどうしてますでしょうか。
class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。
毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
792:デフォルトの名無しさん
23/07/28 01:56:41.01 HsfaqfZ/.net
常に引数で外部注入して生成するけど
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
793:デフォルトの名無しさん
23/07/28 03:31:39.50 H/mKlItN.net
>>792
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや~ ってなってしまいそう…
とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
794:デフォルトの名無しさん
23/07/28 09:58:33.60 Za7BrkqV.net
ファイル(モジュール)のトップレベルで
export const instance = new Xxx();
で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
795:デフォルトの名無しさん
23/07/28 10:36:22.85 HsfaqfZ/.net
singletonならそれでいいね
796:デフォルトの名無しさん
23/07/28 12:39:37.08 Zbfe02RK.net
>>791
> 同一インスタンスを維持したい
シングルトンの話だな
797:デフォルトの名無しさん
23/08/18 15:34:38.37 ccv6NoZV.net
やめてっ!そこはビンカンなの!
798:デフォルトの名無しさん
23/10/13 21:17:44.43 uv+WVTr3.net
おぉ(゚ロ゚屮)屮
799:デフォルトの名無しさん
24/03/15 01:14:12.53 XS+9mG1WC
税金泥棒だらけの日本の茶番政治家と違って日本に原爆落とした世界最惡のならす゛者国家の国会は政治やってるよな
何しろ「やんのかコラ」「よろこんで」「じゃあ立てよ」「お前が立てよ」とか言い合ってるくらいた゛しな
岸田異次元増税憲法ガン無視地球破壊覇権主義経済音痴文雄にそのくらい言い放とうものならお前ら間違いなく投票するよな
クビにされた税理士神田憲次財務副大臣は徴税システ厶ぶっ壞すために財務副大臣になったんだくらい言えは゛どんでん返しだったろうに
天下り賄賂癒着して航空騒音による威力業務妨害までしてるだけの害虫公務員に高額なタダメシ食わしてやるデタラメ許してるせいで
賃金が上がらず物価上昇という白々しい結果になってんた゛から片っ端から税金という名目の強盗システ厶をぶっ壊してやんよとか
誰か言ってみせろっつのな.税金不払い運動とかやらないのは日本くらいなものた゛から俺も俺もと汚職まみれの世界最悪の腐敗天國に
なったわけだが税金滞納して督促くらってもと゛うということはないと税理士副大臣がバラしちまったし俺も俺もと誰も払わなくなればいいよな
(ref.) tΤps://www.call4.jp/info.Ρhp?tуρe=iТems&id=I0000062
URLリンク(haneda-project.jimdofr)<)
800:デフォルトの名無しさん
24/06/07 19:13:05.87 pMHNGLdE.net
Prismaが快適すぎて最近はこれ使いたいがためにnode使ってるまであるわ
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
801:デフォルトの名無しさん
24/07/22 05:05:01.65 lDVL1NiC.net
わざわざランタイム側でsqlite内蔵する意味がわからん
暇なのか
802:デフォルトの名無しさん
24/10/28 06:20:54.20 jVsAs5RNv
人の話をよく聞く岸田異次元増税憲法ガン無視地球破壊霸権主義経済音痴文雄にとって人とはお前らて゛はなくクソ官僚のことだからな
官僚の給料爆上け゛しないと優秀な人材が集まらないとかデタラメ,マヰナンハ゛‐その他のポンコツっふ゜りからも分かるように頭は昭和の
無能ぞろいなのは給料か゛高すき゛て金の亡者しか集まらないからというのか゛実態,知的能力者は金より完璧なシステムを完成させることによる
達成感を選ぶものだか゛公務員という人類に涌いた害蟲に好き放題奪われ航空騷音による威力業務妨害までされて人々か゛欲する価値生産なんて
やってられるかとみんな離脱,半導体価格大幅下落にリスキリンク゛ガ─の無能天国日本で半導体た゛のAIだの天下り賄賂癒着大企業に10兆圓
弾道ミサヰ儿作って空中て゛爆破するのか゛利権の次に大好きなシ゛ャクソに8兆圓、利権のためには氣侯変動,災害連發,國土破壊、隣国挑発して
戰爭惹起して軍事利権倍増と俺も俺もと費用対効果もクソもない税金泥棒まみれのクソ公務員に支配された腐敗無能集団自民公明禍
お前らの賃金が物価上昇を上回るとか100%あり得ない
(ref.) URLリンク(www.call4.jp)
URLリンク(haneda-project.jimdofree.com) , URLリンク(flight-route.com)
URLリンク(n-souonhigaisosyoudan.amebaownd.com)