คำถามติดแท็ก mvc

MVC (Model-View-Controller) เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่บังคับให้แยกความกังวลออก

3
วิธีการแยก UI จากตรรกะบนแอป Pyqt / Qt อย่างถูกต้อง?
ผมเคยอ่านค่อนข้างมากเกี่ยวกับเรื่องนี้ในอดีตและเฝ้าดูการเจรจาที่น่าสนใจบางเช่นเดียวจากนี้ลุงบ๊อบ ถึงกระนั้นฉันมักจะพบว่ามันยากที่จะออกแบบสก์ท็อปของฉันอย่างถูกต้องและแยกแยะความแตกต่างซึ่งควรเป็นความรับผิดชอบในด้านUIและสิ่งที่อยู่ในด้านตรรกะ สรุปโดยย่อเกี่ยวกับแนวทางปฏิบัติที่ดีคือสิ่งนี้ คุณควรออกแบบตรรกะของคุณแยกจาก UI ดังนั้นวิธีที่คุณสามารถใช้ (ในทางทฤษฎี) ไลบรารีของคุณไม่ว่าจะเป็นแบ็กเอนด์ / UI ใด ๆ สิ่งนี้หมายความว่าโดยพื้นฐานแล้ว UI ควรเป็นคนโง่ที่สุดและควรทำการประมวลผลอย่างหนักที่ด้านตรรกะ ถ้าอย่างนั้นฉันก็สามารถใช้ไลบรารี่ที่สวยงามของฉันกับแอพพลิเคชั่นคอนโซลเว็บแอพพลิเคชั่น นอกจากนี้ลุงบ๊อบแนะนำการอภิปรายที่แตกต่างกันของเทคโนโลยีที่ใช้จะให้ประโยชน์มากมาย (อินเทอร์เฟซที่ดี) แนวคิดการชะลอตัวนี้ช่วยให้คุณมีเอนทิตี้ที่ผ่านการทดสอบอย่างดีซึ่งฟังดูดี แต่ก็ยังยุ่งยาก ดังนั้นฉันรู้ว่าคำถามนี้เป็นคำถามที่ค่อนข้างกว้างขวางซึ่งมีการพูดคุยกันหลายครั้งผ่านอินเทอร์เน็ตทั้งหมดและในหนังสือที่ดีมากมาย ดังนั้นเพื่อให้ได้สิ่งที่ดีออกมาฉันจะโพสต์ตัวอย่างตัวอย่างเล็ก ๆ น้อย ๆ ที่พยายามใช้ MCV บน pyqt: import sys import os import random from PyQt5 import QtWidgets from PyQt5 import QtGui from PyQt5 import QtCore random.seed(1) class Model(QtCore.QObject): …
20 design  python  mvc  gui  coupling 

6
ใน MVC อะไรคือความแตกต่างระหว่างคอนโทรลเลอร์และเราเตอร์
พวกเขาหมายถึงสิ่งเดียวกัน (แนบ URL กับการกระทำหรือการกระทำกับ URL) หรือมีความแตกต่างที่ฉันขาดหายไปหรือไม่? ตัวอย่าง: http://github.com/dannyvankooten/PHP-Router vs. http://konstrukt.dk
19 mvc  routing 

7
นักพัฒนา Ruby on Rails ที่มีประสบการณ์ใช้นั่งร้านหรือไม่
ในบทช่วยสอน Ruby on Rails ฉันอ่านสิ่งที่แนะนำว่าผู้พัฒนาที่มีประสบการณ์ไม่ได้ใช้นั่งร้านเนื่องจากพวกเขามักจะชอบเขียนโค้ดเพื่อเชื่อมต่อ MVC ด้วยตัวเอง ในสถานที่ที่แตกต่างกันฉันอ่านว่ามันเป็นความคิดที่ดีที่จะใช้นั่งร้านเพราะมันช่วยให้คุณติดการประชุมเพื่อให้คนอื่นที่ดูและโต้ตอบกับโค้ดของคุณจะเข้าใจสิ่งที่คุณกำลังทำอยู่ ฉันค่อนข้างใหม่กับ Ruby on Rails แต่ไม่ใช่ MVC หรือเว็บแอปพลิเคชัน - โดยทั่วไปฉันควรพยายามอย่างหนักที่จะยึดการประชุมนั่งร้านและให้คำแนะนำแก่ฉันหรือไม่

