GUI programcılarının diğerlerine göre aşırı bir avantajı var mı?


23

Yöneticilerin ve müşterilerin gördüklerini takdir etmeleri kolaydır.

Tasarım ilkeleri veya diğer programlama deyimleri hakkında en az bilgiye sahip, ortalama programcı olan birçok GUI geliştiricisi gördüm. Ancak, programcı etkileyici görünümlü bir kullanıcı arayüzü oluşturabiliyorsa, özellikle yönetim ve müşteriler tarafından bu eksiklikler sıklıkla farkedilmez. Öyle ki, çoğu GUI geliştiricisi, GUI'yi güzel, sürdürülemez bir kod yazma pahasına güzelleştirmek için saatler harcıyor.

Öte yandan, API'leri veya işletme işlevselliğini veya veritabanı kodunu (SQL'ler vb.) Geliştiren orta dereceli programcılar, vitrinde somut bir şey olmadığı için dezavantajdadır. Belki bir kod gözden geçiricisi veya bir mimar, kodun zarafeti, iyi tasarımı, ölçeklenebilirliği vb. İçin takdir edebilir ancak dış dünya için hiçbir şey ifade etmez. Kodunuz kırılmadan yıllarca çalışabilir, bakımı çok iyi olabilir ve iyi bir performansa sahip olabilir, ancak kaygan görünümlü bir GUI'nin yaptığı 'vay'ı asla ortaya çıkarmaz.

