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

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

6
เครื่องมือในการแปลงรหัส Python ให้เป็นไปตามข้อกำหนด PEP8
ฉันรู้ว่ามีเครื่องมือที่ช่วยในการตรวจสอบว่าเป็นรหัสหลามของคุณเป็นไปตาม PEP8 เช่นมีทั้งเป็นบริการออนไลน์และโมดูลหลาม อย่างไรก็ตามฉันไม่พบบริการหรือโมดูลที่สามารถแปลงไฟล์ Python ของฉันเป็นไฟล์ Python ที่ถูกต้องในตัวของ PEP8 มีใครรู้บ้างว่ามีไหม? ฉันคิดว่ามันเป็นไปได้เนื่องจาก PEP8 เป็นข้อมูลเกี่ยวกับลักษณะที่ปรากฏของโค้ดใช่ไหม?

5
การใช้ do block vs braces {}
มือใหม่หัดทับทิมใส่ถุงมือมือใหม่ มีความแตกต่าง (คลุมเครือหรือใช้งานได้จริง) ระหว่างสองตัวอย่างต่อไปนี้หรือไม่ my_array = [:uno, :dos, :tres] my_array.each { |item| puts item } my_array = [:uno, :dos, :tres] my_array.each do |item| puts item end ฉันตระหนักดีว่าไวยากรณ์ของวงเล็บปีกกาจะช่วยให้คุณวางบล็อกในบรรทัดเดียวได้ my_array.each { |item| puts item } แต่นอกเหนือจากนั้นมีเหตุผลที่น่าสนใจที่จะใช้ไวยากรณ์หนึ่งกับอีกไวยากรณ์หรือไม่?
112 ruby  coding-style 

19
#ifdef vs #if - วิธีใดดีกว่า / ปลอดภัยกว่าสำหรับวิธีการเปิด / ปิดการรวบรวมโค้ดบางส่วน
นี่อาจเป็นเรื่องของรูปแบบ แต่มีความแตกแยกเล็กน้อยในทีม dev ของเราและฉันสงสัยว่ามีใครมีความคิดเกี่ยวกับเรื่องนี้บ้าง ... โดยทั่วไปเรามีคำสั่งพิมพ์ดีบักซึ่งเราปิดในระหว่างการพัฒนาตามปกติ โดยส่วนตัวแล้วฉันชอบทำสิ่งต่อไปนี้: //---- SomeSourceFile.cpp ---- #define DEBUG_ENABLED (0) ... SomeFunction() { int someVariable = 5; #if(DEBUG_ENABLED) printf("Debugging: someVariable == %d", someVariable); #endif } บางทีมชอบสิ่งต่อไปนี้: // #define DEBUG_ENABLED ... SomeFunction() { int someVariable = 5; #ifdef DEBUG_ENABLED printf("Debugging: someVariable == %d", someVariable); #endif } ... วิธีใดที่เหมาะกับคุณมากกว่าและเพราะเหตุใด …

11
บังคับตั้งชื่อพารามิเตอร์ใน Python
ใน Python คุณอาจมีนิยามฟังก์ชัน: def info(object, spacing=10, collapse=1) ซึ่งสามารถเรียกได้ด้วยวิธีใด ๆ ต่อไปนี้: info(odbchelper) info(odbchelper, 12) info(odbchelper, collapse=0) info(spacing=15, object=odbchelper) ต้องขอบคุณ Python ที่อนุญาตให้มีอาร์กิวเมนต์ลำดับใดก็ได้ตราบเท่าที่มีการตั้งชื่อ ปัญหาที่เราพบคือเมื่อฟังก์ชันที่ใหญ่ขึ้นบางส่วนของเราเติบโตขึ้นผู้คนอาจเพิ่มพารามิเตอร์ระหว่างspacingและcollapseซึ่งหมายความว่าค่าที่ไม่ถูกต้องอาจไปสู่พารามิเตอร์ที่ไม่มีชื่อ นอกจากนี้บางครั้งมันก็ไม่ชัดเจนเสมอไปว่าต้องทำอะไรบ้างเรากำลังหาวิธีบังคับให้ผู้คนตั้งชื่อพารามิเตอร์บางอย่างไม่ใช่แค่มาตรฐานการเข้ารหัส แต่ควรเป็นแฟล็กหรือปลั๊กอิน pydev? ดังนั้นใน 4 ตัวอย่างข้างต้นสุดท้ายเท่านั้นที่จะผ่านการตรวจสอบเนื่องจากพารามิเตอร์ทั้งหมดถูกตั้งชื่อ เราจะเปิดอัตราต่อรองสำหรับบางฟังก์ชันเท่านั้น แต่ข้อเสนอแนะเกี่ยวกับวิธีการใช้งาน - หรือถ้าเป็นไปได้ก็จะได้รับการชื่นชม

