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

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

4
เมื่อใดที่ฉันควรใช้วัตถุจำลอง
ฉันได้อ่านสิ่งต่าง ๆ มากมายเกี่ยวกับ TDD แต่ฉันยังมีข้อสงสัย ตัวอย่างเช่นฉันมีไดอะแกรมคลาสเหล่านี้: มันเป็นตัวอย่างง่ายๆเพียงเพื่อเรียนรู้เกี่ยวกับ TDD และวัตถุจำลอง ฉันควรเขียนแบบทดสอบใดก่อน ผลิตภัณฑ์จากนั้นLineและสุดท้ายสั่งซื้อ ? ถ้าฉันทำเช่นนั้นฉันควรใช้LineและProductเพื่อทดสอบคำสั่งซื้อหรือฉันควรใช้ Mock Objects? เมื่อใดที่ฉันควรใช้ Mock Objects ฉันควรใช้ UML กับ XP และ TDD หรือไม่ ฉันยังไม่ได้รับสิ่งเหล่านี้

3
คุณนำทางและสร้างรหัสซ้ำในภาษาไดนามิกได้อย่างไร
ฉันชอบที่การเขียน Python, Ruby หรือ Javascript ต้องใช้สำเร็จรูปน้อยมาก ฉันชอบโครงสร้างที่ใช้งานง่าย ฉันชอบไวยากรณ์ที่สะอาดและเรียบง่าย อย่างไรก็ตามมีสามสิ่งที่ฉันไม่ดีจริง ๆ เมื่อพัฒนาซอฟต์แวร์ขนาดใหญ่ในภาษาแบบไดนามิก: การนำรหัส การระบุอินเทอร์เฟซของวัตถุที่ฉันใช้ การปรับโครงสร้างใหม่อย่างมีประสิทธิภาพ ฉันได้ลองใช้ตัวแก้ไขอย่างง่าย (เช่น Vim) และ IDE (Eclipse + PyDev) แต่ในทั้งสองกรณีฉันรู้สึกว่าฉันต้องผูกมัดกับหน่วยความจำและ / หรือ "grep" ตลอดเวลาและอ่านรหัสเพื่อระบุ อินเตอร์เฟส โดยเฉพาะอย่างยิ่งเมื่อทำงานกับ codebase ขนาดใหญ่ที่มีการขึ้นต่อกันหลายครั้ง สำหรับการเปลี่ยนโครงสร้างตัวอย่างเช่นการเปลี่ยนชื่อวิธีการนั้นจะขึ้นอยู่กับคุณภาพของการทดสอบหน่วยของฉันอย่างมาก และถ้าฉันพยายามแยกการทดสอบหน่วยของฉันโดย "ตัดพวกมันออก" ส่วนที่เหลือของแอปพลิเคชั่นนั้นไม่รับประกันว่าส่วนต่อประสานของต้นขั้วของฉันจะยังคงทันสมัยอยู่กับวัตถุที่ฉันกำลังถูอยู่ ฉันแน่ใจว่ามีวิธีแก้ไขปัญหาสำหรับปัญหาเหล่านี้ คุณทำงานอย่างมีประสิทธิภาพใน Python, Ruby หรือ Javascript ได้อย่างไร

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

9
วิธีที่ง่ายที่สุดในการโยกย้ายสภาพแวดล้อมการเขียนโปรแกรมปัจจุบันไปยังแล็ปท็อปเครื่องใหม่คืออะไร?
ฉันมีแล็ปท็อปที่ใช้ WinXP พร้อมการกำหนดค่าฮาร์ดแวร์ขั้นพื้นฐานตามมาตรฐานของทุกวันนี้ ฉันวางแผนที่จะอัปเกรดเป็นแล็ปท็อปที่ใช้ WinXP พร้อมฮาร์ดแวร์ที่ดีกว่ามาก ปัญหา: แล็ปท็อปปัจจุบันของฉันมีโหลดซอฟต์แวร์เช่น cygwin, perl, ruby ​​และอื่น ๆ การติดตั้งซอฟต์แวร์แต่ละรายการด้วยตนเองจะค่อนข้างยุ่งยาก ไม่ต้องพูดถึงการปรับแต่งแพ็คเกจ มีซอฟต์แวร์ใด ๆ (ฟรีแวร์หรือเชิงพาณิชย์ไม่เป็นไร) ที่สามารถโยกย้ายสภาพแวดล้อมการเขียนโปรแกรมปัจจุบันของฉันด้วยความยุ่งยากน้อยที่สุด?

