Categories
程式開發

我也曾對架構師的力量一無所知



{“type”:”doc”,”content”:[{“type”:”blockquote”,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”是不是觉得这个标题似曾相识?”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”没错,就是致敬韩寒的那篇《”},{“type”:”link”,”attrs”:{“href”:”https://mp.weixin.qq.com/s?__biz=MjM5ODA0NTc4MA==&mid=2652754514&idx=1&sn=af27dd501723b39257c8cdf4cd152fb1&scene=21#wechat_redirect”,”title”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”italic”}],”text”:”我也曾對那種力量一無所知”}],”marks”:[{“type”:”strong”}]},{“type”:”text”,”text”:”》。全文主旨就是業餘玩家自嗨可以,但千萬別狂妄到企圖挑釁專業選手。否則,下場就和當初的 “},{” type”:”text”,”marks”:[{“type”:”strong”}],”text”:”松江新區·奧沙利文·韓寒”},{“type”:”text”,”text”:” 一樣,在潘曉婷面前只有開球的份兒。”}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”虽说我和韩寒同年,但也算是“看着他长大”的。韩寒成名于新概念作文,而后不断开挂,在作家、赛车手、导演等多个角色上都游刃有余且扮演的相当成功,如此色彩斑斓的人生一直让我艳羡不已。而我,一介码农,初时随波逐流,醒时已亦步亦趋在架构之路上,艰苦非常。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”因为,架构师的力量,我也曾一无所知。”}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:2},”content”:[{“type”:”text”,”text”:”代码执念”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”每個程序員對美的代碼的認知不盡相同,但大多有個共識,那就是,架構師設定的各種條條框框簡直是”}{“type”:”text””marks”:[{“type”:”text””text”:”每个程序员对美的代码的认知不尽相同,但大多有个共识,那就是,架构师设定的各种条条框框简直是”}{“type”:”text””marks”:[{“type”:”text””text”:”每個程序員對美的代碼的認知不盡相同,但大多有個共識,那就是,架構師設定的各種條條框框簡直是”}{“type”:”text””marks”:[{“type”:”text””text”:”每个程序员对美的代码的认知不尽相同,但大多有个共识,那就是,架构师设定的各种条条框框简直是”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”對美的褻瀆”},{“type”:”text”,”text”:”!”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”其实,你可能对架构师的执念一无所知!”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”表面看到的”},{“type”:”text”,”text”:”:架構師成天沒事找事,發布代碼規範,設定評審標準。執著於代碼的潔癖,分層的固化、API的標準化、中間件的抽象化…”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”實際發生的”},{“type”:”text”,”text”:”:光禿禿(沒註釋)的形似被混淆過(兒戲的命名|對不齊的段落… )的千行代碼,事務的註解可能在每一層都出現過,邏輯代碼散落在Business/Service/Dao各層,只是因為不喜歡Hibernate所以選擇MyBatis,只是因為谷歌腦殘粉所以選擇Gson/Guava. ..”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”随心所欲的代码会带来维护的困难和各种技术债,不统一的技术框架会引入更多的学习切换成本和升级优化成本,评审口径不一致会导致团队聚焦散乱各自为战…架构师作为团队的一个高攻厚血型英雄,着实操碎了心。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”架構師的執念,就是盡最大努力,在低位面減少技術熵增,高位面尋求技術突破”},{“type”:”text”,”text”:”。”} ]},{“type”:”blockquote”,”content”:[{“type”:”paragraph””attrs”:{“indent”:0″number”:0″align”:null”origin”:null}”content”:[{“type”:”text””marks”:[{“type”:”paragraph””attrs”:{“indent”:0″number”:0″align”:null”origin”:null}”content”:[{“type”:”text””marks”:[{“type”:”paragraph””attrs”:{“indent”:0″number”:0″align”:null”origin”:null}”content”:[{“type”:”text””marks”:[{“type”:”paragraph””attrs”:{“indent”:0″number”:0″align”:null”origin”:null}”content”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:””}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”通過規範指定的標準都是”}{“type”:”text””marks”:[{“type”:”text””text”:”通过规范指定的标准都是”}{“type”:”text””marks”:[{“type”:”text””text”:”通過規範指定的標準都是”}{“type”:”text””marks”:[{“type”:”text””text”:”通过规范指定的标准都是”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”低位面”},{“type”:”text”,”text”:”,不需要你在低位面上浪費任何時間扯犢子。而高位面一定是無法給出規範標準的,任你創新和發揮。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”””}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph” ,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”同样是打印Hello World,就是有人会多渲染个ASCII字符画,让控制台输出不那么冷冰冰。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:”br”}},{“type”:” image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/b4/b4617050988f9ec8b1db2b2c530d7653.png”,”alt”:null,”title”:null,”style”:null, “href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”: null,”origin”:null}},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/e3/e3d3b40a968a4634b93a58a1cce9bf33.png”,”alt “:null,”title”:null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{ “indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”: 0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”第一次看到架構師寫出下面這種條件表達式的”}{“type”:”text””marks”:[{“type”:”text””text”:”第一次看到架构师写出下面这种条件表达式的”}{“type”:”text””marks”:[{“type”:”text””text”:”第一次看到架構師寫出下面這種條件表達式的”}{“type”:”text””marks”:[{“type”:”text””text”:”第一次看到架构师写出下面这种条件表达式的”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”非常規”},{“type”:”text”,”text”:”寫法時,”}]},{“type”:”codeblock”,”attrs”:{“lang”:”java”},”content”:[{“type”:”text”,”text”:”if ( 1 == iCount ) {}nif ( null != response && “SUCC”.equals(response.getCode()) {}”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”年幼无知的我曾经“嗤”出了声:“写个等式都要颠三倒四,整噱头博眼球么?” 直到我写出了如下错误,”}]},{“type”:”codeblock”,”attrs”:{“lang”:”java”},”content”:[{“type”:”text”,”text”:”if ( iCount = 1 ) {}   //漏了等号,永远为真nif ( response != null && response.getCode().equals(“SUCC”)) {} //少写判空导致的空指针异常”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”這種代碼的反差猶如龍門客棧的老闆娘”}{“type”:”text””marks”:[{“type”:”text””text”:”这种代码的反差犹如龙门客栈的老板娘”}{“type”:”text””marks”:[{“type”:”text””text”:”這種代碼的反差猶如龍門客棧的老闆娘”}{“type”:”text””marks”:[{“type”:”text””text”:”这种代码的反差犹如龙门客栈的老板娘”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”金鑲玉”},{“type”:”text”,”text”:”,看似風騷潑辣殺人越貨,實則純粹坦蕩至情至性。”}]},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/0b/0b1a59ed8cf7e87e3b46c15f6be2f2e9.png”,”alt”:null,”title”: null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number “:0,”align”:”center”,”origin”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”italic”},{“type”:”size”,”attrs”:{“size”:9}}],”text”:”張曼玉版金鑲玉”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”当你傻傻的写乘/除2的N次方时可还记得骚气的位运算…骚气的try-with-resource…骚气的Lambda…骚气的动态字节码…比比皆是。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”這麼些年我總結下來,架構師對代碼的執念就是八個字:”}{“type”:”text””marks”:[{“type”:”text””text”:”这么些年我总结下来,架构师对代码的执念就是八个字:”}{“type”:”text””marks”:[{“type”:”text””text”:”這麼些年我總結下來,架構師對代碼的執念就是八個字:”}{“type”:”text””marks”:[{“type”:”text””text”:”这么些年我总结下来,架构师对代码的执念就是八个字:”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”穩中帶騷,騷中求穩”},{“type”:”text”,”text”:”。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”用 “}{“type”:”text””marks”:[{“type”:”text””text”:”用 “}{“type”:”text””marks”:[{“type”:”text””text”:”用 “}{“type”:”text””marks”:[{“type”:”text””text”:”用 “}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”Python之禪”},{“type”:”text”,”text”:” 收個尾:”}]},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/94/940bf8b9b534e198f2d1d3943062a6cb.png”,”alt”:null,”title”: null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number “:0,”align”:null,”origin”:null}},{“type”:”heading”,”attrs”:{“align”:null,”level”:2},”content”:[{“type”:”text”,”text”:”造物主思维”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”只活在IDE裡寫代碼,是成不了架構師的。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”某個風和日麗的下午,公司裡一個小伙伴到我面前說:他申請在一個月內重寫消息網關係統(承載短信、微信、郵件、App推送四大渠道),原因是目前的系統太難用了。我的第一反應是 “}{“type”:”text””marks”:[{“type”:”text””text”:”某个风和日丽的下午,公司里一个小伙伴到我面前说:他申请在一个月内重写消息网关系统(承载短信、微信、邮件、App推送四大渠道),原因是目前的系统太难用了。我的第一反应是 “}{“type”:”text””marks”:[{“type”:”text””text”:”某個風和日麗的下午,公司裡一個小伙伴到我面前說:他申請在一個月內重寫消息網關係統(承載短信、微信、郵件、App推送四大渠道),原因是目前的系統太難用了。我的第一反應是 “}{“type”:”text””marks”:[{“type”:”text””text”:”某个风和日丽的下午,公司里一个小伙伴到我面前说:他申请在一个月内重写消息网关系统(承载短信、微信、邮件、App推送四大渠道),原因是目前的系统太难用了。我的第一反应是 “}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”“WOC,我一直盼望的那個救世主終於出現了麼?!””},{“type”:”text”,”text”:” 其實吧,那個消息網關係統曾經是我和架構組兄弟花不少力氣設計的,本身並沒有什麼大問題,最多就是隨著消息數量的指數級上升,需要做一些性能優化,比如 “},{“type”:”text”,”marks” :[{“type”:”italic”},{“type”:”strong”}],”text”:”分庫分錶”},{“type”:”text”,”text”:” 和 “},{“type”:”text”,”marks”:[{“type”:”italic”},{“type”:”strong”}],”text”:”數據歸檔”},{“type”:”text”,”text”:” 就能解決大部分問題,而這些升級所需的擴展性在設計初期就考慮過。我生怕表現出對這位“救世主”的質疑而顯得不禮貌,就小心翼翼的試探了兩個問題:”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”blockquote” ,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”“如何平衡上游业务的洪峰和下游消息通道的最大承载,最大化单位时间内的吞吐量?””}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”微服務體系的流量控制”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”“个人交易消息和全局活动消息,如何存储和查询?””}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”text””text”:”——”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”時間和空間的抉擇”}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph” ,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”结果我得到的回复只是线程池、异步化和缓存的泛泛之谈,离真正的落地还差的很远。除了上面2个问题,还有同步异步、时效、延迟、通道隔离、信息补偿、环境开关等的实现同样很重要。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”造物思維就是從0到1需要的思維,這個1可不簡單,它必須包含進化到100所需要的一切基礎鋪墊”},{“type”:”text”,”text”: “。女媧摶tuán土造人只存在於神話中, 而架構師就是可以從0到1創造系統的“上帝”,”},{“type”:”codeinline”,”content”:[{“type”:”text”,”text”:”只是翻船事故时有发生而已”}]},{“type”:”text”,”text”:”。不要輕視任何從0到1的創造性活動,這裡所包含的知識或技能體量遠超你的想像。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”為了解釋這個過程,”}{“type”:”text””marks”:[{“type”:”text””text”:”为了解释这个过程,”}{“type”:”text””marks”:[{“type”:”text””text”:”為了解釋這個過程,”}{“type”:”text””marks”:[{“type”:”text””text”:”为了解释这个过程,”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”請你單從數學的角度,告訴我(0, 1) 這個開區間之中到底有多少個數”},{“type”:”text”,”text”:”?” }]},{“type”:”bulletedlist”,”content”:[{“type”:”listitem”,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”如果是无穷,那么二进制的计算机如何运算这无穷的数字呢?有同学回答,计算机是使用离散的浮点数来表示这些小数的。是没错,而本质上,浮点数在坐标轴上也就只是很密集的点而已,根本就不是连续的线。”}]}]},{“type”:”listitem”,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”既然全是点,更加疑惑了,计算机怎么画线呢?到这里就可以结束了,因为显示器的像素本就是人肉眼无法识别的小格子,足够密集的点足以呈现出线的效果。”}]}]},{“type”:”listitem”,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”继续刨根问底,那得了解下什么是定点数了,才可以让密集的那些点更加的密集。”}]}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”blockquote” ,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”希望你能静下心来读读这篇浮点数,”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”读完你至少可以了解“取值范围”和“可表示的个数”之间、浮点数和定点数之间的区别等等。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”link”,”attrs”:{“href”:”https://mp.weixin.qq.com/s?__biz=MzA5ODA5Mzk3MA==&mid=2647566409&idx=1&sn=649aa335e1ba15ef17a62a4f3bbebe73&scene=21#wechat_redirect”,”title”:null},”content”:[{“type”:”text”,”text”:” 《格物致知-Floating Point》”}],”marks”:[{“type”:”strong”}]}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph” ,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph”,”attrs”:{“indent”: 0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”我想我應該從一個理科男的角度,說明白了創造需要的是什麼:”}{“type”:”text””marks”:[{“type”:”text””text”:”我想我应该从一个理科男的角度,说明白了创造需要的是什么:”}{“type”:”text””marks”:[{“type”:”text””text”:”我想我應該從一個理科男的角度,說明白了創造需要的是什麼:”}{“type”:”text””marks”:[{“type”:”text””text”:”我想我应该从一个理科男的角度,说明白了创造需要的是什么:”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”足夠密集的知識點和它們之間的連接”},{“type”:”text”,”text”:”。也有人把它包裝成了“”},{“type” :”text”,”marks”:[{“type”:”italic”},{“type”:”strong”}],”text”:”知識體系”},{“type”:”text”,”text”:””,說到底,一個意思。 “}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”創造本身已然不容易,如何創造更加五花八門。”}{“type”:”text””marks”:[{“type”:”text””text”:”创造本身已然不容易,如何创造更加五花八门。”}{“type”:”text””marks”:[{“type”:”text””text”:”創造本身已然不容易,如何創造更加五花八門。”}{“type”:”text””marks”:[{“type”:”text””text”:”创造本身已然不容易,如何创造更加五花八门。”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”架構選型其實就是選擇如何創造”},{“type”:”text”,”text”:”。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”同样是索引化的数据存储,Kafka是索引文件和数据文件分离,MySQL InnoDB却是索引和数据在同一个ibd文件里。都说多线程吞吐量高响应快,Redis却选择了单线程模型(“},{“type”:”codeinline”,”content”:[{“type”:”text”,”text”:”Redis6已经加入了多线程实现,主要用于处理网络IO上。命令的执行依然是主线程串行执行”}]},{“type”:”text”,”text”:”)。孰對孰錯?”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”所以”}{“type”:”text””marks”:[{“type”:”text””text”:”所以”}{“type”:”text””marks”:[{“type”:”text””text”:”所以”}{“type”:”text””marks”:[{“type”:”text””text”:”所以”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”創造從來都不是千篇一律,也不是一成不變,而是量體裁衣”},{“type”:”text”,”text”:”。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”高明的架構師心裡藏有無數的架構設計方案,但對於不同的場景,他會選擇最合適的那個來實現。因為”}{“type”:”text””marks”:[{“type”:”text””text”:”高明的架构师心里藏有无数的架构设计方案,但对于不同的场景,他会选择最合适的那个来实现。因为”}{“type”:”text””marks”:[{“type”:”text””text”:”高明的架構師心裡藏有無數的架構設計方案,但對於不同的場景,他會選擇最合適的那個來實現。因為”}{“type”:”text””marks”:[{“type”:”text””text”:”高明的架构师心里藏有无数的架构设计方案,但对于不同的场景,他会选择最合适的那个来实现。因为”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”架構更像一種藝術而不是科學”},{“type”:”text”,”text”:”。你只看結論的話,或許最終方案並不怎麼出色,甚至很普通。但是它是經過N個方案PK勝出的The One,對其他你以為更好的方案所面臨的未知,你可能一無所知。”}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:2},”content”:[{“type”:”text”,”text”:”面对未知的勇气”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”我有深海恐惧症,许多人都有。因为面对黑不见底的海水,我们充满了对未知的恐惧。”}]},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/ed/ede95dbb74a95d6cfbde7733d45ba0af.png”,”alt”:null,”title”: null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number “:0,”align”:”center”,”origin”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”italic”},{“type”:”size”,”attrs”:{“size”:9}}],”text”:”百度有時也挺人性的”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”IT行業的未知每天都在發生著,經常讓我們手忙腳亂。何謂””}{“type”:”text””marks”:[{“type”:”text””text”:”IT行业的未知每天都在发生着,经常让我们手忙脚乱。何谓””}{“type”:”text””marks”:[{“type”:”text””text”:”IT行業的未知每天都在發生著,經常讓我們手忙腳亂。何謂””}{“type”:”text””marks”:[{“type”:”text””text”:”IT行业的未知每天都在发生着,经常让我们手忙脚乱。何谓””}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”未知”},{“type”:”text”,”text”:””?它可以是詭異的生產故障,可以是全新的技術,也可以是模糊的未來業務形態, 而架構師的核心職責之一就是”},{“type”:”text”,”marks”:[{“type”:”strong”}],”text”:”從容的解決未知”},{“type”:”text”,”text”:”。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”就,对大家来说一样都是未知,凭啥架构师就有勇气从容应对?傻孩子,架构师的身后哪里还有人?不得死撑哇!当然我是在开玩笑。许多诡异的生产问题有重启大法,但让习惯了SSH编程的你,使用Reactive来实现一套响应式服务端系统,这种未知领域你会如何应对?连产品经理都看不清的未来业务形态,你又会如何设计系统的扩展性呢?”}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:4},”content”:[{“type”:”text”,”text”:”草木皆兵”}]},{“type”:”blockquote”,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”问:你这一生碰到过的最严重的生产事故是什么?”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”答:抱歉,从未碰到过。”}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”你會如何評價此人?架構師生而從容,不僅是做到泰山崩於前而色不變,更是因為嚴重的事故甚至細微的事故苗頭都早已被扼殺在搖籃之中。”}{“type”:”text””marks”:[{“type”:”text””text”:”你会如何评价此人?架构师生而从容,不仅是做到泰山崩于前而色不变,更是因为严重的事故甚至细微的事故苗头都早已被扼杀在摇篮之中。”}{“type”:”text””marks”:[{“type”:”text””text”:”你會如何評價此人?架構師生而從容,不僅是做到泰山崩於前而色不變,更是因為嚴重的事故甚至細微的事故苗頭都早已被扼殺在搖籃之中。”}{“type”:”text””marks”:[{“type”:”text””text”:”你会如何评价此人?架构师生而从容,不仅是做到泰山崩于前而色不变,更是因为严重的事故甚至细微的事故苗头都早已被扼杀在摇篮之中。”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”海恩法則”},{“type”:”text”,”text”:”指出:每一起嚴重事故的背後,必然有29 起輕微事故和300 起未遂先兆以及1000 起事故隱患。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”几年前有段时间我开车总觉得方向盘有点松动,一直没当回事,觉得可能车老了或者自己平时方向打太紧了。某天预约做保养,车店老板小马哥把我车开走没10分钟,就给我来一电话:”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”blockquote” ,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”“你的转向柱可能出问题了,方向盘有点松,你之前有发现么?””}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”“”},{“type”:”text”,”marks”:[{“type”:”italic”}],”text”:”我知道的,可能車老了吧,也沒當回事。”},{“type”:”text”,”text”:”””}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”“你小子,转向问题很吓人的,我都不敢开了,到店里马上帮你检查看看。””}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”後來結果你們也想得到,真的是轉向柱斷裂!幸好在事態嚴重之前,小馬哥憑藉專業素養髮覺了這個隱患。所以這”}{“type”:”text””marks”:[{“type”:”text””text”:”后来结果你们也想得到,真的是转向柱断裂!幸好在事态严重之前,小马哥凭借专业素养发觉了这个隐患。所以这”}{“type”:”text””marks”:[{“type”:”text””text”:”後來結果你們也想得到,真的是轉向柱斷裂!幸好在事態嚴重之前,小馬哥憑藉專業素養髮覺了這個隱患。所以這”}{“type”:”text””marks”:[{“type”:”text””text”:”后来结果你们也想得到,真的是转向柱断裂!幸好在事态严重之前,小马哥凭借专业素养发觉了这个隐患。所以这”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”到底是是我的無知無畏還是小馬哥的小題大做”},{“type”:”text”,”text”:”?開車的同學都知道車的製動、轉向是性命攸關的大事,但是你自問對車跑偏、剎車異響、剎車發抖、轉向沉重都足夠警覺麼?其實,架構師在評審會上表現出的“”},{“type”:”text” ,”marks”:[{“type”:”strong”}],”text”:”草木皆兵”},{“type”:”text”,”text”:””亦是一種執念,他所看到的“”},{“type”:”text”,” marks”:[{“type”:”strong”}],”text”:”屍橫遍野”},{“type”:”text”,”text”:””,你可能一無所知。 “}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:4},”content”:[{“type”:”text”,”text”:”知道自己不知道”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”给你100W让你实现一个数据库,这活敢接么?就说这活本身,先别忙嫌钱多钱少。把你所有的与数据库相关的知识拿出来,你看看能凑出下面哪些模块出来?”}]},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/39/39e011031421734b555fb77e819c7dd5.png”,”alt”:null,”title”: null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number “:0,”align”:null,”origin”:null}},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null, “origin”:null},”content”:[{“type”:”text””text”:”先搞清楚“知道自己不知道”的是什麼,才有辦法將未知變已知。”}{“type”:”text””marks”:[{“type”:”text””text”:”先搞清楚“知道自己不知道”的是什么,才有办法将未知变已知。”}{“type”:”text””marks”:[{“type”:”text””text”:”先搞清楚“知道自己不知道”的是什麼,才有辦法將未知變已知。”}{“type”:”text””marks”:[{“type”:”text””text”:”先搞清楚“知道自己不知道”的是什么,才有办法将未知变已知。”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”解決未知就是不斷的轉化已知的過程”},{“type”:”text”,”text”:”。這也是為什麼競品軟件都在造輪子,但是側重點迥然不同,就是已知不同。這個“已知”可以是商業產品、開源產品,也可以是論文報告,還可以是業務、技術痛點,不一而足。”},{“type”:”text”, “marks”:[{“type”:”italic”}],”text”:”RocketMQ”},{“type”:”text”,”text”:”當初參照了Kafka,在犧牲了部分性能的情況下優化了投遞時效、消息順序、消息軌蹟等;” },{“type”:”text”,”marks”:[{“type”:”italic”}],”text”:”TiDB”},{“type”:”text”,”text”:” 是基於 “},{“type”:”text”,”marks”:[{“type”:”italic”}],”text”:”Google Spanner / F1″},{“type”:”text”,”text”:” 論文實現的開源分佈式NewSQL 數據庫;開源調用鏈如Skywalking、Pinpoint都是基於 “},{ “type”:”text”,”marks”:[{“type”:”italic”}],”text”:”Google Dapper”},{“type”:”text”,”text”:”  論文實現的;界面簡潔、容量大、搜索強的 “},{“type”:”text”, “marks”:[{“type”:”italic”}],”text”:”Gmail”},{“type”:”text”,”text”:” 橫空出世,面對眾多傳統郵箱的狙擊,依然成為人們最愛的郵箱品牌,順便激活了半死不活的”},{“type”:”text”,”marks”:[{“type”:”italic”}],”text”:”javascript”},{“type”:”text”,”text”:” …”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”未知? 不過爾爾。”}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:2},”content”:[{“type”:”text”,”text”:”架构师的天赋”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”只有天才的程序員,沒有天才的架構師。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”架構師靠的不是天賦,而是勤勉,要靠大量時間進行實戰操練和經驗積累。身邊水貨架構師這麼多,也是因為國內的技術氛圍略顯浮躁,留給架構師成長的那點可憐的時間和空間,時刻被公司項目擠壓著,拔苗助長,不得不水。熱門吵架題目“”}{“type”:”text””marks”:[{“type”:”text””text”:”架构师靠的不是天赋,而是勤勉,要靠大量时间进行实战操练和经验积累。身边水货架构师这么多,也是因为国内的技术氛围略显浮躁,留给架构师成长的那点可怜的时间和空间,时刻被公司项目挤压着,拔苗助长,不得不水。热门吵架题目“”}{“type”:”text””marks”:[{“type”:”text””text”:”架構師靠的不是天賦,而是勤勉,要靠大量時間進行實戰操練和經驗積累。身邊水貨架構師這麼多,也是因為國內的技術氛圍略顯浮躁,留給架構師成長的那點可憐的時間和空間,時刻被公司項目擠壓著,拔苗助長,不得不水。熱門吵架題目“”}{“type”:”text””marks”:[{“type”:”text””text”:”架构师靠的不是天赋,而是勤勉,要靠大量时间进行实战操练和经验积累。身边水货架构师这么多,也是因为国内的技术氛围略显浮躁,留给架构师成长的那点可怜的时间和空间,时刻被公司项目挤压着,拔苗助长,不得不水。热门吵架题目“”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”架構師要不要寫代碼”},{“type”:”text”,”text”:””,理性點的人會把架構師做個分類,摘出個比如 “},{ “type”:”text”,”marks”:[{“type”:”italic”}],”text”:”業務架構師”},{“type”:”text”,”text”:”,說可以不用寫代碼。但是他不可能從石頭縫裡蹦出來,若沒有對業務浸淫多年的歷練(編碼只是一個歷練維度),如何能設計出合理的業務架構來?所以別再問這種傻X問題了,何苦給自己的偷懶找藉口還如此冠冕堂皇?寧願換個題目討論,”} ,{“type”:”text”,”marks”:[{“type”:”strong”}],”text”:”“架構師的門檻是寫多少行代碼””},{“type”:”text”,”text”:”。”}]},{“type”:”heading”,”attrs”:{“align”:null,”level”:4},”content”:[{“type”:”text”,”text”:”技术密度”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”程序員起步階段的技術能力,通常是“蜂窩”狀的,也就是存在大量的”}{“type”:”text””marks”:[{“type”:”text””text”:”程序员起步阶段的技术能力,通常是“蜂窝”状的,也就是存在大量的”}{“type”:”text””marks”:[{“type”:”text””text”:”程序員起步階段的技術能力,通常是“蜂窩”狀的,也就是存在大量的”}{“type”:”text””marks”:[{“type”:”text””text”:”程序员起步阶段的技术能力,通常是“蜂窝”状的,也就是存在大量的”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”技術空洞”},{“type”:”text”,”text”:”,而這些空洞需要通過勤勞的採蜜,累積一點一滴的“”},{“type” :”text”,”marks”:[{“type”:”strong”}],”text”:”蜂蜜”},{“type”:”text”,”text”:””來填滿。科學愛好者都知道中子星的密度堪比黑洞,類比將地球壓縮成中子星,直徑只有22米,普通的原子都沒辦法在中子星附近停留,會被撕碎、經過引力坍塌後進一步壓縮。架構師就擅長這種吸收並壓縮知識的套路。硬要我給架構師的天賦定一個指標的話,那就是”},{“type”:”text”,”marks”:[{“type”:”strong”}],”text”:”技術密度的高低”},{“type”:”text”,”text”:”。初二物理都學過 “},{“type”:”text”,”marks”:[{“type”:”italic”},{“type”:”strong”}],”text”:”密度= 質量/ 體積”},{“type”:”text”,”text”:”。對應到代碼,同樣質量的一個功能,你寫一頁,架構師寥寥幾行,這就是高技術密度的直觀體現。”}]},{“type”:”image”,”attrs”:{“src”:”https://static001.geekbang.org/infoq/00/009bad8c1a5f55eca06687bebfc3d257.png”,”alt”:null,”title”: null,”style”:null,”href”:null,”fromPaste”:true,”pastePass”:true}},{“type”:”heading”,”attrs”:{“align”:null,”level “:4},”content”:[{“type”:”text”,”text”:”有效练习”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”再來,假如已經部分交付如上圖的一個“”}{“type”:”text””marks”:[{“type”:”text””text”:”再来,假如已经部分交付如上图的一个“”}{“type”:”text””marks”:[{“type”:”text””text”:”再來,假如已經部分交付如上圖的一個“”}{“type”:”text””marks”:[{“type”:”text””text”:”再来,假如已经部分交付如上图的一个“”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”蜂巢”},{“type”:”text”,”text”:””系統,現在需要你實現更多的“”},{“type”:”text”,”marks” :[{“type”:”strong”}],”text”:”六角蜂室”},{“type”:”text”,”text”:””以擴充這個蜂巢。 “}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”blockquote” ,”content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”这个工作乍看起来像不像重复劳动?”}]}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”其實不然。”}{“type”:”text””marks”:[{“type”:”text””text”:”其实不然。”}{“type”:”text””marks”:[{“type”:”text””text”:”其實不然。”}{“type”:”text””marks”:[{“type”:”text””text”:”其实不然。”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”首先為什麼選擇六邊形?”},{“type”:”text”,”text”:” 不是圓形不是三角形不是正方形?經測量,六邊形蜂室的所有鈍角都是109°28′,所有銳角都是70°32′。曾有法國數學家研究過,如果要消耗最少的蜂蠟,製成更少間隙、更大容積和更堅固的容器,就只有這個角度的六邊形。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”text””marks”:[{“type”:”strong”}],”text”:”其次蜂巢是倒掛的,為何液態的蜂蜜不會流出?”},{“type”:”text”,”text”:” 因為蜂蜜本身含水量不到18%,流動性比水要低得多,但低流動性不代表不流動。所以蜂巢要保持9~14度左右的傾斜,進一步防止蜂蜜流出。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text””text”:”實際結果是,你的“蜂室”交付了,但是”}{“type”:”text””marks”:[{“type”:”text””text”:”实际结果是,你的“蜂室”交付了,但是”}{“type”:”text””marks”:[{“type”:”text””text”:”實際結果是,你的“蜂室”交付了,但是”}{“type”:”text””marks”:[{“type”:”text””text”:”实际结果是,你的“蜂室”交付了,但是”}{“type”:”text””marks”:[{“type”:”strong”}],”text”:”你對角度,一無所知”},{“type”:”text”,”text”:”。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”我生来觉得自己是个愚人,即使学习成绩一直算优秀,也会全归于自己的勤勉。因为身边的天才好像真的不需要努力。我能成为架构师,也是走上程序员这条不归路的不得已之选。架构师之路漫长且艰难,而今我也只是摸到些许门路,大多时候对于自己的“不知道”依然惶惶不可终日。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”text”:”你是否也曾对架构师的力量不屑一顾过?不管是立志成为架构师或已然成为架构师,都请谦虚并努力起来。谁也不敢妄言自己掌握了架构的终极力量,因为”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}},{“type”:”paragraph” ,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”color”,”attrs”:{“color”:”#FF7021″,”name”:”orange”}},{“type”:”strong”}],”text”:”架構之路越走越無知,一如人生路。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”color”,”attrs”:{“color”:”#FF7021″,”name”:”orange”}},{“type”:”strong”}],”text”:”尊重架構師的力量,一如尊重未來的你。”}]},{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:null,”origin”:null}}]}