ทำไมโปรแกรมเมอร์บางคนถึงเกลียดการเป็นส่วนหนึ่งของการพัฒนา UI? [ปิด]


54

โปรแกรมเมอร์จำนวนมากที่ฉันพบเจอมักจะพูดว่า "เขาไม่ใช่คน UI" ความจริงก็คือการพัฒนาในปัจจุบันไม่ว่าจะเป็นเว็บ, Windows, Linux, OSX หรือการพัฒนารูปแบบอื่น ๆ ในปัจจุบันประกอบด้วยซอฟต์แวร์ที่มี UI ที่ดูดี ทำไมนักพัฒนาหลายคนถึงไม่รู้สึกว่า UI ทำงาน?


54
เพราะพวกเขาไม่ใช่นักออกแบบ :)
Mahmoud Hossam

17
การพัฒนาไม่ได้ประกอบด้วย UI ที่ดูดี แต่ก็ประกอบด้วยการมีผลิตภัณฑ์ที่ขายได้ ทุกคนสามารถทำสิ่งที่ดูดีไม่กี่คนที่สามารถทำให้มันทำงานได้
Josh K

58
@JoshK - ประเด็นหลักของคุณคือจุดบน แต่ฉันไม่เห็นด้วยที่ "ทุกคนสามารถทำสิ่งที่ดูดี" นักพัฒนาซอฟต์แวร์ของเรารู้สึกหงุดหงิดกับคนที่ดูถูกอาชีพของเรา ("มันแค่พิมพ์ไปได้ยากแค่ไหน?") ดังนั้นอย่าทำแบบเดียวกันกับสาขาวิชาอื่น ๆ
Steve S

20
อย่าลืมว่าการดูดีไม่ใช่สิ่งสำคัญที่สุดสำหรับ UI มี UIs ที่ดูดีจำนวนมากที่ใช้งุ่มง่ามจริงๆ ฉันไม่ต้องการให้นักออกแบบกราฟิกออกแบบ UI เว้นแต่ผู้ออกแบบจะมีพื้นหลังเป็นปัจจัยมนุษย์
David Thornley

17
@Josh K: ต้องอ่าน "การออกแบบสิ่งต่าง ๆ ในชีวิตประจำวัน" ฉันคิดว่ามันเป็นอีกด้านหนึ่ง การทำบางสิ่งบางอย่างเป็นส่วนที่ง่าย การทำให้มันใช้งานได้ดีผู้ใช้จะเข้าใจได้โดยสัญชาตญาณชอบและต้องการใช้อีกครั้งยากกว่ามาก
nikie

คำตอบ:


102

ฉันไม่ใช่คน UI เช่นกัน ฉันทำ UI ในโครงการของตัวเอง แต่ที่ทำงานฉันไม่มีอะไรเกี่ยวข้องกับมัน - งานของฉันอยู่ในความกล้าหาญของแอพไม่ใช่ในส่วนหน้า

นอกเหนือจากนั้นฉันคิดว่ามันน่าเบื่อมากกว่าความเกลียดชัง การออกแบบ UI นั้นเป็นส่วนที่ยากและท้าทาย การดำเนินการส่วนใหญ่เป็นงานที่ไม่ดี มีความท้าทายหรือนวัตกรรมน้อยมากในการที่จะนำส่วนต่อประสานผู้ใช้ไปใช้และมีเพียงหลายครั้งเท่านั้นที่สามารถวางช่องทำเครื่องหมายบนหน้าจอก่อนที่จะทำใจเล็กน้อย และนั่นก็ไม่ได้กระทบกับการใช้จ่ายชั่วโมงในการจัดพิกเซล


63
+1 สำหรับ "การจัดแนวพิกเซล 'ดังนั้น'" ฉันเกลียดสิ่งนั้น มันสมบูรณ์แบบ 99.99999% แต่ผู้ใช้ต้องการเส้นขอบรอบ ๆ กล่องซึ่งไม่ควรอยู่ในตำแหน่งแรกควรมีความกว้าง 2 พิกเซลไม่ใช่ 1 และเป็นสีฟ้าที่ "เบากว่า" แต่ไม่ใช่แสงที่คุณ มีการแก้ไข 2 ครั้งที่แล้วมืดกว่านั้น และอื่น ๆ ... ซึ่งเป็นสิ่งที่ฉันจะผ่านในขณะนี้ แอปใช้งานได้ 100% แต่ฉันได้รับคำขอที่น่าเบื่อหน่ายในการเปลี่ยนปลอกของคำแนะนำเครื่องมือนี้และลบช่วงเวลา ... นี่คือสิ่งที่ "ผู้ทดสอบ" ของฉันจดจ่ออยู่ที่ ... ไม่ใช่การทำงานทั้งหมด
CaffGeek

