いつ入力をトリミングする必要がありますか?


11

私はインターンとして、学界以外の業界についてたくさん学びます。

今日私が考えたのは、入力のトリミングです。

コインの片側では、入力にスペースが多すぎるためにユーザー/実装者が予期しない結果を常に受け​​取ることを望まないため、すべての関数呼び出しの後にユーザー入力を常にトリミングする必要があります。

しかし、同時に、ここで社内で使用するAPIライブラリを作成している場合、結果の主要な空白が末尾/先頭にあることが重要になる可能性があります。

次に、空白が重要かどうかがわからない場合があります。

私にとっての大きな問題は、コード内のどこにいても.trim()が常に呼び出されていることです。

誰もが特定の状況を処理する方法についてのヒント/経験則または単なる考えを持っていますか?


1
ここで「API」と言うとき、ライブラリの作成について話しているのですか、それとも内部のWebサービスのようなものですか。それは重要な詳細です。
Sean McSomething 2013

実際に私が作成しているライブラリです(ありがとう)
TacticalMin

これは自動応答のように聞こえます... 空白が不要かどうかわからない場合は、テキストをトリミングしないでください。
GrandmasterB 2013

回答:


13

APIで任意に空白を削除しないでください。

空白を任意に切り詰める唯一の理由は、UI機能としてです。人々は頻繁に入力されたフィールドの終わりにスペースを残しますが、そうしたことがわかりません。メッセージを返すのはかなり混乱するので、ユーザーが「A」以外の意味で「A」を入力するというまれなケースを除いて、通常は不要なスペースを捨てることができます。

しかし、コンピューターが誤ってスペースを追加するのではなく、プログラマーがスペースを追加したため、スペースが追加されます。API実装に違反した場合は、開発者にエラーを返します。そうでない場合は、それらを使用する必要があります。

もちろん、このデータがアプリケーションを介して人間からのものである可能性もありますが、それはアプリケーション開発者の問題であり、あなたの問題ではありません。繰り返しになりますが、問題が発生する場合は拒否してください。そうでない場合は、それらを受け入れます。それらをトリミングせず、消費者がそれが起こることを知っていると仮定しないでください。


回答していただきありがとうございます。あなたは他の誰もが言っているように思われることを要約しました。
TacticalMin

3

ここで役立つ原則の1つはYAGNIです。「あなたはそれを必要としません」あなたがされるまで、あなたがそれを実装していない、あなたが実際に必要になりますがわからないという特徴のためのアイデアを持っているとき、それは何を意味することは、それをあるあるあなたがそれを必要とします。次に、その必要性が明らかになると、実際に必要なコードベースの場所も明らかになります。


1

入力が何のために使用されるかによって異なります。検索語として入力されたデータから空白を削除する場合は、なぜそうしているのか理解できます。システムに入ってくるデータを信頼しないことを学ぶのは良い習慣です。私は主にSQLインジェクションについて考えていますが、他の側面もあります。

入力を常にトリミングする必要はないかもしれませんが、常に入力をチェックする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.