新聞中心

EEPW首頁(yè) > 牛人業(yè)話 > 嵌入式軟件設(shè)計(jì)的極簡(jiǎn)主義

嵌入式軟件設(shè)計(jì)的極簡(jiǎn)主義

作者:驢三 時(shí)間:2019-09-27 來(lái)源:電子產(chǎn)品世界 收藏

多年前,胡適先生發(fā)表過(guò)一篇文章-《多研究些問(wèn)題,少談些主義》,大意是空談?wù)`國(guó),與其做些主義的爭(zhēng)論,不如多干點(diǎn)實(shí)事云云。據(jù)說(shuō),文章甫出,便迎來(lái)罵聲一片,足見(jiàn)國(guó)人對(duì)“主義”情有獨(dú)鐘,絕非個(gè)別文人兩句話就可回轉(zhuǎn)心意的。

本文引用地址:http://butianyuan.cn/article/201909/405368.htm

被小資情調(diào)酥軟了骨頭的胡適君當(dāng)然理解不了“主義”的力量。在之后波瀾壯闊的幾十年里,走長(zhǎng)征,過(guò)草地,艱苦抗戰(zhàn),靠著小米加步槍推翻壓在舊中國(guó)頭頂?shù)娜笊?,無(wú)一不是在共產(chǎn)主義的光輝指引下完成的驚天壯舉。

主義的力量是無(wú)窮的。今天,我想談一談嵌入式軟件設(shè)計(jì)這項(xiàng)同樣偉大光輝正確的事業(yè)中的主義。

1

電子行業(yè)發(fā)展近百年,產(chǎn)品形式多樣、高度靈活,又可隨意定制,在這混亂與嘈雜中,各大標(biāo)準(zhǔn)組織相繼成立門戶,制定軍規(guī)。多年下來(lái),硬件設(shè)計(jì)早已有章可循,條條框框有板有眼,軟件設(shè)計(jì)亦逐漸規(guī)范,標(biāo)準(zhǔn)林立。照理說(shuō),對(duì)于同一個(gè)要求,只要按規(guī)范和標(biāo)準(zhǔn)來(lái),大家做出的東西就像異父異母的親兄弟一樣,令人免不得生出東哥一般的臉盲癥來(lái)。

但是,電子工程師偏偏是一個(gè)不甘于寂寞的群體。荷爾蒙在體內(nèi)奔騰,內(nèi)啡肽在腦子里游走,不在產(chǎn)品上折騰一番,怎么告慰這“無(wú)處安放的青春”?

于是乎我們看到,盡管是同樣功能的東西,設(shè)計(jì)人員們把它搞得形式多樣,真可謂龍生九子,個(gè)個(gè)不同。而且,相比較于硬件開(kāi)發(fā),軟件設(shè)計(jì)更加個(gè)性化,折騰空間更大。于是乎,在這令人眼花繚亂的設(shè)計(jì)背后,有一個(gè)直擊工程師靈魂的問(wèn)題——兄臺(tái)是遵循什么樣的設(shè)計(jì)理念開(kāi)發(fā)產(chǎn)品的?

1569560957248440.jpg

設(shè)計(jì)理念是一種讓菜鳥們摸不到頭腦的存在,但是大佬們說(shuō),它實(shí)實(shí)在在地貫穿于產(chǎn)品的整個(gè)設(shè)計(jì)過(guò)程,決定了所設(shè)計(jì)產(chǎn)品的呈現(xiàn)方式、使用方式、便利性、穩(wěn)定性、質(zhì)量等一系列要素。

據(jù)說(shuō),做出過(guò)爆品的大公司都特別講究設(shè)計(jì)理念問(wèn)題,對(duì)于某個(gè)面向特定行業(yè)特定人群的特定產(chǎn)品,設(shè)計(jì)理念往往對(duì)產(chǎn)品的成敗起著決定性的作用。坊間經(jīng)常流傳大公司內(nèi)部高管之間狗血般的內(nèi)斗,但是又據(jù)說(shuō),有些人身攻擊和對(duì)立完全是技術(shù)層面,是在產(chǎn)品設(shè)計(jì)理念上存在不可調(diào)和的沖突延伸而來(lái)的斗爭(zhēng)。

設(shè)計(jì)理念既然如此重要,對(duì)于人微言輕、處于嵌入式行業(yè)最前線的設(shè)計(jì)人員的我們,同樣要貫徹正確的設(shè)計(jì)理念來(lái)指導(dǎo)我們的設(shè)計(jì)工作。

2

軟件設(shè)計(jì)非常靈活,幾句代碼敲下去,功能就阿里阿里巴巴變了,這種極強(qiáng)的可變性導(dǎo)致它很容易出質(zhì)量問(wèn)題。在建筑領(lǐng)域有個(gè)口號(hào)說(shuō)‘質(zhì)量問(wèn)題重于泰山’,這樣的話同樣適用于航空航天、軍工、醫(yī)療電子、汽車電子等安全攸關(guān)的領(lǐng)域。

遠(yuǎn)的就不說(shuō)了,我就問(wèn)問(wèn)諸君,您還敢坐波音的飛機(jī)嗎?

可是,軟件質(zhì)量問(wèn)題又有著太多不可控的因素,設(shè)計(jì)人員的身體狀況、心情狀態(tài)、編碼習(xí)慣、編碼水平、工作態(tài)度、思維方式、創(chuàng)造能力甚至人生觀、價(jià)值觀、世界觀等等看似與軟件設(shè)計(jì)無(wú)關(guān)的要素都會(huì)對(duì)軟件最終的實(shí)現(xiàn)起到或多或少的影響。如此這般靈活,使得軟件質(zhì)量問(wèn)題成為業(yè)界最為關(guān)注的因素。

目前在軟件質(zhì)量的控制上,有管理制度的支撐、工具的支持、過(guò)程控制的約束,這些都對(duì)改進(jìn)軟件質(zhì)量起到了一定的作用。但是,軟件設(shè)計(jì)更多的時(shí)候是一項(xiàng)依賴于設(shè)計(jì)人員自身稟賦天性的技能,而不是一種純粹的科學(xué),任何外在的支持,其作用都無(wú)法代替軟件設(shè)計(jì)者自身的技能和專業(yè)素養(yǎng)。

1.jpg

來(lái)源:千庫(kù)網(wǎng)

從技術(shù)需求分析出發(fā),到架構(gòu)的選定、模塊的劃分,到代碼的最終呈現(xiàn),不同專業(yè)水準(zhǔn)的設(shè)計(jì)人員,其設(shè)計(jì)過(guò)程及最終代碼層面的實(shí)現(xiàn)都有著顯著的差別,這些也會(huì)對(duì)后續(xù)的維護(hù)、升級(jí)產(chǎn)生深遠(yuǎn)的影響。

故而,在軟件設(shè)計(jì)的整個(gè)過(guò)程中,秉持正確的設(shè)計(jì)理念對(duì)軟件設(shè)計(jì)起著決定性的作用,它不僅對(duì)當(dāng)前設(shè)計(jì)過(guò)程的推進(jìn)和控制起到正向作用,還會(huì)簡(jiǎn)化產(chǎn)品在整個(gè)生命周期內(nèi)的維護(hù)與升級(jí)工作。

OK,設(shè)計(jì)理念很重要,那么,到底要在嵌入式軟件設(shè)計(jì)中遵循什么樣的設(shè)計(jì)理念,或者說(shuō)主義呢?

3

我今天想向大家掰扯掰扯的設(shè)計(jì)理念就是大家都聽(tīng)說(shuō)過(guò),但是可能沒(méi)有認(rèn)真深入研究過(guò)的“極簡(jiǎn)主義”。

極簡(jiǎn)主義是建筑設(shè)計(jì)領(lǐng)域的一種設(shè)計(jì)理念和美學(xué)概念,它強(qiáng)調(diào)摒棄一切無(wú)用的細(xì)節(jié),追求最純粹最本真的呈現(xiàn),已經(jīng)應(yīng)用到建筑設(shè)計(jì)、工業(yè)品設(shè)計(jì)、服裝設(shè)計(jì)、家居設(shè)計(jì)等領(lǐng)域中,而在軟件設(shè)計(jì)領(lǐng)域,貫徹極簡(jiǎn)主義的設(shè)計(jì)理念同樣會(huì)對(duì)軟件開(kāi)發(fā)過(guò)程起到巨大的推動(dòng)作用。

下面我就不惜眉毛,從需求分析、設(shè)計(jì)方案兩個(gè)方面給大家剖析一下極簡(jiǎn)主義的作用。

[需求分析]-把復(fù)雜變簡(jiǎn)單!

需求分析是軟件設(shè)計(jì)的重頭戲,在審視所設(shè)計(jì)產(chǎn)品的功能性能需求時(shí),在繁雜多樣的需求規(guī)格說(shuō)明書中迅速把握和區(qū)分產(chǎn)品核心功能和細(xì)枝末節(jié),對(duì)于產(chǎn)品的深入理解及設(shè)計(jì)方案的選擇制定有著至關(guān)重要的指導(dǎo)意義。

在需求分析過(guò)程中堅(jiān)持極簡(jiǎn)主義的設(shè)計(jì)理念,會(huì)讓我們厘清思路,迅速把握產(chǎn)品基本架構(gòu)、功能的基本剖面,避免陷入紛繁條目的泥淖,犯下不識(shí)廬山真面目的錯(cuò)誤。

通過(guò)化繁為簡(jiǎn),設(shè)計(jì)人員可以把主要精力牢牢關(guān)注在核心要素上,在有限的人力物力資源下,為必要的核心要素建立嚴(yán)格的性能指標(biāo)和測(cè)試標(biāo)準(zhǔn),避免為了一些細(xì)枝末節(jié)的小功能,而在主要功能、基本要素上做出設(shè)計(jì)上的妥協(xié)。

[設(shè)計(jì)方案]-最簡(jiǎn)單的實(shí)現(xiàn)方式更容易貼近功能的本質(zhì)

條條大路通羅馬,但是兩點(diǎn)之間,直線最短。

在多種設(shè)計(jì)方案的權(quán)衡和選擇上堅(jiān)持極簡(jiǎn)主義,就是在功能和實(shí)現(xiàn)之間“走直線”,便是以結(jié)果為導(dǎo)向,始終追求最高效、最簡(jiǎn)潔的方法。體現(xiàn)在軟件設(shè)計(jì)中,便是貫徹最簡(jiǎn)原則,秉持“若無(wú)必要,勿增實(shí)體”的奧卡姆剃刀原則,揮舞鋒利的奧卡姆剃刀,化繁為簡(jiǎn),尋求最簡(jiǎn)單的實(shí)現(xiàn)方式,同時(shí)從極簡(jiǎn)中尋求可控,增強(qiáng)對(duì)軟件的掌控感。

它背后的邏輯是:對(duì)所實(shí)現(xiàn)功能的理解越深刻,實(shí)現(xiàn)方式越簡(jiǎn)單,設(shè)計(jì)方案與功能邏輯的距離越短,也更能體現(xiàn)功能的內(nèi)在邏輯。隨意的、通常也是復(fù)雜的實(shí)現(xiàn)會(huì)占用我們過(guò)多的精力,把眼界限制在與功能邏輯有相當(dāng)距離的設(shè)計(jì)實(shí)現(xiàn)上,從而把問(wèn)題的本質(zhì)拉遠(yuǎn)、掩蓋,把本來(lái)簡(jiǎn)單清晰的東西搞得復(fù)雜起來(lái),使人迷失在邏輯的迷宮里。

但是,把簡(jiǎn)單變復(fù)雜很容易,把復(fù)雜變簡(jiǎn)單很困難!

1569561006192565.gif

舍繁就簡(jiǎn),不僅考驗(yàn)設(shè)計(jì)者的專業(yè)功底,更考驗(yàn)設(shè)計(jì)者的發(fā)散思維和創(chuàng)造能力。它需要我們深入理解功能的含義、條件、內(nèi)部細(xì)節(jié)、上下文,在初次設(shè)計(jì)的基礎(chǔ)上反復(fù)斟酌,花心思考慮怎樣以比當(dāng)前簡(jiǎn)單的方式實(shí)現(xiàn)。

軟件設(shè)計(jì)從來(lái)就不是一蹴而就的,在邁向其最終實(shí)現(xiàn)的路途中,要充滿耐心地一次次迭代、重構(gòu)和優(yōu)化,從復(fù)雜而模糊的代碼泥淖中,找到前行的路。以清晰的軟件結(jié)構(gòu)、與邏輯相近的設(shè)計(jì)語(yǔ)言描述,尋求最簡(jiǎn)的功能實(shí)現(xiàn)。

苦心人天不負(fù),三千越甲可吞吳!極簡(jiǎn)主義帶來(lái)的回報(bào)同樣是豐厚的,首先它會(huì)讓軟件質(zhì)量更好控制,因?yàn)閺?fù)雜的東西會(huì)擴(kuò)散風(fēng)險(xiǎn),只有簡(jiǎn)單的東西才能做到風(fēng)險(xiǎn)可控。其次,前人栽樹(shù)后人乘涼,它會(huì)使得之后的維護(hù)工作更加簡(jiǎn)單易行,從而助你早日擺脫996。

后記

極簡(jiǎn)主義不是片面追求簡(jiǎn)單、偷工減料,相反,它要求在特定的需求下、具體的設(shè)計(jì)中,將性能做到極致、實(shí)現(xiàn)做到最簡(jiǎn),這種對(duì)性能的追求、對(duì)最簡(jiǎn)實(shí)現(xiàn)方式的苛求對(duì)設(shè)計(jì)工作提出了更高的要求。

極簡(jiǎn)主義在設(shè)計(jì)實(shí)踐中的體現(xiàn)及應(yīng)用不是寬泛的,而是非常具體而微的,它體現(xiàn)在你的軟件結(jié)構(gòu)設(shè)計(jì)、模塊劃分和接口的定義、每個(gè)函數(shù)的實(shí)現(xiàn)、每條語(yǔ)句的權(quán)衡甚至每個(gè)變量的選擇上。在孜孜不倦得對(duì)代碼進(jìn)行優(yōu)化再優(yōu)化、重構(gòu)再重構(gòu)的過(guò)程中,極簡(jiǎn)主義幫助設(shè)計(jì)者更加洞察產(chǎn)品,更加快速得由必然王國(guó)邁向軟件設(shè)計(jì)的自由王國(guó)。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