天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

聚焦與發(fā)散——淺談編程的發(fā)展方向

  最近在找工作,所以重新開(kāi)始看書,重新整理知識(shí)體系,而現(xiàn)在上海的晚上很濕熱,睡不著,就產(chǎn)生了這些想法。

  不說(shuō)更早的歷史,就從dos開(kāi)始說(shuō)起。dos剛出來(lái)的時(shí)候是單進(jìn)程的,根據(jù)人們的需求發(fā)展出了多進(jìn)程的概念,而這種技術(shù)一直被保留到現(xiàn)在。現(xiàn)在的操作系統(tǒng)好像沒(méi)有單進(jìn)程的系統(tǒng)了吧。那為什么要有多進(jìn)程,為什么會(huì)有這樣的需求?比如你現(xiàn)在打開(kāi)了word考試撰寫文檔,而又想要上網(wǎng)去查找一些資料,如果是單進(jìn)程的,那就意味著打開(kāi)了word就不能開(kāi)IE,要開(kāi)IE就要關(guān)掉word。那樣操作起來(lái)肯定會(huì)很麻煩。這個(gè)和編程的發(fā)展方向有什么關(guān)系呢?暫且繞開(kāi)這個(gè)話題,先看看我們寫一個(gè)web網(wǎng)站是如何工作的。

  web的工作方式,肯定需要是有一個(gè)宿主(專業(yè)點(diǎn)的說(shuō)話,比如IIS、Apache等),然后寫一段程序,把這個(gè)程序配置到宿主中,就可以訪問(wèn)了。 那什么是宿主,它在做哪些事情?剛才都說(shuō)了宿主就是比如IIS之類的程序,可以理解為一個(gè)容器,它有一些接口,只要滿足這個(gè)接口規(guī)定的程序,就可以在這個(gè)宿主中運(yùn)行。為什么我們寫的一面一定要以ASPx后綴結(jié)尾?為什么ASPx頁(yè)面里不能寫匯編?這個(gè)可以理解為一種協(xié)議。怎么理解這個(gè)協(xié)議的作用呢?那就要知道IIS所扮演的角色。當(dāng)你訪問(wèn)IIS某個(gè)站點(diǎn)的某個(gè)文件的時(shí)候,它就知道去哪里、以什么方式來(lái)運(yùn)行所要做的事情。這個(gè)和C#里接口的概念很相似,你只要滿足接口,那么就可以扔到一個(gè)上下文中去執(zhí)行。

  假如,你來(lái)開(kāi)發(fā)一個(gè)宿主,需要做些什么?首先,需要寫Socket偵聽(tīng),偵聽(tīng)到連接,開(kāi)始接收請(qǐng)求的數(shù)據(jù)(HTTP協(xié)議消息),然后解析消息,按解析結(jié)果執(zhí)行,最后返回結(jié)果。大致這么幾個(gè)過(guò)程。而所有的人都在請(qǐng)求這個(gè)IIS,這就是聚焦。用戶使用的客戶端是發(fā)散的,而所有的請(qǐng)求,都會(huì)聚焦到這個(gè)點(diǎn)上。這個(gè)聚焦的點(diǎn),在IIS內(nèi)部就是Socket?事實(shí)上不能這樣理解。HTTP請(qǐng)求所用的Socket是一對(duì)一的,也就是說(shuō),每個(gè)用戶請(qǐng)求IIS之后,IIS內(nèi)部對(duì)每個(gè)請(qǐng)求有一個(gè)隔離。每個(gè)用戶都有自己當(dāng)前請(qǐng)求的上下文,這個(gè)上下文是獨(dú)立的,而我們的代碼只有一份,所以的請(qǐng)求,運(yùn)行的進(jìn)程、線程,代碼對(duì)它們來(lái)說(shuō)就是聚焦的。就是說(shuō),現(xiàn)在我們開(kāi)發(fā)的web應(yīng)用,是在維護(hù)一份代碼,而讓他們可以發(fā)散地(多線程、進(jìn)程地)工作。事實(shí)上,單機(jī)程序,c/s架構(gòu)也是和web的開(kāi)發(fā)方式一樣的。開(kāi)發(fā)人員不會(huì)為每個(gè)人開(kāi)發(fā)獨(dú)立的應(yīng)用,至于個(gè)性化,那是軟件的一部分。

  這個(gè)道理誰(shuí)都懂,上面的分析有點(diǎn)畫蛇添足的味道,無(wú)量天尊!~~~

  事實(shí)上我們開(kāi)發(fā)的應(yīng)用,不全是那樣。比如靜態(tài)變量等全局應(yīng)用,是在運(yùn)行時(shí)唯一的。在處理這些全局?jǐn)?shù)據(jù)時(shí),我們一般會(huì)lock,和數(shù)據(jù)庫(kù)應(yīng)用的悲觀鎖是一個(gè)概念。這個(gè)地方就會(huì)產(chǎn)生一個(gè)問(wèn)題,全局?jǐn)?shù)據(jù)會(huì)影響所有人的響應(yīng),一旦全局?jǐn)?shù)據(jù)出錯(cuò),那是致命的。這就是我們這里要講的聚焦效應(yīng)。靜態(tài)數(shù)據(jù)是運(yùn)行期有聚焦效應(yīng),而代碼就是編碼期有聚焦效應(yīng),并且這個(gè)效應(yīng)更加明顯。對(duì)一處代碼的改動(dòng)可能會(huì)影響很多地方,那么這里的代碼就是聚焦的。在C#編程中可以理解為,接口、超類、生產(chǎn)者都是聚焦的。這個(gè)焦點(diǎn)改變了,那么影響是巨大的。可以想象下,凸透鏡的焦距發(fā)生變化,要保證焦點(diǎn)不變,那么光源的光線就要全部變化。為了適應(yīng)這種變化,各種理論發(fā)展起來(lái),而OO就是其中之一。OO的多態(tài)是在擁抱變化,而這個(gè)過(guò)程就是發(fā)散的過(guò)程。

  假設(shè),現(xiàn)在開(kāi)發(fā)的應(yīng)用都毫不相干,沒(méi)有任何可以提取公用的部分,也就是說(shuō),提不出接口,泛化不出超類,那整個(gè)代碼都是發(fā)散的。而OO里面很關(guān)鍵的就是要提取不變的部分,設(shè)計(jì)會(huì)變的部分,這是代碼重用里最重要的思想,我是這么認(rèn)為的。我認(rèn)為這就是一種聚焦思維,而未來(lái)一段時(shí)間編程的發(fā)展也會(huì)朝著這個(gè)方向發(fā)展。如果認(rèn)為一個(gè)系統(tǒng)哪個(gè)地方都需要變化,那就根本沒(méi)有代碼重用的可能。而事實(shí)上,一個(gè)軟件的代碼中總有能重用的代碼,那就是說(shuō)總有不變的代碼,總有聚焦的地方。這是不變代碼的聚焦,對(duì)于變化的部分,我們也在尋求聚焦點(diǎn),而這個(gè)過(guò)程需要作好設(shè)計(jì)。

  對(duì)于變動(dòng)的代碼,有兩種開(kāi)發(fā)的方式。一個(gè)是提供服務(wù)的,而另一個(gè)是享受服務(wù)的。這句話怎么說(shuō)呢?比如,在C#開(kāi)發(fā)中,調(diào)用.NET Framework類庫(kù),那就是享受服務(wù),這個(gè)是發(fā)散的。而提供服務(wù)最容易想到的就是工廠模式和委托。和在網(wǎng)站開(kāi)發(fā)中模板的方式類似,在網(wǎng)頁(yè)中設(shè)置一個(gè)替換符號(hào),用內(nèi)容來(lái)填充這個(gè)符號(hào)。委托也是這樣,在一個(gè)應(yīng)用中,定義了一個(gè)方法執(zhí)行這個(gè)委托,我們不知道他的工作方式,但是我們已經(jīng)在使用它,這應(yīng)該算是一種逆向的思維。插件架構(gòu)就是這樣工作的,由配置來(lái)決定調(diào)用哪個(gè)類。而聚焦點(diǎn)就在這個(gè)超類或接口。

  最后,可以看出,編寫代碼一共有三種方式。

  第一、不會(huì)變化的,這是絕對(duì)聚焦的代碼,一旦改變,后果不堪設(shè)想;
  第二、類庫(kù)式的,這是發(fā)散式的代碼,類庫(kù)不能控制你怎么提取焦點(diǎn);
  第三、框架式的,這個(gè)是聚焦于接口或超類的代碼,不變動(dòng)接口和超類,還是可以接受的。 

