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

ในการคำนวณอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI บางครั้งเด่นชัด) เป็นประเภทของส่วนติดต่อผู้ใช้ที่ช่วยให้ผู้ใช้โต้ตอบกับอุปกรณ์อิเล็กทรอนิกส์ที่มีรูปภาพมากกว่าคำสั่งข้อความ GUI สามารถใช้กับคอมพิวเตอร์อุปกรณ์พกพาเช่นเครื่องเล่น MP3 เครื่องเล่นสื่อแบบพกพาหรืออุปกรณ์เล่นเกมเครื่องใช้ในครัวเรือนและอุปกรณ์สำนักงาน

9
เหตุใดจึงยากที่จะทำให้โปรแกรม Java 'ปรากฏเป็นภาษาพื้นเมือง'
แอปพลิเคชัน Java ส่วนใหญ่จะไม่เหมือนกับแอปพลิเคชัน C / C ++ Swing อาจได้รับการออกแบบโดยมีจุดประสงค์เพื่อให้ได้รูปลักษณ์ที่แตกต่าง แต่จากสิ่งที่ฉันได้อ่าน SWT นั้นพยายามที่จะ 'look native' และไม่ประสบความสำเร็จ คำถามของฉันคือ: ทำไมมันจึงเป็นเรื่องยากสำหรับนักพัฒนาของภาษา Java ในการออกแบบระบบ GUI ที่สำเนาว่ารูปลักษณ์ของ GUIs พื้นเมือง? GUIs ดั้งเดิมต่างกันอย่างไร มันไม่ใช่แค่เรื่องของการออกแบบปุ่มที่ดูเหมือนปุ่ม 'ดั้งเดิม' ใช่ไหม หรือลึกไปกว่านั้น?
98 java  gui 

10
วิธีที่ดีที่สุดที่จะหลีกเลี่ยงการเขียนรหัส GUI ป่อง?
ฉันพบว่าเมื่อใดก็ตามที่ฉันทำงานกับรหัส GUI โค้ดจะมีแนวโน้มที่จะขยายตัวเร็วขึ้นจากนั้นก็เป็นรหัสประเภทอื่น มันก็ดูเหมือนยากที่จะ refactor ในขณะที่รหัสอื่น ๆ ที่ฉันสามารถสร้างใหม่ได้อย่างง่ายดาย - ฉันพบว่าฉันสามารถแยกคลาสที่ใหญ่กว่าออกเป็นส่วนเล็ก ๆ ของฟังก์ชั่น - กับกรอบงาน GUI ส่วนใหญ่ฉันมักจะผูกพันกับเฟรมเวิร์กที่ต้องใช้เครื่องมือ ใช้สิ่งอื่น ๆ อีกมากมายได้โดยตรงในวิดเจ็ต / การควบคุม / อะไรก็ตาม บางครั้งนี่อาจเป็นเพราะต้อง (ก) สืบทอดบางส่วนของวิดเจ็ต / การควบคุม / บางสิ่งบางอย่างหรือ (b) ต้องเข้าถึงวิธีการป้องกัน ยกตัวอย่างเช่นฉันต้องตอบสนองต่ออินพุตที่หลากหลายผ่านสัญญาณ / เหตุการณ์ / อะไรก็ตามจากเฟรมเวิร์กเพื่อใช้โหมดทั้งหมดของการโต้ตอบกับผู้ใช้ ฉันอาจต้องการเครื่องมือ GUI / การควบคุมเดียวเพื่อจัดการอินพุต / เอาต์พุตหลากหลายที่อาจรวมถึง: คลิกขวา / เมนูบริบท ตอบสนองต่อการเลือกจากเมนูบริบท - ซึ่งอาจเป็นจำนวนมาก วิธีพิเศษในการวาด …
48 refactoring  gui 

