通常,在完成了一件網(wǎng)頁設(shè)計(jì)后,設(shè)計(jì)師的無知都會(huì)顯露無遺而備受指責(zé)。他們把創(chuàng)建網(wǎng)頁代碼的繁重工作都留給了程序員們。這種現(xiàn)象不只出現(xiàn)在網(wǎng)絡(luò)開發(fā)行業(yè),在軟件及游戲開發(fā)業(yè)也是如此。
殘酷的事實(shí)就是:開發(fā)進(jìn)度可能會(huì)因設(shè)計(jì)師而停滯不前。為了追求最佳效率,設(shè)計(jì)師不僅需要描描畫畫,還需要能把它做出來!本文中,我想與讀者分享一些為什么設(shè)計(jì)師需要學(xué)習(xí)編寫代碼的理由。
做現(xiàn)實(shí)可行的設(shè)計(jì)
有了一個(gè)最終產(chǎn)品將如何實(shí)現(xiàn)的明確印象,設(shè)計(jì)師將拿出更多實(shí)際可行的概念。作為開發(fā)進(jìn)程中不可或缺的一份子,設(shè)計(jì)師肩負(fù)著確保他們的設(shè)計(jì)能夠順利轉(zhuǎn)移到網(wǎng)絡(luò)介質(zhì)上,同時(shí)還要考慮其可用性,網(wǎng)頁易讀性和可實(shí)現(xiàn)性。一個(gè)對(duì)用戶友好的網(wǎng)站不僅有簡潔清晰的瀏覽順序邏輯,還向用戶提供一切所需的信息而不會(huì)顯得咄咄逼人或是雜亂無章。想要知道一種 Web 布局是否可行的唯一途徑就是親自去了解如何建立一個(gè)網(wǎng)頁。
使溝通更輕松
在幾乎所有的設(shè)計(jì)與實(shí)現(xiàn)各自獨(dú)立的產(chǎn)品中,設(shè)計(jì)組和實(shí)現(xiàn)組從沒有滿足過對(duì)方的期望,尤其是那些無形的產(chǎn)品,比如網(wǎng)站,軟件和游戲。這通常歸結(jié)于產(chǎn)品的期望和產(chǎn)品可行性的相互妥協(xié),目前看來,這是難以完美統(tǒng)一的。解決之道是:設(shè)計(jì)師應(yīng)該親身嘗試設(shè)計(jì)作品的實(shí)現(xiàn),以避免溝通中的混淆,誤解和誤傳。
方便的迭代開發(fā)過程
一個(gè)實(shí)踐中的設(shè)計(jì)不應(yīng)是絕對(duì)的。我的意思是,設(shè)計(jì)應(yīng)該是靈活友好的,能夠在修改以迎合系統(tǒng)技術(shù)限制的同時(shí)不扭曲其原有內(nèi)涵。這些重復(fù)但必要的改動(dòng)只能由原設(shè)計(jì)師來實(shí)現(xiàn)。一個(gè)設(shè)計(jì)師/開發(fā)者能夠比開發(fā)人員把設(shè)計(jì)重提到設(shè)計(jì)師手里進(jìn)行改動(dòng)更加高效。而且設(shè)計(jì)師和開發(fā)者之間——事實(shí)上經(jīng)常如此——會(huì)產(chǎn)生摩擦。
更好更和諧的結(jié)果
我常常喜歡把軟件,網(wǎng)絡(luò)或是游戲開發(fā)想成是管弦樂,而設(shè)計(jì)師是作曲家,開發(fā)者是樂團(tuán)的指揮家。想象一下二者是同一個(gè)人將會(huì)怎樣?交響曲將會(huì)是令人驚嘆的,迷人的,純正的!不僅是大師的神作,而且還是其本人親自指揮的!
縮短開發(fā)時(shí)間
設(shè)計(jì)師同時(shí)充當(dāng)程序員的角色意味著設(shè)計(jì)和編碼的進(jìn)度即使不是同時(shí)的也是連續(xù)的。結(jié)果就是開發(fā)周期的縮短——誰會(huì)不關(guān)心效率呢?
設(shè)計(jì)師更加市場化
現(xiàn)代的設(shè)計(jì)師需要提升自身的能力以保持個(gè)人價(jià)值,有一套技能是遠(yuǎn)遠(yuǎn)不夠的,我們往往需要戴著不同的頭銜:設(shè)計(jì)師,前端開發(fā)者,文章作者和項(xiàng)目經(jīng)理。
通過學(xué)習(xí)實(shí)現(xiàn)你自己的設(shè)計(jì),而不是讓設(shè)計(jì)成為開發(fā)者手中的孤兒——你提升了自身價(jià)值。畢竟,在簡歷中提到設(shè)計(jì)和編碼技能不會(huì)有壞處。相反,在這個(gè)金融危機(jī)時(shí)代的企業(yè)重組(參見:大規(guī)模裁員)和縮減開支的環(huán)境下,還能夠強(qiáng)調(diào)一個(gè)人的重要性而免遭解雇。
然而,即使有這么多的理由支持設(shè)計(jì)師學(xué)習(xí)編寫代碼,這里還是有反對(duì)的聲音。
引用 Lukas Mathis 的一篇有爭議性的文章“設(shè)計(jì)師不是程序員”(注1)
如果設(shè)計(jì)師實(shí)現(xiàn)自己的設(shè)計(jì),他會(huì)受制于兩個(gè)不同的目標(biāo):代碼的整潔和良好的用戶體驗(yàn)。這兩個(gè)目標(biāo)是相互矛盾的。如果你要實(shí)現(xiàn)你自己的設(shè)計(jì),你必然會(huì)為了代碼的質(zhì)量而妥協(xié),這是不利于交互設(shè)計(jì)的。
實(shí)現(xiàn)自己設(shè)計(jì)的設(shè)計(jì)師面臨著兩個(gè)問題:他們知道一個(gè)很棒的新思路會(huì)建立混亂的代碼,他們也知道如果改進(jìn)用戶體驗(yàn),現(xiàn)有的代碼會(huì)被打亂。這兩者相互矛盾,因?yàn)橛脩趔w驗(yàn)都在于小的細(xì)節(jié),而這些小細(xì)節(jié)最終毀于他們的不忍心使代碼變得混亂。
這恰如其分的總結(jié)了“Web 開發(fā)純化者”們所采取的強(qiáng)硬立場。他們是守舊派,倡導(dǎo)在設(shè)計(jì)和開發(fā)之間劃清界限。顯然,設(shè)計(jì)師為人類創(chuàng)作,開發(fā)者為機(jī)器創(chuàng)作。因此,用戶體驗(yàn)設(shè)計(jì)師們應(yīng)該設(shè)計(jì)出最可行的用戶界面并讓開發(fā)者做出最可行的編程決策。雖然這有一定的道理,但當(dāng)我研究一個(gè)用戶界面的時(shí)候,我從代碼中尋找靈感的努力卻以失敗而告終??傊陬^腦中有一個(gè)技術(shù)及可用性限制的正確觀念還是更有好處。
寫在最后
歸根結(jié)底,所開發(fā)項(xiàng)目的規(guī)??赡茏罱K決定著設(shè)計(jì)師和開發(fā)者的角色。一個(gè)小型的應(yīng)用可以由一個(gè)項(xiàng)目經(jīng)理(注2)一手掌控,而一個(gè)大型的系統(tǒng)必然需要不同的專業(yè)人才!
注1 Mathis-Lukas——“Designers are not Programmers”——ignore the code
注2 Spolsky-Joel——描述了一個(gè)叫做“設(shè)計(jì)師兼程序員”的職位——“How to be a program manager”——Joel on Software
作者 John Urban 是加州大學(xué)的大二學(xué)生,主修計(jì)算機(jī)科學(xué)。
英文原文 http://sixrevisions.com/web_design/why-designers-should-learn-how-to-code/