產(chǎn)品設(shè)計(jì)——一見(jiàn)復(fù)雜先分層

0 評(píng)論 2102 瀏覽 6 收藏 10 分鐘

分層是一種重要的思考和解決問(wèn)題的方法。它可以幫助我們從宏觀上把握問(wèn)題,分階段設(shè)定目標(biāo),再通過(guò)分解來(lái)具體實(shí)施。無(wú)論是組織架構(gòu)設(shè)計(jì),還是軟件開(kāi)發(fā),分層都發(fā)揮著重要作用。掌握分層思維,可以讓我們更從容地面對(duì)復(fù)雜問(wèn)題,邁出解決問(wèn)題的第一步。

我們要談一個(gè)同行們都會(huì)遇到的問(wèn)題,面對(duì)復(fù)雜需求時(shí),如何邁出第一步?這里不賣關(guān)子,豆芽君的解法就是對(duì)問(wèn)題進(jìn)行分層。

我們先回答一個(gè)問(wèn)題:分層和分解有什么區(qū)別?

一、分層和分解有何區(qū)別?

學(xué)習(xí)過(guò)金字塔原理、結(jié)構(gòu)化思維、軟件開(kāi)發(fā)設(shè)計(jì)的朋友,對(duì)分解都不陌生。它是一種結(jié)構(gòu)主義,假設(shè)了要完成一件復(fù)雜的事,通過(guò)逐層分解,最終是可以分解成一個(gè)個(gè)具體的動(dòng)作。

比如美食博主們要做一份蒜香蝦,他能把這份美食的材料組成、烹飪過(guò)程都分解得一清二楚。屏幕前的我們,仿佛看完后,自己已經(jīng)預(yù)演操作了一遍。

那么我們今天要說(shuō)的分層又是什么?分層相比分解,它更抽象。同樣舉個(gè)我們常見(jiàn)的例子來(lái)感受下分層。

公司定了一個(gè)產(chǎn)品目標(biāo),要向市場(chǎng)推出一套新的辦公系統(tǒng)。如果你是一名產(chǎn)品經(jīng)理,你會(huì)如何制定這個(gè)產(chǎn)品開(kāi)發(fā)計(jì)劃?這件事有標(biāo)準(zhǔn)做法嗎?

有的產(chǎn)品經(jīng)理會(huì)采用先調(diào)研內(nèi)部高層的目標(biāo),再尋找市面的競(jìng)品,最后再來(lái)梳理產(chǎn)品的用戶群、功能定位、差異化。而有的產(chǎn)品經(jīng)理則會(huì)先開(kāi)展外部調(diào)研,了解外部客戶的需求,再回來(lái)和公司高層分享市場(chǎng)信息,最后再來(lái)考慮自己的產(chǎn)品設(shè)計(jì)。

我們能說(shuō)哪種做法更正確嗎?這很難說(shuō)。他們的差異更多是取決于他們所在組織的工作文化和產(chǎn)品經(jīng)理的工作方式偏好。

但你認(rèn)真對(duì)比下這兩種做法,能抽象出它們有什么共性嗎?

建議你想一想,再往下看

簡(jiǎn)單地理解,兩種做法的背后都是先調(diào)研、分析,再定目標(biāo)。雖然它們的具體步驟是不同的,但有一點(diǎn)是相同的:先規(guī)劃(規(guī)劃層),再行動(dòng)(執(zhí)行層)。

認(rèn)真觀察我們周圍,不少人接到一項(xiàng)任務(wù),習(xí)慣性就開(kāi)始采用【分解】的做法,他們相比那些想都不想,直接開(kāi)干的人已經(jīng)上了一個(gè)臺(tái)階。但大家具體一聊的話,會(huì)發(fā)現(xiàn)他們常常面臨諸多問(wèn)題,不知道怎么分解才是對(duì)的。原因是他們把不同層次的問(wèn)題都夾雜在一起考慮,導(dǎo)致無(wú)從開(kāi)始做分解。

這也是我們今天分享【分層】這個(gè)主題的意義所在。

二、分層到底能解決什么問(wèn)題?

我們先看看分層的一些典型應(yīng)用:

從公司的職務(wù)來(lái)看,至少分為高層、中層、執(zhí)行層。大家有沒(méi)認(rèn)真想過(guò)不同職務(wù)層的人他們?nèi)绻麉⑴c到同一件事,他們各自的工作是什么嗎?這里就是我們要講的分層最通俗的應(yīng)用。

一般來(lái)說(shuō)高層解決定目標(biāo)的事,中層處理定流程、規(guī)范的事,執(zhí)行層干類似搬磚的事(沒(méi)有貶低任何一方得事,高層和中層可能也不會(huì)搬磚了,各司其職而已)。

那么為什么要對(duì)組織架構(gòu)進(jìn)行分層?其實(shí)這種分層對(duì)應(yīng)著組織在開(kāi)展業(yè)務(wù)過(guò)程中所需的分工、協(xié)作。有資源、有行業(yè)經(jīng)驗(yàn)的高層,他們負(fù)責(zé)制定業(yè)務(wù)的戰(zhàn)略、目標(biāo);有管理經(jīng)驗(yàn)、能力強(qiáng)的中層,他們則負(fù)責(zé)梳理業(yè)務(wù)開(kāi)展的規(guī)范、分工;有專業(yè)能力的執(zhí)行層,負(fù)責(zé)落地具體的分工任務(wù)。

大家有繼續(xù)想一個(gè)更復(fù)雜的問(wèn)題?這三者分工的事,最終能像膠水粘出一件像樣的成品嗎?不然這就是各說(shuō)各話,各做各事,最后干的結(jié)果可想而知。

