欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

您當(dāng)前的位置是:  首頁 > 新聞 > 專家觀點(diǎn) >
 首頁 > 新聞 > 專家觀點(diǎn) >

蔡學(xué)鏞:純?cè)萍軜?gòu)最好改用函數(shù)式設(shè)計(jì)、5大架構(gòu)秘訣公開

2017-06-26 14:37:39   作者:   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  「你說的云,是哪一種云?」擁有多年云端架構(gòu)師經(jīng)驗(yàn)的北京全?萍悸(lián)合創(chuàng)始人蔡學(xué)鏞表示,目前大家對(duì)云的定義都不大一樣,企業(yè)要用要先厘清是哪一種云,再加上傳統(tǒng)的程式設(shè)計(jì)方法不適合云端平臺(tái),他建議,程式設(shè)計(jì)師要結(jié)合架構(gòu)師,找出新的程式設(shè)計(jì)方法。
\
  「你說的云,是哪一種云?」許多企業(yè)都認(rèn)為將系統(tǒng)和資料上云端有很多好處,不但可以節(jié)省成本又可以彈性調(diào)用資源,那為什麼不搬上云端呢?曾在大陸擔(dān)任阿里巴巴支付寶、中國(guó)銀聯(lián)、創(chuàng)新工場(chǎng)、中國(guó)平安保險(xiǎn)集團(tuán)等公司的架構(gòu)師,擁有多年云端架構(gòu)師經(jīng)驗(yàn)的北京全?萍悸(lián)合創(chuàng)始人蔡學(xué)鏞表示,企業(yè)設(shè)計(jì)軟體時(shí),是否考慮到云端平臺(tái)的特性是相當(dāng)重要的課題,他也指出,目前大家對(duì)云端的定義都不大相同。
  他認(rèn)為,目前比較流行的是FaaS(Function as a Service)和BaaS(Backend as a Service),F(xiàn)aaS就是將程式拆成各自獨(dú)立的功能,各個(gè)程式之間互相沒有關(guān)聯(lián),BaaS則是用Open API來用開發(fā)服務(wù),像是用戶的身份認(rèn)證,這兩種云端設(shè)計(jì)方式可以讓程式更加自動(dòng)化,減少程式運(yùn)作維護(hù)的工作量,也讓程式設(shè)計(jì)師可以不用考量系統(tǒng)流量瞬間爆量的問題。
  而現(xiàn)今有許多企業(yè)會(huì)在PaaS層上設(shè)計(jì)服務(wù),但他提醒,若不是像用Spring Boot框架開發(fā),很容易還是將程式和資料庫(kù)綁在一起,若將兩者綁在一起,則不適合云端的平臺(tái)。
  蔡學(xué)鏞將云端程式設(shè)計(jì)分成Who、What和How,設(shè)計(jì)程式時(shí)分為兩種工程師,一種是程式設(shè)計(jì)師,負(fù)責(zé)設(shè)計(jì)與業(yè)務(wù)領(lǐng)域相關(guān)的功能,設(shè)計(jì)的方式則可用領(lǐng)域?qū)虻姆绞剑―omain Driven Design, DDD)的方式,他表示,DDD的設(shè)計(jì)方式一直都不太流行,但是最近因?yàn)榱餍形⒎⻊?wù),而DDD又開始興起。
  第二種工程師則是架構(gòu)師,他說明,這個(gè)詞大約2000年才誕生,與網(wǎng)路的興起密不可分,架構(gòu)師主要從事的不是功能的設(shè)計(jì),而是以系統(tǒng)運(yùn)作為導(dǎo)向的設(shè)計(jì),包括系統(tǒng)的負(fù)載量、安全性等,他建議可用的設(shè)計(jì)方式是Patterns of Enterprise Application Architecture(PEAA)。
  「我也開始在轉(zhuǎn)型!」蔡學(xué)鏞表示,由於云端平臺(tái)的興起,將許多架構(gòu)師的工作都可以方便快速地完成,且許多云端架構(gòu)的問題都有規(guī)則可循,架構(gòu)師的價(jià)值也越來越式微,他也在思考自己要如何轉(zhuǎn)型,他認(rèn)為,程式設(shè)計(jì)師要結(jié)合架構(gòu)師的角色,找到新的程式設(shè)計(jì)方法。
  由於現(xiàn)在系統(tǒng)需求快速且多變,蔡學(xué)鏞認(rèn)為,過去傳統(tǒng)的程式設(shè)計(jì)方法已經(jīng)不管用,主要是因?yàn)閭鹘y(tǒng)的物件導(dǎo)向程式設(shè)計(jì)的結(jié)構(gòu)有些問題,他指出,以前的程式設(shè)計(jì)都將業(yè)務(wù)和資料緊緊地綁在一起,但是綁在一起的作法并不適合云端平臺(tái),物件導(dǎo)向的觀念在敏捷開發(fā)也完全不適合。
  他點(diǎn)出傳統(tǒng)物件導(dǎo)向設(shè)計(jì)的眾多問題,舉例來說,蔡學(xué)鏞以前在保險(xiǎn)公司擔(dān)任架構(gòu)師時(shí),保險(xiǎn)的規(guī)則非常繁雜,高達(dá)1,000萬條,也有許多幽靈規(guī)則,平時(shí)都沒有執(zhí)行,但是沒有人敢調(diào)整,深怕一調(diào)整系統(tǒng)會(huì)當(dāng)?shù)簟?/div>
  另外,法規(guī)和業(yè)務(wù)調(diào)整的變動(dòng)也會(huì)影響著前端的服務(wù)模組、API,以及後端調(diào)用資料庫(kù)和串連外部系統(tǒng)的設(shè)計(jì),還有FaaS的設(shè)計(jì)強(qiáng)調(diào)沒有狀態(tài)(State),但是物件導(dǎo)向的物件都是有狀態(tài),他建議,企業(yè)若要使用云端,則要使用函數(shù)式的程式設(shè)計(jì)。
  蔡學(xué)鏞歸納出五個(gè)函數(shù)式程式設(shè)計(jì)的原則,首先,設(shè)計(jì)業(yè)務(wù)功能的模組要分開,且分的越細(xì)越好,第二要采用非同步的調(diào)用方式,讓程式無需等待被調(diào)用函數(shù)的返回值,就讓程式繼續(xù)執(zhí)行,第三是他認(rèn)為最關(guān)鍵的,就是只要資料最終一致化就好,不需要每筆資料都變成即時(shí)交易,第四則是盡量將功能都API化,甚至他建議可以先從外圍的Interface開始設(shè)計(jì),最後物件必須是無狀態(tài),這樣系統(tǒng)面對(duì)較高的流量,就能同時(shí)開啟多個(gè)Instance。
  除了上述的五大原則之外,蔡學(xué)鏞也認(rèn)為,在設(shè)計(jì)云端架構(gòu)的系統(tǒng)時(shí),必須對(duì)資料非常了解,有些是需要和業(yè)務(wù)人員一同合作來了解,像是資料的重要性、保密性、調(diào)用資料的費(fèi)用和業(yè)務(wù)一致性,舉例來說,金錢和地址的資料遺失重要程度就不同,且也要依照不同的資料類型,將資料放在適合的資料庫(kù),并用不同的方式存取。
  有些資料的厘清,工程師則是可以透過技術(shù)或是統(tǒng)計(jì)的方式來理解,像是調(diào)用資料的頻率、資料筆數(shù)、資料老化現(xiàn)象等,他認(rèn)為,只要是透過技術(shù)可以了解的,就能將規(guī)則用成通用的方式放在云端平臺(tái),他舉例,由於火車時(shí)刻表屬於不容易變動(dòng)的資料,就不需要頻繁地調(diào)用資料,避免浪費(fèi)調(diào)用的成本。
  最後,資料的互相調(diào)用也是重要的議題之一,他表示,調(diào)用資料時(shí)除了可以用密碼的方式確保安全性之外,其實(shí)還可以用Attribute-Based Access Control的方式,利用調(diào)用和被調(diào)用的資料都有各自專屬屬性的特性,來做精細(xì)的比對(duì)。

相關(guān)閱讀:

專題