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

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

4
คุณจะทำให้การทดสอบของคุณทำงานได้อย่างมีประสิทธิภาพขณะที่คุณออกแบบใหม่
codebase ที่ผ่านการทดสอบเป็นอย่างดีมีประโยชน์หลายประการ แต่การทดสอบบางแง่มุมของระบบจะส่งผลให้เป็น codebase ที่ทนทานต่อการเปลี่ยนแปลงบางประเภท ตัวอย่างคือการทดสอบผลลัพธ์เฉพาะ - เช่นข้อความหรือ HTML การทดสอบมักจะเขียน (ไร้เดียงสา?) เพื่อคาดหวังว่าจะมีบล็อกข้อความที่เฉพาะเจาะจงเป็นเอาต์พุตสำหรับพารามิเตอร์ป้อนเข้าบางส่วนหรือเพื่อค้นหาส่วนเฉพาะในบล็อก การเปลี่ยนพฤติกรรมของรหัสเพื่อตอบสนองความต้องการใหม่หรือเนื่องจากการทดสอบการใช้งานได้ส่งผลให้เกิดการเปลี่ยนแปลงในส่วนต่อประสานจำเป็นต้องเปลี่ยนการทดสอบด้วย - บางทีแม้แต่การทดสอบที่ไม่ได้เป็นการทดสอบหน่วยโดยเฉพาะสำหรับรหัสที่กำลังเปลี่ยนแปลง คุณจะจัดการงานในการค้นหาและเขียนการทดสอบเหล่านี้ใหม่ได้อย่างไร? จะทำอย่างไรถ้าคุณไม่สามารถ "เรียกใช้" ทั้งหมดและปล่อยให้กรอบเรียงลำดับออก " ผลการทดสอบภายใต้รหัสอื่น ๆ ประเภทใดในการทดสอบที่เปราะบางเป็นปกติ

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

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

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

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

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

2
เพราะเหตุใด '42' จึงเป็นหมายเลขที่ต้องการเมื่อแสดงบางสิ่งที่สุ่ม
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเคยเห็นสิ่งนี้ทาง SO หลายต่อหลายครั้ง เมื่อใดก็ตามที่คำถามคลุมเครือและคำถามกำลังถามคำตอบเวทมนต์บางคนหรือคนอื่น ๆ แสดงความคิดเห็นว่าคำตอบคือ 42 แม้แต่หนังสือที่ฉันกำลังอ่านอยู่ตอนนี้ใช้ '42' เป็นตัวเลขเมื่อใดก็ตามที่ต้องการแสดงแนวคิดพื้นฐานโดยใช้จำนวนเต็ม . ดังนั้นจึงมีประวัติใด ๆ เบื้องหลังหรือเป็นเพียงเรื่องบังเอิญ?
14 history  numbers 

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

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

12
คำนำหน้าประเภทและขอบเขตมีประโยชน์หรือไม่
เมื่อเร็ว ๆ นี้เริ่มงานแรกของฉันในฐานะนักพัฒนาซอฟต์แวร์ฉันถูกโยนลงมาเล็กน้อยเพื่อบอกว่าฉันไม่ต้องทำตามอนุสัญญาการตั้งชื่อใด ๆ ในรหัสของฉัน รหัสที่เขียนโดยกลุ่มที่ทำงานในโครงการอื่น ๆ โครงการขนาดใหญ่ตามอนุสัญญาการตั้งชื่อ แต่เนื่องจากฉันถูกนำเข้ามาเขียนแอปพลิเคชั่นใหม่สแตนด์อะโลนความรู้สึกคือว่ามันไม่สำคัญเลย มันเป็นความกังวลครั้งสุดท้ายของฉันดังนั้นฉันแค่ทำตามแบบแผนเดิมที่มีอยู่แล้วก็วิ่งไปด้วย int nTickCount bool bConnected object[] m_aItems fSum += fWeight * fValue class cManager enum etSystemStates etSystemStates eState cManager.cs แต่มันคุ้มค่าจริงหรือ ฉันคิดว่ามันยากที่จะตัดสินผลกระทบสุทธิว่าการทำตามแบบแผนการตั้งชื่อแบบนี้มีความเข้าใจและการตรวจจับข้อผิดพลาด แต่จากการมองเห็นมันก็ดูน่าเกลียด นอกจากนี้การมีทุกคลาสและไฟล์ทั้งหมดในโครงการที่เรียกว่า cSomething ดูเหมือนว่าจะไม่ค่อยสวย ฉันไม่ได้อยู่ภายใต้ภาพลวงตาว่าเป็นเรื่องใหญ่ระยะไกลเมื่อเปรียบเทียบกับสิ่งที่สร้างความแตกต่างอย่างชัดเจนเช่นอัลกอริธึมและสถาปัตยกรรมที่คุณใช้ แต่การประชุมใด ๆ ที่มีผลต่อรหัสทุกบรรทัดที่ฉันเขียนดูเหมือนว่าคุ้มค่า คุณคิดว่ารูปแบบการตั้งชื่อที่หรูหราและมีประสิทธิภาพที่สุดคืออะไรหากจำเป็นต้องใช้เลย? มันแสดงถึงประเภทและ / หรือขอบเขตหรือไม่?

