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

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

9
ฉันจะบอกได้อย่างไรว่าซอฟต์แวร์นั้นมีการทำงานร่วมกันสูง
ฉันคุ้นเคยกับคำว่า "เป็นอย่างยิ่งคู่" แต่ฉันอยากรู้ว่ามีสัญญาณ (รหัสกลิ่น) ที่สามารถระบุได้ว่าเป็นรหัสคู่ ปัจจุบันฉันทำงานกับ Java EE แต่สิ่งนี้สามารถใช้กับภาษาใดก็ได้ แก้ไข: ในกรณีที่ใครสนใจบทความนี้ฟังดูมีประโยชน์: ในการค้นหาคุณภาพของรหัส: ระวังคู่ที่แน่นหนา! (IBM)

5
ผู้พัฒนา Python ควรรู้อะไรบ้างขณะเรียนรู้ Ruby [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นโปรแกรมเมอร์ Python ประมาณ 18 เดือนซึ่งประกอบด้วยการฝึกงานหนึ่งครั้งและโครงการสองสามด้านและฉันคิดว่าตัวเองค่อนข้างสบายใจในภาษา อย่างไรก็ตามดูเหมือนว่าจะมีความสนใจมากใน Ruby ในด้านการเขียนโปรแกรม แต่ไม่มากใน Python อีกต่อไป ดังนั้นในการเรียนรู้ทับทิมจะมีสิ่งที่ไพทอนเป็นเพียงแนวทางปฏิบัติที่ไม่ดีในทับทิมหรือไม่? ฉันควรระวังอะไรและควรหลีกเลี่ยงอะไร

1
การออกแบบการขับเคลื่อนด้วยโดเมนมีประโยชน์ / มีประสิทธิผลสำหรับโดเมนที่ไม่ซับซ้อนใช่หรือไม่
เมื่อประเมินโครงการที่มีศักยภาพในที่ทำงานฉันแนะนำว่าอาจเป็นประโยชน์ในการใช้วิธีการออกแบบโดยใช้โดเมนเป็นโมเดลวัตถุ โครงการไม่มีโดเมนที่ซับซ้อนมากนักดังนั้นเพื่อนร่วมงานของฉันก็โยนเรื่องนี้มาให้ฉัน: มีการกล่าวกันว่า DDD นั้นเป็นที่นิยมในกรณีที่มีรูปแบบโดเมนที่ซับซ้อน (“ ... มันใช้เมื่อใดก็ตามที่เราทำงานในโดเมนที่ซับซ้อนและซับซ้อน” Eric Evans) สิ่งที่ฉันทำคือ - คุณกำหนดความซับซ้อนของโดเมนได้อย่างไร สามารถกำหนดจำนวนรากรวมในรูปแบบโดเมนได้หรือไม่ ความซับซ้อนของโดเมนในการโต้ตอบของวัตถุหรือไม่ โดเมนที่เรากำลังประเมินนั้นเกี่ยวข้องกับการเผยแพร่ออนไลน์และการจัดการเนื้อหา

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

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

10
คุณจะทิ้งหลักการของการพัฒนาซอฟต์แวร์ไว้ที่จุดใดเพื่อประโยชน์ของเงินมากขึ้น?
ฉันต้องการส่งคำถามนี้ออกไปเพื่อดูว่าสื่ออยู่ที่ไหนอย่างน่าสนใจ ฉันจะยอมรับว่าในช่วง 12 เดือนที่ผ่านมาฉันเลือก TDD และค่า Agile จำนวนมากในการพัฒนาซอฟต์แวร์ ฉันรู้สึกสับสนมากกับการพัฒนาซอฟต์แวร์ที่ดีขึ้นเรื่อย ๆ จนฉันไม่เคยละทิ้งพวกเขาออกจากหลักการ จนกระทั่ง ... ฉันได้รับการเสนอบทบาทการทำสัญญาที่สองเท่าของฉันกลับบ้านจ่ายสำหรับปี บริษัท ที่ฉันเข้าร่วมไม่ได้ทำตามวิธีการเฉพาะใด ๆ ทีมไม่เคยได้ยินอะไรเลยเช่นกลิ่นรหัส SOLID ฯลฯ และแน่นอนว่าฉันจะไม่ใช้เวลากับการทำ TDD หากทีมไม่เคยแม้แต่จะทำ เห็นการทดสอบหน่วยในทางปฏิบัติ ฉันขายของหมดแล้วหรือยัง ไม่ไม่สมบูรณ์ ... รหัสจะถูกเขียนว่า "หมดจด" เสมอ (ตามคำสอนของลุงบ็อบ) และหลักการของ SOLID จะถูกนำไปใช้กับรหัสที่ฉันเขียนตามที่พวกเขาต้องการเสมอ การทดสอบลดลงสำหรับฉัน แต่ บริษัท ไม่สามารถที่จะส่งทีมที่ไม่รู้จักเช่นคนที่ค่อนข้างตรงไปตรงมาแม้ว่าฉันจะสร้างกรอบการทดสอบพวกเขาจะไม่ใช้ / บำรุงรักษากรอบการทดสอบอย่างถูกต้อง การใช้สิ่งนั้นเป็นตัวอย่างคุณจะบอกว่านักพัฒนาไม่ควรทิ้งหลักการฝีมือของเขาเพื่อเงิน / ผลประโยชน์อื่น ๆ ฉันเข้าใจว่านี่อาจเป็นความเห็นส่วนตัวเกี่ยวกับความกังวลของพวกเขาต่อความต้องการทางธุรกิจและประโยชน์ของงานฝีมือ ฯลฯ แต่เราสามารถพิจารณาได้ว่าตัวอย่างเช่นการทดสอบอาจตกถ้า บริษัท ตัดสินใจว่าพวกเขาต้องการ ทีมทดสอบแทนที่จะเข้าใจการทดสอบหน่วยในการเขียนโปรแกรมนั่นเป็นสิ่งที่คุณสามารถยกโทษให้ตัวเองได้หรือไม่? …

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

4
อยู่ OO และทดสอบได้ในขณะที่ทำงานกับฐานข้อมูล
อะไรคือกลยุทธ์ของ OOP สำหรับการทำงานกับฐานข้อมูล แต่ทำให้สิ่งต่าง ๆ ที่หน่วยทดสอบได้? ว่าฉันมีคลาสผู้ใช้และสภาพแวดล้อมการผลิตของฉันทำงานกับ MySQL ฉันเห็นแนวทางที่เป็นไปได้สองสามข้อแสดงที่นี่โดยใช้ PHP: ส่งผ่าน $ data_source พร้อมอินเทอร์เฟซสำหรับload()และsave()เป็นนามธรรมแหล่งข้อมูลเบื้องหลัง เมื่อทำการทดสอบให้ส่งผ่านแหล่งข้อมูลอื่น $ user = ผู้ใช้ใหม่ ($ mysql_data_source); $ user-> load ('bob'); $ user-> setNickname ('Robby'); $ ที่ผู้ใช้> บันทึก (); ใช้โรงงานที่เข้าถึงฐานข้อมูลและส่งผ่านแถวผลลัพธ์ไปยังตัวสร้างของผู้ใช้ เมื่อทำการทดสอบให้สร้างพารามิเตอร์ $ row หรือจำลองวัตถุใน UserFactory :: $ data_source ด้วยตนเอง (ฉันจะบันทึกการเปลี่ยนแปลงในระเบียนได้อย่างไร) class UserFactory { static $data_source; public …

12
ตกลงหรือไม่ที่จะอยู่โดยที่ไม่รู้ว่าโปรแกรมที่คุณสร้างนั้นทำงานอย่างไร
ฉันหมายถึงมี libs ที่มีประโยชน์จริงๆที่สามารถแก้ปัญหาเมื่อคุณติดขัดและไม่ทราบวิธีแก้ปัญหานี้หรือว่าด้วยความรู้ภาษาการเขียนโปรแกรมที่คุณใช้ ... เช่น Boost for C ++ หรือ JQuery สำหรับ JavaScript หรือ Spring for Java ... พวกเขาแก้ปัญหาได้ในไม่กี่วินาทีและคุณไม่สนใจว่าพวกเขาจะทำอย่างไร (แม้ว่าพวกเขาจะเขียนในภาษาเดียวกันกับที่คุณกำลังเขียนโปรแกรม) ... ดังนั้นฉันจึงสงสัยว่าฉันใช้ libs เพียงอย่างเดียวในขณะที่ไม่ถูก สามารถเขียนคำตอบสำหรับปัญหาของฉันได้ตั้งแต่เริ่มต้นหรือเป็นวิธีปฏิบัติมาตรฐานหรือไม่

7
มีวิธีแนะนำในการสื่อสารการเขียนโปรแกรมทางวิทยาศาสตร์ / วิศวกรรมให้กับนักพัฒนา C หรือไม่?
ฉันมีรหัส MATLAB จำนวนมากที่ต้องได้รับการย้ายไปยัง C (ความเร็วในการเรียกใช้มีความสำคัญสำหรับงานนี้) ซึ่งเป็นส่วนหนึ่งของกระบวนการแบ็คเอนด์สำหรับเว็บแอปพลิเคชัน เมื่อฉันพยายามที่จะ outsource รหัสนี้ให้กับนักพัฒนา C ฉันถือว่า (แก้ไขฉันถ้าฉันผิด) นักพัฒนา C บางคนก็เข้าใจรหัส MATLAB (สิ่งต่าง ๆ เช่นการจัดทำดัชนีและการจัดการหน่วยความจำแตกต่างกัน ฯลฯ ) ฉันสงสัยว่ามีนักพัฒนา C คนใดบ้างที่สามารถแนะนำขั้นตอนให้ฉันทำตามเพื่อสื่อสารสิ่งที่ดีที่สุดรหัสได้หรือไม่ ตัวอย่างเช่นฉันควรจะให้รหัส MATLAB และอธิบายสิ่งที่มันทำทีละบรรทัด? หรือฉันควรจะให้คณิตศาสตร์ / อัลกอริธึมอธิบายมันเป็นภาษาอังกฤษธรรมดาและให้ผู้พัฒนา C ใช้มันด้วยความเข้าใจนี้ในแบบของเขา / เธอ (เช่นฉันสามารถสมมติว่าผู้พัฒนาเข้าใจวิธีการทำงานกับคณิตศาสตร์ที่ซับซ้อน (เช่นจินตภาพ ตัวเลข) วิธีสร้างฮิสโตแกรมทำการ FFT และอื่น ๆ )? หรือมีวิธีที่ดีกว่า ฉันคาดหวังว่าฉันไม่ใช่คนแรกที่ต้องทำสิ่งนี้ดังนั้นฉันจึงสงสัยว่านักพัฒนา C รายใดที่ประสบปัญหานี้และสามารถแบ่งปันภูมิปัญญาดั้งเดิมว่าพวกเขาต้องการให้ถ่ายโอนงานนี้ได้อย่างไร ขอบคุณล่วงหน้าสำหรับความคิดเห็นใด ๆ
16 c  matlab 

7
การเขียนโปรแกรมแบบจับคู่ทั่วไปในที่ทำงานเป็นอย่างไร?
ฉันรู้สึกทึ่งกับการเขียนโปรแกรมแบบคู่มาตลอด แต่ในการพัฒนา 12 ปีฉันไม่เคยทำงานในที่ที่พวกเขาฝึกหัดแบบนี้มาก่อนดังนั้นฉันจึงสงสัยว่าคนอื่นจะเห็นมันอย่างไร ฉันสงสัยว่านี่เป็นเพราะเงิน / เวลา (หัวหน้าผมมีจุดพบคนสองคนที่คอมพิวเตอร์เครื่องหนึ่งทำงานด้วยรหัสเดียวกัน !!!! พวกเขากล้า!) หรือด้วยเหตุผลอื่น?

7
คุณจะโน้มน้าวให้ฝ่ายบริหารทิ้งต้นแบบได้อย่างไร
ฉันชอบการสร้างต้นแบบเป็นวิธีที่มีประสิทธิภาพอย่างรวดเร็วในการทำให้ UI ต่อหน้าผู้ใช้ แม้ว่าหลายครั้งผู้บริหารจะได้รับผลกระทบในทางที่ผิดและต้นแบบถูกลากเตะและส่งเสียงกรีดร้องในการพัฒนากระแสหลัก คุณจัดการการจัดการโดยไม่ทำเช่นนี้ได้อย่างไร?

2
อะไรทำให้ผลิตภัณฑ์ซอฟต์แวร์ที่มีขนาดใหญ่และซับซ้อนช้า [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ด้วยเหตุผลที่ไม่เกี่ยวข้องส่วนใหญ่ฉันติดตั้ง Delphi 7 อีกครั้งในเวลานาน ฉันต้องบอกว่าฉันปลิวไปหมดแล้ว - ในแบบที่ฉันไม่เคยทำมานานแล้ว นี่ไม่ใช่วิธีที่ฉันจำสิ่งต่าง ๆ ได้เลย การติดตั้งใช้เวลาประมาณ 30 วินาที การเปิดตัวใช้เวลา 2 วินาทีและสามารถใช้งานได้ทันที ฉันสามารถกด "เรียกใช้" ครั้งที่สองหลังจากที่เริ่มต้นและน้อยกว่าหนึ่งวินาทีหลังจากนั้นโปรแกรมว่างจะปรากฏขึ้นและทำงานอยู่ Hurray สำหรับคอมพิวเตอร์เริ่มเร็วขึ้นมาก! แต่เหตุผลที่ฉันถูกปลิวไปอย่างนี้ก็เพราะว่าฉันมักจะใช้ Visual Studio 2010 ซึ่งก็ไม่ทำให้รู้สึกแย่แบบนี้เลย จริงอยู่ที่ Delphi 7 เป็นระบบที่เล็กกว่า Visual Studio 2010 มาก แต่มันมีลักษณะของการมีสิ่งที่จำเป็นจริงๆที่นั่น: palette control, design form, ตัวแก้ไขโค้ดพร้อมโค้ดที่สมบูรณ์ ฉันรู้ว่าภาษาอาจจะง่ายกว่าและการทำให้โค้ดสมบูรณ์อาจมีประสิทธิภาพน้อยกว่าและ IDE อาจจะไม่สามารถขยายได้และมีคุณสมบัติที่หลากหลาย …

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

4
ทำไมมันไม่ดีที่จะพึ่งพาการเปลี่ยนแปลงสถานะ?
คำถามนี้เกิดขึ้นจากคำถาม/software/25569/is-haskell-worth-learning โดยทั่วไปจะมีการกล่าวประโยคซ้ำ ๆ กันหลายครั้งเกี่ยวกับวิธีที่ Haskell พัฒนาทักษะการเข้ารหัสของคุณในภาษาอื่นและนอกจากนี้เนื่องจาก Haskell นั้นไร้สัญชาติและนั่นเป็นสิ่งที่ดี ทำไม? ฉันเคยเห็นใครบางคนเปรียบเทียบสิ่งนี้กับการพิมพ์ด้วยมือซ้ายหรืออาจหลับตาสักวันหนึ่งและพึ่งพึ่งการสัมผัส มีอะไรมากกว่านั้นอีกไหม? มันเกี่ยวข้องกับการเข้าถึงหน่วยความจำฮาร์ดแวร์หรืออย่างอื่นซึ่งเป็นผลการดำเนินงานที่ยิ่งใหญ่?

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