3
@ Robert Harvey มันเป็นการต่อสู้ทุกวัน ฉันหวังว่าเราจะมีคน UI ที่อุทิศตนหนึ่งหรือสองคนที่นี่ ... มันจะช่วยในการแก้ปัญหาของเราที่ไม่สามารถกำหนดมาตรฐาน UI ของเราผ่านแอพหลัก ๆ
CaffGeek

23
+1 สำหรับการสังเกตว่าการออกแบบ GUI น่าสนใจมากกว่าการสร้าง
jprete

5
การดำเนินการไม่ควรทำเสียงฮึดฮัด ถ้าเป็นเช่นนั้นคุณอาจมีสถาปัตยกรรมแบบแยกตัวไม่ดีหรือกระบวนการที่ไม่มีประสิทธิภาพ เราโปรแกรมเมอร์ถ้าเรากำลังทำสิ่งที่เครื่องสามารถทำเราควรจะทำงานอัตโนมัติมัน
munificent

10
@munificent ฉันคิดว่าระบบอัตโนมัติเป็นเป้าหมายที่ยอดเยี่ยม แต่ฉันยังไม่เห็นรูปแบบ UI อัตโนมัติที่ไม่จำเป็นต้องปรับเปลี่ยนเพื่อปรับให้เข้ากับวิสัยทัศน์ของนักออกแบบหรือความต้องการของลูกค้า และมีข้อ จำกัด ทางเทคนิคเพียงธรรมดา - ตัวอย่างเช่นหากคุณใช้ WinForms ตัวเลือกเลย์เอาต์อัตโนมัติของคุณจะถูก จำกัด เว็บแอพมีความเป็นไปได้ที่ดีกว่าแอพเดสก์ท็อปฉันคิดว่า แต่ถ้าเราไม่สามารถสร้างเลย์เอาท์ UI และเชื่อมโยงมันเข้าด้วยกันฉันคิดว่าจะยังมีงานน่าเบื่อหน่ายจำนวนมากพอสมควร ฉันหวังว่าจะได้รับการพิสูจน์ผิดในจุดนี้ในอนาคต :)
Adam Lear

55

การสร้าง UI ที่ดีนั้นเกี่ยวข้องกับทักษะที่แตกต่างกว่าการเขียนโค้ดแบ็กเอนด์

โดยทั่วไปสามารถระบุความต้องการแบ็คเอนด์ได้เช่นกล่องดำ x เข้าและคาดว่า y น่าจะออกมา การทำให้มันใช้งานได้เกี่ยวข้องกับการนำตรรกะไปใช้และคุณสามารถทดสอบแบบเป็นโปรแกรมว่าทำงานได้หรือไม่

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

ฉันคิดว่าโปรแกรมเมอร์จำนวนมากที่ไม่มีประสบการณ์ UI มากหรือยังไม่ได้ทำการวิจัยมากนักไม่รู้ว่ามีกฎและวิทยาศาสตร์อยู่เบื้องหลังทั้งการออกแบบ UI ที่ดีจากทั้งมุมมองการใช้งานและการออกแบบ (เช่นสี ทฤษฎี).

แน่นอนโปรแกรมเมอร์บางคนไม่มีปัญหากับเรื่องนี้ แต่เกลียดเพราะ UIs หลายคนน่าเบื่อที่จะเขียนโค้ด พวกเขาอาจประกอบด้วยงานซ้ำ ๆ มากมายเช่นหน้าของแบบฟอร์มสำหรับหน้าผู้ดูแลระบบที่พวกเขาเพียงแค่ต้องใช้งานได้และไม่มีความท้าทายในการออกแบบ


3
การเขียนโค้ดแบ็กเอนด์นั้นเกี่ยวข้องกับทักษะที่แตกต่างกันเช่นกัน (ซึ่งแตกต่างจากความคิดเห็นแรกของคุณที่บอกเป็นนัย) มันเป็นทักษะที่แตกต่าง
Matthieu M.

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

+1: นี่ยากและวิธีการปกติสำหรับการออกแบบซอฟต์แวร์ก็ใช้ไม่ได้กับกราฟิก ถ้ามันน่าเกลียดมันก็น่าเกลียด

18

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

โดยส่วนตัวแล้วฉันตกอยู่ในค่ายหลัง - ฉันค่อนข้างจะออกแบบ UI มากกว่าอัลกอริทึมที่ซับซ้อน มันเป็นสิ่งที่ฉันสนใจ


