वर्डप्रेस कोड "स्पेस-हैप्पी" क्यों है?


22

WP कोर, कई WP प्लगइन्स, और WP कोडिंग मानक स्वयंSpace चरित्र का एक बहुत "उदार अनुप्रयोग" का उपयोग करते हैं (इंडेंटेशन के लिए नहीं, बल्कि परेंस और ब्रैकेट के "अंदर")। यह Wordpress के लिए अद्वितीय प्रतीत होता है - यह शैली / दर्शन अन्य समान परियोजनाओं, PHP या अन्यथा में मौजूद नहीं लगता है।

इस दृष्टिकोण की अधिक जानकारी के लिए, देखें: https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

उदाहरण: foreach ( (array) $foo as $bar ) { ...

मैं पहले, बाद में (, और अंतिम से पहले )(और ऊपर दिए गए लिंक पर "अंतरिक्ष उपयोग" में दिखाए गए अन्य समान रिक्त स्थान) से पहले , अंतरिक्ष की चर्चा कर रहा हूं ।

यह शैली मुझे अनावश्यक लगती है - इसके लिए अधिक टाइपिंग की आवश्यकता होती है और (राय) पार्सिंग कोड को नेत्रहीन रूप से अधिक कठिन बना देता है। (/ राय)

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

यहाँ छवि विवरण दर्ज करें

एमके सफी के प्रश्न के उत्तर आवश्यक रूप से दिए गए हैं:

  1. पठनीयता के लिए
  2. यथास्थिति (उर्फ "बस यही तरीका है")

पूछने का मेरा तर्क यह है कि मैं व्यक्तिगत रूप से हमारे आंतरिक-केवल परियोजनाओं में WP कोडिंग मानकों ("अंतरिक्ष उपयोग" के बारे में) को अपनाने में बहुत अधिक मूल्य नहीं देखता हूं। हालांकि, अगर मैं कुछ याद कर रहा हूं तो मैं उत्सुक हूं।

Wordpress के "स्पेस यूसेज" स्टाइल को फॉलो करने के लिए क्या कोई कारण है जो ऊपर सूचीबद्ध दो से अधिक है, ओस्टेंसिकली वैलिड है या नहीं?


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

आपकी टिप्पणी के लिए धन्यवाद, @TomJNowell! मुझे लगता है कि शायद मैंने अपने "प्रश्न" में गलत व्याख्या की है - मैं मांग के लिए टैब / रिक्त स्थान के बारे में कम पूछ रहा हूं, और make.wordpress.org/core/handbook/coding-standards/php पर "अंतरिक्ष उपयोग" के तहत उल्लिखित नियमों के बारे में और अधिक /… । क्षमा करें, मैं अधिक स्पष्ट नहीं था!
रिनोगो

5
जब आपके पास सिंटैक्स हाइलाइटिंग नहीं है तो पढ़ना आसान है। कम से कम मैं आंतरिक परियोजनाओं में उस शैली का उपयोग क्यों कर रहा हूं। मुझे अक्सर एक न्यूनतम कॉन्फ़िगरेशन में vi के साथ सादे कंसोल में PHP को संपादित करना पड़ता है।
FUXIA

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

1
@rinogo मुझे पता है, टिप्पणी को कभी-कभी टिप्पणी नहीं कर रहे हैं, न उत्तर देता है :)
टॉम जम्मू नॉवेल

जवाबों:


13

Resoning

"व्हाइट स्पेस" के बारे में (भले ही टैब या स्पेस कोई फर्क नहीं पड़ता): यह बस एक व्यक्तिगत प्राथमिकता है जो परियोजना के साथ फंस गई है।

WP कोडिंग मानकों imo एक गड़बड़ है और इसे अनदेखा किया जा सकता है - जब तक आप कोर में योगदान नहीं दे रहे हैं, जो है

  • एक अलग कहानी और
  • स्टाइल गाइड को वहां भी नजरअंदाज कर दिया जाता है।

"[...] यह पुराने कोड पर पूर्वव्यापी रूप से लागू नहीं किया गया है क्योंकि यह svn / git के इतिहास को उपयोग करने के लिए बहुत मुश्किल है। आधिकारिक नीति यह है कि नए कोड को स्टाइल गाइड का पालन करना चाहिए, लेकिन यदि आप आसन्न कोड को सही ढंग से प्रारूपित करते हैं। तो यह हो सकता है, लेकिन पैच केवल प्रारूप कोड, या केवल प्रारूप कोड निषिद्ध है कि प्रतिबद्ध है। "

- @TomJNowell कमेंट में

वैकल्पिक

आप PSR मानकों (अर्थात्: 2) या सिम्फनी मानकों (या सिर्फ अपने) जैसे सामान के साथ चिपके रहना बेहतर है ।

प्रदर्शन में वृद्धि और उपकरण

