私は学外の業界についてたくさんのインターンを学びます。
今日私が考えたのは、入力のトリミングです。
コインの片側では、入力にスペースが多すぎるためにユーザー/実装者が予期しない結果を常に受け取ることを望まないため、すべての関数呼び出しの後にユーザー入力を常にトリミングする必要があります。
しかし、同時に、 API このオフィスの末尾/先頭の空白で内部的に使用するライブラリは、結果にとって非常に重要です。
次に、空白文字が重要かどうかわからない場合があります。
私にとっての大きな問題は、コード内のどこにいても.trim()が常に呼び出されていることです。
誰かが特定の状況を処理する方法についてのヒント/経験則または単なる考えを持っていますか?
APIで任意に空白を削除しないでください。
ホワイトスペースを任意に切り詰める唯一の理由は、UI機能としてです。人々は頻繁に入力されたフィールドの最後にスペースを残しますが、そうしたことがわかりません。メッセージを返すのはかなり混乱するので、ユーザーが「A」以外を意味するために「A」を入力するというまれなケースを除いて、通常、不要なスペースを捨てることができます。
しかし、コンピューターが誤ってスペースを追加することはありません。プログラマーが指示したため、スペースが追加されます。API実装に違反した場合は、開発者にエラーを返します。そうでない場合は、それらを使用する必要があります。
もちろん、このデータがアプリケーションを介して人間からのものである可能性がありますが、それはアプリケーション開発者の問題であり、あなたの問題ではありません。繰り返しになりますが、問題が発生する場合は拒否してください。そうでない場合は、それらを受け入れます。それらをトリミングせず、消費者がそれが起こることを知っていると仮定しないでください。
ここで役立つ原則の1つは [〜#〜] yagni [〜#〜] :「あなたはそれを必要としない」つまり、実際に必要かどうかわからない機能のアイデアがある場合は、必要になるまで必要になるまで実装しないでください。 。次に、その必要性が明らかになると、実際に必要なコードベースの場所も明らかになります。
入力が何のために使用されるかによります。検索語として入力されたデータから空白を削除する場合は、なぜそうしているのか理解できます。システムに入ってくるデータを信頼しないことを学ぶのは良い習慣です。私は主にSQLインジェクションについて考えていますが、他の側面もあります。
入力を常にトリミングする必要はないかもしれませんが、常に入力をチェックする必要があります。