VCS का उपयोग करते समय कोडिंग कोड एक बुरी चीज है?


24

इससे पहले कि मैं इसे ठीक से कर पाऊं, इसके लिए मैं हमेशा अपने कोड को प्रारूपित करता हूं। मेरी अधिकांश टीम वास्तव में परवाह नहीं करती है और हमेशा अपने कोड को ठीक से प्रारूपित नहीं करती है (छोटी चीजें जो कोड को प्रभावित नहीं करती हैं लेकिन इसे बनाए रखने की कोशिश करते समय पठनीयता को प्रभावित करती हैं)।

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

इसलिए मैं पूछता हूं, क्या वास्तव में कोड को वास्तव में खराब करना है? क्या उनकी चिंताएं यह सुनिश्चित करने से अधिक वैध हैं कि कोड पठनीय है?


8
वह सही है, इसलिए सभी टीम को फॉर्मेट-ऑन-सेव टूल का भी उपयोग करने के लिए नहीं मिलता है, तो आप सभी को अच्छी तरह से स्वरूपित कोड मिलेगा जो पढ़ने में आसान है, और देखने में आसान है।
gbjbaanb

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

7
कोड का स्वरूपण उतना ही महत्वपूर्ण है जितना कि बदलाव किए गए थे। जब आप किसी टीम में हों, तो पठनीयता को सर्वोच्च प्राथमिकताओं में से एक होना चाहिए। आपके वीपी को पता होना चाहिए और इसके बारे में चिंतित होना चाहिए।
एडगर गोंजालेज

@ एडगर: +1। वीपी को बहुत ज्यादा पसंद किया जा रहा है। पहले पठनीयता ... और एक व्हाट्सएप इग्नोर विकल्प का मतलब है कि यह कोई बड़ी बात नहीं है। और इसका मतलब यह भी है कि बड़ी समस्या है क्योंकि टीम के बाकी खिलाड़ी परवाह नहीं करते हैं। वीपी को इसके बारे में अधिक चिंतित होना चाहिए।
जल्‍दी से जल्‍दी_जुन

जवाबों:


41

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

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


यदि आप पहले कई संशोधनों से बदलावों की तुलना करना चाहते हैं, तो यह अभी भी मदद नहीं करता है, लेकिन कोड परिवर्तन + प्रारूप 1 में परिवर्तन से बेहतर है। बेशक, यह उत्तर भी रिफैक्टिंग पर लागू होता है।
gbjbaanb

1
+1: इसके अलावा, यह स्टाइलकॉप या किसी अन्य उपकरण की तरह कुछ का उपयोग करने के लिए अच्छा है जो ऑटोफ़ॉर्मेट करता है और शैली को लागू करता है। फिर, टीम के सभी सदस्यों के बीच सेटिंग्स को सिंक्रनाइज़ करें ताकि फ़ॉर्मेटिंग सभी के अनुरूप हो और आपको "सही" प्रारूप नियम याद रखने की आवश्यकता नहीं है।
रयान हेस

3
यदि ओपी को एक दस्तावेज़ को प्रारूपित करने की कोशिश के लिए फटकार लगाई गई थी, तो कुछ ने मुझे बताया कि वह स्टाइलकॉप का उपयोग करने का सुझाव नहीं दे पाएगा।
वेन मोलिना

3
@ जीबीजैनब: हां। यही कारण है कि शुरुआत में इस तरह के निर्णय लेने के लिए सबसे अच्छा है। अब मैं जिस प्रोजेक्ट पर हूं, उसमें ग्रहण फॉर्मेटर सेटिंग्स को रिपॉजिटरी में चेक किया गया है ताकि हमें पता चले कि सभी की सेटिंग एक जैसी है।
अनहेल्स्लेमर

1
@quickly_now: यही कारण है कि हमारे पास वीटो अधिकार वाले प्रबंधक हैं। यदि लोग सहमत नहीं हो सकते, तो वे निर्णय ले सकते हैं।
अनहेल्स्लेमर

29

नहीं, स्वरूपण कोड बहुत महत्वपूर्ण है । हालांकि, कमिट दो समूहों में किया जाना चाहिए:

  1. कॉस्मेटिक परिवर्तन - कुछ भी जो कोड को अधिक पठनीय बनाता है।
  2. अन्य परिवर्तन - बाकी सब कुछ जो कोड को प्रभावित करता है।

यह दर्शाने के लिए प्रतिबद्ध संदेश का उपयोग करें कि केवल सौंदर्य प्रसाधन बदल दिए गए हैं। अधिक पर्याप्त संशोधनों की खोज करने पर इन्हें आसानी से छोड़ दिया जा सकता है।


3
इसके अतिरिक्त, अपनी टीम के बीच एक निश्चित प्रारूपण सम्मेलन पर निर्णय लेना भी एक अच्छा अभ्यास है। पहले इस पर चर्चा किए बिना अन्य लोगों से कोड प्रारूप न करें।
स्टीवन ज्यूरिस

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

10

आप दोनों के पास एक बिंदु है, लेकिन आप दोनों को वही मिल सकता है जो आप चाहते हैं। कोड को पहले प्रारूपित करें, केवल उस परिवर्तन में जांचें। इसके बाद, अपने कार्यात्मक परिवर्तन करें और जांचें कि दूसरे चरण के रूप में।


3
मुझे लगता है कि यह आपकी वर्तमान स्थिति के लिए सबसे अच्छा समाधान है, लेकिन आपको अपनी टीम के साथ इसके बारे में बात करनी चाहिए। हालांकि, आपके पास एक बड़ी समस्या है, जो एक कोडिंग मानक की कमी है।
थॉमस ओवेन्स