7
Emacs และ“ เสริมประสิทธิภาพด้วยตนเอง”
ในระยะสั้นคำถามของฉันไม่ยอมใครง่ายๆสำหรับคุณผู้ใช้ Emacs คือ: คุณประสบความสำเร็จนี้ "ประสิทธิภาพการทำงานด้วยตนเองเสริม" พูดถึงสตีฟ Yeggeเกี่ยวกับอะไร? Emacs เป็นโฮสติ้งของตัวเอง: การเขียนสิ่งต่าง ๆ ในนั้นทำให้สภาพแวดล้อมมีประสิทธิภาพยิ่งขึ้น มันเป็นข้อเสนอแนะวนซ้ำ: เอฟเฟ็กต์แบบเรียกซ้ำการเสริมแรงตัวเองแบบทวีคูณที่เกิดขึ้นเพราะคุณกำลังปรับปรุงสภาพแวดล้อมที่คุณใช้เพื่อสร้างการปรับปรุง คุณรู้สึกว่าการเพิ่ม Emacs ของคุณในที่สุดทำให้คุณมีประสิทธิภาพเพิ่มขึ้น 10 เท่าและผลผลิตของคุณยังคงเพิ่มขึ้นอย่างต่อเนื่องและต่อ ๆ ไปเรื่อย ๆ ? คุณมีตัวอย่าง / ประสบการณ์ในการแบ่งปันหรือไม่? สำหรับฉันฉันใช้ทั้ง Emacs และ Vim เพื่อการพัฒนา (ปัจจุบันติดกับ Vim) ฉัน.emacsและ.vimrcทั้งคู่ค่อนข้างปรับแต่งเพื่อสนองความต้องการของฉันและฉันขอขอบคุณพลังของบรรณาธิการทั้งสองนี้ แต่ฉันไม่ได้สัมผัสกับ "การเสริมแรงด้วยตนเอง" ของ Emacs นี้ไม่พบใครบางคนที่ทำ (แน่นอนอาจเป็นเพราะฉันยังไม่ยอมแพ้ Emacser อย่างแท้จริงและยังไม่ได้พบ Emacsers มากมาย) ตัวอย่างเช่นที่ Facebook คนที่อยู่ข้างฉันกำลังใช้ Vim และคนที่อยู่ข้างเขากำลังใช้ Emacs …

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

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

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

2
การเขียนโปรแกรมสัญญา -% การฝากและวิธีการชำระเงิน? คำแนะนำใด ๆ ที่ชื่นชม
ฉันค่อนข้างใหม่ในการทำงานตามสัญญาและในที่สุดก็มีโครงการจ่ายที่เหมาะสม ผู้ชายคนนั้นเสนอที่จะวางเงินมัดจำและฉันก็แค่สงสัยว่าฉันควรพิจารณาขอเป็นเปอร์เซ็นต์ ฉันคิดประมาณ 25% เนื่องจากไม่ใช่โครงการขนาดใหญ่มาก (เพียงประมาณ 20 ชั่วโมง) นอกจากนี้ฉันไม่สามารถใช้ PayPal ได้ (มีประสบการณ์ที่แย่มากกับพวกเขาในการแช่แข็งเงินทุนโดยไม่มีเหตุผลที่ดี) ดังนั้นฉันจึงสงสัยว่าถ้าใครสามารถแนะนำวิธีอื่นให้ลูกค้าส่งเงินฝาก / ชำระเงิน ฉันต้องการทำให้มันง่ายที่สุดสำหรับพวกเขา .. ขอบคุณสำหรับคำแนะนำใด ๆ