15

ไม่ว่าการออกแบบ UI ที่กำหนดจะดีหรือไม่ดีนั้นเป็นเรื่องที่ค่อนข้างเป็นส่วนตัวซึ่งฉันคิดว่าโปรแกรมเมอร์โดยทั่วไปจะไม่สนใจ ไม่กี่ทศวรรษของความพยายามในการหาปริมาณและมีคุณสมบัติเทคนิค UI ที่ดีได้ช่วยในการสร้างกฎกว้าง ๆ ที่สามารถนำไปใช้ได้ แต่บ่อยครั้งมากกว่าที่จะไม่พิจารณาว่าจริงๆแล้ว UI นั้นดีต้องมีการทดสอบ A / B จำนวนมากหรือไม่ เทคนิค

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


2
จุดที่ "ส่วนตัว" เป็นที่น่ารำคาญ พาคนสองคนไปที่นั่นและพวกเขามีความคิดเห็นที่แตกต่างกันอย่างกว้างขวางว่า UI ที่ดีคืออะไร คุณไม่สามารถทดสอบรูปแบบ GUI (ไม่ได้) ฯลฯ ...
Matthieu M.

13

ส่วนตัวแล้วฉันไม่ชอบการพัฒนา UI เพราะฉันไม่ค่อยเก่ง มีองค์ประกอบของจิตวิทยาผู้ใช้จำนวนมากที่ฉันไม่เข้าใจ ฉันคิดว่าปัญหาที่ใหญ่ที่สุดของฉันคือฉันไม่สามารถใส่ตัวเองในรองเท้าของผู้ใช้ ฉันไม่ทราบวิธีการสร้างเลย์เอาต์ที่ใช้งานง่ายเป็นส่วนใหญ่เพราะฉันไม่ทราบว่าผู้ใช้เข้าใจได้ง่ายอะไรและฉันไม่รู้ว่าจะทำให้สิ่งต่าง ๆ ดูดีได้อย่างไร

ฉันไม่คิดว่าโปรแกรมเมอร์บางคนเกลียดการออกแบบ UI เท่าที่พวกเขาเกลียดการทำสิ่งที่พวกเขาไม่เก่ง มันเพิ่งเกิดขึ้นที่มีนักพัฒนาจำนวนมากที่ไม่เก่งในการพัฒนา UI


+1 - "โปรแกรมเมอร์เกลียดการทำสิ่งที่ไม่ดีเลย" จริงอยู่ เมื่อคุณทำมันในโครงการส่วนบุคคลมันเป็นการฝึกฝนและสามารถสนุกสนาน แต่เมื่อคุณทำเพื่องานของคุณ - มันเป็นการแสดงและถ้าคุณไม่มีทักษะมันก็แค่เครียด
lunchmeat317

11

ปัญหาของการออกแบบ UI คือทุกคนมีความคิดเห็น ... และไม่มีคำตอบที่ถูกหรือผิด นักพัฒนาในทางกลับกันรักขาวดำและตรรกะ ทุกคนใน บริษัท ทุกขนาดจะเห็นด้วย1+1=2แต่ขอให้ตัวอักษรตัวไหนที่อ่านง่ายที่สุด(Comic Sans Obviously)... เตรียมพร้อมสำหรับเหตุการณ์น้ำท่วม คำตอบที่แตกต่างกันหมื่นคำและทุกคนพูดถูกเพราะทุกคนแตกต่างกัน


6
โอ้พระเจ้า Comic Sans ...
Maxpm

+1 สำหรับตรรกะขาวดำ ฉันเกลียดการตัดสินใจเกี่ยวกับสิ่งต่าง ๆ ที่ไม่มีคำตอบที่ถูกหรือผิด (ออกแบบ UI ตัดสินใจว่าจะอยู่ที่ไหนกินอะไรสำหรับอาหารค่ำ ฯลฯ ฮ่า ๆ )
ด่าน

7

ในฐานะนักพัฒนาที่สนุกกับการทำงานกับ UI (โดยเฉพาะฉันทำส่วนแบ่งการออกแบบเว็บอย่างยุติธรรม) ฉันขอขอบคุณเมื่อมีคนที่ไม่มีทักษะความชำนาญใช้งานอยู่