2
คุณแยกมุมมองออกจากตรรกะในแอปพลิเคชัน Winform อย่างไร
ฉันรู้ว่ามีรูปแบบเช่น MVC เพื่อแยกมุมมองจากตรรกะ แต่ฉันไม่ทราบว่าเป็นเรื่องธรรมดาเพียงใดในแอปพลิเคชัน Winform สำหรับแอปพลิเคชัน C # Winform ฉันอาจเริ่มต้นด้วยFormและค่อยๆเพิ่มส่วนประกอบ UI ลงไปจากนั้นสำหรับกิจกรรมของส่วนประกอบ ( click, textchanged... ) ฉันเรียกฟังก์ชั่นของฉันหรือเขียนตรรกะของฉันตรงนั้น! ฉันรู้ว่าเป็นนิสัยที่ไม่ดี แต่ฉันไม่ทราบว่าวิธีที่ดีที่สุดในการเริ่มต้นโครงการใน Visual Studio (แม่แบบกรอบงานจุดเริ่มต้น) MVC เป็นทางออกเดียวหรือไม่ ฉันควรทำเพื่อโครงการใด ๆ ! ฉันต้องการรับแนวทางหรือเฟรมเวิร์กขนาดเล็กเพื่อเริ่มต้นใช้งาน
18 c#  mvc  winforms 

2
วิธีสร้างสถาปัตยกรรมเว็บแอปพลิเคชั่นบนเว็บแบบเรียลไทม์ที่มีน้ำหนักมาก
ในกระบวนการพัฒนาแอปพลิเคชั่นหน้าเดียวแบบเรียลไทม์ฉันได้ปรับใช้เว็บซ็อกเก็ตอย่างต่อเนื่องเพื่อช่วยให้ผู้ใช้ของฉันมีข้อมูลที่ทันสมัย ในช่วงนี้ฉันเสียใจที่สังเกตว่าฉันทำลายโครงสร้างแอปมากเกินไปและฉันไม่สามารถหาวิธีแก้ไขปรากฏการณ์นี้ได้ ก่อนที่จะทำความเข้าใจโดยเฉพาะบริบทเพียงเล็กน้อย: webapp เป็นเรียลไทม์ SPA แบ็คเอนด์อยู่ใน Ruby on Rails เหตุการณ์แบบเรียลไทม์ถูกผลักโดย Ruby ไปยังคีย์ Redis จากนั้นเซิร์ฟเวอร์ไมโครโหนดจะดึงข้อมูลกลับมาและส่งไปยัง Socket.Io; Frontend อยู่ใน AngularJS และเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ socket.io ในโหนด ที่ฝั่งเซิร์ฟเวอร์ก่อนเรียลไทม์ฉันมีตัวควบคุม / รูปแบบการแยกทรัพยากรที่ชัดเจนโดยมีการประมวลผลที่แนบมากับแต่ละ การออกแบบ MVC แบบคลาสสิกนี้ถูกทำลายอย่างสมบูรณ์หรืออย่างน้อยก็ข้ามเมื่อฉันเริ่มผลักสิ่งต่าง ๆ ผ่านเว็บซ็อกเก็ตกับผู้ใช้ของฉัน ฉันมีตอนนี้เป็นท่อเดียวที่ทั้งหมดของ app ของฉันไหลลงข้อมูลได้มากขึ้นหรือน้อยกว่าโครงสร้าง และฉันก็พบว่ามันเครียด ส่วนหน้าความกังวลหลักคือการทำซ้ำตรรกะทางธุรกิจ เมื่อผู้ใช้โหลดหน้าฉันต้องโหลดแบบจำลอง AJAX แบบดั้งเดิมของฉันผ่านสายโทรศัพท์ แต่ฉันต้องจัดการกับข้อมูลแบบเรียลไทม์ที่ท่วมท้นและฉันก็พบว่าตัวเองซ้ำซ้อนกับตรรกะทางธุรกิจฝั่งไคลเอ็นต์ของฉันเพื่อรักษาความมั่นคงของโมเดลฝั่งไคลเอ็นต์ของฉัน หลังจากการวิจัยบางอย่างฉันไม่พบบทความบทความหนังสือหรืออะไรก็ตามที่จะให้คำแนะนำเกี่ยวกับวิธีที่เราสามารถทำได้และควรออกแบบสถาปัตยกรรมของ webapp ทันสมัยโดยมีหัวข้อเฉพาะอยู่สองสามข้อ: วิธีจัดโครงสร้างข้อมูลที่ส่งจากเซิร์ฟเวอร์ไปยังผู้ใช้ ฉันควรส่งกิจกรรมเช่น "ทรัพยากรนี้ได้รับการอัปเดตแล้วและคุณควรโหลดซ้ำผ่านการโทร AJAX" หรือกดข้อมูลที่อัปเดตแล้วแทนที่ข้อมูลก่อนหน้านี้ที่โหลดผ่านการโทร AJAX ครั้งแรก วิธีการกำหนดโครงกระดูกที่สอดคล้องกันและปรับขนาดได้กับข้อมูลที่ส่ง? …

