अनुवाद AirBnB स्टाइल गाइड



हम, बाकी सभी लोगों की तरह, शुरू में विकास में कोड लिखने के लिए मानकों का उपयोग करते थे, लेकिन वास्तव में वे कुछ इस तरह से सीमित थे:

- क्या आप ऊंट में लिखते हैं?
- हां, हमेशा की तरह, एक ऊंट में
... दो हफ्ते हो गए ...
- ठीक है, हम एक ऊंट में सहमत हुए !!!


हमारे मामले में, शायद अंतिम वाक्यांश नहीं था।
लंबे समय से मैं किसी तरह इसे व्यवस्थित करना चाहता था, लेकिन मेरे हाथ jQuery, Google, ideomatic.js और Crockford से शैलियों के बीच विकल्प तक नहीं पहुंचे।

जब AirBnB नेतृत्व एक महीने पहले की तुलना में थोड़ी अधिक मात्रा में ट्रेंडिंग में आया, तो इसने तुरंत हमारी आंख पकड़ ली ...
एक हफ्ते पहले, हमने इसे मुख्य रूप से अपनी आवश्यकताओं के लिए अनुवादित किया , लेकिन समुदाय के साथ साझा नहीं कर सके।

मैं अत्यधिक सभी नौसिखिया जेएस डेवलपर्स को कम से कम पढ़ने की सलाह देता हूं।


यह अन्य पुस्तिकाओं से इतना अलग कैसे है, और इसने हमें कितना आकर्षित किया?
तथ्य यह है कि यह न केवल यह बताता है कि कोड को शैलीगत रूप से कैसे स्टाइल किया जाए, बल्कि यह बताता है कि जावास्क्रिप्ट में सही ढंग से कैसे लिखा जाए। यह न केवल JSLint के लिए दिशा-निर्देशों की एक सूची है, बल्कि एक अच्छी तरह से लिखना शुरू करने के लिए एक मंच: यह पाठ, जो एक घंटे में सोच समझकर पढ़ा जा सकता है, प्रशिक्षुओं को परीक्षण के एक दिन की तुलना में जावास्क्रिप्ट की अधिक समझ देता है और वरिष्ठ साथियों को प्रश्न और प्रश्न देता है।

डिज़ाइन के बारे में, यह मार्गदर्शिका "लोकप्रिय" विकल्पों का उपयोग करती है।
उदाहरण:
2 स्पेस टैब का उपयोग Google, npm, Node.js, Idiomatic में भी किया जाता है
हमेशा एक अर्धविराम का उपयोग करें, जैसे कि Google, Node.js, Crockford में
एक संस्करण में झूलते हुए अल्पविराम के साथ वैरिएबल घोषित करना, जैसा कि मुहावरेदार, jQuery में
दिलचस्प है, यहां तक ​​कि एक समान क्षण यहां भी संकेत दिया गया है:
उन चरों को घोषित करें जिन्हें अंत में मान नहीं दिया गया है। यह तब सुविधाजनक है जब आपको पहले से ही दिए गए मूल्यों के आधार पर इनमें से किसी एक चर का मान निर्धारित करने की आवश्यकता है।

चर के लिए camelCase - जैसे Google, npm, Node, Idiomatic में
उसी समय, यह मार्गदर्शिका स्पष्ट रूप से इंगित करती है:
ऑब्जेक्ट्स, फ़ंक्शंस और वेरिएबल्स के नाम के लिए कैमलकेस का उपयोग करें
क्लास कंस्ट्रक्टर्स के नाम के लिए PascalCase का इस्तेमाल करें।


कुछ बिंदु स्पष्ट और स्पष्ट रूप से स्पष्ट हैं, उदाहरण के लिए:

वस्तुओं के अंत में अतिरिक्त अल्पविराम: कोई नहीं। यह संगतता मोड में IE6 / 7 और IE9 के साथ समस्याएं पैदा कर सकता है। कुछ ईएस 3 कार्यान्वयन में, सरणी के अंत में अल्पविराम इसकी लंबाई 1 से बढ़ाता है, जिससे समस्याएं हो सकती हैं। यह प्रश्न केवल ES5 (मूल) में स्पष्ट किया गया था:

ECMAScript 5 संस्करण अनायास ही इस तथ्य को स्थापित करता है कि ArrayInitialiser के अंत में अल्पविराम को सरणी की लंबाई नहीं बढ़ानी चाहिए। यह ECMAScript 3 संस्करण से एक गैर-अर्थ परिवर्तन है, लेकिन कुछ कार्यान्वयन ने पहले इस समस्या को गलत तरीके से हल किया।


दायरे के भीतर चर और कार्यों की घोषणाओं के "सरफेसिंग" के तंत्र को स्पष्ट रूप से समझाया गया है।
एक अनाम फ़ंक्शन की घोषणा स्वयं चर को दायरे के शीर्ष पर उठाती है, लेकिन इसका मूल्य नहीं।
नामांकित फ़ंक्शंस चर को दायरे के शीर्ष पर ले जाते हैं, लेकिन इसके मूल्य नहीं। फ़ंक्शन का नाम चर के दायरे में उपलब्ध नहीं है और केवल अंदर से सुलभ है।
फ़ंक्शन घोषणाएँ वर्तमान दायरे के शीर्ष पर नाम और इसके अर्थ दोनों को बढ़ाती हैं।


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

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

यहां व्यस्ततम के लिए सामग्री का त्वरित सारांश दिया गया है:


हमने अपने दम पर कुछ व्याख्यात्मक ब्लॉक जोड़े और एक परिवर्तन किया: मूल ने // FIXME और // TODO टिप्पणियों का उपयोग करने का सुझाव दिया, लेकिन IDE और कोड संपादक आमतौर पर केवल // TODO को उजागर करते हैं, इसलिए // FIXME के ​​बजाय इसका उपयोग करने का सुझाव दिया गया है: TODO FIXME स्वचालित रूप से उत्पन्न सूचकांक पर आसान नेविगेशन के लिए।

बस के मामले में, मैं लिंक की नकल:

Source: https://habr.com/ru/post/In204848/


All Articles