面向對象的產品觀(5):具象化
編輯導語:產品設計的過程,大多是一個抽象的過程,即根據用户調查和市場調查等獲取的數據,設計一款產品的功能等。而在完成抽象化的過程之後,就要進入具象化的過程,即產品真正可以面向用户的過程,在這個過程中我們需要注意些什麼呢?
終於,我們登上了產品構建的最後一層:具象層。
具象層的工作就是將產品可視化,也就是讓產品變成大家手機裏,電腦上看到的樣子。具象的目的是讓用户能夠直觀的感受到產品,並且可以快速使用產品去解決他的問題。
具象是產品構建的最後一層,也是和用户直接打交道的一個層次,用户對產品的觀感和情感都由具象層直接決定。所以這一層的工作重點就是細節,細節,還是TM的細節。
具象層的工作主要分為如下兩個部分:交互設計和信息架構。實際上還有一個視覺設計,只是視覺設計屬於設計師領域,基本不屬於產品經理的工作,所以這一塊就暫時剔除在外。
一、交互設計:用户如何使用交互設計定義了用户使用產品的方式。計算機時代的交互設計,是為了減少計算機系統與現實世界的認知摩擦而產生的一種新型學科。
交互設計的目的,是降低大家從現實時間的實體產品轉換到使用軟件產品時的學習成本。
一個人,在初次使用軟件產品時都會產生不適應感,只是程度或多或少而已。而好的交互設計可以將這種不適應感降到最低,讓用户適應的時間縮到最短。
那麼如何做到一個好的交互設計?
在鉅著《交互設計之路》中説過,一個好的交互設計需要做到以下幾點:
- 儘可能的模擬現實世界,讓用户可以將自己在現實世界中的經驗可以很輕鬆地移植到軟件產品上;
- 產品要足夠的簡單,讓人可以在極短的時間內學會並使用。沒有人會喜歡複雜的產品,因為複雜的產品會讓人覺得自己很愚蠢,沒有人會願意承認自己愚蠢;
- 每一次操作都要有即時的反饋。因為在現實中我做的每一件事情都可以即時收到反饋,我敲桌子就能聽到響聲,我拿起冰就可以感受到冰冷。
如果一個產品可以做到以上幾點,那麼基本上就可以判斷他是一個成功的交互設計。
二、交互設計的要點交互設計要點其實就是三個詞:明確、及時、步驟少,展開來説就是明確的功能佈局與層次,及時的操作反饋,儘量少的操作步驟。
做到這些就需要如下四個準則:突出重要的、弱化次要的、聚合有關聯的、隱藏不重要的。
交互設計已經是一門經過了幾十年發展的顯學,在這裏我一篇文章也不可能説明白所有的要素。所以,今天我就説到這裏,權當拋磚引玉,如果讀者們還有興趣,可以自行查閲相關的文獻,我就不在多囉嗦了。
三、信息架構:我們想告知用户什麼與交互設計對應的就是信息架構,他與交互設計相輔相成,共同構成了產品的具象層。
信息架構這個名詞聽着生僻,我本人也被弄暈了很久,找到的各種書籍也是各種繞圈子,感覺把一件簡單的事情給弄得極其複雜,看下來的感覺就是完全不知所云。
所以,我索性根據自己多年的工作經驗和思考的心得,自己給信息架構給出了一個定義:信息架構就是內容的組合方式。信息架構的目標是讓用户在最短時間裏的明白你的產品是做什麼的,能夠給他們帶來什麼樣的價值。
信息架構的要點是:層次結構清晰,聚合相關聯信息,信息儘量平鋪展示。
其實信息架構在實際產品的設計過程中不需要過多關注,很多人讀書讀到走火入魔,做產品之前一定要按照書本上的説法分出多少個層次的信息架構,做出什麼樣的架構系統。
實際上在你設計產品原型的過程中,信息架構會自然而然的出現在你的腦子裏,壓根不需要專門去研究信息架構的層次與結構。
四、製作原型原型是一個產品開發的依據和標準。製作原型是所有的產品經理的必備技能,你可以不會寫文檔,但是你一定要會畫原型。
面向對象思想在製作原型的階段可以被髮揮的淋漓盡致,下面由我來慢慢道來。
五、模塊化設計在軟件功能領域,有一個非常流行的概念:模塊化編程。
這種編程的方法就是講程序分成一個個小的模塊,模塊之間互不關聯,之後程序裏面需要用到哪個個模塊就把哪個模塊加上去。
這種編程的好處就是同一個模塊可以應用到多個地方,極大的提成了程序的可複用性。在原型製作的時候,也可以借鑑這種模塊化的思想,我稱其為模塊化設計。
六、模塊化設計的要點模塊化編程之所以可以實現,主要依賴於“萬物皆對象”的法則以及面向對象的三大特性:封裝、繼承、多態。
- 萬物皆對象:世間所有的食物都是對象,不論是真實的物品,還是一段話、一個場景都可以作為一個對象。這個對象是封閉且獨立的;
- 封裝:將某樣事物封閉成為一個對象,可能是一段代碼,也可能是一個設計好的界面;
- 繼承:一個對象可以獲得另一個對象的屬性和方法,就像中國人就繼承了所有人類共有的特點。被繼承的對象一般稱之為基類,而那個繼承它的對象就稱之為子類;
- 多態:每一個子類的實際屬性和方法都會有一些不同,就像中國人是人類的子類,中國人既有全部人類都有的特點,又有獨屬於自己的特點。
這些特性如何又是如何運用於原型設計中的呢?
七、善用封裝在我們實際設計的過程中經常會碰到多個頁面都會出現相同的元素,如多種不同狀態的訂單列表。這時候按照常規的做法,大家都會使用複製粘貼將同樣的訂單信息複製到多個不同的列表頁面。
這種做法當然沒有問題,但是呢:如果期間我要對訂單信息進行修改怎麼辦呢?
我每一條訂單信息都要重新修改一次,這種做法就會導致大量的時間都用來修改同樣的數據上。而且如果頁面太多還很有可能造成錯漏的情況。
這個時候我們可以將重複的元素封裝為一個獨立的模板,所有關聯的頁面都統一使用這個模板,下次如果要修改時,直接修改模板即可同時修改所有關聯的頁面。
這樣做的好處是讓原型的模板可複用性大大增強,而且可以避免大量的錯漏問題。
同時如果一個產品特別龐大,需要一個專門的產品設計團隊在進行設計的話,封裝模板可以提升團隊合作時的效率,畢竟已經封裝好的模板可以直接拿來使用,避免了重新造輪子的工作,大大提升了團隊工作的效率。
現在市面上主流的原型設計工具如Axure,墨刀等都有一個“母版”功能,該功能就可以非常方面的做到封裝對象。
或許Axure的創始人在最初設計產品的時候就已經考慮到了頁面複用的問題,所以他一開始就設計了“母版”這樣出色的功能。不愧大師手筆,我等凡人只能膜拜。
八、模板的繼承模板的繼承實際上是封裝基礎上衍生出的新特性,在製作原型的過程中會出現幾個關聯頁面框架相同,但是框架中的元素不一樣的情況。
這時候可以將大家都一樣的元素封裝為一個模板,這個模板作為所有頁面的基類,所有的頁面都是用這個模板,在這個模板上添加元素。
這樣的好處也是顯而易見的,這樣可以統一相關頁面的交互,尤其是在團隊協作的過程中規避每一個人都設計出不同風格頁面。在實際工作中同樣可以使用“母版”來進行基類的設計。
九、多態如上文所述,設置好了基類模板並且讓相關聯的頁面都“繼承”了該模板之後,需要根據每一個頁面的特點添加不同的元素,這個實際就是面向對象的多態特性。
每一個繼承了同樣基類的子類,都有各自不同的特點。而一旦基類發生了改變,所有的頁面同樣的也會改變。
最後,引用一下Python之禪的內容,來總結我對於具象層的認知:
- 優美勝於醜陋;
- 明瞭勝於晦澀;
- 簡潔勝於複雜;
- 複雜勝於凌亂;
- 扁平勝於嵌套;
- 間隔勝於緊湊;
- 可讀性很重要;
- 即便假借特例的實用性之名,也不可違背這些規則;
- 不要包容所有錯誤,除非你確定需要這樣做;
- 當存在多種可能,不要嘗試去猜測;
- 而是儘量找一種,最好是唯一一種明顯的解決方案;
- 雖然這並不容易,因為你不是 Python 之父;
- 做也許好過不做,但不假思索就動手還不如不做;
- 如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然。
以上就是我對於具象層的理解,這一篇有一半的篇幅其實都是在介紹實際工作如何開展,純理論的東西並不多。
因為具象是一個非常複雜非常長期的過程,短時間內提升是不可能,只有在實際工作中不斷的磨練,才能不斷精進,真正成為獨擋一面的高手。
終於講完了面向對象產品觀的五層次,依據這五個層次步步為營的演進,相信你也可以做出令人滿意的產品。
但是構建產品是一個不斷迭代,不斷優化的過程,一個剛剛設計出的產品,只是一顆種子,後續還要經過不斷的改善才能長成一個參天大樹。接下來,我們一起去了解產品如何《向上生長》。
本文由 @木道人 原創發佈於人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基於 CC0 協議