用面向?qū)ο缶幊趟枷搿獦?gòu)建用戶調(diào)查的理論基礎(chǔ)
用戶調(diào)查是開(kāi)發(fā)產(chǎn)品的重要依據(jù),更是產(chǎn)品能否被用戶認(rèn)可的第一步。本篇文章將深入用戶調(diào)查的基礎(chǔ)理論方面,嘗試從基礎(chǔ)理論方面為用戶調(diào)查提供更多有共性、有規(guī)律性、有理論的依據(jù)。
前言:
“沒(méi)有調(diào)查就沒(méi)有發(fā)言權(quán)”,這句話很多人都非常熟悉,其實(shí)這句話還有下半句,知道下半句的人相對(duì)少了很多。
完整的一句話是這樣的:“沒(méi)有調(diào)查就沒(méi)有發(fā)言權(quán),沒(méi)有正確的調(diào)查同樣沒(méi)有發(fā)言權(quán)”。
這句話不僅強(qiáng)調(diào)了調(diào)查的重要性,更強(qiáng)調(diào)了正確調(diào)查的重要性。
在互聯(lián)網(wǎng)行業(yè),用戶調(diào)查絕對(duì)是最高頻的詞匯之一。用戶調(diào)查是開(kāi)發(fā)產(chǎn)品的重要依據(jù),更是產(chǎn)品能否被用戶認(rèn)可的第一步。
隨著用戶調(diào)查的權(quán)重越來(lái)越高,參與過(guò)用戶調(diào)查的人越來(lái)越多。每個(gè)做過(guò)用戶調(diào)查或者對(duì)用戶調(diào)查研究過(guò)的人都有自己的看法。
個(gè)人對(duì)用戶調(diào)查的看法就像讀者看《哈姆雷特》一樣,一千個(gè)讀者眼中有一千個(gè)《哈姆雷特》。
本篇文章將深入用戶調(diào)查的基礎(chǔ)理論方面,嘗試從基礎(chǔ)理論方面為用戶調(diào)查提供更多有共性、有規(guī)律性、有理論的依據(jù)。
為了更好的闡述用戶調(diào)查基礎(chǔ)理論,文章中將首次引面向?qū)ο蟮木幊谭椒?,通過(guò)面向?qū)ο蟮木幊谭椒惐?,運(yùn)用編程理論為用戶調(diào)查找到可行性基礎(chǔ)理論。
在互聯(lián)網(wǎng)的發(fā)展過(guò)程中,隨著市場(chǎng)的變化,用戶調(diào)查也一直在變化當(dāng)中。目前為止,在用戶調(diào)查方面還沒(méi)有可行性的基礎(chǔ)理論。沒(méi)有基礎(chǔ)理論的支持,讓用戶調(diào)查像“薛定諤的貓一樣”,變化莫測(cè)。
在編程中有兩種不同的編程思想:
- 面向過(guò)程(Procedure Oriented):一種以過(guò)程為中心的編程思想;
- 面向?qū)ο?(Object Oriented) :一種以事物為中心的編程思想。
用戶調(diào)查正在進(jìn)行這種演化,需要從面向過(guò)程演化到面向?qū)ο?。通過(guò)采用面向?qū)ο蟮姆绞?,將現(xiàn)實(shí)世界的事物抽象成對(duì)象,現(xiàn)實(shí)世界中的關(guān)系抽象成類、繼承,幫助我們實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的抽象與數(shù)字建模。
通過(guò)面向?qū)ο蟮姆椒?,更利于用人理解的方式?duì)調(diào)查的復(fù)雜問(wèn)題進(jìn)行分析、歸納和演繹。
在我們過(guò)去采用的用戶調(diào)查方法中,由于某些主觀和客觀因素的存在,讓調(diào)查結(jié)果和實(shí)際情況存在不可逆偏差,且存在的偏差隨著調(diào)查人的不同被放大或者縮小。
正是因?yàn)榇嬖谶@樣的問(wèn)題,我們?cè)谧鰶Q策時(shí)通常依賴過(guò)往的經(jīng)驗(yàn),而非調(diào)查結(jié)果。
一、面向過(guò)程和面向?qū)ο蟮膮^(qū)別
兩種編程思想的演化,從面向過(guò)程到面向?qū)ο?,讓編程思想形成了方法論和理論支持。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。
面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。
面向?qū)ο笫前褬?gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。
以拿生活中的實(shí)例來(lái)理解面向過(guò)程與面向?qū)ο蟆?/p>
例如五子棋,面向過(guò)程的設(shè)計(jì)思路就是首先分析問(wèn)題的步驟:1)開(kāi)始游戲,2)黑子先走,3)繪制畫面,4)判斷輸贏,5)輪到白子,6)繪制畫面,70判斷輸贏,8)返回步驟2,9)輸出最后結(jié)果。把上面每個(gè)步驟用不同的方法來(lái)實(shí)現(xiàn)。
如果是面向?qū)ο蟮脑O(shè)計(jì)思想來(lái)解決問(wèn)題,則是另外一種思路。
整個(gè)五子棋可以分為:1)黑白雙方,這兩方的行為是一模一樣的,2)棋盤系統(tǒng),負(fù)責(zé)繪制畫面,3)規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。
第一類對(duì)象(玩家對(duì)象)負(fù)責(zé)接受用戶輸入,并告知第二類對(duì)象(棋盤對(duì)象)棋子布局的變化,棋盤對(duì)象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時(shí)利用第三類對(duì)象(規(guī)則系統(tǒng))來(lái)對(duì)棋局進(jìn)行判定。
可以明顯地看出,面向?qū)ο笫且怨δ軄?lái)劃分問(wèn)題,而不是步驟。
同樣是繪制棋局,這樣的行為在面向過(guò)程的設(shè)計(jì)中分散在了多個(gè)步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橥ǔTO(shè)計(jì)人員會(huì)考慮到實(shí)際情況進(jìn)行各種各樣的簡(jiǎn)化。
而面向?qū)ο蟮脑O(shè)計(jì)中,繪圖只可能在棋盤對(duì)象中出現(xiàn),從而保證了繪圖的統(tǒng)一。
二、過(guò)往用戶調(diào)查方法存在的問(wèn)題
過(guò)往的用戶調(diào)查主要針對(duì)產(chǎn)品的功能角度進(jìn)行模塊化調(diào)查,將用戶調(diào)查的反饋結(jié)果看成是實(shí)現(xiàn)產(chǎn)品迭代的某些功能模塊。面對(duì)日趨復(fù)雜多變的市場(chǎng)環(huán)境,這種思路逐漸在以下幾個(gè)方面暴露了一些弱點(diǎn):
1. 審視問(wèn)題域的視角
在現(xiàn)實(shí)世界中存在的客體是問(wèn)題域中的主角,所謂客體是指客觀存在的對(duì)象實(shí)體和主觀抽象的概念,他是人類觀察問(wèn)題和解決問(wèn)題的主要目標(biāo)。
例如,對(duì)于一個(gè)C2C的交易平臺(tái)來(lái)說(shuō),無(wú)論是簡(jiǎn)單還是復(fù)雜,始終是圍繞用戶和商家這兩個(gè)客體實(shí)施。
在自然界,每個(gè)客體都具有一些屬性和行為,例如用戶有賬號(hào)、年齡、性別等屬性,以及登錄、瀏覽、下單等行為。因此,每個(gè)個(gè)體都可以用屬性和行為來(lái)描述。
通常人類觀察問(wèn)題的視角是這些客體,客體的屬性反應(yīng)客體在某一時(shí)刻的狀態(tài),客體的行為反映客體能從事的操作。
這些操作附在客體之上并能用來(lái)設(shè)置、改變和獲取客體的狀態(tài)。任何問(wèn)題域都有一系列的客體,因此解決問(wèn)題的基本方式是讓這些客體之間相互驅(qū)動(dòng)、相互作用,最終使每個(gè)客體按照依據(jù)調(diào)查結(jié)果做出的決策改變其屬性狀態(tài)。
過(guò)往采用的調(diào)查方法不是將 客體作為一個(gè)整體,而是將依附于客體之上的行為抽取出來(lái),以功能為目標(biāo)來(lái)進(jìn)行用戶調(diào)查。
這種做法導(dǎo)致在進(jìn)行用戶調(diào)查的時(shí)候,不得不將客體所構(gòu)成的現(xiàn)實(shí)世界映射到由產(chǎn)品功能模塊組成的解空間中,這種變換過(guò)程,不僅增加了用戶調(diào)查的復(fù)雜程度,影響了調(diào)查結(jié)果的準(zhǔn)確性,而且背離了人們觀察問(wèn)題和解決問(wèn)題的基本思路。
過(guò)去不規(guī)則的用戶調(diào)查將審視問(wèn)題的視角定位于不穩(wěn)定的操作之上,并將描述客體的屬性和行為分開(kāi),使得調(diào)查結(jié)果不具有指導(dǎo)性,甚至一個(gè)微小的變動(dòng),都會(huì)波及到整個(gè)調(diào)查結(jié)果。
面對(duì)問(wèn)題規(guī)模的日趨擴(kuò)大、環(huán)境的日趨復(fù)雜、需求變化的日趨加快,將用戶調(diào)查的基本方法統(tǒng)一到人類解決問(wèn)題的習(xí)慣方法之上,這是需要采用面向?qū)ο缶幊趟枷脒M(jìn)行用戶調(diào)查的首要原因。
2. 抽象級(jí)別
抽象是人類解決問(wèn)題的基本法寶。良好的抽象策略可以控制問(wèn)題的復(fù)雜程度,增強(qiáng)調(diào)查結(jié)果的通用性和可擴(kuò)展性。
抽象主要包括過(guò)程抽象和數(shù)據(jù)抽象。過(guò)去的用戶調(diào)查方法是過(guò)程抽象。所謂過(guò)程抽象是將問(wèn)題域中具有明確功能定義的操作抽取出來(lái),并將其作為一個(gè)實(shí)體看待。這種抽象級(jí)別對(duì)于用戶調(diào)查結(jié)果來(lái)說(shuō)得有些武斷,并且準(zhǔn)確性差,導(dǎo)致很難得到一份準(zhǔn)確性很高的用戶調(diào)查結(jié)果。
一旦某個(gè)客體屬性的表示方式發(fā)生了變化,就有可能牽扯到已有結(jié)果的很多部分。而數(shù)據(jù)抽象是較過(guò)程抽象更高級(jí)別的抽象方式,將描述客體的屬性和行為綁定在一起,實(shí)現(xiàn)統(tǒng)一的抽象,從而達(dá)到對(duì)現(xiàn)實(shí)世界客體的真正模擬。
3. 封裝體
封裝是指將現(xiàn)實(shí)世界中存在的某個(gè)客體的屬性與行為綁定在一起,并放置在一個(gè)邏輯單元內(nèi)。
這樣做既可以實(shí)現(xiàn)對(duì)客體屬性的保護(hù)作用,又可以提高調(diào)查結(jié)果的通用性。只要客體的屬性和行為不變,任何封裝體內(nèi)部的改變都不會(huì)對(duì)調(diào)查結(jié)果的其他部分造成影響。
過(guò)往的用戶調(diào)查沒(méi)有做到客體的整體封裝,只是封裝了各個(gè)功能模塊,而每個(gè)功能模塊隨著產(chǎn)品功能的改變會(huì)改變客體的屬性,并且由于描述屬性的數(shù)據(jù)與行為被分割開(kāi)來(lái)。
所以一旦某個(gè)客體屬性的表達(dá)方式發(fā)生了變化,或某個(gè)行為效果發(fā)生了改變,就有可能對(duì)整個(gè)調(diào)查結(jié)果產(chǎn)生影響。
4. 可重用性
可重用性標(biāo)識(shí)著調(diào)查結(jié)果的可復(fù)用能力,是衡量一次調(diào)查結(jié)果有用與否的重要標(biāo)志。
當(dāng)今互聯(lián)網(wǎng)行業(yè),人們?cè)絹?lái)越追求更多規(guī)律性、更有通用性的調(diào)查結(jié)果,從而使商業(yè)決策更有據(jù)可源、有律可循,即從過(guò)去“瞎貓碰到死耗子”的商業(yè)決策,演化到科學(xué)客觀的商業(yè)決策,從而推動(dòng)公司的快速擴(kuò)張和發(fā)展。
然而,過(guò)去用戶調(diào)查的基本單位是功能模塊,每個(gè)功能模塊只是實(shí)現(xiàn)特定功能的過(guò)程描述,因此,它的可重用單位只能是模塊。
例如,諾基亞在過(guò)去進(jìn)行用戶調(diào)查時(shí),調(diào)查得到的結(jié)論是用戶需要摔不壞、質(zhì)量更好、通話時(shí)間更長(zhǎng)的手機(jī),但對(duì)于這樣的調(diào)查結(jié)論來(lái)說(shuō),這樣的重用性顯得微不足道,當(dāng)通信網(wǎng)絡(luò)發(fā)生變化時(shí),這樣的調(diào)查結(jié)果沒(méi)有一點(diǎn)價(jià)值,諾基亞也為采用這樣的用戶調(diào)查付出了慘重的代價(jià)。
三、面向?qū)ο笥脩粽{(diào)查方法的概念
1. 對(duì)象
對(duì)象是人們要進(jìn)行研究的任何事物,從最簡(jiǎn)單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對(duì)象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。一個(gè)用戶即可是一個(gè)對(duì)象。
2. 對(duì)象的狀態(tài)和行為
對(duì)象具有狀態(tài),一個(gè)對(duì)象用數(shù)據(jù)值來(lái)描述它的狀態(tài)。
對(duì)象還有操作,用于改變對(duì)象的狀態(tài),對(duì)象及其操作就是對(duì)象的行為。
對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和行為的結(jié)合,使數(shù)據(jù)和行為封裝于對(duì)象的統(tǒng)一體中。
3. 類
具有相同特性和行為的對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說(shuō)類的實(shí)例是對(duì)象,類實(shí)際上就是一種數(shù)據(jù)類型或一種抽象規(guī)則的類型。
類具有屬性,它是對(duì)象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來(lái)描述類的屬性。
類具有操作,它是對(duì)象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來(lái)描述。
4. 類的結(jié)構(gòu)
在客觀世界中有若干類,這些類之間有一定的結(jié)構(gòu)關(guān)系。通常有兩種主要的結(jié)構(gòu)關(guān)系,即一般–具體結(jié)構(gòu)關(guān)系,整體–部分結(jié)構(gòu)關(guān)系。
一般–具體結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以說(shuō)是“或”關(guān)系,整體–部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之間的關(guān)系是一種“與”關(guān)系。
四、面向?qū)ο笥脩粽{(diào)查方法的特征
1. 對(duì)象唯一性:
每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過(guò)這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。
2. 抽象性:
抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。
一個(gè)類就是這樣一種抽象,它反映了與調(diào)查結(jié)果有關(guān)的重要性質(zhì),而忽略其他一些無(wú)關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的調(diào)查有關(guān)。
3. 繼承性:
繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來(lái)進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。
繼承性是面向?qū)ο笥脩粽{(diào)查不同于其它調(diào)查的最重要特點(diǎn),是其他調(diào)查所沒(méi)有的。
在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。
在類層次中,子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。
在用戶調(diào)查中,類的繼承性使所調(diào)查結(jié)果具有開(kāi)放性、延伸性,這是信息組織與分類的行之有效的方法,它簡(jiǎn)化了對(duì)象、類的調(diào)查工作量,增加了調(diào)查結(jié)果的可重用性。
采用繼承性,提供了類的規(guī)范的等級(jí)結(jié)構(gòu)。通過(guò)類的繼承關(guān)系,使調(diào)查結(jié)果能夠共享,提高了調(diào)查結(jié)果的重用性。
4. 多態(tài)性:
多態(tài)性是指相同的操作(行為)或過(guò)程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一調(diào)查問(wèn)題時(shí)可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。
多態(tài)性允許每個(gè)對(duì)象以適合自身的方式去反饋調(diào)查結(jié)果,多態(tài)性增強(qiáng)了調(diào)查結(jié)果的靈活性和重用性。
五、面向?qū)ο笥脩粽{(diào)查的要素
1. 抽象:
抽象是指強(qiáng)調(diào)實(shí)體的本質(zhì)、內(nèi)在的屬性。在用戶調(diào)查中,抽象指的是在決定如何實(shí)現(xiàn)對(duì)象之前的對(duì)象的意義和行為。使用抽象可以盡可能避免過(guò)早考慮一些細(xì)節(jié)。類實(shí)現(xiàn)了對(duì)象的數(shù)據(jù)(即狀態(tài))和行為的抽象。
2. 封裝性:
封裝性是保證調(diào)查結(jié)果具有優(yōu)良的模塊性基礎(chǔ)。
面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說(shuō)明(被調(diào)查用戶可見(jiàn)的信息)與實(shí)現(xiàn)(被調(diào)查用戶的不可見(jiàn)內(nèi)在規(guī)律)顯式地分開(kāi),其調(diào)查結(jié)果內(nèi)部實(shí)現(xiàn)按其具體定義進(jìn)行抽象劃分。
對(duì)象是封裝的最基本單位。封裝防止了調(diào)查結(jié)果相互依賴性而帶來(lái)的變動(dòng)影響。面向?qū)ο蟮姆庋b比傳統(tǒng)用戶調(diào)查的封裝更為清晰、更為有力。
3. 共享性:
面向?qū)ο蟮恼{(diào)查結(jié)果在不同級(jí)別上促進(jìn)了共享。同一類中的對(duì)象有著相同數(shù)據(jù)結(jié)構(gòu)、相同的行為特征。這些對(duì)象之間是結(jié)構(gòu)、行為特征的共享關(guān)系。
六、面向?qū)ο笥脩粽{(diào)查的對(duì)象模型
對(duì)象模型表示了靜態(tài)的、結(jié)構(gòu)化的調(diào)查結(jié)果數(shù)據(jù)性質(zhì),描述了調(diào)查結(jié)果的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來(lái)描述,表現(xiàn)了對(duì)象的相互關(guān)系。該模型主要關(guān)心系統(tǒng)中對(duì)象的結(jié)構(gòu)、屬性和操作。
1. 對(duì)象和類
(1)對(duì)象:
對(duì)象建模的目的就是描述對(duì)象。
(2)類:
通過(guò)將對(duì)象抽象成類,我們可以使問(wèn)題抽象化,抽象增強(qiáng)了模型的歸納能力。
(3)屬性:
屬性指的是類中對(duì)象所具有的性質(zhì)(數(shù)據(jù)值)。
(4)操作和方法:
操作是類中對(duì)象所使用的一種功能或變換。類中的各對(duì)象可以共享操作,每個(gè)操作都有一個(gè)目標(biāo)對(duì)象作為其隱含行為。方法是類的操作的實(shí)現(xiàn)步驟。
2. 關(guān)聯(lián)和鏈
(1)關(guān)聯(lián)和鏈的含義:
關(guān)聯(lián)是建立類之間關(guān)系的一種手段,而鏈則是建立對(duì)象之間關(guān)系的一種手段。
鏈表示對(duì)象間的物理與概念聯(lián)結(jié),關(guān)聯(lián)表示類之間的一種關(guān)系,鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例,關(guān)聯(lián)是鏈的抽象。
(2)角色
角色說(shuō)明類在關(guān)聯(lián)中的作用,它位于關(guān)聯(lián)的端點(diǎn)。
(3)關(guān)聯(lián)的多重性:
關(guān)聯(lián)的多重性是指類中有多少個(gè)對(duì)象與關(guān)聯(lián)的類的一個(gè)對(duì)象相關(guān)。重?cái)?shù)常描述為“一”或“多”。
3. 類的層次結(jié)構(gòu)
(1)聚集關(guān)系:
聚集是一種“整體-部分”關(guān)系。在這種關(guān)系中,有整體類和部分類之分。聚集最重要的性質(zhì)是傳遞性,也具有逆對(duì)稱性。
聚集可以有不同層次,可以把不同分類聚集起來(lái)得到一顆簡(jiǎn)單的聚集樹(shù),聚集樹(shù)是一種簡(jiǎn)單表示,比畫很多線來(lái)將部分類聯(lián)系起來(lái)簡(jiǎn)單得多,對(duì)象模型應(yīng)該容易地反映各級(jí)層次。
(2)一般化關(guān)系:
一般化關(guān)系是在保留對(duì)象差異的同時(shí)共享對(duì)象相似性的一種高度抽象方式。它是“一般—具體”的關(guān)系。
一般化類稱為你類,具體類又能稱為子類,各子類繼承了父類的性質(zhì),而各子類的一些共同性質(zhì)和操作又歸納到你類中。
因此,一般化關(guān)系和繼承是同時(shí)存在的。一般化關(guān)系的符號(hào)表示是在類關(guān)聯(lián)的連線上加一個(gè)小三角形。
4. 對(duì)象模型
(1)模板:
模板是類、關(guān)聯(lián)、一般化結(jié)構(gòu)的邏輯組成。
(2)對(duì)象模型:
對(duì)象模型是由一個(gè)或若干個(gè)模板組成。模板將模型分為若干個(gè)便于管理的子塊,在整個(gè)對(duì)象模型和類及關(guān)聯(lián)的構(gòu)造塊之間,模板提供了一種集成的中間單元,模板中的類名及關(guān)聯(lián)名是唯一的。
#專欄作家#
老漂,微信公眾號(hào):老漂運(yùn)營(yíng)筆記,人人都是產(chǎn)品經(jīng)理專欄作家。4年用戶增長(zhǎng)、互聯(lián)網(wǎng)營(yíng)銷、微信生態(tài)探索者。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash ,基于 CC0 協(xié)議
你要不要自己讀一遍你寫的啥?