โปรแกรมเมอร์ GUI มีข้อได้เปรียบเหนือผู้อื่นหรือไม่?


23

มันง่ายสำหรับผู้จัดการและลูกค้าที่จะชื่นชมสิ่งที่พวกเขาเห็น

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

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

ในความคิดของฉันข้อพิสูจน์เกี่ยวกับเรื่องนี้คือ (และฉันจะได้รับการลงคะแนนอย่างหนักสำหรับเรื่องนี้ฉันรู้) ว่ามีแรงจูงใจน้อยลงสำหรับโปรแกรมเมอร์ GUI ที่จะเขียนโค้ดสะอาดดี

แก้ไข : ฉันต้องอธิบายที่นี่ว่าโดยโปรแกรมเมอร์ GUI ฉันไม่ได้หมายถึงนักออกแบบเว็บ / GUI เต็มรูปแบบ แต่เป็นโปรแกรมเมอร์ส่วนหน้าเช่นโปรแกรมเมอร์ Java-swing

ชุมชนที่เหลือเห็นด้วยไหม?


6
ใครต้องทนทุกข์ทรมานจากการร้องขอของผู้ใช้ที่ 'โง่' สำหรับแบบอักษรป้ายชื่อสีและการเคลื่อนย้ายทุกสิ่งรอบ ๆ คุณเอาดีกับความเลว
JeffO

@Jeff O: จริงมาก ไม่มีผู้ใช้คนใดที่วิพากษ์วิจารณ์ตัวเลือกของฉันว่าจะจัดสรรหน่วยความจำเท่าใดสำหรับโครงสร้างข้อมูลหรือคอลัมน์ใดของตารางฐานข้อมูลที่จะจัดทำดัชนี
dan04

2
ต้องทำงานร่วมกับรูปแบบ (. ไม่ว่าจะแกว่ง GWT, HTML, CSS) คือการทรมานดังกล่าวว่าไม่ได้มีการจัดการกับมันเป็นข้อได้เปรียบ ...
Uri

@ dan04: ลองทำงานกับผู้ใช้วิทยาศาสตร์ระดับสูง พวกเขายินดีที่จะใช้ UIs ที่น่าเกลียดและใช้เวลานานในการต่อสู้กับโครงสร้างฐานข้อมูล (โดยปกติจะพยายามเก็บ cruft เก่าที่ไม่สามารถอธิบายได้เพราะสคริปต์เก่าของพวกเขาใช้ประโยชน์จากมัน) Grr …
Donal Fellows

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

คำตอบ:


21

ฉันคิดว่าฉันเห็นประเด็นของคุณ แต่ฉันสงสัยว่ายังมีประเด็นตรงกันข้ามที่ต้องพิจารณา

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

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

แต่ฉันคิดว่าการมองเห็นที่สูงขึ้นจะมาถึงแม้ในกรณีที่มีปัญหา ตัวอย่างเช่นผู้ใช้ปลายทางมีแนวโน้มที่จะรายงานปัญหาเป็น 'ปัญหา GUI' แม้ว่าจะไม่ใช่

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


1
และไม่เหมือนกับ บริษัท ส่วนใหญ่ที่ทำแบบสำรวจผู้ใช้เพื่อดูว่าใครเป็นโปรแกรมเมอร์ที่ดีที่สุด
JeffO

1
+1 ฉันทำงานบน GUI และเมื่อใดก็ตามที่มี 'ปัญหา' มันลงในกล่องจดหมายของฉัน ความรับผิดชอบของฉันก็คือ 'พิสูจน์' ว่าสาเหตุของปัญหามาจากล่างลงมา ผู้เขียนโปรแกรม GUI ต้องเล่น 'ความบริสุทธิ์' ของ API ที่สวยงามเหล่านั้นด้วยความสับสนวุ่นวายของความต้องการของผู้ใช้
Benjol

10

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

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

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


ในระยะสั้นขึ้นอยู่กับบุคคลและสิ่งที่คุณทำ


8
เป็นคนที่ใช้เวลาเพียงช่วง 5 ปีหรือดังนั้นการทำงานในสิ่งที่โครงสร้างพื้นฐาน (สแต็ค SIP) +1 - คนส่วนใหญ่ไม่ทราบว่าสิ่งที่คุณทำและไม่มีอะไรที่มองเห็นได้โดยเฉพาะอย่างยิ่งกว่าอื่น ๆ บางอย่างที่ไม่ได้ทำงาน คุณคิดยังไงกับการประปาของคุณ ... จนกว่ามันจะพัง
Frank Shearar

6

