tabs और spaces जैसी पुरानी बहसें तो हैं ही, लेकिन इस बार सवाल whitespace डालने के बारे में है.
उदाहरण के लिए, मान लीजिए नीचे जैसा code है.
तब कुछ लोग from और बराबर के चिन्ह को एक ही column में align करके लिखते हैं, और कुछ लोग नहीं.
// Case A.
import potato from 'potato';
import sweetpotato from 'sweetpotato';
const red = 0xff0000;
const orange = 0xff8000;
// Case B.
import potato from 'potato';
import sweetpotato from 'sweetpotato';
const red = 0xff0000;
const orange = 0xff8000;
इन दोनों cases में से आपको कौन-सा पसंद है, comment में बताइए.
सबसे बढ़कर, मुझे यह जानने की जिज्ञासा है कि क्या इन styles के लिए कोई अलग नाम भी है.
- मैं A को पसंद करता/करती हूँ.
- मैं B को पसंद करता/करती हूँ.
- मुझे X पसंद है, लेकिन company में Y इस्तेमाल होता है (...)
10 टिप्पणियां
मुझे B पसंद है और कंपनी में भी B का इस्तेमाल होता है।
मैं ज़्यादातर A को पसंद करता हूँ.
लेकिन कभी-कभी 10 लाइनों से ज़्यादा के constants और variables को define करते समय बहुत कम मामलों में इसका उपयोग करता हूँ.
मैं A को पसंद करता हूँ। अगर B को convention के तौर पर तय न किया गया हो, तो collaboration के समय वह असुविधाजनक लगता है।
मैं A को पसंद करता हूँ।
कभी-कभी मैं दूसरे लोगों द्वारा लिखा हुआ B-style कोड देखता हूँ, और हर बार उसकी readability काफ़ी अच्छी लगती है, इसलिए वह प्रभावशाली लगता है। लेकिन B में लिखें तो formatter और linter बहुत हंगामा करते हैं, इसलिए मैंने लगभग कभी B में लिखकर नहीं देखा। थोड़ा लिखना झंझट भरा भी लगता है।
कभी-कभी मैं B स्टाइल इस्तेमाल करता हूँ, लेकिन कोड को tab stop की पोज़िशन के हिसाब से लिखता हूँ।
मुझे यह खास पसंद नहीं है, क्योंकि इसमें diff बेवजह दूसरी लाइनों तक फैल जाने की कमी होती है.
बेशक white space ignore diff देखा जा सकता है, लेकिन इसे दूसरे काम करने वालों या code reviewers पर भी थोप नहीं सकते..
ज़्यादातर मामलों में मैं A को पसंद करता हूँ.
कोड लिखते समय सिर्फ़ एक बार मुझे लगा कि B जैसी स्थिति बेहतर है। वह ऐसा कोड था जिसमें बाहरी DLL के साथ integration की ज़रूरत थी, और उस DLL में इस्तेमाल होने वाले विभिन्न constant values को define करने वाले हिस्से में readability के लिए मैंने B जैसी पद्धति का उपयोग किया था.
बेशक, उस integration code में ज़्यादा बदलाव होने की संभावना नहीं थी, इसलिए एक बार लिखने के बाद उसे छूने की ज़रूरत नहीं पड़ी—यह भी B जैसी पद्धति चुन पाने का एक कारण था। अगर वह अक्सर बदलने वाला कोड होता, तो मैं जहाँ तक संभव होता A पद्धति पर ही कायम रहता.
मैं भाषा-आधारित formatter की auto-formatting को पसंद करता/करती हूँ!
(आमतौर पर A, लेकिन लगता है golang का gofmt मैंने B पर रखा था।)
A!
B स्टाइल के लिए अलग formatter न हो तो उसे maintain करना काफ़ी मुश्किल होता है, और font के हिसाब से alignment भी बिगड़ सकता है...