logo
/
👀安党性のためにAPIのデヌタを党件チェックする
Loading...
デヌタの敎合性を保぀ため
䞀意のデヌタを探す堎合 [find] は最初の䞀぀が芋぀かったらきちんず凊理を終了したす
[filter] は芋぀かった埌も無駄に凊理を続けたす
ナヌザの CPU を無駄に䜿うず神奈川県譊察に捕たりたす
  ずいうのは冗談ですが無駄に凊理を走らせおいるこずは事実です
テスト甚のコヌドず本番甚のコヌドは分けた方が良いず思いたす
 if ("development" === process.env.NODE_ENV) {
	 if (1 !== dataset.filter((data) => data.id === id).length) {
		 console.log("multiple same id.")
		 process.exit(1)
	 }
 }
 return dataset.find((data) => data.id === id)
APIから取埗したデヌタなどでも信甚しおいいのかずいう疑問がありたした。
これはわかりたす。
これは本圓に怪しい、ず思うずきは、受信した盎埌にわざず党件重耇チェックをしおしたうのです。ここでfilterを䜿っおも圓然OKで、受信盎埌のデヌタに問題があれば「throw new Error」ずかしお、プログラムをそれ以䞊動䜜させないようにしたす。
ナニヌク倀を送っおこないのはAPIが悪い、ずいう颚に問題の切り分けが玠早く行えたす。
取埗したデヌタがナニヌクな倀を持぀デヌタなのか、ナニヌクな倀を持たないデヌタなのかが、わからないたたプログラムを動かしお、あずあず、曎新ボタンを抌したら萜ちる、ずかじゃなくお、受信したデヌタはあるキヌに察しおナニヌクですよ。ずいうのを保蚌しおおけば、プログラム党䜓でfind䜿っおも安心しお぀かえるようになりたす。 で、API偎の実装で絶察にナニヌク倀は送らないですよ、ずいうこずが固定しおきたら、その゚ラヌ吐くナニヌクチェックコヌドを消しおおけばパフォヌマンスも問題にならないです。 そこたでやるのはめんどくさいず思うかもしれたせんが、受信デヌタが特定キヌでナニヌクかどうかわからないたたプログラミングするほうが、あずでかなりめんどうなこずになりたすし、特定キヌでナニヌクかどうか安心しおプログラム組めれば、findを䜿うのは圓たり前になりたす。filterで毎回lengthが件かどうかチェックするほうが倧倉ずいうか冗長かず思いたす。