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

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

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

1
ฉันจะจัดระเบียบไฟล์การเขียนโปรแกรมลงในไดเรกทอรีได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว บางครั้งหนึ่งสร้างต้นแบบสำรวจและลืมเกี่ยวกับโครงสร้างในไดเรกทอรี ... อะไรคือเคล็ดลับที่ดีในการแบ่งไฟล์โปรแกรมมิงค์ในหลาย ๆ ไดเรกทอรี

4
คุณได้จัดส่งคุณจะได้รับข้อผิดพลาด seg ที่หายาก การตรวจสอบตัวชี้หรือปล่อยมันไป?
คุณได้ส่งการยืนยันถูกปิดคุณจะได้รับรายงานข้อผิดพลาดที่หายากซึ่งระบุว่ามีการละเมิดตัวชี้โมฆะในรหัสของคุณ ในสภาพแวดล้อมการพัฒนาปัญหาจะได้รับการยืนยันโดยยืนยัน สิ่งที่คุณมีคือรายงานข้อขัดข้องดังนั้นการทำซ้ำปัญหาจึงเป็นไปไม่ได้ การติดตามย้อนกลับไม่ได้ให้เบาะแสใด ๆ ว่าทำไมความผิดพลาดจึงเกิดขึ้นตั้งแต่แรก ตัวเลือก: - เพิ่มการตรวจสอบตัวชี้เพื่อป้องกันความผิดพลาด วิธีนี้จะช่วยป้องกันความผิดพลาด แต่คุณอาจไม่ทราบด้วยซ้ำว่าทำไมจึงเกิดขึ้นตั้งแต่แรก - ปล่อยให้มันบินไปหวังว่ามันจะเกิดขึ้นอีกครั้งด้วยสถานการณ์จำลอง สมมติว่าแอปพลิเคชันไม่ได้มีไว้สำหรับขีปนาวุธนำทางหรือระบบเบรกอัตโนมัติ ... คุณจะเลือกแบบไหน
9 bug  pointers 

7
ภาษาพูดของเจ้าของภาษาส่งผลกระทบต่อคุณภาพของรหัสหรือไม่
มีโรงเรียนแห่งความคิดในภาษาศาสตร์ที่การแก้ปัญหาเชื่อมโยงกับไวยากรณ์ความหมายไวยากรณ์และความยืดหยุ่นของภาษาพูดของเจ้าของภาษา เมื่อทำงานกับทีมพัฒนาระหว่างประเทศหลายแห่งฉันสามารถเห็นวัฒนธรรมทางจิต (ถ้าคุณต้องการ) ใน codebase อย่างชัดเจน นอกเหนือจากการเขียนโปรแกรมภาษารหัสภาษาเยอรมันค่อนข้างแตกต่างจากเพื่อนร่วมงานของฉันในอินเดีย รหัสก็แตกต่างกันอย่างชัดเจนในอเมริกากลางเช่นเดียวกับในอเมริกาชายฝั่ง (จริง ๆ แล้ว IBM สังเกตเมื่อหลายปีก่อน) คุณสังเกตเห็นกับเพื่อนร่วมงานระหว่างประเทศของคุณ (จากประเทศใด ๆ ) ว่ารูปแบบการเข้ารหัสและการแก้ปัญหาสอดคล้องกับภาษาท้องถิ่นหรือไม่?

2
ควรจะทุ่มเทความพยายามลงในแต่ละส่วนของโครงการน้ำตกอย่างไร
น้ำตกทั่วไปรวมถึง: ความต้องการ การออกแบบฟังก์ชั่น การออกแบบทางเทคนิค สร้าง ทดสอบ ทบทวน (ปรับใช้) และทำซ้ำในรายการนี้ หากฉันลืมขั้นตอนหนึ่งโปรดแจ้งให้เราทราบ

