it-swarm-tr.com

Neden bazı programcılar geliştirmenin kullanıcı arayüzünden nefret ediyor?

Tanıştığım bir çok programcı her zaman "O bir UI adamı değil" diyor. Gerçek şu ki, günümüzde web, Windows, Linux, OSX veya başka herhangi bir geliştirme türü, şimdi iyi görünümlü bir arayüze sahip yazılım içeriyor. Neden bu kadar çok geliştirici UI çalışmasından hoşlanmıyor gibi görünüyor?

54
zero95teen

Ben de bir kullanıcı arayüzü değilim. Eh, kendi projelerimde UI yapıyorum, ama işte bununla hiçbir ilgim yok - işim ön tarafta değil, uygulamanın cesaretinde.

Bunun ötesinde, nefretten daha sıkıcı olduğunu düşünüyorum. Kullanıcı arayüzünü tasarlamak zor ve zorlu bir iştir. Uygulama çoğunlukla kaba bir iştir. Bir kişinin bir kullanıcı arayüzünü nasıl uygulayabileceği konusunda çok az zorluk veya yenilik var ve biraz zihinsel olmadan önce ekrana bir onay kutusu koyabilecek kadar çok kez var. Ve bu, pikselleri "aynen" hizalayarak saatlerce harcamaya bile değmiyor.

102
Adam Lear

İyi bir kullanıcı arayüzü oluşturmak, bazı arka uç kodları yazmaktan çok farklı beceriler içerir.

Arka uç gereksinimleri genellikle bir kara kutu gibi belirtilebilir, x girer ve y'nin çıkması beklenir. İşe yaraması mantığın uygulanmasını içerir ve programlı olarak çalışıp çalışmadığını test edebilirsiniz.

İyi bir kullanıcı arayüzü oluşturmak için kullanılabilirlik, görsel tasarım, düzen ve renk şemaları gibi şeyleri göz önünde bulundurmanız gerekir. Sanatsal yaratıcılığa sahip olmak burada bir bonus ve birçok programcı buna sahip olduğunu düşünmüyor. Mantıksal bir beyin için bir UI sorununun çözümü öznel görünebilir, çünkü doğru bir cevap ya da 'doğru' yapıldığını doğrulamanın kolay bir yolu yoktur.

Bence çok fazla UI deneyimi olmayan veya çok fazla araştırma yapmayan birçok programcı, hem kullanılabilirlik açısından hem de tasarım açısından iyi bir UI tasarımının arkasında kurallar ve bilim olduğunu anlamıyor. teori).

Tabii ki, bazı programcıların bu yönüyle bir sorunu yoktur, ancak pek çok kullanıcı arayüzü kodlamak için sıkıcı olduğu için nefret ediyor. Bunlar, yalnızca işlevsel olmaları gereken ve tasarım zorluğu olmayan yönetici sayfaları için form sayfaları gibi birçok tekrarlayan çalışmadan oluşabilir.

55
Alb

İnsanların farklı çıkarları var. Bazı programcılar, bazıları mimaride, bazıları kullanılabilirlik ve UI tasarımında veya bunların ve diğer nişlerin herhangi bir kombinasyonunda veri yapıları ve algoritmalarla daha fazla ilgilenirler. Her biri farklı beceriler ve bir sorun hakkında farklı düşünme biçimleri gerektirir. Düşük seviyeli somunları ve programlama cıvatalarını seviyorsanız, belki de kullanıcının nasıl düşündüğü konusunda umursamıyorsunuz ya da tam tersi.

Şahsen, ikinci kampa düşüyorum - karmaşık bir algoritmadan çok bir kullanıcı arayüzü tasarlamayı tercih ederim. Sadece ilginç bulduğum bir şey.

18
Travis Christian

Belirli bir UI tasarımının iyi ya da kötü olup olmadığı oldukça öznel, ki programcıların genel olarak cazip olmadığını düşünüyorum. İyi UI tekniklerini ölçmek ve nitelendirmek için birkaç on yıl çaba, birinin uygulayabileceği bazı geniş kurallar oluşturmaya yardımcı oldu, ancak çoğu zaman bir UI'nin iyi olup olmadığını gerçekten belirlememekten çok fazla A/B testi ve diğer kullanıcı gözlemi gerektirir teknikleri.

