คำถามติดแท็ก code-quality

คำถามสำหรับแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโค้ดคุณภาพสูง

9
โปรแกรมเมอร์ควรเขียนบทเรียนเพื่อปรับปรุงความหมายของรหัสหรือไม่
เนื่องจากโปรแกรมเมอร์เป็นผู้เขียนและเขียนโค้ดเพื่อแสดงความคิดและแนวคิดที่เป็นนามธรรมและโค้ดที่ดีควรอ่านโดยโปรแกรมเมอร์คนอื่น ๆ โดยไม่มีปัญหาและความเข้าใจผิดนักโปรแกรมเมอร์ควรใช้บทเรียนการเขียนเพื่อเขียนโค้ดที่ดีขึ้นหรือไม่ แนวคิดที่เป็นนามธรรมและปัญหา / หน่วยงานในโลกแห่งความจริงเป็นส่วนสำคัญของการเขียนโค้ดที่ดีและความเชี่ยวชาญในภาษาที่ใช้ในการเขียนโปรแกรมควรทำให้โปรแกรมเมอร์สามารถแสดงความคิดของเขาได้ง่ายขึ้นหรือในทางที่ดีขึ้น นอกจากนี้เมื่อพยายามเขียนหรือเขียนรหัสใหม่เพื่อให้ดีขึ้นสามารถใช้เวลาในการตัดสินใจชื่อฟังก์ชั่นตัวแปรหรือโครงสร้างข้อมูลได้มาก ฉันคิดว่านี่อาจช่วยหลีกเลี่ยงการเขียนโค้ดที่มีมากกว่าหนึ่งความหมายซึ่งมักทำให้เกิดความเข้าใจผิดระหว่างโปรแกรมเมอร์ที่แตกต่างกัน รหัสควรแสดงให้เห็นอย่างชัดเจนว่าฟังก์ชั่นนั้นชัดเจน

14
จะทราบได้อย่างไรว่าการสะกดคำผิดในซอร์สโค้ดเป็นปัญหาร้ายแรงหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันพบข้อผิดพลาดในการสะกดคำที่ฉันพบทุกวันใน codebase ของเราซึ่งฉันจะทำซ้ำตัวอย่างสั้น ๆ แต่เป็นตัวแทน: ArgumnetCount Timeount Gor message from queue น่าเสียดายที่ไม่ จำกัด เพียงบุคคลเดียว มีผู้พูดภาษาอังกฤษที่ไม่ใช่เจ้าของภาษาจำนวนมากในทีมของเราที่สนับสนุนสิ่งนั้นอย่างไรก็ตามฉันยังสามารถระบุข้อผิดพลาดการสะกดที่เลวร้ายที่สุดให้กับสถาปนิกซอฟต์แวร์ของเราซึ่งเป็นชาวอเมริกันเกิดและเติบโต สิ่งเหล่านี้สามารถพบได้แม้กระทั่งในอีเมลงานนำเสนอเอกสารหรือข้อมูลที่เป็นลายลักษณ์อักษรใด ๆ ที่เรามีใน บริษัท พัฒนาซอฟต์แวร์ ฉันต้องการทราบวิธีการตรวจสอบว่ามันเป็นปัญหาร้ายแรงหรือไม่? ฉันพบข้อผิดพลาดในการสะกดคำเหล่านี้ด้วยความกังวลเสมอ แต่นโยบายส่วนบุคคลของฉันเองอย่างเป็นทางการคือเราไม่ได้รับค่าจ้างให้สะกดสิ่งที่ถูกต้องเราได้รับค่าจ้างให้ทำสิ่งต่าง ๆ ดังนั้นภายใน บริษัท ฉันไม่เคยวิจารณ์ใครเลย แต่ฉันได้ยกประเด็นนี้ขึ้นกับเพื่อนสนิทของฉันบางคนและไม่เคยตัดสินเรื่องนี้ให้ดี

