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

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

4
“ หากต้องการรหัสอย่างรวดเร็วคุณต้องออกจากการเข้ารหัส”
ก่อนอื่นไม่ใช่วลีของฉัน: http://www.whattofix.com/blog/archives/2010/11/to-code-quickly.phpอุปกรณ์ประกอบฉากถึง Mr. Markham แต่มันทำให้ฉันต้องคิดถึงคำถามมากมายที่ฉันได้เห็นเกี่ยวกับความสามารถในการทำสิ่งต่าง ๆ ให้สำเร็จ วิธีการสนับสนุน (การตั้งค่าตัวจับเวลาสำหรับช่วงเวลาที่กำหนดในกรณีนี้ 50 นาที แต่ฉันเคยเห็นคนพูดคุยเกี่ยวกับการทำลายการผัดวันประกันพรุ่งด้วยการตั้งค่าเวลาสั้นที่สุดเท่าที่ห้านาทีสำหรับงานที่คุณไม่สามารถพาตัวเองไปทำ การพักผ่อนระยะสั้น) ดูเหมือนจะเป็นเรื่องสามัญ แต่ผู้คนมากมายสนับสนุนให้เข้าสู่ "โซน" และอยู่ที่นั่นนานที่สุดอาจจะเป็นเวลาหลายชั่วโมงแทนที่จะทำลายช่องว่างของพวกเขา ฉันพยายามใช้วิธีที่แตกต่างกันและพบว่าแต่ละคนมีจุดแข็งและจุดอ่อนของตัวเอง คุณใช้เทคนิคประเภทใดเพื่อให้มีประสิทธิภาพมากขึ้น (เช่นการทำงานให้ได้ตามระดับคุณภาพที่ลูกค้า / หัวหน้า / อื่น ๆ ต้องการในเวลาที่กำหนด) ในการพัฒนาซอฟต์แวร์และไม่ใช่แค่ใช้เวลามากขึ้นกับคีย์บอร์ด ?

5
LINQ ไปยัง SQL ไม่ทำงานหรือไม่
มีเหตุผลใดที่จะใช้ Linq กับ SQL ต่อไปหรือดีกว่าที่จะย้ายไปใช้เทคนิค ORM เช่น EF, NHibernate เป็นต้น เรากำลังใช้ Linq กับ SQL ในแอปพลิเคชันองค์กรขนาดใหญ่ใหม่ที่จะมีอยู่เป็นเวลานาน แรงจูงใจสำหรับแอปพลิเคชันระดับองค์กรใหม่นี้คือแอปพลิเคชันนี้เขียนขึ้นตามปกติใน Visual Basic และเนื่องจาก Microsoft หยุดการสนับสนุน ดูเหมือนว่าเรามีอยู่แล้ว แต่คราวนี้มาพร้อม DAL (Data Access Layer) ของเรา ฉันได้อ่านบทความนี้แล้ว แต่เปรียบเทียบกับความอ่อนแอของ EF เท่านั้น

16
มันจะเลวร้ายแค่ไหนหากขาดการทำงานเป็นทีมเมื่อคุณเป็นโปรแกรมเมอร์ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบ เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันยังอยู่ที่โรงเรียนและฉันรู้ว่าฉันมีปัญหาในการติดต่อกับคนอื่น ฉันไม่ได้โกรธหรืออายหรือแตกต่างฉันชอบที่จะทำงานในแบบของฉันและด้วยความคิดเห็นของฉันในขณะที่เคารพผู้อื่นฉันมีความอยากรู้อยากเห็นและหิวโหยสำหรับความรู้ แต่ฉันขาดการฝึกฝนและฉันเดาว่าคนไม่ต้องการทำงาน กับฉันเพราะพวกเขาอาจกลัวฉันจะพูดถึงกำลังใจในการทำงานบางอย่าง (ตัวอย่างเช่นฉันเริ่มเรียนรู้การเขียนโปรแกรมโดยใช้ linux แทน windows แม้ว่าฉันจะใช้ windows เป็นจำนวนมากและฉันมี mac) เกิดอะไรขึ้นกับโปรแกรมเมอร์ที่ไม่มีการทำงานเป็นทีม ปัญหาเริ่มต้นที่ใด การเป็นโปรแกรมเมอร์ที่ดีต้องชดเชยอย่างน้อยนิดหน่อย? เป็นเรื่องปกติหรือไม่ที่โปรแกรมเมอร์จะมีวิสัยทัศน์เกี่ยวกับงานของเขาแทนที่จะทำในสิ่งที่เขาบอก
17 teamwork 