Programlamada kesinlikle öznellik olsa da, genellikle bir seçimin neden diğerinden daha iyi olduğuna dair bazı nesnel nedenlere işaret edebilirsiniz: yürütme hızı, bellek gereksinimleri, gelecekteki olası ihtiyaçları karşılama esnekliği, Belirli bir UI seçimini savunmak - ve hatta bu seçimin kendisini bile yapmak - genellikle desteklemeyi tamamen farklı bir argüman olan “Seviyorum” a düşer.

15

Kişisel olarak UI geliştirmeden hoşlanmıyorum çünkü bu konuda iyi değilim. Anlamada iyi olmadığım kullanıcı psikolojisinin BÜYÜK bir unsuru var. Sanırım en büyük sorunum kendimi kullanıcının yerine koyamıyorum. Ben sezgisel düzenleri büyük ölçüde nasıl yapacağımı bilmiyorum çünkü ne kullanıcı için sezgisel olduğunu bilmiyorum, ne de şeyler güzel görünmesini nasıl bilmiyorum.

Bazı programcıların UI'leri tasarlamaktan, iyi olmadıkları şeyleri yapmaktan nefret ettikleri kadar nefret ettiğini düşünmüyorum. Sadece UI geliştirmede iyi olmayan birçok geliştirici var.

13
Pemdas

UI tasarımıyla ilgili sorun herkesin bir fikri var ... Ve doğru ya da yanlış cevap yok. Geliştiriciler ise siyah-beyaz ve mantığı seviyor. Herhangi bir büyüklükte herkes 1+1=2 Kabul eder, ancak hangi yazı tipinin (Comic Sans Obviously) Okumayı en kolay hale getirdiğini sorun ... sel için hazır olun. On bin farklı cevap ve herkes haklı, çünkü herkes farklı.

11
MVCylon

Aslında UI üzerinde çalışmaktan hoşlanan bir geliştirici olarak (özellikle web tasarımından adil payımı aldım), beceri setine sahip olmayan birisinin dışında kaldığını takdir ediyorum.

Geliştirme, zihninizde çok fazla veri tutabilme ve aynı anda çok fazla şeyle başa çıkma yeteneğini gerektirir. UI tasarımı, bütünlüğünden ödün vermeden mümkün olduğunca minimal kaynatma yeteneğini gerektirir. Ben aşk bunun zorluğu; ve birinin ekranda yönetilemeyen bir wall-o-data oluşturduğu bir kullanıcı arayüzü oluşturduğunu gördüğümde rahatsız oluyorum. (Düzen, renk teorisi vb. Söz konusu olduğunda da tam bir inekim.)

Öte yandan, ben nefret düşük seviyeli şeyler. Sürücüler, çekirdekler veya bunun gibi herhangi bir şey için koda asla dokunmayacağım: titreme: Bunu "UI olmayan çocuklar" a bırakacağım ve başka birinin bunu yapmaktan hoşlandığına sevindim, ya da asla yapılmaz.

7
keithjgrant

Çoğu programcının beyninin sol kısmını kullanmasına bağlı olduğunu düşünüyorum.

Bu konunun daha fazla okunması için iyi bir kaynak .

enter image description here

6
Amir Rezaei

Kullanıcı arayüzünün geliştirilmesi karmaşık hale gelir çünkü yanlış kişilerden çok fazla girdi alırsınız. Hepsi grafiksel tasarım uzmanları. Bir şeyin formülünü bilmek istediğinizde onlar bulunacak bir yer değildir.

Ne istediklerini bilmiyorlar ama gördüklerinde biliyorlar, tadı yok ve karar verme yetkisine sahip olanlar uygulamayı zaten kullanmayacaklar ama yeşil olması gerektiğinden eminler. Bir formdaki alan miktarını sınırlamak gibi iyi kullanıcı arayüzü için yönergeleri izlersiniz ve hepsine 'ihtiyaç duydukları' ve ayrı sekmelerde bulundurmaları çok fazla çaba gerektirdiğinden 50 alan daha ekleme isteği alırsınız. Excel ile aynı. Köylüler!

