आपको इनपुट कब ट्रिम करना चाहिए?


11

मैं शिक्षा के बाहर उद्योग के बारे में टन सीखने के लिए प्रशिक्षु हूं।

आज के बारे में एक बात मुझे लगा कि ट्रिमिंग इनपुट था।

सिक्के के एक तरफ मैं नहीं चाहता कि उपयोगकर्ता / कार्यान्वयनकर्ता लगातार अप्रत्याशित परिणाम प्राप्त करें क्योंकि उनके इनपुट में बहुत अधिक स्थान थे, इसलिए मुझे प्रत्येक फ़ंक्शन कॉल के बाद उपयोगकर्ता इनपुट को लगातार ट्रिम करना होगा।

लेकिन एक ही समय में अगर मैं कार्यालय में अनुगामी / अग्रणी व्हाट्सएप पर आंतरिक उपयोग के लिए एक एपीआई पुस्तकालय बना रहा हूं तो यह परिणाम के लिए महत्वपूर्ण हो सकता है।

तब उदाहरण हैं कि मुझे यकीन नहीं है कि व्हॉट्सएप महत्वपूर्ण होगा या नहीं।

मेरे लिए बड़ा मुद्दा यह है कि मैं अपने कोड में हर जगह अपने आप को लगातार .trim () कॉल कर रहा हूं।

क्या किसी के पास कोई सुझाव / नियमों के अंगूठे या सिर्फ विचार हैं कि कुछ स्थितियों को कैसे संभालना है?


1
जब आप यहां "एपीआई" कहते हैं, तो क्या आप एक पुस्तकालय लिखने के बारे में बात कर रहे हैं या आप किसी प्रकार की आंतरिक वेब-सेवा के बारे में बात कर रहे हैं? यह एक महत्वपूर्ण विवरण है।
सीन मैकोसमैथिंग

यह वास्तव में एक लाइब्रेरी होगी जिसका मैं निर्माण कर रहा हूं (धन्यवाद)
TacticalMin

यह स्व-उत्तर देता है ... यदि आपको यकीन नहीं है कि सफेद स्थान की आवश्यकता नहीं है, तो आपको संभवतः पाठ को ट्रिम करना चाहिए।
ग्रैंडमास्टरबी

जवाबों:


13

एक एपीआई में कभी भी व्हॉट्सएप को ट्रिम नहीं करें।

कभी व्हाट्सएप को मनमाने ढंग से ट्रिम करने का एकमात्र कारण यूआई फीचर है। लोग अक्सर प्रवेश किए गए क्षेत्रों के अंत में रिक्त स्थान छोड़ देते हैं लेकिन यह नहीं देख सकते कि उन्होंने ऐसा किया है। यह एक संदेश को वापस करने के लिए बहुत भ्रामक है, इसलिए - दुर्लभ मामले को छोड़कर जहां एक उपयोगकर्ता "ए" में "ए" के अलावा कुछ और करने के लिए दर्ज कर सकता है - आप आमतौर पर किसी भी बेकार स्थान को खोद सकते हैं।

लेकिन कंप्यूटर गलती से स्थान नहीं जोड़ते हैं, वे रिक्त स्थान जोड़ते हैं क्योंकि एक प्रोग्रामर ने उन्हें बताया था, और यदि वे आपके एपीआई कार्यान्वयन को तोड़ते हैं, तो आपको डेवलपर को एक त्रुटि फेंकनी चाहिए। यदि वे नहीं करते हैं तो आपको बस उनका उपयोग करना चाहिए।

बेशक, एक संभावना है कि यह डेटा किसी एप्लिकेशन के माध्यम से मानव से आ रहा है, लेकिन यह एप्लिकेशन-डेवलपर का मुद्दा है, आपका नहीं। फिर, यदि वे आपको कोई समस्या पैदा करने जा रहे हैं, तो उन्हें अस्वीकार कर दें; यदि नहीं, तो उन्हें स्वीकार करें। उन्हें ट्रिम न करें और मान लें कि आपका उपभोक्ता जानता है कि क्या होगा।


जवाब देने के लिए समय निकालने के लिए धन्यवाद। आप ने कहा कि बाकी सब क्या कह रहे हैं।
टैक्टिकलिन

3

यहाँ एक उपयोगी सिद्धांत है YAGNI : "यू गन नॉट इट नीड।" कि क्या इसका मतलब यह है है, तो आप एक विशेषता यह है कि क्या आप वाकई वास्तव में आवश्यकता होगी नहीं कर रहे हैं के लिए एक विचार है, इसे लागू नहीं है जब तक आप कर रहे हैं सुनिश्चित करें कि आप इसकी आवश्यकता है। फिर, जब इसकी आवश्यकता स्पष्ट हो जाती है, तो आपके कोडबेस के स्थान जहां यह वास्तव में आवश्यक है, को भी स्पष्ट होना चाहिए।


1

यह निर्भर करता है कि इनपुट किसके लिए उपयोग होने वाला है। यदि आप डेटा से व्हाइट-स्पेस को ट्रिम कर रहे हैं जिसे खोज शब्द के रूप में दर्ज किया गया है तो मैं समझ सकता हूं कि आप ऐसा क्यों कर रहे हैं। एक सिस्टम में आने वाले डेटा पर भरोसा न करना सीखना एक अच्छी आदत है, मैं मुख्य रूप से SQL इंजेक्शन के बारे में सोच रहा हूं, लेकिन इसके दूसरे पहलू भी हैं।

आपको हमेशा इनपुट ट्रिम करने की आवश्यकता नहीं हो सकती है लेकिन आपको निश्चित रूप से हमेशा इनपुट की जांच करनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.