說說數據庫工程師必備的一個技能

說說數據庫工程師必備的一個技能

圖 | 榖依米

作為一名程序員,尤其是數據庫程序員,你會對你的代碼負責嗎?你是怎麼做的。

我經常看到很多年輕的數據庫編程人員,似乎唯一的目的就是讓代碼跑起來,能夠成功地搬運數據,從一個地方到另一個地方,就滿足了。偶爾有遇到程序跑的慢的時候,他們會停下來,思考下,如何讓程序跑的更快。除此之外,只要程序跑下來不出錯,也就丟在那裡,不管不問。

當然這樣也沒錯,沒有人逼著你非要去整一套完美的方案。在職場上,幾乎沒人願意去說你的不對,指出你做錯的地方,因為錯誤的地方,終究是要有人負責的,那麼誰負責呢,誰是工作中失誤最大的受害人呢?我想我不說,你也知道。

在我的整個職業生涯中,似乎遇到都是客客氣氣,很nice的同事,上級。你做錯了,也不會有人來指出你的錯誤。但恰恰是這樣順風順水的環境,讓我做出了很多自以為是的錯誤,也付出了很多的代價。如今看來,還是缺少那種善於向我拋出反對意見的朋友。

當然也有可能是我自己臉皮太厚,別人善意的一個小批評我沒留意聽。這隻能是我的損失。所以有讀者要留言說我兩句,請儘量留言。這是我少數認真吸取別人意見的地方

有人害怕別人向自己指出自己的錯誤,不夠坦然,甚至勃然大怒,連朋友都沒得做。有人不願啟齒,指出你的錯誤,也怕你不能承受,怕被你當成仇人。所以犯錯和捕獲,並不像程序那般簡單,認錯與批評總是矛盾的對立面。

如果一個人能夠願意接受別人的批評,對自己還是大有裨益的。

回到上面那個例子中來,我們跑數據的,是不是隻要讓數據跑完就結束了呢?這種做法我大概率是不同意的。如果你工作不滿5年,我覺得還可以原諒,但如果你已經工作了7,8年,還是這種態度對自己的程序,那我多半也是不會給你太重要的任務。我想你的領導或者老闆也是。

我舉個例子,好比你有一項任務,就是跑數據,將2億數據從生產庫導入到報表庫

老闆什麼都沒說,就丟給你這個活兒,你準備怎麼做?這也是我經常問面試者的一個話題,你從面經上,基本找不到這樣的題目吧。

這裡提下我作為面試官,經常提的一些問題:

我在面試數據庫工程師候選人時,常問的一些題

但這類題目卻和實際項目息息相關。你的技能經驗,你的細心,你做事的態度,還有對程序的一種好奇心,都能體現在這一個題目中,更重要的是你給上級領導、主管的一種信任基礎。

那麼,回答這類題,大概有幾個方向,做到了,我認為就合格了,比如:

  • 是否流程可控,隨時可停,可啟(動)
  • 是否影響正常業務的流轉,運行
  • 是否能隨時調整批次的數量大小(直接說 update/insert 的朋友,好好補課)
  • 能否有跑批的存量、效能監控圖
  • 能否有效驗證最終結果的一致性,完整性
  • 能否隨時跟上級主管彙報工作進展,包括進展,異常以及完成時間預估

做到這幾點,無非就是做個監控,加個日誌表,但這些卻都體現你做事的完整性,屬於職場加分。但現實中,很少有朋友原意這樣做,大都一個存儲過程解決所有問題,看不到完整性,上級問起來進展,也就是還在進行,數據量大,需要花些時間。

哪怕自己用excel搭兩個報表,自己看著是不是有種盡在掌握的感覺?

說說數據庫工程師必備的一個技能


說說數據庫工程師必備的一個技能


--完--


分享到:


相關文章: