Neal Ford是一個(gè)擁有多重身份的傳奇式人物。作為跨國數(shù)字化轉(zhuǎn)型咨詢公司ThoughtWorks的總監(jiān)、軟件架構(gòu)師,他精通各種編程語言,為大規(guī)模企業(yè)應(yīng)用的設(shè)計(jì)、構(gòu)建和工程實(shí)踐提供咨詢服務(wù);作為國際知名講師,他登上過許多世界頂級開發(fā)者會(huì)議的講臺(tái);作為極客和作家,他著有多本廣受好評的暢銷書,如《卓有成效的程序員》、《函數(shù)式編程思維》。此次到訪QCon,他除了為中國帶來了演進(jìn)式架構(gòu)的概念,更帶來了其已出版的最新作品《Building Evolutionary Architectures: Support Constant Change》,相信會(huì)給開發(fā)者群體讀者們帶來全新的思考,共同應(yīng)對日新月異的數(shù)字化時(shí)代。
在演講中,Neal Ford指出,在科技界唯一不變的就是變化:業(yè)務(wù)實(shí)踐在變,工具和框架在演進(jìn),創(chuàng)新的工具和技術(shù)不斷涌現(xiàn),這讓軟件開發(fā)生態(tài)體系也是瞬息萬變。在這樣環(huán)境中,開發(fā)者必須不斷革新自己的認(rèn)知,從進(jìn)化的視角出發(fā)去更好地吸收需求,應(yīng)對不斷發(fā)生變化的技術(shù)。在過去的幾年里,軟件開發(fā)核心工程實(shí)踐的漸進(jìn)發(fā)展,讓開發(fā)者重新思考架構(gòu)是如何隨著時(shí)間的推移而變化的,以及重要的架構(gòu)特征如何能夠在架構(gòu)演進(jìn)過程中得到有效保護(hù),這促使Neal Ford與ThoughtWorks全球CTO Rebecca Parson博士一起總結(jié)提煉了演進(jìn)式架構(gòu)的核心概念。他們借鑒了生物進(jìn)化的分析視角,從更長遠(yuǎn)的考量來思考軟件架構(gòu)的存在,改變了過去單一時(shí)間點(diǎn)評判架構(gòu)好壞的視野局限,轉(zhuǎn)而思考如何通過可度量的適應(yīng)度方程(fitness function)定義來“創(chuàng)造”架構(gòu)演進(jìn)的生態(tài)。
變化歷來都是難以預(yù)測且痛苦的,演進(jìn)式架構(gòu)提倡“把痛苦的事情提前做、經(jīng)常做”,在架構(gòu)層面做到演進(jìn)式地變更,讓變更更容易、成本更低,在開發(fā)實(shí)踐、發(fā)布實(shí)踐和整個(gè)開發(fā)流水線上去建立架構(gòu)改變的實(shí)時(shí)反饋機(jī)制。在項(xiàng)目的進(jìn)行過程中,如果架構(gòu)改變的事情很痛苦,那么你需要強(qiáng)迫自己更早更頻繁地去做這些事情。這反過來也鼓勵(lì)你用自動(dòng)化的手段消除這些痛苦并能提前識別架構(gòu)上的問題。已經(jīng)成為現(xiàn)代軟件開發(fā)基礎(chǔ)的持續(xù)交付實(shí)踐,如部署流水線、自動(dòng)化基礎(chǔ)設(shè)施建構(gòu)、數(shù)據(jù)庫平滑遷移等,就是這一原則的應(yīng)用,它們會(huì)提早解決變更帶來的常規(guī)問題,從而使架構(gòu)的演進(jìn)更為容易。
本次Neal Ford的中國之行,除了在QCon全球軟件開發(fā)大會(huì)2018所做的重要演講,還在與華為等重要客戶開展的ThoughtWorks技術(shù)開放日活動(dòng)中,為客戶帶來了最新的技術(shù)研發(fā)成果,共同探討企業(yè)數(shù)字化轉(zhuǎn)型的進(jìn)階之路。