CTO訓練營:用進化的思維做架構
原創(chuàng)【51CTO.com原創(chuàng)稿件】經(jīng)歷國慶七天假期,又經(jīng)歷了七個工作日,在大多數(shù)人們忙不迭度周末的時候,CTO訓練營第六課又開課了。
這期的CTO訓練營活動,培訓的主題只有一個:如何在公司不斷發(fā)展的過程中,確保技術能夠靈活地因需而動?這個話題非常有實戰(zhàn)性,因為無論公司是剛剛組建還是發(fā)展到一定規(guī)模,語言的選擇、架構的調整一直伴隨其中。那么當面臨老系統(tǒng)重構、拆分亦或是解耦,管理者們應當注意哪些問題?隨著業(yè)務的發(fā)展,時間的推移,IT技術逐步在進化,在進化演變的過程中又應該如何把握,應該用什么樣的思想去迭代產(chǎn)品?七樂康技術VP曲毅給出了一個新的思路:用進化的思維做架構,給與會者們開辟了更多思考方向。
語言選型需要注意6大因素
曲毅,從事互聯(lián)網(wǎng)研發(fā)工作12年,曾在高陽、空中網(wǎng)、新浪、樂蜂網(wǎng)等互聯(lián)網(wǎng)公司擔任構架師、高級技術經(jīng)理、技術總監(jiān)等職位。他對HTML5技術有非常深刻的認識和理解,有著豐富的實踐經(jīng)驗,同時也是HTML5引擎Crow5的創(chuàng)造者。
“是什么在左右你選擇語言?”曲毅一開場就拋出了一個問題。經(jīng)過六個小組的簡短討論,最終曲毅在白板上將選擇語言需要考慮的問題歸納成六點。
一是團隊。訓練營的一位小伙伴表示,招到優(yōu)秀的人才最難得,***是能招募一個靠譜的團隊,有了團隊,語言的選擇就順理成章了。
二是成本。這里面主要是時間成本和質量成本。曲毅認為此外還需要考慮人員培養(yǎng)的周期、學習的周期、團隊配合的周期,以及人員流失帶來的人力成本。
三是控制。選擇了這種語言能不夠始終保持控制度。
四是項目特點。根據(jù)不同的項目需求,最終選擇最適合這個項目的語言。
五是技術健壯性。所謂技術健壯性主要包括技術是否安全,文檔是否健全,以及活躍性,例如這種框架社區(qū)是否活躍,是否有持續(xù)性。
六是技術多樣性。產(chǎn)品合作的需要取決于團隊語言的多樣性,曲毅認為前期搭建團隊時,采取的語言***要統(tǒng)一,但是后期團隊發(fā)展起來后,***能夠有多樣語言,因為經(jīng)常會與外部合作,語言的多樣性可以帶來更多的選擇。
好的架構是設計出來的,還是改出來的?
“好的架構是設計出來的,還是改出來的?”曲毅又拋出一個問題,***他談出自己的觀點:長遠地看,架構是改出來,短期地看是設計出來的。
他解釋道,企業(yè)發(fā)展是從無到有,從小到大的過程,而企業(yè)產(chǎn)品演化的方向同樣也是變化的,而且有時間和成本的限制,因此架構在前期、中期、后期需要考慮的點都不盡相同,應當因地制宜地選擇語言,選擇合適的容器,合適的架構。“在我看來,做架構就是做技術創(chuàng)業(yè)。”
龐大復雜的系統(tǒng)如何進行解耦?
“解耦主要用的逆向思維,這一點和寫游戲外掛非常相似。”曲毅表示,“那么解藕是否有規(guī)律可尋?”答案顯然是肯定的,曲毅給出5個方法,根據(jù)這5個步驟就可以逐一替換拆分出的模塊。
***步,抽象+分層是一種解決方案,采用代理模式,從整體把握,按照業(yè)務拆;第二步,在模塊內,熟悉系統(tǒng),研究數(shù)據(jù)流。用逆向工程模擬交互接口,猜表;第三步,逐一替代,按照功能和數(shù)據(jù)流向對接。需要注意的是,前期涉及數(shù)據(jù)同步、臟數(shù)據(jù)等問題,需要寫外掛處理臟數(shù)據(jù);第四步,針對臟數(shù)據(jù),收集bug。使用數(shù)學歸納法窮舉問題,逐一修復;第五步,***打破現(xiàn)在方案,根據(jù)對現(xiàn)有業(yè)務的需求,重新設計,曲毅表示,這里要注意,是按照業(yè)務需要設計,并非技術架構。
主流電商業(yè)務流程介紹
“在主流電商平臺中,若需精細化管理各個業(yè)務流程,一般會涉及到上百個系統(tǒng),系統(tǒng)之間的交互接口更是不及其數(shù),任何系統(tǒng)環(huán)節(jié)出現(xiàn)問題,都會對業(yè)務帶來或多或少的影響。”曲毅以電商為例。
系統(tǒng)解耦案例2
設計的進化
曲毅用發(fā)生在自己身上的真實案例給大家講解設計前端,寫代碼的方法論。“如果都采用標準化語言規(guī)范和配置方式,給我30分鐘就可以教會大家使用JS語言”
他的方法是首先要編寫公用模塊給大家用,編寫規(guī)則引擎大家可以按照相同方式編寫。***階段要編寫完整的模塊,并且書寫風格優(yōu)良。講到這里,曲毅分享他的心得,他認為少寫代碼就可以減少復雜度,約定模式是一種很好的方式,用配置的方式可以減少代碼的編寫,而且降低具體細節(jié)的復雜度
***他提醒大家,要回歸本真,標記替代配置,這樣更簡潔,更容易理解。
“學會忘記,也許設計的本真就在開始的時候,就在你覺得簡單的時候。”
輕松熱鬧的沙盤活動
瀚海商學院劉達開,是一位有豐富管理經(jīng)驗的老師,在下午沙盤活動環(huán)節(jié),也給學員們帶了輕松交流交流和項目管理的經(jīng)驗分享。
劉達開,瀚海商學院資深講師、管理咨詢師,是瀚海商學院沙盤【地租交易】【超級公司】【捕魚達人】研發(fā)者,主要研究方向是“PDP測評”“工作壓力和情緒管理”“沙盤管理”,掌握企業(yè)管理學、心理學、人力資源管理等知識,擁有豐富的教學經(jīng)驗。
他首先讓大家將座位調整成一個圓圈,每兩位學員開始互相介紹自己,然后通過一兩個互動的小游戲,讓大家在輕松愉悅過程中認識彼此。
小伙伴們開始面對面互相握手介紹自己
在體驗活動中,劉達開將學員分成7個小組,每個小組自己領取了不同形狀不同顏色的任務卡,只有小組之間相互合作,互相共享信息,齊心協(xié)力才能完成。最終學員們經(jīng)過“激烈”的溝通,順利地完成了任務。
【CTO 訓練營】是51CTO高招旗下,面向中高端技術管理人才,提供技術和管理的學習以及人脈和資源平臺,旨在打造技術經(jīng)理的MBA,為行業(yè)輸送更多CTO人才,第三季CTO訓練營課程內容參照CTO勝任能力以及延展能力設計,包含技術與架構、技術與管理、商業(yè)運營、敏捷個人管理4大模塊,聘請一線互聯(lián)網(wǎng)平臺 CTO擔任導師,完成為期12天的課程學習之后,參與畢業(yè)典禮,輔修學分,完成結業(yè)。
【51CTO原創(chuàng)稿件,合作站點轉載請注明原文作者和出處為51CTO.com】