ฉันสูญเสียการติดตามแอป PHP เว็บของฉันมันกลายเป็นงานยาก


14

ฉันเขียนโปรแกรมมาสองสามปีและคุ้นเคยกับ C # และ JavaScript เมื่อเวลาผ่านไป ฉันมีโครงการ C # และ JavaScript ที่ใหญ่กว่าซึ่งฉันไม่มีปัญหาในการนำทาง ฉันเพิ่งเริ่มต้นโครงการ PHP & AngularJS สำหรับการทำงานที่ไม่มีประสบการณ์มาก่อนด้วย PHP

กระแสของสิ่งต่าง ๆ ใน PHP กลายเป็นเรื่องยากที่จะติดตาม (ด้าน JavaScript มีขนาดใหญ่ขึ้น แต่ง่ายต่อการทำงาน) เมื่อฉันลองและคิดในเรื่องนั้นฉันคิดว่าลูกบอลที่พันกันยุ่งเหยิง ข้อผิดพลาดในการออกแบบที่สำคัญที่ฉันทำเมื่อฉันเริ่มจะเริ่มกองพะเนินเทินทึกและมีผลต่อการออกแบบของฉันไปข้างหน้า ใช้เวลานานขึ้นและนานขึ้นในการใช้งานสิ่งใหม่

ฉันอยู่ในกำหนดเส้นตายและพบว่ามันยากและยากที่จะเขียนดี DRY ของแข็งรหัส มันยิ่งดึงดูดให้คัดลอก / วางชิ้นส่วนของรหัสเพื่อสร้างพฤติกรรมที่เปลี่ยนแปลงเล็กน้อยเมื่อเวลาในการออกแบบเพิ่มขึ้น นอกจากนี้ยังใช้เวลานานในการกลับไปที่ฐานรหัสเมื่อใดก็ตามที่ฉันต้องทำการสลับบริบท (จากโครงการหนึ่งจากนั้นกลับสู่โครงการนี้) ฉันมีความรู้สึกกลัวเมื่อใดก็ตามที่ฉันกลับไปทำงานในโครงการนี้

ขั้นตอนใดที่ฉันสามารถแก้ไขได้ เวลาเพิ่มเติมอาจต้องมีความสมเหตุสมผลเช่นกันเจ้านายของฉันไม่ใช่นักพัฒนาและไม่คุ้นเคยกับการพัฒนาหรือวงจรชีวิตของซอฟต์แวร์ดังนั้นการอธิบายอาจยากกว่าปกติ



1
ขอบคุณ @gnat อย่างไรก็ตามฉันสนใจที่จะทำคดีให้เจ้านายของฉันน้อยกว่าที่ฉันคิดออกว่าจะแก้ไขปัญหาด้วยตนเองได้อย่างไร การทำคดีให้เจ้านายของฉันจะไม่ดีถ้าฉันไม่รู้วิธีการที่ดีในการระบุและแก้ไขปัญหา
Douglas Gaskell

คำตอบ:


11

คุณกำลังรับหนี้ทางเทคนิค ยิ่งคุณปรับรหัสเลอะเทอะด้วยกำหนดเวลามากขึ้นกำหนดเวลามากขึ้นจะทำให้คุณประสบความสำเร็จน้อยลง

เข้าใจว่าคุณสามารถหลีกเลี่ยงสิ่งนี้ได้อย่างสมบูรณ์ ไม่มีใครไปจับคุณทำเลอะและออกบอลคุณ คุณจะตื่นขึ้นมาวันหนึ่งล้อมรอบไปด้วยความยุ่งเหยิง

ณ จุดนี้คุณจะอัปเดตประวัติการทำงานของคุณและทำให้เป็นปัญหาของฉันหรือคุณจะตัดสินใจชำระหนี้และใช้เวลาทำความสะอาดโค้ด

