(點選上方公眾號,可快速關註)
來源:袁鳴凱,
blog.csdn.net/lifetragedy/article/details/8264797
前言:
這篇是一篇番外篇,沒有太多程式碼與邏輯,完全是一種”軟“技巧,但是它對於你如何成為一名合構的架構設計人員很重要。
在此要澄清一點,架構師本身也是”程式員“,不是光動嘴皮子的傢伙們,如果你不是一名程式雖出身那你根本談不上也不可能成為一名架構師。
那麼架構師還有哪些是作為一名程式員來說不具備的呢?
其中有一項能力就叫做”檔案寫作能力“。
一、Soft Skill與Hard Skill
作為一名架構師除了是一名資深的程式員外,它還必須具有相應的Soft Skill,其中有一名就叫做Documentation Skill。
1. 先來說一下Hard Skill
程式碼與框架以及產品的靈活使用以及在相應的domain(如Insurance, Banking, CRM, DW。。。)上的經驗我們把它稱為Hard Skill,沒有這些技巧你就成不了一名合格的程式員。
程式員和IT是有區別的,程式員是IT業內的主力軍團,但是如果你是在一家網站或者是軟體司作需求分析的,哪怕是一個秘書,那你也是一個IT人員,對吧?所以這些東西是一個成為架構師的“硬”條件。
2. 什麼是Soft Skill
Soft Skill即指Documentation Skill, Presentation Skill,Communication Skill, 相應的Language Skill(不包括日本語,BS小日本), Management Skill, Leader Ship, 這些.
當然,還有更多,更多。。。
2.1 Documentation Skill與Presentation Skill
今天主要講述的是Documentation Skill與Presentation Skill。
勿要小看這兩點,有人說他自己程式設計編得好,有人說自己的演演算法寫瞭如何如何精深,那麼。。。在現在這個團隊合作至上以及處於目前這樣的世界經濟大環境以客戶至上的背景下你所知道的的東西不能向其它人表達清楚,誰會理解你的想法,誰會接受你的理念,誰會選擇你公司的產品呢?
舉兩個例子:
蘇步青,他是大數學家,對吧,或許不少人不知道蘇步青在文學上的造詣也是很深的。
蘇步青曾說過:為什麼我喜歡語文,語言,因為我的論文,我的教材需要用語言去表達的,如果不把語言,語文學好我根本無法更精準更明白的去表達我的演演算法。
著名計算機學者C語言教程的作者譚好強曾經說過:能夠把複雜的問題用簡單直白的語言和框圖去表達出來,就是最好的論文。
再說個實際點的例子,你處於一個投標競賽中,你的設計或許是很好,可是如何讓客戶能夠理解和接受貴公司的設計方案呢?
那麼你需要在平時有意識的去提高或者我們說修練一下你的documentation skill,documentation skill與presentation skill是聯絡在一起的.
2.2 要善於懂得“包裝”
Presentation Skill即”宣傳、演示、演講、推銷”的一種技巧,很多人在面對你的同事或者朋友時可能會滔滔而談,但是在面對你的上司或者是在客戶面前,就成了“縮貨”了。。。為什麼?
其實很多時候在於你演講的底稿我們一般用PPT或者是WORD準備的不足,獃板、凡味,還有時在於你的設計確實自己也拿捏不準。
因此Hard Skill是你的底氣,有了足夠硬的Hard Skill你有了50%的膽子再加上一篇好的Document(PPT一類)你的另50%膽子也有了,此時你的Presentation Skill就提升了.
所以很多時候你的Presentation Skill是等於Hard Skill+Documentation Skill的。
有一部片叫《幸德勒的名單》相信不少人看過吧?開頭30分鐘,靠著不足萬元“老本”的幸德勒來到了猶太人聚集地,找到了猶太會計師-以撒.斯坦,他滔滔而談自己成立公司的計劃,如何可以掙錢。然後以撒.斯坦問了他一句:
請讓我弄明白一件事,我出人,然後我找”金主“出錢,那你出什麼。。。?
幸德勒吸了一口煙,雙手合在一起後向外一推 ”presentation, 這是我最擅長的“,這邊的presentation也可認為是一種包裝.
同樣一個中國生產的杯子和美國,如果效能、功能、使用壽命都一樣,相信一定是美國貨賣得貴,為什麼?因為它在有了Hard Skill基礎上再次進行了”包裝“,這就是”好萊塢式”的促銷手法。
要學會“包裝”但不是扯蛋和吹牛,因為架構師拿出來的東西哪怕再漂亮,如果沒有內含那也是“濫竽充數”,被人識破後就一錢不值了。但是我們在有好的質量好的技術的基礎上善於去“包裝”它,相信你會離成功更近一步。
三、如何寫好一篇檔案和提高你的documentation skill
我在前公司有一陣沒空,一度讓其它幾個senior的Team Leader幫助我寫檔案,要求把設計按照需求能夠寫清即可。
送上來5篇文章,基本一篇都不能用.
第一次送上來,每篇都是講一個功能點,要不是冗長的一段沒意義的解釋,要不就是從官網直接COPY一段話下來,甚至連1,2,3,4都沒列出來,至少你要有個Advantage Points 或者說是Benefit和Disadvantage Points的對比吧.
第二次送上來,有了1,2,3,4,但是這下好了,全都標成1,2,3,4了。
要善於利用office編輯器中的“符號串列”,“4角星”代表亮點,“√”代表優點,”小點點“放在段落前用來將功能點說明”分層“,使閱話者更清晰.
這樣說吧,你把自己當成一個閱讀者了嗎?對吧?
3.1 一圖勝千言
我們在描述一個審計日誌功能模組時我們說用Spring做,如果能夠附上下麵這樣的一張圖是不是會更加生動呢?
一個架構檔案,從基本的來講需要有:
-
Logic View(邏輯檢視)
-
Physical View(物理檢視)
-
Network Structure(網路拓卜圖)
-
Workflow/Process Flow(流程圖)
你在描述你的流程時你怎麼表達你的if else if else,對吧?有個流程圖是不是會更好讓人懂你所描述的這個流程是一個什麼樣子的呢?
那我畫個流程圖去。。。畫啊畫,畫完後拿過來一看:
黑線框、框內有幾個字,幾個帶箭頭的線連一下。。。不錯。。。是畫對了,可是你有沒有想過,有些業務場景中流程圖往往還要表達不同的”業務邊界“啊。。。
拿下麵的一個圖來說,是不是這樣的表達比只有黑框框+帶箭頭的線+幾個文字更加易懂啊?
3.2 畫好你的圖
3.2.1 架構圖的配色與表達手法
不要認為畫圖是”美工“的事,你是設計人員,你是架構師,畫好一個應用圖是你的本職工作,圖中需要什麼圖示可以把你的需求告訴美工,美工再會去處理。
一般來說,我們為了表達一個系統的模組組成,我們通常會用:component view來表達如下麵這樣的圖
這個被稱為”自上而下“的一個平面圖,用於表示”服務邊界“
如果你考究的話還可以提供一個”剖檢視“,如典型的用於表示詳細業務元件的”側面剖檢視“:
這種Component View一般都是跟著你的總架構圖和網路拓卜圖的後面出現的,這三套圖我稱它為“炮鳴三聲”(起兵啦。。。)。
因此這樣的圖往往會使用“暖色調”,以幾何或者立體的色塊來展現,帶給觀看者強烈的視覺衝擊,架構師的功底基本可以集中體現在這三套圖中,這三套圖同時也起到了“先聲奪人”吸引觀眾的眼球,註意力的作用(那邊的女孩看過來看過來,我的鈔票多。。。嘿嘿嘿)
如下麵這樣的一個總架構圖的表現手法:
對吧,暖色調,以幾何或者立體的色塊來展現
3.2.2 以圖繪意
我這邊提個問題:如何表達一個”業務規則“,如何去表達一個”工作流“,就是”業務規則“這四個字我用圖怎麼表達。。。工作流這三個字我用圖怎麼表達?大家想一下。
來,看看下麵的圖:
這個圖一看就知道是在表達process或者說是工作流
這個圖代表”規則“,規則就是一組if else if if
對吧。。。現在來個更難的,我的業務規則用的是規則引擎,且內核是jboss rulz,嘿嘿,怎麼用圖示達,來。。。下麵給出我的答案:
對吧。。。看到了嗎。。。圖用來繪意,但圖不能亂用,就拿這個”系統中使用了JBOSS RULZ來作為規則引擎”這個描述來說,你要畫的圖其實是建立在你的Hard Skill上的。
3.2.3 依照“八股文”來繪製設計圖
八股文就是有條理有章矩,不管什麼樣的文章你按照八股文去寫,寫出來都是一樣的層次,我們考四級英語的“寫作”這一本時其實也是有“章法”可循的對吧?
那麼這個設計圖的畫法也是有章可循的,也是有它的“八股文”樣板的。
前面說了,上手三套圖先聲奪人,搶人二目,那麼在架構設計檔案中還會充質著種種模組,子模組,功能設計,功能點描述圖。。。如果你也來個一概而論,那就不是先聲奪人了,而是“喧賓奪主“了,呵呵呵。
這種子模組、功能設計或者是功能點描述往往往以點、線為主,以點、線來連成一個面,而面中”婁空“,如下麵的樣例:
四、如何畫出準確且“漂亮”的設計圖呢
七叔:You are beautiful…啊…you are beautiful…You are so handsome…啊You are so handsome…
周星星:七叔,你不要這樣好吧。。。七叔。。。來人啊。。。
我在前一天即第二十五天中用來描述DbUnit的優點時用到了一套圖,它們是這樣的,大家還記得吧?
右邊的文字,沒什麼稀罕的,都是配色而己,關鍵在於左邊的這個圖。。。hoho,很多人問我用的是什麼工具畫的?
我告訴你們,我不是美工,我其實是在“拼圖”,如這幅圖的製作:
我是用了以下這5幅小圖示,拼制而成的:
不是這麼簡單的,隨便畫畫就成了,都要花功夫的、花心思去製作的。
-
平時自己看到好的可以表達某個意義的圖片,存下來,分門別類
-
看到人家寫的好的架構檔案,存下來,看看人家是怎麼去描述一個功能點的
-
多蒐集一些IT上專用的圖示,小圖片,logo
IBM的檔案是我看到過最恐怖的檔案,基本上這裡面的架構檔案出來都一個腔調,沒什麼文字,都是圖,連個“登入過程”都用圖表達,連個“原始碼check in check out”的管理流程都用圖表達。
保持你的圖系一致及風格的一致,你可以用卡通系、商務系任何一個系的圖來表達你的設計思想,但是當你的第一幅圖用的就是哪個系時,你的檔案中所有的圖都請用這個系列,而不建議你混雜使用你的圖系。
五、圖文混雜的技巧
什麼都不多說,上截圖,大家自己去感受一下吧
今天就說這麼多,希望對大家提高你的設計檔案寫作水平有所提高吧。
系列
看完本文有收穫?請轉發分享給更多人
關註「ImportNew」,提升Java技能