การพัฒนาต้องการความสามารถในการเก็บข้อมูลจำนวนมากในใจของคุณและจัดการกับหลาย ๆ อย่างในครั้งเดียว การออกแบบ UI ต้องใช้ความสามารถในการต้มให้น้อยที่สุดเท่าที่จะเป็นไปได้โดยไม่ทำให้เสียความสมบูรณ์ ฉันรักความท้าทายของสิ่งนั้น และฉันประจบประแจงเมื่อฉันเห็นคนสร้าง UI ที่เป็นวอลล์ -o-data ที่ไม่สามารถจัดการได้บนหน้าจอ (ฉันยังเป็นคนที่เกินจริงเมื่อพูดถึงเลย์เอาต์ทฤษฎีสี ฯลฯ )

ในทางกลับกันฉันเกลียดสิ่งระดับต่ำ ฉันจะไม่แตะรหัสสำหรับไดรเวอร์เมล็ดพืชหรือสิ่งอื่นเช่น: สั่น: ฉันจะปล่อยให้ "ไม่ใช่พวก UI" และฉันก็มีความสุขที่คนอื่นสนุกกับการทำมันหรือมันจะไม่ได้ทำ


6

ฉันคิดว่ามันขึ้นอยู่กับโปรแกรมเมอร์ส่วนใหญ่ใช้สมองซีกซ้าย

แหล่งข้อมูลที่ดีสำหรับการอ่านหัวข้อนี้เพิ่มเติม

ป้อนคำอธิบายรูปภาพที่นี่


6
คุณอาจเพลิดเพลินกับหนังสือการคิดและการเรียนรู้ในทางปฏิบัติ: ปรับโครงสร้าง Wetware ของคุณมันให้วิธีใหม่ในการคิดเกี่ยวกับความแตกต่างของสมองซีกซ้าย / ขวา อันที่จริงมันเปลี่ยนชื่อเป็น Linear-mode และ Rich-mode และเป็นการอ่านที่ยอดเยี่ยมจริงๆ
CaffGeek

@Chad Thankyou Chad! ฉันจะพิจารณามัน!
Amir Rezaei

+1 เมื่อนำสิ่งนี้ขึ้นมา แอพแบ็คเอนด์ dev วิเคราะห์อย่างสูงในขณะที่ส่วนหน้าทำงานเชิงสร้างสรรค์มากขึ้น บางคนชอบทั้งคู่ แต่หลายคนชอบที่จะติดกับช่องของพวกเขา
bunglestink

เพียงแค่ข้อมูลเพิ่มเติมที่เล็ก ๆ น้อย ๆ สำหรับผู้ที่อาจจะสนใจ: มันเป็นจริงไม่ชัดเจน 100% ซึ่งซีกโลกมีบทบาทใหญ่ในการกำหนดความสามารถทางคณิตศาสตร์
ด่านเตา

ฉันไม่เห็นด้วยว่า "เพลง" ตกอยู่ภายใต้การทำงานของสมองซีกขวาโดยเฉพาะอย่างยิ่งเมื่อจัดกลุ่มด้วย "ศิลปะ" ดนตรีเป็นคณิตศาสตร์และตรรกะอย่างมากในขณะที่งานศิลปะเป็นสิ่งที่ตรงกันข้ามอย่างสมบูรณ์ (อาจมีข้อยกเว้นของงานศิลปะพิกเซล
ด่าน

6

การพัฒนา UI นั้นซับซ้อนเนื่องจากคุณได้รับข้อมูลจากคนผิดมากเกินไป พวกเขาล้วนเป็นผู้เชี่ยวชาญด้านการออกแบบกราฟิก พวกเขาจะไม่ถูกค้นพบเมื่อคุณต้องการที่จะรู้สูตรสำหรับบางสิ่งบางอย่าง

พวกเขาไม่รู้ว่าต้องการอะไร แต่รู้เมื่อเห็นไม่มีรสชาติและผู้มีอำนาจตัดสินใจจะไม่ใช้แอปพลิเคชัน แต่มั่นใจว่าควรเป็นสีเขียว คุณทำตามคำแนะนำสำหรับ UI ที่ดีเช่นการ จำกัด จำนวนของเขตข้อมูลบนแบบฟอร์มและคุณได้รับคำขอให้เพิ่ม 50 เขตข้อมูลเพิ่มเติมเพราะพวกเขา 'ต้องการ' ทั้งหมดของพวกเขาและมีพวกเขาในแท็บแยกเป็นความพยายามมากเกินไป คุณก็รู้เช่นเดียวกับ Excel ชาวนา!

คุณไม่สามารถทำมันได้ ฉันนั่งในที่ประชุมที่คนสองคนแรกในแผนกบัญชี (ประมาณเงินเดือน 500K / ปี) สำหรับ บริษัท กฎหมายขนาดใหญ่ใช้เวลาครึ่งชั่วโมงในการโต้แย้งเรื่องฉลากบนหน้าเว็บไซต์การเรียกเก็บเงินที่ใช้โดยทนายความ นี่เป็นเรื่องง่ายที่ทนายจะเข้าใจ ทำไมไม่ถามแค่ทนาย ง่ายเกินไป ดังนั้นฝ่ายไอทีจึงได้รับโทรศัพท์ 50 สายจากทนายความที่ต้องการทราบ WTF "จำนวนเงินที่เรียกเก็บสุทธิ" คืออะไรและทำไมมันถึงอยู่ในแบบฟอร์มการกรอกเวลา


5

บางคนชอบบรอกโคลีบางคนทำไม่ได้ เราอาจจะต้องกินมัน แต่เราไม่ต้องชอบมันและเราจะไม่สนุกกับมันเมื่อเรากินมัน ไม่เพียงเท่านั้นเราจะหลีกเลี่ยงที่จะกินมันให้มากที่สุดเท่าที่จะทำได้

มีสิ่งอื่น ๆ อีกมากมายในการเขียนโค้ดมากกว่าแค่ UI บริการเว็บ, บริการ Windows, ฝังตัว (ไม่มาก UI บนไมโครเวฟ) เพียงเพื่อชื่อตัวอย่าง


9
UI มักจะเกิดการกระตุกบนไมโครเวฟในระยะสั้นซึ่งเป็นสาเหตุที่พวกเขาส่วนใหญ่ดูด
Robert Harvey

4
สิ่งที่มีไมโครเวฟคือเมื่อคุณมีดีด้วย UI ที่ดีที่คุณไม่จำเป็นต้องสั่งปุ่มเฉพาะเพื่อทำงานให้สำเร็จคุณไม่ต้องคิดอะไร แต่เมื่อคุณซื้อไมโครเวฟราคาถูกต่อรองสำหรับห้องใต้ดินหรืออะไรก็ตามคุณสังเกตได้ทันทีว่า UI นั้นน่ากลัวแค่ไหน คุณต้องจดจำคำสั่งที่แม่นยำของปุ่มกด ฉันจะเลือกระดับพลังงานก่อนเวลาหรือไม่ หรือหลังจากนั้น ฉันต้องทำเวลาทำอาหารก่อนหรือไม่? ฯลฯ ฯลฯ ... และเมื่อคุณจำเป็นต้องอ่านคำแนะนำที่ซ่อนอยู่ภายใน! ฮึ! UI ที่ดีควรเป็น "มองไม่เห็น" สำหรับผู้ใช้
CaffGeek

คำอุปมาที่แย่มาก ฉันรักบรอคโคลี่ แต่เกลียดการออกแบบ UI ;)
ด่าน

4

นั่นอาจเป็นเพราะ - ในบางกรณี - เครื่องมือที่คิดขึ้นมาอย่างชัดเจนเพื่อช่วยให้คุณวาด UI ที่ดูดลิงทารกที่ตายแล้วด้วยฟางแทน


4

มีบางสิ่งในการพัฒนา UI ที่หาได้ยาก

เค้าโครงเป็นหนึ่งในนั้น ฉันได้สร้าง UIs มานานกว่า 15 ปีแล้วและยังไม่เป็นทางออกที่ดีสำหรับการจัดการโครงร่าง

อีกอย่างคือการกำหนดเส้นทางเหตุการณ์ - ถึงแม้จะมีสถาปัตยกรรม MVP และสิ่งที่กำหนดโดยกรอบการทำงานฉันจะยืนยันว่า UIs ที่ซับซ้อนที่สุดมีปัญหาการกำหนดเส้นทางเหตุการณ์ - ซึ่งอาจถูกค้นพบว่ากรอบการทดสอบใดสามารถจัดการกับมันได้ดี


3

ฉันรู้ว่าสำหรับฉันฉันเคยเกลียด UI dev เพราะฉันพบว่ามันน่าเบื่อและช้าโดยเฉพาะการเขียนรหัสเลย์เอาต์เพื่อจัดวางสิ่งต่าง ๆ ในรูปแบบหรือ winow ตอนนี้ด้วยเครื่องมือออกแบบ UI เช่น Forms Designer ใน Visual Studio ฉันเกือบจะสนุกกับมันแล้ว เหตุผลอื่นที่เกลียดชังฉันเคยได้ยินจากคนอื่น ๆ รวมถึง "มันโง่", "มันเปลี่ยนไปมากเกินไป", "มันไม่ท้าทายพอ", "มันน่าเบื่อ / น่าเบื่อ"