6
ฟังก์ชั่นที่บริสุทธิ์เทียบกับบอกไม่ต้องถาม?
"จำนวนอาร์กิวเมนต์ที่เหมาะสมที่สุดสำหรับฟังก์ชั่นคือศูนย์" นั้นผิดปกติ จำนวนอาร์กิวเมนต์ที่เหมาะสมที่สุดคือจำนวนที่ต้องการเพื่อให้ฟังก์ชันของคุณปราศจากผลข้างเคียง น้อยกว่านั้นและคุณไม่จำเป็นต้องทำให้หน้าที่ของคุณไม่บริสุทธิ์ดังนั้นบังคับให้คุณหลีกทางให้พ้นจากหลุมแห่งความสำเร็จและไต่ระดับความเจ็บปวด บางครั้ง "ลุงบ๊อบ" ก็พร้อมให้คำแนะนำ บางครั้งเขาผิดอย่างงดงาม คำแนะนำข้อโต้แย้งของเขาเป็นศูนย์เป็นตัวอย่างของสิ่งหลัง ( ที่มา: ความเห็นโดย @David Arno ภายใต้คำถามอื่นบนเว็บไซต์นี้ ) ความคิดเห็นที่ได้รับเพิ่มขึ้นอย่างน่าทึ่งจาก 133 upvotes ซึ่งเป็นเหตุผลที่ฉันต้องการที่จะให้ความสนใจอย่างใกล้ชิดกับบุญของมัน เท่าที่ฉันทราบมีสองวิธีในการเขียนโปรแกรม: การเขียนโปรแกรมการทำงานที่บริสุทธิ์ (สิ่งที่ความคิดเห็นนี้เป็นกำลังใจ) และบอกอย่าถาม (ซึ่งเป็นครั้งคราวแนะนำบนเว็บไซต์นี้เช่นกัน) AFAIK หลักการสองข้อนี้ไม่สามารถใช้ร่วมกันได้ใกล้เคียงกับสิ่งที่ตรงกันข้าม: การทำงานที่บริสุทธิ์สามารถสรุปได้ว่า "เพียงแค่คืนค่าไม่มีผลข้างเคียง" ในขณะที่บอกอย่าถามสามารถสรุปได้ว่า "ไม่คืนสิ่งใดเลย" มีผลข้างเคียงเท่านั้น " นอกจากนี้ฉันยังงุนงงเพราะฉันคิดว่าการบอกอย่าถามถือเป็นแกนหลักของกระบวนทัศน์ OO ในขณะที่ funcitons บริสุทธิ์ถือเป็นแกนหลักของกระบวนทัศน์การทำงาน - ตอนนี้ฉันเห็นฟังก์ชั่นบริสุทธิ์ที่แนะนำใน OO! ฉันคิดว่านักพัฒนาน่าจะเลือกหนึ่งในกระบวนทัศน์เหล่านี้และยึดติดกับมัน? ฉันต้องยอมรับว่าฉันไม่สามารถพาตัวเองไปติดตามได้ บ่อยครั้งที่มันสะดวกสำหรับฉันที่จะคืนค่าและฉันไม่สามารถมองเห็นได้ว่าฉันจะบรรลุสิ่งที่ฉันต้องการเพื่อให้บรรลุเฉพาะกับผลข้างเคียง บ่อยครั้งที่มันสะดวกสำหรับฉันที่จะมีผลข้างเคียงและฉันไม่เห็นจริง ๆ ว่าฉันจะบรรลุสิ่งที่ฉันต้องการได้รับเพียงแค่คืนค่า นอกจากนี้บ่อยครั้ง (ฉันเดาว่ามันน่ากลัว) ฉันมีวิธีการที่ทำทั้งสองอย่าง …