9
สไตล์ที่คุณต้องการสำหรับการตั้งชื่อตัวแปรใน R คืออะไร? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ข้อกำหนดในการตั้งชื่อตัวแปรและฟังก์ชันใดที่คุณชอบในรหัส R เท่าที่ฉันสามารถบอกได้มีอนุสัญญาที่แตกต่างกันหลายฉบับซึ่งทั้งหมดนี้อยู่ร่วมกันในความสามัคคี cacophonous: 1. การใช้ตัวคั่นจุดเช่น stock.prices <- c(12.01, 10.12) col.names <- c('symbol','price') จุดเด่น: มีความสำคัญทางประวัติศาสตร์ในชุมชน R ที่แพร่หลายทั่ว R หลักและแนะนำโดยคู่มือสไตล์ของ Google R จุดด้อย: มีความหมายแฝงเชิงวัตถุและสร้างความสับสนให้กับมือใหม่ R 2. การใช้เครื่องหมายขีดล่าง stock_prices <- c(12.01, 10.12) col_names <- c('symbol','price') ข้อดี: การประชุมทั่วไปในการเขียนโปรแกรมหลายภาษา; เป็นที่ชื่นชอบของคู่มือสไตล์ของ Hadley Wickhamและใช้ในแพ็คเกจ ggplot2 และ plyr …

6
จะต่อสู้กับตัวแปรที่ไม่ได้รับการแก้ไขจำนวนมากที่เตือนใน Webstorm ได้อย่างไร
ฉันมีฟังก์ชันที่รับข้อมูลจากเซิร์ฟเวอร์: function getData(data){ console.log(data.someVar); } Webstorm กล่าวว่าsomeVar- เป็นตัวแปรที่ไม่ได้รับการแก้ไข ฉันจะกำจัดคำเตือนดังกล่าวได้อย่างไร? ฉันเห็นหลายตัวเลือก: ระงับคำเตือนในการตั้งค่า ide; เพิ่มไฟล์ซอร์ส json พร้อมฟิลด์ ( รายละเอียด ); ใช้ไวยากรณ์เหมือนอาร์เรย์: data['some_unres_var']; นอกจากนี้ Webstorm ยังเสนอให้ฉันสร้างเนมสเปซสำหรับ "ข้อมูล" (เพิ่มคำอธิบายประกอบเช่น/** @namespace data.some_unres_var*/) สร้างฟิลด์ดังกล่าวหรือเปลี่ยนชื่อ

5
ใน Intellij ฉันจะสลับระหว่างเคสอูฐและขีดล่างเว้นระยะห่างได้อย่างไร
ที่ บริษัท ของฉันเรามีคำแนะนำรูปแบบที่แตกต่างกันสองแบบสำหรับ java กับ sql ใน java ฉันมีชื่อฟิลด์historyOfPresentIllnessและเมื่อฉันเขียน sql ฉันต้องการตั้งชื่อhistory_of_present_illnessที่ฉันต้องการที่จะตั้งชื่อมันว่า มีแป้นพิมพ์ลัดที่จะเปลี่ยนจากแป้นพิมพ์หนึ่งไปเป็นอีกแป้นหนึ่งเมื่อฉันไฮไลต์วลีหรือไม่ หรืออาจเป็นปลั๊กอินที่สามารถทำสิ่งนี้ได้? ในขณะที่ฉันกำลังถามฉันก็อาจจะถามว่ามีทางที่จะหันhistoryOfPresentIllnessไปhistory-of-present-illnessไหม นั่นคือตั้งแต่ java จนถึงสไตล์ clojure