6
กลยุทธ์ในการหลีกเลี่ยง SQL ในตัวควบคุมของคุณ ... หรือฉันควรมีกี่วิธีในแบบจำลองของฉัน
ดังนั้นสถานการณ์ที่ฉันพบเจอบ่อยพอสมควรคือสถานการณ์ที่แบบจำลองของฉันเริ่มต้นด้วย: เติบโตเป็นสัตว์ประหลาดด้วยวิธีตันและตัน หรือ อนุญาตให้คุณส่งชิ้นส่วนของ SQL ไปยังพวกเขาเพื่อให้พวกเขามีความยืดหยุ่นเพียงพอที่จะไม่ต้องใช้วิธีการที่แตกต่างกันนับล้าน ตัวอย่างเช่นสมมติว่าเรามีโมเดล "วิดเจ็ต" เราเริ่มต้นด้วยวิธีการพื้นฐานบางอย่าง: ได้รับ ($ ID) แทรก ($ บันทึก) อัปเดต ($ id, $ บันทึก) ลบ ($ ID) getList () // รับรายการวิดเจ็ต ทั้งหมดนี้เป็นเรื่องที่ดีและสวยงาม แต่จากนั้นเราต้องการรายงาน รายการสร้างระหว่าง ($ start_date, $ end_date) รายการซื้อระหว่าง ($ start_date, $ end_date) listOfPending () จากนั้นการรายงานเริ่มซับซ้อนขึ้น: listPendingCreatedBetween ($ start_date, $ end_date) listForCustomer ($ CUSTOMER_ID) …

