张凯江:架构能力-“构建”世界的能力
復雜事情往簡單了去想,是拆解,是切割,就像一劍破萬法;而將簡單事情往復雜了去想,是縫補,是搭建,是打造自成規(guī)則的小天地。如果成事、做事呢?任何人組織、企業(yè)、個人都會面臨選擇,左右為難。如何平衡這種矛盾呢!本文試圖站在更高的視角審視構(gòu)建(架構(gòu))這個事情,溯源探秘、揭示本質(zhì),從構(gòu)建世界再到架構(gòu)設計。
要構(gòu)建架構(gòu)設計的標的物本質(zhì)是什么?
架構(gòu)為什么需要共識的,用于描述表達的通用語言?
構(gòu)建迭代、創(chuàng)新的本質(zhì)過程是什么?
用到的知識工具體系是什么?
面對問題時,人們?nèi)绾瓮蒲輿Q策?
1
? ?
前言
《銀河補習班》是一部很棒的電影,影片主角為一名橋梁設計師,他不僅能夠設計橋梁建筑,還能“設計”主角兒子的未來。如影片中一樣,很多人低估了“架構(gòu)師”的重要性及能發(fā)揮的能量。希望社會、行業(yè)能夠重視有工匠精神的這伙人,也希望他們能發(fā)揮自己的特長。
2
? ?
“夢中的仙境”是一種抽象
首先,我們一定要認識到到,我們是在抽象這個世界,而不是描述這個世界。世間夸張之物,無非夢境、仙境、幻境。這些本就是那夢幻之境,所見之景,所識之人,無不是美輪美奐。如名著西游記、紅樓夢、桃花源記都有描述:
西游記中的仙境,偏于現(xiàn)實化,以凡間的聚會歌舞呈現(xiàn),不過是更換了地點,有那仙霧繚繞,瑤池樓臺方成仙境。
紅樓夢中的仙境卻是在寶玉的夢中。本就是一個鐘愛女兒的癡情公子哥,夢見的無一例外的全是那天上少有世上無雙的仙子,連夢境都是夢幻。
桃花源記中描述也是對現(xiàn)實的理想化。阡陌交通,雞犬相聞。其中往來種作,男女衣著,悉如外人。黃發(fā)垂髫,并怡然自樂。見漁人,乃大驚,問所從來。
針對如此玄幻的內(nèi)容,文學名著中都以人的日常行為、情緒、環(huán)境等作為抽象、表達,如何玄幻都逃不出人間二字。當然人類在不同領域也創(chuàng)造了不同的表達方式,如:數(shù)學學科、計算機學科、物理學科。可見,我們面臨的任何需求,都有個范圍,都逃不開我們對世界的抽象。
而計算機領域呢,消費互聯(lián)網(wǎng)、產(chǎn)業(yè)互聯(lián)網(wǎng)、新基建,再到前幾年提出的數(shù)字地球、智慧城市、虛擬現(xiàn)實等,都是一種抽象方式:
從創(chuàng)業(yè)者視角看,如埃隆·馬斯克在理想中為公眾構(gòu)建的, 是一個未來世界的完整生態(tài)。
從產(chǎn)品視角看,如何理解客戶,挖掘現(xiàn)實和未來的需求,設計什么方案解決它們。都抽象為一個個相關聯(lián)的需求;
從設計角度看,有面向?qū)ο笥缮贤卵赜谜Z言附帶的設計理念;也有數(shù)據(jù)庫設計由下往上存儲設計;或更徹底的 DDD 領域設計抽象等;無論如何逃不出不同生命周期領域?qū)ο蠛统志没臄?shù)據(jù)庫表;
從實現(xiàn)視角看,程序員把任何事物都抽象成一行行代碼,或哪類語言解決相關問題更加擅長等;
從系統(tǒng)視角看,會有邊界、會有用戶、會有利益等。
... ...
面對如此復雜的領域知識、體系知識,難免會懵。化繁為簡后,架構(gòu)師需要設計或找尋一種表達方式,可以讓用戶、合作伙伴、產(chǎn)品、技術(shù)、運維、運營、管理層都能夠理解一致。從我個人角度理解,架構(gòu)師的職責和重要性嚴重被低估,軟件企業(yè)內(nèi)部,架構(gòu)師需要負責對不同角色解釋架構(gòu),不產(chǎn)生理解偏差。當然不一定全部是用文檔或其它介質(zhì)作為載體,當有異議時,會議語言作為最后的方式。當然領導拍板又會拍向哪處,誰也說不好。
回歸主題:任何行業(yè)業(yè)務、現(xiàn)在\未來的需求,再復雜都會映射到現(xiàn)實的行為、思想中。而作為架構(gòu)師解決所有問題,切入點都是人類對世界的抽象相關。所以,你對世界的認知寬度和廣度,決定了你架構(gòu)世界的寬度和廣度。多看書,多思考,多元化思維的搭建,將有助于更好認知世界、認知環(huán)境、認知他人、認知自己。
3
? ?
數(shù)據(jù)-計算機技術(shù)最重要的表達方式
我們是在抽象這個世界,而不是去描述這個世界。但是又不得不去描述這個世界!真的很諷刺,人類創(chuàng)造語言、符號,知識為了更好的描述這個世界。那么,人類創(chuàng)造的語言、符號準確嗎?但是無論如何,我們需要找尋一種通用的,不會過期的表達體系來傳承。
《哲學起步》一書中提到符號模式時,“自欺”是使用符號的一種方式,比如說我們在架構(gòu)術(shù)語中標識"前后端分離"這個符號,到底“”前后端分離“算不算一種(符號),關鍵是看我們大家認為它到底是不是(符號)。
符號只是對我們抽象的嘗試描述,至于本質(zhì)含義已經(jīng)不需要深究,也沒必要深究。
愛因斯坦曾經(jīng)說過:“宇宙最不可思議的事,就是這宇宙竟然如此可思議(認知、描述)”。簡述就是,這個世界居然可以被理解。
計算機發(fā)展史,也可以認為是“共識語言、共識符號”的發(fā)展史。人們試圖創(chuàng)造一種“符號”,能夠讓程序員連通現(xiàn)實和計算機世界。如 DDD 描述這個業(yè)務知識;內(nèi)部構(gòu)建一些通用的架構(gòu)范式;設計模式原則等(符號);甚至創(chuàng)造一門新的高級語言... ...。我認為數(shù)據(jù)可能才是這個行業(yè)通用符號語言,只有從業(yè)者對數(shù)據(jù)理解水平越高,效率才會越高,因為數(shù)據(jù)里數(shù)學最近。(前段時間還看到網(wǎng)上有文章寫到 sql 語言是最保值的語言,另外會用 sqlserver,學習 mysql 基本一周就能基本搞定)
柏拉圖說:“數(shù)學是一切知識中的最高形式”。
黑格爾說:“數(shù)學是上帝描述自然的符號”
從 IT 數(shù)字化、電子化,到衣食住行休閑娛樂移動互聯(lián)網(wǎng)等,人們在現(xiàn)實世界的時間都被手機等電子設備占用。如果我們回顧這條線(回看第一小節(jié)的結(jié)論),用數(shù)字化、電子化、網(wǎng)絡化和虛擬化這些詞已經(jīng)無法完整描繪這個過程了。我們嘗試用天文術(shù)語“平行世界”來表達,在這個平行世界中由于道德約束、成本虛擬等原因,數(shù)學、計算機技術(shù)、心理學、經(jīng)濟學、物理學、天文等學科應用的更加淋漓盡致。
舉幾個例子:我們夢想中想要的愛江山更愛美人的網(wǎng)約、指點江山點評天下的鍵盤俠、站在舞臺萬人矚目的直播、攻城拔寨血雨腥風的游戲...都很容易在“虛擬平行世界”實現(xiàn)。所以擺在創(chuàng)業(yè)者、產(chǎn)品、架構(gòu)師面前的不僅僅只是現(xiàn)實世界的抽象,更多的是夢境中可能實現(xiàn)的事情,所以別怪產(chǎn)品愛做夢,別怪競爭激烈。其實在如此美妙的時代,真的很有趣。
高樓萬丈平地起,無論多么復雜的應用,底層都會有支撐的。回歸現(xiàn)實,看看 DIKW 體系如下圖所示(相關內(nèi)容可以自行搜索)。拋開價值層面,我們現(xiàn)在大多的 app 應用都是在生產(chǎn) Data 和 Infomation 層面,而大數(shù)據(jù)和人工智能是更為頂端的層面。無論如何,對于數(shù)據(jù)的理解、數(shù)據(jù)價值的轉(zhuǎn)變,誰忽略,誰將被別人超越。當然,架構(gòu)師對數(shù)據(jù)的理解也會影響架構(gòu)能力的提升。
作為計算機行業(yè)的沉淀,數(shù)據(jù)本身的價值越來越重要。而計算機學科與數(shù)學學科的相互成就將持續(xù)下去。關于數(shù)據(jù)重要性的內(nèi)容可以自己搜索,我個人認為大數(shù)據(jù)的價值由于 ROI、固有利益鏈等原因,遠遠沒有發(fā)揮出全部價值。
作為 it 互聯(lián)網(wǎng)從業(yè)者,需要對數(shù)據(jù)的理解更加重視。過去幾年,5G、大數(shù)據(jù)、ai、物聯(lián)網(wǎng)都是與數(shù)據(jù)息息相關的產(chǎn)業(yè)。我們也可以從數(shù)據(jù)角度,嘗試分為三類系統(tǒng):
3.1
? ?
業(yè)務、數(shù)據(jù)流類系統(tǒng)
從終端發(fā)起業(yè)務、數(shù)據(jù)流的系統(tǒng)。強調(diào)橫向抽象分層、縱向業(yè)務分層,包括單體、微服務等應用。這類應用基本映射人類現(xiàn)實中活動,如:衣食住行醫(yī)療娛樂等大部分都屬于這類。技術(shù)架構(gòu)層面已經(jīng)很成熟或飽和,競爭點感覺跟產(chǎn)品、技術(shù)關系不大了。競爭點聚焦在背后的數(shù)據(jù)價值、背后的資源整合、巨頭山頭、流量控制等。架構(gòu)能力核心是控制好業(yè)務流、數(shù)據(jù)流,其它問題都會迎刃而解。
3.2
? ?
大數(shù)據(jù)類系統(tǒng)
以 flink、spark 等流計算系統(tǒng)和 mr、hive、spark 類批處理系統(tǒng)為主。難點在機器資源龐大后,能夠穩(wěn)定的輸出和架構(gòu)的擴展性。核心是明白數(shù)據(jù)到信息的轉(zhuǎn)變規(guī)則、數(shù)據(jù)與數(shù)據(jù)之間的 mashup。個人認為 es、mpp 類數(shù)據(jù)庫應用算不上大數(shù)據(jù)范疇,屬于第一類系統(tǒng)的擴展數(shù)據(jù)應用。
3.3
? ?
ai 數(shù)據(jù)深度應用類系統(tǒng)
ai 應用主要為其它應用賦能、提效,通常會嵌入第 1、2 類系統(tǒng)中,單獨的 ai 應用系統(tǒng)較為少見。比如:廣告點擊率預測、item 推薦系統(tǒng)預測評分模塊、搜索引擎、圖像識別、圖像檢測、語言翻譯等都不容易單獨構(gòu)成應用。這類系統(tǒng)的核心是 ai 賦能點是什么?如排序、圖像識別、智能審核等,如果沒有 ai 模塊原來是怎么實現(xiàn)的、效果差在什么地方。ai 也會創(chuàng)新創(chuàng)造出很多新的模式,如人類信用體系的建立。ai 模型應用都是由數(shù)據(jù)訓練而來的,可以說數(shù)據(jù)是重中之重。
數(shù)學精通不了,但數(shù)據(jù)必須懂,數(shù)據(jù) sense 提早培養(yǎng)。計算機技術(shù)無論那條線,都會回歸到數(shù)學、數(shù)據(jù)上。作為架構(gòu)師,把數(shù)據(jù)流、數(shù)據(jù)內(nèi)涵、數(shù)據(jù)處理、數(shù)據(jù)預測等理解了,能更好的理解業(yè)務。也能明白其它任何人的訴求,設計出穩(wěn)定的系統(tǒng)。
注:DDD 領域驅(qū)動設計目標為一門通用語言,把連接業(yè)務/產(chǎn)品到技術(shù)研發(fā)良好的連接起來,試圖把現(xiàn)實世界的業(yè)務轉(zhuǎn)化為計算機領域的語言描述。個人認為做好領域驅(qū)動設計,核心把對數(shù)據(jù)的理解吃透。
4
? ?
構(gòu)建“平行世界”---機械論、還原論用武之地
世界上很多東西(如相對論),是本身就存在,后來被人類發(fā)現(xiàn)的呢?還是人類發(fā)明的呢?用哪種符號、表達方式是最客觀的描述語言呢?
就我們普通人來說,
第一層次:人類在刻意的還原現(xiàn)實到虛擬網(wǎng)絡,并把邊際成本降到最低,形成流量壟斷(如常見的衣食住行 app)。不過好在有邊際效用遞減事情,欲望會讓人們不斷的不滿于現(xiàn)狀,循環(huán)的破立。
第二層次:類似進化論的方式,(某種推手推動)虛擬的世界自我演進,人們企圖找到某種進化規(guī)律,搶占先機。(如鋼鐵俠、喬布斯做的一些事情)
移動互聯(lián)網(wǎng)的未來是什么?大數(shù)據(jù)、物聯(lián)網(wǎng)、5G、ai 發(fā)展到一定層面,到底還能給移動互聯(lián)網(wǎng)、產(chǎn)業(yè)賦能到什么地步呢?我們很難描繪出變成什么樣,但從近二十年來看,“計算機平行世界”的構(gòu)建過程是從現(xiàn)實到虛擬,逐步構(gòu)建、完善、迭代的過程。恰好跟機械論、還原論一致。
機械論認為,生命完全是物質(zhì)的,根本不存在什么神秘的“活力”,把生命看作是一架復雜的機器。還原論是機械論發(fā)展而來的。
還原論是一種哲學思想,其認為復雜的系統(tǒng)、事務、現(xiàn)象可以通過將其化解為各部分之組合的方法,加以理解和描述。
近十幾年,移動互聯(lián)網(wǎng)把衣食住行千方百計“虛擬”化,搬到移動互聯(lián)網(wǎng)上。任何復雜的需求、應用、業(yè)務都能稱之為還原,在效率上,邊際成本上做了近乎榨油的進化。
個人認為,作為架構(gòu)師,這個還原工作還將持續(xù)很久很久。(這種效率的提升,對生活節(jié)奏的加快,個人認為不是什么好事)
我們發(fā)現(xiàn)移動互聯(lián)網(wǎng)對現(xiàn)實產(chǎn)業(yè),辦公、教育、娛樂、購物、游戲...的影響,都是一部分、一部分循序的“賦能提效”的(個人覺得顛覆不合適);大廠的布局也是一塊一塊的拼圖來構(gòu)建大的帝國;產(chǎn)業(yè)的發(fā)展也是一波一波的數(shù)字化、智能化(契機式:例如此次疫情肯定會所推進相關數(shù)字產(chǎn)業(yè))。尤其是從人類活動時間來分析,人們在現(xiàn)實世界 VS 平行世界的停留時間來 PK,無疑平行世界越來越有優(yōu)勢。
說這么多,我們架構(gòu)的“平行世界”肯定是在還原現(xiàn)實的基礎上,并進一步做優(yōu)化。而過去和未來的架構(gòu)能力,都體現(xiàn)在“還原”二字。作為架構(gòu)師,必須了解現(xiàn)實、了解歷史,多讀書,多行路,才能有更加豐富的還原能力。我們不是哲學家,普通人的架構(gòu)不是創(chuàng)造抽象,而是一種還原描述,甚至可以理解為“抄襲”,抄襲現(xiàn)實、抄襲別人、抄襲任何生態(tài)。慶幸我們抄襲的對象是不斷發(fā)展的,難有固步自封風險。
現(xiàn)在互聯(lián)網(wǎng)界也在研究復雜理論、混沌理論,覺得創(chuàng)新領域與此相關,我個人完全認同。但是構(gòu)架設計背后是因果關系,而不是相關關系。需要精細化、明確化的定義、描述、組合、可量化、評價、溯因....
注:生命生物體與機械體的本質(zhì)區(qū)別是什么?1、生命體能繁衍?2、生命體因果關系不明確。所以,我們架構(gòu)的是機械體,而不是生命體。我們更加關注的是因果關系。關于還原論可以看看《賦能》這本書,我們把組織當成生命體,用機械論、還原論的管理方法,肯定會有一些問題。
5
? ?
名句摘抄
“授人以魚,不如授人以漁;授人以漁,不如授人以欲。” 就是指沒有直接給予物質(zhì),而是教以方法或某種信念!
5.1
? ?
作者簡介
張凱江:專注 IT 行業(yè) 15 年+。曾任科技上市公司技術(shù)總監(jiān),多年政府 toB 行業(yè)經(jīng)驗,
2014 年投身互聯(lián)網(wǎng)行業(yè)創(chuàng)業(yè)。現(xiàn)從事工作為 OTT\IPTV 提供內(nèi)容變現(xiàn)商業(yè)化產(chǎn)品、視頻運營解決方案。愛讀書、愛思考,喜歡打籃球、遛狗。公號:體制化思維。
- EOF -
想要加入中生代架構(gòu)群的小伙伴,請?zhí)砑尤汉匣锶?strong>大白的微信
申請備注(姓名+公司+技術(shù)方向)才能通過哦!
工程師成長系列推薦
多隆:從工程師到阿里巴巴合伙人
2020-11-10
為什么說IT科技公司應該留住35歲員工?
2020-11-05
工程師的基本功是什么?如何練習?聽美團技術(shù)大咖怎么說
2020-10-19
美團技術(shù)專家云鵬:寫給工程師的十條精進原則!
2020-10-15
找CTO杜仲:再談中年危機和應對策略
2020-10-10
Erik Dietrich:二十年的編程,教會我的五件事!
2020-09-22
Mobvista首席架構(gòu)師蔡超:工作感悟之失敗與成功,我的8點總結(jié)
2020-09-20
奈學教育CEO孫玄:成為一個有情懷的工程師,我的12點思考
2020-09-19
Netstars CTO陳斌:架構(gòu)師的成長之路
2020-09-17
左耳朵耗子:程序員如何把控自己的職業(yè)?
2020-08-22
RocketMQ 大神丁威親述參與開源社區(qū)的方式
2020-11-17
Oracle首席工程師四火:技術(shù)面試中,怎樣的問題才是好問題?
2020-11-24
? ?END ? ?? #架構(gòu)師必備#點分享點點贊點在看總結(jié)
以上是生活随笔為你收集整理的张凯江:架构能力-“构建”世界的能力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源协议神图介绍 MIT 与 Apach
- 下一篇: NYOJ 745 蚂蚁的难题(二)