3
อะไรคืออุปสรรคที่ขัดขวางการยอมรับวิธีการอย่างเป็นทางการ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา วิธีการที่เป็นทางการสามารถใช้เพื่อระบุพิสูจน์และสร้างรหัสสำหรับแอปพลิเคชัน นี่เป็นโอกาสที่จะเกิดข้อผิดพลาดได้น้อยซึ่งส่วนใหญ่จะใช้ในโปรแกรมความปลอดภัย / วิกฤติ ทำไมเราไม่ใช้มันบ่อยกว่าสำหรับการเขียนโปรแกรมทุกวันหรือในเว็บแอปพลิเคชัน ฯลฯ ... การอ้างอิง: วิธีการอย่างเป็นทางการ วิธีการ B Hoare Logic

3
การมีเพศสัมพันธ์ของรหัสแนะนำโดย DRY และ OOD
ฉันกำลังมองหาคำแนะนำเกี่ยวกับ DRY กับการแต่งงานกันของ Code ฉันไม่ชอบที่จะทำซ้ำรหัสของฉันและฉันก็ไม่ชอบการเชื่อมต่อโค้ดระหว่างโมดูลที่ไม่เกี่ยวข้อง ดังนั้นฉันจึง refactor รหัสที่ซ้ำกันถ้าฉันพบรหัสที่ซ้ำกันเหมือนกันหนึ่งปีหลังจากที่มีการแนะนำการทำซ้ำ อย่างไรก็ตามฉันมีประสบการณ์ที่มากขึ้นซึ่งโลกแห่งความจริงนั้นไม่อาจคาดเดาได้มากขึ้นและหลังจากการปรับรหัสให้ใหม่แล้ว ตัวอย่างเช่นหากฉันมีรหัสเพื่อจัดการรถยนต์เบนซิน SUV เบนซินรถยนต์ไฟฟ้าและ SUV ไฟฟ้าสมมติว่าฉันได้รับรหัสซ้ำลงในลำดับชั้น "น้ำมัน" และลำดับชั้น "ไฟฟ้า" ทั้งคู่ลงมาจากลำดับ "ยานพาหนะ" จนถึงตอนนี้ดีมาก จากนั้น บริษัท ของฉันแนะนำรถยนต์ไฮบริดและไฮบริดกึ่งซึ่งจะต้องมีการเปลี่ยนแปลงหลักในลำดับชั้นดั้งเดิมของฉันเอง อาจจะต้องมี "องค์ประกอบ" ระหว่างน้ำมันเบนซินและลำดับชั้นไฟฟ้า เห็นได้ชัดว่าการทำสำเนารหัสไม่ดีเพราะเพิ่มเวลาในการดำเนินการเปลี่ยนแปลงร่วมกับผลิตภัณฑ์ทั้งหมดข้างต้น แต่การปรับเปลี่ยนรหัสทั่วไปทำให้ยากที่จะแนะนำรูปแบบเฉพาะของผลิตภัณฑ์และนำไปสู่ ​​"การกระโดดแบบคลาส" เป็นจำนวนมากเมื่อต้องค้นหาบรรทัดของรหัสเพื่อแก้ไขข้อบกพร่อง - การเปลี่ยนแปลงในระดับผู้ปกครองระดับสูงขึ้นสามารถทำได้ ทริกเกอร์การถดถอยข้อบกพร่องในหมู่ลูกหลานทั้งหมด หนึ่งจะสมดุลระหว่าง DRY และการมีเพศสัมพันธ์รหัสที่ไม่พึงประสงค์ได้อย่างไร
14 design  dry  coupling 

