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

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

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

2
เหตุใดจึงมีชื่อไดเรกทอรี Oracle ชื่อ / u01 / u02 ฯลฯ ? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันทำงานกับ Oracle RDBMS มาสองสามปีแล้วและวันนี้หลังจากติดตั้งครั้งแรกฉันก็สงสัยว่าทำไมเราติดตั้งใน / u01, / u02 เป็นต้น แน่นอนคุณสามารถติดตั้งที่อื่น แต่ด้วยเหตุผลบางอย่างที่ไม่รู้จักอนุสัญญานี้ใช้ทุกที่และฉันไม่เคยเห็นการติดตั้ง Oracle ที่ร้ายแรงเช่น / opt บทเรียนประวัติศาสตร์ใด ๆ ที่ฉันพลาดไป?
11 oracle  unix 

4
ฉันจะส่งข้อมูลวิธีการเชิงวัตถุใน PHP ได้อย่างไร
ฉันพบว่าแม้เมื่อทำงานกับกรอบ MVC (เช่น CodeIgniter) ฉันมักหันไปใช้อาร์เรย์ที่ซ้อนกันมากกว่าวัตถุ สิ่งนี้ไม่เป็นไปตามความเข้าใจในเชิงวัตถุของฉัน ตัวอย่างเช่นถ้าฉันจะย้ายรหัสไปยัง Java แล้วฉันจะไม่ฝันที่จะผ่านอาร์เรย์ (หรือเวกเตอร์หรืออะไรก็ตาม) รอบ ๆ แบบนั้น ฉันสงสัยว่านี่เป็นวิธีที่เหมาะสมในการจัดการข้อมูลหรือไม่ มีเหตุผลว่าทำไมอาร์เรย์ถูกส่งผ่านอย่างนี้ใน PHP หรือทำไมวัตถุไม่ได้ใช้? วิธีที่ดีที่สุดในการส่งผ่านข้อมูลคืออะไร

1
วิธีการมีส่วนร่วมในรหัสที่มาเดียวกันให้กับสองโครงการโอเพนซอร์สแยกต่างหาก?
สมมติว่ามีโครงการโอเพนซอร์สที่คล้ายกันสองโครงการคือ A และ B ซึ่งทั้งคู่ได้รับอนุญาตภายใต้ Apache Software License 2.0 ฉันต้องการมีส่วนร่วมในการปรับปรุงทั้งสองโครงการ (เพราะฉันไม่ทราบว่าโครงการใดที่จัดการได้ดีกว่าและฉันต้องการเห็นการปรับปรุงของฉันปรากฏขึ้นในทั้งสองโครงการ) มีวิธีที่ฉันสามารถมีส่วนร่วมในการปรับปรุงนี้ทั้งสองโครงการในวิธีที่ง่าย? (วิธีหนึ่งที่ชัดเจนคือการเริ่มต้นโครงการโอเพนซอร์ส C ที่ได้รับอนุญาตภายใต้ Apache 2.0 แต่มันก็ปวดหัวด้วยเหตุผลต่าง ๆ ฉันไม่ต้องการดูแลโครงการด้วยตนเอง)

5
ควรใช้ MVC เมื่อใด
ฉันกำลังสร้างเว็บไซต์ด้วย PHP และ MySQL แบ็กเอนด์ แต่ตอนนี้ฉันไม่ได้ใช้กรอบใด ๆ ฉันควรใช้ Model View Controller หรือไม่

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