ถ้าคุณไปทำความสะอาดรูทีนเข้าใจว่าสิ่งนี้ไม่เกี่ยวกับ "ใช้เวลาในการออกแบบมากขึ้น" นี่คือการทำลายนิสัยขี้เกียจและการทิ้งขยะ

การขว้างรหัสสกปรกออกไปเป็นความคิดที่ผิด ไม่ใช่เพราะงานที่เข้าไป แต่เป็นเพราะรหัสการทำงานจับความคิด ย้ายแนวคิดไปยังโค้ดที่สะอาดก่อนที่คุณจะทิ้งโค้ดที่สกปรก

การมีการทดสอบหน่วยช่วยในเรื่องนี้ แต่ถ้าคุณสร้างการทดสอบด้วยความระมัดระวังเช่นเดียวกับที่คุณใส่เข้าไปในระเบียบที่พวกเขาอาจต้องแก้ไขเช่นกัน

อย่ายอมแพ้ หากคุณไม่สามารถเปลี่ยนได้แสดงว่าไม่ใช่ซอฟต์แวร์


1
"ไม่มีใครไปจับคุณทำให้เป็นระเบียบและทำให้คุณออกไป" ... ถ้าคุณไม่ตรวจสอบโค้ด ;)
jpmc26

1
@ jpmc26 หากคุณคิดว่าบทวิจารณ์โค้ดจะช่วยให้คุณรอดพ้นจากชะตากรรมนี้คุณเข้าใจผิด การตรวจสอบโค้ดช่วยให้คุณเมื่อคุณยินดีที่จะเรียนรู้จากผู้อื่น ไม่ใช่เมื่อคุณมุ่งเน้นกำหนดเวลา การทำงานยุ่งรหัสจะทรัมป์ความคิดเห็นซ้ำแล้วซ้ำอีก ฉันเคยเห็นผู้จัดการแก้ไขข้อพิพาทเหล่านี้ด้วยการพลิกหนึ่งในสี่ หากคุณไม่สนใจเรื่องคุณภาพจะไม่มีใครสามารถดึงมันออกมาจากตัวคุณได้ อย่าคิดว่าคุณสามารถพึ่งพาผู้อื่นเพื่อป้องกันไม่ให้คุณเลอะ หากเป็นเช่นนั้นพวกเขาจะกำหนดให้คุณอัปเดตเอกสาร
candied_orange

หากคุณอ่านความคิดเห็นของฉันและคิดว่าฉันกำลังพูดถึงการแสดงความคิดเห็นรหัสเป็นเวทมนตร์เช่นยูนิคอร์นและสายรุ้งที่จะแก้ไขทุกอย่างโดยไม่ต้องใช้ความพยายามหรือความตั้งใจคุณผิดพลาดอย่างไม่น่าเชื่อ แต่พวกเขาจะให้โอกาสคนที่จะโทรหาคุณ
jpmc26

1
@ jpmc26 หากคุณอ่านคำตอบของฉันและคิดว่าฉันกำลังพูดว่าไม่มีความหวังแค่ยอมแพ้คุณผิดอย่างไม่น่าเชื่อ ฉันกำลังเรียกร้องให้โปรแกรมเมอร์รับผิดชอบส่วนบุคคลเกี่ยวกับโค้ดที่สะอาดแทนที่จะใช้กระบวนการใด ๆ เพื่อทำให้เกิดขึ้น สิ่งเดียวเท่านั้นที่สำคัญ คุณสนใจหรือไม่
candied_orange

แน่นอนว่าแม้กระทั่งโปรแกรมเมอร์ที่เก่งที่สุดก็จะตัดสินใจโง่ ๆ ทุกครั้ง การตรวจสอบรหัสกับบุคคลอื่นทำให้คุณมีโอกาสใส่รหัสของคุณต่อหน้าบุคคลอื่นที่สามารถจับพวกเขาได้ก่อนหน้านี้ นั่นเป็นทั้งจุด เป็นการยากที่จะเห็นจุดที่เกิดปัญหาด้วยตัวเองจนกว่าคุณจะพยายามเปลี่ยนบางสิ่งและมันจะกลายเป็นเรื่องยาก แน่นอนรีวิวรหัสและเทคนิคอื่น ๆ จะไร้ประโยชน์ถ้าคุณไม่สนใจ
jpmc26

