क्या क्षैतिज रूप से स्क्रॉल करने से कोड कम पठनीय हो जाता है?


12

अच्छा, करता है? क्या इसे बुरा व्यवहार माना जाता है?

IMO, यह कम पठनीय है। मुझे दाईं ओर स्क्रॉल करने से नफरत है, फिर वापस बाएं, दाएं, बाएं, और इसी तरह। यह कोडिंग को अधिक दर्दनाक बनाता है और मुझे कभी-कभी भ्रमित करता है।

उदाहरण के लिए, कभी भी मैं एक लंबी स्ट्रिंग कोडिंग कर रहा हूं, मैं निम्नलिखित कार्य करूंगा ...

bigLongSqlStatement = "select * from sometable st inner join anothertable at" +
"on st.id = at.id" +
"and so on..." +
"and so on..." +
"and so on..."

15
हाँ यह करता है। (और स्पिल्ट लाइनों को इंडेंट करना न भूलें)
जेवियर

2
मैं कहूंगा कि यह करता है। मैंने जो देखा है, वह आपके द्वारा उल्लिखित तरीके से क्षैतिज स्क्रॉलिंग को खत्म करने के लिए अनुभव प्रोग्रामर के बीच काफी मानक अभ्यास प्रतीत होता है। हालांकि इस मामले पर कुछ हद तक व्यक्तिगत पसंद है ...
केनेथ

1
मैं कुछ कुंजियों के साथ उच्च गति पर खड़ी और लाइनों के भीतर कोड नेविगेट कर सकता हूं, क्षैतिज रूप से स्क्रॉल करना तुलना में धीमी गति से कष्टप्रद है।

ओवरव्यू कॉलम कुछ भी कम पठनीय बनाते हैं। यह कई बार निर्धारित किया गया है।
डेविड थॉर्नले

2
मैं सहमत हूँ। केवल समस्या यह है कि आपके संपादक को बनाने के लिए हर कोई सहमत हो सकता है। यदि मैं इसके माध्यम से पढ़ने के लिए एक टन है तो अतिरिक्त विस्तृत कोड पर मैं आमतौर पर केवल रैप सेट करता हूं।
कार्ल बेज़ेलफेल्ट

जवाबों:


19

हां, वास्तव में यह सामान्य अर्थों के साथ-साथ शाब्दिक अर्थों में भी होता है।

मैं साइड-बाय-कोड कोड करना पसंद करता हूं, और बहुत-चौड़ी रेखाएं कठिन बनाती हैं:

http://i.stack.imgur.com/fWVuz.jpg

ट्रिपल-उद्धृत स्ट्रिंग्स वाली स्काला जैसी भाषाएं आपको रनवे खर्च के बिना कई लाइनों से एक स्ट्रिंग का निर्माण करने की अनुमति देती हैं, भद्दा उद्धरण और प्लस संकेत (जैसा कि आपके उदाहरण में देखा गया है) एक स्ट्रिंग के एक साथ भागों में शामिल होने के।


11

हां, मुझे लगता है कि प्रति पंक्ति 80 वर्ण उचित और आमतौर पर उपयोग किए जाते हैं।


6

यह मेरे लिए एक बहुत महत्वपूर्ण प्रश्न है! मैंने 13 महीने के लैपटॉप पर 7 महीने काम किया है, 24 "डेस्कटॉप मॉनिटर वाले सहकर्मियों के साथ, और मैंने पाया कि कुछ पठनीय के साथ समाप्त होने के लिए खुद को बहुत कम समय खर्च करना पड़ता है।"

बहुत से मामलों में 80 कॉलम थोड़े छोटे होते हैं (यदि आप केवल एकमात्र विकल्प vi के साथ एक टर्मिनल पर काम कर रहे हैं;) को छोड़कर, लेकिन ~ 150 से अधिक बहुत अधिक है (नीचे देखें)।

यह शुद्ध 'पठनीयता' प्रश्न के लिए है।

अब, 'अच्छा अभ्यास' भाग के लिए, मुझे अक्सर ऐसी लंबी लाइनें त्रुटिपूर्ण लगती हैं, अर्थात कुछ भाग जिन्हें अस्थायी चर में निकाला जाना चाहिए, या जिन्हें डुप्लिकेट किया गया है, उदाहरण के लिए (ObjectiveC, iPhone प्रोग्रामिंग में सामान्य स्निपेट) :

CGPoint point = CGPointMake(someOtherView.frame.origin.x + someOtherView.frame.size.width, someOtherView.frame.origin.x + someOtherView.frame.size.height);

कृपया ध्यान दें कि यह 3 आयामी वैक्टर या मेट्रिसेस के साथ काम करते समय भी नास्टियर बन सकता है।