7
คุณจะจัดระเบียบกรอบงาน MVC ของคุณในขณะที่สนับสนุนโมดูล / ปลั๊กอินได้อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบ เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา มีโครงสร้าง codebase หลักสองที่ฉันได้เห็นเมื่อมันมาถึงกรอบ MVC ปัญหาคือพวกเขาทั้งสองดูเหมือนจะมีข้อผิดพลาดขององค์กรที่ไปกับพวกเขา MVC มาตรฐาน /controller /model /view ปัญหา: ไม่มีการแยกส่วนประกอบที่เกี่ยวข้อง (ฟอรัมบล็อกผู้ใช้ ฯลฯ ) MVC แบบแยกส่วน /blog /controller /model /view /user /controller /model /view /forum /controller /model /view การเลือกระบบที่ใช้โมดูลทำให้คุณมีปัญหา ชื่อยาว (Forum_Model_Forum = forum / model / forum.php) (Like Zend) ระบบไฟล์ค้นหาโดยใช้is_file()เพื่อค้นหาว่าโฟลเดอร์ใดมีรุ่นฟอรัมหรือไม่ (เช่นเดียวกับ …

5
MVC, WCF, EF, LINQ - แค่ฉันเหรอ? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ... หรือสิ่งต่าง ๆ มีความซับซ้อนมากขึ้น? สำหรับฉันดูเหมือนว่าคุณจำเป็นต้องรู้หลายสิ่งหลายอย่างในการ 'พัฒนา' แอป MS web ให้เหมาะสมในทุกวันนี้ ในวันที่ไม่ดีเมื่อเราไม่รู้ว่ามีอะไรดีกว่านี้เรามีตารางฐานข้อมูล ASP.NET, ADO.NET และคุณสร้างเว็บแอปโดยใช้แนวคิดที่เรียบง่าย ทุกวันนี้ดูเหมือนจะมีกรอบมากมายที่จะ 'ช่วย' คุณทำถูกต้อง แต่ฉันไม่เชื่อว่านี่จะทำให้ง่ายขึ้นและดีขึ้น ฉันมีความรู้สึกฉันจะเป็นคนกลุ่มน้อยที่มีความรู้สึกเช่นนี้ แต่มีใครอีกบ้างที่คิดว่าสิ่งต่าง ๆ เป็นบ้าไปหน่อย?

5
MVC: คอนโทรลเลอร์ทำลายหลักการความรับผิดชอบเดี่ยวหรือไม่?
หลักการความรับผิดชอบเดี่ยวระบุว่า "คลาสควรมีเหตุผลประการเดียวคือการเปลี่ยนแปลง" ในรูปแบบ MVC งานของผู้ควบคุมจะเป็นสื่อกลางระหว่างมุมมองและรูปแบบ มันมีอินเทอร์เฟซสำหรับมุมมองเพื่อรายงานการกระทำของผู้ใช้บน GUI (เช่นการอนุญาตให้ดูการโทรcontroller.specificButtonPressed()) และสามารถเรียกวิธีการที่เหมาะสมในตัวแบบเพื่อจัดการข้อมูลหรือเรียกใช้การดำเนินการ (เช่นmodel.doSomething()) . ซึ่งหมายความว่า: คอนโทรลเลอร์จำเป็นต้องรู้เกี่ยวกับ GUI เพื่อเสนอมุมมองอินเทอร์เฟซที่เหมาะสมเพื่อรายงานการกระทำของผู้ใช้ นอกจากนี้ยังจำเป็นต้องรู้เกี่ยวกับตรรกะในรูปแบบเพื่อที่จะสามารถเรียกใช้วิธีการที่เหมาะสมในรูปแบบ นั่นหมายความว่ามีสองเหตุผลในการเปลี่ยนแปลง : การเปลี่ยนแปลงใน GUI และการเปลี่ยนแปลงในตรรกะธุรกิจ หากมีการเปลี่ยนแปลง GUI เช่นมีการเพิ่มปุ่มใหม่ตัวควบคุมอาจต้องเพิ่มวิธีการใหม่เพื่อให้มุมมองรายงานผู้ใช้กดปุ่มนี้ และหากตรรกะทางธุรกิจในรูปแบบการเปลี่ยนแปลงผู้ควบคุมอาจต้องเปลี่ยนเพื่อที่จะเรียกใช้วิธีการที่ถูกต้องในรูปแบบ ดังนั้นการควบคุมมีสองเหตุผลที่เป็นไปได้ที่จะมีการเปลี่ยนแปลง มันทำลาย SRP หรือไม่

3
Massive View Controller - IOS - โซลูชั่น
ฉันแน่ใจว่านักพัฒนา iOS ใหม่ทุกคนมีปัญหาดังต่อไปนี้: ตัวควบคุมมุมมองได้รับความแออัดอย่างรวดเร็วด้วยรหัสสำหรับวัตถุประสงค์ที่หลากหลายรับ 500 บรรทัดของรหัสได้อย่างง่ายดาย นี่คือหน้าตาพื้นฐานและหน้าจอทั่วไปสองแบบ: 1) หน้าจอแบบฟอร์ม: 2) หน้าจอควบคุมมุมมองตาราง จนถึงตอนนี้ฉันได้อ่านเกี่ยวกับโซลูชันที่แตกต่างกันสองวิธี: โซลูชั่นแรก: https://bendyworks.com/single-responsibility-principle-ios/ สิ่งนี้ยึดตามการแจ้งเตือนซึ่งแยกตัวควบคุมมุมมองออกจากตัวแบบมุมมอง (ความตั้งใจ) โดยสมบูรณ์และลดรหัสในตัวควบคุมมุมมอง ฉันคิดว่ามันมีข้อเสียของการทำลายโค้ดคล้ายกับโครงสร้างของ Go-To ดูเหมือนว่านี้: โซลูชันที่สองช่วยให้ View Controller เป็นแออัดเหมือนเดิม (การทำงานของปุ่มจะถูกดำเนินการภายใน VC และอื่น ๆ ) แต่ใช้ไลบรารีเช่นTPKeyboardAvoiding , BlocksKit หรือโซลูชันอื่น ๆ ส่วนใหญ่อ้างอิงจากหมวดหมู่ ด้วยวิธีที่สองนี้รหัสจะลดลงอย่างมาก แต่ตัวควบคุมมุมมองยังคงมีความรับผิดชอบจำนวนมาก คุณคิดอย่างไรเกี่ยวกับการแก้ปัญหาเหล่านี้? ไหนดีกว่ากัน มีดีกว่าไหม
16 mvc  ios  objective-c 

