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

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


16
เกือบเสร็จโครงการแล้ว แต่มีรหัสสปาเก็ตตี้ ฉันจะเขียนใหม่หรือพยายามส่งมันต่อไปหรือไม่? [ปิด]
ฉันเป็นนักพัฒนาเว็บมือใหม่ (มีประสบการณ์หนึ่งปี) สองสามสัปดาห์หลังจากเรียนจบฉันได้รับงานเพื่อสร้างเว็บแอปพลิเคชันสำหรับ บริษัท ที่เจ้าของเทคโนโลยีไม่มากนัก เขาคัดเลือกฉันเพื่อหลีกเลี่ยงการขโมยความคิดของเขาค่าใช้จ่ายในการพัฒนาสูงที่ บริษัท ให้บริการเรียกเก็บและมีใครบางคนที่อายุน้อยกว่าเขาสามารถไว้วางใจ onboard เพื่อรักษาโครงการในระยะยาว (ฉันมาถึงข้อสรุปเหล่านี้ด้วยตนเอง ) Cocky เมื่อฉันย้อนกลับไปตอนนั้นฉันได้รับอนุปริญญาด้านวิทยาศาสตร์คอมพิวเตอร์ ฉันกำลังโทรนัด หลังจากการวิจัยบางอย่างที่ฉันตัดสินบน PHP และเริ่มต้นด้วย PHP ธรรมดาไม่มีวัตถุเพียงรหัสขั้นตอนที่น่าเกลียด สองเดือนต่อมาทุกอย่างยุ่งเหยิงและมันยากที่จะก้าวหน้า แอปพลิเคชั่นเว็บมีขนาดใหญ่มาก ดังนั้นฉันตัดสินใจที่จะตรวจสอบกรอบ MVC ที่จะทำให้ชีวิตของฉันง่ายขึ้น นั่นคือสิ่งที่ฉันได้พบกับเด็กสุดเจ๋งในชุมชน PHP: Laravel ฉันชอบมากมันเรียนรู้ได้ง่ายและฉันก็เริ่มเขียนโค้ดทันที รหัสของฉันดูสะอาดและเป็นระเบียบมากขึ้น มันดูดีมาก แต่เว็บแอปพลิเคชั่นก็มีขนาดใหญ่อีกครั้ง บริษัท กดดันให้ฉันส่งเวอร์ชั่นแรกซึ่งพวกเขาต้องการปรับใช้อย่างชัดเจนและเริ่มมองหาลูกค้า เพราะ Laravel สนุกกับการทำงานมันทำให้ฉันจำได้ว่าทำไมฉันถึงเลือกอุตสาหกรรมนี้ตั้งแต่แรก - บางอย่างที่ฉันลืมไปแล้วในขณะที่ติดอยู่ในระบบการศึกษาที่ไม่ดี ดังนั้นฉันจึงเริ่มทำงานในโครงการเล็ก ๆ ในเวลากลางคืนอ่านเกี่ยวกับวิธีการและแนวปฏิบัติที่ดีที่สุด ฉันมาเยือน OOP, ย้ายไปออกแบบเชิงวัตถุและการวิเคราะห์และอ่านลุงบ๊อบหนังสือรหัสสะอาด สิ่งนี้ช่วยให้ฉันรู้ว่าฉันไม่รู้อะไรเลย ฉันไม่ทราบวิธีการสร้างซอฟต์แวร์ THE RIGHT WAY …

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