2
माना। मुझे आश्चर्य है कि अगर ओपी का वातावरण उन चरवाहों स्थानों में से एक है जहां मानकों को "क्रैंक चीजों को जल्दी से बाहर" करने के लिए बचा लिया गया है।
वेन मोलिना

4

मैं एक प्रारूपण नाइट-पिकर भी हूं, इसलिए यहां कुछ सुझाव दिए गए हैं:

  • आवश्यक पहला कदम: टीम को कुछ बुनियादी स्वरूपण मानक, जैसे टैब बनाम रिक्त स्थान, ब्रेस पोजीशन, टिप्पणी शैली आदि पर सहमत होने के लिए प्राप्त करें। अब आपके स्वरूपण परिवर्तन सभी के लिए पूर्ण आश्चर्य नहीं होंगे, और आप कदम नहीं उठाएंगे किसी भी पैर की उंगलियों पर।

  • केवल आपके द्वारा परिवर्तित किए गए कोड के आसपास स्वरूपण को साफ़ करें। यदि आप केवल एक फ़ंक्शन में परिवर्तन करते हैं, तो उस फ़ंक्शन को साफ़ करें। कम से कम समय में आपके पास बेहतर दिखने वाला कोड होगा।

  • कोई अन्य कोड परिवर्तन के साथ एक अलग कमिट के रूप में ओवरहालिंग को प्रमुख स्वरूपित करें। जब आप बदलाव से पहले कोड की तुलना करना चाहते हैं, तो इसकी तुलना कम से कम तब की जानी चाहिए, जब आप इस तरह से एक अंतर की तुलना कर सकते हैं, जो कष्टप्रद हो सकता है। मैं आमतौर पर उस कोड पर प्रमुख विकास से पहले पहली चीज के रूप में क्लीनअप करता हूं।

  • एक अच्छा अंतर उपकरण प्राप्त करें जो महत्वपूर्ण परिवर्तनों और गैर-महत्वपूर्ण परिवर्तनों की भाषा-निर्भर मार्किंग कर सकता है। मेरा पसंदीदा अंतर बहुत परे है एक रंग में वास्तविक कोड परिवर्तन की तुलना करें और व्हाट्सएप / टिप्पणी केवल दूसरे में अंतर करें।

एक और टिप के लिए संपादित करें:

  • यह भाषा को भाषा में बदलता है, लेकिन कोड के लिए वास्तव में कॉस्मेटिक परिवर्तनों के लिए, आपको एक प्रमुख सफाई से पहले और बाद में संकलित बायनेरिज़ की तुलना करने में सक्षम होना चाहिए, यह सुनिश्चित करने के लिए कि आपने इसे नहीं किया है।

जब तक आप बाइनरी में कुलपति टैग शामिल नहीं करते हैं (या जानकारी बनाएँ)।
वेटिन

2

जब तक आप अन्य लोगों के कोड में परिवर्तन दोबारा नहीं करेंगे, तब तक आपको प्रारूपण और संशोधन नहीं करना चाहिए:

  • आप टीम कोडिंग मानकों को स्थापित करने के लिए प्रबंधक हैं
  • आपके प्रबंधक ने आपको टीम कोडिंग मानकों का पालन करने के लिए कोड को साफ करने के लिए कहा है
  • आपकी टीम कोडिंग मानकों का पालन करने के लिए आपकी टीम के किसी डेवलपर से कोड साफ़ नहीं कर रही है।

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


"उनकी पीठ के पीछे": यह कोड स्वामित्व (या विकास टर्फ युद्ध) के मनोवैज्ञानिक मुद्दों पर वापस जाता है।
रोंगोंग

2
"अन्य लोगों का कोड" यह कहने का एक दिलचस्प तरीका है। मैं अपनी कंपनी के उत्पाद पर काम करता हूं, मेरी कंपनी के मालिक के कोड से संकलित किया गया है, जो मेरी टीम के सदस्यों और मैं काम करते हैं। इस पर काम करते समय मानकों को ठीक करने के लिए यह किसी भी तरह से उनकी पीठ के पीछे नहीं है। हालाँकि, मैं इस बात से सहमत हूँ कि मूल समाधान मूल डेवलपर को मानक तक साफ करने के लिए है।
कालेब हित्त - cjhuitt

@ कालेब: मुश्किल हो जाता है अगर वे बस बाहर फ्लैट मना कर दिया।
जल्‍दी से जल्‍दी_जुन

"अन्य लोगों के कोड" से मेरा मतलब स्वामित्व नहीं है, मेरा मतलब है कि उन्होंने कुछ लिखा है और उनका मानना ​​है कि वे अभी भी समर्थन के लिए जिम्मेदार हैं। कोडिंग मानकों की अनुपस्थिति में, अगर मैं एक वर्ग को 1,000 लाइनों के कोड के साथ कार्यान्वित करता हूं और आप कुछ व्यवहार को सुधारने के लिए 2 लाइनों में बदलाव करते हैं और पूरी फाइल को सुधारते हैं, तो जब मैं फाइल खोलता हूं तो मुझे बहुत आश्चर्य होगा। एक टीम के सदस्यों के रूप में हमें एक दूसरे के साथ ऐसा नहीं करना चाहिए। यदि आप उस फ़ाइल को पूर्ण सुधार के साथ जाँचते हैं और मुझे एक हेड अप भी नहीं देते हैं, तो यह टीम के अनुकूल नहीं है।
cdkMoose

ओप्स मूल चर्चा में, मैंने पढ़ा कि कोडिंग मानकों (या अच्छी तरह से लागू किए बिना) के लिए एक वातावरण होना चाहिए, यही कारण है कि मैंने इस तरह का उत्तर दिया। उस वातावरण में, एक डेवलपर को अपने मानकों को दूसरों पर नहीं थोपना चाहिए।
cdkMoose
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.