隨著互聯(lián)網寒冬的的到來,程序員就業(yè)環(huán)境越來越嚴峻,這就要求我們必須要不斷提高自己,來應對高壓的工作環(huán)境。下面介紹的這幾種圖是我在工作中經常使用的,所謂的圖,都是為了輔助思考的,輔助開發(fā)的,比文字描述的更清晰,更有邏輯。
前些年,網上有一個口號喊得很響:“人人都是產品經理”。這就要求我們需要學習認圖、畫圖的技巧,能從需求文檔里快速的抽象出我們想要的東西。最近,網上曝出的程序員和產品經理之間的矛盾,大都是需求不清晰產生的,作為程序員的我們如果掌握的產品經理所必須的技能,那我們以后就可以吊打產品經理了,哈哈哈哈。。。
流程圖
定義:
流程圖是對過程、算法、流程的一種圖像表示,在技術設計、交流及商業(yè)簡報等領域有廣泛的應用。
案例:

計算機語言只是一種工具。光學習語言的規(guī)則還不夠,最重要的是學會針對各種類型的問題,擬定出有效的解決方法和步驟即算法。有了正確而有效的算法,可以利用任何一種計算機高級語言編寫程序,使計算機進行工作。因此,設計算法是程序設計的核心。
對同一個問題,可以有不同的解題方法和步驟。
例如,求1+2+3+…+100,可以先進行1+2,再加3,再加4,一直加到100,也可采取100+(1+99)+(2+98)+…+(49+51)+50=100+50+49×100=5050。
還可以有其它的方法。當然,方法有優(yōu)劣之分。有的方法只需進行很少的步驟,而有些方法則需要較多的步驟。一般說,希望采用方法簡單,運算步驟少的方法。因此,為了有效地進行解題,不僅需要保證算法正確,還要考慮算法的質量,選擇合適的算法。
一個計算問題的解決過程通常包含下面幾步:
a.確立所需解決的問題以及最后應達到的要求。必須保證在任務一開始就對它有詳細而確切的了解,避免模棱兩可和含混不清之處。
b.分析問題構造模型。在得到一個基本的物理模型后,用數學語言描述它,例如列出解題的數學公式或聯(lián)立方程式,即建立數學模型。
c.選擇計算方法。如定積分求值問題,可以用矩形法、梯形法或辛普生法等不同的方法。因此用計算機解題應當先確定用哪一種方法來計算。專門有一門學科“計算方法”,就是研究用什么方法最有效、最近似地實現各種數值計算的,換句話說,計算方法是研究數值計算的近似方法的。
d.確定算法和畫流程圖。在編寫程序之前,應當整理好思路,設想好一步一步怎樣運算或處理,即為“算法”。把它用框圖畫出來,用一個框表示要完成的一個或幾個步驟,它表示工作的流程,稱為流程圖。它能使人們思路清楚,減少編寫程序中的錯誤。
f.編寫程序。
g.程序調試,即試算。一個復雜的程序往往不是一次上機就能通過并得到正確的結果的,需要反復試算修改,才得到正確的可供正式運行的程序。
h.正式運行得到必要的運算結果。
傳統(tǒng)流程圖
用圖表示的算法就是流程圖。流程圖是用一些圖框來表示各種類型的操作,在框內寫出各個步驟,然后用帶箭頭的線把它們連接起來,以表示執(zhí)行的先后順序。用圖形表示算法,直觀形象,易于理解。
美國國家標準化協(xié)會ANSI曾規(guī)定了一些常用的流程圖符號,為世界各國程序工作者普遍采用。最常用的流程圖符號見圖。
a.處理框(矩形框),表示一般的處理功能。
?
b.判斷框(菱形框),表示對一個給定的條件進行判斷,根據給定的條件是否成立決定如何執(zhí)行其后的操作。它有一個入口,二個出口。
?
c.輸入輸出框(平行四邊形框)。
?
d.起止框(圓弧形框),表示流程開始或結束。
?
f.連接點(圓圈),用于將畫在不同地方的流程線連接起來。如圖中有兩個以1標志的連接點(在連接點圈中寫上“l(fā)”)則表示這兩個點是連接在一起的,相當于一個點一樣。用連接點,可以避免流程線的交叉或過長,使流程圖清晰。
?
g.流程線(指向線),表示流程的路徑和方向。
?
h.注釋框, 是為了對流程圖中某些框的操作做必要的補充說明,以幫助閱讀流程圖的人更好地理解流程圖的作用。它不是流程圖中必要的部分,不反映流程和操作。