10
วิธีการสร้างความสมดุลของคุณภาพของรหัสกับบุคลิกภาพที่แข็งแกร่ง
ในการตรวจสอบโค้ดในที่ทำงานฉันได้เห็นรหัสและรูปแบบที่ฉันพิจารณาว่า "ฉลาด" แต่ไม่จำเป็นต้องเพิ่มคุณภาพโดยรวมหรือความสามารถในการบำรุงรักษาของรหัสฐาน ฉันชี้ให้เห็นถึงข้อเสนอแนะของฉันและฉันไม่มั่นใจในข้อโต้แย้ง ฉันกังวลเล็กน้อยเมื่อโค้ดนี้กลายเป็น repo และใช้งานในภายหลัง ฉันต้องการรักษาทีมที่เหนียวแน่นดังนั้นฉันไม่ต้องการสร้างความตึงเครียดด้วยการเป็นแกนนำเกี่ยวกับการจองของฉัน ฉันยังต้องการสร้างผลิตภัณฑ์ที่ยอดเยี่ยมสำหรับลูกค้าของเราโดยไม่ย่อท้อ ตามเนื้อผ้าใครมีอำนาจ 'ยับยั้ง' ในสิ่งที่ได้รับการตรวจสอบและอย่างไร วิธีการใช้รหัสที่ได้ผล แต่มันเกี่ยวข้องกับ / ฉลาดเกินไปจะถูกลบออกโดยไม่ต้องเหยียบนิ้วเท้า?

10
ฉันจะกำจัด coders“ คัดลอกและวาง” ได้อย่างรวดเร็วได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันต้องการวิธีการกรองเรซูเม่ของคนที่เพิ่งคัดลอกและวางโค้ดจากนั้นหวังว่ามันจะใช้งานได้และตรวจสอบว่ามันใช้ได้หรือไม่ ทั้งหมดนี้เกิดขึ้นโดยไม่ต้องมีความเข้าใจ (หรือสนใจ) เพื่อเข้าใจส่วนที่เหลือของรหัสในระบบ ฉันแน่ใจว่ารู้ว่าการคัดลอกและวางรหัสเป็นส่วนหนึ่งของการเรียนรู้วัตถุใหม่การควบคุม ฯลฯ ... แต่เราจะบอกได้อย่างไรว่าคิดเป็น 70% ของอาชีพการพัฒนาของพวกเขา? ฉันเจอคนระดับสูงบางคนอาจมีทักษะที่ล้าสมัยหรือไม่เกี่ยวข้องกับโครงการสิ่งที่พวกเขาทำคือ google คัดลอกแล้ววางโค้ดบางส่วนโดยไม่ต้องคิดหาวิธีแก้ปัญหาโดยรวม เป็นผลให้เรามีความไม่ตรงกันของ JSON, AJAX, callbacks, ASMX, WCF และ postbacks ในโครงการเดียวกัน เป็นที่ชัดเจนว่าไม่มีความสอดคล้องหรือเหตุผลเบื้องหลังที่มีการใช้เทคโนโลยีแต่ละอย่าง ในกรณีที่เลวร้ายที่สุดผู้พัฒนาประเภทนี้สร้างปัญหาด้านความปลอดภัยและพาหะสำหรับการโจมตี คำถาม คุณจะแนะนำอย่างไรให้ฉันกรองผู้ที่มีพื้นฐานการเขียนโปรแกรมไม่ดีออก ฉันสามารถทำได้ที่ระดับประวัติย่อหรือไม่? ถ้าไม่ฉันจะทำเช่นนี้ในระหว่างการสัมภาษณ์