16
ac # dev ควรเปลี่ยนเป็น VB.net เมื่อฐานภาษาของทีมผสมกันหรือไม่
ฉันเพิ่งเข้าร่วมทีมพัฒนาใหม่ที่มีการตั้งค่าภาษาผสมกันบนแพลตฟอร์ม. net Dev 1: รู้ว่า VB.net ไม่รู้ว่า c # Dev 2: รู้ว่า VB.net ไม่รู้ว่า c # Dev 3: รู้ c # และ VB.net ต้องการ c # Dev 4: รู้ c # และ VB6 (VB.net น่าจะง่ายต่อการรับ), ชอบ c # สำหรับฉันแล้วดูเหมือนว่าผู้นำทางความคิดใน. net จะเป็น c # devs เกือบทุกระดับ ฉันคิดด้วยว่าเครื่องมือของบุคคลที่สามบางตัวไม่รองรับ VB.net แต่เมื่อฉันเริ่มมองหามันฉันไม่พบตัวอย่างที่ดีเลย ฉันต้องการรับทั้งทีมใน c …
14 c#  .net  vb.net 

16
กำจัดความว่องไวที่แท้จริงจาก buzzword agile ในการสัมภาษณ์ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันได้สัมภาษณ์ co-ops (ฝึกงานที่ได้รับค่าจ้าง) เมื่อเร็ว ๆ นี้และ บริษัท จำนวนมากที่ฉันสัมภาษณ์ด้วยบอกว่าพวกเขาใช้ Scrum หรือวิธีการแบบเปรียวอื่น ๆ (การต่อสู้ที่ได้รับความนิยมมากที่สุด) ฉันรู้ว่ามีร้านค้าเปรียวที่แท้จริงและมีสถานที่ที่บอกว่าพวกเขาใช้วิธีการเปรียว แต่จริงๆแล้วก็ทำอย่างอื่นและใช้เปรียวเป็นคำศัพท์ คำถามของฉันคือคำถามอะไรบ้างที่ฉันสามารถถามในการสัมภาษณ์ซึ่งจะแยกร้านค้าเหล่านี้ออก? แก้ไข: ในขณะที่ฉันกำลังมองหาการฝึกงานฉันรู้สึกว่าคำถามเหล่านี้เกี่ยวข้องกับทุกคน ส่วนการฝึกงานเป็นบริบท
14 agile  scrum 

10
สงสัยในทีมการต่อสู้
บริษัท ของฉันเพิ่งเปลี่ยนไปใช้วิธีการทำงานแบบคล่องตัวและเป็นส่วนหนึ่งของ บริษัท เราได้เริ่มใช้ SCRUM ในขณะที่ฉันรู้สึกสบายใจและรู้สึกว่าวิธีนี้เหนือกว่าแบบดั้งเดิม แต่เพื่อนร่วมทีมของฉันบางคนไม่ได้แสดงความคิดเห็นแบบเดียวกัน ในความเป็นจริงพวกเขาสงสัยมากเกี่ยวกับ "ทุกสิ่งที่ว่องไว" และอย่าจริงจัง ตัวอย่างเช่นหนึ่งในเพื่อนร่วมทีมมักจะมาสายในการประชุมเสมอและไม่สนใจจริงๆ ฝ่ายบริหาร IMO พยายามที่จะไม่สังเกตเห็นสิ่งนี้ (อาจเป็นเพราะมันใหม่และต้องใช้เวลาสำหรับคนที่จะคุ้นเคยกับมัน) คำถามของฉันคือวิธีการแก้ไขปัญหานี้ในขณะที่ไม่ก่อให้เกิดความขัดแย้งภายในทีม?
14 team  scrum 

1
โดยทั่วไปแล้วตัวจัดการเหตุการณ์ทำงานอย่างไร
นี่คือหัวข้อทั่วไป, ตัวจัดการเหตุการณ์ทำงานอย่างไร นี่หมายถึงเบื้องหลัง - จะเกิดอะไรขึ้นเมื่อสร้างขึ้น ฉันมีความคิดคร่าวๆ - แต่ต้องการที่จะได้รับการยืนยัน

11
คุณติดตามผู้เขียนรหัสได้อย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา นี่คือสิ่งที่ฉันไม่เคยสอน ฉันเห็นรูปแบบการเขียนประเภทต่างๆมากมาย ฉันใช้รหัสเป็นหลักใน Java และ Python ฉันสงสัยว่ามีรูปแบบการเขียนมาตรฐานหรือทุกอย่างเป็นฟรีสไตล์หรือไม่ นอกจากนี้หากคุณตอบคำถามคุณควรแนบสไตล์ที่คุณใช้กับไฟล์ผู้แต่งที่คุณสร้างที่บ้านหรือที่ทำงาน ฉันมักจะไป @author garbagecollector @company garbage inc.

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

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