ในฐานะที่เป็น "ผู้เชี่ยวชาญ UI" ที่ บริษัท ของฉัน (ผู้ดูแลการพัฒนา UI ทั้งหมดไม่ใช่แค่การออกแบบ) ฉันคิดว่าคุณอาจคิดถึงบางส่วนของเรื่อง ในขณะที่ฉันเป็นผู้ดูแล UI ฉันยังทำงานบนแบ็คเอนด์บนฐานข้อมูล ฯลฯ ฉันทำทุกอย่าง (เราเป็นทีมเล็ก ๆ ) [C # และ ASP.Net WebForms พัฒนา]

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

ประการที่สองการพัฒนา front-end นั้นมีความท้าทายสำหรับฉันมากกว่าแบ็กเอนด์เท่าที่เคยมีมา มีอีกมากมายที่ต้องป้องกันมันไร้สัญชาติ (แอพของเราอยู่บนเว็บ) เบราว์เซอร์ไม่ทำงานอย่างสม่ำเสมอ (ไลบรารี JavaScript เป็นที่มาของสวรรค์) และอื่น ๆ ฉันหวังว่าความซับซ้อนนี้ส่วนใหญ่เกิดจากกรอบที่ฉันมี การทำงานกับ (ASP.Net WebForms) และสิ่งที่ยากทั้งหมดจะไม่มีปัญหาในอนาคต

โดยรวมแล้วฉันมีปัญหาในการแก้ไขปัญหา UI มากกว่าปัญหาส่วนหลัง


5

ฉันเกลียดการพัฒนา GUI ด้วยเหตุผลสองประการ

  1. ฉันมีเหตุผลมากกว่าศิลปะกราฟิกและ UI ของฉันมักจะทนทุกข์ทรมานเสมอ
  2. เนื่องจาก UI ไม่ได้ขึ้นอยู่กับตรรกะการทดสอบหน่วยจึงไม่สามารถเขียนได้ด้วยความหมายใด ๆ

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


4

หากต้องการ (อาจ) ขยายคำตอบของ @ TheLQ เพียงเล็กน้อยฉันคิดว่ามันขึ้นอยู่กับ "ผู้ดู" ด้วย

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

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

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

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


3

ฉันคิดว่ามีข้อสันนิษฐานทั่วไปว่าผู้พัฒนา UI เป็นนักพัฒนา "รุ่นรอง" ฉันสามารถนึกถึงกรณีเดียวที่ฉันพบว่ามีคน UI ที่ถือว่าอาวุโส

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

ดังนั้นหากพวกเขาได้รับความดีมากขึ้นเนื่องจากมีการรับสัมผัสมากขึ้นพวกเขาอาจสมควรได้รับมัน โดยปกติพวกเขาอยู่ในจุดสิ้นสุดการรับที่ไม่ถูกต้องบ่อยกว่าจุดสิ้นสุดการรับที่ดี


3

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

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

แต่สำหรับบางคนมันจะลากปุ่มไปยังแอปของคุณ เช่นเดียวกับบางคนตรรกะทางธุรกิจไม่มีอะไรมากไปกว่า "แยกวิเคราะห์ข้อความและใส่ไว้ในฐานข้อมูล"


2

ฉันคิดว่ามันชัดเจนว่าพวกเขาทำ อาจจะเป็นบ้านที่พัฒนาแล้วได้รับการยกเว้น

เมื่อผู้จัดการของคุณถามคุณว่าคุณทำอะไรไปเมื่อเดือนที่แล้วมันง่ายที่จะแสดง GUI ที่ยอดเยี่ยม เป็นการยากที่จะแสดง API ที่ยอดเยี่ยม ยากมาก. ความเย็นของ API นั้นเห็นได้ชัดจากการใช้งานจริงเท่านั้นไม่สามารถมองเห็นได้อย่างรวดเร็ว


1

คุณสามารถหนีจากแฮกเกอร์และทางลัดทุกประเภทในระบบภายใน เมื่อต้องจัดการกับ GUI คุณจะไม่มีอิสระ API ภายในของคุณอาจมีความไม่สอดคล้องกันและคุณเพียงคาดหวังว่าตัวแปลงสัญญาณจะจัดการกับมันเพราะมันยากเกินไปที่จะแก้ไข คุณไม่สามารถลองและทำให้ลูกค้าทำเช่นเดียวกัน ดังนั้นในบางแง่มุมคนที่ต้องจัดการกับส่วนประกอบที่ผู้ใช้สามารถมองเห็นได้จะต้องปฏิบัติตามมาตรฐานที่สูงขึ้น


1

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


1

มันขึ้นอยู่กับผู้ชม ฉันทำงานกับนักวิเคราะห์การเงินจำนวนมากและความคิดของพวกเขาเกี่ยวกับการออกแบบ gui ที่ดีนั้นเป็นสิ่งที่มีหลายสาขามากที่สุดเท่าที่คุณจะทำได้ อย่างจริงจังฉันกำลังพูดคุย 75 - 100 พวกเขาเป็นข้อมูลขยะที่ต้องการมากขึ้นเสมอ เมื่อเร็ว ๆ นี้ฉันได้ปรับปรุงประสิทธิภาพของกระบวนงานที่เก็บไว้ไม่กี่ขั้นตอนซึ่งอาจใช้เวลาโหลด 45 วินาที (คำนวณค่าเฉลี่ยถ่วงน้ำหนักนับตั้งแต่เริ่มต้น) รับลงไป 30 วินาที ฉันคิดว่าว้าวตัดหนึ่งในสามของเวลา; ควรเป็นรายการโฆษณาในประวัติย่อของฉัน ไม่มีใครสังเกตแม้แต่ ทำงานกับมันและไปที่ 15-20 การเปลี่ยนแปลงที่น่าสังเกต ทุกคนมีความสุขมาก ฉันยังคิดว่า GUI เป็นสิ่งที่น่ารังเกียจและถ้าเราลบอึที่ไร้ประโยชน์ออกไปมันจะโหลดภายใน 2 วินาที

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


1

การทดสอบส่วน UI ของแอปพลิเคชั่นเป็นฝันร้าย

ทุกคนรอบตัวรู้สึกมีความสามารถในการให้คำแนะนำหรือกำหนดความต้องการว่าคุณควรทำอย่างไร

หลังจากที่ระบบทำงานได้ดีในภายหลังแม้ว่าบางคนอาจจำได้ว่ามีใครบางคนที่ไม่ชอบคุณ แต่ก็ไม่มีใครจำได้ว่าใครทำอะไร

แต่หากมีข้อผิดพลาดเกิดขึ้น( บางคนเกิดขึ้นเสมอ) ผู้ชายคนแรกที่ถูกตัดสินว่าเป็นโปรแกรมเมอร์ GUI ผู้ใช้ไม่เคยเห็นคนอื่นเลย!

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