11
คุณควรแก้ไขข้อบกพร่องที่มีอยู่ก่อนขณะที่กำลังทำงานอย่างอื่นอยู่หรือไม่?
ปริศนา: ในระหว่างการทำงานกับคุณสมบัติใหม่หรือแก้ไขข้อบกพร่องคุณพบปัญหาดั้งเดิมในรหัส คุณควรทำอะไร? แก้ไขและเสี่ยงต่อการเปลี่ยนแปลงพฤติกรรมของรหัส มันมีการทำงานมาจนถึงตอนนี้โดยบางความบังเอิญหรืออื่น ๆ ข้อบกพร่องที่ไม่ได้รับการตรวจพบหรือคุ้มค่าเวลาของทุกคนที่จะรายงาน คุณควรปล่อยไว้ตามลำพังและปล่อยให้ปัญหาทำให้รหัสทำงานหนักขึ้นในภายหลังหรือไม่ การแก้ไขปัญหาจะเพิ่มเวลาของงานดั้งเดิมของคุณเท่านั้นและบังคับให้คุณทดสอบการถดถอย ไม่กี่คนที่จะชื่นชมการทำงาน อย่างไรก็ตามการแก้ไขมันดูเหมือนถูกต้องอย่างใด รหัสที่มีปัญหาน้อยลงจะง่ายต่อการสร้างและสร้างใหม่ ฉันพบตัวเองในสถานการณ์เช่นนี้ครั้งแล้วครั้งเล่าขณะที่เราทำงานเพื่อทำให้เว็บแอปพลิเคชันทันสมัยขึ้น ฉันไม่สามารถบอกได้ว่าฉันกำลังหมกมุ่นหรือมีเกียรติเมื่อฉันออกไปทำงานแทนเจนต์บนข้อบกพร่องเก่าเหล่านี้ คุณจัดการกับสถานการณ์เหล่านี้ได้อย่างไร ขอบคุณ Corey

4
ลองใช้ catch-blocks กันดีไหม?
ฉันมักจะพบว่าตัวเองต่อสู้กับเรื่องนี้ ... พยายามหาสมดุลระหว่างลอง / จับและรหัสไม่เป็นระเบียบลามกของแท็บวงเล็บและข้อยกเว้นถูกโยนกลับกองโทรเช่นมันฝรั่งร้อน ตัวอย่างเช่นฉันมีแอพที่ฉันกำลังพัฒนาอยู่ตอนนี้ซึ่งใช้ SQLite ฉันมีอินเทอร์เฟซฐานข้อมูลที่เป็นนามธรรมการเรียกใช้ SQLite และแบบจำลองที่ยอมรับสิ่งต่าง ๆ ที่จะเข้า / ออกจากฐานข้อมูล ... ดังนั้นหาก / เมื่อเกิดข้อยกเว้น SQLite ขึ้นมามันจะต้องถูกโยนขึ้นสู่รุ่น (ซึ่งเรียกว่า ) ใครจะต้องส่งมันให้ใครก็ตามที่เรียกว่า AddRecord / DeleteRecord / อะไรก็ตาม ... ฉันเป็นแฟนตัวยงของข้อยกเว้นซึ่งตรงกันข้ามกับการส่งคืนรหัสข้อผิดพลาดเนื่องจากรหัสข้อผิดพลาดสามารถถูกละเว้นลืม ฯลฯ ได้ในขณะที่การจัดการข้อยกเว้นเป็นหลัก (ได้รับฉันสามารถจับและย้ายได้ทันที ... ) ฉัน บางอย่างจะต้องมีวิธีที่ดีกว่าสิ่งที่ฉันเกิดขึ้นตอนนี้ แก้ไข: ฉันควรจะใช้ถ้อยคำนี้แตกต่างกันเล็กน้อย ฉันเข้าใจที่จะโยนเป็นประเภทที่แตกต่างกันและเช่นนั้นฉันพูดได้ไม่ดีและนั่นเป็นความผิดของฉันเอง คำถามของฉันคือ ... จะรักษาความสะอาดโค้ดเมื่อทำเช่นนั้นได้อย่างไร มันเริ่มรู้สึกเกะกะอย่างมากกับฉันหลังจากนั้นไม่นาน

5
ความคิดที่เป็นประโยชน์คืออะไรเมื่อทำการตรวจสอบรหัสอย่างเป็นทางการ
ทีมของเราเพิ่งเริ่มทำการตรวจสอบโค้ดกับแต่ละเช็คอิน ในฐานะผู้นำทีมฉันพยายามค้นหาความสมดุลระหว่างการให้คำแนะนำมากเกินไปนักพัฒนาที่น่ารำคาญและการลดจำนวนทีมและการปล่อยรหัสฉันจะเขียนแตกต่างกัน มีหลักฐานการศึกษาหรือการชี้นำจากแหล่งที่รู้จักกันดีซึ่งแนะนำวิธีการที่เป็นประโยชน์หรือไม่?