1
สร้างแอปพลิเคชันบริการแบบแยกส่วน
ฉันกำลังมองหาการสร้างโซลูชันใหม่ที่เป็นแบบแยกส่วนโดยธรรมชาติและต้องการสร้างโครงสร้างที่รองรับการออกแบบนั้นเพื่อให้สามารถขยายตัวในอนาคตได้อย่างง่ายดายแยกข้อกังวลออกใบอนุญาตโดยโมดูล ฯลฯ สิ่งที่ฉันทำส่วนใหญ่คือ พบได้บนเว็บเกี่ยวกับแอปพลิเคชันแบบแยกส่วนหรือคอมโพสิตคือ UI เป็นศูนย์กลางมุ่งเน้นไปที่ Silverlight, WPF และอื่น ๆ ในกรณีของฉันฉันกำลังพัฒนาแอพพลิเคชั่นบริการ WCF ที่นักพัฒนาอื่น ๆ พื้นหลัง เป้าหมายของโครงการของฉันคือการสร้างแหล่งที่มาแบบรวมศูนย์ของตรรกะทางธุรกิจ / โดเมนเพื่อสนับสนุนแอปพลิเคชันทางธุรกิจของเราหลายอย่างที่กำลังทำซ้ำกระบวนการกฎและอื่น ๆ และแม้ว่าจะไม่ได้รับประโยชน์จากโมดูลทั้งหมด โอกาสในการสร้างกรอบที่จะใช้ประโยชน์จากส่วนที่เราสามารถใช้ประโยชน์จาก ฉันเริ่มต้นการออกแบบโดยดูที่ API ที่เปิดเผยโดยแอปพลิเคชันบริการ เป็นที่ชัดเจนว่าบริการสามารถแยกออกไปตามสายโมดูลาร์ที่ฉันกำลังพิจารณา ตัวอย่างเช่นฉันจะมี FinanceService, InventoryService, PersonnelService และบริการอื่น ๆ ที่จัดกลุ่มการดำเนินงานบริการของฉันเพื่อให้มีการทำงานร่วมกันสูงใน API ในขณะที่การมีเพศสัมพันธ์ต่ำดังนั้นลูกค้าจะต้องใช้บริการที่เกี่ยวข้องกับแอปพลิเคชันของตน ฉันรู้สึกว่าฉันสามารถมีโมดูลแยกต่างหากสำหรับแต่ละบริการเหล่านี้เช่น MyApp.Finance, MyApp.Inventory, My.Personnel และอื่น ๆ ความกังวลแบบตัดขวางและประเภทที่แชร์จะอยู่ในชุดประกอบ MyApp ที่ใช้ร่วมกัน จากที่นี่ฉันจะได้รับการผูกเล็กน้อย (โอ้ฉันควรพูดถึงว่าฉันจะใช้คอนเทนเนอร์ IoC สำหรับ Dependency Injection เพื่อให้แอปพลิเคชันมีการเชื่อมต่ออย่างหลวม …

8
อนุสัญญาการตั้งชื่อตัวแปร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเพิ่งเริ่มใช้ ReSharper (สำหรับ C #) และฉันชอบโปรแกรมค้นหารหัสกลิ่นมันแสดงให้ฉันเห็นบางอย่างเกี่ยวกับการเขียนของฉันที่ฉันต้องการแก้ไขเมื่อนานมาแล้ว (หลักการตั้งชื่อตัวแปรส่วนใหญ่) มันทำให้ฉันพิจารณาอนุสัญญาการตั้งชื่อของฉันอีกครั้งสำหรับวิธีการและตัวแปรอินสแตนซ์ ReSharper แนะนำว่าตัวแปรอินสแตนซ์นั้นเป็นตัวพิมพ์เล็กอูฐและเริ่มต้นด้วยเครื่องหมายขีดล่าง ในขณะที่ฉันตั้งใจจะทำให้ตัวแปรท้องถิ่นทั้งหมดของฉันลดขนาดอูฐ แต่จำเป็นต้องเน้นหรือไม่ คุณรู้สึกสบายไหม ฉันไม่ชอบอนุสัญญานี้ แต่ฉันยังไม่ได้ลองเลยคุณคิดยังไง? สิ่งที่สองที่กระตุ้นให้ฉันประเมินใหม่คือข้อกำหนดการตั้งชื่อของฉันสำหรับตัวจัดการเหตุการณ์ GUI ฉันมักจะใช้มาตรฐาน VS ของ ControlName_Action และการควบคุมของฉันมักจะใช้สัญกรณ์ฮังการี (เป็นคำต่อท้ายเพื่อช่วยชี้แจงในรหัสสิ่งที่ผู้ใช้มองเห็นและสิ่งที่ไม่เมื่อจัดการกับตัวแปรที่มีชื่อคล้ายกัน) ดังนั้นฉันจึงจบลงด้วย OK_btn_Click ( ) คุณมีความเห็นอย่างไรต่อเรื่องนี้ ฉันควรยอมแพ้กับการประชุม ReSharper หรือมีตัวเลือกอื่น ๆ ที่ใช้ได้อย่างเท่าเทียมกัน?
11 c#  naming  resharper 

2
มีใครบ้างที่ใช้ Windows Workflow สำหรับเอ็นจิน Business Rules / Validation เรียบร้อยแล้ว
ฉันสงสัยว่าถ้าใครใช้ Windows Workflow Foundation สำหรับเอ็นจิ้น BusinessRules / Validation สำเร็จหรือถ้าคุณรู้รหัสตัวอย่างหรือบทความเกี่ยวกับเรื่องนี้ ถ้าคุณเคยใช้มันมาก่อนคุณคิดอย่างไร? เป็นอย่างไรบ้างเมื่อเปรียบเทียบกับระบบ BusinessRule / Validation อื่น ๆ ? ฉันคิดว่ากฎเช่น if (A, B, and C) AllowAccess(); หรือ if (Value between X and Y) return true;

2
แผนผังลำดับงานและการเรียกเมธอด
ฉันกำลังทำแผนภูมิลำดับงานและสงสัยว่าฉันกำลังเข้าใกล้สิ่งนี้อย่างถูกต้องหรือไม่ โดยพื้นฐานแล้วฉันมีวิธีการโทรหลายวิธีและฉันก็แยกแต่ละแผนภูมิออกจากกัน อย่างไรก็ตามวิธีการเหล่านี้หลายวิธีทำการเรียกใช้ข้อมูลบางอย่างแล้วดำเนินการต่อ ดูตัวอย่างนี้: ฉันมี 3 วิธีอื่น ๆ ที่เรียก GetQueue () และฉันสงสัยว่าฉันเป็นตัวแทนของสิ่งนี้อย่างถูกต้องหรือไม่ โฟลว์ AddQueue () ดูเหมือนว่าจะขาดหาย หมายเหตุ: การเปลี่ยนแปลงในผังงานของฉัน:
11 flowchart 

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

3
แนะนำภาษาการเขียนโปรแกรม JVM ใหม่ในสภาพแวดล้อมขององค์กรที่จัดตั้งขึ้น
ลองนึกภาพว่าที่ทำงานปัจจุบันของคุณคือร้านจาวา มีความรู้มากมายเกี่ยวกับภาษาจาวาและมีกระบวนการสร้างและปรับใช้ที่ครอบคลุมเพื่อจัดการทุกอย่างอย่างราบรื่นและคล่องตัว อยู่มาวันหนึ่งโครงการก็มาพร้อมกับเสียงกรีดร้องออกมาว่าทับทิม เฉพาะนักพัฒนาอาวุโสเท่านั้นที่มีเบาะแสเกี่ยวกับ Ruby แต่มีความคิดทั่วไปที่ว่า JRuby นั้นมีอยู่สำหรับ JVM ดังนั้นโครงสร้างพื้นฐานที่มีอยู่จึงยังคงสามารถใช้และสนับสนุนได้ นอกจากนี้ JRuby ยังสามารถแสดงให้เห็นถึงวิธีการที่ดีกว่าในการนำแอปพลิเคชั่นปัจจุบันไปใช้กับรหัสที่น้อยลงดังนั้นนี่อาจเป็นตัวแทนของการย้ายข้อมูลอย่างต่อเนื่อง โปรดจำไว้ว่า JRuby เป็นเพียงตัวอย่างมันอาจเป็น Clojure หรือ Groovy หรืออะไรก็ตามที่วิ่งบน JVM คำถามคือคุณจะแนะนำการเปลี่ยนแปลงแบบนี้อย่างไร - ถ้าใช่?

8
คุณเรียนรู้บทเรียนใดจากโปรเจ็กต์ที่เกือบ / ล้มเหลวจริง ๆ เนื่องจากมัลติเธรดไม่ดี [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา คุณเรียนรู้บทเรียนใดจากโปรเจ็กต์ที่เกือบ / ล้มเหลวจริง ๆ เนื่องจากมัลติเธรดไม่ดี บางครั้งกรอบกำหนดรูปแบบเกลียวบางอย่างที่ทำให้สิ่งที่ลำดับความสำคัญยากที่จะได้รับ สำหรับฉันฉันยังไม่หายจากความล้มเหลวครั้งสุดท้ายและฉันรู้สึกว่ามันดีกว่าที่ฉันจะไม่ทำงานกับสิ่งที่เกี่ยวข้องกับมัลติเธรดในกรอบงานนั้น ฉันพบว่าฉันเก่งในการแก้ปัญหาแบบมัลติเธรดซึ่งมีทางแยกอย่างง่าย / เข้าร่วมและที่ซึ่งข้อมูลเดินทางไปในทิศทางเดียวเท่านั้น (ในขณะที่สัญญาณสามารถเดินทางในทิศทางวงกลม) ฉันไม่สามารถจัดการ GUI ที่งานบางอย่างสามารถทำได้ในเธรดที่มีการจัดลำดับอย่างเคร่งครัดเท่านั้น ("เธรดหลัก") และงานอื่น ๆ สามารถทำได้บนเธรดใดก็ได้ยกเว้นเธรดหลัก ("เธรดผู้ปฏิบัติงาน") และ ที่ข้อมูลและข้อความต้องเดินทางในทุกทิศทางระหว่างองค์ประกอบ N (กราฟที่เชื่อมต่ออย่างสมบูรณ์) ตอนที่ฉันออกจากโครงการนั้นไปอีกโครงการหนึ่งมีปัญหาการหยุดชะงักทุกที่ ฉันได้ยินมาว่า 2-3 เดือนต่อมาผู้พัฒนารายอื่นหลายคนจัดการเพื่อแก้ไขปัญหาการหยุดชะงักทั้งหมดจนถึงจุดที่สามารถส่งมอบให้กับลูกค้าได้ ฉันไม่เคยพบว่าความรู้ที่หายไปนั้นขาดไป บางอย่างเกี่ยวกับโครงการ: จำนวน ID ข้อความ (ค่าจำนวนเต็มซึ่งอธิบายความหมายของเหตุการณ์ที่สามารถส่งไปยังคิวข้อความของวัตถุอื่นโดยไม่คำนึงถึงเธรด) ทำงานเป็นหลายพันรายการ สตริงที่ไม่ซ้ำกัน (ข้อความผู้ใช้) ยังทำงานเกี่ยวกับหนึ่งพัน ที่เพิ่ม การเปรียบเทียบที่ดีที่สุดที่ฉันได้รับจากทีมอื่น (ไม่เกี่ยวข้องกับโครงการในอดีตหรือปัจจุบันของฉัน) คือการ "ใส่ข้อมูลในฐานข้อมูล" ("ฐานข้อมูล" …

1
ไม่มีใครเข้าใจว่า MonoDroid ตายจริงหรือไม่
บริษัท ของฉันเพิ่งลงทุนในเครื่องมือMono สำหรับ Androidสำหรับ Visual Studio เนื่องจากเรามีนักพัฒนา. NET จำนวนมากและประทับใจกับประสิทธิภาพของเครื่องมือ monodroid หลังจากอ่านโพสต์ ZDNetฉันรู้สึกเศร้าใจที่เห็นว่าโครงการนี้อาจจะตาย มีใครบ้างที่อาจรู้อะไรมากกว่าเรื่องที่ระบุไว้ในบทความนี้ เห็นได้ชัดว่าผู้พัฒนาหลายคนถูกปล่อยจากโครงการโมโน แต่ฉันสงสัยว่ามันจริงหรือเปล่า ข้อมูลใด ๆ ที่จะได้รับการชื่นชมอย่างมาก เราเพิ่งซื้อสิทธิ์ใช้งาน Enterprise 5 ซึ่งค่อนข้างแพงและฉันค่อนข้างบ้าถ้ามันตายหลังจากที่ฉันเพิ่งซื้อสิ่งนี้และเริ่มเรียนรู้มัน!
11 c#  .net  monodroid 

4
ฉันควรลงทุนเวลาเรียนรู้ Coffeescript หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ฉันเป็นนักแปลอิสระและฉันได้รับขนมปังและเนยโดยช่วยคนอื่นให้เขียนโค้ดจาวาสคริปต์ได้ดีขึ้น ฉันมีประสบการณ์ที่ดีกับเฟรมเวิร์ค JavaScript ส่วนใหญ่ ฉันสงสัยว่าถ้าฉันใช้เวลาในการเรียนรู้กาแฟ ใครควรเรียนรู้และไม่ต้องการใคร

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