रिपोर्ट के माध्यम से जाने के एक घंटे के बाद मैं निम्नलिखित सूची के साथ आया, यह मेरे विचार से सभी के लिए उपयोगी हो सकता है।
जैसे ही मुझे और चेतावनियाँ / त्रुटियाँ मिलेंगी, मैं इसे अपडेट रखने की कोशिश करूँगा:
चेतावनी
80 से अधिक वर्णों की रेखा; एक्स अक्षर शामिल हैं
या
लाइन 100 वर्णों की अधिकतम सीमा से अधिक है; एक्स अक्षर शामिल हैं
उन लोगों में से एक हैं जिन्हें मैंने सबसे अधिक देखा है, वे स्वयं व्याख्यात्मक हैं, एक साफ और पठनीय कोड रखने के लिए कोडिंग लाइनों को छोटा रखना एक अच्छा अभ्यास है।
फ़ंक्शन कॉल में अल्पविराम के बाद कोई स्थान नहीं मिला
आपने एक फ़ंक्शन कहा है जो पैरामीटर प्राप्त करता है और अल्पविराम के बाद एक स्थान नहीं जोड़ता है। उदाहरण: strrchr($bla,".")
होना चाहिएstrrchr($bla, ".")
अपेक्षित "" जबकि (...) {\ n \ "; पाया \ "जबकि (...) \ n {\ n \"
अपेक्षित \ "फॉर्च्यूनर (...) {\ n \"; पाया \ "foreach (...) \ n {\ n \"
अपेक्षित \ "अगर (...) {\ n \"; पाया \ "अगर (...) \ n {\ n \"
अपेक्षित \ "} और {\ n \"; पाया \ "} \ n और {\ n \"
इसका मतलब है कि आप उन PHP कथनों के उद्घाटन ब्रैकेट से पहले एक पंक्ति में लौट आए हैं।
एक / अन्य विवरण के साथ एक खराब सिंटैक्स का उदाहरण:
if (true)
{
}
else
{
}
होना चाहिए
if (true) {
} else {
}
समापन कोष्ठक और मल्टी-लाइन फ़ंक्शन घोषणा का प्रारंभिक ब्रेस एक ही पंक्ति पर होना चाहिए
ज्यादातर समय, यह कंस्ट्रक्टर में होता है जहां आप कुछ इस तरह की घोषणा करते हैं:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
जबकि यह होना चाहिए:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
पंक्ति वर्ण का अंत अमान्य है; अपेक्षित \ "\ n \" लेकिन मिला \ "r \ n \"
फ़ाइल की शुरुआत में ज्यादातर समय होता है, यह उस तरह से होता है जिस तरह से आपका आईडीई रिटर्न चरित्र को एन्कोड करता है।
वेरिएबल \ "your_variable \" वैध ऊंट कैप्स प्रारूप में नहीं है
प्रत्येक चर को ऊंट कैप प्रारूप का उपयोग करना चाहिए, इसलिए $your_variable
होना चाहिए$yourVariable
चर \ "वन 2 थ्री \" में नंबर होते हैं लेकिन यह हतोत्साहित किया जाता है
अपने चर में संख्याओं के उपयोग से बचें
इनलाइन नियंत्रण संरचनाओं की अनुमति नहीं है
आपको इनलाइन नियंत्रण संरचनाओं का उपयोग नहीं करना चाहिए जैसे:
else $test = true;
आपको उपयोग करना चाहिए:
else {
$test = true;
}
परिभाषा के बाद एक वर्ग का ओपनिंग ब्रेस लाइन पर होना चाहिए
कक्षा घोषित करते समय आपने एक पंक्ति लौटा दी है:
class Test
{
आपको एक ही लाइन पर शुरुआती ब्रेस रखना चाहिए:
class Test {
निजी सदस्य चर "yourVariable \" में एक प्रमुख अंडरस्कोर होना चाहिए
संरक्षित सदस्य चर \ "yourVariable \" में एक प्रमुख अंडरस्कोर होना चाहिए
आपको अपने संरक्षित और निजी सदस्य चर में एक प्रमुख अंडरस्कोर जोड़ना चाहिए: $_yourVariable
उन दो के विपरीत, यदि आप अपने सार्वजनिक चर में एक अंडरस्कोर जोड़ते हैं तो आप प्राप्त कर सकते हैं:
सार्वजनिक सदस्य चर \ _ \ _ आपके परिवर्तनशील \ _ में एक प्रमुख अंडरस्कोर नहीं होना चाहिए।
विधि पैरामीटर $ bla का उपयोग कभी नहीं किया जाता है
आपने एक विधि के लिए एक पैरामीटर पास किया है लेकिन आप इसका उपयोग कभी नहीं करते हैं।
मल्टी-लाइन फ़ंक्शन घोषणा सही ढंग से इंडेंट नहीं; उम्मीद की 8 रिक्त स्थान लेकिन एक्स पाया
आपने अपने फ़ंक्शन घोषणा मापदंडों में बहुत अधिक इंडेंटेशन जोड़ दिया है:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
होना चाहिए:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
संभव बेकार विधि का पता चला है
आप संशोधनों को शामिल किए बिना एक विधि को ओवरराइड कर रहे हैं, उदाहरण:
public function __construct(Context $context) {
parent::__construct($context);
}
मॉडल एलएसडी विधि लोड () लूप में पाया गया
आप load()
लूप के अंदर की विधि का उपयोग कर रहे हैं जिसे अनुशंसित नहीं किया गया है और इसे टाला जाना चाहिए।
सबसे अधिक संभावना है कि आपका कोड इस तरह दिखता है:
foreach(...) {
$model->load();
}
यदि आप किसी मॉडल को लूप में लोड कर रहे हैं तो यह प्रदर्शन के मामले में वास्तव में बहुत खराब है। यदि आपको केवल कुछ विशेषताओं को पुनः प्राप्त करने की आवश्यकता है, तो आपको इसके बजाय संग्रह का उपयोग करना चाहिए।
समारोह की चक्रीय जटिलता (एक्स) एक्ससीड्स 10; फ़ंक्शन को फिर से सक्रिय करने पर विचार करें
यदि आप साइक्लोमैटिक जटिलता से परिचित नहीं हैं, तो मेरा सुझाव है कि आप इस पोस्ट को पढ़ें: https : // pd depend.org/documentation/software-metrics/cyclomatic-complexity.html । यह चेतावनी मूल रूप से इसका मतलब है कि आपके फ़ंक्शन में बहुत अधिक लूप और स्थितियां हैं।
Magento 2 में प्रत्यक्ष वस्तु तात्कालिकता हतोत्साहित है
यह इस तथ्य के कारण होता है कि आप सीधे कक्षा को कॉल करके किसी ऑब्जेक्ट को तत्काल भेज रहे हैं, उदाहरण के लिए:
new \Zend_Filter_LocalizedToNormalized
आपको निर्भरता इंजेक्शन या एक अंतिम उपाय का उपयोग करना चाहिए, ऑब्जेक्ट मैनेजर।
टिप्पणियाँ TODO कार्य का उल्लेख करती हैं
आपकी एक टिप्पणी में निम्नलिखित @TODO
ध्वज शामिल हैं।
IF स्टेटमेंट से बचें जो हमेशा सही या गलत होते हैं
आपने एक ऐसी स्थिति बनाई है जो हमेशा सच या गलत प्रतीत होती है।
उदाहरण के लिए:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
त्रुटियाँ
\ "वर्ग \" वर्ग के लिए नाम स्थान निर्दिष्ट नहीं है।
आपको use Path\To\Class;
अपनी कक्षा की शुरुआत में कथन याद आ रहा है ।