วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

21
การเขียนโปรแกรมที่ประทับใจที่สุดที่คุณเคยเห็นคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ทุกคนรู้ว่าสุภาษิตโบราณว่าโปรแกรมเมอร์ที่ดีที่สุดสามารถเป็นคำสั่งที่มีขนาดใหญ่กว่าค่าเฉลี่ย ฉันเห็นโค้ดและโปรแกรมเมอร์ที่ดี แต่ก็ไม่มีอะไรที่ไร้สาระเลย ดังนั้นคำถามคืออะไรคือความสำเร็จที่น่าประทับใจที่สุดของการเขียนโปรแกรมที่คุณเคยเห็นหรือได้ยิน? คุณสามารถกำหนดความประทับใจโดย: ขอบเขตของงานในมือเช่นจอห์นพัฒนากรอบงานสำหรับ บริษัท ของเขาอย่างโดดเดี่ยวงานที่เทียบเคียงได้กับสิ่งที่ลูกจ้างอีก 200 คนทำงานร่วมกัน ความเร็วเช่น Stu ตั้งโปรแกรมแอปมัลติทาสกิ้งแบบเรียลไทม์ทั้งหมดในแต่ละสัปดาห์รวมถึง C คอมไพเลอร์และเครื่องมือบรรทัดคำสั่งเชลล์ ความซับซ้อนเช่น Jane ได้ออกแบบแอพ LOC ทั้ง 10 มิลลิตันเพื่อทำงานในกลุ่มเซิร์ฟเวอร์ และเธอก็ทำมันในตอนบ่าย คุณภาพเช่นรหัสของ Charles มีอัตราข้อบกพร่องต่อ LOC น้อยกว่าค่าเฉลี่ยของ บริษัท 100 เท่า นอกจากนี้เขายังทำความสะอาดและเข้าใจรหัสได้ทั้งหมด เห็นได้ชัดว่ายิ่งมีการรวมกันของคุณลักษณะเหล่านี้มากเท่าใดและยิ่งมากเท่าไหร่ความน่าประทับใจก็ยิ่งมากเท่านั้น ขอผมมีนะ อะไรคือสิ่งที่ไร้สาระที่สุดที่คุณสามารถเล่าได้? โปรดระบุรายละเอียดให้มากที่สุดและพยายามหลีกเลี่ยงตำนานในเมืองหรือการพูดเกินจริง โพสต์เฉพาะสิ่งที่คุณสามารถรับรองได้จริง คำถามโบนัส: …

11
ควรใช้เวลากับบั๊กกับการพัฒนาเริ่มต้นเท่าไหร่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คำถามนี้เป็นนามธรรมเล็กน้อย แต่ฉันหวังว่าบางคนสามารถชี้ฉันในทิศทางที่ถูกต้อง คำถามของฉันคือสิ่งที่เวลาหนึ่งสามารถคาดหวังที่จะอุทิศให้กับข้อบกพร่องของโครงการซอฟต์แวร์ที่เกี่ยวข้องกับเวลาในการพัฒนาเดิม ฉันรู้ว่ามีปัจจัยกำหนดจำนวนมากที่เข้ามา แต่ฉันก็หวังว่าจะมีการแยกย่อยทั่วไปหรือโดยเฉลี่ย ตัวอย่างเช่นหากโครงการ A ใช้เวลา 40 ชั่วโมงในการดำเนินการและแก้ไขข้อบกพร่องเพิ่มเติม 10 รายการโครงการนี้จะมีอัตราส่วน 4: 1 หากโครงการอื่น (B) ใช้เวลา 10 ชั่วโมงเพื่อให้เสร็จสมบูรณ์ แต่อีก 8 ข้อบกพร่องนั้นจะมีอัตราส่วน 5: 4 นี่เป็นแนวคิด / เอกสารที่วิจัยแล้วหรือไม่? UPDATE ขอบคุณสำหรับคำตอบที่ให้ข้อมูลทั้งหมด ฉันเข้าใจว่าเป็นไปไม่ได้ที่จะวางมาตรฐานในการวัดเช่นนี้เนื่องจากตัวแปรทั้งหมดและปัจจัยด้านสิ่งแวดล้อมที่เกี่ยวข้อง ก่อนที่ฉันจะกำหนดคำตอบฉันต้องการทราบว่าการวัดนี้มีชื่อที่ตกลงกันไว้หรือไม่เพื่อที่ฉันจะสามารถทำการวิจัยเพิ่มเติมได้ ฉันต้องการไปยังจุดที่ฉันสามารถเข้าใจการวัดที่จำเป็นในการสร้างตัวชี้วัดด้วยตนเองและในที่สุดก็มาพร้อมกับมาตรฐานพื้นฐานสำหรับโครงการของฉัน
26 bug  time 