7
ในสถาปัตยกรรม MVC มีความสัมพันธ์กับ Model and View to Controller อย่างไร
ฉันมีแอพที่ใช้ MVC แต่ฉันพยายามดิ้นรนนิดหน่อยว่าตัวควบคุมควรได้รับการออกแบบใหม่อย่างไร ตัวอย่างเช่นมุมมองจะดูชุดย่อยบางส่วนของข้อมูลของรุ่นพร้อมกันเท่านั้น อย่างไรก็ตามฉันไม่แน่ใจว่าควรจะจัดการเรื่องนี้อย่างไร เป็นเรื่องปกติที่ View หรือ Model จะเรียกใช้ฟังก์ชั่นโดยตรงบน Controller หรือไม่? ผ่านอินเตอร์เฟสบางประเภท? หรือพวกเขาถูกห่อหุ้มทั้งหมดและไม่เคยรู้เกี่ยวกับตัวควบคุมหรือกันและกัน? เช่นเดียวกับการแก้ไข; นี่เป็นแอปที่กำหนดเองที่ไม่ได้เขียนในกรอบงานเว็บใด ๆ ดังนั้นฉันไม่ได้มองหารายละเอียดเฉพาะของกรอบงานที่นี่และมีอิสระในการเลือกของฉันเอง
16 mvc 

4
แบบฟอร์ม Django ละเมิด MVC หรือไม่
ฉันเพิ่งเริ่มทำงานกับ Django ที่มาจาก Spring MVC มาหลายปีและรูปแบบการติดตั้งใช้งานเหมือนเป็นบ้าเล็กน้อย หากคุณไม่คุ้นเคยรูปแบบ Django จะเริ่มต้นด้วยคลาสของโมเดลโมเดลที่กำหนดฟิลด์ของคุณ ฤดูใบไม้ผลิเริ่มต้นคล้ายกับวัตถุการสนับสนุนแบบฟอร์ม แต่ที่ Spring จัดเตรียมtaglibสำหรับการรวมองค์ประกอบของฟอร์มเข้ากับวัตถุสำรองภายใน JSP ของคุณ Django มีวิดเจ็ตของฟอร์มที่เชื่อมโยงโดยตรงกับโมเดล มีวิดเจ็ตเริ่มต้นที่คุณสามารถเพิ่มแอตทริบิวต์สไตล์ให้กับฟิลด์ของคุณเพื่อใช้ CSS หรือกำหนดวิดเจ็ตที่กำหนดเองอย่างสมบูรณ์เป็นคลาสใหม่ ทุกอย่างจะไปในรหัสหลามของคุณ ที่ดูเหมือนว่าถั่วกับฉัน ก่อนอื่นคุณจะใส่ข้อมูลเกี่ยวกับมุมมองของคุณโดยตรงในแบบจำลองของคุณและประการที่สองคุณจะผูกพันรูปแบบของคุณกับมุมมองที่เฉพาะเจาะจง ฉันพลาดอะไรไปรึเปล่า? แก้ไข: โค้ดตัวอย่างบางส่วนตามที่ร้องขอ Django: # Class defines the data associated with this form class CommentForm(forms.Form): # name is CharField and the argument tells Django to use a …
16 mvc  django 

