입력을 언제 트림해야합니까?


11

나는 학계 이외의 산업에 대해 많은 것을 배우고 있습니다.

오늘 내가 생각한 것은 입력을 다듬는 것입니다.

코인의 한쪽에서 사용자 / 구현자가 입력에 공간이 너무 많아 예기치 않은 결과를 지속적으로 수신하지 않기를 원하므로 모든 함수 호출 후 사용자 입력을 지속적으로 트리밍해야합니다.

그러나 동시에 사무실에서 내부 사용을 위해 API 라이브러리를 만드는 경우 후행 / 선행 공백이 결과에 중요 할 수 있습니다.

그런 다음 공백이 중요한지 확실하지 않은 경우가 있습니다.

나에게 가장 큰 문제는 내 코드의 어느 곳에서나 .trim ()을 계속 호출한다는 것입니다.

누구나 어떤 상황에 대처할 수 있는지에 대한 팁 / 규칙이 있습니까?


1
여기서 "API"라고 말할 때 라이브러리 작성에 대해 이야기하고 있습니까, 아니면 내부 웹 서비스에 대해 이야기하고 있습니까? 중요한 세부 사항입니다.
Sean McSomething

그것은 실제로 내가 짓고있는 도서관 일 것입니다 (감사합니다)
TacticalMin

이것은 자동 응답으로 들립니다 ... 공백이 필요 하지 않은지 확실 하지 않으면 텍스트를 자르면 안됩니다.
GrandmasterB

답변:


13

API에서 공백을 임의로 트리밍하지 마십시오.

공백을 임의로 자르는 유일한 이유는 UI 기능입니다. 사람들은 입력 한 필드의 끝에 공백을 자주 남기지 만 그렇게 한 것을 볼 수는 없습니다. 사용자가 "A"이외의 것을 의미하기 위해 "A"를 입력 할 수있는 드문 경우를 제외하고는 메시지를 반환하는 것이 상당히 혼란 스럽습니다. 일반적으로 쓸모없는 공간을 버릴 수 있습니다.

그러나 컴퓨터는 실수로 공백을 추가하지 않고 프로그래머가 공간을 추가했기 때문에 공백을 추가하며 API 구현을 중단하면 개발자에게 오류를 다시 발생시켜야합니다. 그렇지 않은 경우 사용하면됩니다.

물론,이 데이터는 응용 프로그램을 통해 사람에게서 나올 가능성이 있지만 응용 프로그램 개발자의 문제는 아닙니다. 다시 말하지만, 문제가 발생하면 거부하십시오. 그렇지 않으면 수락하십시오. 그것들을 다듬지 말고 소비자가 그 일이 일어날 것이라고 알고 있다고 가정하십시오.


답변을 주셔서 감사합니다. 당신은 다른 사람들의 말을 요약했습니다.
TacticalMin

3

여기서 유용한 원리 중 하나는 YAGNI입니다 . "당신은 그것을 필요로하지 않습니다." 당신이 때까지 당신이 그것을 구현하지 않는, 당신은 당신이 실제로 필요합니다 확실하지 않다하는 기능에 대한 아이디어가있을 때 무슨 의미하는 것은, 그입니다 입니다 당신이 그것을 필요합니다. 그런 다음 필요가 명확 해지면 실제로 필요한 코드베이스의 위치도 분명해야합니다.


1

입력이 사용될 대상에 따라 다릅니다. 검색어로 입력 한 데이터에서 공백을 자르면 왜 그렇게하는지 이해할 수 있습니다. 시스템에 들어오는 데이터를 신뢰하지 않는 것을 배우는 것이 좋은 습관입니다. 저는 주로 SQL 인젝션을 생각하고 있지만 다른 측면도 있습니다.

항상 입력을 다듬을 필요는 없지만 항상 입력을 확인해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.