หลังจากหนึ่งชั่วโมงผ่านรายงานฉันพบรายการต่อไปนี้อาจเป็นประโยชน์สำหรับทุกคนที่ฉันคิด
ฉันจะพยายามอัพเดทต่อไปทันทีที่ฉันพบคำเตือน / ข้อผิดพลาดเพิ่มเติม:
คำเตือน
บรรทัดมีความยาวเกิน 80 อักขระ มีอักขระ X
หรือ
บรรทัดเกินขีด จำกัด สูงสุด 100 อักขระ มีอักขระ X
คนเหล่านั้นเป็นคนที่ฉันเคยเห็นมากที่สุดพวกเขาอธิบายตนเองมันเป็นแนวปฏิบัติที่ดีในการเข้ารหัสบรรทัดเล็ก ๆ เพื่อรักษาโค้ดที่สะอาดและอ่านได้
ไม่พบช่องว่างหลังจากเครื่องหมายจุลภาคในการเรียกใช้ฟังก์ชัน
คุณได้เรียกใช้ฟังก์ชันที่รับพารามิเตอร์และไม่ได้เพิ่มช่องว่างหลังเครื่องหมายจุลภาค ตัวอย่าง: strrchr($bla,".")
ควรเป็นstrrchr($bla, ".")
คาดว่า \ "ขณะที่ (... ) {\ n \"; พบ \ "ในขณะที่ (... ) \ n {\ n \"
คาดว่า \ "foreach (... ) {\ n \"; พบ \ "foreach (... ) \ n {\ n \"
คาดว่า \ "ถ้า (... ) {\ n \"; พบ \ "if (... ) \ n {\ n \"
คาดว่า \ "} อื่น {\ n \"; พบ \ "} \ n อื่น {\ n \"
นั่นหมายความว่าคุณได้ส่งคืนบรรทัดก่อนวงเล็บเปิดของคำสั่ง PHP เหล่านั้น
ตัวอย่างของไวยากรณ์ที่ไม่ถูกต้องด้วยคำสั่ง if / else:
if (true)
{
}
else
{
}
ควรจะเป็น
if (true) {
} else {
}
วงเล็บปิดและวงเล็บเปิดของการประกาศฟังก์ชันหลายบรรทัดต้องอยู่ในบรรทัดเดียวกัน
ส่วนใหญ่มันเกิดขึ้นในตัวสร้างที่คุณประกาศสิ่งนี้:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
ในขณะที่มันควรจะเป็น:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
อักขระสิ้นสุดบรรทัดไม่ถูกต้อง คาดว่า \ "\ n \" แต่พบ \ "\ r \ n \"
เกิดขึ้นส่วนใหญ่ในตอนต้นของไฟล์มันเกิดจากวิธีที่ IDE ของคุณเข้ารหัสอักขระที่ส่งคืน
ตัวแปร \ "your_variable \" ไม่อยู่ในรูปแบบหมวกอูฐที่ถูกต้อง
ทุกตัวแปรต้องใช้รูปแบบหมวกอูฐดังนั้น$your_variable
ควรเป็น$yourVariable
ตัวแปร \ "one2Three \" มีตัวเลข แต่สิ่งนี้เป็นสิ่งที่ทำให้หมดกำลังใจ
หลีกเลี่ยงการใช้ตัวเลขในตัวแปรของคุณ
ไม่อนุญาตให้ใช้โครงสร้างการควบคุมแบบอินไลน์
คุณไม่ควรใช้โครงสร้างการควบคุมแบบอินไลน์เช่น:
else $test = true;
คุณควรใช้:
else {
$test = true;
}
การเปิดวงเล็บปีกกาของคลาสจะต้องอยู่ในบรรทัดหลังคำจำกัดความ
คุณส่งคืนบรรทัดเมื่อประกาศคลาส:
class Test
{
คุณควรให้วงเล็บปีกกาเปิดในบรรทัดเดียวกัน:
class Test {
ตัวแปรสมาชิกส่วนตัว \ "yourVariable \" ต้องมีเครื่องหมายขีดเส้นใต้
ตัวแปรสมาชิกที่มีการป้องกัน \ "yourVariable \" จะต้องมีเครื่องหมายขีดเส้นใต้
คุณควรเพิ่มขีดเส้นใต้นำไปยังตัวแปรที่ได้รับการป้องกันและส่วนตัว: $_yourVariable
ตรงกันข้ามกับทั้งสองถ้าคุณเพิ่มขีดล่างในตัวแปรสาธารณะของคุณคุณจะได้รับ:
ตัวแปรสมาชิกสาธารณะ \ "_ yourVariable \" ต้องไม่มีเครื่องหมายขีดเส้นใต้
ไม่เคยใช้วิธีการพารามิเตอร์ $ bla
คุณได้ส่งพารามิเตอร์ไปยังวิธีการ แต่คุณไม่เคยใช้มัน
การประกาศฟังก์ชันหลายบรรทัดไม่เยื้องอย่างถูกต้อง คาดว่าจะมี 8 ที่ว่าง แต่พบ X
คุณได้เพิ่มการเยื้องในพารามิเตอร์การประกาศฟังก์ชันของคุณมากเกินไป:
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);
}
ตรวจพบวิธีโหลด model LSD () ในลูป
คุณกำลังใช้load()
วิธีการในวงซึ่งไม่แนะนำและจะต้องหลีกเลี่ยง
รหัสของคุณน่าจะมีลักษณะดังนี้:
foreach(...) {
$model->load();
}
หากคุณกำลังโหลดโมเดลในการวนซ้ำมันย่อมไม่ดีนักในแง่ของประสิทธิภาพ หากคุณต้องการดึงคุณสมบัติบางอย่างคุณควรใช้คอลเล็กชันแทน
ความซับซ้อนของ cyclomatic (X) เหนือกว่า 10; พิจารณาการปรับเปลี่ยนฟังก์ชัน
ถ้าคุณไม่คุ้นเคยกับความซับซ้อน cyclomatic ผมขอแนะนำให้คุณได้อ่านที่บทความนี้: https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html คำเตือนนี้โดยทั่วไปหมายความว่ามีลูปและเงื่อนไขมากเกินไปในการทำงานของคุณ
การทำให้อินสแตนซ์ของวัตถุโดยตรงไม่สนับสนุนใน Magento 2
มันเกิดจากความจริงที่ว่าคุณยกตัวอย่างวัตถุโดยตรงโดยการเรียกชั้นเรียนตัวอย่างเช่น:
new \Zend_Filter_LocalizedToNormalized
คุณควรใช้การฉีดพึ่งพาหรือวิธีสุดท้ายผู้จัดการวัตถุ
ความคิดเห็นอ้างถึงภารกิจสิ่งที่ต้องทำ
หนึ่งในความคิดเห็นของคุณมีการ@TODO
ตั้งค่าสถานะต่อไปนี้
หลีกเลี่ยงคำสั่ง IF ที่เป็นจริงหรือเท็จเสมอ
คุณได้สร้างเงื่อนไขที่ดูเหมือนจะเป็นจริงหรือเท็จเสมอ
ตัวอย่างเช่น:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
ข้อผิดพลาด
ไม่ได้ระบุ Namespace สำหรับคลาส \ "Class \"
คุณไม่มีuse Path\To\Class;
คำชี้แจงในตอนต้นของชั้นเรียน