คำถามติดแท็ก coding-style

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

13
การจัดการกับขีดเส้นใต้ชั้นนำในวิธีการเรียน PHP คืออะไร?
ในขณะที่ดูห้องสมุด PHP ต่างๆฉันพบว่าผู้คนจำนวนมากเลือกที่จะนำหน้าวิธีการเรียนด้วยการขีดเส้นใต้เดียวเช่น public function _foo() ...แทน... public function foo() ฉันรู้ว่าในที่สุดสิ่งนี้ก็เกิดขึ้นตามความชอบส่วนตัว แต่ฉันก็สงสัยว่าถ้าใครมีความเข้าใจอย่างลึกซึ้งว่านิสัยนี้มาจากไหน ความคิดของฉันคือว่ามันอาจถูกยกมาจาก PHP 4 ก่อนที่วิธีการเรียนจะถูกทำเครื่องหมายว่าได้รับการคุ้มครองหรือเป็นส่วนตัวซึ่งหมายความว่า "อย่าเรียกวิธีนี้จากนอกห้องเรียน" อย่างไรก็ตามมันก็เกิดขึ้นกับฉันด้วยบางทีมันอาจจะมาจากที่ไหนสักแห่ง (ภาษา) ฉันไม่คุ้นเคยหรืออาจมีเหตุผลที่ดีที่ฉันจะได้รับประโยชน์จากการรู้ ความคิดข้อมูลเชิงลึกและ / หรือความคิดเห็นใด ๆ ที่จะได้รับการชื่นชม
155 php  coding-style 

8
เป็นสไตล์ที่ดีที่จะกลับมาทับทิมอย่างชัดเจนหรือไม่?
มาจากพื้นหลัง Python ที่มี "วิธีที่ถูกต้องที่จะทำ" (เป็นวิธี "Pythonic") เสมอเมื่อพูดถึงสไตล์ฉันสงสัยว่าทับทิมนั้นมีอยู่จริงหรือไม่ ฉันใช้แนวทางสไตล์ของฉันเอง แต่ฉันคิดว่าจะปล่อยซอร์สโค้ดของฉันและฉันต้องการให้เป็นไปตามกฎที่ไม่ได้เขียนไว้ซึ่งอาจมีอยู่ มันเป็น "The Ruby Way" หรือไม่ที่จะพิมพ์ออกมาreturnในวิธีการอย่างชัดเจน? ฉันเคยเห็นมันเสร็จแล้วทั้งที่มีและไม่มี แต่มีวิธีที่ถูกต้องหรือไม่ อาจมีเวลาที่เหมาะสมในการทำหรือไม่? ตัวอย่างเช่น: def some_func(arg1, arg2, etc) # Do some stuff... return value # <-- Is the 'return' needed here? end

14
do..end vs braces แบบหยิกสำหรับบล็อกใน Ruby
ฉันมีเพื่อนร่วมงานที่พยายามโน้มน้าวใจฉันว่าฉันไม่ควรใช้ do..end และใช้วงเล็บปีกกาเพื่อกำหนดบล็อกหลายเส้นในรูบี ฉันอยู่ในค่ายของเพียงใช้เครื่องหมายปีกกาสั้นสำหรับหนึ่งสมุทรและทำ .. ส่งทุกอย่างอื่น แต่ฉันคิดว่าฉันจะติดต่อกับชุมชนที่ใหญ่กว่าเพื่อรับการแก้ไข แล้วมันคืออะไรและทำไม? (ตัวอย่างของรหัส shoulda บางอย่าง) context do setup { do_some_setup() } should "do somthing" do # some more code... end end หรือ context { setup { do_some_setup() } should("do somthing") { # some more code... } } โดยส่วนตัวแล้วการดูที่ด้านบนตอบคำถามของฉัน แต่ฉันต้องการเปิดสิ่งนี้ให้กับชุมชนส่วนใหญ่

10
ตรวจสอบว่าสตริงมีองค์ประกอบจากรายการ (ของสตริง)
สำหรับบล็อกของรหัสต่อไปนี้: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False ผลลัพธ์คือ: กรณีที่ 1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True กรณีที่ 2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False รายการ (listOfStrings) อาจมีหลายรายการ (ขั้นต่ำ 20) และจะต้องมีการตรวจสอบกับหลายพันสาย (เช่น myString) มีวิธีที่ดีกว่า (มีประสิทธิภาพมากขึ้น) ในการเขียนรหัสนี้หรือไม่?

3
ความแตกต่างใน C # ระหว่างสไตล์ getter ที่แตกต่างกัน
บางครั้งฉันเห็นตัวย่อในคุณสมบัติของผู้ทะเยอทะยาน เช่นสองประเภทนั้น: public int Number { get; } = 0 public int Number => 0; ใครช่วยได้โปรดบอกฉันว่ามีความแตกต่างระหว่างทั้งสอง พวกเขาทำงานอย่างไร ทั้งคู่เป็นแบบอ่านอย่างเดียวหรือไม่

