it-swarm-eu.dev

Proč někteří programátoři nenávidí UI část vývoje?

Spousta programátorů, které jsem potkal, vždy říká, že „On není UI chlap.“ Skutečnost je taková, že v dnešní době vývoj, ať už web, Windows, Linux, OSX nebo jakýkoli jiný typ vývoje, nyní zahrnuje software s dobře vypadajícím uživatelským rozhraním. Proč tolik vývojářů zřejmě nemá rádi práci s uživatelským rozhraním?

54
zero95teen

Nejsem ani uživatel UI. UI dělám své vlastní projekty, ale v práci s tím nemám nic společného - moje práce je ve střevech aplikace, ne na frontendu.

Kromě toho si myslím, že je to víc nuda než nenávist. Navrhování uživatelského rozhraní je těžká a náročná část. Implementace je většinou grunt práce. Existuje jen velmi malá výzva nebo inovace v tom, jak lze implementovat uživatelské rozhraní, a je jen tolikrát, že jeden může dát zaškrtávací políčko na obrazovku, než se trochu mentální. A to se ani nedotýká trávení hodin zarovnání pixelů „jen tak“.

102
Adam Lear

Vytvoření dobrého uživatelského rozhraní vyžaduje spoustu různých dovedností, než psaní nějakého backendového kódu.

Požadavky na back-end lze obvykle specifikovat jako černou skříňku, x jde dovnitř a očekává se, že y by mělo vyjít. Aby to fungovalo, vyžaduje implementaci logiky a můžete programaticky otestovat, zda to funguje nebo ne.

Chcete-li vytvořit dobré uživatelské rozhraní, musíte zvážit použitelnost, vizuální design, rozvržení a věci, jako jsou barevná schémata. Mít nějakou uměleckou tvořivost je zde bonus, a mnoho programátorů nemá pocit, že to mají. Logickému mozku se řešení problému uživatelského rozhraní může zdát subjektivní, protože neexistuje žádná správná odpověď nebo neexistuje snadný způsob, jak potvrdit, že se provádí „správně“.

Myslím, že spousta programátorů, kteří nemají mnoho zkušeností s uživatelským rozhraním nebo příliš mnoho výzkumů, si neuvědomují, že za dobrým designem uživatelského rozhraní existují jak pravidla, tak věda jak z hlediska použitelnosti, tak z hlediska designu (např. Barva teorie).

Někteří programátoři samozřejmě nemají s tímto aspektem problém, ale nenávidí ho, protože mnoho uživatelských rozhraní se prostě nudí kódováním. Mohou se skládat z mnoha opakujících se prací, jako jsou stránky formulářů pro admin stránky, kde prostě musí být funkční a neexistuje žádná výzva k designu.

55
Alb

Lidé prostě mají různé zájmy. Někteří programátoři se více zajímají o datové struktury a algoritmy, jiní o architekturu, jiné o použitelnosti a designu uživatelského rozhraní nebo o jakoukoli kombinaci těchto a jiných výklenků. Každý z nich vyžaduje různé dovednosti a různé způsoby myšlení o problému. Pokud se vám líbí matice a šrouby programování na nízké úrovni, možná vám nebude záležet na tom, jak si uživatel myslí, nebo naopak.

Osobně spadám do druhého tábora - raději bych navrhl uživatelské rozhraní než složitý algoritmus. Je to jen věc, kterou mi připadá zajímavá.

18
Travis Christian

Zda je daný design uživatelského rozhraní dobrý nebo špatný, je dosti subjektivní, což si myslím, že programátoři obecně nepovažují za lákavé. Několik desetiletí úsilí kvantifikovat a kvalifikovat dobré techniky uživatelského rozhraní pomohlo vytvořit některá obecná pravidla, která lze použít, ale častěji než ne určovat, zda je uživatelské rozhraní nějaký dobrý, vyžaduje hodně testování A/B a další pozorování uživatelů techniky.

I když existuje určitě subjektivita v programování, obvykle můžete poukázat na nějakou formu objektivních důvodů, proč je jedna volba lepší než jiná: rychlost provádění, požadavky na paměť, flexibilita pro splnění pravděpodobných budoucích potřeb, postupy, které se prokazatelně osvědčily v minulost atd. Obrana dané volby uživatelského rozhraní - a tím i samotné rozhodnutí - se obecně degraduje na „Líbí se mi“, což je zcela jiný druh argumentu, který podporuje.

15

