寫給設(shè)計師:技術(shù),要懂多少才算懂?
這篇文章寫給我自己看,也分享給各位有需要在這個方面提升的童鞋。由于本人學的是計算機相關(guān)專業(yè),所以這篇文章只講技術(shù)這一塊。接下來就盡量具體地講講要想做到傳說中的懂技術(shù),我們需要關(guān)注什么,不需要關(guān)注什么。在開始之前送大家一碗由國內(nèi)某開發(fā)大神熬制的毒雞湯,“學習總是痛苦的,如果你沒有感覺到痛苦,那可能你并沒有學到。”做好準備,上車、出發(fā)。
你或許很早之前就看過這張可以說是高度歸納,但又似乎有一點語焉不詳?shù)膱D。它大概描述了一名產(chǎn)品設(shè)計需要點的技能,里面包含用戶體驗(UX)、技術(shù)(Tech)和商業(yè)/業(yè)務(wù)(Business)。
我還是學生的時候就看過這張圖片,當時的我感覺自己一不小心探尋到了世界的真理,宇宙的真諦,只要我到達了圖中的那塊綠色區(qū)域,成為一名優(yōu)秀的設(shè)計師指日可待。于是乎我開始各種學習,起早貪黑披星戴月日夜兼程嘔心瀝血,對于各種知識無比渴求,可是后來我慢慢發(fā)現(xiàn),這樣漫無目的“學習”并不能讓我抵達綠色區(qū)域,它分散了我太多的精力。人的時間和精力都是有限的,學習一切并不現(xiàn)實,這張圖片最終沒能讓我一下子就變成一個超超超厲害的設(shè)計師。
“設(shè)計師要懂一些技術(shù)?!?/p>
對呀,要懂一些技術(shù),可是,一些,是多少?懂多少,才算懂?
這個問題其實誰也沒有一個非常準確的答案,如果非要說有的話,那么肯定是越多越好,可首先你要明確自己是一名設(shè)計師,既然你是做設(shè)計的,你就不能真的像程序員一樣去學習代碼。對于設(shè)計師來說,懂技術(shù),似乎也并不需要你真的做到能夠親手打代碼才叫懂。將骨架脈絡(luò)摸清,以及之間的交互和聯(lián)系弄懂(注意這并不是淺表皮毛的意思,這里已經(jīng)足夠大部分沒有計算機背景的設(shè)計師童鞋們學習好久了,不過也總比你幻想著去學碼代碼輕松太多),才是設(shè)計師能夠比較“舒適地”切入的一個點。
1. 懂“棧”
我們常見的功能,其實大部分可能需要幾種技術(shù)同時協(xié)作才能夠達成,這些個技術(shù)就是棧。就好像我們在畫圖的時候,有可能需要數(shù)個圖層的合并才能做出這種效果來。譬如說,當用戶在使用我們設(shè)計的美美的登錄頁面進行登錄操作時,后面的程序已經(jīng)風起云涌。
- 判斷用戶是否已經(jīng)在文本框里面輸入了東西,如果沒有,彈出toast提示用戶先進行輸入,如果有,那么進行第二步。
- ?嘗試發(fā)送用戶輸入的賬號密碼,如果斷網(wǎng)了的話提示用戶網(wǎng)絡(luò)有問題,如果沒有,進行第三步。
- 將用戶輸入的賬號密碼傳輸?shù)轿覀兊姆?wù)器(服務(wù)器其實就是一臺電腦),讓服務(wù)器來判斷賬號密碼是否正確。
- 服務(wù)器判斷完畢,通過網(wǎng)絡(luò)告訴用戶這邊的app賬號密碼是否正確。
- 用戶這邊的app接受到了服務(wù)器判斷的結(jié)果,如果正確,給登上,如果不正確,則提示用戶賬號或密碼錯誤。
- 登上之后給服務(wù)器通知一下,這名用戶已經(jīng)登上了。
- 這時候服務(wù)器知道用戶已經(jīng)登上了,它可能會通知別的服務(wù)器來辦他繼續(xù)接客,當時也有可能自己接著接客,接客就是為用戶繼續(xù)服務(wù)。
看看,總共七步(注:在現(xiàn)實情況下遠遠不止這幾步,這個例子只是為了更加簡單的介紹棧是什么),這個過程中有許多的棧參與了進來,有幫忙做記錄的,有幫忙把信息發(fā)出去的,有幫忙接受信息的,也有幫忙通知其他棧的,總之每個棧都很勤奮,但是整個過程速度非常之快,不信你登qq試試。
- 怎么切入?——先找你的程序員問問,讓他細致告訴你程序背后運作的過程和使用到的技術(shù),然后拿筆記下來。英語還湊合的自己去Google一下,不湊合百度也可以,先大致了解下這種技術(shù)到底是什么、用來干嘛的、為什么現(xiàn)在程序員會用這個、各種技術(shù)之間是怎么協(xié)作的之類。剛開始的時候不用太刻意地去深入了解各個細節(jié),自己總結(jié)個大概就行。(譬如上面這個登錄的例子,你可能會問出一個叫做Retrofit的玩意來,那么你就去查查Retrofit是干嘛的。)
- 為啥要懂這個?——在設(shè)計工作開始前期,你就能夠大致知道某些功能可能需要哪些技術(shù)來實現(xiàn)比較好,是用H5好?還是直接native寫好?因為你知道H5的優(yōu)劣勢,也知道native的優(yōu)劣勢,結(jié)合業(yè)務(wù)的需求你能很好的去權(quán)衡、去判斷,構(gòu)建出來東西才能最大程度上如你所愿。
而當程序員在討論如何構(gòu)建這個功能的時候,你至少能夠大致跟得上別人的腳步,當你學得足夠多的時候,你應(yīng)該可以做到能夠聽得懂他們在講什么,問題出在哪里。但是要注意,聽就好,千萬別亂給意見,越是細節(jié)方面的意見越要謹慎,因為假如他們是有水平的程序員的話,大部分情況下不會需要一個設(shè)計師來提程序方面的意見。
2. 懂系統(tǒng)架構(gòu)
如果說棧代表的是各個技術(shù)的話,那么這個其實我們可能都聽過的系統(tǒng)架構(gòu),就是決定這些技術(shù)之間的合作的方式的東西。上面舉出的那個例子涉及了非常多的棧,也談到了它們可能每個負責的任務(wù),可單個單個的棧無法辦成任何事情,它們之間是需要相互溝通交流的,好的架構(gòu)能夠讓它們更加有效地溝通交流,就好像一家公司,光有技術(shù)上乘的員工沒用,做出一個好的產(chǎn)品還需要公司有良好的管理。
- 怎么切入?——同樣地你又要來勞煩你的程序員寶寶了,讓他給你畫一張關(guān)于你們產(chǎn)品架構(gòu)的架構(gòu)圖。畫出來的東西可能看起來又復(fù)雜了一點,但是別慌,讓他大致給你講講這些都是些什么東西。一些可能是用來處理網(wǎng)絡(luò)請求的,一些可能是用來收集數(shù)據(jù)的,一些是用來處理數(shù)據(jù)的。不管你信不信,了解你們公司產(chǎn)品背后大致的技術(shù)架構(gòu)對你來說非常有用。(你就再也不會做出**讓程序要給你做一個商城,跟淘寶差不多就行**這些事情來了。)
- 為啥要懂這個?——當你開始對架構(gòu)有了一定的了解,你的思路也會變得清晰起來,同你一樣,程序員處理事情的方式各有不同,但是整體的架構(gòu)指導著他們的大方向,讓幾個程序員做出來的東西跟一個程序員做出來的東西一樣。懂的系統(tǒng)架構(gòu)的設(shè)計師不會貿(mào)然就來個大改,因為在一開始之前他們就會更加謹慎行事,為界面層面的架構(gòu)著想,如果有能力,也為后端層面的架構(gòu)著想。
總的來說,架構(gòu)非常重要,一旦定下將決定產(chǎn)品大致的走勢。所以設(shè)計師要帶著發(fā)展的眼光和堅定的信念來進行設(shè)計,因為技術(shù)人員們會根據(jù)你的設(shè)計來設(shè)計架構(gòu),根據(jù)你想要的效果來設(shè)計架構(gòu),假如一個產(chǎn)品從設(shè)計開始就非常復(fù)雜而且冗余,那么一個產(chǎn)品的架構(gòu)也會非常復(fù)雜而且冗余(這就是為什么我一直認為交互設(shè)計師其實應(yīng)該深入地了解一點技術(shù)知識,因為交互設(shè)計師不僅能夠決定界面布局,他們還能夠很大程度上左右系統(tǒng)的架構(gòu),盡管有時候你自己都沒察覺到),當你意識到自己的設(shè)計有這么多缺點,想要進行一輪大改,撥亂反正的時候,通常程序已經(jīng)積重難返,深陷泥潭了。
補充一點,在大一點的公司里面,系統(tǒng)架構(gòu)可能需要數(shù)個部門協(xié)作完成,要學習的東西還是比較多的,要跑的地方還是比較多的,加油吧各位。
3. 懂數(shù)據(jù)模型和API
你的產(chǎn)品通過一套特定數(shù)據(jù)模型來組織自己的數(shù)據(jù),在你的產(chǎn)品里面,數(shù)據(jù)以某種特定的格式進行流通。在技術(shù)的范疇里面,數(shù)據(jù)這兩個字幾乎代表一切東西,比如說用戶的id,是一條數(shù)據(jù),用戶點過贊的數(shù)百首歌曲,是一組數(shù)據(jù),連用戶今天有沒有點這個按鈕,也是數(shù)據(jù)。對于我們來說,一個使用我們產(chǎn)品的真真實實的人代表用戶,而對于我們的程序來說,一個由:用戶名、用戶id、用戶賬號、用戶密碼、用戶手機號、用戶身份證號組成的一組數(shù)據(jù)代表一位用戶,而這寫數(shù)據(jù)通過某個數(shù)據(jù)模型組成在了一起。
上文說到棧和棧之間會相互溝通傳遞,它們溝通傳遞的就是數(shù)據(jù)。數(shù)據(jù)模型的概念至關(guān)重要,譬如說你使用你的賬號密碼來登上淘寶,然后再點擊購物車,這時候你能夠看到自己要買的商品,因為你的賬號跟你要買的東西早已被通過某種格式記錄了下來,淘寶通過賬號密碼知道了你是誰,而又通過你是誰來查詢你在購物車里面放了些什么,這里就有兩個數(shù)據(jù)模型,一個是用戶數(shù)據(jù)模型,一個我們暫且叫它購物車數(shù)據(jù)模型。你可以理解成兩張excel表格,一個表格記錄你的賬號密碼,一個表格記錄你想買的東西,這個時候我先要知道你是誰才能知道你想買的東西是什么。數(shù)據(jù)跟數(shù)據(jù)之間的共享需要一個叫API的東西,中文名通常叫接口。
接口負責將它底下的數(shù)據(jù)傳遞給有權(quán)調(diào)起它自己的人(很高冷)。你要聽歌的時候,你會點擊qq音樂里面的某首歌曲,這時候app向服務(wù)器發(fā)起請求“用戶要聽這首歌辣!”,qq音樂服務(wù)器找到對應(yīng)的接口返回數(shù)據(jù),數(shù)據(jù)包括:這首歌、這首歌的專輯圖片、這首歌的歌手名、這首歌的歌詞等等。但qq音樂就不能調(diào)起網(wǎng)易云音樂的接口,因為qq音樂沒有這個權(quán)限去調(diào)起,盡管能夠調(diào)起,qq音樂也不一定能夠正常播放,因為返回回來的數(shù)據(jù)模型qq音樂無法解析,道理大概類似盡管你有歌詞你也不會唱日文歌一樣,因為,不懂!
當然世界不會那么的冰冷,例如說蘋果自帶的地圖從iOS10開始就調(diào)用了高德地圖的地圖數(shù)據(jù)(不信打開看看去)。這是為什么?因為他們合作了。
所以,接口也分為公用接口和私有接口,公用接口可以供任何人使用,就好像追波,它們會提供一系列的公用接口,所以盡管它們沒有官方客戶端,但是我們依然能在市場上下載到制作精良的追波app。而私有接口就只供某個產(chǎn)品使用了,但是如果有商業(yè)上的合作的話,你也能拿到別人的接口,使用別人的數(shù)據(jù),實現(xiàn)一些本來不能實現(xiàn)的功能。
- 怎么切入?——第三次去請教你的工程師寶寶了,建議帶上一些零食(推薦可樂),這時候他們可能會讓你去找你們公司的后臺開發(fā)人員。讓后臺開發(fā)人員給你一份關(guān)于你們產(chǎn)品的api文檔(這里可能包含了與你們有商業(yè)合作的公司提供給你們的api),你會發(fā)現(xiàn)api文檔其實沒有那么復(fù)雜,英語水平良好的你其實也能看懂大部分意思,這個時候你了解了你們產(chǎn)品背后的若干個api,同時間還能了解到背后的數(shù)據(jù)模型。
- 為啥要懂這個?——知道你手頭上有什么數(shù)據(jù),就好像一個廚師知道自己的菜籃子里面都有一些什么食材,知道有什么材料廚師就知道大概能做一桌子怎么樣的菜,知道你手頭上有什么借口和數(shù)據(jù)之后你才能知道自己的產(chǎn)品大概能做到什么、做不到什么,有這個數(shù)據(jù)我們要如何加以利用、沒有這個數(shù)據(jù)我們要怎么去得到。例如,你知道你們的產(chǎn)品能夠獲取的到歌曲的專輯圖片,你就設(shè)計出一個位置來放置這張圖片。可如果你設(shè)計出一個很大的位置來放置專輯的圖片,并在上面添加上了無語倫比的效果,整個頁面看起來簡潔又不失華麗、精致卻凸顯大氣,最后才發(fā)現(xiàn)我們并沒有這個數(shù)據(jù),整個頁面乃至于與之相關(guān)的所有頁面都恐怕要重新設(shè)計了。當然這個例子搞笑成分比較重,但是反問自己,是否或多或少都遇到過這樣的事情?
4. 你不需要去懂的東西
編程。
我想所謂的懂技術(shù)≠會編程,你不需要懂編程,盡管會編程會顯得你很酷,但是一個設(shè)計師不必要用能夠親自上手編程這個技能來裝點自己。當然假如你覺得自己有興趣,那么你大可以去學習,這非常不錯,不過千萬不要拿來上班用。你可以自己開發(fā)一個app,然后以個人項目的名義上架各大應(yīng)用市場,這樣看起來才是真的酷!
小結(jié)
不是每個設(shè)計師都能夠在蘋果或谷歌(雖然沒有接觸過,但是我相信別人的設(shè)計師也是懂技術(shù)的,因為國外的設(shè)計專業(yè)很多都有混雜著一些CS課程)這樣的公司工作,他們或許有足夠多的**時間金錢精力和能力**去實現(xiàn)設(shè)計師的大膽創(chuàng)新的設(shè)計,我們大部分人沒有這樣的條件,有些東西不是你逼著程序員加加班就能弄出來的。但是你也不必沮喪,設(shè)計師不必每時每刻都在發(fā)明新的東西,大部分情況下,我們能將產(chǎn)品基本的功能做得很靠譜就已經(jīng)非常不錯了。為什么?因為這已經(jīng)夠難的了。
所以,放下你的浮躁,靜下心來學習,學習能讓你看到更多以前看不到的問題!
作者:朱宇軒,我的追波dribbble.com/Zhuyuxuan;我的博客zyxscientist.github.io
本文由 @朱宇軒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
- 目前還沒評論,等你發(fā)揮!