14
กำลังตรวจหาตัวชี้ NULL ใน C / C ++ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ในการตรวจสอบโค้ดเมื่อเร็ว ๆ นี้ผู้ให้ข้อมูลพยายามบังคับให้การNULLตรวจสอบพอยน์เตอร์ทั้งหมดดำเนินการในลักษณะดังต่อไปนี้: int * some_ptr; // ... if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } แทน int * some_ptr; // ... if (some_ptr) { // Proceed } else { // Handle null-pointer error } …


12
เครื่องมือฟรีในการตรวจสอบซอร์สโค้ด C / C ++ กับชุดของมาตรฐานการเข้ารหัสหรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มันดูง่ายที่จะหาเครื่องมือเช่นนี้สำหรับ Java ( Checkstyle , JCSC ) แต่ฉันไม่สามารถหาเครื่องมือสำหรับ C / C ++ ได้ ฉันไม่ได้มองหาเครื่องวิเคราะห์รหัสแบบคงที่ที่เป็นขุยฉันต้องการตรวจสอบกับมาตรฐานการเข้ารหัสเช่นการตั้งชื่อตัวแปรการใช้อักษรตัวพิมพ์ใหญ่การเว้นวรรคการระบุตำแหน่งการวางวงเล็บและอื่น ๆ
151 c++  c  coding-style 

29
เหตุใดจึงใช้ส่วนนำหน้ากับตัวแปรสมาชิกในคลาส C ++
รหัส C ++ จำนวนมากใช้ระเบียบการสร้างประโยคเพื่อทำเครื่องหมายตัวแปรสมาชิก ตัวอย่างทั่วไป ได้แก่ m_ memberNameสำหรับสมาชิกสาธารณะ (ที่สมาชิกสาธารณะถูกนำมาใช้เลย) _ memberNameสำหรับสมาชิกส่วนตัวหรือสมาชิกทั้งหมด คนอื่นพยายามบังคับใช้สมาชิกนี้ - > เมื่อใดก็ตามที่มีการใช้ตัวแปรสมาชิก จากประสบการณ์ของฉันฐานรหัสขนาดใหญ่ส่วนใหญ่ล้มเหลวในการใช้กฎดังกล่าวอย่างสม่ำเสมอ ในภาษาอื่น ๆ อนุสัญญาเหล่านี้แพร่หลายน้อยกว่ามาก ฉันเห็นมันเป็นครั้งคราวเท่านั้นใน Java หรือรหัส C # ฉันคิดว่าฉันไม่เคยเห็นมันในรหัส Ruby หรือ Python ดังนั้นดูเหมือนว่าจะมีแนวโน้มด้วยภาษาที่ทันสมัยกว่าที่จะไม่ใช้มาร์กอัปพิเศษสำหรับตัวแปรสมาชิก อนุสัญญานี้ยังคงมีประโยชน์ทุกวันนี้ใน C ++ หรือว่าเป็นเพียงความผิดสมัย โดยเฉพาะอย่างยิ่งมันถูกใช้อย่างไม่สอดคล้องกันทั่วทั้งห้องสมุด ภาษาอื่น ๆ ที่แสดงให้เห็นว่าสามารถทำได้โดยไม่ต้องนำหน้าสมาชิก?

12
ถ้าฟังก์ชั่น A จำเป็นต้องใช้โดยฟังก์ชัน B ควรกำหนดภายใน B หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิด5 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ตัวอย่างง่ายๆ สองวิธีวิธีหนึ่งเรียกจากวิธีอื่น: def method_a(arg): some_data = method_b(arg) def method_b(arg): return some_data ในไพ ธ อนเราสามารถประกาศdefในสิ่งอื่นdefได้ ดังนั้นหากmethod_bจำเป็นและเรียกร้องเท่านั้นmethod_aฉันควรประกาศmethod_bภายในmethod_aหรือไม่ แบบนี้ : def method_a(arg): def method_b(arg): return some_data some_data = method_b(arg) หรือฉันควรหลีกเลี่ยงการทำเช่นนี้?

11
วิธีการตั้งชื่อโรงงานเช่นวิธีการ?
createผมคิดว่าส่วนใหญ่โรงงานเช่นวิธีการเริ่มต้นด้วย แต่ทำไมถึงเรียกว่า " สร้าง " ทำไมไม่ " สร้าง ", " สร้าง ", " สร้าง ", " สร้าง " หรืออย่างอื่น มันเป็นเพียงเรื่องของการลิ้มรสหรือไม่? การประชุมหรือไม่? หรือมีความหมายพิเศษใน "สร้าง"? createURI(...) makeURI(...) produceURI(...) buildURI(...) generateURI(...) คุณจะเลือกแบบไหนและทำไม?