Osobně si užiji vývoj uživatelského rozhraní, protože nejsem v tom dobrý. Existuje obrovský prvek psychologie uživatelů, kterému prostě nerozumím. Myslím, že mým největším problémem je, že se nemůžu dostat do uživatelských bot. Nevím, jak vytvořit intuitivní rozvržení z velké části proto, že nevím, co je pro uživatele intuitivní, ani nevím, jak věci vypadat hezky.

Nemusím nutně myslet, že někteří programátoři nenávidí navrhování UI, stejně jako nenávidí dělat věci, ve kterých nejsou dobří. Stává se, že existuje mnoho vývojářů, kteří nejsou ve vývoji uživatelského rozhraní dobří.

13
Pemdas

Problém s designem uživatelského rozhraní je v tom, že každý má názor ... A neexistuje žádná správná nebo nesprávná odpověď. Vývojáři na druhou stranu milují černobílé a logické. V jakékoli velikosti společnosti se všichni dohodnou, že 1+1=2, ale zeptejte se, které písmo usnadňuje čtení (Comic Sans Obviously)... připravte se na povodeň. Deset tisíc různých odpovědí a každý má pravdu, protože každý je jiný.

11
MVCylon

Jako vývojář, který se opravdu baví pracovat na uživatelském rozhraní (konkrétně jsem udělal svůj spravedlivý podíl na webdesignu), oceňuji, když někdo, kdo nemá sadu dovedností, z toho nebude.

Vývoj vyžaduje schopnost držet spoustu dat ve vaší mysli a vypořádat se s mnoha najednou. Návrh uživatelského rozhraní vyžaduje schopnost co nejmenšího varu, aniž by došlo ke snížení jeho integrity. Já láska výzva; a krčím se, když vidím, jak někdo vytváří uživatelské rozhraní, které je nezvládnutelné údaje o zdi na obrazovce. (Jsem také totální geek, pokud jde o rozvržení, teorii barev atd.)

Na druhou stranu, já nenávidím věci nízké úrovně. Nikdy se nedotknu kódu pro ovladače, jádra nebo cokoli jiného podobného: otřásl se: Nechám to na „chlápcích jiných než UI“ a jsem rád, že to někdo dělá rád, nebo by se to nikdy nestalo.

7
keithjgrant

Myslím, že to záleží na tom, že většina programátorů používá levou část svého mozku.

Dobrý zdroj pro další čtení tohoto předmětu.

enter image description here

6
Amir Rezaei

Vývoj uživatelského rozhraní je složitý, protože získáte příliš mnoho vstupů od špatných lidí. Všichni jsou odborníky na grafický design. Nejsou tam, kde je možné najít, když chcete něco vědět.

Neví, co chtějí, ale vědí, když to vidí, nemají chuť a ti, kteří mají rozhodovací pravomoc, aplikaci stejně nepoužijí, ale jsou si jisti, že by měla být zelená. Postupujete podle pokynů pro dobré uživatelské rozhraní, jako je omezení počtu polí ve formuláři a dostanete žádost o přidání dalších 50 polí, protože všechna tato pole „potřebují“ a mít je na samostatných kartách je příliš velké úsilí. Víte, stejně jako Excel. Rolníci!

To si nemůžete vymyslet. Seděl jsem na schůzce, kde dva nejlepší lidé v účetním oddělení (asi 500 000/rok platu) pro velkou advokátní kancelář strávili půl hodiny dohadováním se nad štítkem na fakturační webové stránce, který používají právníci. To mělo právníkům usnadnit pochopení. Proč se prostě nezeptat právníků? Příliš snadné. Oddělení IT se tedy dostane do pole 50 telefonních hovorů od právníků, kteří chtějí vědět, že WTF „Zůstatková částka vyúčtování za netto“ je a proč je to na jejich časovém formuláři.

6
JeffO

Někteří lidé mají rádi brokolici, jiní ne. Možná to budeme muset jíst, ale to se nám nemusí líbit a nebudeme si ho užívat, když ho sníst. Nejen to se budeme vyhýbat tomu, abychom to museli jíst tak, jak jsme jen mohli.

Existuje spousta dalších věcí, které kódují, než jen uživatelské rozhraní. Webové služby, služby Windows, vestavěné (ne moc uživatelského rozhraní v mikrovlnné troubě), abychom jmenovali jen několik příkladů.

5
Muad'Dib

Může to být proto, že - v některých případech - nástroje, které jsou výslovně koncipovány tak, aby vám pomohly namísto slámy nasát mrtvé dětské opice přes slámu.

4
s.m

Ve vývoji uživatelského rozhraní jsou určité věci, které je obtížné napravit.

Rozložení je jedním z nich. Vytvářím uživatelská rozhraní již více než 15 let a dosud jsem nepřišla s dobrým řešením správy rozvržení.