3
เกณฑ์ที่ดีในการใช้ Tracer Bullets มีอะไรบ้าง
ฉันเพิ่งอ่าน The Pragmatic Programmer เป็นครั้งแรกและฉันได้พบกับแนวคิดของ Tracer Bullets ฉันรู้ว่าฉันได้เขียนตามแบบจำลองนี้ในอดีตและเพิ่งยื่นแบบที่ฉันทำงานในสมองของฉันเป็น "เปรียว" พวกเขาเพียงยกตัวอย่างหนึ่งที่พวกเขาเคยใช้มันในอดีต วิธีที่สถานการณ์ถูกระบุว่าเป็นตัวเลือกที่ดีสำหรับ Tracer Bullets คือ มีสิ่งแปลกปลอมมากมายและสภาพแวดล้อมที่แตกต่างกันและไม่มีใครแน่ใจว่า GUI ควรประพฤติอย่างไร ดูเหมือนว่าโครงการจะเริ่มขึ้นเป็นจำนวนมากโดยเฉพาะอย่างยิ่งเมื่อคุณทำงานกับคนที่ไม่ใช่ด้านเทคนิคในแอพทางธุรกิจทั่วไปสำหรับกองทุนป้องกันความเสี่ยง (เป็นตัวอย่าง) ฉันใช้มันเพราะรู้สึกถูกต้องโดยที่ไม่รู้ว่ามันถูกเรียกหรือมีคำอธิบายให้ฉัน ฉันรู้ว่าถ้าฉันพยายามทำให้ทุกคนอยู่ในห้องและให้พวกเขาระบุทุกอย่าง (หรืออย่างน้อยก็บางอย่าง) ข้างหน้ามันจะเป็นหายนะที่สมบูรณ์ แต่อีกครั้งนั่นเป็นความรู้สึก ... ใครบ้างที่สามารถสร้างเกณฑ์ที่เป็นรูปธรรมมากขึ้นเมื่อแบบจำลองนี้เป็นไปได้หรือไม่

4
MVC เป็นเพียงแค่ SEO ของการเขียนโปรแกรม PHP หรือไม่
มีกรอบ PHP จำนวนหนึ่งพันล้านอัน และส่วนใหญ่ของพวกเขาเรียกเก็บเงินตัวเองเป็นดังต่อไปนี้รูปแบบ MVC ในขณะที่ยินดีที่จะเอาชนะรูปแบบการเข้ารหัส osCommerce (ตรรกะการประมวลผลอย่างมากผสมกับ SQL และ HTML) แต่ก็มีวิธีที่ง่ายกว่าและง่ายกว่าในการทำตามแนวทางเพื่อให้ได้การออกแบบแอปพลิเคชันที่คงไว้ได้ แนวคิด MVC ดั้งเดิมได้รับการกำหนดเป้าหมายที่แอปพลิเคชัน GUI และสำหรับ Gtk / Python ดูเหมือนจะเป็นไปได้ที่จะทำตามนั้น แต่เว็บแอป PHP ไม่ทำงานบน live Views (องค์ประกอบ GUI) และรันไทม์คอนโทรลเลอร์แบบต่อเนื่อง มันค่อนข้างผิดถ้ามันอธิบายการใช้การจัดกลุ่มไดเรกทอรี + รหัสหรือการตั้งชื่อคลาส ดูเหมือนว่า "MVC" จะถูกใช้เหมือน buzzword สำหรับกรอบงาน PHP และฉันเคยเห็นเฟรมเวิร์ค PHP ที่เป็นผู้ใหญ่หนึ่งหรือสองเฟรมยอมรับแล้ว แต่นิยามวลีใหม่เพื่อจับคู่ interna ปกติแล้วน้ำมันงูจะเป็นอย่างไร เหตุใดจึงไม่ใช้คำศัพท์ที่ดีกว่าและแนวคิดที่เหมาะสมกว่าสำหรับการเผยแพร่ PHP แบบบำรุงรักษาได้ การใช้เหตุผลบางอย่างละเอียด ทำไมฉันสงสัยว่าการใช้งาน PHP …
9 php  mvc 

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

