คุณควรตัดการป้อนข้อมูลเมื่อใด


11

ฉันฝึกงานกับการเรียนรู้มากมายเกี่ยวกับอุตสาหกรรมด้านนอกสถาบันการศึกษา

สิ่งหนึ่งที่ฉันคิดเกี่ยวกับวันนี้คือการป้อนข้อมูลการตัดแต่ง

ในด้านหนึ่งของเหรียญฉันไม่ต้องการให้ผู้ใช้ / ผู้ใช้งานได้รับผลลัพธ์ที่ไม่คาดคิดเนื่องจากอินพุตของพวกเขามีช่องว่างมากเกินไปดังนั้นฉันจึงจำเป็นต้องตัดการป้อนข้อมูลของผู้ใช้อย่างต่อเนื่องหลังจากการเรียกใช้ทุกครั้ง

แต่ในเวลาเดียวกันถ้าฉันกำลังสร้างห้องสมุดAPIสำหรับใช้ภายในที่นี่ที่สำนักงานท้าย / ช่องว่างชั้นนำอาจมีความสำคัญต่อผลลัพธ์

จากนั้นมีหลายกรณีที่ฉันไม่แน่ใจว่าช่องว่างจะมีความสำคัญหรือไม่

ปัญหาใหญ่สำหรับฉันคือฉันพบว่าตัวเองโทรหา. trim () อย่างต่อเนื่องทุกที่ในรหัสของฉัน

ไม่มีใครมีเคล็ดลับ / กฎของหัวแม่มือหรือเพียงแค่คิดเกี่ยวกับวิธีการจัดการกับสถานการณ์บางอย่าง?


1
เมื่อคุณพูดว่า "API" ที่นี่คุณกำลังพูดถึงการเขียนห้องสมุดหรือคุณกำลังพูดถึงบริการเว็บภายในบางประเภท? มันเป็นรายละเอียดที่สำคัญ
Sean McSomething

จริงๆแล้วมันจะเป็นห้องสมุดที่ฉันกำลังสร้าง (ขอบคุณ)
TacticalMin

เสียงนี้ตอบรับเอง ... หากคุณไม่แน่ใจว่าไม่ต้องการพื้นที่สีขาวคุณอาจไม่ควรตัดทอนข้อความ
GrandmasterB

คำตอบ:


13

ไม่ตัดส่วนช่องว่างโดยพลการใน API

เหตุผลเดียวที่จะตัดช่องว่างโดยพลการนั้นคือคุณสมบัติ UI ผู้คนมักออกจากช่องว่างที่ส่วนท้ายของฟิลด์ที่ป้อน แต่ไม่สามารถเห็นได้ว่าพวกเขาทำเช่นนั้น มันค่อนข้างสับสนที่จะส่งคืนข้อความดังนั้น - ยกเว้นในกรณีที่ไม่ค่อยเกิดขึ้นซึ่งผู้ใช้อาจป้อน "A" เพื่อหมายถึงสิ่งอื่นที่ไม่ใช่ "A" - โดยปกติคุณสามารถทิ้งช่องว่างที่ไม่มีประโยชน์ใด ๆ ได้

แต่คอมพิวเตอร์ไม่เพิ่มช่องว่างโดยไม่ได้ตั้งใจพวกเขาเพิ่มช่องว่างเพราะโปรแกรมเมอร์บอกให้พวกเขาและถ้าพวกเขาทำลายการใช้ API ของคุณคุณควรโยนข้อผิดพลาดกลับไปที่นักพัฒนา หากพวกเขาไม่ได้แล้วคุณควรใช้พวกเขา

แน่นอนมีความเป็นไปได้ที่ข้อมูลนี้มาจากมนุษย์ผ่านแอปพลิเคชัน แต่นั่นเป็นปัญหาของผู้พัฒนาแอปพลิเคชันไม่ใช่ของคุณ อีกครั้งหากพวกเขากำลังจะทำให้คุณมีปัญหาปฏิเสธพวกเขา; ถ้าไม่ยอมรับพวกเขา อย่าตัดพวกเขาและคิดว่าผู้บริโภคของคุณรู้ว่าจะเกิดขึ้น


ขอบคุณที่สละเวลาตอบ คุณสรุปสิ่งที่คนอื่นพูด
TacticalMin

3

หลักการหนึ่งที่มีประโยชน์นี่คือYAGNI : "คุณไม่ต้องการมันหรอก" หมายความว่าเมื่อคุณมีความคิดเกี่ยวกับคุณลักษณะที่คุณไม่แน่ใจว่าคุณต้องการจริง ๆ อย่านำไปใช้จนกว่าคุณจะแน่ใจว่าคุณต้องการ จากนั้นเมื่อความต้องการมันชัดเจนขึ้นสถานที่ใน codebase ของคุณที่จำเป็นจริงก็ควรจะปรากฏ


1

ขึ้นอยู่กับว่าจะใช้อินพุทอะไร หากคุณตัดพื้นที่สีขาวออกจากข้อมูลที่ถูกป้อนเป็นคำค้นหาฉันสามารถเข้าใจได้ว่าทำไมคุณถึงทำเช่นนั้น มันเป็นนิสัยที่ดีที่จะเรียนรู้ที่จะไม่เชื่อใจข้อมูลที่เข้ามาในระบบฉันกำลังคิดถึง SQL Injection เป็นหลัก แต่ก็มีแง่มุมอื่น ๆ เช่นกัน

คุณอาจไม่จำเป็นต้องตัดแต่งอินพุต แต่คุณควรตรวจสอบอินพุตทุกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.