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

在阿里一年,我顛覆了曾堅(jiān)信不疑的技術(shù)思維

開發(fā) 前端 開發(fā)工具
2018.5.31~2019.5.31,一段精彩的旅程,渡過了在阿里一年的時(shí)光,這段時(shí)光有快樂、有焦慮、有迷茫、更有思考。

2018.5.31~2019.5.31,一段精彩的旅程,渡過了在阿里一年的時(shí)光,這段時(shí)光有快樂、有焦慮、有迷茫、更有思考。

[[270553]]

圖片來自 Pexels

思考的是自己過去的種種不足、思考的是一些現(xiàn)在看來之前錯誤的想法、思考的是如何成為一個(gè)更好的技術(shù)人,將這一些思考分享給看到這些文字的每個(gè)人,共勉。

應(yīng)當(dāng)如何面對線上的異常/故障?

看起來毫無意義的一個(gè)問題,碰到線上異常/故障如何面對,排查解決了不就好了,但是這真的只是***層。

最近在想“消防”這個(gè)詞語很有意思,它其實(shí)是兩層意思:

  • “消”是消除問題。
  • “防”是防止問題。

即“消防”這個(gè)詞語表達(dá)的意思應(yīng)該是先消除問題再防止相同的問題再次發(fā)生。

其實(shí)線上的異常/故障也是同樣的道理,我們應(yīng)當(dāng)先及時(shí)止血,把問題處理掉,然后深挖問題,探究根因。

舉幾個(gè)例子:

  • 假設(shè)是某段代碼的空指針異常導(dǎo)致的,那么是否考慮加強(qiáng) Code Review,或者使用 findbugs 插件去自動掃描代碼中可能的異常?
  • 假設(shè)是線上某個(gè)配置修改導(dǎo)致的,那么是否今后變更的修改必須有人雙重檢查一遍才可以修改?
  • 假設(shè)是本地內(nèi)存中某些值因?yàn)橄到y(tǒng)重啟丟失導(dǎo)致的,那么是否引入定時(shí)任務(wù),定時(shí)把值寫入本地內(nèi)存中?
  • 假設(shè)是某段代碼邏輯沒測試到導(dǎo)致的,那么是否可以反思總結(jié)為什么這段邏輯沒有測試到,未來的測試應(yīng)該如何改進(jìn)?

根據(jù)我過往的經(jīng)驗(yàn),太多公司、太多團(tuán)隊(duì)處理線上的問題僅僅滿足于把問題處理完就完事,忽略了對問題的復(fù)盤,這對團(tuán)隊(duì)/對公司的發(fā)展都是不利的。

什么是真正的技術(shù)能力?

之前加了幾個(gè)技術(shù)微信群,看到很多技術(shù)朋友在興高采烈地討論各種源碼,Spring 源碼我徹底擼了一遍、最近深入學(xué)習(xí)了 Dubbo 底層實(shí)現(xiàn)方式,當(dāng)然曾經(jīng)的我也是這樣的。

記得學(xué)習(xí) Volatile 的時(shí)候一直挖到了 Volatile 在硬件層面上的實(shí)現(xiàn)方式,但是這真的說明技術(shù)能力強(qiáng)嗎?

從今天的思考去看這個(gè)問題,我認(rèn)為這更多反映的是一個(gè)人的學(xué)習(xí)能力、鉆研能力以及對技術(shù)的熱情,除此之外再體現(xiàn)不出太多其他東西了。

這個(gè)話題,可能是這一年思考的最多個(gè)的一個(gè)點(diǎn),鉆研是好事,但是實(shí)際上大多時(shí)候的深入鉆研并不在實(shí)際工作中有用,且研究得越深,忘得越快。

因?yàn)檠芯康迷缴?,那么這個(gè)技術(shù)點(diǎn)關(guān)聯(lián)的技術(shù)點(diǎn)就越多,邊邊角角的忘了,核心的東西不容易串起來。

那么什么是真正的技術(shù)能力,我畫一張圖概括一下:

簡而言之,技術(shù)能力=解決問題的能力,那么同樣都在解決問題,大家之間的技術(shù)高低又有什么區(qū)分呢?