10
เปลี่ยนจาก C # เป็น Java ซึ่ง“ gotchas” ฉันควรสนใจอะไร
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันอาจต้องเปลี่ยนมาใช้ Java สำหรับโครงการใหม่ ฉันมีความรู้น้อยมากเกี่ยวกับ Java เพราะฉันได้ศึกษาและใช้ C # เป็นหลักและฉันกลัวว่าความแตกต่างระหว่างสองภาษา / แพลตฟอร์มนี้น่าจะทำให้เกิดปัญหามากมาย ข้อผิดพลาด / gotchas ใดที่ฉันควรดูแล
9 java  c#  .net  pitfalls 

1
อะไรที่ทำให้การแยกวิเคราะห์ง่ายกว่าสิ่งอื่น
ฉันเพิ่งอ่านหน้า Wikipedia สำหรับWebAssemblyและมันบอกว่า: " WebAssembly คือ ... ออกแบบให้แยกได้เร็วกว่า JavaScript " ซึ่งทำให้ฉันคิดว่าอะไรจะทำให้ภาษาหรือรูปแบบข้อมูลเร็วขึ้นในการแยกวิเคราะห์กว่าอื่น ๆ และขั้นตอนวิธีการแยกวิเคราะห์คืออะไร ใช้?

2
จะหลีกเลี่ยงอินเทอร์เฟซที่บ้าคลั่งใน UI ด้วยการฉีดแบบพึ่งพาได้อย่างไร
ปัญหา ฉันเพิ่งอ่านมากเกี่ยวกับ Singletons ไม่ดีและวิธีการฉีดพึ่งพา (ซึ่งฉันเข้าใจว่าเป็น "ใช้อินเตอร์เฟส") ดีกว่า เมื่อฉันใช้ส่วนนี้กับ callbacks / interfaces / DI และปฏิบัติตามหลักการแยกส่วนติดต่อฉันสิ้นสุดค่อนข้างยุ่งเหยิง การพึ่งพาของพาเรนต์ UI ที่โดยทั่วไปแล้วพวกเด็ก ๆ ทั้งหมดรวมกันดังนั้นยิ่งลำดับชั้นขององค์ประกอบ UI มากขึ้นเท่าใดคอนสตรัคเตอร์ก็ยิ่งบวมมากขึ้นเท่านั้น ทางด้านบนของลำดับชั้น UI นั้นเป็นคลาสแอปพลิเคชันเก็บข้อมูลเกี่ยวกับการเลือกปัจจุบันและการอ้างอิงถึงโมเดล 3 มิติที่ต้องการสะท้อนการเปลี่ยนแปลง แอปพลิเคชั่นคลาสใช้งานอินเทอร์เฟซ 8 ตัวและนี่เป็นเพียงหนึ่งในห้าของผลิตภัณฑ์ (/ อินเตอร์เฟส) ที่จะเกิดขึ้น! ฉันทำงานกับ singleton ที่ถือการเลือกปัจจุบันและองค์ประกอบ UI ที่มีฟังก์ชั่นเพื่อปรับปรุงตัวเอง ฟังก์ชั่นนี้จะแยกส่วนทรี UI และองค์ประกอบ UI จากนั้นเข้าถึงซิงเกิลที่เลือกปัจจุบันตามต้องการ รหัสดูเหมือนจะสะอาดกว่าสำหรับฉันด้วยวิธีนี้ คำถาม โครงการนี้น่าจะเหมาะสำหรับโครงการนี้หรือไม่ ถ้าไม่มีข้อบกพร่องพื้นฐานในการคิดและ / หรือการนำ DI มาใช้ซึ่งทำให้ยุ่งยาก …