7
Spring Framework ทำอะไรได้บ้าง ฉันควรใช้หรือไม่ ทำไมหรือทำไมไม่?
ดังนั้นฉันเริ่มโครงการใหม่ใน Java และกำลังพิจารณาใช้ Spring ทำไมฉันถึงต้องพิจารณาสปริง เพราะมีคนมากมายบอกฉันว่าฉันควรใช้ Spring! อย่างจริงจังทุกครั้งที่ฉันพยายามให้ผู้คนอธิบายว่าสปริงคืออะไรหรือทำอะไรพวกเขาไม่สามารถให้คำตอบแบบตรงกับฉันได้ ฉันได้ตรวจสอบอินโทรในเว็บไซต์ SpringSource และพวกมันซับซ้อนหรือเน้นการสอนจริง ๆ และพวกมันก็ไม่มีความคิดที่ดีว่าทำไมฉันถึงควรใช้มันหรือจะทำให้ชีวิตของฉันง่ายขึ้นได้อย่างไร บางครั้งผู้คนขว้างคำว่า "การพึ่งพา" ซึ่งทำให้ฉันสับสนมากยิ่งขึ้นเพราะฉันคิดว่าฉันมีความเข้าใจที่แตกต่างกันเกี่ยวกับความหมายของคำนั้น อย่างไรก็ตามนี่เป็นเพียงเล็กน้อยเกี่ยวกับพื้นหลังและแอพของฉัน: รับการพัฒนาใน Java ในขณะที่ทำการพัฒนาเว็บ back-end ใช่ฉันทำการทดสอบหน่วยเป็นตัน เพื่ออำนวยความสะดวกในเรื่องนี้ฉันมักจะสร้างวิธีการอย่างน้อยสองรุ่น: รุ่นที่ใช้ตัวแปรอินสแตนซ์และรุ่นที่ใช้ตัวแปรที่ส่งผ่านไปยังเมธอดเท่านั้น หนึ่งที่ใช้ตัวแปรอินสแตนซ์เรียกอีกคนหนึ่งที่จัดหาตัวแปรอินสแตนซ์ เมื่อถึงเวลาที่ต้องทดสอบหน่วยฉันใช้ Mockito เพื่อจำลองวัตถุแล้วโทรไปยังวิธีการที่ไม่ใช้ตัวแปรอินสแตนซ์ นี่คือสิ่งที่ฉันเข้าใจเสมอว่า "การฉีดพึ่งพา" แอพของฉันค่อนข้างเรียบง่ายจากมุมมอง CS โครงการขนาดเล็ก 1-2 นักพัฒนาที่จะเริ่มต้นด้วย การดำเนินการประเภท CRUD ส่วนใหญ่ที่มีการค้นหามากมายถูกโยนเข้ามาโดยทั่วไปแล้วเว็บเซอร์วิส RESTful รวมทั้งเว็บฟรอนต์เอนด์และในที่สุดก็มีลูกค้ามือถือบางส่วน ฉันกำลังคิดที่จะทำ front-end ด้วย HTML / CSS / JS / JQuery …

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

30
Stack Overflow มีชื่อเสียงสูงจะช่วยให้ได้งานที่ดีหรือไม่?
ในโพสต์ Joel Spolsky กล่าวว่าชื่อเสียง Stack Overflow 5 หลักสามารถช่วยให้คุณหางานที่จ่าย $ 100k + ของจริงมีเท่าไหร่? ใครบ้างที่ต้องการแบ่งปันความสำเร็จของพวกเขาในการได้งานที่มีรายได้สูงโดยอาศัยชื่อเสียงในไซต์ Stack Exchange ฉันอ่านที่ไหนสักแห่งว่ามีคนได้รับข้อเสนอสัมภาษณ์จาก Google เพราะผู้สรรหาพบว่ากองซ้อนล้นชื่อเสียงของเขาน่าประทับใจ ใครที่มีเรื่องราวคล้ายกัน

30
ทำไมโฆษณาสำหรับวิศวกร s / w มักพูดว่าพวกเขา“ เสนอสภาพแวดล้อมที่รวดเร็ว”
ใครอยากทำงานในสภาพแวดล้อมที่รวดเร็ว? ไม่ใช่ฉัน! ฉันต้องการสภาพแวดล้อมที่มีอารยธรรมซึ่งผู้คนมีความสมดุล งานที่มีคุณภาพสูงขึ้นจะได้รับการทำเช่นนั้นและชีวิตการทำงานจะไม่เต็มไปด้วยความเครียดและความปวดร้าว

15
เหตุใด Tanenbaum จึงผิดในการโต้วาที Tanenbaum-Torvalds
ฉันเพิ่งได้รับมอบหมายให้อ่านจากการโต้วาที Tanenbaum-Torvaldsในระดับระบบปฏิบัติการของฉัน ในการโต้วาที Tanenbaum ทำการคาดการณ์บางอย่าง: Microkernels เป็นอนาคต x86 จะตายไปและสถาปัตยกรรม RISC จะครองตลาด (5 ปีจากนั้น) ทุกคนจะใช้ระบบปฏิบัติการ GNU ฟรี ฉันอายุหนึ่งปีเมื่อมีการอภิปรายเกิดขึ้นดังนั้นฉันจึงไม่มีสัญชาตญาณทางประวัติศาสตร์ เหตุใดการคาดการณ์เหล่านี้จึงไม่ปรากฎขึ้น สำหรับฉันแล้วดูเหมือนว่าจากมุมมองของ Tanenbaum พวกเขาก็มีเหตุผลพอสมควรในอนาคต เกิดอะไรขึ้นเพื่อที่พวกเขาจะไม่ผ่านไป

14
เครื่องมือแก้ไขโค้ดสามารถบอกใบ้ถึงระดับการซ้อนโค้ดอย่างไรโดยไม่ต้องใช้การเยื้อง [ปิด]
ฉันได้เขียนโปรแกรมแก้ไขข้อความ XMLที่ให้ 2 ตัวเลือกมุมมองสำหรับข้อความ XML เดียวกันหนึ่งเยื้อง (จริง), อื่น ๆ ชิดซ้าย แรงจูงใจสำหรับมุมมองที่ถูกต้องทางซ้ายคือการช่วยให้ผู้ใช้เห็น 'อักขระช่องว่างที่พวกเขากำลังใช้สำหรับการเยื้องของข้อความธรรมดาหรือรหัส XPath โดยไม่มีการแทรกแซงจากการเยื้องซึ่งเป็นผลข้างเคียงโดยอัตโนมัติของบริบท XML ฉันต้องการที่จะให้เบาะแสที่มองเห็น (ในส่วนที่ไม่สามารถแก้ไขได้ของการแก้ไข) สำหรับโหมดชิดซ้ายที่จะช่วยให้ผู้ใช้ แต่ไม่ได้รับการทำอย่างละเอียดเกินไป ฉันลองใช้สายเชื่อมต่อ แต่มันดูยุ่งเกินไป สิ่งที่ดีที่สุดที่ฉันเคยได้รับมาจนถึงตอนนี้แสดงอยู่ในสกรีนช็อตของเครื่องมือแก้ไขด้านล่าง แต่ฉันกำลังมองหาทางเลือกที่ดีกว่า / ง่ายกว่า (ซึ่งไม่ต้องการรหัสมากเกินไป) [แก้ไข] รับแนวคิด heatmap (จาก: @jimp) ฉันได้รับสิ่งนี้และ 3 ทางเลือก - ระบุว่า a, b และ c: ส่วนต่อไปนี้อธิบายคำตอบที่ยอมรับว่าเป็นข้อเสนอโดยรวบรวมแนวคิดจากคำตอบและความคิดเห็นอื่นจำนวนมาก เนื่องจากคำถามนี้เป็นวิกิชุมชนตอนนี้โปรดอย่าลังเลที่จะอัปเดต NestView ชื่อสำหรับแนวคิดนี้ซึ่งมีวิธีการแสดงภาพเพื่อปรับปรุงความสามารถในการอ่านของโค้ดที่ซ้อนกันโดยไม่ต้องใช้การเยื้อง เส้นโค้ง ชื่อของเส้นที่แรเงาแตกต่างกันภายใน NestView ภาพด้านบนแสดง NestView ที่ใช้เพื่อช่วยให้เห็นภาพตัวอย่าง …