我認(rèn)為有以下幾個(gè)層次:

  • ***層級,解決當(dāng)下問題。
  • 第二層級,以優(yōu)雅且可復(fù)用的方式解決當(dāng)下問題。
  • 第三層級,解決的問題不僅僅能滿足當(dāng)下,還能滿足未來一段時(shí)間。

從這個(gè)角度上來看,不同的技術(shù)能力,在工作過程中區(qū)分度是很明顯的:

  • 寫的代碼是否存在異常風(fēng)險(xiǎn),多線程運(yùn)行下是否存在線程安全問題,某段代碼是否會導(dǎo)致內(nèi)存泄露。
  • 寫的代碼是否優(yōu)雅可復(fù)用,設(shè)計(jì)的框架是否足夠符合開閉原則,代碼結(jié)構(gòu)層次是否清晰明了。
  • 針對特定的場景,技術(shù)選型、庫表結(jié)構(gòu)設(shè)計(jì)是否足夠合理,今天你設(shè)計(jì)的框架是只能用一年,還是未來三年五年都可以持續(xù)使用。
  • 來了一個(gè)大的需求,就比如做一個(gè) App 的會員體系功能好了,是否可以在充分分析需求后,精確將需求劃分為幾個(gè)特定的子模塊并梳理清楚模塊之間的關(guān)系。

越厲害的人,在代碼設(shè)計(jì)與開發(fā)過程中,越能看到想到一些別人看不到想不到的問題,這叫做高屋建瓴。

當(dāng)代碼運(yùn)行出現(xiàn)問題的時(shí)候,有人 1 小時(shí)排查出問題,有人 1 分鐘發(fā)現(xiàn)問題,這叫做舉重若輕。

因此我認(rèn)為解決問題的能力才是技術(shù)能力的真正體現(xiàn),這一年對技術(shù)的探究我也從研究源碼更多的轉(zhuǎn)變?nèi)W(xué)習(xí)設(shè)計(jì)模式、去學(xué)習(xí)分布式環(huán)境下各種 NoSQL 的選型對比、去學(xué)習(xí)使用 Lambda 讓代碼更簡潔,往真正在實(shí)際工作中解決問題的方向去努力。

另外,拋開這個(gè)點(diǎn),這兩天我在思考,還有一個(gè)體現(xiàn)技術(shù)能力的點(diǎn),就是學(xué)習(xí)能力。

現(xiàn)實(shí)中的全棧是很少的,互聯(lián)網(wǎng)這個(gè)行業(yè)的程序員的方向通常有幾類:

  • 服務(wù)端
  • 前端
  • 移動端
  • AI
  • 嵌入式
  • 大數(shù)據(jù)

在同一類中,基礎(chǔ)知識、基本概念、思維方向是一致的,更多可能差異在開發(fā)工具、語言上。

我精通 Java,但是如果明天有一個(gè)需求,使用 NodeJS、Scala、Go 更好,那么是否可以快速學(xué)習(xí)、快速上手?甚至明天有一個(gè)需求需要寫前端代碼,是否可以快速開發(fā)、無 Bug 上線?

所以,解決問題的能力+學(xué)習(xí)能力,是我認(rèn)為真正的技術(shù)能力,不過說到底,學(xué)習(xí)能力某種程度上也只是為了解決問題而已。

不要造輪子

曾幾何時(shí),當(dāng)我們看著 Github 上這么多優(yōu)秀的源代碼的時(shí)候,默默立誓,這輩子我一定要寫出一個(gè)牛逼的框架,開源在網(wǎng)上。

對于一些復(fù)雜條件的報(bào)警,比如我們上邊提到的失敗率和流量波動,應(yīng)該如何實(shí)現(xiàn)呢?

很多對技術(shù)有追求的朋友,進(jìn)入一家公司可能時(shí)時(shí)刻刻在尋找機(jī)會去做一些自己造輪子的事情。

