云时代的.NET
編程語言從最初的0101機(jī)器碼到匯編語言再到面向?qū)ο蟮木幊?#xff0c;不斷的發(fā)展,整個發(fā)展趨勢呈現(xiàn)高內(nèi)聚、低耦合、可重用、可理解的特點。最早編程是用機(jī)器碼,人的大腦不像電腦,無法處理0101;后來匯編語言還是太費(fèi)解,又出現(xiàn)了高級語言;然后因為我們需要更加接近人類語言的方式描述問題,開始出現(xiàn)結(jié)構(gòu)化編程或者模塊化編程的方式;但我們要面對的問題還是太復(fù)雜,所以就需要把他切割成小問題,即模塊化;模塊化出現(xiàn)之后,我們又開始追求高內(nèi)聚低耦合,因人腦仍然沒有辦法思考太多的模塊之間錯綜復(fù)雜的關(guān)系,所以需要高內(nèi)聚低耦合,分層次的看待這些問題;但就算把這些功能都充分的去模塊化、高內(nèi)聚低耦合,發(fā)現(xiàn)數(shù)據(jù)流還是太復(fù)雜了,所以需要把數(shù)據(jù)也給高內(nèi)聚低耦合,這個時候我們開始去做面向?qū)ο蟮木幊?#xff0c;當(dāng)面向一個對象的時候編程就會比較高效。面向?qū)ο缶褪菐椭覀儼褦?shù)據(jù)對數(shù)據(jù)的操作分裝到模塊里面,同時提供新的思考問題的方式,這樣子我們本來只是比較簡單的大腦,居然一下子就可以駕馭非常復(fù)雜的業(yè)務(wù)邏輯,做很龐大的軟件系統(tǒng)。
目前我們發(fā)展出了23種設(shè)計模式,發(fā)展出CS、BS、MVC、MVP各種各樣神奇的架構(gòu)模式之后,開始用這些概念“吵架”,或者做成面試題。整個發(fā)展的路線很明顯的趨勢是:不斷地追求更好的高內(nèi)聚低耦合。相信可預(yù)見的未來仍然會繼續(xù)去尋找更好的一個高內(nèi)聚低耦合的編程模式,我們總是在追求更好的可重用性,盡量地減少重復(fù)的工作。近幾年大家都在討論的微服務(wù),微服務(wù)面對系統(tǒng)的時候,能不能用很多重復(fù)自治的子系統(tǒng)來完成。這些子系統(tǒng)應(yīng)該可以獨立于大系統(tǒng)獨立存在,每一個子系統(tǒng)應(yīng)該可以管理好自己、保證自己是健壯的、可處理好異常情況、面對壓力時候擴(kuò)容負(fù)載均衡、沒有壓力時應(yīng)該縮容。同時子系統(tǒng)無需擔(dān)心被用,被越多的使用方使用,越說明該子系統(tǒng)有很好的可重用性,使用量越大越說明可能會產(chǎn)生規(guī)模效應(yīng),那就可用更低的平均成本來提供更好的服務(wù)。
討論微服務(wù)時,之前我們僅僅是在討論一個系統(tǒng)怎么被拆成幾個微服務(wù),然后再用新形式來做新的系統(tǒng)。但這樣做與以前做的模塊化編程毫無區(qū)別。在云時代基于微服務(wù)的設(shè)計理念開發(fā)軟件,首先要考慮的是有沒有一個現(xiàn)成優(yōu)秀的云服務(wù)可以作為一個系統(tǒng)需要的微服務(wù),直接可用,比如圖片上傳、下載、裁剪、縮放等功能;如果沒有,那系統(tǒng)需要的服務(wù),把它開發(fā)出來有沒有可能變成一個通用的服務(wù),然后開放出去,這樣的話除了有可能去交付系統(tǒng)之外,還可能通過售賣我的微服務(wù)獲利。
軟件開發(fā)歷史上走過了結(jié)構(gòu)化、面向?qū)ο?#xff0c;還有各種各樣的開發(fā)模式,這些所有的發(fā)展模式共同的發(fā)展方向是越來越高的高內(nèi)聚低耦合,越來越好的可重用性,越來越容易被我們的大腦理解。在云時代,微服務(wù)是符合這三個大方向的全新軟件開發(fā)模式。
云時代的云服務(wù)公司,它們的核心業(yè)務(wù)和面臨的問題就是今天這些純粹的技術(shù)問題,除了要能夠解決并封裝成服務(wù),還需要不斷的降低成本和優(yōu)化效率,而在云上的降低成本和優(yōu)化效率這是真正意義上的技術(shù)價值的直接體現(xiàn)。亞瑪遜能夠連續(xù) 降價來阻止競爭對手進(jìn)入,正是技術(shù)綜合實力的體現(xiàn),未來必然只有少數(shù)云服務(wù)公司能夠把提供服務(wù)的成本控制在自由市場競爭的價格之下。
云時代我們需要采用新平臺來革新我們的軟件開發(fā)模式,作為一個走過16年歷史的.NET, 在2014年順應(yīng)時代要求自我刷新,推出的開源跨平臺的.NET Core, 就是為云原生應(yīng)用的開發(fā)而準(zhǔn)備的平臺,.NET Core相較于他的哥哥.NET的優(yōu)勢也正是我們很容易的使用C# 語言去構(gòu)建高內(nèi)聚低耦合的系統(tǒng)。借助于K8S,service fabric, 我們很容易構(gòu)建一個.NET Core的服務(wù)。最近結(jié)合.NET Core和k8s 容器服務(wù)在騰訊云上制作了一個教程 《.NET 微服務(wù)實戰(zhàn) — 微信公眾號開發(fā)(?https://cloud.tencent.com/developer/edu/major-100017)》
教程里例子-公眾號開發(fā)雖然簡單,我只是使用這個簡單例子來闡述一個簡單的問題,云時代的.NET 是怎么樣的,我們要怎么樣使用.NET Core。歡迎閱讀原文學(xué)習(xí)。
原文地址: https://cloud.tencent.com/developer/edu/major-100017
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
- 上一篇: 开发.NET Core NuGet包并实
- 下一篇: “被狗啃”的按钮引发的开源社区信任危机