it知識(shí)庫(kù)聚焦與發(fā)散——淺談編程的發(fā)展方向,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 嗯啊不要老师 | 亚洲宅男天堂a在线 | 国产欧美一区二区三区免费 | 老师湿乎乎两半嫩 | 色偷偷网站 | 羞羞在线观看 | 抽插的日日液液H | 九热这里只有精品 | 色狠狠AV老熟女 | 精品亚洲国产成AV人片传媒 | 亚洲视频网站欧美视频网站 | 色偷偷91综合久久噜噜 | 初中XXXXXL | 91精品一区二区三区在线观看 | 亚洲欧美国产综合在线一区 | 国产综合视频在线观看一区 | 色偷偷亚洲天堂 | 日本女人水多 | 少妇被躁爽到高潮无码久久 | 黑吊大战白xxxxxx | xxxx88| 亚洲午夜久久久精品电影院 | 无码日本亚洲一区久久精品 | 国产午夜精品片一区二区三区 | 精品一区二区三区高清免费观看 | 青青青国产依人精品视频 | 亚洲人成电影网站 | 色即是空之甜性涩爱 | 久久人妻少妇嫩草AV蜜桃35I | 怡春院国产精品视频 | 胸大的姑娘中文字幕视频 | 亚州中文字幕 | 国产高清超清在线播放 | 精品亚洲大全 | 四虎影视国产精品亚洲精品hd | 久久4k岛国高清一区二区 | 日本女人bbb | 夫外出被公侵犯日本电影 | 无码国产成人午夜在线观看不卡 | 日韩一区精品视频一区二区 | 国产成人在线小视频 |