4
คุณตอบสแควร์ด้วยชื่อผู้ใช้ของคุณได้อย่างไร? :)
Robert Harvey

@ Robert Harvey: ยุติธรรมมาก! Forms Designer นั้นดี แต่เมื่อคุณเริ่มนึกคิดกับคอนเทนเนอร์ UI ทั่วไปมันจะเริ่มทำให้หายใจไม่ออก หรืออย่างน้อยก็ VS2008 ทำ ยังไม่ได้ลองปี 2010 แต่ฉันสงสัยว่าอาจมีปัญหาที่คล้ายกัน ไม่ว่าจะด้วยวิธีใดก็ตามปัญหาได้รับการแก้ไขในที่สุด (ดูโพสต์แรกของฉันใน SO) มีสิ่งอื่น ๆ ที่ทำให้หายใจไม่ออกเช่นกัน แต่มันก็เป็นการลบความน่าเบื่อที่ฉันมักจะเพลิดเพลินไปกับการออกแบบ / การพัฒนา UI
FrustratedWithFormsDesigner

3

ทำไมผู้เล่นหมากรุกทุกคนไม่ชอบออกแบบกระดานหมากรุกและชิ้นส่วนที่เล่นด้วย

ไม่ใช่เรื่องแปลกที่บางคนไม่ชอบ ... มันแปลกที่คุณคาดหวังว่าเราควร


1
ผู้เล่นหมากรุกไม่ได้ออกแบบกระดานหมากรุกและชิ้นส่วนเนื่องจากการออกแบบเหล่านี้มีมานานกว่าศตวรรษที่ได้รับการรับรองโดยสมาคมหมากรุกสากล (FIDE) และมาตรฐานเหล่านั้นได้รับการยอมรับอย่างกว้างขวาง
jwenting

2

ฉันชอบทำงานกับ UI นั่นไม่จริงเสมอไปสำหรับฉัน แต่ความเพลิดเพลินในการใช้งาน UI ของฉันเพิ่มขึ้นเนื่องจากฉันทำได้ดีขึ้นในช่วงไม่กี่ปีที่ผ่านมา ฉันรู้ว่านักพัฒนาบางคนไม่ควรได้รับอนุญาตใกล้สไตล์ชีทหรือจานสี มันเป็นชุดทักษะที่แตกต่างกันแน่นอนและไม่ใช่ทุกคนที่มีมัน


2

ฉันไม่ชอบ UI ที่เกลียดชังเท่าที่ฉันเกลียดบางเฟรมเวิร์กของ UI เช่นฉันเคยเขียนโปรแกรม. NET เป็นเวลา> 10 ปี กรอบการสร้างเว็บแอปพลิเคชั่นนั้นยอดเยี่ยม (ASP.NET WebForms และ ASP.NET MVC) แต่เฟรมเวิร์กสำหรับการเขียนแอปพลิเคชันเดสก์ท็อปดีฉันไม่ชอบ (WinForms และ WPF)

ดังนั้นในแง่นี้การเขียนแอปพลิเคชัน GUI จึงเป็นเรื่องของการใช้เฟรมเวิร์กที่ฉันไม่ชอบ

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

เช่นแอปพลิเคชันรับข้อมูลผ่านชุดของวัตถุ DTO จากนั้นแอปพลิเคชันจะสร้างแบบจำลองของข้อมูลเอง (ไม่ได้ใช้คลาสโดเมนเดียวกันกับที่สร้างบนเซิร์ฟเวอร์) คลาสโมเดลถูกใช้โดยโมเดลมุมมอง (ในรูปแบบ WPF MVVM) ซึ่งแสดงคุณสมบัติในโมเดล

นั่นคือหลายครั้งที่ข้อมูลเดียวกันถูกแสดงโดยคลาสที่แตกต่างกัน และนั่นก็น่าเบื่อ แต่นี่เป็นปัญหาเฉพาะของแอปพลิเคชันเดสก์ท็อปประเภทนี้

นอกจากนี้ยังมีความท้าทายที่น่าสนใจในแอปพลิเคชันประเภทนี้เช่นเราจะรับการเปลี่ยนแปลงจากไคลเอนต์หนึ่งเพื่ออัปเดตทันทีบนไคลเอนต์อื่นได้อย่างไร


++ ฉันรู้ว่าคุณหมายถึงอะไร สำหรับจุดสุดท้ายเกี่ยวกับการเผยแพร่การปรับปรุงระหว่างไคลเอนต์ฉันใช้การสำรวจ (ปกติ 1 วินาที) แต่นั่นอาจใช้ได้กับฐานข้อมูลขนาดเล็กและลูกค้าจำนวนเล็กน้อยเท่านั้น
Mike Dunlavey