9
การอธิบายสิ่งต่างๆทางเทคนิคให้กับบุคคลที่ไม่ใช่ด้านเทคนิค [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันมักจะมีการอธิบายสิ่งที่ทางด้านเทคนิคและการตัดสินใจทางเทคนิคของฉันมากผู้จัดการฝ่ายเทคนิคและไม่ใช่ฉันรักอันยิ่งใหญ่ที่มัน อะไรเป็นวิธีที่ดีที่จะทำให้สิ่งที่สำคัญเป็นใบ้สำหรับส่วนที่เหลือของโลกที่ไม่มีความหลงใหลในการเขียนโปรแกรม? ตัวอย่างคำถามที่ฉันถูกถาม: ทำไมคุณถึงใช้ Django แทน Java (ไม่ยอมรับว่ามันราคาถูกกว่า) ขอให้ฉันใช้ถ้อยคำใหม่โดยใช้คำศัพท์ที่ไม่ใช้ประโยคของฉันคือ "ไม่อนุญาตให้ใช้แท็ก HTML บางตัว" ฉันจะใบ้มันลงได้ยังไง? สิ่งอื่น ๆ ที่ทำให้รู้สึกดีกับผม แต่เป็นเพียงเพื่อให้พื้นฐานผมไม่ทราบวิธีการที่จะอธิบายได้ ทำไมนี่ทำไมทำไมทุกอย่าง! นอกจากนี้ฉันจะบอกผู้จัดการของฉันให้มองสิ่งพื้นฐานบน Google เช่น "เสาภาพคืออะไร"
26 management 

3
เหตุใด int จึงใช้เวลา 12 ไบต์ในเครื่องบางเครื่อง
ฉันสังเกตเห็นสิ่งที่แปลกหลังจากรวบรวมรหัสนี้ในเครื่องของฉัน: #include <stdio.h> int main() { printf("Hello, World!\n"); int a,b,c,d; int e,f,g; long int h; printf("The addresses are:\n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x", &a,&b,&c,&d,&e,&f,&g,&h); return 0; } ผลที่ได้คือ โปรดสังเกตว่าระหว่างทุก int แอดเดรสจะมีความแตกต่าง 4 ไบต์ อย่างไรก็ตามระหว่าง int สุดท้ายและ int ยาวมีความแตกต่าง 12 ไบต์: …
26 c  memory  pointers 

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

2
มันจะไม่ดีที่จะทำเครื่องหมาย constexpr ฟังก์ชั่น C ++?
รับฟังก์ชั่นที่น่ารำคาญมาก int transform(int val) { return (val + 7) / 8; } มันควรจะชัดเจนว่ามันง่ายที่จะเปลี่ยนฟังก์ชั่นนี้เป็นconstexprฟังก์ชั่นทำให้ฉันใช้มันเมื่อกำหนดconstexprตัวแปรเช่น: constexpr int transform(int val) { return (val + 7) / 8; } ข้อสันนิษฐานของฉันคือสิ่งนี้เป็นการปรับปรุงอย่างเข้มงวดเนื่องจากฟังก์ชันยังสามารถเรียกใช้ในconstexprบริบทที่ไม่ได้และตอนนี้สามารถใช้เพื่อช่วยกำหนดตัวแปรค่าคงที่เวลาคอมไพล์ได้ คำถามของฉันคือมีสถานการณ์ที่นี่เป็นความคิดที่ไม่ดีหรือไม่? เช่นโดยการใช้ฟังก์ชั่นนี้constexprฉันจะเคยพบกับสถานการณ์ที่ฟังก์ชั่นนี้จะไม่สามารถใช้งานได้ในบางสถานการณ์หรือมันจะทำงานผิดปกติหรือไม่?
26 c++  c++11 

7
แยกการคำนวณค่าส่งคืนและคำสั่งส่งคืนในวิธีเดียวหรือไม่
ฉันได้พูดคุยกับเพื่อนร่วมงานเกี่ยวกับการทำลายreturnคำสั่งและคำสั่งที่คำนวณค่าส่งคืนในสองบรรทัด ตัวอย่างเช่น private string GetFormattedValue() { var formattedString = format != null ? string.Format(format, value) : value.ToString(); return formattedString; } แทน private string GetFormattedValue() { return format != null ? string.Format(format, value) : value.ToString(); } รหัสฉลาดฉันไม่เห็นคุณค่าในตัวแปรแรก สำหรับฉันหลังมีความชัดเจนโดยเฉพาะอย่างยิ่งสำหรับวิธีการที่สั้น ข้อโต้แย้งของเขาไม่ว่าอะไรก็ตามที่ตัวแปรในอดีตนั้นง่ายต่อการตรวจแก้จุดบกพร่อง - ซึ่งค่อนข้างจะเป็นข้อดีเล็กน้อยเนื่องจาก VisualStudio ช่วยให้เราสามารถตรวจสอบข้อความได้อย่างละเอียดมากเมื่อการดำเนินการหยุดลงเนื่องจากจุดแตกหัก คำถามของฉันคือถ้ามันยังคงเป็นจุดที่ถูกต้องในการเขียนรหัสที่ชัดเจนน้อยลงเพียงเพื่อให้การดีบักการเหลือบง่ายขึ้น? มีข้อโต้แย้งเพิ่มเติมสำหรับตัวแปรที่มีการคำนวณแยกและreturnคำสั่งหรือไม่

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

2
เหตุใดโหมดการขึ้นบรรทัดใหม่แบบสากลจึงเลิกใช้ใน Python
ฉันเพิ่งสังเกตเห็นว่าคุณสมบัติการขึ้นบรรทัดใหม่สากลของการดำเนินการด้านไฟล์ดูเหมือนจะใกล้หมดแล้ว เอกสารประกอบสำหรับ Python 3.5 open's modeพารามิเตอร์ที่บ่งชี้ว่ามันเลิกใช้: 'U' โหมด newlines สากล (คัดค้าน) อย่างน้อยที่สุดกลับเป็น Python 3.2 openมีคำเตือน "ความเข้ากันได้ย้อนหลังเท่านั้น" ที่คล้ายกันเมื่อบันทึกการใช้modeอาร์กิวเมนต์: 'U' โหมดการขึ้นบรรทัดใหม่แบบสากล (สำหรับความเข้ากันได้แบบย้อนกลับไม่ควรใช้ในรหัสใหม่) แม้จะอยู่ใน Python 2.7 io.openเป็นคำเตือนที่คล้ายกันจะอยู่ในเอกสารของ เหตุผลนี้คืออะไร
26 python  io  deprecation 

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

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

8
ควร“ ระหว่าง x และ y” ควรสลับกันหรือไม่
ในแอปพลิเคชันของฉันมีเทมเพลตนิพจน์ที่กำหนดไว้ล่วงหน้าที่สามารถใช้กรองข้อมูลได้ หนึ่งในนั้นคือ " between x and y" วิศวกรควบคุมคุณภาพอ้างว่ามีข้อบกพร่องในคำจำกัดความเนื่องจาก " between 100 and 200" ให้ผลลัพธ์ที่แตกต่างจาก " between 200 and 100" นิพจน์ได้รับการแปลภายในเป็น " value >= x and value <= y" อย่างชัดเจนดังนั้นจึงไม่มีผลลัพธ์เมื่อขอบเขตที่สองต่ำกว่าขอบเขตแรก ฉันได้ตรวจสอบว่าพฤติกรรมเดียวกันนี้อยู่ใน SQL - " between x and y" ถือว่า y> = x หรือไม่มีผลลัพธ์ หมายความว่าตัวดำเนินการไม่ได้เป็นอย่างน้อยใน SQL ดังนั้นการควบคุมคุณภาพที่ถูกต้องว่า " between x and y" …

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

4
C # namespace และแบบแผนการตั้งชื่อคลาสสำหรับไลบรารี
ฉันกำลังสร้างห้องสมุดที่มีฟังก์ชั่นยูทิลิตี้ขนาดเล็กใน C # และพยายามตัดสินใจเกี่ยวกับเนมสเปซและการตั้งชื่อคลาส องค์กรปัจจุบันของฉันเป็นเช่นนี้: Company Company.TextUtils public class TextUtils {...} Company.MathsUtils public class MathsUtils {...} public class ArbitraryPrecisionNumber {...} public class MathsNotation {...} Company.SIUnits public enum SISuffixes {...} public class SIUnits {...} นี่เป็นวิธีที่ดีในการจัดระเบียบเนมสเปซและคลาสหรือมีวิธีที่ดีกว่านี้หรือไม่? โดยเฉพาะดูเหมือนว่ามีชื่อเดียวกันในเนมสเปซและชื่อคลาส (เช่นCompany.TextUtilsเนมสเปซและTextUtilsคลาส) เป็นเพียงการทำซ้ำและแสดงให้เห็นว่ารูปแบบอาจดีกว่า
26 c#  naming  namespace 

1
อะไรคือจุดประสงค์ของการวิเคราะห์รหัสและเมื่อใดที่ฉันต้องใช้มัน
ฉันได้ยินเกี่ยวกับการวิเคราะห์รหัสของ Visual Studio แต่ไม่เคยใช้ ฉันอ่านMSDNแล้ว แต่ก็ยังไม่เข้าใจถึงการใช้งานจริงของการวิเคราะห์รหัส ไม่เหมือนกับ StyleCop หรือ ที่ไหนสักแห่ง FxCop ก็พูดถึง การวิเคราะห์รหัสแตกต่างกันอย่างไร ฉันจำเป็นต้องใช้การวิเคราะห์รหัสสำหรับทุกโครงการหรือไม่ เพื่อนร่วมงานของฉันทำรีวิวรหัสไม่เพียงพอหรือไม่?

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