好,我們重點(diǎn)介紹下在軟件的分層設(shè)計(jì),這種工程領(lǐng)域,它們是如何分層以及連接?(以下內(nèi)容部分來(lái)自AI,豆芽君根據(jù)我們讀者的背景知識(shí)進(jìn)行調(diào)整)。

三層架構(gòu)是一種經(jīng)典的軟件設(shè)計(jì)模式,將應(yīng)用程序劃分為三個(gè)邏輯上的層次,分別是表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層。

下面是每層的具體分工以及它們之間的協(xié)作方式:

1)表示層: 系統(tǒng)與用戶交互的界面,負(fù)責(zé)展示數(shù)據(jù)和接收用戶輸入。它處理圖形用戶界面的顯示邏輯、用戶輸入驗(yàn)證以及用戶操作響應(yīng),但不包含業(yè)務(wù)處理邏輯。

2)業(yè)務(wù)邏輯層: 系統(tǒng)的核心,封裝了所有的業(yè)務(wù)規(guī)則和邏輯處理。它接收來(lái)自表示層的請(qǐng)求,進(jìn)行必要的業(yè)務(wù)處理(如計(jì)算、事務(wù)處理、邏輯判斷等),并可能調(diào)用數(shù)據(jù)訪問(wèn)層來(lái)獲取或更新數(shù)據(jù),最后將處理結(jié)果返回給表示層。

3)數(shù)據(jù)訪問(wèn)層: 負(fù)責(zé)與持久化數(shù)據(jù)存儲(chǔ)(如數(shù)據(jù)庫(kù)、文件系統(tǒng))進(jìn)行交互,包括數(shù)據(jù)的讀取、寫入、更新和刪除操作。它的主要目的是為業(yè)務(wù)邏輯層提供一個(gè)抽象層,隱藏?cái)?shù)據(jù)存儲(chǔ)的具體細(xì)節(jié)。

層與層之間的工作銜接:

  1. 表示層向業(yè)務(wù)邏輯層請(qǐng)求數(shù)據(jù)或服務(wù),當(dāng)用戶在界面上執(zhí)行操作時(shí),表示層收集用戶輸入,將其封裝成請(qǐng)求或參數(shù),然后調(diào)用業(yè)務(wù)邏輯層的接口或方法。
  2. 業(yè)務(wù)邏輯層接收到表示層的請(qǐng)求后,執(zhí)行相應(yīng)的業(yè)務(wù)邏輯處理,如果需要訪問(wèn)數(shù)據(jù)庫(kù),它會(huì)調(diào)用數(shù)據(jù)訪問(wèn)層的方法來(lái)完成數(shù)據(jù)的CRUD(創(chuàng)建、讀取、更新、刪除)操作。
  3. 數(shù)據(jù)訪問(wèn)層處理與數(shù)據(jù)庫(kù)的通信,執(zhí)行SQL查詢或其他數(shù)據(jù)訪問(wèn)操作,并將查詢結(jié)果返回給業(yè)務(wù)邏輯層。
  4. 業(yè)務(wù)邏輯層根據(jù)從數(shù)據(jù)訪問(wèn)層獲得的數(shù)據(jù),進(jìn)一步處理(如格式轉(zhuǎn)換、邏輯運(yùn)算等),然后將最終結(jié)果封裝好,通過(guò)接口返回給表示層。
  5. 最后,表示層接收到來(lái)自業(yè)務(wù)邏輯層的結(jié)果,更新用戶界面,展示所需的信息或處理結(jié)果,完成與用戶的交互循環(huán)。

相信具備點(diǎn)計(jì)算機(jī)基礎(chǔ)的你,是可以看出表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層是通過(guò)一種自上而下請(qǐng)求,然后自底向上返回的方式來(lái)完成三者的連接的。

不知道好奇的你,會(huì)不會(huì)進(jìn)一步追問(wèn),難道不分層不行嗎?

答案是:真不行。理由是一方面人員的術(shù)業(yè)有專攻,很少有工程師同時(shí)掌握前后端的所有開(kāi)發(fā)技術(shù);另一方面業(yè)務(wù)的發(fā)展、變化,如果系統(tǒng)不分層,會(huì)造成每一個(gè)調(diào)整都牽一發(fā)動(dòng)全身,影響業(yè)務(wù)的正常開(kāi)展。

所以說(shuō)分層是為專業(yè)化、復(fù)雜性而生的。

講到這,你回過(guò)頭來(lái)想想,為什么要先分層?再考慮分解?

分層的目的是考慮不同階段所要達(dá)成的目標(biāo),而分解是對(duì)每個(gè)層次目標(biāo)的具體工作分解。如果跳過(guò)分層,直接進(jìn)入分解,就容易擴(kuò)大問(wèn)題范圍,造成問(wèn)題失焦。

三、如果我想了解分層,怎么入門?

聽(tīng)起來(lái)分層好像很厲害,但又很抽象。如果我想用下【分層】這種做法,可以怎么樣上手?

豆芽君又偷懶用了下,用AI查了分層的一些應(yīng)用工具。你可以網(wǎng)上去看看三個(gè)工具:分層直方圖、分層排列圖和層次分析法,和它們的具體應(yīng)用案例。

相信看完后,你就不會(huì)覺(jué)得這個(gè)概念太玄乎,動(dòng)手去分析一個(gè)復(fù)雜問(wèn)題的分層吧。比如說(shuō)時(shí)下最火的AI,你能分析下它的組成是什么嗎?普通人如果想進(jìn)入這個(gè)領(lǐng)域去做些副業(yè),可以怎么開(kāi)始?歡迎你來(lái)一起討論。

本文由人人都是產(chǎn)品經(jīng)理作者【豆芽悟】,微信公眾號(hào):【豆芽悟】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!