隨著互聯(lián)網(wǎng)寒冬的的到來,程序員就業(yè)環(huán)境越來越嚴峻狈癞,這就要求我們必須要不斷提高自己泉哈,來應(yīng)對高壓的工作環(huán)境咖楣。下面介紹的這幾種圖是我在工作中經(jīng)常使用的纤怒,所謂的圖骨杂,都是為了輔助思考的,輔助開發(fā)的莫瞬,比文字描述的更清晰儡蔓,更有邏輯。
前些年疼邀,網(wǎng)上有一個口號喊得很響:“人人都是產(chǎn)品經(jīng)理”喂江。這就要求我們需要學(xué)習(xí)認圖、畫圖的技巧旁振,能從需求文檔里快速的抽象出我們想要的東西获询。最近,網(wǎng)上曝出的程序員和產(chǎn)品經(jīng)理之間的矛盾拐袜,大都是需求不清晰產(chǎn)生的吉嚣,作為程序員的我們?nèi)绻莆盏漠a(chǎn)品經(jīng)理所必須的技能,那我們以后就可以吊打產(chǎn)品經(jīng)理了蹬铺,哈哈哈哈尝哆。。甜攀。
流程圖
定義:
流程圖是對過程秋泄、算法琐馆、流程的一種圖像表示,在技術(shù)設(shè)計恒序、交流及商業(yè)簡報等領(lǐng)域有廣泛的應(yīng)用瘦麸。
案例:
計算機語言只是一種工具。光學(xué)習(xí)語言的規(guī)則還不夠歧胁,最重要的是學(xué)會針對各種類型的問題滋饲,擬定出有效的解決方法和步驟即算法。有了正確而有效的算法与帆,可以利用任何一種計算機高級語言編寫程序,使計算機進行工作墨榄。因此玄糟,設(shè)計算法是程序設(shè)計的核心。
對同一個問題袄秩,可以有不同的解題方法和步驟阵翎。
例如,求1+2+3+…+100之剧,可以先進行1+2郭卫,再加3,再加4背稼,一直加到100贰军,也可采取100+(1+99)+(2+98)+…+(49+51)+50=100+50+49×100=5050。
還可以有其它的方法蟹肘。當(dāng)然词疼,方法有優(yōu)劣之分。有的方法只需進行很少的步驟帘腹,而有些方法則需要較多的步驟贰盗。一般說,希望采用方法簡單阳欲,運算步驟少的方法舵盈。因此,為了有效地進行解題球化,不僅需要保證算法正確秽晚,還要考慮算法的質(zhì)量,選擇合適的算法筒愚。
一個計算問題的解決過程通常包含下面幾步:
a.確立所需解決的問題以及最后應(yīng)達到的要求爆惧。必須保證在任務(wù)一開始就對它有詳細而確切的了解,避免模棱兩可和含混不清之處锨能。
b.分析問題構(gòu)造模型扯再。在得到一個基本的物理模型后芍耘,用數(shù)學(xué)語言描述它,例如列出解題的數(shù)學(xué)公式或聯(lián)立方程式熄阻,即建立數(shù)學(xué)模型斋竞。
c.選擇計算方法。如定積分求值問題秃殉,可以用矩形法坝初、梯形法或辛普生法等不同的方法。因此用計算機解題應(yīng)當(dāng)先確定用哪一種方法來計算钾军。專門有一門學(xué)科“計算方法”鳄袍,就是研究用什么方法最有效、最近似地實現(xiàn)各種數(shù)值計算的吏恭,換句話說拗小,計算方法是研究數(shù)值計算的近似方法的。
d.確定算法和畫流程圖樱哼。在編寫程序之前哀九,應(yīng)當(dāng)整理好思路,設(shè)想好一步一步怎樣運算或處理搅幅,即為“算法”阅束。把它用框圖畫出來,用一個框表示要完成的一個或幾個步驟茄唐,它表示工作的流程息裸,稱為流程圖。它能使人們思路清楚沪编,減少編寫程序中的錯誤界牡。
f.編寫程序。
g.程序調(diào)試漾抬,即試算宿亡。一個復(fù)雜的程序往往不是一次上機就能通過并得到正確的結(jié)果的,需要反復(fù)試算修改纳令,才得到正確的可供正式運行的程序挽荠。
h.正式運行得到必要的運算結(jié)果。
傳統(tǒng)流程圖
用圖表示的算法就是流程圖平绩。流程圖是用一些圖框來表示各種類型的操作圈匆,在框內(nèi)寫出各個步驟,然后用帶箭頭的線把它們連接起來捏雌,以表示執(zhí)行的先后順序跃赚。用圖形表示算法,直觀形象,易于理解纬傲。
美國國家標(biāo)準(zhǔn)化協(xié)會ANSI曾規(guī)定了一些常用的流程圖符號满败,為世界各國程序工作者普遍采用。最常用的流程圖符號見圖叹括。
a.處理框(矩形框)算墨,表示一般的處理功能。
?
b.判斷框(菱形框)汁雷,表示對一個給定的條件進行判斷净嘀,根據(jù)給定的條件是否成立決定如何執(zhí)行其后的操作。它有一個入口侠讯,二個出口挖藏。
?
c.輸入輸出框(平行四邊形框)。
?
d.起止框(圓弧形框)厢漩,表示流程開始或結(jié)束膜眠。
?
f.連接點(圓圈),用于將畫在不同地方的流程線連接起來袁翁。如圖中有兩個以1標(biāo)志的連接點(在連接點圈中寫上“l(fā)”)則表示這兩個點是連接在一起的柴底,相當(dāng)于一個點一樣婿脸。用連接點粱胜,可以避免流程線的交叉或過長,使流程圖清晰狐树。
?
g.流程線(指向線)焙压,表示流程的路徑和方向。
?
h.注釋框, 是為了對流程圖中某些框的操作做必要的補充說明抑钟,以幫助閱讀流程圖的人更好地理解流程圖的作用涯曲。它不是流程圖中必要的部分,不反映流程和操作在塔。
流程圖不僅可以指導(dǎo)編寫程序幻件,而且可以在調(diào)試程序中用來檢查程序的正確性。如果框圖是正確的而結(jié)果不對蛔溃,則按照框圖逐步檢查程序是很容易發(fā)現(xiàn)其錯誤的绰沥。流程圖還能作為程序說明書的一部分提供給別人,以便幫助別人理解你編寫程序的思路和結(jié)構(gòu)贺待。
工具軟件:Visio徽曲,億圖,ProcessOn
PS:墻裂推薦大家使用ProcessOn麸塞,畫流程圖的神器M撼肌!哪工!
思維導(dǎo)圖
定義:
心智圖(Mind Map)奥此,又稱腦圖弧哎、心智地圖、腦力激蕩圖得院、思維導(dǎo)圖傻铣、靈感觸發(fā)圖、概念地圖祥绞、樹狀圖非洲、樹枝圖或思維地圖,是一種圖像式思維的工具以及一種利用圖像式思考輔助工具來表達思維的工具蜕径。
歷史:
心智圖是由英國的托尼·博贊(托尼·布詹)于1970年代提出的一種輔助思考工具两踏。心智圖通過在平面上的一個主題出發(fā)畫出相關(guān)聯(lián)的對象,像一個心臟及其周邊的血管圖兜喻,故稱為“心智圖”梦染。由于這種表現(xiàn)方式比單純的文本更加接近人思考時的空間性想像,所以越來越為大家用于創(chuàng)造性思維過程中朴皆。
案例:
工具軟件:百度腦圖帕识,Xmind
ps:我一般都是用的百度腦圖,在線的比較方便
網(wǎng)絡(luò)拓撲圖
定義:
拓撲學(xué)(TOPOLOGY)是一種研究與大小遂铡、距離無關(guān)的幾何圖形特性的方法肮疗。 網(wǎng)絡(luò)拓撲是由網(wǎng)絡(luò)節(jié)點設(shè)備和通信介質(zhì)構(gòu)成的網(wǎng)絡(luò)結(jié)構(gòu)圖。
拓撲學(xué)是數(shù)學(xué)中一個重要的扒接、基礎(chǔ)的分支伪货。起初它是幾何學(xué)的一支,研究幾何圖形在連續(xù)變形下保持不變的性質(zhì)(所謂連續(xù)變形钾怔,形象地說就是允許伸縮和扭曲等變形碱呼,但不許割斷和粘合) 拓撲圖用于計算機網(wǎng)絡(luò)示意,也就是不考慮計算機實際的位置宗侦,只表示網(wǎng)絡(luò)中每臺計算機以及網(wǎng)絡(luò)設(shè)備之間的相互關(guān)系愚臀。
基本術(shù)語:
節(jié)點,節(jié)點就是網(wǎng)絡(luò)單元矾利。網(wǎng)絡(luò)單元是網(wǎng)絡(luò)系統(tǒng)中的各種數(shù)據(jù)處理設(shè)備姑裂、數(shù)據(jù)通信控制設(shè)備和數(shù)據(jù)終端設(shè)備。
鏈路梦皮,鏈路是兩個節(jié)點間的連線炭分。鏈路分“物理鏈路”和“邏輯鏈路”兩種,前者是指實際存在的通信連線剑肯,后者是指在邏輯上起作用的網(wǎng)絡(luò)通路捧毛。鏈路容量是指每個鏈路在單位時間內(nèi)可接納的最大信息量。
通路,通路是從發(fā)出信息的節(jié)點到接收信息的節(jié)點之間的一串節(jié)點和鏈路呀忧。
常見結(jié)構(gòu):
星型結(jié)構(gòu)
星型結(jié)構(gòu)的優(yōu)點是結(jié)構(gòu)簡單师痕、建網(wǎng)容易、控制相對簡單而账。其缺點是屬集中控制胰坟,主節(jié)點負載過重,可靠性低泞辐,通信線路利用率低笔横。
總線結(jié)構(gòu)
總線結(jié)構(gòu)的優(yōu)點是信道利用率較高,結(jié)構(gòu)簡單咐吼,價格相對便宜吹缔。缺點是同一時刻只能有兩個網(wǎng)絡(luò)節(jié)點相互通信,網(wǎng)絡(luò)延伸距離有限锯茄,網(wǎng)絡(luò)容納節(jié)點數(shù)有限厢塘。在總線上只要有一個點出現(xiàn)連接問題,會影響整個網(wǎng)絡(luò)的正常運行肌幽。目前在局域網(wǎng)中多采用此種結(jié)構(gòu)晚碾。
環(huán)型結(jié)構(gòu)
環(huán)型結(jié)構(gòu)的優(yōu)點是一次通信信息在網(wǎng)中傳輸?shù)淖畲髠鬏斞舆t是固定的;每個網(wǎng)上節(jié)點只與其他兩個節(jié)點有物理鏈路直接互連喂急,因此格嘁,傳輸控制機制較為簡單,實時性強煮岁。缺點是一個節(jié)點出現(xiàn)故障可能會終止全網(wǎng)運行讥蔽,因此可靠性較差涣易。
樹型結(jié)構(gòu)
樹型結(jié)構(gòu)實際上是星型結(jié)構(gòu)的一種變形画机,它將原來用單獨鏈路直接連接的節(jié)點通過多級處理主機進行分級連接。
這種結(jié)構(gòu)與星型結(jié)構(gòu)相比降低了通信線路的成本新症,但增加了網(wǎng)絡(luò)復(fù)雜性步氏。網(wǎng)絡(luò)中除最低層節(jié)點及其連線外,任一節(jié)點或連線的故障均影響其所在支路網(wǎng)絡(luò)的正常工作徒爹。
工具軟件:Visio
軟件設(shè)計圖(UML)
定義:
UML是一種開放的方法荚醒,用于說明、可視化隆嗅、構(gòu)建和編寫一個正在開發(fā)的界阁、面向?qū)ο蟮摹④浖芗到y(tǒng)的制品的開放方法胖喳。UML展現(xiàn)了一系列最佳工程實踐泡躯,這些最佳實踐在對大規(guī)模,復(fù)雜系統(tǒng)進行建模方面,特別是在軟件架構(gòu)層次已經(jīng)被驗證有效较剃。
三種模型:
功能模型咕别,從用戶的角度展示系統(tǒng)的功能,包括用例圖写穴。
對象模型惰拱,采用對象,屬性啊送,操作偿短,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類別圖馋没。
動態(tài)模型翔冀,展現(xiàn)系統(tǒng)的內(nèi)部行為。包括序列圖披泪,活動圖纤子,狀態(tài)圖。
軟件:億圖款票,Visio
數(shù)據(jù)庫模型圖控硼,實體關(guān)系圖,數(shù)據(jù)流程模型圖
定義:
實體關(guān)系圖艾少,簡記E-R圖是指以實體卡乾、關(guān)系、屬性三個基本概念概括數(shù)據(jù)的基本結(jié)構(gòu)缚够,從而描述靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模式幔妨。