7
มีการใช้รูปแบบ MVC ในอุตสาหกรรมหรือไม่ hype ทั้งหมดคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเป็นนักเรียน แต่ฉันหวังว่าจะได้ย้ายเข้าสู่อุตสาหกรรมซอฟต์แวร์ในไม่ช้า ดูเหมือนว่ามีโฆษณาจำนวนมากเกี่ยวกับรูปแบบซอฟต์แวร์ MVC ฉันสังเกตเห็นว่ากรอบ PHP มักจะเป็น MVC แล้วภาษาที่ไม่ใช่เว็บเป็นอย่างไรกับพวกเขา สำหรับวิทยานิพนธ์ปริญญาโทของฉัน (C ++) ฉันเลือกรูปแบบ MVC เพราะแยกตรรกะและส่วนติดต่อผู้ใช้ออกเป็นอย่างดี ในอุตสาหกรรมมันใช้บ่อยไหม? ถ้าเป็นเช่นนั้นอะไรคือสาเหตุหลักและการออกแบบยอดนิยมอื่น ๆ
16 mvc 

4
หนึ่งคอนโทรลเลอร์ต่อหน้าหรือหลายหน้าในคอนโทรลเลอร์เดียว?
ฉันแค่ต้องการคำแนะนำเกี่ยวกับวิธีการทำสิ่งต่าง ๆ ของ MVC ฉันใช้ codeigniter และสงสัยว่าจะดีกว่าถ้ามีคอนโทรลเลอร์หนึ่งตัวต่อหน้าสำหรับเว็บไซต์หรือมีคอนโทรลเลอร์หนึ่งอันสำหรับทุกหน้า? สมมติว่าฉันมีเว็บไซต์ง่าย ๆ ที่คุณสามารถเยี่ยมชมโฮมเพจล็อกอินสร้างบัญชีและติดต่อผู้ดูแลระบบ มันจะดีกว่าไหมถ้ามีตัวควบคุมเหล่านี้: ส่วนหน้า (ดัชนี), เข้าสู่ระบบ, บัญชี, ติดต่อหรือมีหนึ่งตัวควบคุมที่เรียกว่าส่วนหน้าหรืออะไรก็ตามที่มีการกระทำเช่นล็อกอิน, createAccount, ผู้ติดต่อ? คุณจะรู้ได้อย่างไรว่าควรใช้คอนโทรลเลอร์ตัวเดียวในสถานการณ์ที่ดีกว่า?
16 mvc 

4
การทดสอบ: กำหนดหรือไม่กำหนด?
มันจะดีกว่าถ้ามี ชุดทดสอบที่กำหนดได้ซึ่งส่งผลให้การทดสอบเดียวกันสำเร็จ ชุดทดสอบที่ไม่สามารถกำหนดค่าได้ซึ่งอาจครอบคลุมหลายกรณี ? ตัวอย่าง: คุณเขียนชุดทดสอบเพื่อทดสอบการทำงานของคอนโทรลเลอร์ในแอปพลิเคชัน MVC คอนโทรลเลอร์ต้องการข้อมูลแอปพลิเคชันจากฐานข้อมูลเป็นอินพุตในระหว่างการทดสอบ มีสองตัวเลือกในการทำสิ่งนี้: คุณ hardcode แถวใดจากฐานข้อมูลการทดสอบที่ถูกเลือกเป็นอินพุต (เช่นแถวที่ 10 และแถวที่ 412) คุณใช้ตัวสร้างตัวเลขสุ่มเพื่อสุ่มเลือกข้อมูลจากฐานข้อมูล (สองแถวที่เลือกโดยตัวสร้างตัวเลขสุ่ม) สิ่งแรกคือแบบกำหนดค่าได้: การทดสอบทุกครั้งสำหรับการแก้ไขรหัสเดียวกันควรให้ผลลัพธ์เดียวกัน ข้อที่สองไม่สามารถกำหนดค่าได้: ชุดทดสอบทุกชุดมีความเป็นไปได้ที่จะให้ผลลัพธ์ที่ต่างกัน ข้อมูลที่สุ่มเลือกอาจเป็นตัวแทนของขอบกรณีข้อมูลได้ดีกว่า มันอาจจำลองผู้ใช้ที่ป้อนข้อมูลคอนโทรลเลอร์ของเราด้วยข้อมูลที่คาดเดาไม่ได้ดีกว่า? อะไรคือเหตุผลในการเลือกสิ่งหนึ่งเหนือสิ่งอื่นใด?
16 testing  mvc 

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