18
จับคู่ระหว่าง enum และ int / String ได้อย่างสะดวกสบาย
เมื่อทำงานกับตัวแปร / พารามิเตอร์ที่รับค่าได้เพียงจำนวน จำกัด ฉันพยายามใช้ Java เสมอenumเช่นเดียวกับใน public enum BonusType { MONTHLY, YEARLY, ONE_OFF } ตราบเท่าที่ฉันอยู่ในรหัสของฉันมันก็ใช้ได้ดี อย่างไรก็ตามฉันมักจะต้องเชื่อมต่อกับโค้ดอื่น ๆ ที่ใช้ค่าธรรมดาint(หรือString) เพื่อจุดประสงค์เดียวกันหรือฉันต้องการอ่าน / เขียนจาก / ไปยังฐานข้อมูลที่เก็บข้อมูลเป็นตัวเลขหรือสตริง ในกรณีนี้ฉันต้องการวิธีที่สะดวกในการเชื่อมโยงค่า enum แต่ละค่ากับจำนวนเต็มเพื่อให้ฉันสามารถแปลงทั้งสองวิธีได้ (หรืออีกนัยหนึ่งคือฉันต้องการ "enum ย้อนกลับได้") การเปลี่ยนจาก enum เป็น int นั้นง่ายมาก: public enum BonusType { public final int id; BonusType(int id) { this.id = id; } …
108 java  enums  coding-style 

8
วิธีที่ถูกต้องในการกำหนดเมธอด C ++ namespace ในไฟล์. cpp
อาจจะซ้ำกัน แต่ไม่ใช่เรื่องง่ายที่จะค้นหา ... ให้ส่วนหัวเช่น: namespace ns1 { class MyClass { void method(); }; } ฉันเห็นว่ามีการmethod()กำหนดไว้หลายวิธีในไฟล์. cpp: เวอร์ชัน 1: namespace ns1 { void MyClass::method() { ... } } เวอร์ชัน 2: using namespace ns1; void MyClass::method() { ... } เวอร์ชัน 3: void ns1::MyClass::method() { ... } มีวิธีที่ 'ถูกต้อง' หรือไม่? สิ่งเหล่านี้ 'ผิด' หรือไม่ที่ไม่ได้หมายถึงสิ่งเดียวกันทั้งหมด?

6
สไตล์“ point free” (ใน Functional Programming) คืออะไร?
วลีที่ฉันสังเกตเห็นเมื่อเร็ว ๆ นี้คือแนวคิดของสไตล์ "point free" ... อย่างแรกมีคำถามนี้และคำถามนี้ด้วย จากนั้นฉันก็ค้นพบที่นี่พวกเขากล่าวถึง "อีกหัวข้อหนึ่งที่อาจมีค่าควรพูดคุยกันคือผู้เขียนไม่ชอบสไตล์ไร้จุดมุ่งหมาย" สไตล์ "point free" คืออะไร? ใครช่วยให้คำอธิบายสั้น ๆ มันเกี่ยวข้องกับการแกงแบบ "อัตโนมัติ" หรือไม่? เพื่อให้ทราบถึงระดับของฉัน - ฉันได้สอน Scheme ด้วยตัวเองและได้เขียนล่าม Scheme แบบง่ายๆ ... ฉันเข้าใจว่าการแกง "โดยนัย" คืออะไร แต่ฉันไม่รู้จัก Haskell หรือ ML เลย

8
มีใครยังใช้ [goto] ใน C # และถ้าเป็นเช่นนั้นทำไม? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันสงสัยว่ามีใครยังใช้ไวยากรณ์คำหลัก "goto" ใน C # หรือไม่และมีเหตุผลอะไรที่เป็นไปได้ในการทำเช่นนั้น ฉันมักจะมองว่าข้อความใด ๆ ที่ทำให้ผู้อ่านกระโดดข้ามโค้ดว่าเป็นการปฏิบัติที่ไม่ดี แต่สงสัยว่ามีสถานการณ์ที่น่าเชื่อถือสำหรับการใช้ไวยากรณ์ดังกล่าวหรือไม่? ไปที่คำจำกัดความของคำหลัก
104 c#  .net  coding-style  goto 

7
ใน C ++ การคืนเวกเตอร์จากฟังก์ชันยังคงไม่ดีอยู่หรือไม่?
เวอร์ชันสั้น:เป็นเรื่องปกติที่จะส่งคืนวัตถุขนาดใหญ่เช่นเวกเตอร์ / อาร์เรย์ในภาษาโปรแกรมหลายภาษา สไตล์นี้เป็นที่ยอมรับใน C ++ 0x หรือไม่ถ้าคลาสมีตัวสร้างการย้ายหรือโปรแกรมเมอร์ C ++ คิดว่ามันแปลก / น่าเกลียด / น่ารังเกียจหรือไม่? เวอร์ชันยาว:ใน C ++ 0x ยังถือว่าเป็นรูปแบบที่ไม่ดีหรือไม่? std::vector<std::string> BuildLargeVector(); ... std::vector<std::string> v = BuildLargeVector(); เวอร์ชันดั้งเดิมจะมีลักษณะดังนี้: void BuildLargeVector(std::vector<std::string>& result); ... std::vector<std::string> v; BuildLargeVector(v); ในเวอร์ชันที่ใหม่กว่าค่าที่ส่งกลับมาBuildLargeVectorคือ rvalue ดังนั้น v จะถูกสร้างโดยใช้ตัวสร้างการย้ายstd::vectorโดยสมมติว่า (N) RVO ไม่เกิดขึ้น แม้กระทั่งก่อน C ++ 0x รูปแบบแรกมักจะ "มีประสิทธิภาพ" เนื่องจาก …

6
PEP 8 ทำไมไม่มีช่องว่างรอบ ๆ '=' ในอาร์กิวเมนต์คำหลักหรือค่าพารามิเตอร์เริ่มต้น
ทำไมPEP 8 แนะนำไม่ได้มีช่องว่าง=ในการโต้แย้งคำหลักหรือค่าพารามิเตอร์เริ่มต้น ? สิ่งนี้ไม่สอดคล้องกับการแนะนำช่องว่างรอบ ๆ เหตุการณ์อื่น ๆ=ในรหัส Python หรือไม่ อย่างไร: func(1, 2, very_long_variable_name=another_very_long_variable_name) ดีกว่า: func(1, 2, very_long_variable_name = another_very_long_variable_name) ลิงก์ไปยังการสนทนา / คำอธิบายโดยBDFLของ Python จะได้รับการชื่นชม ในใจคำถามนี้เกี่ยวกับ kwargs มากกว่าค่าเริ่มต้นฉันเพิ่งใช้วลีจาก PEP 8 ฉันไม่ได้ร้องขอความคิดเห็น ฉันกำลังขอเหตุผลเบื้องหลังการตัดสินใจนี้ มันเหมือนกับการถามว่าทำไมฉันถึงใช้{บรรทัดเดียวกับifคำสั่งในโปรแกรม C ไม่ใช่ว่าฉันควรใช้หรือไม่

9
เหตุใดจึงมักเห็น“ null! = variable” แทน“ variable! = null” ใน C #?
ใน c # มีความแตกต่างในความเร็วในการกำจัดสำหรับลำดับที่คุณระบุเงื่อนไขหรือไม่? if (null != variable) ... if (variable != null) ... ตั้งแต่ไม่นานมานี้ฉันเห็นคนแรกค่อนข้างบ่อยและมันดึงดูดความสนใจของฉันตั้งแต่ฉันคุ้นเคยกับอันที่สอง ถ้าไม่มีข้อแตกต่างข้อแรกมีข้อดีอย่างไร?
103 c#  coding-style 

3
ความต่อเนื่องของบรรทัดสำหรับการทำความเข้าใจรายการหรือนิพจน์ตัวสร้างใน python
คุณควรจะแยกความเข้าใจในรายการที่ยาวมากได้อย่างไร? [something_that_is_pretty_long for something_that_is_pretty_long in somethings_that_are_pretty_long] ฉันยังเคยเห็นที่ไหนสักแห่งที่คนที่ไม่ชอบใช้ '\' เพื่อแบ่งสาย แต่ไม่เคยเข้าใจว่าทำไม เหตุผลเบื้องหลังนี้คืออะไร?

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