6
Clean Code - ฉันควรเปลี่ยน 1 ตัวอักษรเป็นค่าคงที่หรือไม่
เพื่อหลีกเลี่ยงตัวเลขเวทย์มนตร์เรามักได้ยินว่าเราควรให้ชื่อที่มีความหมายตามตัวอักษร เช่น: //THIS CODE COMES FROM THE CLEAN CODE BOOK for (int j = 0; j < 34; j++) { s += (t[j] * 4) / 5; } -------------------- Change to -------------------- int realDaysPerIdealDay = 4; const int WORK_DAYS_PER_WEEK = 5; int sum = 0; for (int j = 0; …

3
วิธีเขียนโค้ดที่จัดการได้ด้วยฟังก์ชั่นการเขียนโปรแกรม?
ฉันเพิ่งเริ่มต้นด้วยฟังก์ชั่นการเขียนโปรแกรม (กับ JavaScript และ Node.js) และจากลักษณะของสิ่งที่ดูเหมือนว่ารหัสที่ฉันเขียนจะกลายเป็นนรกหนึ่งของรหัสฐานในการจัดการเมื่อเทียบกับภาษาโปรแกรมที่มี ประเภทของกระบวนทัศน์เชิงวัตถุ ด้วย OOP ฉันคุ้นเคยกับแนวทางปฏิบัติที่จะช่วยให้มั่นใจว่าโค้ดของคุณได้รับการจัดการและขยายได้อย่างง่ายดาย แต่ฉันไม่แน่ใจว่าของการประชุมที่คล้ายกันกับการเขียนโปรแกรมการทำงาน

4
คุณจะแสดงรหัสการผลิตแก่ผู้สมัครในการสัมภาษณ์หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเคยเห็นสิ่งนี้เกิดขึ้นหลายครั้ง: ผู้สมัครที่ชอบ บริษัท ประสบความสำเร็จในการสัมภาษณ์ จากนั้นมาทำงานและในตอนท้ายของวันแรกเขามั่นใจว่า codebase / project ไม่ใช่สิ่งที่เขาต้องการใช้เวลาด้วย ดังนั้นเขาจึงรีบออกไป ฉันคิดว่าการแนะนำผู้สมัครให้กับ codebase ในการสัมภาษณ์อาจช่วยแก้ปัญหานี้ได้ อาจจะดีกว่า: การผสมสิ่งนี้กับคำถามสัมภาษณ์เช่น "คุณจะปรับปรุงส่วนนี้ของรหัสได้อย่างไร" วิธีนี้จะเห็นได้ชัดว่าผู้สมัครนั้น "เหมาะสมกับ codebase" คุณเห็นวิธีการนี้นำไปใช้ทุกที่หรือไม่? คุณจะแสดงรหัสฐานข้อมูลของคุณเองให้ผู้สมัครที่สัมภาษณ์: ถ้าพวกเขาถาม / เป็นส่วนหนึ่งของกระบวนการสัมภาษณ์

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

3
อะไรคืออุปสรรคที่ขัดขวางการยอมรับวิธีการอย่างเป็นทางการ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา วิธีการที่เป็นทางการสามารถใช้เพื่อระบุพิสูจน์และสร้างรหัสสำหรับแอปพลิเคชัน นี่เป็นโอกาสที่จะเกิดข้อผิดพลาดได้น้อยซึ่งส่วนใหญ่จะใช้ในโปรแกรมความปลอดภัย / วิกฤติ ทำไมเราไม่ใช้มันบ่อยกว่าสำหรับการเขียนโปรแกรมทุกวันหรือในเว็บแอปพลิเคชัน ฯลฯ ... การอ้างอิง: วิธีการอย่างเป็นทางการ วิธีการ B Hoare Logic

