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