2
ชื่อแพ็คเกจควรเป็นแบบเอกพจน์หรือพหูพจน์
บ่อยครั้งที่ในไลบรารีโดยเฉพาะแพ็คเกจประกอบด้วยคลาสที่ถูกจัดระเบียบรอบ ๆ แนวคิดเดียว ตัวอย่าง: XML, SQL, การใช้งานการตั้งค่า, DB ผมคิดว่าเราทุกคนรู้สึกรักธรรมชาติที่แพคเกจเหล่านี้ถูกต้องในเอกพจน์ com.myproject xml . โครงการส่วนเสริมทั้งหมด SQL .Connection com.myproject ผู้ใช้ .User com.myproject ผู้ใช้. UserFactory อย่างไรก็ตามถ้าฉันมีแพ็คเกจที่มีชุดของการใช้งานประเภทเดียว - เช่นงาน, กฎ, ตัวจัดการ, แบบจำลอง ฯลฯซึ่งเป็นที่นิยมมากกว่า? com.myproject ภารกิจ. TakeOutGarbageTask com.myproject ภารกิจ. DoTheDishesTask com.myproject งาน.เพ้นท์เฮาส์เฮาส์ หรือ com.myproject ภารกิจ. TakeOutGarbageTask com.myproject ภารกิจ. DoTheDishesTask com.myproject task .PaintTheHouseTask

6
การเลือกระหว่างโครงการเดี่ยวหรือหลายโครงการในที่เก็บ git?
ในgitสภาพแวดล้อมที่เราได้ทำให้เป็นส่วนใหญ่โครงการเรากำลังเผชิญหนึ่งโครงการต่อพื้นที่เก็บข้อมูลหรือหลายโครงการต่อปัญหาการออกแบบพื้นที่เก็บข้อมูล ลองพิจารณาโครงการที่ทำให้เป็นโมดูล: myProject/ +-- gui +-- core +-- api +-- implA +-- implB วันนี้เรากำลังมีโครงการต่อหนึ่งพื้นที่เก็บข้อมูล มันให้อิสระในการ release แต่ละองค์ประกอบ tag แต่ละองค์ประกอบ แต่มันก็ยังเป็นเรื่องยุ่งยากสำหรับbranchส่วนประกอบที่บ่อยครั้งที่การแตกแขนงนั้นapiต้องการกิ่งไม้ที่เท่ากันcoreและส่วนประกอบอื่น ๆ เนื่องจากเราต้องการreleaseแต่ละองค์ประกอบเรายังสามารถได้รับความยืดหยุ่นที่คล้ายกันโดยใช้หลายโครงการต่อการออกแบบพื้นที่เก็บข้อมูล มีประสบการณ์อะไรบ้างและคุณได้จัดการกับปัญหาเหล่านี้อย่างไร?

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

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

