? ? ? ?之前我們討論了什么是軟件库菲,軟件的緣起整袁,如何理解需求和識別問題菠齿,接下來,我們聊聊軟件的架構.
架構的緣起:
? ? ? ?說到軟件坐昙,就離不開軟件的架構绳匀,而說到架構,首先我們需要理解架構是如何出現(xiàn)的炸客。人類社會組織架構的形成經(jīng)歷了以下幾個階段:
? ? 1.人類生活的早期疾棵,每個人獨立工作,衣食住行全部一個人搞定
? ? 2.群居的出現(xiàn)痹仙,開始有了物品的交換是尔,形成了商品的交易,進行形成了勞動的分工
? ? 3.隨著分工群體的逐步擴大开仰,開始有了族群嗜历,進而形成了地域的分群
? ? ?如果每個人都能夠完成自己所有生活必需品的時候,是沒有架構的抖所±嬷荩可是隨著人類所需要做的事情變得越來越復雜,當出現(xiàn)有些工作或者任務無法一個人獨立完成時田轧,就出現(xiàn)了分工暴匠。把較為復雜的事情,切分成較小的任務傻粘,由不同角色的人來完成每窖,最后通過溝通和交流,使所有人形成一個整體弦悉,來交付一個總的任務的時候窒典,就形成了的架構。
這樣稽莉,我們就了解了架構產(chǎn)生的條件:
? ? ? 1.完成的工作必須要由人來執(zhí)行
? ? ? 2.每個人的能力有限瀑志,由最合適的人完成最合適的任務
? ? ? 3.每個人的時間有限
? ? ? 4.對現(xiàn)有的目標系統(tǒng)有更高的要求
? ? ? 5.目標系統(tǒng)復雜到單個人無法完成整個工作
那么架構,如何幫我們解決上面的問題呢污秆?
架構的定義:
1.根據(jù)需求和問題劈猪,界定系統(tǒng)邊界
2.對目標系統(tǒng)按照某個原則進行切分
3.對切分后的任務設立不同的溝通機制
4.使所有的部分形成一個整體,完成目標系統(tǒng)的工作
? ? ? ?18世紀,亞當·斯密發(fā)現(xiàn)在一家扣針廠里,生產(chǎn)一枚扣針需要經(jīng)過18道工序.這家工廠由10個工人分別承擔1~2道工序,每天共生產(chǎn)48 000枚扣針,平均每人生產(chǎn)4 800枚.如果讓工人各自獨立完成全部工序,那么他們中的任何一個人,一天連20枚扣針也生產(chǎn)不出來良拼。分工協(xié)作生產(chǎn)商品可以減少生產(chǎn)商品的個別勞動時間战得。
? ? ? ?單位時間里面,每個人的注意力是有限的庸推,如果要在這段時間里面常侦,做好幾件事情浇冰,在不同任務之間切換的時候會產(chǎn)生注意力的消耗,最后導致生產(chǎn)效率的低下聋亡。由此湖饱,人類社會形成的分工合作,由不同的人去完成不同的事情杀捻,就是為了解決單個人很難或者無法完成的任務所演化出來的井厌。而架構則是人類分工合作發(fā)展過程中,由懵懵懂懂的致讥,被動的去認識這個世界仅仆,變成主動的去認識,并以更高的效率去改造這個世界的方法垢袱。
文章想法的出處墓拜,推薦你也看看:http://www.infoq.com/cn/talk-arch