[過去ログ]
スレ立てるまでもない質問はここで 161匹目 (1002レス)
スレ立てるまでもない質問はここで 161匹目 http://mevius.5ch.net/test/read.cgi/tech/1661583836/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
103: デフォルトの名無しさん [sage] 2022/09/16(金) 13:03:50.44 ID:pgB81iJy import FileSystemHandle from './FileSystemHandle.js' const kAdapter = Symbol('adapter') class FileSystemDirectoryHandle extends FileSystemHandle { /** @type {FileSystemDirectoryHandle} */ [kAdapter] constructor (adapter) { super(adapter) this[kAdapter] = adapter } ・・・ } というのがあったんだけど、 [kAdapter]やthis[kAdapter]の意味が分からない。 誰か教えてケロ。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/103
104: デフォルトの名無しさん [sage] 2022/09/16(金) 13:06:33.10 ID:pgB81iJy >>103 これは、FileSystemDirectoryHandle の polyfill(ponyfill)。 場所は:https://github.com/jimmywarting/native-file-system-adapter http://mevius.5ch.net/test/read.cgi/tech/1661583836/104
105: デフォルトの名無しさん [sage] 2022/09/16(金) 18:24:08.28 ID:cJN3hfhk web apiを作っていて、どのステータスコードを返せばいいのかで悩んでいます。 400番台と500番台の使い分けを、皆さんどのようにしていますでしょうか? 例えば、ユーザー情報を更新するAPIで 指定したユーザーIDの情報がDBに無い時、もしくは2件以上ある時、その他の論理状態がおかしい時。です。 以下のように400番台の理屈も、500番台の理屈も思いつくので、どちらが正しいかで悩んでいます。 ユーザー情報がない時に限れば404かなという気もしますが、その他の論理異常の時と同じにしたいという思いがあります。 サーバーからすれば「そのリクエストしたIDがおかしいんだからアプリが悪い。同じリクエスト投げても状況は変わらない」と言いたいのですが この場合はクライアントサイドが原因なので400で良い気もする。 DBの状態が原因なんだから500エラーなのかなという気もするのですが、そうなると究極的には全部のエラーが500番台のエラーになる気もする。 そもそもDBに対象のユーザーIDが無い(複数ある、論理異常)時は明らかにバグだ。バグ前提で考えるのは良くない。 とすると、おかしいのはリクエスト。だから400番台。 と、自分の中でどっちが正しいのか悩んでいる状態です。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/105
106: デフォルトの名無しさん [sage] 2022/09/16(金) 19:17:56.53 ID:6w/ivPAn >>105 素人だけどCGIとかの実行エラーなんだからそういうのは全部500番代だと思ってた ファイルがないとかアク禁とかデーモン側のみでスクリプト抜きの話は400番代で http://mevius.5ch.net/test/read.cgi/tech/1661583836/106
107: デフォルトの名無しさん [sage] 2022/09/16(金) 19:37:13.05 ID:oAyMZKxN 400番台: クライアントに原因のあるエラー (送ったデータに不備ありなど) 500番台: サーバーに原因のあるエラー (データ仕様は正しいがサーバ側の処理が失敗したなど) 不正IDを送られた時に存在しないという結果を返すのはサーバー側から見たらそれが正しい動作なんだから送信側のエラー http://mevius.5ch.net/test/read.cgi/tech/1661583836/107
108: デフォルトの名無しさん [sage] 2022/09/16(金) 19:42:58.69 ID:oAyMZKxN てか500て実行時エラーとかDBが落ちてるとか要求の受付時間外とかそういうのじゃない http://mevius.5ch.net/test/read.cgi/tech/1661583836/108
109: デフォルトの名無しさん [sage] 2022/09/16(金) 21:34:41.48 ID:Pdv1nxJ2 基本は>>107の書いてるようにクライアントとサーバーのどちらに原因があるか 指定したユーザーIDがDBにないのは400番台 指定したユーザーIDがDBに2件以上あるのがDB不整合の状態なら500番台 原因も対処方法が違うのに同じにしたいというのが間違い http://mevius.5ch.net/test/read.cgi/tech/1661583836/109
110: デフォルトの名無しさん [sage] 2022/09/16(金) 23:14:26.88 ID:R7zfJ/61 そもそもバリデーションエラーやら処理している段階でエラーみたいな内部的なものは 成功時は例えばstatus: 0とか返して正常終了を示す 失敗時はstatus: 1とか内部で設定したエラーコードを返すのが一般的では? HTTPのエラーコードはwebサーバーなどの都合で発生したエラー用だと思うが http://mevius.5ch.net/test/read.cgi/tech/1661583836/110
111: デフォルトの名無しさん [sage] 2022/09/16(金) 23:28:32.48 ID:2cEUPRtN APIが0を返したら正常終了とか古き良き香りになりにけり RESTful APIならある程度はスタンダードに沿いつつ ユーザーの責務が何で自分の責務が何かは仕事では必ず決めないといけないんだからそのノリで個々に線引きしていけばいい http://mevius.5ch.net/test/read.cgi/tech/1661583836/111
112: 105 [sage] 2022/09/17(土) 14:24:23.70 ID:iAB+KSrH >>106- ありがとうございます。 DBにレコードが2件というのは例として不適切でしたが、 とりあえず400を積極的に使う事にします。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/112
113: デフォルトの名無しさん [sage] 2022/09/17(土) 14:51:03.56 ID:EEEbWrXO > とりあえず400を積極的に使う事にします。 ダミだこりゃ http://mevius.5ch.net/test/read.cgi/tech/1661583836/113
114: デフォルトの名無しさん [sage] 2022/09/17(土) 15:37:35.65 ID:slnpqWSw >>112 指定したユーザーIDの情報がDBにないという例のほうが論理異常の例として不適切なんだが http://mevius.5ch.net/test/read.cgi/tech/1661583836/114
115: デフォルトの名無しさん [sage] 2022/09/18(日) 01:28:03.79 ID:X0tGJ0Vt >>103 その[kAdapter]は単なるクラスフィールド宣言 this[kAdapter]はそのフィールドへのアクセス this.hogeがthis["hoge"]と同じことを思い出そう そして今回はそのkAdapterをシンボルで与えているだけ const kAdapter = Symbol('adapter') http://mevius.5ch.net/test/read.cgi/tech/1661583836/115
116: デフォルトの名無しさん [sage] 2022/09/18(日) 19:43:36.43 ID:fB0C0iJE >>115 有難き幸せ。 constructor (adapter) { super(adapter) this.adapter = adapter; } と書くのとの違いは? http://mevius.5ch.net/test/read.cgi/tech/1661583836/116
117: デフォルトの名無しさん [] 2022/09/18(日) 22:12:40.14 ID:VjUDO6tf モバイルアプリで使うようなウェブサイトから画像持ってくるようなやつってURLとかのほうが表示速いのかね? 完全に趣味だけどウマ娘HPのHTMLに記されたsrcの文字を指定するだけですぐ反映されるんかな? http://mevius.5ch.net/test/read.cgi/tech/1661583836/117
118: デフォルトの名無しさん [sage] 2022/09/19(月) 08:55:48.01 ID:E2P5O1UU >>116 違う this["adapter"] ←これがthis.adapterと同じ this[adapter] ←今回はこの形 ここで変数adapterが"adapter"なら同じだが 今回は変数adapterがSymbol("adapter") つまり両者は異なる >>117 CDNキャッシュの恩恵に預かれるから独自プロトコルで持ってくるとの比較ならば速くなりうる http://mevius.5ch.net/test/read.cgi/tech/1661583836/118
119: デフォルトの名無しさん [] 2022/09/19(月) 10:00:30.15 ID:Guc0YHbo >>118 なるほどサンクス http://mevius.5ch.net/test/read.cgi/tech/1661583836/119
120: デフォルトの名無しさん [sage] 2022/09/19(月) 10:19:16.65 ID:pZPXfhQS 画像が通信経路で勝手に再圧縮されてハッシュが一致しないエラーなんてのがあったな http://mevius.5ch.net/test/read.cgi/tech/1661583836/120
121: デフォルトの名無しさん [sage] 2022/09/19(月) 10:48:36.99 ID:9VJdPhWh プロパティにSymbolを使っている理由はプライベートっぽく保護したいからじゃないかな this.adapterだと外部から自由に読み書きできるけどthis[adapter]だとadapterの値にアクセスできない限り読み書きの手段がかなり限定される http://mevius.5ch.net/test/read.cgi/tech/1661583836/121
122: デフォルトの名無しさん [sage] 2022/09/19(月) 12:02:31.85 ID:knJx8Iiy >>118 (あなたがadapter変数としているものは、今回の例では、kAdapter変数ということを 前提として) kAdapter が変化するならわかるが、今回は const kAdapter = Symbol('adapter') と絶対に変化しない定数のようになっているので、結局、何がやりたいのだろうか? 俺はそもそも、Symbol オブジェクト(?)の役割が分かって無い。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/122
123: デフォルトの名無しさん [sage] 2022/09/19(月) 12:04:04.35 ID:knJx8Iiy >>121 なるほど。 でも、そういうためだけの目的?? http://mevius.5ch.net/test/read.cgi/tech/1661583836/123
124: デフォルトの名無しさん [sage] 2022/09/19(月) 12:25:27.33 ID:9VJdPhWh Symbolはユニークなオブジェクトを作る Symbol('adapter') != Symbol('adapter') コンストラクタに渡す文字列はただの説明文 http://mevius.5ch.net/test/read.cgi/tech/1661583836/124
125: デフォルトの名無しさん [sage] 2022/09/19(月) 12:30:36.83 ID:oXPlRBsf Symbolの説明はとほほが分かりやすかった https://www.tohoho-web.com/js/symbol.htm http://mevius.5ch.net/test/read.cgi/tech/1661583836/125
126: デフォルトの名無しさん [sage] 2022/09/19(月) 13:30:34.01 ID:knJx8Iiy >>124 そもそも new Symbol("xxx") でなくて Symbol("xxx") と書く理由も 俺は分かってない。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/126
127: デフォルトの名無しさん [] 2022/09/19(月) 13:34:58.09 ID:/08McGz8 new なしでクラスのインスタンス作れるというと Kotlin のようだな。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/127
128: デフォルトの名無しさん [sage] 2022/09/19(月) 22:29:50.30 ID:s9D2fBDK new の有無が話題になるのは、JavaScript かな? 例えば、Number のnew の有無 Number() コンストラクターは、 Number オブジェクトを生成します。 new Number(value) 他の型の値は、Number() 関数を用いて数値に変換することができます。 Number('123') // 数値 123 を返す つまり、newでインスタンスを作る。 new無しは変換関数 http://mevius.5ch.net/test/read.cgi/tech/1661583836/128
129: 128 [sage] 2022/09/19(月) 22:36:56.77 ID:s9D2fBDK >>128 みたいな、ちょっとした書き方の違いで、様々な機能を実現しているから、JavaScript は難しい。 他にも、==, === の違いとか、一々調べないといけないから、時間の無駄 だから、Ruby の方が圧倒的に分かりやすくて、バグらない。 短時間で済む http://mevius.5ch.net/test/read.cgi/tech/1661583836/129
130: デフォルトの名無しさん [] 2022/09/19(月) 22:56:24.22 ID:3GNptN3X >>129 ただ、Rubyは ・ちゃんとしたローカル変数が作れない。 ・ブロックが中括弧ではなく end などで終わったりして面倒。 if 文の書き方が C言語と異なる。一方、JSは同じ。 ・ブロックの書き方に統一感が無い。 ・複数行コメントが簡単には書けない。 ・Cの構造体の様なものが書きにくい。JSだと書ける。 JSはやりたい事が大体出来るようになっている。 ただし、Promiseなどがメンドクサイ。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/130
131: デフォルトの名無しさん [sage] 2022/09/20(火) 00:19:25.28 ID:u2od2H+V >>130 >・ちゃんとしたローカル変数が作れない。 ちゃんとしたローカル変数って何? http://mevius.5ch.net/test/read.cgi/tech/1661583836/131
132: デフォルトの名無しさん [sage] 2022/09/20(火) 13:00:38.92 ID:A6jC1TrN >>131 ブロックの中でのみ有効で、ブロックが終わると、外からは参照できない 変数の事。 http://mevius.5ch.net/test/read.cgi/tech/1661583836/132
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 870 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s