2

ฉันไม่ใช่แฟนตัวยงของการพัฒนา UI ด้วยเหตุผลเหล่านี้:

  1. ในฐานะนักพัฒนาคุณมีอิสระในการสร้างน้อยลง: ลูกค้าสามารถเห็นและมีความคิดเห็นเกี่ยวกับทุกแง่มุมของ UI ที่คุณต้องตอบโต้ คุณจะได้รับคำขอเช่น: เปลี่ยนสีของสิ่งนี้; เลื่อนปุ่มนั้นไปที่นั่น ไม่เป็นไรย้ายมันกลับมา รหัสแบ็คเอนด์แทบจะมองไม่เห็น

  2. UI มีความยุ่งเหยิงในขณะที่ส่วนหลังคือ "สงบใจ" มากกว่า ในขณะที่ฉันเห็นโค้ดแบ็คเอนด์ยุ่งเหยิงน่าเกลียดฉันคิดว่ามันเป็นเรื่องธรรมดาที่จะทำความสะอาด (จากมุมมองโค้ด) มากกว่ารหัส UI UI สามารถดูสะอาดตาและออกแบบมาอย่างดีสำหรับผู้ใช้ แต่เนื่องจากฉันเป็นนักพัฒนาซอฟต์แวร์และใช้เวลามากกว่าในการใช้รหัสฉันจึงชอบการล้างรหัสมากขึ้น

  3. ฉันรู้สึกว่า UI เป็น "ระบบประปา" มากกว่าส่วนแบ็คเอนด์นั่นคือมีโอกาสน้อยกว่าสำหรับอัลกอริธึมที่ฉลาดและผลักดันสมองของคุณให้ถึงขีด จำกัด


1

ฉันทำทั้ง UI (เดสก์ท็อปไม่ใช่เว็บ) และความกล้าภายใน

จำนวนที่ฉันชอบหรือไม่ชอบขึ้นอยู่กับว่าฉันสามารถทำได้โดยใช้บางอย่างเช่นโดเมนเฉพาะภาษา (DSL)

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

ในโดเมนที่ไม่ใช่ UI ฉันได้รับบทเรียนจากผลิตภัณฑ์จำนวนหนึ่งที่เริ่มต้นจาก DSL ที่ใช้งานได้จากบรรทัดคำสั่งซึ่ง UI ได้รับการต่อกิ่ง สิ่งนี้ทำให้ผู้ใช้ที่เชี่ยวชาญสามารถผ่านทาง UI ในขณะที่ให้สิ่งที่ผู้ใช้ทั่วไปสามารถใช้งานแบบไม่เป็นทางการ (ตัวอย่าง: R, SPlus, Matlab, SAS, WinBugs) ดังนั้นผลิตภัณฑ์ของเราจึงมีภาษาบรรทัดคำสั่งสำหรับผู้เชี่ยวชาญ ฉันชอบที่จะพัฒนาสิ่งต่าง ๆ ด้วยตัวแยกวิเคราะห์ตัวสร้างโค้ดพรีคอมไพเลอร์และเอ็นจิ้นโมเดลเวลาทำงาน ความพยายามที่ใช้ไปอย่างน้อย 10 อย่างน้อยกว่าความพยายามที่ใช้ใน UI

เหตุผลหนึ่งที่ทำให้ความพยายามของ UI นั้นมากขึ้นคือยังมี "กาว" จำนวนมากที่ไม่สามารถทำได้ด้วย DSL - การจัดการกริดข้อมูลวิธีการเรียงลำดับข้อมูลทุกชนิดทุกสิ่งที่ตกอยู่ใน "รอยแตก" ที่หาวได้ ระหว่าง UI บริสุทธิ์และภาษาพื้นฐาน

ดังนั้นคำถามของคุณคือ "ทำไมโปรแกรมเมอร์บางคนถึงเกลียดการเป็นส่วนหนึ่งของการพัฒนา UI" ฉันเกลียดเพียงเพราะ "กาว" ซึ่งฉันไม่มี DSL


1

สุจริตฉันพบว่าการหาชุดเครื่องมือ GUI ที่ดีที่สุดแล้วจริง ๆ แล้วการเรียนรู้ ins และลึกหนาบางของที่เป็น PITA ... ไม่พูดถึงคุณไม่ได้เรียนรู้สิ่ง UI มากในวิทยาลัยและเป็นมือใหม่ ...... ..


1