Kanımca bunun bir sonucu (GUI programcısının iyi temiz kod yazması için daha az motivasyon olduğunu biliyorum.

EDIT : Burada GUI programcısı ile tam teşekküllü bir web / GUI tasarımcısı değil, bir ön uç programcısı, örneğin bir java-swing programcısı demek istediğimi açıklamalıyım.

Topluluğun geri kalanı aynı fikirde mi?


6
'Aptal' kullanıcı yazı tipleri, etiketler, renkler ve her şeyi dolaşmak için istekte bulunacak olan kim acı çekmelidir? Kötülerle iyiyi al.
JeffO

@Jeff O: Çok doğru. Hiçbir kullanıcı, bir veri yapısı için ne kadar bellek ayıracağım ya da bir veritabanı tablosunun hangi sütunlarının indeksleneceği konusundaki tercihimi eleştirmedi.
dan04 22

2
Düzenlerle çalışmak zorunda kalmak (Swing, GWT, HTML, CSS gibi) bununla uğraşmak zorunda olmayan bir işkencedir ...
Uri

@ dan04: Üst düzey bilimsel kullanıcılarla çalışmayı deneyin. Çirkin kullanıcı arayüzlerini kullanmaktan mutluluk duyarlar ve yaşları veritabanı yapıları için mücadele ederek geçirirler (genellikle eski eski kodlanamayan saldırıları korumaya çalışırlar çünkü eski komut dosyalarından faydalanırlar). Grr…
Donal Fellows

Bir basçı ile bir grubun geri kalanı arasındaki fark gibi bit. Arka planda çok fazla ithalat işi yapıyorlar, ancak diğer basçılar dışında kimse fark etmiyor.
Gordon,

Yanıtlar:


21

Sanırım amacınızı anlıyorum, ancak dikkate alınması gereken zıt bir sorun olduğunu da düşünüyorum.

Temel olarak, kullanıcı arayüzü uygulamasının 'son kullanıcılar karşısında' unsuru olduğu için, kullanıcı arayüzü geliştiricilerin uygulamanın daha derin katmanlarında çalışan ekip üyelerinden daha yüksek bir görünürlükten yararlanabileceğini ileri sürdüğüne inanıyorum.

Kesinlikle daha yüksek bir görünürlük olabileceği konusunda hemfikirim. Örneğin, UI öğeleri üzerinde çalışan geliştiriciler son kullanıcılarla daha sık etkileşim kurabilir (tartışmalı, iyi nedenlerle, İnsan / Bilgisayar Etkileşimi yönüne odaklandıklarından dolayı).

Yine de, bir sorun olduğunda bile daha yüksek görünürlük sağlanabileceğini düşünüyorum. Örneğin, son kullanıcıların sorunları olmasalar bile 'GUI Sorunları' olarak bildirmeleri çok muhtemeldir.

Her şey algıdan kaybolabilir ve olgun bir kuruluş çeşitli ekip üyelerinin değerlerini, erdemlerini ve zayıflıklarını, uygulamanın hangi katmanında çalıştıklarından bağımsız olarak tanıyabilmelidir. Olgun bir kuruluş aynı zamanda 'UI geliştiricisi' ve 'iş katmanı geliştiricisi' gibi ayrımların ötesine geçmiş, belki de hepsinin ekip üyesi olduğunu, belki de farklı uzmanlıklara sahip olduklarını ancak her zaman birbirlerini bu uzmanlık alanlarında eğitmeye çalıştıklarını fark etmiş olabilir.


1
Ve çoğu şirket kimin en iyi programcının olduğunu görmek için kullanıcı anketi yapmıyor.
JeffO

1
+1. GUI üzerinde çalışıyorum ve bir 'sorun' olduğunda, gelen kutuma geliyor. Onus daha sonra sorunun kaynağının aşağıdan geldiğini ispatlamak için yanımda. GUI programcıları aynı zamanda bu güzel API'lerin saflıklarını kullanıcı gereksinimlerinin karmaşasıyla karıştırmak zorundadır.
Benjol

10

Programcılarla hiç ilgilenmeyen biri için, bu tür şeylere inanacaklarını güvenle söyleyebilirim. Arka planda çalışan iş miktarını bilmiyorlar, tek gördükleri bir sürü düğme / metin kutusu / menüler / [GUI öğesi ekle] ve düğmenin başlatılmasının başarılması için gereken hız. Yani başlangıçta, GUI insanlar daha çok sevilir.

Kişi ise yaptığı programcılar ile anlaşma, daha sonra farklı bir ısırdı. Söylediğiniz gibi, ölçeklenebilir, bakımı daha kolay, bir algoritmayı yeniden yazdırarak daha anlamlı veya başka bir bakım türü görev yapıp yapmadığınızı fark edeceklerdir. Bu tür bir insan tüm programcılara eşit şekilde bakardı.

Ortada, ne yaptığınıza bağlı. Burada hız burada önemli bir faktör haline gelir. Bir formun işlenip depolanmasının ne kadar sürdüğünü gösteren kayıtlardan önce ve sonra gösterebilirseniz ve bir iyileştirme varsa, eşittir. Uygulamayı 100 istemciden gelen yük altında gösterip onlara sunucunun erimesini gösterebilir ve ardından her şeyin yolunda olduğu yerde kendi versiyonunuzu gösterebilirsiniz. Vb.


Kısacası, kişiye ve ne yaptığınıza bağlı.


8
Sadece son 5 yılını altyapı işleri (SIP yığınları) üzerinde çalışarak geçiren biri olarak, +1 - çoğu insan ne yaptığınızı bilmiyor ve özellikle çalışmayan bir şey dışında görünür bir şey yok . Tesisatınız hakkında ne kadar bozarsınız?
Frank Shearar

6

Şirketimdeki "UI uzmanı" olarak (yalnızca tasarımın değil, tüm UI geliştirmelerinden sorumlu olan kişi), hikayenin bir bölümünü özleyebileceğinizi düşünüyorum. Kullanıcı Arayüzü'nün sorumlusu iken ben de arka uçta, veri tabanlarında vb. Çalışıyorum. Her şeyi yapıyorum (biz küçük bir ekibiz). [C # ve ASP.Net WebForms geliştirme]

Her şeyden önce, evet, teknik olmayan kişilerin bir GUI geliştiricisinin çalışmasını takdir etmesi çok daha kolaydır çünkü insanların karşısında olan budur. Teknik olmayan kişilere, GUI uygulamasıdır . Dezavantajı GUI'nin de bir şeyler ters gittiğinde suçlanan ilk kişi olmasıdır.

İkincisi, ön uçları geliştirmek benim için arka uçtan çok daha zorlayıcıydı (belirsiz / karmaşık algoritmalar bir yana). Korunacak çok şey var, vatansız (bizim uygulamalarımız Web’de), tarayıcılar tutarlı davranmıyorlar (JavaScript kütüphaneleri bir nimettir) vb. Bu karmaşıklığın çoğunun sahip olduğum çerçeveden kaynaklandığını umuyorum. (ASP.Net WebForms) ile çalışmak ve tüm zor işleri gelecekte bir sorun olmayacak.

Genel olarak, UI sorunlarını çözmede arka uç sorunlardan çok daha fazla zorluk yaşadım.


5

İki nedenden dolayı GUI geliştirmeden nefret ediyorum,

  1. Grafiksel sanatsaldan daha mantıklıyım ve UI'm bunun sonucu olarak her zaman acı çekiyor.
  2. Kullanıcı arayüzü mantığa dayalı olmadığından, birim testleri hemen hemen hiçbir şekilde yazmak imkansızdır.

Ancak günün sonunda, kodumun, son kullanıcı tarafından (belki bir proje sponsorunun aksine), genellikle çalıştığı gibi UI’da vızıldayan vasat bir geliştiriciden daha iyi anlaşılacağını düşünüyorum. .


4

@ TheLQ'nin cevabını biraz (belki) genişletmek için "izleyiciye" de bağlı olduğunu düşünüyorum.

Programlama altyapısı olmayan birkaç üst düzey yönetici / danışman ile bazı deneyimlerim oldu. Bazıları program yapmadıklarını takdir eder, ancak krom ve jant kapaklarının motor ve şasi kadar önemli olduğunu anlar.

Ve UI cızırtı dışında herhangi bir metriği umursamayan bazı üst düzey yöneticiler / süpervizörler ile deneyimim oldu. UI odaklı geliştiricilerin daha önemli olduğu yerlerde bile olduğunu belirtmek.

IMHO, hepimiz biliyoruz ki bir perdeyi cilalayamazsınız ve hızlı, güvenilir ama çirkin bir uygulama hem iyi görünen hem de iyi çalışan bir uygulamadan çok daha kötü olacaktır. Her şey seyircinin gözünde ve bir dereceye kadar, sizin gibi aynı niteliklere sahip kişiler için çalışarak, istediğiniz ışıkta görünme gücüne (ne yaparsanız yapın) sahip olursunuz.

EDIT: Daha düşük seviyeli ürünler üzerinde çalışmaktan daha rahat hisseden biri olarak, UI ekibi kadar sıkı çalıştığınız zaman bıktım ve demoda övülen cila oldu, sistem aslında değil " sadece işe yaradım ". Ancak dediğim gibi, şefimin tüm alanlarda çalışmanın gerekli olduğunu bildiğini biliyorum.


3

UI geliştiricilerinin "küçük" geliştiriciler olduğuna dair genel bir varsayım olduğunu düşünüyorum. Sadece bir UI adamının kıdemli olarak kabul edildiği bir dava hakkında düşünebiliyorum.

Bununla birlikte, kullanıcı arayüzünün uygulamalarımızın diğer bölümlerinden daha zor olduğunu düşünüyorum. Ve UX tasarımı hakkında konuşmuyorum, kodlama hakkında konuşuyorum. Yüzlerce olmasa da, onlarca senaryoyu hesaba katmamız gereken yerlerde kaç tane kod yazıyoruz? Sadece bir ekranın yeniden boyutlandırılması, birkaç düzine öğeyle ne olması gerektiğine karar vermeniz gerektiğinde bazen büyük bir acıya dönüşebilir. Bu, öncelikle “800x600'ü desteklememiz gerekir” diyen yönergeleriniz ve ardından HD çözünürlüklerden başka bir şey kullanmayan UX tasarımcıları olduğunda ortaya çıkar.

Bu yüzden, daha fazla maruz kalma nedeniyle daha fazla iyilik yaparlarsa, muhtemelen haketmektedirler. Genellikle, alıcı taraf, iyi alıcı taraftan daha sık yanlış taraftadır.


3

Genellikle bir GUI programlayıcısının programcı zincirinin altında olduğu fikri ortaya çıkmaktadır. VS'deki bir düğmeyi forma sürükleyip bırakmak ne kadar zor olabilir? Ne, bunu programlaman bir hafta mı sürecek? Birkaç çubuk çiziyor. Bu yüzden, GUI programcılarının, düğme sürükleyicileri olduğu gibi, korkunç kodlar yazmaları gerektiği fikrini de şaşırtmadım.

GUI programlamanın bazı benzersiz zorlukları vardır. Veri yüklenirken GUI'yi etkin tutmak için çoklu okuma. Bu iş parçacığı güvenli ve uygun kod yol açar. Performans çok önemlidir. Kimse uygulamanın kontrolünü tekrar ele geçirene kadar iki dakika beklemeyi seviyor. Yeniden kullanılabilirlik de büyük bir sorun haline geliyor. On tane benzer ekran yazmak zorunda kalırsanız, kodunuzu iyi yapılandırmanız gerekir. Bu daha iyi kod yol açar. Ve elbette iyi bir GUI oluşturmak kendi başına bir zorluktur.

Ancak bazı insanlar için uygulamanıza bir düğme sürükleyecektir. Tıpkı bazı insanlar için olduğu gibi, iş mantığı “bir mesajı ayrıştırıp DB'ye yerleştirmekten” başka bir şey değildir.


2

Bence onlar açıktır. Belki de birinci sınıf dev evler muaftır, ancak çoğu değildir.

Yöneticiniz size geçen ay neler yaptığınızı sorduğunda, harika bir grafik kullanıcı arayüzü göstermek kolaydır. Harika bir API göstermek zor. Çok zor. API serinlik sadece gerçek kullanımla ortaya çıkar - bir bakışta takdir edilemez.


1

Dahili sistemlerdeki her türlü korsanlık ve kısayollardan kurtulabilirsiniz. GUI ile uğraşırken bu özgürlüğe sahip değilsiniz. Dahili API'nizin tutarsızlığı olabilir ve kodlayıcıların bununla başa çıkmasını beklersiniz çünkü düzeltilmesi çok zor. Müşterilerinizi de aynı şeyi yapmaya çalışamazsınız. Bu nedenle, bir anlamda, kullanıcının görünür bileşenleriyle uğraşması gereken insanlar aslında daha yüksek bir standarda uymak zorundadır.


1

Evet diyeceğim, basit bir nedenden dolayı: iPhone. Kaygan arayüzünden dolayı fantastik olduğunu düşünmek için konuştuğum herkes, ancak altındaki tüm işleri mümkün kılmak için hayal edebiliyorum.


1

İzleyiciye göre değişir. Pek çok finansal analistle çalışıyorum ve onların iyi bir GUI tasarımı fikri, bir formda sıkıştırabileceğiniz kadar çok alana sahip olanı. Cidden, 75 - 100 konuşuyorum. Her zaman daha fazlasını isteyen veri bağımlılarıdır. Geçenlerde, yüklemesi 45 saniye alabilen birkaç saklı yordamın performansını geliştirdim (zamanın başlangıcından beri ağırlıklı ortalamaları hesapla). 30 saniyeye indirdim; Ben vay düşünüyorum, zamanın üçte birini kesmiş; özgeçmişimdeki bir satır öğesi olmalı. Hiç kimse fark etmedi bile. Üzerinde çalışmaya devam etti ve 15-20'ye ulaştı. Göze çarpan değişiklik. Herkes çok mutluydu. Ben hala GUI'nin bir abominasyon olduğunu düşünüyorum ve bu işe yaramaz pisliği çıkarırsak 2 saniye içinde yüklenir.

Bu nedenle, kullanıcıların sizi gerçekten sevmesini istiyorsanız, en iyi kullanıcı arayüzünün hiç bir arayüz olmadığını unutmayın (keşke bunu kim hatırladıysam). Tüm bu verileri görmek istedikten sonra, analistler, onların tüm veri girişlerini yapanların kendileri olduklarını farkettiler - korku.


1

Uygulamanın kullanıcı arayüzü bölümlerini test etmek bir kabustur.

Etrafındaki her insan, bir tavsiyede bulunma veya bunu nasıl yapmanız gerektiğine dair bir talepte bulunma konusunda kendini yetkin hissediyor.

Sistem iyi çalıştıktan sonra, daha sonra birisi yanlışlıkla içinde erdemi hesaba kaçıran birini hatırlasa bile, kimse kimin ne yaptığını hatırlamayacak.

Ancak herhangi bir hata görülürse ( bazıları her zaman olur), mahkum edilecek ilk kişi GUI programcısı olacaktır, Kullanıcı sadece diğerlerini görmemiş!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.