面向對象的產品觀(3):組合的奧秘
編輯導語:產品的構建是一個不小的話題,在前兩篇文章中,作者為我們分享了關于面向對象的產品觀中的抽象思維,以及從橫向和縱向兩個方面分解的藝術。今天這篇文章中,作者為我們分享了產品構建的第三層:組合層,揭曉了組合有什么奧秘。
我們來到了產品構建的第三層:組合層,接下來的篇幅們將一起去探討組合。
從組合開始,我們將開始探討HOW的問題,去了解怎樣去構建一款產品。
一、什么是組合
在抽象層我們了獲取產品愿景,又在分解層將愿景分解成了諸多的功能。那么在組合層,我們要做的事情就是講諸多的功能通過一定的方式組裝起來。
分解時拆分出了無數的零件,組合則是將這些零件組合成為一個可以正常運轉的機器。組合層決定了一個產品的具體結構,一個好的結構可以像摩天大廈一樣樓高百丈,直插云霄;一個壞的結構就像農村土樓,最多3層,再往上就搖搖欲墜了。
二、組合的依據
我們依靠什么樣的依據來將零件組合成為正常運轉的機器呢?依據的是用例和場景。
為什么是他們?產品一系列相關聯的功能的集合。用戶使用產品是一個長期的過程,使用的過程中必然會涉及到多個場景以及多個不同的用例。因此根據用戶使用產品時的用例以及場景進行組合才是一個產品結構的正常組合方式。
三、組合的流程
組合的過程分為:搭架子和裝組件。
1. 搭架子
架子就是一個產品最基本的框架,由產品的”一級模塊“組成。所謂一級模塊與用例互相關聯,實際上就是將用例抽象為一個簡單的功能概念。比如商業列表,購物車,個人中心等。
搭架子就是將所有的一級模塊進行排列組合,架子決定了你的產品最直觀的表現形態以及產品的邊界。
在搭架子時要注意按照功能分類來設計一級模塊。一般來說基礎功能單獨一類;核心功能單獨一類,同時也可以附帶一些必要功能與輔助功能;必要功能一般與核心功能合并為一類,有時也可以單獨成一類。
一個好的架子需要滿足如下條件:易用性、穩定性和擴展性。
- 易用性:一級模塊需要與用例完全相關,每一個一級模塊都是一個完整用例的抽象。
- 穩定性:一個好的底層架構可以在長期使用,在未來的很長一段時間也不需要做出大的修改。任何一個對底層架構的改動,都需要用戶花大量時間去適應,對于產品的用戶體驗傷害相當大。
- 擴展性:這一條與穩定性息息相關,實際上一個穩定的架構幾乎等同于一個擴展性好的架構。任何一個產品都不可能是一成不變的,在未來的迭代中一定會對增加或者減少某些功能,一個擴展性好的架構就可以很好的滿足這樣的要求。
那么這個市面上有沒有能夠完美滿足我所有要求的架構呢?有!就是大家正在使用的微信。
7年未變的完美架構
如上圖,微信的一級模塊從12年開始就一直是以上四大金剛,除了在13年把朋友圈替換為發現之后,已經超過7年沒有任何變化。
在這7年間,微信的功能已經發生了天翻地覆般的巨大變化,由一個簡單的聊天工具進化成了影響人們生活方方面面的超級APP。但是底層架構依然是這四大金剛,而且在可預見的未來,這四大金剛依然還將死死占據著微信的底部。
2. 裝組件
搭完架子,就是裝組件了。所謂裝組件,將二級模塊與一級模塊關聯起來。
就像組裝電腦一樣,機箱是一級功能的集合體、CPU、主板、顯卡、電源、硬盤這些硬件就是二級模塊,組裝電腦就是將硬件安裝到機箱指定的位置上。
就像主板上面有銅線,二極管等多個不同的零件一樣。二級模塊也是有多個不同用途的小功能組合而成。
裝組件實質上就是將眾多互相關聯的小功能組合成為一個大的功能,然后再將諸多的大功能組合到底層架構上。
每一個小功能都對應著一個具體的原子態場景,然后將相關聯的功能(場景)進行組合成為一個二級模塊,之后將這些二級模塊組裝到一級模塊上,就形成了最終的產品結構。
四、組合的原則
1. 第一原則
組合的第一原則:組合的功能一定要符合人類的認知。就像微波爐上不能裝菜刀一樣,功能的組合必須符合人類對現實的認知,微波爐是很好的功能,菜刀也很好,但是這樣兩個很好的功能組合到一起就是災難。
所以,符合認知是組合最重要的原則。
2. 第二原則
組合的第二原則:高內聚,低耦合。這個概念來自于軟件工程,是判斷軟件設計好壞的標準。類似的功能盡量的組成獨立的模塊,不同的模塊之間盡量減少關聯,模塊之間通過連接進行信息傳輸。
這樣做的好處就是可以顯著提升軟件的復用性和可擴展性。
什么是軟件的復用性?
就像一顆獨立的螺絲釘,它可以擰到任何硬件上而不會對那個硬件產生影響。復用性就是指獨立的軟件模塊就像螺絲釘一樣,可以安裝到任意一個程序中也都可以正常使用。
可擴展性就更好理解了,當你的軟件的各個部分都是獨立存在不會相互影響時,那么你增加或者刪減某個功能都不會對軟件已有的功能造成影響,就像我可以隨時在電腦上加顯卡,換硬盤。
那么高內聚,低耦合能夠如何運用在產品構建中呢?在進行產品構建時,需要盡力的找到每一個完整的場景閉環。
若干個場景閉環就可以組成用例,實際上用例就是諸多閉環組成的一個大閉環。最終將這些閉環對應的功能組裝為獨立的模塊,然后將這些模塊一一組裝,形成最后的產品。
如上文描述的那樣,組合的目標是將分解出來的功能按照規則進行排列、組合。
最終合成一個完整的,可用的產品結構。如果組合沒有做好,未來產品的架構將很容易發生劇烈變動,會產品體驗的延續性造成很大傷害。所以,我們一定要重視組合,做好組合。
我們終于來到了HOW的階段,組合是HOW的第一層,因為我本人的狀態原因,趕著這一篇沒有完全說明白我想要講的內容,請大家擔待一下。
未來我們還將繼續介紹《連接》和《具象化》,敬請期待。
本文由 @木道人 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于 CC0 協議
- 目前還沒評論,等你發揮!