นอกเหนือจากสิ่งที่ระบุไว้แล้ว (มันน่าเบื่อน่าเบื่องานที่น่าผิดหวังในการเขียนโค้ดและการออกแบบมักจะทำโดยคนที่ไม่มีเงื่อนงำว่าปัญหาความคิดของเขาทำให้คนที่พยายามจะนำไปใช้) สิ่งสำคัญคือคุณ ต้องทำงานกับคนที่มีความคิดเกี่ยวกับสิ่งที่คุณควรจะเปลี่ยนแปลงอยู่ตลอดเวลามากไปกว่าพวกเขาสำหรับแบ็กเอนด์ เป็นผลให้คุณยิงกับสเป็คที่เคลื่อนไหวมากขึ้นและคนเหล่านี้มักจะเป็น nitpickers เช่นกัน ฉันมีอินเทอร์เฟซผู้ใช้ที่ล้มเหลวในการทดสอบเนื่องจากส่วนประกอบอยู่ห่างจากตำแหน่ง 1 พิกเซลซึ่งผู้ทดสอบคิดว่าควรจะเป็น มันใช้งานได้หรือ ใช่. มันดูดีไหม ใช่. แต่เขาเริ่มนับพิกเซลและบางสิ่งบางอย่างก็เป็นพิกเซลเดียวที่ไม่สอดคล้องกับส่วนที่เหลือดังนั้นเขาจึงส่งมันกลับมาทำใหม่


1

อีกไม่กี่คะแนน:

1) การออกแบบ UI นั้นสามารถทดสอบได้ยากขึ้นแน่ใจว่าคุณสามารถตรวจสอบว่าปุ่มนั้นทำสิ่งที่ควรทำหรือไม่ แต่ทดสอบว่าใช้งานง่ายกว่านั้นหรือไม่ วิธีการเกี่ยวกับการทดสอบว่ามันจะใช้งานได้กับคนที่มีความพิการหรือไม่?

2) โปรแกรมเมอร์จำนวนมากไม่ได้รับการฝึกฝนและไม่รู้จักมากนัก


1

ความจริงก็คือเครื่องมือ UI / framework / API จำนวนมากนั้นไม่ดีซับซ้อนซับซ้อนและอยู่ห่างไกลจากการใช้งานง่าย ฉันพัฒนาด้วย Win32 API ใน C / C ++, กับ javax.swing, CSS, เป็นต้นตั้งแต่นั้นฉันเกลียดต้องจัดการกับการพัฒนา UI ... จนกระทั่งกรอบ Qt!


1
คุณหมายถึงว่าคุณหมดสติกับเครื่องมือที่ไม่ได้ใช้งานทั่วไปแล้ว (คนส่วนใหญ่จะไม่ใช้ Win32 สำหรับการเขียนโปรแกรม UI วันนี้)? ขออภัยฉันไม่คิดว่านี่เป็นจุดที่ถูกต้อง
user16764

1

ในฐานะนักเรียน CS คุณจะได้รับการสอนโครงสร้างข้อมูลฐานข้อมูล C ++ ... ยกเว้น UI ดังนั้นคุณจะไม่ดีที่มันจากจุดเริ่มต้น หากคุณไม่เก่งคุณจะเกลียดมัน


มหาวิทยาลัยและวิทยาลัยหลายแห่งเปิดสอนหลักสูตรการออกแบบ UX มักเป็นส่วนหนึ่งของหลักสูตร CS ของพวกเขา
user16764

1

เมื่อทำงานกับทั้งสองด้านของเหรียญเช่นการออกแบบ UI และรหัสแบ็กเอนด์ฉันพบว่าเหรียญทั้งสองข้างนั้นเหมือนกัน

ข้อกำหนดที่แตกต่างจากสิ่งที่คุณทำในแต่ละวันไม่ได้มาตลอดเวลาและตอนนี้ในยุคที่บริการทั้งหมดหมุนวนไปรอบ ๆ CRUD แล้วมันน่าเบื่อ

อย่างไรก็ตามการเข้ารหัสส่วนหน้าจะช่วยให้การปฏิสัมพันธ์ที่ดีขึ้นและการเปลี่ยนแปลงที่บ้าคลั่งซึ่งโดยทั่วไปจะใช้มือข้างที่ไม่มีประสบการณ์ในการออกแบบส่วนหน้า ฉันเรียนรู้วิธีที่ยากในส่วนหน้าและสามารถพูดได้อย่างสบาย ๆ ว่าการออกแบบส่วนหน้านั้นน่าสนใจและท้าทายมากขึ้น

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