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

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

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

9
โน้มน้าวให้ผู้พัฒนาโดดเดี่ยวเพื่อใช้เครื่องมือบิลด์แยกต่างหากแทนที่จะเป็นบิลด์ IDE แบบคลิกเดียว
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 7 ปีที่ผ่านมา ในช่วงเวลาหลายปีของการเขียนโปรแกรม Java และ Scala เมื่อเร็ว ๆ นี้ฉันไม่เคยใช้ Ant, Maven, Gradle หรือเครื่องมือสร้างเหล่านี้สำหรับ Java ทุกที่ที่ฉันทำงานมีผู้จัดการสร้างที่ดูแลทุกอย่าง - ฉันรวบรวมภายในเครื่องด้วย IDE สำหรับการพัฒนาและทดสอบหน่วยจากนั้นตรวจสอบในซอร์สโค้ดและแจ้งผู้จัดการสร้างที่ทำสิ่งที่จำเป็น รวบรวมไฟล์ของทุกคนสำหรับสภาพแวดล้อมที่ใช้ร่วมกัน ตอนนี้ฉันอยู่ระหว่างสัญญาฉันได้ทำงานในโครงการที่ได้รับทุนของตัวเองแล้วและถึงจุดที่มันจะดีพอที่จะทำเงินได้จริง ฉันยังมีนักลงทุนที่คาดหวังและวางแผนที่จะแสดงให้พวกเขาเห็นเป็นรุ่นเบต้าในไม่กี่สัปดาห์ แต่ตลอดฉันคลิกปุ่มสร้างบน IDE และสร้างไฟล์ Jar และใช้งานได้ดี แน่นอนว่าภูมิปัญญาดั้งเดิมแสดงให้เห็นว่าฉัน "ควร" เขียนสคริปต์ Ant / Maven / Gradle ของตัวเองและใช้สิ่งนั้นแทน IDE แต่อะไรคือข้อดีที่เป็นรูปธรรมในสถานการณ์ของฉัน (ทำงานคนเดียว)? ฉันได้อ่านเกี่ยวกับวิธีการใช้เครื่องมือสร้างเหล่านั้นและดูเหมือนว่าฉันจะเขียน XML …