25
หัวหน้าทีมใหม่ - วิธีจัดการกับอดีตผู้ไม่พอใจ [ปิด]
ฉันได้รับแจ้งว่าฉันจะเป็นผู้นำทีมของโครงการที่กำลังจะมาถึง ฉันไม่เคยเป็นหัวหน้าทีมมาก่อน แต่ความรับผิดชอบเป็นสิ่งที่คุณคาดหวังโดยมีประตูหมุนของนักพัฒนาอื่น ๆ 3 ถึง 4 คนในช่วง 8 หรือ 9 เดือนที่ต้องใช้เพื่อทำให้โครงการเสร็จสมบูรณ์ ปัญหาของฉันคือสิ่งนี้: หนึ่งในนักพัฒนาที่ไม่ต้องสงสัยเลยว่าการทำงานในโครงการนี้จะเป็นปัญหา เขามีประสบการณ์มากกว่าฉันเรียกฉันว่าคนโง่หลายครั้งในอดีตและบอกฉันว่าเขาทำงานนี้เพราะเขาเป็นผู้นำตามธรรมชาติ เขาคาดว่าจะได้รับการเลื่อนตำแหน่งให้เป็นผู้นำในทุกโครงการใหม่ (ซึ่งไม่ได้เกิดขึ้นจนถึงปัจจุบัน) และแม้กระทั่งเคยบอกฉันว่าฉันต้องรายงานกับเขาแม้ว่าผู้นำทีมที่แท้จริงจะไม่มีภาพลวงตาเช่นนั้น ยิ่งกว่านั้นฉันได้สังเกตและได้ยินจากคนอื่นว่าเขาเป็นมืออาชีพอย่างมาก (ดูวิดีโอที่ไม่ทำงานที่ไซต์ของลูกค้า - ไม่มีโทรศัพท์หัวแต่งตัวไม่เป็นอาชีพมาทำงานช้าทำให้ตลกไม่เหมาะสม ฯลฯ ) เขาใช้หรือพยายาม ให้เครดิตสำหรับงานหรือข้อมูลเชิงลึกของฉันหลายครั้งในขณะที่ฉันทำงานกับเขาในฐานะเพื่อน หัวหน้าทีมปัจจุบันของฉันบอกฉันว่าเธอขว้าง 1/2 ของรหัสของผู้ชายคนนี้เมื่อเขาออกจากโครงการเพราะคุณภาพไม่ดี ฉันสามารถไปต่อ ความกลัวของฉันคือว่าผู้ชายคนนี้จะทำงานอย่างแข็งขันกับฉันเพราะเขาจะไม่พอใจที่จะต้องรายงานให้คนที่เขาคิดว่าด้อยกว่าโดยเฉพาะอย่างยิ่งเมื่อฉันได้รับโอกาสนี้ต่อหน้าเขา ฉันประสบความสำเร็จในการจัดการกับบุคลิกภาพประเภทนี้ในฐานะเพื่อนหรือแม้กระทั่งรายงานต่อผู้จัดการเช่นนี้ในอดีต ฉันไม่ได้จัดการหรือเคยคิดเกี่ยวกับการจัดการกับตัวละครประเภทนี้ที่รายงานมาให้ฉัน คำถามของฉันคือ: ฉันจะใช้กลยุทธ์ประเภทใดในการจัดการกับสิ่งนี้อย่างมีประสิทธิภาพและเป็นมืออาชีพ โดยเฉพาะอย่างยิ่งตอนนี้ก่อนที่มันจะกลายเป็นปัญหามีวิธีใดที่จะตัดมันออกก่อนที่มันจะหลุดออกจากมือ ฯลฯ หากใครมีประสบการณ์คล้ายกันพวกเขาจัดการกับมันอย่างไร?
221 team-leader 

9
เหตุใดข้อความยกเว้นจำนวนมากจึงไม่มีรายละเอียดที่เป็นประโยชน์
ดูเหมือนจะมีจำนวนหนึ่งของข้อตกลงที่ข้อความยกเว้นควรมีรายละเอียดที่เป็นประโยชน์ ทำไมจึงเป็นเช่นนั้นข้อยกเว้นที่พบบ่อยจำนวนมากจากส่วนประกอบของระบบไม่มีรายละเอียดที่เป็นประโยชน์ ตัวอย่างบางส่วน: การListเข้าถึงดัชนี. NET ArgumentOutOfRangeExceptionไม่ได้บอกค่าดัชนีที่พยายามแล้วและไม่ถูกต้องและไม่ได้บอกช่วงที่อนุญาต โดยทั่วไปข้อความข้อยกเว้นทั้งหมดจากไลบรารีมาตรฐาน MSVC C ++ นั้นไร้ประโยชน์อย่างเต็มที่ (ในหลอดเลือดดำเดียวกันกับด้านบน) ข้อยกเว้นของออราเคิลใน .NET บอกคุณ (ถอดความ) "ตารางหรือมุมมองไม่พบ" แต่ไม่ได้ที่หนึ่ง ดังนั้นสำหรับฉันดูเหมือนว่าข้อความยกเว้นส่วนใหญ่ไม่มีรายละเอียดเพียงพอที่จะเป็นประโยชน์ ความคาดหวังของฉันอยู่นอกสายหรือไม่? ฉันใช้ข้อยกเว้นผิดที่ฉันสังเกตเห็นสิ่งนี้ด้วยหรือไม่ หรืออาจจะเป็นความประทับใจของฉันคือผิดส่วนใหญ่ของข้อยกเว้นไม่จริงให้รายละเอียดมีประโยชน์หรือไม่
220 c#  c++  exceptions 

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