但是就如同前面所說的,衡量真正好技術(shù)的標(biāo)準(zhǔn)就是能否實(shí)實(shí)在在地解決問題,自己造輪子風(fēng)險(xiǎn)高、周期長,且需要長時(shí)間的驗(yàn)證、排坑才能達(dá)到比較好的效果。

隨便舉幾個(gè)例子,在互聯(lián)網(wǎng)發(fā)展的今天:

  • 數(shù)據(jù)庫連接池有:DBCP、C3P0、Druid。
  • 本地緩存有:Ehcache、要用中心緩存有 Redis、Tail。
  • 服務(wù)化有:Dubbo、跨語言可以用 Thrift。
  • 分布式任務(wù)調(diào)度:可以考慮 SchedulerX。
  • 搜索可以選:ES、Solr。
  • 更高級一點(diǎn)圖片存儲:可以用七牛、IM 可以用融云/環(huán)信、音視頻這塊聲網(wǎng)做得比較成熟,所有這些都提供了各個(gè)開發(fā)版本的 SDK,接入簡單。

只要你有的技術(shù)方面的需求,絕大多數(shù)業(yè)界已經(jīng)有了成熟的解決方案了,根本不需要去專門自己搞一套。

因此我認(rèn)為輕易一定不要造輪子,如果一定要造輪子,那么請想清楚下面幾個(gè)問題:

  • 你要做的事情是否當(dāng)前已經(jīng)有了類似解決方案?
  • 如果有,那么你自己做的這一套東西和類似解決方案的差異點(diǎn)在哪里?假設(shè)不用你這套,基于已有的解決方案稍加改造是否就能達(dá)到目的?
  • 如果沒有,那么為什么之前沒有?是你們公司這種場景是***的?還是這種場景對應(yīng)的解決方案根本就是不可行的所以之前沒人去搞?

如果想清楚了這些問題,那么就去干吧。

去提升看問題的高度

過去有太多人在我的公眾號或者博客下反饋了一個(gè)問題:在這個(gè)公司,整天做著增刪改查的工作,對自己一點(diǎn)都沒有提高。

對于這種看法,說難聽點(diǎn)就是四個(gè)字——目光短淺。我們看:也可以通過字典方式傳參,MGJRouter 提供了帶有字典參數(shù)的方法,這樣就可以傳遞非字符串之外的其他類型參數(shù),例如對象類型參數(shù)。

如果以普通的視角去看,那么一顆樹那也就只是一棵樹而已,但是如果跳脫出目前的視角,站在更高的角度去看,它其實(shí)是森林的一部分。

你的主管并不是因?yàn)樗悄愕闹鞴芩运蛻?yīng)該比你更高瞻遠(yuǎn)矚,而是因?yàn)樗磫栴}的高度比你更高、想得更遠(yuǎn)、做得更深,所以才成為了你的主管。

把這個(gè)問題說得實(shí)際點(diǎn):

  • 假設(shè)今天你負(fù)責(zé)的是一個(gè)系統(tǒng),那么你僅僅是把這個(gè)系統(tǒng)的基本原理搞懂了?還是可以把上下游有幾個(gè)系統(tǒng)、每個(gè)系統(tǒng)之間如何調(diào)用、依賴方式都理順?
  • 假設(shè)今天你負(fù)責(zé)的是一塊業(yè)務(wù),那么你僅僅把自己負(fù)責(zé)的功能點(diǎn)弄清楚了?還是你可以從最上游開始,到你負(fù)責(zé)的系統(tǒng),再到最下游,都思考得非常透徹?

今天與其在抱怨沒有機(jī)會、抱怨公司對自己能力沒有提升,為什么不去思考機(jī)會為什么降臨在別人頭上不降臨在你頭上?

為什么別人可以從小公司寫著一樣的增刪改查走向 BAT,而你年復(fù)一年還在小公司寫著增刪改查?

當(dāng)你真正能轉(zhuǎn)變自己的思維模式,跳脫出現(xiàn)在的圈子往更高一個(gè)層次去看問題、去提升自己,我相信總會有發(fā)光發(fā)熱的一天的。

同樣在阿里巴巴,馬老師思考自然、思考環(huán)保、思考人類的發(fā)展,你的主管思考團(tuán)隊(duì)未來的方向和打法。