6
รหัสการจัดรูปแบบแบบสอบถาม SQL
ฉันควรทำลายแบบสอบถาม SQL ในบรรทัดที่แตกต่างกันหรือไม่ ตัวอย่างเช่นในโครงการที่ฉันกำลังดำเนินการเรามีแบบสอบถามที่ใช้คอลัมน์ 1600! 1600 + ตัวอักษรแท็บ ฉันเขียนข้อความค้นหาเช่นนี้: "SELECT bla , bla2 , bla FROM bla " . "WHERE bla=333 AND bla=2" . "ORDER BY nfdfsd ..."; แต่พวกเขาเรียกร้องให้ฉันใส่ไว้ในบรรทัดเดียวและบอกว่าสไตล์ของฉันจัดรูปแบบไม่ถูกต้อง ทำไมมันเป็นการปฏิบัติที่ไม่ดี?

2
ความสำคัญของ XML ในโลกของ JSON คืออะไร?
การเรียนรู้ XML สำคัญแค่ไหนเมื่อ JSON สามารถทำสิ่งที่ฉันต้องการได้เกือบทั้งหมด ต้องบอกว่าฉันใช้ JSON เป็นหลักสำหรับการร้องขอ AJAX และรับข้อมูลจาก API ต่างๆ ฉันเป็นมือใหม่ในการพัฒนาเว็บไซต์และเหตุผลที่ฉันถามนี่คือฉันต้องการทราบว่าฉันควรจะไปข้างหน้าและซื้อหนังสือบน XML หรือไม่หรือว่าฉันสามารถให้มันผ่าน
17 xml 

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

2
คุณวัดประสิทธิภาพของกระบวนการจ้างงานและการสัมภาษณ์ของคุณอย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา แม้ว่าฉันจะได้เห็นการสนทนามากมายเกี่ยวกับวิธีการสัมภาษณ์และพัฒนาแบรนด์ของคุณ แต่ฉันไม่ได้เห็นการอภิปรายมากมายเกี่ยวกับวิธีพิจารณาว่ากระบวนการจ้างงานและการสัมภาษณ์ของคุณทำงานได้ดีจริงหรือไม่ ฉันคิดว่าคำถามนี้มีสองส่วน: คุณจะรู้ได้อย่างไรว่ากระบวนการจ้างงานของคุณได้รับผู้สมัครที่เหมาะสมในการสมัครและผ่านขั้นตอนการสัมภาษณ์? จากคนที่คุณสัมภาษณ์ท้ายที่สุดคุณจะบอกได้อย่างไรว่าคนที่คุณเลือกจ้างดีกว่าคนที่คุณปฏิเสธโดยเฉลี่ย ฉันคิดว่ากรณี "สุดขั้ว" - เมื่อคุณจบด้วยซูเปอร์สตาร์หรือคนโง่ทั้งหมด - จะค่อนข้างชัดเจน แต่ส่วนที่เหลือ?
17 interview  hiring 

7
ต้อนผู้ใช้ของคุณไปยังเครื่องมือติดตามบั๊กของคุณ
ฉันมีตัวติดตามบตัสตั๊กแตนตำข้าวที่กำหนดค่าอย่างสมบูรณ์สำหรับการติดตามปัญหาในแอพที่ฉันสร้างขึ้น เมื่อผู้ใช้ถูกลงโทษทางวินัยและตรงไปที่ตั๊กแตนตำข้าวเพื่อเขียนรายงานปัญหาเขา / เธอจะมีการตอบสนองที่รวดเร็วที่สุดและทุกอย่างที่เกี่ยวข้องกับปัญหาจะติดตามได้ง่าย อย่างไรก็ตามไม่ใช่ทุกคนที่กระตือรือร้นที่จะทำเช่นนั้น พวกเขารายงานปัญหาของพวกเขาทางโทรศัพท์อีเมลไม่รายงานเลย อะไรจะเป็นวิธีที่ดีที่สุดในการผลักดันพวกเขาไปสู่การใช้ระบบบั๊กแทรคเตอร์? เห็นได้ชัดว่าพวกเขาจะต้องเห็นประโยชน์ทันทีเพื่อให้พวกเขาสามารถกลับมาและมองหาผลประโยชน์เพิ่มเติม แก้ไข: ฉันกำลังพูดถึงการสนับสนุนผลิตภัณฑ์ที่ฉันขายเป็น ISV

7
ผู้ทดสอบถือว่าโปรไฟล์ต่ำหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันรู้ว่าผู้ดูแลระบบบางคนและตามเขาการทดสอบพวกไม่ได้รับการตั้งค่าในองค์กรเมื่อเทียบกับนักพัฒนา ไม่ต้องสงสัยเลยว่าการเปิดตัวซอฟต์แวร์ไม่สามารถทำได้หากไม่มีผู้ทดสอบ แต่ฉันไม่เคยลองทดสอบเลย ไม่มีเจตนากระทำความผิด
17 testing 

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

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

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