9

ใช้เวลานานขึ้นและนานขึ้นในการใช้งานสิ่งใหม่

นี่คือเหตุผลของคุณ ยอมรับกินอีกาและอธิบายว่าทำไมสิ่งต่าง ๆ ถึงใช้เวลานานกว่านี้และคุณต้องใช้เวลาเล็กน้อยในการปรับโครงสร้าง + ออกแบบระบบใหม่

หากคุณไม่ทำเช่นนั้นคุณจะต้องปรับโครงสร้างทีละน้อยทุกครั้งที่ด้านล่าง งานใช้เวลานานกว่าที่คุณต้องการ - ใช้เวลาเพิ่มเล็กน้อยทุกครั้งที่คุณแตะที่ฐานรหัสเพื่อลองทำสิ่งที่ดีขึ้น เพิ่มการทดสอบการรวม แยกสิ่งที่เป็นนามธรรม

คำตอบโง่ที่ "ฉันจะสร้างโครงการขนาดใหญ่ได้อย่างไร" คือ "ทีละชิ้น"

แก้ไข

ได้อ่านบทความที่เกี่ยวข้องและมาข้ามบล็อกโพสต์นี้: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/ TLDR : อย่าพยายามสร้าง refactor 'เฟส' ขนาดใหญ่ในโครงการของคุณ เป็นไปได้ยากที่จะได้รับการซื้อจากเจ้าของโครงการและคุณจะไม่มีทางเลือกในสิ่งที่ต้องรับมือในช่วงเวลาที่คุณมี ให้ใช้เวลาสำหรับการเปลี่ยนแปลงหรือแก้ไขข้อผิดพลาดแต่ละครั้งเพื่อกำจัดรหัสที่คุณกำลังใช้งานอยู่ในตอนนี้ อย่าปล่อยให้กลิ่นติดอยู่เมื่อคุณมีโอกาสแก้ไข


3
นั่นคือสิ่งที่ฉันทำกับมรดกของฉันในอดีต สิ่งที่ดี: เมื่อคุณได้รับจุดเปลี่ยนโครงการจะเริ่มเปล่งประกายราวกับนางฟ้าฝุ่น
qwerty_so

-2

Sonarqube รองรับ PHP ดังนั้นคุณสามารถช่วยติดตามหนี้สินปัจจุบันและการรั่วไหลของคุณใหม่ได้ http://docs.sonarqube.org/display/PLUG/PHP+Plugin

ตัวอย่างสดด้วย Drupal https://sonarqube.com/dashboard?id=drupal


1
น่าเศร้าที่ฉันไม่สามารถติดตั้ง JVM บนอุปกรณ์ทำงานได้ ดูเหมือนว่าเป็นเครื่องมือที่ดี
Douglas Gaskell

มันช่างเลวร้ายเหลือเกินสำหรับเวิร์คสเตชั่นนักพัฒนา
Archimedes Trajano

ฉันไม่มีผู้ดูแลระบบท้องถิ่นหรือสิทธิ์ติดตั้งใด ๆ หรือเรียกใช้การอนุญาตสำหรับแอปพลิเคชันที่ไม่ใช่สีขาว มันเคยแย่กว่าเดิมมาก .... เศร้า
Douglas Gaskell

ไม่สามารถพูดได้ว่าฉันเห็นอกเห็นใจฉันเห็นอกเห็นใจ
Archimedes Trajano

downvoted เนื่องจากเป็นเพียงโฆษณา / ลิงก์ไปยังเครื่องมือไม่ใช่คำตอบสำหรับคำถามของ OP
James Snell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.