我們在思考如何把某個(gè)客戶需求完整落地,這就是高度,你未必能想到馬老師想的,但是你對標(biāo)層級高一點(diǎn)的人,一步一步嘗試往他們的高度去靠。

總而言之:眼界決定高度,多看、多想、多保持好奇心、多問幾個(gè)為什么,久而久之自然就邁上了一個(gè)新的臺階。

學(xué)會總結(jié)

需求、項(xiàng)目的復(fù)盤是非常重要的一部分內(nèi)容,然而我之前見過的太多團(tuán)隊(duì)、太多 Leader,只顧著一個(gè)迭代接著一個(gè)迭代,一個(gè)版本接著一個(gè)版本,只滿足于把需求做好,而忽略了總結(jié)的重要性。

我認(rèn)為大到項(xiàng)目、小到需求,如果在完成之后缺乏總結(jié),那么某種程度上來說是失敗的,可以總結(jié)的點(diǎn)非常多:

  • 通過這個(gè)項(xiàng)目/需求,是否吃透了某一塊業(yè)務(wù),搞懂了來龍去脈。
  • 通過這個(gè)項(xiàng)目/需求,是否充分理解了公司某個(gè)技術(shù)框架/基礎(chǔ)組件的用法。
  • 在整個(gè)項(xiàng)目的設(shè)計(jì)上,有哪些做的不好的地方。
  • 在整個(gè)項(xiàng)目的開發(fā)(針對程序員而言),是否踩了坑,犯了低級的錯誤。
  • 在整個(gè)項(xiàng)目的進(jìn)度把控上、人員安排上、上下游協(xié)調(diào)上,是否存在不足之處。
  • 經(jīng)歷了某次大促的值班,是否對可以熟練使用公司的監(jiān)控工具,遇到突發(fā)事件,是否快速有效地進(jìn)行了解決。

任何工作一定對個(gè)人都是有提升的,但是不會總結(jié)的人,在每個(gè)項(xiàng)目/需求中成長的東西都是散的,久而久之就忘了。

通過充分的總結(jié)之后,犯過的錯誤我們不會二次再犯,理清楚的業(yè)務(wù)的來龍去脈銘記在心,對自己是一種提升,分享給別人對別人也是很大的幫助。

失敗者失敗的原因各有不同,成功者的做事方式總是相似的,從宏觀角度去看,我認(rèn)為總結(jié)就是成功者之所以能成功,很重要一個(gè)原因。

作者:五月的倉頡

簡介:目前就職于阿里巴巴-菜鳥網(wǎng)絡(luò)-國際物流技術(shù)部,從事后臺開發(fā)。

責(zé)任編輯:武曉燕 來源: 五月的倉頡
相關(guān)推薦

2019-07-09 16:00:18

阿里數(shù)據(jù)庫技術(shù)思維

2015-11-03 11:13:01

技術(shù)轉(zhuǎn)型心得

2021-05-10 07:30:33

Google技術(shù)谷歌

2018-10-24 09:59:12

2020-07-27 09:09:53

技術(shù)阿里套路

2016-05-24 10:40:32

NodeJS總結(jié)

2019-04-18 08:41:09

技術(shù)主管阿里

2010-01-05 10:59:24

2009-07-03 10:15:38

2017-10-30 12:00:05

2019-04-22 08:39:13

Leader開發(fā)規(guī)范開發(fā)流程

2019-04-19 12:46:18

面試丁校招簡歷

2019-02-18 08:24:09

技術(shù)應(yīng)用架構(gòu)

2020-07-06 08:40:36

阿里餓了么思考

2019-12-20 10:33:38

云計(jì)算IT技術(shù)物聯(lián)網(wǎng)

2013-05-30 01:16:36

工作總結(jié)自由職業(yè)工作經(jīng)驗(yàn)

2012-08-28 09:22:35

測試軟件測試外包

2019-08-19 09:01:54

項(xiàng)目管理

2021-01-14 11:39:05

云計(jì)算

2020-04-03 09:45:09

Java多線程接口
點(diǎn)贊
收藏

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