Dalším je směrování událostí - i když se jedná o architektury MVP a věci pověřené rámci, tvrdím, že nejsložitější uživatelská rozhraní mají problémy s směrováním událostí - což by mohlo být objeveno, pokud by je některý z testovacích rámců mohl dobře řešit.

4
Uri

Vím, že pro mě jsem nenáviděl UI dev, protože jsem zjistil, že je to velmi únavné a pomalé, zejména psaní rozvržovacího kódu, který umisťuje věci do podoby nebo winow. Nyní s nástroji návrháře uživatelského rozhraní, jako je Forms Designer ve Visual Studio, jsem to skoro žijte si. Další důvody, proč to nenávidět, jsem slyšel od ostatních: „je to hloupé“, „vždy se to příliš mění“, „není to dost náročné“, „je to nudné/nudné“.

Proč nemají všichni šachoví hráči rádi navrhování šachovnic a kousky, se kterými hrají?

Není divné, že to někteří lidé nemají rádi ... je to divné, že očekáváte, že bychom měli.

3
user18161

Nejsem velkým fanouškem vývoje uživatelského rozhraní z těchto důvodů:

  1. Jako vývojář máte méně svobody vytvářet: Zákazník může vidět a mít názory na každou malou stránku uživatelského rozhraní, na kterou musíte reagovat. Dostanete žádosti jako: změnit barvu tohoto; přesuňte tam tlačítko; nevadí, přesuňte to zpět. Zadní kód je zřídka viditelný.

  2. Uživatelské rozhraní je přehlednější, zatímco zadní část je více „platonická“. I když jsem viděl ošklivé nepořádky back-end kódu, myslím, že je běžnější, aby byl čistý (z hlediska kódu) než UI kód. Uživatelské rozhraní může být skutečně čisté a dobře navržené pro uživatele, ale protože jsem vývojář a trávím více času v kódu než jeho používáním, chci více vyčistit kód.

  3. Mám pocit, že uživatelské rozhraní je spíše „instalatérské“ než back-end, tj. Je tu méně příležitostí pro chytré algoritmy a opravdu tlačí váš mozek na hranici limitu.

2
Kaypro II

Nemám tolik nenávisti UI práce, jako nenávidím některé UI rámce. Např. Naprogramoval jsem .NET na> 10 let. Rámce pro vytváření webových aplikací jsou skvělé (ASP.NET WebForms a ASP.NET MVC). Ale rámce pro psaní desktopových aplikací, no, nemám je rád (WinForms a WPF).

V tomto ohledu je psaní aplikací GUI spíše aspektem používání rámců, které se mi nelíbí.

Existuje ještě jeden aspekt. Často pracuji s aplikacemi „podnikového“ stylu, tj. S aplikacemi, u nichž stolní aplikace potřebuje přijímat data ze serveru. V tomto případě existuje tolik vrstev převodu dat z jednoho formátu do druhého, takže je to opravdu nudné.

Např. aplikace přijímá informace prostřednictvím řady DTO objektů. Aplikace poté vytvoří vlastní reprezentaci dat podle modelu (nepoužitím stejných tříd domén, které byly vytvořeny na serveru). Třídy modelu jsou spotřebovány zobrazovacím modelem (ve vzoru WPF MVVM), který odhaluje vlastnosti modelu.

To je mnohokrát, že stejná data jsou reprezentována různými třídami. A to se nudí. Jedná se však o problém specifický pro tento typ desktopové aplikace.

V tomto typu aplikace existují také zajímavé výzvy, například jak získáme změny od jednoho klienta a okamžitě jej aktualizujeme u jiného klienta.

2
Pete

Rád pracuji na uživatelském rozhraní. Nebylo to pro mě vždy pravda, ale moje potěšení z práce s uživatelským rozhraním se zvětšilo, když jsem se v posledních několika letech zlepšil. Vím, že někteří vývojáři by neměli být povoleni poblíž šablony stylů nebo barevné palety. Je to určitě jiná sada dovedností, a ne každý ji má.

2
Marcie

Upřímně jsem zjistil, že nalezení nejlepšího GUI toolkitu, pak se vlastně poučení o tom, co je a jakési, je docela PITA ... nemluvě o tom, že se příliš nenaučíte tolik UI věcí na vysoké škole a jsem nováček, takže ...... ya ..

1
user6791

