คำถามติดแท็ก naming-conventions

ระเบียบการตั้งชื่อหมายถึงกฎทั่วไปที่ควบคุมชื่อที่กำหนดให้กับการสร้างโปรแกรมมิงเช่นตัวแปรและวิธีการ อนุสัญญาเหล่านี้อำนวยความสะดวกในการอ่านและปรับปรุงความสามารถในการบำรุงรักษาของรหัสโดยบังคับใช้การตั้งชื่อที่สอดคล้องกันระหว่างโมดูลที่แตกต่างกัน

7
การใช้คำต่อท้าย "Async" ในชื่อเมธอดนั้นขึ้นอยู่กับว่าใช้ตัวแก้ไข "async" หรือไม่
หลักการสำหรับการต่อท้ายชื่อเมธอดด้วย "Async" คืออะไร? คำต่อท้าย "Async" ควรต่อท้ายเฉพาะเมธอดที่ประกาศด้วยasyncตัวปรับแต่งหรือไม่ public async Task<bool> ConnectAsync() หรือเพียงพอที่วิธีการคืนค่าTask<T>หรือTask? public Task<bool> ConnectAsync()

5
การตั้งชื่อคุกกี้ - แนวทางปฏิบัติที่ดีที่สุด [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ชื่อคุกกี้ควรมีลักษณะอย่างไร? ควรจะเป็น: lower_case CamelCase Underscore_Camel_Case UPPER_CASE หรือควรเป็นอย่างอื่น?


5
ชื่อวิธีการรับข้อมูล [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คำเตือน:นี่เป็นคำถาม / การสนทนาที่ไม่ร้ายแรงมากนักที่ฉันโพสต์ ... แต่ฉันยินดีที่จะพนันว่านักพัฒนาส่วนใหญ่ได้ไตร่ตรอง "ปัญหา" นี้แล้ว ... อยากได้ความคิดเห็นอื่น ๆ เกี่ยวกับหลักการตั้งชื่อสำหรับวิธีการที่ไปและได้ข้อมูลจากที่ไหนสักแห่งและส่งคืนมา ... ชื่อเมธอดส่วนใหญ่ค่อนข้างง่ายและชัดเจน ... SaveEmployee (), DeleteOrder (), UploadDocument () แน่นอนว่าในชั้นเรียนคุณมักจะใช้รูปแบบสั้น ๆ ... บันทึก () ลบ () อัปโหลด () ตามลำดับ อย่างไรก็ตามฉันต่อสู้กับการดำเนินการครั้งแรกมาโดยตลอด ... วิธีรับข้อมูล ดูเหมือนว่าสำหรับทุกโครงการฉันจะต้องกระโดดไปมาระหว่างรูปแบบการตั้งชื่อที่แตกต่างกันเพราะฉันไม่เคยพอใจกับข้อสุดท้ายที่ฉันใช้ เท่าที่ฉันสามารถบอกได้ว่านี่คือความเป็นไปได้ -> GetBooks () FetchBooks () ดึงหนังสือ …

6
หลักการตั้งชื่อสำหรับคลาสนามธรรม
ฉันจำได้ชัดเจนว่าครั้งหนึ่งแนวทางที่ Microsoft ผลักดันคือการเพิ่มคำต่อท้าย "ฐาน" ในคลาสนามธรรมเพื่อขจัดความจริงที่ว่ามันเป็นนามธรรม ดังนั้นเราต้องเรียนเหมือนSystem.Web.Hosting.VirtualFileBase, System.Configuration.ConfigurationValidatorBase, และของหลักสูตรSystem.Windows.Forms.ButtonBaseSystem.Collections.CollectionBase แต่ฉันสังเกตเห็นว่าในช่วงปลายปีที่ผ่านมาคลาสนามธรรมจำนวนมากใน Framework ดูเหมือนจะไม่เป็นไปตามอนุสัญญานี้ ตัวอย่างเช่นคลาสต่อไปนี้ล้วนเป็นนามธรรม แต่ไม่เป็นไปตามหลักการนี้: System.DirectoryServices.ActiveDirectory.DirectoryServer System.Configuration.ConfigurationElement System.Drawing.Brush System.Windows.Forms.CommonDialog และนั่นเป็นเพียงสิ่งที่ฉันสามารถตีกลองได้ในไม่กี่วินาที ดังนั้นฉันจึงค้นหาสิ่งที่เอกสารทางการพูดเพื่อให้แน่ใจว่าฉันไม่ได้บ้า ผมพบว่ารายชื่อของการเรียน, Structs และการเชื่อมต่อใน MSDN ที่แนวทางการออกแบบเพื่อการพัฒนาห้องสมุด Class น่าแปลกที่ฉันไม่พบคำแนะนำในการเพิ่ม "ฐาน" ต่อท้ายชื่อคลาสนามธรรม และแนวทางดังกล่าวไม่มีให้ใช้งานสำหรับ Framework เวอร์ชัน 1.1 อีกต่อไป ฉันแพ้มันหรือเปล่า? เคยมีแนวทางนี้หรือไม่? เพิ่งถูกทิ้งโดยไม่มีคำพูด? ฉันสร้างชื่อชั้นยาว ๆ ด้วยตัวเองตลอดสองปีที่ผ่านมาเพื่ออะไร? มีคนโยนกระดูกให้ฉันที่นี่ อัพเดท ฉันไม่ได้บ้า แนวทางมีอยู่ Krzysztof Cwalina จับเรื่องนี้ในปี 2548

6
หลักการตั้งชื่อ Python สำหรับโมดูล
ฉันมีโมดูลที่มีจุดประสงค์เพื่อกำหนดคลาสที่เรียกว่า "ปลายปากกา" (และคลาสอื่น ๆ ที่เกี่ยวข้องด้วย) ฉันจะเรียกโมดูลนี้ได้อย่างไร? "จะงอย"? "nibmodule"? มีอะไรอีกไหม

23
การตั้งชื่อคอลัมน์ ID ในตารางฐานข้อมูล
ฉันสงสัยความคิดเห็นของผู้คนเกี่ยวกับการตั้งชื่อคอลัมน์ ID ในตารางฐานข้อมูล ถ้าฉันมีตารางที่เรียกว่าใบแจ้งหนี้ที่มีคีย์หลักของคอลัมน์ข้อมูลประจำตัวฉันจะเรียกคอลัมน์นั้นว่า InvoiceID เพื่อที่ฉันจะได้ไม่ขัดแย้งกับตารางอื่นและเห็นได้ชัดว่ามันคืออะไร ที่ฉันทำงานปัจจุบันพวกเขาได้เรียก ID คอลัมน์ ID ทั้งหมด ดังนั้นพวกเขาจะทำสิ่งต่อไปนี้: Select i.ID , il.ID From Invoices i Left Join InvoiceLines il on i.ID = il.InvoiceID ตอนนี้ฉันพบปัญหาบางประการที่นี่: 1. คุณจะต้องใช้นามแฝงคอลัมน์ใน select 2. ID = InvoiceID ไม่พอดีกับสมองของฉัน 3. ถ้าคุณไม่ได้ใช้นามแฝงตารางและอ้างถึง InvoiceID จะเห็นได้ชัดว่าตารางใด มันอยู่? คนอื่น ๆ คิดอย่างไรในหัวข้อนี้?


5
เหตุใดไพลินท์จึงตั้งชื่อตัวแปรอักขระเดี่ยว
ฉันยังคงคุ้นเคยกับอนุสัญญา python และใช้pylintเพื่อทำให้โค้ดของฉันเป็น pythonic มากขึ้น แต่ฉันงงงวยกับความจริงที่ว่าไพลินท์ไม่ชอบชื่อตัวแปรอักขระเดี่ยว ฉันมีสองสามลูปดังนี้: for x in x_values: my_list.append(x) และเมื่อฉันเรียกใช้pylintฉันได้รับInvalid name "x" for type variable (should match [a-z_][a-z0-9_]{2,30}- นั่นแสดงให้เห็นว่าชื่อตัวแปรที่ถูกต้องต้องมีความยาวระหว่าง 3 ถึง 31 อักขระ แต่ฉันได้ดูหลักเกณฑ์การตั้งชื่อ PEP8แล้วและฉันไม่เห็นอะไรที่ชัดเจนเกี่ยวกับตัวอักษรตัวพิมพ์เล็กตัวเดียว และฉันเห็นตัวอย่างมากมายที่ใช้มัน มีบางอย่างที่ฉันขาดหายไปใน PEP8 หรือเป็นมาตรฐานเฉพาะสำหรับไพลินท์?

13
มีหลักการตั้งชื่อมาตรฐานสำหรับองค์ประกอบ XML หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีมาตรฐานใด ๆ สำหรับเอกสาร XML หรือไม่? ตัวอย่างเช่นวิธีใดเป็นวิธีที่ "ดีที่สุด" ในการเขียนแท็ก <MyTag /> <myTag /> <mytag /> <my-tag /> <my_tag /> ในทำนองเดียวกันถ้าฉันมีค่าที่แจกแจงสำหรับแอตทริบิวต์ที่ดีกว่า <myTag attribute="value one"/> <myTag attribute="ValueOne"/> <myTag attribute="value-one"/>

3
หลักการตั้งชื่อสำหรับค่าคงที่ของ Scala?
หลักการตั้งชื่อสำหรับค่าคงที่ของ Scala คืออะไร? การค้นหาสั้น ๆ ในคำแนะนำ StackOverflow CamelCase ตัวพิมพ์ใหญ่ (บรรทัดแรกด้านล่าง) แต่ฉันต้องการตรวจสอบอีกครั้ง val ThisIsAConstant = 1.23 val THIS_IS_ANOTHER_CONSTANT = 1.55 val thisIsAThirdConstant = 1.94 สไตล์สกาล่าแบบไหนที่แนะนำ

13
หลักการตั้งชื่อคีย์หลัก / คีย์ต่างประเทศ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ในกลุ่มนักพัฒนาของเรามีการถกเถียงกันอย่างดุเดือดเกี่ยวกับหลักการตั้งชื่อสำหรับคีย์หลักและคีย์ต่างประเทศ โดยพื้นฐานแล้วมีโรงเรียนความคิดสองแห่งในกลุ่มของเรา: 1: Primary Table (Employee) Primary Key is called ID Foreign table (Event) Foreign key is called EmployeeID หรือ 2: Primary Table (Employee) Primary Key is called EmployeeID Foreign table (Event) Foreign key is called EmployeeID ฉันไม่ต้องการให้ชื่อของตารางซ้ำกันในคอลัมน์ใด ๆ (ดังนั้นฉันชอบตัวเลือกที่ 1 …

7
หลักการตั้งชื่อสำหรับเมธอด Java ที่ส่งคืนบูลีน
ฉันชอบใช้เครื่องหมายคำถามต่อท้ายชื่อ method / function ในภาษาอื่น ๆ Java ไม่ยอมให้ฉันทำ วิธีแก้ปัญหาฉันจะตั้งชื่อเมธอดการส่งคืนบูลีนใน Java ได้อย่างไร การใช้is, has, should, canในด้านหน้าของเสียงวิธีการที่ถูกสำหรับบางกรณี มีวิธีที่ดีกว่าในการตั้งชื่อวิธีการดังกล่าวหรือไม่? เช่น createFreshSnapshot?

28
GB English หรือ US English?
หากคุณมี API และคุณเป็นนักพัฒนาในสหราชอาณาจักรที่มีผู้ชมจากต่างประเทศสูง API ของคุณควรเป็น setColour() หรือ setColor() (เพื่อใช้คำหนึ่งคำเป็นตัวอย่างง่ายๆ) วิศวกรที่อยู่ในสหราชอาณาจักรมักจะค่อนข้างป้องกันเกี่ยวกับการสะกดคำที่ 'ถูกต้อง' แต่อาจเป็นที่ถกเถียงกันอยู่ว่าการสะกดของสหรัฐฯเป็น 'มาตรฐาน' มากกว่าในตลาดต่างประเทศ ฉันเดาว่าคำถามมันสำคัญหรือไม่? นักพัฒนาซอฟต์แวร์ในภาษาอื่น ๆ ต่อสู้กับการสะกด GB หรือโดยปกติมันค่อนข้างชัดเจนว่าสิ่งต่างๆหมายถึงอะไร ทุกอย่างควรเป็นภาษาอังกฤษแบบสหรัฐอเมริกาหรือไม่

30
ฉันผิดศีลธรรมหรือไม่ที่ใช้ชื่อตัวแปรที่แตกต่างจากประเภทของชื่อนั้น ๆ
ตัวอย่างเช่นใช้รหัสนี้: var person = new Person(); หรือสำหรับคุณ Pythonistas: person = Person() ฉันบอกตลอดเวลาว่าสิ่งนี้เลวร้ายแค่ไหน แต่ยังไม่เห็นตัวอย่างของการผิดศีลธรรมของรหัสสองบรรทัดนี้ สำหรับฉันแล้วคน ๆ หนึ่งก็คือบุคคลและการพยายามตั้งชื่ออื่นเป็นการเสียเวลา ฉันคิดว่าในช่วงหลายวันก่อนที่จะเน้นไวยากรณ์สิ่งนี้จะเป็นเรื่องใหญ่ แต่ทุกวันนี้มันค่อนข้างง่ายที่จะบอกชื่อประเภทนอกเหนือจากชื่อตัวแปร Heck มันง่ายมากที่จะเห็นความแตกต่างที่นี่ใน SO หรือมีบางอย่างที่ฉันขาดหายไป? ในกรณีนี้จะเป็นประโยชน์หากคุณสามารถให้ตัวอย่างโค้ดที่ทำให้เกิดปัญหาได้

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