為什么設計師應該學習編寫代碼

通常,在完成了一件網頁設計后,設計師的無知都會顯露無遺而備受指責。他們把創建網頁代碼的繁重工作都留給了程序員們。這種現象不只出現在網絡開發行業,在軟件及游戲開發業也是如此(完整圖文版)。殘酷的事實就是:開發進度可能會因設計師而停滯不前。為了追求最佳效率,設計師不僅需要描描畫畫,還需要能把它做出來!本文中,我想與讀者分享一些為什么設計師需要學習編寫代碼的理由。

做現實可行的設計

有了一個最終產品將如何實現的明確印象,設計師將拿出更多實際可行的概念。作為開發進程中不可或缺的一份子,設計師肩負著確保他們的設計能夠順利轉移到網絡介質上,同時還要考慮其可用性,網頁易讀性和可實現性。一個對用戶友好的網站不僅有簡潔清晰的瀏覽順序邏輯,還向用戶提供一切所需的信息而不會顯得咄咄逼人或是雜亂無章。想要知道一種 Web 布局是否可行的唯一途徑就是親自去了解如何建立一個網頁。

使溝通更輕松

在幾乎所有的設計與實現各自獨立的產品中,設計組和實現組從沒有滿足過對方的期望,尤其是那些無形的產品,比如網站,軟件和游戲。這通常歸結于產品的期望和產品可行性的相互妥協,目前看來,這是難以完美統一的。解決之道是:設計師應該親身嘗試設計作品的實現,以避免溝通中的混淆,誤解和誤傳。

方便的迭代開發過程

一個實踐中的設計不應是絕對的。我的意思是,設計應該是靈活友好的,能夠在修改以迎合系統技術限制的同時不扭曲其原有內涵。這些重復但必要的改動只能由原設計師來實現。一個設計師/開發者能夠比開發人員把設計重提到設計師手里進行改動更加高效。而且設計師和開發者之間事實上經常如此會產生摩擦。

更好更和諧的結果

我常常喜歡把軟件,網絡或是游戲開發想成是管弦樂,而設計師是作曲家,開發者是樂團的指揮家。想象一下二者是同一個人將會怎樣?交響曲將會是令人驚嘆的,迷人的,純正的!不僅是大師的神作,而且還是其本人親自指揮的!

縮短開發時間

設計師同時充當程序員的角色意味著設計和編碼的進度即使不是同時的也是連續的。結果就是開發周期的縮短誰會不關心效率呢?

設計師更加市場化

現代的設計師需要提升自身的能力以保持個人價值,有一套技能是遠遠不夠的,我們往往需要戴著不同的頭銜:設計師,前端開發者,文章作者和項目經理。

通過學習實現你自己的設計,而不是讓設計成為開發者手中的孤兒你提升了自身價值。畢竟,在簡歷中提到設計和編碼技能不會有壞處。相反,在這個金融危機時代的企業重組(參見:大規模裁員)和縮減開支的環境下,還能夠強調一個人的重要性而免遭解雇。

然而,即使有這么多的理由支持設計師學習編寫代碼,這里還是有反對的聲音。

引用 Lukas Mathis 的一篇有爭議性的文章設計師不是程序員(注1)

如果設計師實現自己的設計,他會受制于兩個不同的目標:代碼的整潔和良好的用戶體驗。這兩 個目標是相互矛盾的。如果你要實現你自己的設計,你必然會為了代碼的質量而妥協,這是不利于交互設計的。

實現自己設計的設計師面臨著兩個問題:他們知道一個很棒的新思路會建立混亂的代碼,他們也知道如果改進用戶體驗,現有的代碼會被打亂。這兩者相互矛盾,因為用戶體驗都在于小的細節,而這些小細節最終毀于他們的不忍心使代碼變得混亂。

這恰如其分的總結了Web開發純化者們所采取的強硬立場。他們是守舊派,倡導在設計和開發之間劃清界限。顯然,設計師為人類創作,開發者為機器創作。因此,用戶體驗設計師們應該設計出最可行的用戶界面并讓開發者做出最可行的編程決策。雖然這有一定的道理,但當我研究一個用戶界面的時候,我從代碼中尋找靈感的努力卻以失敗而告終。總之,在頭腦中有一個技術及可用性限制的正確觀念還是更有好處。

寫在最后

歸根結底,所開發項目的規模可能最終決定著設計師和開發者的角色。一個小型的應用可以由一個項目經理(注2)一手掌控,而一個大型的系統必然需要不同的專業人才!

注1 Mathis-LukasDesigners are not Programmersignore the code
注2 Spolsky-Joel描述了一個叫做設計師兼程序員的職位How to be a program managerJoel on Software

作者 John Urban 是加州大學的大二學生,主修計算機科學。


英文原文 http://sixrevisions.com/web_design/why-designers-should-learn-how-to-code/


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453464.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453464.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453464.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unittest核心要素