Bunu telafi edemezsin. Büyük bir hukuk bürosu için muhasebe departmanındaki ilk iki kişinin (yaklaşık 500 bin/yıl maaş) avukatların kullandığı faturalandırma web sayfasındaki bir etiket üzerinde tartışarak yarım saat geçirdikleri bir toplantıda oturdum. Bu, avukatların anlamasını kolaylaştıracaktı. Neden sadece avukatlara sormuyorsun? Çok kolay. Bu yüzden BT departmanı WTF "Artık Net Faturalandırma Tutarı" nı bilmek isteyen avukatlardan 50 telefon görüşmesi yapar ve neden zaman giriş formlarındadır.

6
JeffO

Bazı insanlar brokoli sever, bazıları sevmez. Yemek zorunda kalabiliriz, ama sevmek zorunda değiliz ve yediğimizde tadını çıkarmayacağız. Sadece bu değil, olabildiğince fazla yemekten kaçınacağız.

Kodlamak için sadece kullanıcı arayüzünden çok daha fazlası var. Web Hizmetleri, Windows Hizmetleri, gömülü (mikrodalgada bir UI fazla değil), sadece birkaç örnek.

5
Muad'Dib

Bunun nedeni, - bazı durumlarda - UI'nin ölü bebek maymunlarını bir pipetle çekmesine yardımcı olmak için açıkça tasarlanan araçların olabilir.

4
s.m

UI geliştirmede doğru olması zor bazı şeyler var.

Düzen bunlardan biri. 15 yılı aşkın bir süredir kullanıcı arayüzleri oluşturuyorum ve hala yerleşim yönetimi için iyi bir çözümüm yok.

Bir diğeri olay yönlendirme - MVP mimarileri ve çerçeveler tarafından zorunlu tutulan şeyler ile bile, çoğu karmaşık UI'nin olay yönlendirme sorunlarına sahip olduğunu iddia ediyorum - bu, test çerçevelerinden herhangi biri bunları iyi çözebilirse keşfedilebilir.

4
Uri

Benim için kullanıcı arayüzünden nefret ettiğimi biliyorum, çünkü çok sıkıcı ve yavaş buldum, özellikle bir form veya winow'da şeyleri konumlandırmak için düzen kodu yazdım. Şimdi Visual Studio'daki Form Tasarımcısı gibi UI tasarımcı araçlarıyla neredeyse keyfini çıkarın. Bundan nefret etmenin diğer nedenleri arasında "aptal", "her zaman çok fazla değişiyor", "yeterince zor değil", "sıkıcı/sıkıcı" sayılabilir.

Tüm satranç oyuncuları neden satranç tahtası ve oynadıkları parçaları tasarlamayı sevmiyor?

Bazı insanların bunu sevmemesi garip değil ... beklememiz garip.

3
user18161

Bu nedenlerle UI geliştirmenin büyük bir hayranı değilim:

  1. Bir geliştirici olarak, oluşturma özgürlüğünüz daha azdır: Müşteri, kullanıcı arayüzünün tepki vermeniz gereken her küçük yönünü görebilir ve düşünebilir. Aşağıdaki gibi istekleri alırsınız: bunun rengini değiştirin; o düğmeyi oraya taşıyın; boşver, geri çek. Arka uç kodu nadiren görünür.

  2. Kullanıcı arabirimi daha karışık, arka uç ise daha "platonik". Arka uç kodunun çirkin karışıklıklarını gördüm, ancak UI kodundan daha temiz (kod açısından) daha yaygın olduğunu düşünüyorum. Bir kullanıcı arayüzü gerçekten temiz görünümlü ve kullanıcı için iyi tasarlanmış olabilir, ancak bir geliştiriciyim ve kodda kullanmaktan daha fazla zaman harcadığım için, kodu temizlemeye daha çok benziyorum.

  3. Kullanıcı arayüzünün arka uçtan daha fazla bir "sıhhi tesisat" olduğunu hissediyorum, yani akıllı algoritmalar ve beyninizi gerçekten sınırlara itmek için daha az fırsat var.

2
Kaypro II

Kullanıcı arayüzünden nefret etmiyorum, bazı kullanıcı arayüzü çerçevelerinden nefret ediyorum. Örneğin. 10 yıldır .NET programlıyorum. Web uygulamaları oluşturma çerçeveleri mükemmeldir (ASP.NET WebForms ve ASP.NET MVC). Ama masaüstü uygulamaları yazmak için çerçeveler, bunlardan hoşlanmıyorum (WinForms ve WPF).

Bu bakımdan, GUI uygulamaları yazmak, sevmediğim çerçeveleri kullanmanın bir yönüdür.

Başka bir yönü daha var. Genellikle "kurumsal" tarzı uygulamalarla, yani bir masaüstü uygulamasının bir sunucudan veri alması gereken uygulamalarla çalışırım. Bu durumda, bir formattan diğerine çok fazla veri dönüşüm katmanı vardır ve gerçekten çok sıkıcı olur.

Örneğin. uygulama bir dizi DTO nesnesi üzerinden bilgi alır. Uygulama daha sonra verilerin kendi model temsilini oluşturur (sunucuda oluşturulan aynı etki alanı sınıflarını yeniden kullanmaz). Model sınıfları, modeldeki özellikleri gösteren bir görünüm modeli (WPF MVVM modelinde) tarafından tüketilir.

Bu, aynı verilerin farklı sınıflar tarafından temsil edildiği çoğu kez. Ve bu sıkıcı oluyor. Ancak bu, bu tür masaüstü uygulamalarına özgü bir sorundur.

Bu tür uygulamalarda, bir istemciden başka bir istemcide hemen güncelleme yapmak için nasıl değişiklik alabiliriz gibi ilginç zorluklar da vardır.

2
Pete

Kullanıcı arayüzü üzerinde çalışmayı seviyorum. Bu benim için her zaman doğru değildi, ancak son birkaç yıldır daha iyi hale geldiğim için UI çalışmasından zevk aldım. Bazı geliştiricilerin bir stil sayfasına veya bir renk paletine yakın olmasına izin verilmemesi gerektiğini biliyorum. Kesinlikle farklı bir beceri seti ve herkesin sahip olmadığı.

2
Marcie

Dürüst olmak gerekirse ben en iyi GUI araç seti bulma sonra aslında ins ve çıkışları öğrenmek biraz bir PITA olduğunu ... üniversitede çok fazla UI şeyler öğrenmek ve bir acemi im yani bahsetmiyorum ...... ya ..

1
user6791

Daha önce belirtilenlerin ötesinde (onu kodlamak sıkıcı, sıkıcı, sinir bozucu bir iştir ve tasarım genellikle fikirlerinin bunları uygulamaya çalışanlar için hangi sorunlara neden olduğu konusunda hiçbir fikri olmayan biri tarafından yapılır), önemli bir faktör ne yapmanız gerektiği konusunda fikirlerini arka uç için yaptıkları kadar sürekli değiştiren insanlarla çalışmak zorundasınız. Sonuç olarak, hareketli bir spesifikasyona karşı daha fazla çekim yapıyorsunuz ve bu insanlar da nitpickers olma eğilimindedir. Kelimenin tam anlamıyla kullanıcı arabirimleri başarısız testler var çünkü bir bileşen olması gerektiğini düşündüm test kişi konumu 1 piksel kapalı idi. İşe yaradı mı? Evet. İyi mi görünüyordu? Evet. Ama pikselleri saymaya başladı ve bir şey geri kalanıyla tek bir pikseldi, bu yüzden yeniden çalışma için geri gönderdi.

1
jwenting

Madalyonun her iki tarafında da çalıştım, yani UI tasarımı ve arka uç kodu, madalyonun her iki tarafının da temelde aynı şey olduğunu buldum.

Günden güne yaptığınızdan farklı gereksinimler her zaman gelmez ve şimdi tüm hizmetlerin CRUD etrafında döndüğü çağda sıkıcı hale gelir.

Her neyse, ön ucun kodlanması, temelde ön uç tasarımında deneyimsiz bir eli vidalayan daha iyi etkileşim ve çılgın dinamizmlere izin verir. Şahsen ön uçta zor yolu öğrendim ve rahatça ön uç tasarımının çok daha ilginç ve zorlu olduğunu söyleyebilirim.

1
Remi

Birkaç nokta daha:

1) UI Tasarımını test etmek daha zor olabilir, bu düğmenin ne yapması gerektiğini kontrol edebileceğinizden emin olabilirsiniz, ancak kullanımı kolay olup olmadığını test etmek daha zordur. Engelli biriyle kullanılabilir olup olmayacağını test etmeye ne dersiniz?

2) Birçok programcı bu konuda eğitim almamıştır ve bu konuda fazla bir şey bilmemektedir.

1
Zachary K

Gerçek şu ki, çok sayıda UI aracı/framework/API, sezgisel olmak için çok uzak, kötü, karmaşık. Javax.swing, CSS, vb ile C/C++, Win32 API ile geliştirdi Bu yana, ben nefret UI geliştirme ile uğraşmak zorunda ... Qt çerçeve kadar!

1
canardman

Bir CS öğrencisi olarak UI dışında veri yapısı, veritabanı, C++ ... öğretilir. Yani başından beri iyi değil. Eğer iyi değilseniz, nefret edersiniz.

Hem kullanıcı arayüzünü (web değil masaüstü) hem de dahili bağırsakları yapıyorum.

Birini sevdiğim veya sevmediğim miktar, alana özgü bir dil (DSL) gibi bir şey kullanarak ne kadar yapılabileceğime bağlı.

Kullanıcı arayüzünde, kullanıcılara sunduğum şey ve onlardan aldığım bilgilerin karmaşıklığı, form tasarımcıları, çok sayıda olay işleyicisi, MVC gibi tipik araçları kullanmak zorunda kalsam delireceğim. , tüm bu "son teknoloji" şeyler. Neyse ki, onlarca yıl önce bunun daha iyi bir yol olduğunu düşündüğümü keşfettim, bunun için bir DSL yapmak ve bunun içinde çalışmak. Şu anda Dinamik İletişim Kutuları olarak adlandırıyorum ve çağırdığım bir kontrol yapısına dayanıyor Diferansiyel Yürütme . İyi haber, belirli bir işlevsellik için, kaynak kodun kabaca daha az bir büyüklük sırası olması ve kullanıcı arayüzüne çok daha fazla işlevsellik eklememe izin vermesidir. Kötü haber şu ki, öğretmeye çalıştığım kadarıyla, teknolojiyi aktarmada çok şansım olmadı.

UI olmayan alanda, komut satırından kullanılabilen DSL'ler olarak başlayan ve daha sonra bir UI'nin aşılandığı bir dizi üründen ders aldım. Bu, uzman kullanıcıya UI'yi atlayabilecekleri bir şey verirken, sıradan kullanıcıya rahatlıkla kullanabilecekleri bir şey verir. (Örnekler: R, SPlus, Matlab, SAS, WinBugs.) Yani ürünümüz , uzmanlar için bir komut satırı diline sahiptir. Ayrıştırıcı, kod üreteci, ön derleyici ve çalışma zamanı modelleme motoru ile böyle şeyler geliştirmeyi seviyorum. Bunun için harcanan çaba, kullanıcı arayüzünde harcanan çabadan en az 10 daha az bir güçtür.

UI çabasının bu kadar çok olmasının bir nedeni, hala bir DSL ile yapılamayan çok fazla "tutkal" olmasıdır - veri ızgaralarını yönetme, verileri sıralamanın her türlü yolu, esneme "çatlamasına" düşen her şey saf kullanıcı arayüzü ve temel dil arasında.

Yani sorunuz "Bazı programcılar neden geliştirmenin kullanıcı arayüzünden nefret ediyor?" Sadece DSL'im olmayan "tutkal" yüzünden bundan nefret ediyorum.

1
Mike Dunlavey