3
การคืนสภาพรวมจากการฉายภาพ“ สแน็ปช็อต” มากกว่าที่จัดเก็บกิจกรรม
ดังนั้นตอนนี้ฉันก็เลยเริ่มมีการจัดหากิจกรรมและ CQRS มาระยะหนึ่งแล้วแม้ว่าฉันจะไม่เคยมีโอกาสใช้รูปแบบในโครงการจริง ฉันเข้าใจถึงประโยชน์ของการแยกข้อกังวลการอ่านและการเขียนของคุณและฉันขอขอบคุณที่การจัดหากิจกรรมทำให้ง่ายต่อการเปลี่ยนสถานะโครงการเป็นฐานข้อมูล "อ่านแบบจำลอง" ซึ่งแตกต่างจาก Event Store ของคุณ สิ่งที่ฉันไม่ชัดเจนเป็นพิเศษคือเหตุผลที่คุณจะต้องคืนค่าการรวมของคุณจาก Event Store เอง หากการฉายการเปลี่ยนแปลงกับฐานข้อมูล "อ่าน" นั้นง่ายมากทำไมไม่ฉายโครงการการเปลี่ยนแปลงไปยังฐานข้อมูล "เขียน" ซึ่งสคีมาตรงกับรูปแบบโดเมนของคุณอย่างสมบูรณ์ นี่จะเป็นฐานข้อมูลสแน็ปช็อตอย่างมีประสิทธิภาพ ฉันคิดว่านี่จะต้องเป็นเรื่องธรรมดาใน ES + CQRS ในแอพพลิเคชั่น หากเป็นกรณีนี้ Event Store จะมีประโยชน์เฉพาะเมื่อสร้างฐานข้อมูล "เขียน" ของคุณใหม่เนื่องจากการเปลี่ยนแปลงสคีมาหรือไม่ หรือฉันกำลังพลาดอะไรที่ใหญ่กว่านี้?

3
Poor Man's Dependency Injection เป็นวิธีที่ดีในการแนะนำความสามารถในการทดสอบกับแอปพลิเคชันรุ่นเก่าหรือไม่?
ในปีที่ผ่านมาฉันสร้างระบบใหม่โดยใช้ Dependency Injection และ IOC container เรื่องนี้สอนฉันมากมายเกี่ยวกับ DI! อย่างไรก็ตามหลังจากเรียนรู้แนวคิดและรูปแบบที่เหมาะสมแล้วฉันคิดว่ามันเป็นความท้าทายในการแยกรหัสและแนะนำคอนเทนเนอร์ IOC ในแอปพลิเคชันรุ่นเก่า แอปพลิเคชันมีขนาดใหญ่พอที่จะนำไปใช้จริง แม้ว่าค่าจะเข้าใจและเวลาที่ได้รับ ใครให้เวลากับอะไรแบบนี้ ?? เป้าหมายของหลักสูตรคือการนำการทดสอบหน่วยมาใช้ในตรรกะทางธุรกิจ! ตรรกะทางธุรกิจที่เกี่ยวพันกับการเรียกการป้องกันฐานข้อมูลการทดสอบ ผมเคยอ่านบทความและผมเข้าใจอันตรายของคนจนพึ่งพาการฉีดตามที่อธิบายไว้ในบทความ Los Techies นี้ ผมเข้าใจว่ามันไม่ได้อย่างแท้จริง decouple อะไร ฉันเข้าใจว่าสามารถมีส่วนร่วมในการปรับโครงสร้างระบบได้มากเนื่องจากการติดตั้งใช้งานต้องอาศัยการพึ่งพาใหม่ ฉันจะไม่พิจารณาใช้กับโปรเจ็กต์ใหม่ที่มีขนาดเท่าใดก็ได้ คำถาม:การใช้ DI ของ Poor Man เพื่อแนะนำการทดสอบกับแอปพลิเคชั่นรุ่นเก่าและเริ่มต้นการหมุนลูกบอลได้หรือไม่? นอกจากนี้การใช้ Poor Man's DI เป็นวิธีรากหญ้าในการฉีด Dependency ที่แท้จริงเป็นวิธีที่มีคุณค่าในการให้ความรู้เกี่ยวกับความต้องการและประโยชน์ของหลักการหรือไม่ คุณสามารถ refactor วิธีการที่มีการอ้างอิงการโทรฐานข้อมูลและนามธรรมที่โทรไปด้านหลังส่วนติดต่อ? เพียงแค่มีสิ่งที่เป็นนามธรรมจะทำให้วิธีการนั้นสามารถทดสอบได้เนื่องจากการใช้งานจำลองอาจถูกส่งผ่านทางตัวสร้างเกินพิกัด เมื่อถึงความพยายามที่ได้รับการสนับสนุนโครงการสามารถปรับปรุงเพื่อใช้คอนเทนเนอร์ IOC และผู้สร้างจะออกไปที่นั่นในนามธรรม

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