1 TestCase 一個TestCase的實例就是一個測試用例。什么是測試用例呢?就是一個完整的測試流程, 包括測試環境的準備(setUp),執行測試代碼(run),以及測試后環境的還原(tearDown)。單元 測試(unit …

iOS內存區域部分內容

目前參考這里: https://www.zhihu.com/question/263823072/answer/273452932 以后整理相關的代碼問題。 更多參考資料: https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap 堆棧:https://baike.baidu.com/ite…

php 啟動ffmpeg,安裝php擴展 ffmpeg-php

首先先下載擴展包擴展下載地址: http://nchc.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2進入 ffmpeg-php目錄 進行編譯擴展/usr/local/php/bin/phpize./configure --with-php-config/usr/local/php/bin/php-configmake 出錯報錯情況make: …

armeabi和armeabi-v7a的區別

armeabi默認選項, 支持基于 ARM* v5TE 的設備 支持軟浮點運算(不支持硬件輔助的浮點計算) 支持所有 ARM* 設備 armeabi-v7a 支持基于 ARM* v7 的設備 支持硬件 FPU 指令 支持硬件浮點運算 不同手機由于cpu的不同,使用不同的驅動…

淺析Numpy.genfromtxt及File I/O講解

Python 并沒有提供數組功能,雖然列表 (list) 可以完成基本的數組功能,但它并不是真正的數組,而且在數據量較大時,使用列表的速度就會慢的讓人難受。為此,Numpy 提供了真正的數組功能,以及對數據快速處理的函…

麻雀雖小,五臟俱全:分析CVS活動情況的小工具(有源碼供學習)

最近開發團隊發布的版本質量很成問題,追究起來有很多原因,其中之一是CVS的使用不合理, 于是想做個一小工具,分析CVS上每天的活動,以便掌握團隊成員對CVS的使用情況。 也許有現成的開源項目可以完成這項任務&#xff…

php如果實現日歷的制作,教大家制作簡單的php日歷

最近的一個項目中,需要將數據用日歷方式顯示,網上有很多的JS插件,后面為了自己能有更大的控制權,決定自己制作一個日歷顯示。如下圖所示:一、計算數據1、new一個Calendar類2、初始化兩個下拉框中的數據,年份…

Spark之 使用SparkSql操作mysql和DataFrame的Scala實現

通過讀取文件轉換成DataFrame數據寫入到mysql中 package com.zy.sparksqlimport java.util.Propertiesimport org.apache.spark.SparkContext import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Row, SparkSession} import org.apache.spark.sql.types…

web服務器之iis,apache,tomcat三者之間的比較

IIS-Apache-Tomcat的區別 IIS與Tomcat的區別 IIS是微軟公司的Web服務器。主要支持ASP語言環境. Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術的標準實現,是基于Apache許可證下開發的SJP語言環境容器,嚴格得說不能算是一個WEB服務器,而是Apache服務適配器。 …

iOS CAGradientLayer顏色漸變

Gradient:本身就是梯度的意思,所以在這里就是作為漸變色來理解 CAGradientLayer用于處理漸變色的層結構CAGradientLayer的漸變色可以做隱式動畫大部分情況下,CAGradientLayer時和CAShapeLayer配合使用,CAShapeLayer這里就不介紹了CAGradientL…

編程要養成的好習慣

1.- DRY: Don’t repeat yourself. DRY 是一個最簡單的法則,也是最容易被理解的。但它也可能是最難被應用的(因為要做到這樣,我們需要在泛型設計上做相當的努力,這并不是一件容易的事)。它意味著,當我們在…

flink整合java,Flink使用SideOutPut替換Split實現分流

基于apache flink的流處理實時模型44元包郵(需用券)去購買 >以前的數據分析項目(版本1.4.2),對從Kafka讀取的原始數據流,調用split接口實現分流.新項目決定使用Flink 1.7.2,使用split接口進行分流的時候,發現接口被標記為depra…

虛機中訪問外網;NAT中的POSTROUTING是怎么搞的?

看下docker中是怎么配置的網絡 在虛機中訪問外網:設定了qemu,在主機上添加路由:sudo iptables -t nat -I POSTROUTING -s 192.168.1.110 -j SNAT --to-source 192.168.0.108 設置了這句話就可以訪問外網了。 設置了兩個虛擬機: ta…

Fragment結合ViewPager之懶加載

什么是懶加載?為什么要用懶加載?### 1、什么是懶加載 懶加載就是當ViewPager和Fragment結合在一起使用時,Fragment呈現在用戶面前時才加載數據,當其從未被呈現在用戶面前時,不會執行加載數據的代碼。這就是我所理解的懶…

WCF和webservice的區別

微軟論壇的斑竹回答如下: 腦內:果然是高大上啊 1.WebService:嚴格來說是行業標準,不是技術,使用XML擴展標記語言來表示數據(這個是夸語言和平臺的關鍵)。微 軟的Web服務實現稱為ASP.NET Web Ser…

職場不得不明白的十大定律

帕金森定律 美國著名歷史學家諾斯古德?帕金森通過長期調查研究,寫了一本名叫《帕金森定律》的書,他在書中闡述了機構人員膨脹的原因及后果:一個不稱職的官員,可能有三條出路。第一是申請退職,把位子讓給能干的人&am…

php控制器教程,laravel基礎教程 -- 控制器

HTTP 控制器簡介控制器允許你將相應的路由業務邏輯封裝在控制器類中進行有效的管理,這樣你不必將所有的路由邏輯集中到routes.php文件中,導致代碼的臃腫與難以維護。所有的控制器類都被存儲在app/Http/Controllers目錄中.基本控制器一個基本的控制器應該…

org.apache.jasper.JasperException: Unable to compile class for JSP:

報錯信息: org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class filesSt…

i++和++i

關于自增自減運算,很多書籍沒有把問題講清楚,在C語言里是這樣的: 1.后置運算:k表示先運算,后自加。 意思是遇到k了,我先把當前的k的值拿來參加運算,后面再去管它的自加。 那么,“后面”后到什么…

什么樣的項目經歷會讓面試官眼前一亮

很多同學都問過我類似的問題: 咱們《C語言也能干大事》中講的自己動手寫windows優化大師、自己動手寫計算器等東西只是寫著玩的小玩具而已,這些能用來以后找工作時寫到簡歷中的作品嗎?看別人的簡歷寫的“圖書管理系統”、“教務選課系統”多有…