7
ใน Scrum วิธีจัดการกับความขัดแย้ง / ภาระงานเมื่อสิ้นสุดการวิ่ง
ทีมของฉันเริ่มใช้ Scrum เมื่อสองสามปีก่อน โครงการของเราเกี่ยวข้องกับการสร้างซอฟต์แวร์ที่เชื่อมต่อกับอุปกรณ์ทางกายภาพ (คิดว่าโรบอตและเซ็นเซอร์) และผลิตภัณฑ์ที่ค้างทั่วไปของเรามักจะเป็นตัวแทนของการเพิ่มอุปกรณ์ควบคุมในระบบทั้งหมด เราแบ่งลงงานใกล้เคียงกับตัวอย่างที่นี่ คุณลักษณะการรวมอุปกรณ์แต่ละรายการจะแบ่งเป็นรหัสการทดสอบการทดสอบการรวมระบบการตรวจสอบโดยเพื่อน ฯลฯ เห็นได้ชัดว่ามีลำดับตามรายการสินค้าค้างแต่ละรายการ โดยทั่วไปแล้วการวิ่งของเราในช่วง 2 สัปดาห์ที่ผ่านมาและทีมมีสมาชิกระหว่าง 4 ถึง 6 คน เราพบปัญหา 2 ข้อเมื่อสิ้นสุดการวิ่ง: ประการแรกคือการทำให้ทุกคนไม่ว่างในตอนท้ายของการวิ่ง อันที่สอง (ที่เกี่ยวข้อง) คือการแข่งขันในระบบ เราค่อนข้างจะรวมการทำงานในช่วงสองสามวันสุดท้ายของการวิ่ง เรามีระบบการรวมเพียงระบบเดียวดังนั้นผู้คนมักถูกบล็อกไม่ให้ทำงานต่อเนื่องเพราะพวกเขาไม่สามารถเข้าถึงระบบได้ เนื่องจากเป็นจุดสิ้นสุดของการวิ่งจึงไม่มีงานเหลืออีกมากที่ต้องทำในงานค้างการวิ่ง คนเหล่านี้ควรทำงานอะไร การรับไอเท็มจากด้านบนสุดของผลิตภัณฑ์ค้างนั้นยังไม่ได้รับอย่างดีจากเจ้าของผลิตภัณฑ์เนื่องจากรายการปัจจุบันยังไม่เสร็จ การทำงานด้านหนี้สินทางเทคนิคจะช่วยโครงการโดยรวม แต่จะไม่ช่วยให้การดำเนินการเสร็จสิ้น มีแนวปฏิบัติที่ดีที่สุดสำหรับโครงสร้างการวิ่งอย่างใดอย่างหนึ่งเพื่อหลีกเลี่ยงปัญหาเหล่านี้หรือไม่? เคล็ดลับในการเจรจากับเจ้าของผลิตภัณฑ์?
8 agile  scrum 

17
คุณนับว่าปริญญาโทใน CS เป็นลบหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา จากประสบการณ์ของฉันในการสัมภาษณ์นักพัฒนาฉันรู้สึกเหมือนผู้สมัครที่ได้รับปริญญาโทใน Comp Sci มีแนวโน้มที่จะเป็นโปรแกรมเมอร์ที่แย่กว่าโดยเฉลี่ยที่ผู้ที่ไม่มีปริญญาโท นั่นเป็นเพียงฉันหรือให้คนอื่นสังเกตเห็นปรากฏการณ์นี้ ถ้าเป็นเช่นนั้นทำไมเป็นเช่นนั้น UPDATE ฉันขอขอบคุณความคิดเห็นที่รอบคอบ ฉันคิดว่าฉันควรจะชัดเจนกว่าในการเปรียบเทียบที่ฉันทำ ให้ผู้สมัครสองคนที่จบการศึกษาจากวิทยาลัยในเวลาเดียวกันคนที่ได้รับปริญญาโทโดยเฉลี่ยดูเหมือนจะเป็นโปรแกรมเมอร์ที่แย่กว่าคนที่ใช้เวลาทั้งหมดในอุตสาหกรรม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.