6
วิธีที่ถูกต้องในการทำงานกับนักออกแบบกราฟิกคืออะไร [ปิด]
เมื่อเร็ว ๆ นี้เราได้ทำงานร่วมกับนักออกแบบกราฟิก (จัดโดยลูกค้า) เพื่อจัดหาสกินสำหรับแอปพลิเคชัน Django + Bootstrap ที่เราสร้างขึ้น ผู้ออกแบบได้จัดเตรียมรูปภาพสแตติกของเลย์เอาต์ใหม่พร้อมกับเอกสารที่อธิบายถึงคุณลักษณะทางเทคนิคบางอย่าง (ขนาดตัวอักษรสีมิติต่างๆเป็นต้น) มันกลับกลายเป็นเสียเวลาอย่างไม่น่าเชื่อที่จะใช้สิ่งนี้ แม้ว่าไซต์ทั้งหมดจะเป็นหน้าแรกหน้าดัชนีและหน้ารายละเอียดครึ่งโหล แต่ฉันใช้เวลาอย่างน้อย 5 วันในการปรับใช้ CSS และ HTML การเปลี่ยนแปลง ดังนั้นฉันจะออกไปบนกิ่งไม้และเรียกสิ่งนี้ผิดวิธี วิธีการพื้นฐานของฉันคือ: เปรียบเทียบภาพนิ่งและการเรนเดอร์ปัจจุบันและสังเกตเห็นความแตกต่าง คาดเดาสิ่งที่การเปลี่ยนแปลงจะต้องมีใน CSS / HTML ทำการเปลี่ยนแปลงนั้น ไปที่ขั้นตอนที่ 1 ปัญหาเฉพาะบางอย่างคือฉันไม่เข้าใจว่าการออกแบบรวมการเปลี่ยนแปลงจาก 8 คอลัมน์เป็น 12 รูปภาพบางรูปที่ให้ในรูปแบบที่ไม่ถูกต้อง (.png's สามารถแสดงผลแตกต่างกันในเบราว์เซอร์ / แพลตฟอร์มที่แตกต่างกัน) CSS มวยปล้ำตามปกติเพื่อให้ได้การเรนเดอร์พิกเซลที่สมบูรณ์แบบเป็นต้นและบางครั้งฉันก็ต้องจัดเทมเพลต HTML ใหม่เพื่อให้ได้พฤติกรรมที่แน่นอน วิธีที่ถูกต้องคืออะไร?

6
จะหลีกเลี่ยง UITableViewController ขนาดใหญ่และเงอะงะบน iOS ได้อย่างไร
ฉันมีปัญหาเมื่อใช้รูปแบบ MVC บน iOS ฉันค้นหาทางอินเทอร์เน็ต แต่ดูเหมือนจะไม่พบทางออกที่ดีสำหรับปัญหานี้ UITableViewControllerการใช้งานหลายอย่างดูเหมือนจะค่อนข้างใหญ่ ตัวอย่างส่วนใหญ่ที่ฉันได้เห็นช่วยให้UITableViewControllerการดำเนินการและ<UITableViewDelegate> <UITableViewDataSource>การติดตั้งใช้งานเหล่านี้เป็นเหตุผลสำคัญว่าทำไมจึงUITableViewControllerเริ่มมีขนาดใหญ่ ทางออกหนึ่งที่จะสร้างการเรียนที่แยกต่างหากที่ดำเนินการและ<UITableViewDelegate> ของหลักสูตรการเรียนเหล่านี้จะต้องมีการอ้างอิงถึง<UITableViewDataSource> UITableViewControllerมีข้อเสียใด ๆ ในการใช้โซลูชันนี้หรือไม่? โดยทั่วไปฉันคิดว่าคุณควรมอบสิทธิ์การใช้งานให้กับชั้นเรียนอื่น ๆ "ผู้ช่วย" หรืออื่น ๆ ที่คล้ายกันโดยใช้รูปแบบตัวแทน มีวิธีใดในการแก้ปัญหานี้เป็นที่ยอมรับหรือไม่? ฉันไม่ต้องการให้แบบจำลองมีฟังก์ชั่นมากเกินไปหรือมุมมอง ฉันเชื่อว่าตรรกะควรอยู่ในคลาสตัวควบคุมเนื่องจากนี่เป็นหนึ่งในเสาหลักของรูปแบบ MVC แต่คำถามใหญ่คือ: คุณควรแบ่งตัวควบคุมของการใช้ MVC เป็นชิ้นส่วนที่จัดการได้อย่างไร (ใช้กับ MVC ใน iOS ในกรณีนี้) อาจมีรูปแบบทั่วไปสำหรับการแก้ปัญหานี้แม้ว่าฉันกำลังมองหาโซลูชันสำหรับ iOS โดยเฉพาะ โปรดยกตัวอย่างรูปแบบที่ดีสำหรับการแก้ไขปัญหานี้ โปรดระบุเหตุผลที่โซลูชันของคุณยอดเยี่ยม

12
โปรแกรมเมอร์ GUI มีข้อได้เปรียบเหนือผู้อื่นหรือไม่?
มันง่ายสำหรับผู้จัดการและลูกค้าที่จะชื่นชมสิ่งที่พวกเขาเห็น ฉันได้เห็นนักพัฒนา GUI หลายคนที่เป็นโปรแกรมเมอร์โดยเฉลี่ยมีความรู้น้อยที่สุดเกี่ยวกับหลักการออกแบบหรือสำนวนการเขียนโปรแกรมอื่น ๆ อย่างไรก็ตามข้อบกพร่องเหล่านี้มักจะไม่มีใครสังเกตเห็นโดยเฉพาะอย่างยิ่งจากการจัดการและลูกค้าหากโปรแกรมเมอร์สามารถสร้างส่วนต่อประสานผู้ใช้ที่ดูน่าประทับใจ มากเสียจนนักพัฒนา GUI หลายคนรู้ว่าใช้เวลาหลายชั่วโมงในการตกแต่ง GUI ด้วยค่าใช้จ่ายในการเขียนโค้ดที่ไม่ดี ในทางกลับกันโปรแกรมเมอร์ระดับกลางที่พัฒนา API หรือฟังก์ชันการทำงานทางธุรกิจหรือรหัสฐานข้อมูล (SQLs ฯลฯ ) เสียเปรียบเพราะไม่มีอะไรที่จับต้องได้ในการแสดง บางทีผู้ตรวจสอบโค้ดหรือสถาปนิกอาจชื่นชมความสง่างามการออกแบบที่ดีความสามารถในการปรับขยายเป็นต้นของโค้ด แต่มันไม่มีความหมายต่อโลกภายนอก รหัสของคุณอาจทำงานเป็นเวลาหลายปีโดยที่ไม่แตกหักง่ายและบำรุงรักษาง่ายและมีประสิทธิภาพดี แต่ก็ไม่เคยทำให้เกิด 'ว้าว' ที่ GUI มองลื่น ๆ ในความคิดของฉันข้อพิสูจน์เกี่ยวกับเรื่องนี้คือ (และฉันจะได้รับการลงคะแนนอย่างหนักสำหรับเรื่องนี้ฉันรู้) ว่ามีแรงจูงใจน้อยลงสำหรับโปรแกรมเมอร์ GUI ที่จะเขียนโค้ดสะอาดดี แก้ไข : ฉันต้องอธิบายที่นี่ว่าโดยโปรแกรมเมอร์ GUI ฉันไม่ได้หมายถึงนักออกแบบเว็บ / GUI เต็มรูปแบบ แต่เป็นโปรแกรมเมอร์ส่วนหน้าเช่นโปรแกรมเมอร์ Java-swing ชุมชนที่เหลือเห็นด้วยไหม?
23 gui 

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 

1
เหตุใดจึงต้องใช้คลาสเมื่อตั้งโปรแกรม tkinter gui ใน python
ฉันเขียนโปรแกรมใน python เป็นหลักและตั้งโปรแกรม GUI สองตัวด้วย Tkinter การสอนทุกครั้งที่ฉันเคยเห็นได้แนะนำให้กำหนดและใช้คลาสสำหรับ GUI แต่ GUI ของฉันทำงานได้อย่างไร้ที่ติโดยใช้เพียงโพรซีเดอร์เท่านั้น ทำไมต้องใช้คลาส ดูเหมือนว่าจากมุมมองของฉันเพียงแค่เพิ่มเลเยอร์ความซับซ้อนและโค้ดที่ไม่จำเป็นออกไป
19 python  gui  class 

2
มีกลยุทธ์บางอย่างที่เป็นระบบสำหรับการออกแบบและการใช้ GUI หรือไม่?
ฉันใช้ Visual Studio เพื่อสร้างแอปพลิเคชัน GUI ใน C # กล่องเครื่องมือทำหน้าที่เป็นพาเล็ตส่วนประกอบที่ดีที่ทำให้ฉันสามารถลากและวางปุ่มและองค์ประกอบอื่น ๆ (เพื่อความชัดเจนฉันจะพูดว่าปุ่มเมื่อใดก็ตามที่ฉันหมายถึง "การควบคุม") บนแบบฟอร์มของฉันซึ่งทำให้รูปแบบคงที่ค่อนข้างง่าย อย่างไรก็ตามฉันพบปัญหาสองประการ: การสร้างปุ่มในตอนแรกนั้นเป็นการทำงานมากมาย เมื่อฉันมีรูปแบบที่ไม่คงที่ (เช่นปุ่มหรือตัวควบคุมอื่น ๆ จะถูกสร้างขึ้นในเวลาทำงานตามสิ่งที่ผู้ใช้ทำ) ฉันไม่สามารถใช้จานสีได้เลย แต่ฉันต้องสร้างแต่ละปุ่มด้วยตนเองโดยการเรียกตัวสร้างในวิธีการใด ๆ ที่ฉันใช้แล้วเริ่มต้นด้วยตนเองโดยการระบุความสูงของปุ่มความกว้างตำแหน่งป้ายชื่อตัวจัดการเหตุการณ์และอื่น ๆ นี่เป็นเรื่องน่าเบื่ออย่างยิ่งเพราะฉันต้องเดาพารามิเตอร์เครื่องสำอางเหล่านี้โดยไม่สามารถดูว่าแบบฟอร์มจะเป็นอย่างไรและมันยังสร้างรหัสซ้ำ ๆ กันหลายบรรทัดสำหรับแต่ละปุ่ม การทำให้ปุ่มทำบางสิ่งก็เป็นเรื่องที่ต้องทำเยอะ การรับมือกับเหตุการณ์ในแอปพลิเคชั่นเต็มรูปแบบเป็นความเจ็บปวดอย่างมาก วิธีเดียวที่ฉันรู้วิธีการทำเช่นนี้คือการเลือกปุ่มไปที่แท็บกิจกรรมในคุณสมบัติคลิกOnClickเหตุการณ์เพื่อสร้างเหตุการณ์ในFormรหัสของจากนั้นกรอกเนื้อหาของเหตุการณ์ เนื่องจากฉันต้องการแยกลอจิกและการนำเสนอตัวจัดการเหตุการณ์ของฉันทั้งหมดจึงกลายเป็นการเรียกใช้บรรทัดเดียวไปยังฟังก์ชันตรรกะทางธุรกิจที่เหมาะสม แต่การใช้ปุ่มนี้สำหรับปุ่มจำนวนมาก (เช่นลองนึกภาพจำนวนปุ่มที่มีอยู่ในแอปพลิเคชั่นเช่น MS Word) ทำให้รหัสของฉันสกปรกFormด้วยวิธีการจัดการเหตุการณ์สำเร็จรูปจำนวนมากและยากที่จะรักษาสิ่งนี้ เนื่องจากสิ่งเหล่านี้โปรแกรม GUI ใด ๆ ที่ซับซ้อนกว่า Hello World จึงทำไม่ได้จริง ๆ สำหรับฉัน เพื่อความชัดเจนฉันไม่มีปัญหาใด ๆ ที่เกี่ยวข้องกับความซับซ้อนในโปรแกรมที่ฉันเขียนซึ่งมี UI …
18 c#  gui  visual-studio 

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

7
มันยังคงคุ้มค่าที่จะเรียนรู้การพัฒนา GUI gui? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ในช่วงสองสามปีที่ผ่านมาโครงการที่สำคัญทั้งหมดที่ฉันทำงานอยู่นั้นใช้เว็บเป็นหลักหรือมีส่วนต่อประสานกับผู้ใช้ที่ไม่ใช่กราฟิก (บริการสคริปต์บรรทัดคำสั่ง ฯลฯ ... ) ฉันสามารถรวมแอพ WinForms หรือทำ WPF แบบเรียบง่ายเมื่อจำเป็น แต่ฉันไม่เคยเจาะลึกเรื่อง API ระดับล่างอย่าง MFC หรือ QT ฉันเข้าใจว่าสิ่งนี้ขึ้นอยู่กับสถานการณ์ แต่โดยทั่วไปแล้วมันยังคงคุ้มค่าที่จะสละเวลาในการเรียนรู้การพัฒนาเดสก์ท็อปด้วยหรือเป็นแอปพลิเคชันที่ย้ายไปยังเว็บและอุปกรณ์พกพา นอกจากนี้คุณคาดหวังว่านักพัฒนาซอฟต์แวร์ที่คุณทำงานด้วยจะมีความเชี่ยวชาญใน gui บนเดสก์ท็อปหรือไม่

8
อะไรคือความแตกต่างที่สำคัญเมื่อย้ายจากคอนโซลไปเป็นโปรแกรมอิง GUI
ฉันเริ่มเหมือนคนอื่น ๆ ด้วยการเขียนโปรแกรมแบบคอนโซล (เช่นเดียวกับใน terminal ไม่ใช่ Playstation) แต่ไม่ช้าก็เร็วจำเป็นต้องสัมผัสกับการเขียนโปรแกรมบน GUI ไม่ว่าคุณต้องการหรือไม่ การเปลี่ยนแปลงนี้มีการเปลี่ยนแปลงมากมายในวิธีที่คุณต้องคิดเกี่ยวกับส่วนหน้า (และอาจเป็นแบ็กเอนด์) ดังนั้นความแตกต่างที่สำคัญเมื่อย้ายจากการเขียนโปรแกรมบนคอนโซลไปยังการเขียนโปรแกรมบน GUI คืออะไร
18 gui 

9
เวิร์กโฟลว์ของโปรแกรมเมอร์ที่ใช้ CLI แตกต่างจาก GUI-oriented อย่างไร
ฉันได้ยินมามากมายเกี่ยวกับข้อดีของการทำงานเขียนโปรแกรมน้อยลงในแอพ GUI และใช้เครื่องมือบรรทัดคำสั่งเพิ่มเติม (โดยเฉพาะอย่างยิ่งเกี่ยวกับการทำให้สิ่งต่าง ๆ มีประสิทธิภาพมากขึ้น) อย่างไรก็ตามเนื่องจากฉันไม่เข้าใจว่าเวิร์กโฟลว์ของฉันจะแตกต่างกันอย่างไรหากฉันพึ่งพาเครื่องมือบรรทัดคำสั่งมากขึ้นฉันไม่สามารถประเมินได้อย่างง่ายดายว่ามีการจ่ายผลตอบแทนเพียงพอสำหรับฉันเป็นการส่วนตัวเพื่อลงทุนเวลาและความพยายามในการเรียนรู้ชุดเครื่องมือใหม่ เวิร์กโฟลว์ของฉัน ตอนนี้ ฉันเขียนโค้ดโปรเจ็กต์ด้านข้างในภาษาเช่น C / C ++ / D / C # / Java / Python โดยใช้ Visual Studio, Eclipse และอื่น ๆ และรันโดยการตั้งค่าการตั้งค่าการสร้างและกด F5 เพื่อสร้าง / เรียกใช้ ฉันกำลังพัฒนาโปรแกรมเว็บในที่ทำงานเพื่อให้เกี่ยวข้องกับการใช้ Django เพื่อตั้งค่าเซิร์ฟเวอร์เชื่อมต่อกับฐานข้อมูลและอื่น ๆ ... เกือบทั้งหมดภายในตัวแก้ไขข้อความ SciTE สำหรับการเปิดตัวโปรแกรมปกติฉันใช้ Launchy ... ยังไม่มีเทอร์มินัล :) สำหรับการคัดลอกไฟล์และอะไรก็ตามฉันใช้การค้นหา / ย้ายปกติในตัวจัดการไฟล์กราฟิก (Windows …
17 gui  cli 

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

5
วิธีจัดโครงสร้างหน่วยทดสอบสำหรับแอป GUI โดยใช้ C # และ NUnit
ฉันถูกขอให้ทำโครงการขนาดเล็กเพื่อจัดหาแอพพลิเคชั่นที่เรียบง่ายให้กับลูกค้าของเรา โดยปกติแล้วฉันจะทำงานกับรหัสแบ็คเอนด์ที่ฉันต้องทำการทดสอบทั้งหมดและฉันยังไม่ได้มีความสุขที่น่าสงสัยในการเขียนการทดสอบสำหรับ GUI ดังนั้นจึงไม่ค่อยชัดเจนสำหรับฉันที่จะตั้งค่า รหัสการทดสอบและเครื่องมือสำหรับ EXE สัญชาตญาณแรกของฉันคือการรวมการทดสอบด้วยรหัสแอปพลิเคชัน แต่ต้องมีการจัดหาการอ้างอิงเฉพาะสำหรับการทดสอบจำนวนมากซึ่งฉันได้รับคำสั่งให้ไม่ส่งมอบให้กับลูกค้าโดยเฉพาะ ฉันยังไม่สามารถบีบเงินสดเพื่อใช้เป็นเครื่องมือทดสอบที่สร้างขึ้นมาได้ดังนั้นฉันต้องใช้เครื่องมือที่มีอยู่ในมือ ( StoryQ , RhinoMocksและNUnit) ซึ่งควรเกินพอที่จะทดสอบพฤติกรรมของแอพ GUI อย่างง่าย ดังนั้นเท่าที่ฉันเห็นนี่ทำให้ฉันพยายามสร้างสมดุลที่ดีระหว่างการออกแบบให้เรียบง่ายหรือใช้วิศวกรรมมากเกินไปเพื่อการทดสอบ ดูเหมือนว่าฉันกำลังสร้างแอปด้วยตรรกะทางธุรกิจในห้องสมุดแยกต่างหากและทดสอบกับห้องสมุดอย่างที่ฉันมักจะทำหรือค้นหากลไกอื่น ๆ เพื่อให้ฉันสามารถดำเนินการได้โดยไม่แยกโมดูลเพิ่มเติมที่การออกแบบแอปพลิเคชันไม่ ต้องการจริงๆ แก้ไข: โปรดทราบว่าคำถามนี้เกี่ยวกับวิธีการจัดโครงสร้างความสัมพันธ์ระหว่าง NUnit และปฏิบัติการของฉัน - ซึ่งต่างกับ DLL - และไม่เกี่ยวกับวิธีแยกงานนำเสนอและตรรกะทางธุรกิจ / แก้ไข ดังนั้นคำถามของฉันคือ: มีวิธีเฉพาะ / แนะนำสำหรับการกำหนดค่าแอปพลิเคชัน GUI อย่างง่ายพร้อมการทดสอบหน่วยเพื่อให้ฉันตรวจสอบสถานะและพฤติกรรมอย่างเพียงพอโดยใช้เครื่องมือที่ฉันมีอยู่ในมือและไม่ต้องใช้วิธีการทางวิศวกรรมมากเกินไป? ฉันพลาดพื้นฐานบางอย่างเกี่ยวกับวิธีที่ NUnit ควรเรียกใช้ / กำหนดค่าเมื่อทำการทดสอบ EXE (ตรงข้ามกับ DLL) คุณสามารถให้หรือชี้ให้ฉันในทิศทางของตัวอย่างของการบรรลุทั้งหมดนี้ได้อย่างไร ฉันรู้ว่าอาจมีหลายวิธีในการทำเช่นนี้ฉันจึงมองหาแนวทางการใช้งานเฉพาะตามประสบการณ์ของคุณ
16 c#  testing  gui  nunit 

5
บางคนสามารถอธิบายวิธีการทำงานของ GUI และเมื่อใดที่ฉันควรเริ่มใช้งาน [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันได้เรียนรู้ภาษา C ++ มาประมาณหนึ่งเดือนแล้วและก่อนที่ฉันจะไปไกลกว่านี้ฉันอยากจะตอบคำถามที่น่าเบื่อนี้ที่ฉันมีต่อไป ฉันรู้ว่า GUI คืออะไร แต่ฉันไม่รู้ว่ามันใช้งานได้จริงและอาจเป็นตัวอย่างของคนดัง แม้ว่าฉันจะรู้ว่าการเขียนโปรแกรมบรรทัดคำสั่งเป็นพื้นฐานที่เปลือยเปล่า แต่ฉันคิดว่ามันคงจะสนุกเมื่อใช้ GUI แม้ว่าฉันจะมีคำถามอื่นอีกประมาณ 3 ล้านคำถาม แต่ฉันก็จะบันทึกไว้: D
16 c++  gui 

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