कोई लाभ नहीं है जो आपको एक कोडिंग मानक (एक हिस्से को साझा करने से अलग और अल्पसंख्यक जो इसे नफरत करता है, जबकि बाकी इसे तय करता है) या अधिक या कम टैब या रिक्त स्थान होने से प्राप्त करता है। यदि आप अनावश्यक डिस्क स्थान या शायद धीमी कार्यक्रमों के बारे में चिंतित हैं, तो आप अभी भी अपनी कोड ( GitPHPHooks परियोजना देखें ) को संपीड़ित कर सकते हैं। आपको जो लाभ होगा वह मूल फ़ाइल स्थान से अधिकतम 5% के आसपास होगा , जो HTML सिंटैक्स संपीड़न / minification आपको देता है, उससे बहुत अधिक है। उस के लिए npm के माध्यम से उपलब्ध Node.js लघु उपकरण उपलब्ध हैं।

क्या मैं व्यक्तिगत रूप से वास्तव में मददगार पाया जा रहा है PHP लाइनर और _PHP मेस डिटेक्टर है। मैंने GitPHPHooks लाइब्रेरी में दोनों को शामिल किया, इसलिए मुझे इसे चलाने के बारे में सोचने या देखभाल करने की आवश्यकता नहीं है।


शैली गाइड को कोर के लिए नजरअंदाज नहीं किया जाता है, लेकिन यह पुराने कोड पर रेट्रो में लागू नहीं किया जाता है क्योंकि यह svn / git के इतिहास को उपयोग करने के लिए बहुत कठिन बनाता है। सरकारी नीति है कि नए कोड स्टाइल गाइड का पालन करना चाहिए, लेकिन यदि आप सही ढंग से सटे कोड फ़ॉर्मेट करने के लिए होता है तो तो ठीक है, लेकिन है पैच है कि केवल प्रारूप कोड, या करता है कि केवल प्रारूप कोड निषिद्ध हैं
टॉम जम्मू नॉवेल

@TomJNowell और इसलिए स्टाइल गाइड को बेकार बनाता है :) वैसे भी, कृपया एक संपादन फ़ाइल करें और उत्तर में जोड़ें। यह उल्लेखनीय जानकारी है।
kaiser

मुझे लगता है कि मैं अपने प्रश्न में स्पष्ट नहीं था - मैं रिक्त स्थान बनाम टैब का कम से कम उल्लेख कर रहा हूं, और make.wordpress.org/core/handbook/coding-standards/php/… पर "स्थान उपयोग" के लिए और अधिक । मैं प्रश्न को स्पष्ट करने के लिए संपादित करूंगा।
रिनोगो

1
@ श्रीमान मैं आपको पहली बार मिला, इसलिए पहला पैराग्राफ। Btw, मैं इसे और अधिक पठनीय मानता हूँ।
केसर

7

डॉट्स के बाद रिक्तियाँ सामान्य हैं, जैसे $baz . '-5', इस शैली का उपयोग ऑपरेटरों ( y + z) के लिए कई कोडिंग मानकों में किया जाता है ।

यह पठनीयता में सुधार करने के लिए किया जाता है, उदाहरण के लिए इनमें से एक दूसरे की तुलना में अधिक पठनीय है।

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

अन्य "कोड" से घिरे होने पर यह और भी स्पष्ट हो जाता है।

कोष्ठक के आसपास रिक्त स्थान के लिए ( 1, 2, 3 )मुझे कोई पता नहीं है, मुझे लगता है कि तर्क पठनीयता के लिए भी है।

यह भ्रामक हो सकता है क्योंकि वर्डप्रेस मानकों में स्वयं को कमेंट में कोष्ठकों के साथ उदाहरण हैं जिनके पास रिक्त स्थान नहीं है और कोडबेस स्वयं कुछ भागों के साथ भ्रमित कर रहा है जिसमें रिक्त स्थान और अन्य नहीं हैं (नीचे स्क्रीनशॉट देखें) समान फ़ंक्शन के भीतर भी।

अधिकांश PHP मानक वास्तव में .. के लिए एक कॉल विपरीत करते हैं, कोष्ठक को अपनी सामग्री को गले लगाना चाहिए। वास्तव में अन्य भाषाओं के लिए अधिकांश कोडिंग मानक इसे लिखते हैं: (1, 2, 3)तो यह एक रहस्य है कि WP इस तरह से क्यों करता है।

एक वर्डप्रेस फ़ंक्शन से तुलना करने के लिए यहां एक उदाहरण है।

यहाँ छवि विवरण दर्ज करें

तुलना करने के लिए बड़ा संस्करण: http://i.imgur.com/nTEbV7v.jpg

मैं विशेष रूप से कोड की एक पूर्ण स्क्रीन को देखते हुए दाईं ओर वाले को पसंद करता हूं, लेकिन यह एक व्यक्तिगत प्राथमिकता है।


आपके उत्तर के लिए धन्यवाद! .रिक्ति, मेरे लिए समझ में आता है के रूप में ., वास्तव में सिर्फ एक द्विआधारी ऑपरेटर है जैसे +या -। कोष्ठक पर आपके विचार उनकी सामग्री को "गले लगाना" है, यही कारण है कि मैंने यह सवाल पूछा। यह व्यवहार, वर्ग कोष्ठक के लिए उन जैसे भी weirder नियमों के साथ (WP उपयोग करने के लिए कहते हैं $foo['bar']और $foo[ $bar ]कर रहे हैं वास्तव में क्यों मैं इस प्रश्न पूछा)। :)
रिनोगो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.