2
ลุงบ๊อบหมายความว่าอะไรโดย 'ชื่อวลีคำนาม'?
ฉันอ่านรหัสสะอาดโดยลุงบ๊อบ เนื่องจากฉันไม่ใช่เจ้าของภาษาฉันจึงไม่เข้าใจข้อความต่อไปนี้: คลาสและวัตถุที่ควรจะมีคำนามหรือนามวลีชื่อเช่น Customer, WikiPage, และAccount AddressParserคำหลีกเลี่ยงชอบ Manager, Processor, DataหรือInfoในชื่อของชั้นเรียน ชื่อคลาสไม่ควรเป็นคำกริยา ที่ผมรู้ว่าไม่มีใครManager, Processor, DataและInfoเป็นคำกริยาไม่ได้หรือไม่ อะไรคือจุดที่เขาต้องการเน้น

5
รับนักพัฒนาทั้งหมดทำรีวิวรหัส
ฉันเป็นนักพัฒนาซอฟต์แวร์ในทีมนักพัฒนา 7-8 คน เราได้ทำการตรวจสอบโค้ดมาระยะหนึ่งแล้วและคุณภาพของโค้ดก็ดีขึ้นเมื่อเวลาผ่านไป อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่านักพัฒนาซอฟต์แวร์บางคนกำลังถูกขอให้มีการตรวจทานโค้ดมากกว่าผู้อื่น ฉันกลัวว่าเป็นเพราะทัศนคติที่ยืดหยุ่นของพวกเขา ในมุมมองของฉันนี่ไม่ใช่วิธีการตรวจสอบโค้ดที่ควรทำ: ทีมงานทั้งหมดควรรับผิดชอบและผู้ตรวจสอบโค้ดไม่ควรถูกเลือกเพื่อความเต็มใจที่จะยอมรับการเปลี่ยนแปลงได้อย่างง่ายดาย คุณจัดการกับปัญหานี้ในทีมของคุณอย่างไร คุณได้สร้างกฎสำหรับการเลือกผู้ตรวจสอบรหัสหรือไม่ คุณคิดว่าผู้ตรวจสอบโค้ดควรได้รับรางวัลเมื่อพวกเขาใช้เวลาในการตรวจสอบโค้ด (ดี) หรือไม่ และพวกเขาควรได้รับรางวัลอย่างไร? ขอบคุณสำหรับคำตอบ / ความคิดของคุณ

2
ความซับซ้อนของ NPath นั้นมีความสมจริงมากกว่าสิบหกล้านหรือไม่ หรือฉันหักเครื่องมือหรือไม่
ฉันเพิ่งวัดโค้ด PHP ขนาดใหญ่ (1153 บรรทัด) โดยใช้ PHPMD ( http://phpmd.org/ ) และมันบอกรหัสว่ามีความซับซ้อนของ NPath เป็น 1624481875730340307783275782424 ดูเหมือนว่าเป็นจำนวนมากอย่างบ้าคลั่งสำหรับฉันชี้ให้เห็นว่าบางที PHPMD อาจจะพังในบางวิธี เป็นไปได้ไหมที่ชิ้นส่วนของโค้ดที่มนุษย์เขียนขึ้นมีความซับซ้อน NPath สูงเช่นนี้? ความซับซ้อนของวัฏจักรเท่ากับ 351 สองรายละเอียดที่สำคัญอาจ - นี่คือรหัสขั้นตอนผสมกับ HTML และ PHPMD จะวัดโค้ดเชิงวัตถุเท่านั้น ในการหลีกเลี่ยงปัญหานี้ฉันได้รวมไฟล์ทั้งหมดไว้ในชั้นเรียนด้วยฟังก์ชั่นเดียวซึ่งเป็นตัวแทนของการใช้งาน ไฟล์นี้ประกอบไปด้วยชุดของคำสั่งสวิตช์ที่ซ้อนกันและภายในนั้นมีคำสั่ง if ..else มากมาย - ดังนั้นมันค่อนข้างซับซ้อนอย่างแน่นอน แก้ไข ฉันต้องการชี้แจงว่าฉันไม่ได้ตั้งคำถามว่า PHPMD กำลังโกหกฉันหรือไม่ ฉันรู้ว่ารหัสเป็นระเบียบอันยิ่งใหญ่ฉันแค่สงสัยว่าเป็นไปได้หรือไม่ที่รหัสใด ๆ ดูเหมือนว่าคำตอบคือใช่มันเป็นไปได้มาก
13 php  code-quality 

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