流程圖不僅可以指導編寫程序,而且可以在調試程序中用來檢查程序的正確性。如果框圖是正確的而結果不對,則按照框圖逐步檢查程序是很容易發(fā)現其錯誤的。流程圖還能作為程序說明書的一部分提供給別人,以便幫助別人理解你編寫程序的思路和結構。
工具軟件:Visio,億圖,ProcessOn
PS:墻裂推薦大家使用ProcessOn,畫流程圖的神器?。?!
思維導圖
定義:
心智圖(Mind Map),又稱腦圖、心智地圖、腦力激蕩圖、思維導圖、靈感觸發(fā)圖、概念地圖、樹狀圖、樹枝圖或思維地圖,是一種圖像式思維的工具以及一種利用圖像式思考輔助工具來表達思維的工具。
歷史:
心智圖是由英國的托尼·博贊(托尼·布詹)于1970年代提出的一種輔助思考工具。心智圖通過在平面上的一個主題出發(fā)畫出相關聯(lián)的對象,像一個心臟及其周邊的血管圖,故稱為“心智圖”。由于這種表現方式比單純的文本更加接近人思考時的空間性想像,所以越來越為大家用于創(chuàng)造性思維過程中。
案例:




工具軟件:百度腦圖,Xmind
ps:我一般都是用的百度腦圖,在線的比較方便
網絡拓撲圖
定義:
拓撲學(TOPOLOGY)是一種研究與大小、距離無關的幾何圖形特性的方法。 網絡拓撲是由網絡節(jié)點設備和通信介質構成的網絡結構圖。
拓撲學是數學中一個重要的、基礎的分支。起初它是幾何學的一支,研究幾何圖形在連續(xù)變形下保持不變的性質(所謂連續(xù)變形,形象地說就是允許伸縮和扭曲等變形,但不許割斷和粘合) 拓撲圖用于計算機網絡示意,也就是不考慮計算機實際的位置,只表示網絡中每臺計算機以及網絡設備之間的相互關系。
基本術語:
節(jié)點,節(jié)點就是網絡單元。網絡單元是網絡系統(tǒng)中的各種數據處理設備、數據通信控制設備和數據終端設備。
鏈路,鏈路是兩個節(jié)點間的連線。鏈路分“物理鏈路”和“邏輯鏈路”兩種,前者是指實際存在的通信連線,后者是指在邏輯上起作用的網絡通路。鏈路容量是指每個鏈路在單位時間內可接納的最大信息量。
通路,通路是從發(fā)出信息的節(jié)點到接收信息的節(jié)點之間的一串節(jié)點和鏈路。
常見結構:
星型結構
星型結構的優(yōu)點是結構簡單、建網容易、控制相對簡單。其缺點是屬集中控制,主節(jié)點負載過重,可靠性低,通信線路利用率低。
總線結構
總線結構的優(yōu)點是信道利用率較高,結構簡單,價格相對便宜。缺點是同一時刻只能有兩個網絡節(jié)點相互通信,網絡延伸距離有限,網絡容納節(jié)點數有限。在總線上只要有一個點出現連接問題,會影響整個網絡的正常運行。目前在局域網中多采用此種結構。
環(huán)型結構
環(huán)型結構的優(yōu)點是一次通信信息在網中傳輸的最大傳輸延遲是固定的;每個網上節(jié)點只與其他兩個節(jié)點有物理鏈路直接互連,因此,傳輸控制機制較為簡單,實時性強。缺點是一個節(jié)點出現故障可能會終止全網運行,因此可靠性較差。
樹型結構
樹型結構實際上是星型結構的一種變形,它將原來用單獨鏈路直接連接的節(jié)點通過多級處理主機進行分級連接。
這種結構與星型結構相比降低了通信線路的成本,但增加了網絡復雜性。網絡中除最低層節(jié)點及其連線外,任一節(jié)點或連線的故障均影響其所在支路網絡的正常工作。

工具軟件:Visio
軟件設計圖(UML)
定義:
UML是一種開放的方法,用于說明、可視化、構建和編寫一個正在開發(fā)的、面向對象的、軟件密集系統(tǒng)的制品的開放方法。UML展現了一系列最佳工程實踐,這些最佳實踐在對大規(guī)模,復雜系統(tǒng)進行建模方面,特別是在軟件架構層次已經被驗證有效。
三種模型:
功能模型,從用戶的角度展示系統(tǒng)的功能,包括用例圖。

對象模型,采用對象,屬性,操作,關聯(lián)等概念展示系統(tǒng)的結構和基礎,包括類別圖。

動態(tài)模型,展現系統(tǒng)的內部行為。包括序列圖,活動圖,狀態(tài)圖。



軟件:億圖,Visio
數據庫模型圖,實體關系圖,數據流程模型圖
定義:
實體關系圖,簡記E-R圖是指以實體、關系、屬性三個基本概念概括數據的基本結構,從而描述靜態(tài)數據結構的概念模式。
案例:
