自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

技術(shù)人的內(nèi)功修煉,究竟修的是啥?

新聞
開發(fā)者要學(xué)習(xí)高并發(fā)服務(wù)、大數(shù)據(jù)、操作系統(tǒng)、算法和數(shù)據(jù)結(jié)構(gòu);學(xué)技術(shù)得學(xué)它的內(nèi)功,內(nèi)功就是基礎(chǔ)。

 今天我給大家分享的主題是技術(shù)人如何修煉好內(nèi)功,包括技術(shù)的內(nèi)功,也包括我們做人做事的內(nèi)功。

開發(fā)者要學(xué)習(xí)高并發(fā)服務(wù)、大數(shù)據(jù)、操作系統(tǒng)、算法和數(shù)據(jù)結(jié)構(gòu);學(xué)技術(shù)得學(xué)它的內(nèi)功,內(nèi)功就是基礎(chǔ)。

所以對于操作系統(tǒng),我們一定了解它的 CPU、內(nèi)存、磁盤 IO 和網(wǎng)絡(luò) IO,并且據(jù)此粗略評估服務(wù)的性能。

應(yīng)用層面的小伙伴們可能對算法和數(shù)據(jù)結(jié)構(gòu)的應(yīng)用比較少,也比較簡單,但是它代表了一個人的邏輯思維和思考能力。

在互聯(lián)網(wǎng)公司,高并發(fā)服務(wù)和大數(shù)據(jù)是兩大方向:

  • 解決高并發(fā)主要使用的是分而治之的思想,但是也會產(chǎn)生一致性的問題。
  • 大數(shù)據(jù)是近年來比較火的方向,所有的根基都來自 Mapreduce、Gfs 和 Bigtable 這三篇論文,推薦大家閱讀。

分布式的服務(wù)架構(gòu)

我們總體看一下分布式的服務(wù)架構(gòu)的目標(biāo),主要包含六個方面:

  • 高可用
  • 高性能
  • 可伸縮性
  • 可擴(kuò)展性
  • 安全性
  • 一致性

我們一個個來說這六個目標(biāo),它們是怎么實現(xiàn)的?這六個目標(biāo),第一個就是可用性,在一般的公司我們都會用 4 個 9,或者 5 個 9 來衡量。

我們的易寶支付可以達(dá)到 4 個 9,那 4 個 9 是怎么實現(xiàn)的呢?這個原因有很多,我們得從影響可用性的原因來分析。

例如我們統(tǒng)計了一下去年影響可用性的主要原因包括什么?主要包括我們上線變更的時候,會影響我們 40%,50% 的可用性。

針對這個情況,我們就增加了架構(gòu)評審和設(shè)計評審,還有技術(shù)評審等等。

我們把可用性這一塊的窟窿堵住了,可用性就可以提高上來,那下一個最重要的就是性能。

大家常說性能的優(yōu)化,但是性能的優(yōu)化用什么方法來保證呢?在我們分布式服務(wù)架構(gòu)里邊,最重要的就是一個分而治之的思想。

我們通過分而治之的思想提高整個系統(tǒng)的吞吐量,由于分而治之,它會導(dǎo)致一些問題,這個問題就是一致性問題。

那么,我們怎么解決這個一致性問題呢?這是我們最困難的事,也是最有挑戰(zhàn)的事。

第三個就是可伸縮性,它是我們互聯(lián)網(wǎng)項目中最重要的一個特性,為什么說它是最重要的呢?

因為垂直擴(kuò)展這個性價比已經(jīng)變得很低了,所以我們都去采用水平擴(kuò)展,包含應(yīng)用層和數(shù)據(jù)庫層,還有緩存等等。

例如數(shù)據(jù)庫的分庫分表,緩存的分片,還有消息隊列的消峰,我們都是為了讓這個系統(tǒng)能夠水平伸縮起來,然后提高它的性能。

下一個特性就是安全性,安全性是大家常說的,包含系統(tǒng)安全性,寫代碼的安全性,數(shù)據(jù)庫的安全性,還有前端外部的安全性。

但是總結(jié)起來,安全性有五個目標(biāo):

  • 防泄漏
  • 防竄改
  • 防抵賴
  • 防偷窺
  • 防止中間人攻擊

所有安全性最后的目標(biāo)只有這五個,那這五個目標(biāo)是怎么實現(xiàn)呢?

這就涉及到現(xiàn)在密碼學(xué)上的幾個技術(shù)的點:

  • 加密
  • 簽名
  • 使用 HTTPS 的雙向認(rèn)證通道,防止中間人攻擊

有了這些辦法,我們剛才所說的那五個目標(biāo),都可以達(dá)到。安全性也并沒有那么復(fù)雜,當(dāng)然具體的打法和方式還是很多的。

提到可擴(kuò)展性,大家肯定覺得可擴(kuò)展性和可伸縮性是同一個概念,但實際上這兩個概念是不一樣的。

可擴(kuò)展性指這個系統(tǒng)的可修改性,將來能夠進(jìn)行比較快速的功能迭代,然后快速去滿足新的市場需求,我們以前常說的可插拔,屬于可擴(kuò)展性,但并不是可伸縮性。

最后一個就是一致性,一致性是我們實施服務(wù)化或者微服務(wù)化以后,造成一個大的問題,我們都需要去保證。

我剛才介紹了一些分布式服務(wù)架構(gòu)的分享內(nèi)容,但實際上我們很難在 20 分鐘內(nèi)講的比較透徹。

我推薦三本書,第一本書就是京東開濤寫的《億級流量網(wǎng)站架構(gòu)核心技術(shù)》,這本書更偏向于高并發(fā)和高可用前端系統(tǒng)的一個架構(gòu)分析、設(shè)計和方法還有實踐。

第二本就是我和楊老師共同著的,《分布式服務(wù)架構(gòu)原理設(shè)計與實戰(zhàn)》,這本書包含了微服務(wù)化,一致性,可用性,還有大數(shù)據(jù)日志系統(tǒng)的建設(shè),以及調(diào)用鏈系統(tǒng)建設(shè),會包含一些 APM 的核心功能,再加上我們線上進(jìn)行技術(shù)攻關(guān)和進(jìn)行線上應(yīng)急的一些經(jīng)驗總結(jié),以及最后的容器化還有持續(xù)集成等主題,所以這些主題總體來講更偏向于方法論和實戰(zhàn),還有一些案例。

最后一本書就是李智慧老師寫的《大型網(wǎng)站技術(shù)架構(gòu)核心原理與案例分析》,這本書應(yīng)該有好多年了,但是這本書講的原理還有概念都非常的核心,非常的重要,推薦大家也讀一下。

技術(shù)人如何修煉技術(shù)的內(nèi)功

如何綜合評估一個人的技術(shù)能力

如何去修煉技術(shù)的內(nèi)功?如果我們作為面試官,我們?nèi)ッ嬖囈粋€候選人,我們會從哪些方面全面評估這個人的技術(shù)能力?

我會根據(jù)三個層面來評估一個候選人,包括技術(shù)知識的廣度、技術(shù)知識的深度,還有技術(shù)知識的高度。

對于廣度指的是什么呢?指的是這個人做過什么事情?學(xué)習(xí)過多少的知識?用過多少語言?熟練使用多少工具等等,主要是他的知識面和經(jīng)驗。

什么是技術(shù)的深度呢?技術(shù)的深度就是期望每個人在某一方面一定是有造詣的,什么是造詣呢?

就比如說在 Java 上,你一定要了解 GC 的原理,你能夠通過調(diào)節(jié) GC 來提高它的性能,或者是你懂得我們 RDBMS 數(shù)據(jù)庫的索引原理等等。

并且能把這個原理應(yīng)用到你的生產(chǎn)實踐中,你一定要有幾個主題或幾個方面是非常深入了解和學(xué)習(xí)過的。

最后就是一個高度,高度這個是我這兩年才認(rèn)識到的,以前我只是拿廣度跟深度來看別人和自己,現(xiàn)在又增加了一個高度。

高度是什么呢?就是你學(xué)這個技術(shù)有什么目的?這個技術(shù)能達(dá)到什么樣的生產(chǎn)?這個技術(shù)是不是現(xiàn)在技術(shù)的一個前沿,還是說已經(jīng)淘汰好多年的一門技術(shù)?

所以說,我們一定要站在很高的高度來看這些東西,學(xué)了是不是有用的?將來是不是有用的?假如將來十年有用,那么將來二十年是不是有用的呢?

所以我們一定要修煉這個內(nèi)功,因為內(nèi)功是永遠(yuǎn)不變的,就算將來你可能過十年,二十年,這個內(nèi)功還是一樣的。

如何修煉技術(shù)的內(nèi)功

我們?nèi)绾稳バ逕掃@個內(nèi)功?有幾個方面需要我們掌握?

今天我給大家分享四個方面:

  • 高并發(fā)服務(wù)
  • 大數(shù)據(jù)
  • 操作系統(tǒng)
  • 算法與數(shù)據(jù)結(jié)構(gòu)

我們先看下面兩個主題,那就是操作系統(tǒng),算法和數(shù)據(jù)結(jié)構(gòu)。

先說操作系統(tǒng),我們現(xiàn)在看各種新技術(shù),還有我們用的各種技術(shù),都跟我們操作系統(tǒng)有關(guān),我們發(fā)現(xiàn)新技術(shù)、新原理的很多東西在這個操作系統(tǒng)的一些核心原理上是能找到縮影的。

舉一個非常小的例子,比如大家說的微服務(wù),是不是覺得微服務(wù)現(xiàn)在很火很新?但實際上在操作系統(tǒng)中是有微服務(wù)的。

第一,它的內(nèi)核是微內(nèi)核;第二,想一下命令和管道,在實現(xiàn)一個復(fù)雜的日志搜索,我們一個命令接一個管道,再接一個命令和一個管道,每個命令都在完成自己它想做的事,有清晰的輸入和輸出,然后和其他的命令去配合著使用。

上面這個例子完全就是一個微服務(wù)的思想,所以我說學(xué)技術(shù)得學(xué)它的內(nèi)功,內(nèi)功就是我們這些基礎(chǔ)一定要掌握的很扎實。

所以對于操作系統(tǒng)來講,我們一定要理解到它的 CPU,內(nèi)存,磁盤還有網(wǎng)卡的 IO 等等這些原理。

并且能夠根據(jù)這些資源去評估你服務(wù)的吞吐量和 TPS 響應(yīng)時間等等,這個評估指的是粗略評估,就是評估是沒有精確評估的。

然后我們看一下算法跟數(shù)據(jù)結(jié)構(gòu),對于我們應(yīng)用層的小伙伴們,我們很少在應(yīng)用層直接去使用到它,就算使用也非常的簡單。

但是算法和數(shù)據(jù)結(jié)構(gòu)象征著我們一個人的邏輯思維和思考能力,所以對這個東西也要掌握一些或者是要熟悉一些。

最后,要學(xué)習(xí)一個高級算法,比如說動態(tài)規(guī)劃,貪婪,還有剪枝,遞歸等等,那為什么要學(xué)高級算法呢?

假設(shè)大家每一位都是面試官,如果來了一個面試的小伙伴,小伙伴說我會動態(tài)規(guī)劃,隨便一個都可以寫出來。

那他要不就是勤奮的,要不就是非常聰明的,所以如果你會這個,一般都是會打動這個面試官的。

然后我們再看上邊的兩個主題,第一個是高并發(fā)服務(wù),第二個是大數(shù)據(jù)。

在互聯(lián)網(wǎng)公司里邊主要有兩個方向,一個就是高并發(fā)的服務(wù),一個就是大數(shù)據(jù),那高并發(fā)的服務(wù)的核心思想就是分而治之,就是我們單體系統(tǒng)架構(gòu)。

不是它的性能不能提高,是它在垂直擴(kuò)展過程中,它的性價比非常低,非常貴。

所以我們都用伸縮,采用分而治之的思想,但是分而治之以后產(chǎn)生的問題,就是一致性的問題,因為分開了,他們的協(xié)調(diào)一定會有問題。

大數(shù)據(jù)這些年特別火,但是大數(shù)據(jù)所有核心思想都來自于谷歌的三大論文,包括 Mapreduce,Gfs,Bigtable,所有的大數(shù)據(jù)根基都來自于這三個論文。

技術(shù)人如何修煉做事的內(nèi)功

目標(biāo)方法論

我要跟大家分享的主要是目標(biāo)方法論,主要包含幾個關(guān)鍵元素:目標(biāo)原則方法和結(jié)果。

目標(biāo)方法論來自于我們易寶支付的文化,但稍微有一點點變化,為什么說這個方法論非常重要呢?

因為我這兩年在面試和評審的時候,發(fā)現(xiàn)一些小伙伴在做一些事情,但是他們并不知道做這個事情能解決什么問題?

還有一些小伙伴,他知道是解決什么問題,但是這個問題根本就不需要解決,所以說做任何事情之前,一定要樹立一個正確的目標(biāo)。

如果這個目標(biāo)是抽象的,一定要把它分解成一些可衡量的目標(biāo),只有目標(biāo)正確了,我們后邊做的事情才是有意義的。

接下來就是原則,原則是什么呢?就是我為了實現(xiàn)這個目標(biāo)不能做的事情,這個是底線,就算是生活中我們也有很多的原則。

接下來就是方法,我們要實現(xiàn)一個目標(biāo),有各種各樣的方法,那么這些方法我們要去權(quán)衡他們的利弊、權(quán)衡他們的成本、權(quán)衡他們達(dá)成的效果。

我們一定要找到一個最合適的方法,而不是找到一個最高大上的方法。

我也見過很多技術(shù)方案,是拿很多高大上的技術(shù),最終解決了一個很低端的問題,這種事情性價比很低。

所以一定要選擇最適合的方法,例如做架構(gòu),要做最適合的架構(gòu),要回歸架構(gòu)的簡潔之美,不要所有的事情都拿一些高大上的技術(shù)招式來應(yīng)付這個結(jié)構(gòu)。

最后一個就是產(chǎn)出和結(jié)果,任何一個事情最后都會看它的產(chǎn)出和結(jié)果,這個產(chǎn)出和結(jié)果和目標(biāo)是相對應(yīng)的。

如果你這個產(chǎn)出結(jié)果跟目標(biāo)不是對應(yīng)的,那這個事情就是白做了或者是偏離了,也可能有一些副作用,作用有好有壞,但是沒有滿足我們的初衷。

做人四原則

這一塊可能跟我們技術(shù)內(nèi)功不太一致,但這是我和身邊的一些小伙伴們總結(jié)下來的生活和做事的經(jīng)驗,分享給大家,希望能夠起到一定的效果。

大家千萬不要覺得這四個原則內(nèi)容比較少,當(dāng)你詳細(xì)的去理解,可能等時間久了,慢慢就理解到了。下面我們一個個來看,為什么我說它非常重要?

第一個就是靠譜,有腦子。衡量一個人或者別人對你的印象,跑不出這兩個因素,就是靠譜,有腦子,什么是靠譜呢?

靠譜就是別人一想起你,就會覺得有一種信賴感,他覺得這個人行。那什么是有腦子呢?就是比較靈活,不做作,做事情總是有門路,這個就叫有腦子。

第二個就是膽大心細(xì),樂觀。我們做事情一定要膽大,敢于去嘗試,然后我們一定要樂觀,為什么要樂觀呢?

福禍?zhǔn)窍嗤ǖ模懈?赡芫陀械湥械溇陀懈?。有句古語,福兮禍所伏,禍兮福所倚,就是無論發(fā)生什么事情,大家一定要樂觀,可能一件壞事,等你過了一個月看仍然可能是一件壞事。

但是過了兩個月或者兩年或者十年你再來看,這個事有可能是好事,所以一定要樂觀。

第三個就是要么忍,要么狠,要么滾。這句話在什么時候適用呢?大家如果真的碰上一些坎坷了,尤其是在工作上碰到一些坎坷,不用糾結(jié),不用懊惱,也不用沮喪,這三條路中挑一個就可以了,往前走,因為糾結(jié)也沒用。

最后一個就是要善于交流。大家聽起來好像是侃侃而談的人就是善于交流,比較圓滑的人善于交流,但是實際上這個并不是善于交流,那什么是善于交流呢?

第一,你要善于思考,你要善于站在別人的角度來看待你自己,你也要善于站在別人的角度看他自己,這個才叫善于交流,這樣你跟別人才能有交流。

就拿現(xiàn)在一個心理學(xué)非常流行的話來說,叫同理心,說白了就是你要能站在別人的角度來看事。

但是我剛才說的比這個要求更高,就是你站在別人的角度,不但能看他自己,你還要能看你自己,所以這個才叫善于交流。

責(zé)任編輯:武曉燕 來源: “趣直播”技術(shù)人成長交流會
相關(guān)推薦

2017-09-13 10:51:25

技術(shù)人基礎(chǔ)知識互聯(lián)網(wǎng)技術(shù)

2017-09-20 14:42:44

2010-11-17 16:41:49

Bug軟件測試

2017-09-21 18:00:00

CTO修煉技術(shù)修煉

2022-02-22 08:48:49

AgentClient主機(jī)

2015-11-03 11:29:02

設(shè)計師心法口訣

2009-12-04 10:45:20

程序員職場

2022-09-06 21:38:45

數(shù)字人數(shù)字孿生

2015-12-03 14:09:28

創(chuàng)始人成功創(chuàng)業(yè)

2014-06-20 10:34:42

開源

2012-06-20 13:54:44

架構(gòu)性能優(yōu)化

2017-12-18 09:43:35

架構(gòu)師CTO秘籍

2018-07-05 11:05:10

2014-07-31 19:39:52

2021-12-16 21:13:38

通信網(wǎng)管平臺

2023-10-18 09:42:09

OpenAIGPU手機(jī)

2020-06-11 09:18:34

動靜分離架構(gòu)架構(gòu)設(shè)計開發(fā)

2012-05-14 13:51:20

軟企

2013-05-29 10:17:56

Hadoop分布式文件系統(tǒng)

2019-01-21 08:20:17

通信4G5G
點贊
收藏

51CTO技術(shù)棧公眾號