4
มีการศึกษาเกี่ยวกับประสิทธิภาพ / ประสิทธิผลของ Agile vs Waterfall [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ในการประชุมเมื่อวันก่อนมีการเรียกร้องว่าความคล่องตัวนั้นมีประสิทธิภาพเพียง 60% ในเวลาในการพัฒนาเมื่อเทียบกับน้ำตก ฉันไม่ต้องการตรวจสอบหรือปฏิเสธการอ้างสิทธิ์นี้ ฉันสนใจในการค้นหาว่ามีการศึกษาใด ๆ ที่เปรียบเทียบ 2 วิธี มีการศึกษาอะไรบ้างในการเปรียบเทียบทั้งสองนี้?

6
แมโคร Lisp มีประโยชน์อย่างไร
Common Lisp ช่วยให้คุณสามารถเขียนมาโครที่ทำสิ่งแปลงแหล่งที่คุณต้องการ Scheme ช่วยให้คุณมีระบบจับคู่รูปแบบที่ถูกสุขลักษณะที่ให้คุณทำการแปลงได้เช่นกัน มาโครมีประโยชน์อย่างไรในทางปฏิบัติ Paul Graham กล่าวในการเอาชนะค่าเฉลี่ยที่: ซอร์สโค้ดของเครื่องมือแก้ไข Viaweb น่าจะเป็นมาโครประมาณ 20-25% สิ่งที่ผู้คนทำลงเอยด้วยมาโครจริง ๆ แล้วมีอะไรบ้าง?
22 lisp  scheme  macros 

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

1
ข้อเสียของ GNU LGPL v3 กับ GNU LGPL v2.1?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ประการแรกฉันตระหนักว่านี่เป็นเว็บไซต์ถาม - ตอบการเขียนโปรแกรมไม่ใช่สถานที่สำหรับคำแนะนำทางกฎหมาย .... เพียงแค่พยายามเข้าใจแนวคิดพื้นฐานว่าอะไรคือข้อเสียของการใช้ไลบรารี LGPLv3 อะไรคือความแตกต่างระหว่าง GNU LGPL v2.1 และ GNU LGPL v3 โดยเฉพาะอย่างยิ่งฉันรู้ว่า GPLv3 ปกติมีส่วนต่อต้าน DRM และอนุสิทธิบัตรจำนวนมาก ในหลักฉันไม่มีอะไรกับข้อเหล่านี้ แต่ฉันจะนำไปใช้กับแอปพลิเคชันหลักทันทีถ้าฉันเลือกที่จะใช้ไลบรารี LGPLv3 ดูเหมือนว่ากฎของ LGPL v2.1 จะใช้กับไลบรารีที่คุณใช้หรือแก้ไขเท่านั้น มันไม่ได้พูดอะไรเกี่ยวกับแอปพลิเคชันหลัก (สมมติว่าไม่มีการเชื่อมโยงแบบคงที่ ฯลฯ ) ดังนั้นในผู้ให้บริการซอฟแวร์ตลาดเฉพาะที่ฉันทำงานเราใช้ (และสนับสนุน) ห้องสมุดลิขสิทธิ์ LGPL เป็นประจำโดยไม่จำเป็นต้องโอเพนซอร์สแอปพลิเคชันหลักของเรา การเปลี่ยนแปลงนี้ใน LGPLv3 หรือไม่ คำถาม/programming/1108238/differences-between-gnu-lgpl-v2-1-and-gnu-lgpl-v3มีคำตอบสองสามข้อ …

6
เหตุใดจึงต้องใช้บริการ (REST / SOAP) แทนที่จะเป็นห้องสมุด
สมมติว่าคุณกำลังมองหาการแยกแอปพลิเคชันของคุณลงในบริการ มีเหตุผลที่ดีบ้างไหมในการนำแนวทาง SOA มาใช้กับการสร้างไลบรารี่ API ที่สามารถโหลดได้โดยแอพพลิเคชั่นที่ต้องการ
22 api  soa  services 

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

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

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

12
จะเขียนล่ามคำสั่ง / parser ได้อย่างไร?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 7 ปีที่ผ่านมา ปัญหา: เรียกใช้คำสั่งในรูปแบบของสตริง ตัวอย่างคำสั่ง: /user/files/ list all; เทียบเท่ากับ: /user/files/ ls -la; อีกอันหนึ่ง: post tw fb "HOW DO YOU STOP THE TICKLE MONSTER?;" เทียบเท่ากับ: post -tf "HOW DO YOU STOP THE TICKLE MONSTER?;" ทางออกปัจจุบัน: tokenize string(string, array); switch(first item in array) …

3
จัดเก็บภาพในฐานข้อมูลหรือในไฟล์ที่มีลิงค์ฐานข้อมูลหรือไม่
การจัดเก็บไฟล์ภาพในฐานข้อมูลเหมาะสมหรือไม่? หรือมันจะดีกว่าที่จะเก็บเฉพาะเส้นทางของไฟล์ในฐานข้อมูลในขณะที่เก็บไฟล์ไว้บนเซิร์ฟเวอร์? มีวิธีอื่นในการทำสิ่งนี้ใช่ไหม?

4
ความแตกต่างทางสถาปัตยกรรมระหว่างภาษาแบบไดนามิกและแบบคงที่
มีความแตกต่างทางสถาปัตยกรรมที่สำคัญหรือไม่เมื่อออกแบบแอพพลิเคชั่นที่จะสร้างด้วยภาษาแบบสแตติก (เช่น C # หรือ Java) และภาษาแบบไดนามิก (เช่น Ruby หรือ Python) ความเป็นไปได้ในการออกแบบที่อาจเป็นตัวเลือกที่ดีสำหรับประเภทหนึ่งที่ไม่ดีสำหรับอีกประเภทหนึ่งคืออะไร มีคุณสมบัติที่มีประโยชน์ใด ๆ ที่สามารถใช้งานได้กับประเภทหนึ่งที่ไม่ได้อยู่กับคุณสมบัติอื่น (ในการออกแบบและสถาปัตยกรรม) นอกจากนี้ยังมีรูปแบบการออกแบบเฉพาะแบบไดนามิกหรือไม่

2
การออกแบบโดเมนขับเคลื่อน - พึ่งพาภายนอกในปัญหาเอ็นติตี้
ฉันต้องการเริ่มต้น Domain-Driven-Design แต่มีปัญหาหลายอย่างที่ฉันต้องการแก้ไขก่อนเริ่มต้น :) ลองนึกภาพฉันมีกลุ่มและผู้ใช้และเมื่อผู้ใช้ต้องการเข้าร่วมกลุ่มฉันกำลังเรียกgroupsService.AddUserToGroup(group, user)วิธี ใน DDD ฉันควรทำgroup.JoinUser(user)ซึ่งดูดีทีเดียว ปัญหาจะปรากฏขึ้นหากฉันมีกฎการตรวจสอบความถูกต้องบางประการสำหรับการเพิ่มผู้ใช้หรืองานภายนอกบางอย่างจำเป็นต้องเริ่มต้นเมื่อมีการเพิ่มผู้ใช้ในกลุ่ม การมีงานเหล่านี้จะนำไปสู่เอนทิตีที่มีการอ้างอิงภายนอก ตัวอย่างอาจเป็น - ข้อ จำกัด ที่ผู้ใช้สามารถเข้าร่วมได้สูงสุด 3 กลุ่มเท่านั้น วิธีนี้จะต้องใช้การเรียก DB จากภายในกลุ่มวิธีใช้ JoinUser เพื่อตรวจสอบความถูกต้องนี้ แต่ความจริงที่ว่า Entity นั้นขึ้นอยู่กับบริการ / คลาสภายนอกบางอย่างนั้นดูไม่ดีนัก วิธีที่เหมาะสมในการจัดการกับสิ่งนี้ใน DDD คืออะไร?

8
โพสต์โครงการประชุมเสียเวลาหรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ที่ทำงานของฉันฉันมีอาการปวดมากขึ้น เราไปจากทีมพัฒนา 3 ถึง 10 และ บริษัท เองก็เติบโต 30% ในปีที่ผ่านมา โดยการวัดส่วนใหญ่เราทำได้ดี น่าเสียดายที่คุณภาพของซอฟต์แวร์ของเราได้รับความเดือดร้อน ในการประชุมวันนี้กับผู้จัดการแผนกของฉันฉันเสนอการประชุมทีมโครงการหนึ่งหรือสองวันหลังจากเปิดตัวผลิตภัณฑ์ เราสามารถพูดคุยเรื่องงบประมาณขอบเขตขอบเขตสิ่งที่ผิดพลาดและสิ่งที่ถูกต้อง เป็นการดีที่จะเรียนรู้จากความผิดพลาดของเรา เราสร้างเว็บไซต์ / แอพสำหรับคนอื่นดังนั้นเวลาของเราจึงไม่สามารถเรียกเก็บเงินได้ การประชุมเช่นนี้จะตกอยู่ภายใต้หลัง ผู้จัดการของฉันยิงมันลงเกือบจะทันที: "เวลานั้นไม่สามารถเรียกเก็บเงินได้มันจะทำให้เรากลับมาทำโปรเจ็กต์อื่นได้เพราะเราเสียเวลาในตอนท้ายของเรื่องนั้น" ฉันรู้สึกไม่สะดวกใจกับตรรกะนี้ที่ฉันไม่เคยแม้แต่จะต่อสู้กับเขา ดังนั้นคำถามของฉัน: ฉันเห็นคุณค่าคือการประชุมหลังโครงการ แต่เขาไม่ทำ มีเอกสารหลักฐานของการประชุมหลังโครงการช่วยประหยัดเวลาและเงินในระยะยาว (หรือระยะสั้น)? ฉันคิดว่ามันจะเป็นไปได้ แต่เขาจะกังวลมากขึ้นเกี่ยวกับเวลาที่ไม่สามารถเรียกเก็บเงินได้จาก 5 คนที่จะต้องอยู่ที่นั่น

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