6
ส่วนตัว vs ได้รับการป้องกัน - การเปิดเผยที่ดีเกี่ยวกับการปฏิบัติที่เกี่ยวข้อง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันค้นหามาแล้วและฉันรู้ความแตกต่างทางทฤษฎี สาธารณะ - คลาสใด ๆ / ฟังก์ชั่นสามารถเข้าถึงวิธีการ / ทรัพย์สิน ได้รับการป้องกัน - เฉพาะคลาสนี้และคลาสย่อยใด ๆ เท่านั้นที่สามารถเข้าถึงเมธอด / คุณสมบัติได้ ส่วนตัว - คลาสนี้เท่านั้นที่สามารถเข้าถึงวิธีการ / คุณสมบัติ มันจะไม่ได้รับมรดกด้วยซ้ำ นั่นคือทั้งหมดที่ดีและดีคำถามคือสิ่งที่แตกต่างในทางปฏิบัติระหว่างพวกเขา? คุณจะใช้privateเมื่อใดและจะใช้เมื่อprotectedใด มีวิธีปฏิบัติที่ดีที่เป็นมาตรฐานหรือเป็นที่ยอมรับได้หรือไม่? จนถึงตอนนี้เพื่อรักษาแนวคิดของการสืบทอดและ polymorphism ฉันใช้publicสำหรับทุกสิ่งที่ควรเข้าถึงได้จากภายนอก (เช่นตัวสร้างและการทำงานของคลาสหลัก) และprotectedสำหรับวิธีการภายใน (ตรรกะวิธีการช่วยเหลือ ฯลฯ ) ฉันกำลังติดตามใช่ไหม? (โปรดทราบว่าคำถามนี้มีไว้สำหรับฉัน แต่ยังใช้สำหรับการอ้างอิงในอนาคตเนื่องจากฉันไม่ได้เห็นคำถามเช่นนี้ดังนั้น)

4
Pass-by-value เป็นค่าเริ่มต้นที่สมเหตุสมผลใน C ++ 11 หรือไม่
ใน C ++ แบบดั้งเดิมการส่งผ่านค่าไปยังฟังก์ชั่นและวิธีการจะช้าสำหรับวัตถุขนาดใหญ่และโดยทั่วไปจะขมวดคิ้ว แต่โปรแกรมเมอร์ C ++ มักจะส่งต่อการอ้างอิงไปรอบ ๆ ซึ่งเร็วกว่า แต่แนะนำคำถามที่ซับซ้อนทุกประเภทเกี่ยวกับการเป็นเจ้าของและโดยเฉพาะการจัดการหน่วยความจำ (ในกรณีที่วัตถุจัดสรรเป็นฮีป) ตอนนี้ใน C ++ 11 เรามี Rvalue reference และ move constructors ซึ่งหมายความว่ามันเป็นไปได้ที่จะใช้ object ขนาดใหญ่ (เช่นstd::vector) ที่ราคาถูกเพื่อส่งผ่านค่าเข้าและออกจากฟังก์ชัน ดังนั้นนี่หมายความว่าค่าเริ่มต้นควรจะส่งผ่านตามค่าสำหรับอินสแตนซ์ของประเภทเช่นstd::vectorและstd::string? แล้ววัตถุที่กำหนดเองล่ะ? แนวปฏิบัติที่ดีที่สุดแบบใหม่คืออะไร
142 c++  coding-style  c++11 

10
<STYLE> ต้องอยู่ใน <HEAD> ของเอกสาร HTML หรือไม่
พูดอย่างเคร่งครัดstyleแท็กต้องอยู่ในheadเอกสาร HTML หรือไม่? มาตรฐาน 4.01 หมายความว่า แต่ไม่ได้ระบุไว้อย่างชัดเจน: องค์ประกอบ STYLE ช่วยให้ผู้เขียนสามารถใส่กฎสไตล์ชีตในส่วนหัวของเอกสารได้ HTML อนุญาตให้มีองค์ประกอบ STYLE จำนวนเท่าใดก็ได้ในส่วน HEAD ของเอกสาร ฉันพูดว่า "พูดอย่างเคร่งครัด" เพราะฉันมีแอปที่ใส่องค์ประกอบสไตล์ไว้ในร่างกายและเบราว์เซอร์ทั้งหมดที่ฉันทดสอบดูเหมือนจะใช้องค์ประกอบสไตล์ ฉันแค่สงสัยว่ามันถูกกฎหมายจริงหรือเปล่า

6
ฉันควรใช้ `import os.path` หรือ` import os` หรือไม่
อ้างอิงถึงเอกสารที่เป็นทางการ , os.pathเป็นโมดูล ดังนั้นวิธีการนำเข้าที่ต้องการคืออะไร # Should I always import it explicitly? import os.path หรือ... # Is importing os enough? import os โปรดอย่าตอบ "การนำเข้าosผลงานให้ฉัน" ฉันรู้ว่ามันใช้ได้กับฉันเช่นกันในตอนนี้ (เหมือน Python 2.6) สิ่งที่ฉันอยากรู้คือคำแนะนำอย่างเป็นทางการเกี่ยวกับปัญหานี้ ดังนั้นถ้าคุณตอบคำถามนี้กรุณาโพสต์อ้างอิงของคุณ

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