लिखित उदाहरण:

CGRect frame = someOtherView.frame;
CGPoint origin = frame.origin;
CGSize size = frame.size;
CGPoint point = CGPointMake(origin.x + size.width, origin.x + size.height);

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


4

हर बार नहीं।

बस एक वैकल्पिक दृश्य जोड़ने के लिए, जब मैं कोड पढ़ता हूं तो मैं अक्सर यह जान सकता हूं कि कोड की लाइन पूरी लाइन को पढ़ने के बिना क्या कर रही है। यदि मैं विधि का नाम पढ़ सकता हूं, लेकिन विधि पैरामीटर स्क्रीन से दूर हो जाते हैं, तो मैं आमतौर पर उपद्रव नहीं कर सकता हूं क्योंकि मैं अकेले विधि के नाम से बता सकता हूं कि कोड की उस पंक्ति का इरादा क्या है। यदि कोड की कुछ पंक्तियाँ स्क्रीन से बाहर निकलती हैं, तो मुझे लगता है कि कभी-कभार (महत्वपूर्ण शब्द) होने का व्यापार क्षैतिज रूप से अधिक कॉम्पैक्ट कोड के लिए इसके लायक है। मुझे कभी-कभी मल्टी-लाइन सिंगल-स्टेटमेंट कोड विचलित करने वाला लगता है क्योंकि मुझे मानसिक रूप से एक साथ कोड करना होता है कि कौन सा कोड किस स्टेटमेंट के साथ जाता है।

अक्सर, कोड की पंक्तियाँ जो क्षैतिज रूप से फैलती हैं उनके बाईं ओर (महत्वपूर्ण) और दाईं ओर (ऑफ-स्क्रीन) पर कम महत्वपूर्ण बिट्स होते हैं, इसलिए मेरे लिए यह पठनीयता बढ़ाता है क्योंकि मैं कोड को नीचे की ओर स्कैन कर सकता हूं, जिसे ज्यादातर देख रहा हूं प्रत्येक पंक्ति पर महत्वपूर्ण बिट्स निम्न लाइन (एस) पर नेत्रहीन महत्वपूर्ण बाएं हाथ की जगह लेने के लिए एक बहुत लंबी लाइन से कोड के कम महत्वपूर्ण बिट होने के विकल्प के विपरीत है।

यह सब कहने के बाद, मैं निश्चित रूप से क्षैतिज रूप से बहुत बार स्क्रॉल नहीं करना चाहूंगा, लेकिन मुझे इन वाइड-स्क्रीन मॉनिटर दिनों में इस समस्या का कम पता चल रहा है।


2
मुझे नहीं पता था कि कुछ प्रोग्राम बिट्स दूसरों की तुलना में अधिक महत्वपूर्ण हैं। मैं अपनी उत्पादकता को इस तरह सुधारने की कोशिश करूंगा: केवल महत्वपूर्ण बिट्स को कोड करना।
मौविसील

1
@mouviciel, यह नहीं है कि कोड के बाईं ओर अधिक महत्वपूर्ण है, लेकिन कोड के बाईं ओर शब्दार्थ कोड के दाईं ओर से क्या करता है यह समझने में अधिक महत्व है। जैसा कि आप कोड को स्कैन करते हैं, आप अक्सर यह समझने के लिए लाइन की शुरुआत पढ़ते हैं कि यह अगले पर जाने से पहले क्या करता है।
क्रिस नाइट

1
मेरे लिए, एक विधि के लिए दिए गए तर्कों का उतना ही महत्व है जितना कि विधि के नाम का। उस जानकारी को छोड़ने से अनुमान लगता है कि कोड इसे समझने से ज्यादा क्या करता है।
मौविसील

1

हाँ यह करता है।

संयोग से एक टिप। यदि आप मल्टी-लाइन स्ट्रिंग्स के साथ एक भाषा का उपयोग कर रहे हैं (लगभग सभी स्क्रिप्टिंग भाषाएं उनके पास हैं) और लंबी एसक्यूएल सहित हैं, तो यह एसक्यूएल के लिए लगातार प्रारूपण नियमों का उपयोग करके एसक्यूएल को बहु-लाइन स्ट्रिंग में रखने में पठनीयता में मदद करता है। Http://bentilly.blogspot.com/2011/02/sql-formatting-style.html प्रारूपण शैली के लिए देखें जिसका मैं उपयोग करता हूं।


1

नहीं, यह नहीं है।

मेरे पास एक संपादक है। इतना ही नहीं इसमें लाइन रैप होता है, इसमें लाइन रैप इंडेंटेशन होता है , जो (अगर स्क्रीन 100 वर्ण चौड़ी है तो)

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