Kromě toho, co již bylo uvedeno (je to únavné, nudné, frustrující práce na jeho kódování a návrh obvykle provádí dopředu někdo, kdo nemá ponětí, jaké problémy jeho myšlenky způsobují těm, kteří se je snaží realizovat), důležitým faktorem je, že Musím neustále spolupracovat s lidmi, jejichž představy o tom, co byste měli dělat, se mění neustále, daleko víc, než to dělají pro backend. Výsledkem je, že ještě více střílíte na pohybující se specifikaci a tito lidé mají tendenci být také dusiči. Doslova mám testy selhání uživatelských rozhraní, protože komponenty byly 1 pixel od místa, které si osoba, která to testovala, myslela, že by to mělo být. Fungovalo to? Ano. Vypadalo to dobře? Ano. Začal však počítat pixely a něco bylo o jeden pixel mimo řádek se zbytkem, takže ho poslal zpět k přepracování.

1
jwenting

Poté, co jsem pracoval na obou stranách mince, tj. UI designu a backend kódu, jsem zjistil, že obě strany mince jsou v podstatě stejné věci.

Požadavky, které se liší od toho, co děláte každý den, nepřicházejí stále a nyní v době, kdy se všechny služby točí kolem CRUD, se to stává nudným.

Každopádně, kódování frontendu umožňuje lepší interakci a šílené dynamiky, které v podstatě šroubují nezkušenou ruku v designu frontendu. Osobně jsem se naučil tvrdě v frontendu a mohu pohodlně říci, že navrhování frontendu je mnohem zajímavější a náročnější.

1
Remi

Několik dalších bodů:

1) UI Design může být těžší testovat, ujistěte se, že můžete zkontrolovat, zda toto tlačítko dělá to, co by mělo, ale testování, pokud je snadné použití, je těžší. A co testování, pokud bude použitelné u někoho s postižením?

2) Mnoho programátorů na to není vyškoleno a o tom toho moc nevím.

1
Zachary K

Faktem je, že spousta nástrojů UI/framework/API je špatná, složitá, daleko od intuice. Vyvinul jsem s Win32 API v C/C++, s javax.swing, CSS atd. Od té doby se nenávidím zabývám vývojem uživatelského rozhraní ... Do rámce Qt!

1
canardman

Jako student CS se budete učit datové struktuře, databázi, C++ ... kromě UI. Takže budete v tom od začátku není dobrý. Pokud nejste v tom dobří, nenávidíte to.

Dělám UI (desktop, ne web) a vnitřní vnitřnosti.

Částka, která se mi líbí nebo nelíbí, záleží na tom, kolik toho dokážu udělat pomocí něco jako jazyk specifický pro doménu (DSL).

V oblasti uživatelského rozhraní je to, co představuji uživatelům, a složitost informací, které od nich získávám, taková, že bych se zbláznil, kdybych musel používat typické nástroje, jako jsou návrháři formulářů, spousta obsluhy událostí, MVC , všechny ty „nejmodernější“ věci. Naštěstí jsem před desítkami let objevil, co si myslím, že je lepší způsob, jak pro to udělat DSL, a pracovat na tom. V současné době to nazývám Dynamic Dialogs a je to založeno na kontrolní struktuře, kterou volám Diferenciální provedení . Dobrou zprávou je, že pro danou funkčnost je zdrojový kód zhruba o řád méně menší, což mi umožňuje vložit do uživatelského rozhraní mnohem více funkcí. Špatnou zprávou je, že i když jsem se ji pokusil naučit, neměl jsem při přenosu technologie tolik štěstí.

V doméně mimo UI jsem si vzal ponaučení z řady produktů, které začínaly jako DSL použitelné z příkazové řádky, na které bylo později UI naroubováno. To dává odbornému uživateli něco, kde může obejít UI, zatímco příležitostnému uživateli dává něco, co může náhodně použít. (Příklady: R, SPlus, Matlab, SAS, WinBugs.) Takže náš produkt má jazyk příkazového řádku pro odborníky. Miluji vyvíjení takových věcí pomocí analyzátoru, generátoru kódu, předkompilátoru a modulu pro modelování run-time. Úsilí vynaložené na to je alespoň o 10 méně než úsilí vynaložené na uživatelské rozhraní.

Jedním z důvodů, proč je snaha uživatelského rozhraní tolik, je stále spousta „lepidla“, které nelze udělat pomocí DSL - správa datových sítí, nejrůznější způsoby třídění dat, vše, co spadá do zívající „trhliny“. mezi čistým uživatelským rozhraním a základním jazykem.

Takže vaše otázka zněla: „Proč někteří programátoři nenávidí UI část vývoje?“. Nesnáším to jen kvůli tomu „lepidlu“, pro které nemám DSL.

1
Mike Dunlavey