3
โปรแกรมเมอร์สามารถพัฒนาทักษะ UX ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ในฐานะโปรแกรมเมอร์เราสามารถแก้ปัญหาที่ซับซ้อนมากได้ แต่เมื่อเราต้องออกแบบส่วนต่อประสานกับผู้ใช้เรามักจะล้มเหลวในการทำให้ใช้งานง่าย ใน บริษัท ขนาดเล็กพวกเขาไม่สามารถมีนักออกแบบและผู้เชี่ยวชาญ UX ได้โปรแกรมเมอร์ต้องทำเกือบทุกอย่างในซอฟต์แวร์ แต่อินเทอร์เฟซเหล่านี้ไม่ค่อยง่าย ( ตัวอย่างคลาสสิก ) อะไรคือปัญหา? นักพัฒนาสามารถพัฒนาทักษะในการออกแบบประสบการณ์การใช้งานที่ดีได้อย่างไร

6
คุณเขียนภาษาที่สองในประวัติย่อของคุณหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว โปรแกรมเมอร์ทุกคนมีภาษาหลักที่เขาใช้เวลาส่วนใหญ่และคุ้นเคยกับ แต่ยังมีภาษาที่คุณรู้ในแง่ที่คุณเคยรู้จักพวกเขาดีมากในอดีต แต่ไม่ได้ใช้ในขณะที่หรือคุณใช้พวกเขานาน ๆ ครั้งและดังนั้นจึงไม่ได้แช่อยู่ในพวกเขาเช่นคุณ เป็นภาษาหลักของคุณ คุณสามารถทำให้ตัวเองมีประสิทธิภาพในการใช้ภาษาเหล่านี้ได้อย่างแน่นอน แต่คุณอาจต้องทำความคุ้นเคยกับตัวเองใหม่เล็กน้อยค้นหากฎไวยากรณ์บางอย่างและเช่นนั้น คำถามของฉันคือ - คุณจะเขียนภาษาเหล่านี้ในประวัติย่อของคุณเป็นภาษาที่คุณ "รู้"?

8
หากคุณเรียนรู้วิธีการอย่างเป็นทางการสำหรับซอฟต์แวร์คุณพบว่ามีประโยชน์อย่างไร
หากคุณได้รับการฝึกอบรมการใช้วิธีการอย่างเป็นทางการ (FM) สำหรับการเขียนโปรแกรม: คุณพบว่ามีประโยชน์อย่างไร การฝึกอบรม FM ของคุณเกี่ยวข้องกับอะไร (เช่นหลักสูตรหนังสือ) คุณใช้เครื่องมือ FM ชนิดใด มีข้อได้เปรียบอะไรบ้างเกี่ยวกับความเร็ว / คุณภาพเมื่อเปรียบเทียบกับคุณที่ไม่ได้ใช้ FM คุณสร้างซอฟต์แวร์ประเภทใดด้วย FM และถ้าคุณไม่ใช้ FM โดยตรงในตอนนี้มันก็คุ้มค่าที่จะเรียนรู้หรือไม่? ฉันอยากรู้ว่าจะได้ยินประสบการณ์ / ความคิดเห็นเกี่ยวกับ FM มากเท่าที่จะพบได้ในชุมชนนี้ ฉันเริ่มอ่านมันและต้องการทราบข้อมูลเพิ่มเติม พื้นหลัง การเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ / วิศวกรรมเป็นทักษะ / อาชีพใหม่ล่าสุดของมนุษย์บนโลกดังนั้นจึงไม่น่าแปลกใจที่สนามยังไม่สมบูรณ์ - ซึ่งแสดงให้เห็นในผลผลิตหลักของสาขาของเราเนื่องจากรหัสที่มักจะล่าช้าและผิดพลาด ยังไม่บรรลุนิติภาวะอุตสาหกรรมจะแสดงด้วยระยะขอบกว้าง (อย่างน้อย 10: 1) ในการผลิตระหว่างตัวแปลงสัญญาณเฉลี่ยและตัวเข้ารหัสสูงสุด ข้อเท็จจริงกลุ้มใจดังกล่าวจะครอบคลุมดีในวรรณคดีและแนะนำให้รู้จักกับหนังสือเช่นสตีฟ McConnell สมบูรณ์รหัส การใช้วิธีการอย่างเป็นทางการ (FM) ได้รับการเสนอโดยบุคคลสำคัญในซอฟต์แวร์ / CS (เช่นE Dijkstraตอนปลาย) ไปยังที่อยู่ …

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