के रूप में प्रकट करने के लिए

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut 
    labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    laboris nisi ut aliquip ex ea commodo consequat.

या जो भी इंडेंटेशन स्तर वर्तमान भाषा के लिए डिफ़ॉल्ट रूप में सेट किया गया है।

मेरी स्क्रीन की तुलना में व्यापक लाइनें कभी भी कोड को कम पठनीय बनाम मैन्युअल रूप से लाइन-रैप-इंडेंट कोड नहीं बनाती हैं।

संपादित करें: ooooh, मुझे पता था कि यह उत्तर अलोकप्रिय होगा :)


2
आपके लिए अच्छा हैं। लेकिन अगर आप एक संपादक को स्विच करना चाहते हैं, तो यह फीचर क्या नहीं होगा?

1
@dunsmoreb: आप किसी संपादक पर स्विच क्यों करेंगे, जो इतना पुराना है कि यह वर्ड रैप का भी समर्थन नहीं करता है (जब तक कि आप तीस साल पहले लिखे सोर्स कोड पर काम नहीं करते हैं और एक विरासत मंच पर काम करते हैं, जहां आपके पास सही विकल्प नहीं है संपादक)?
Arseni Mourzenko

मेनमा, मैं आपकी लाइन रैप इंडेंटेशन फीचर की बात कर रहा हूं।

@dunsmoreb: निष्पक्ष होना, यहां तक ​​कि सिर्फ शब्द लपेटना काफी अच्छा है यदि लंबी लाइनें असामान्य हैं
amara

7
सिर्फ इसलिए कि आपका संपादक एक लाइन लपेट सकता है, इसका मतलब यह नहीं है कि यह पठनीयता के लिए सबसे तार्किक जगह है।
क्रैज

0

निश्चित रूप से है। एक कारण है कि समाचार पत्र और पत्रिकाएं कॉलम का उपयोग करते हैं। पठनीयता एक महत्वपूर्ण कारक है। पढ़ते समय हमारी आँखें अपेक्षाकृत कम साइड से साइड मूवमेंट से स्कैन होती हैं। प्रभाव यह है कि हम अपनी आंखों को स्कैन करने की अनुमति देते हैं कि हम क्या पढ़ रहे हैं।

स्क्रीन वाइड कॉलम पर दिखाई देने पर भी हमारी आंखें तेजी से आगे और पीछे स्कैन करने के लिए मजबूर करती हैं। वापस स्कैन करते समय हम वास्तव में कुछ भी समझ नहीं पाते हैं। यह पढ़ने और समझने की गति को धीमा कर देगा। प्रभाव पुराने यांत्रिक प्रिंटर के समान है। गाड़ी के लिए समय की अनुमति देने के लिए या अगली पंक्ति के लिए प्रिंट करने के लिए प्रिंट करने के लिए प्रिंट करने के लिए अक्सर कई शून्य वर्ण सम्मिलित करने की आवश्यकता होती है।

इसके अतिरिक्त, ऊर्ध्वाधर लेआउट आमतौर पर लाइन पर सामग्री के समूहीकरण को स्पष्ट करने के लिए किया जाता है। यह आमतौर पर केवल यौगिक तर्क स्थितियों पर लागू होना चाहिए। बयानों की एक श्रृंखला के रूप में लंबे सूत्र बेहतर संरचित हो सकते हैं। (ऑप्टिमाइज़र किसी भी अतिरिक्त ओवरहेड को ठीक कर देगा, और कुछ ऑप्टिमाइज़र जटिल सूत्रों पर खराब प्रदर्शन करेंगे या प्रदर्शन करेंगे।)

बड़ी लाइनों की आवश्यकता वाले कई डॉट्स वाले पहचानकर्ता कोडिंग तकनीकों को इंगित करते हैं जिन्हें ठीक किया जाना चाहिए।


0

माउज़-व्हील्स को ऊर्ध्वाधर रूप से तेजी से स्क्रॉल करना आसान बनाता है ... क्षैतिज रूप से स्क्रॉल करना तुलना में बहुत महंगा है।


0

क्षैतिज स्क्रॉलिंग से बचें।

~ विंडोज यूजर एक्सपीरियंस इंटरेक्शन गाइडलाइन्स पृष्ठ 112

हाँ।

अंग्रेज लगातार बाएं से दाएं पढ़ते हैं जिसके परिणामस्वरूप लगातार स्क्रॉलिंग हो सकती है

इस कारण से मैं हमेशा अपने आईडीई में विज़ुअल लाइन ग्लिफ़ के साथ वर्ड रैप को सक्षम करता हूं।

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