偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

這才是厲害程序員的標(biāo)配!

新聞
好幾個讀者問:如何成為厲害的程序員?編碼能力如何成長。回答完后,有些心得也給大家分享下。

 好幾個讀者問:如何成為厲害的程序員?編碼能力如何成長?;卮鹜旰?,有些心得也給大家分享下。

[[384046]]

其實程序員最關(guān)鍵的技能遠(yuǎn)不止編碼能力,架構(gòu)思維、底層知識的深度等等,同樣很重要。

在這些能力中,最容易被人忽視卻很重要的能力是:debug能力。甚至我認(rèn)為:debug能力遠(yuǎn)比編碼能力更重要。很簡答,大家可以觀察下自己的團(tuán)隊,最優(yōu)秀的程序員一定會承擔(dān)很多疑難癥的排查和解決。

曾經(jīng)在360帶幾十人技術(shù)團(tuán)隊,同時研發(fā)幾條業(yè)務(wù)線。參與過的產(chǎn)品,日活過千萬的有一款,過百萬的有三款。

這個過程中各種稀奇古怪的bug見過不少,也一一解決了(不然估計就要滾蛋)。

分享下我的debug經(jīng)驗,希望對大家有用:

1.日志Log盡可能詳盡

編程領(lǐng)域流傳著一句話:必現(xiàn)的bug,都不是bug。

因為好復(fù)現(xiàn),就容易解決,代碼一直跟下去,或者看看堆棧信息,很快能定位問題。

真正困難的是偶現(xiàn)bug,甚至那種概率千分之幾,但后果嚴(yán)重的bug。解決他們就需要詳細(xì)的日志Log,尤其是關(guān)鍵點上的信息,非常重要。

2.google要用好

程序員+google=好的程序員,這句話真的沒錯,很多技術(shù)bug,當(dāng)你毫無頭緒之際不妨google下,可能不少人遇見過。

當(dāng)然,最關(guān)鍵的是搜索的關(guān)鍵字,這取決于你對bug現(xiàn)象的描述,越言簡意賅搜索到的信息反而越多。

3.排除法

這個方法說實話不提倡,但很多時候?qū)嵲谑譄o策之際不妨用用,用法也很簡單,當(dāng)你不確定哪一塊新增代碼引入問題,就嘗試注釋一部分代碼看看程序是否OK。

不行再換另一部分代碼注釋掉,很快你就可以縮小bug的查找范圍,進(jìn)而定位問題。

4.模擬用戶環(huán)境

可以采用一些工具來模擬前端或者后端,制造假數(shù)據(jù)、假操作。有了這些工具之后,把你懷疑可能出問題的情況模擬一遍,觀察是否會出問題。

其次,遇見一些極端情況,比如懷疑是多線程/多進(jìn)程死鎖,那不妨在某個進(jìn)程/線程寫個死循環(huán)看看bug是不是就出現(xiàn)了,當(dāng)然做這種操作千萬千萬別給忘記了,提交了,那就完犢子了。

5.記錄曾經(jīng)解決過的bug,并簡歷索引

其實很多bug會變著花樣反復(fù)出現(xiàn),俗話說好記性不如爛筆頭,把解決過的問題記錄下來,并且做好索引,下次遇見可能相同的問題,先檢索一遍,搞不好就找到答案了。

6.多看官方文檔

特別是引用了第三方代碼或者是開源代碼導(dǎo)致的問題,官方文檔對應(yīng)的部分反復(fù)看看,可能問題就解決了。

7.引入工具,放大問題

比如很多線程注入的工具,你開啟后,但凡是一點點依賴線程順序的bug都會從偶現(xiàn)變?yōu)楸噩F(xiàn)。

這個相當(dāng)于主動把代碼運行環(huán)境變成地獄模式,比如你的一個線程的結(jié)果依賴于另一個線程的輸出,但你忘記加同步代碼了,不過大部分情況另一個線程運行都飛快,但有些機(jī)器就不好使了。

這個時候加入這種工具,它直接讓某些情況下另一個線程運行速度變慢(我猜大概率是加了個sleep(1000)),結(jié)果你的程序就崩潰了,崩潰堆棧直接打開,迅速定位,問題解決!

8. 制作工具,針對某些bug編寫一些調(diào)試輔助工具。

比如,某些系統(tǒng)沒有完善的崩潰報告,雖然也有dump,但是分析出來的callstack經(jīng)常不準(zhǔn)。完全可以為解決崩潰問題編寫了個工具,自動掃描代碼,在每個函數(shù)入口和出口插入log,以此來定位崩潰點。

以上8點,都是在實戰(zhàn)血淋淋的過程中總結(jié)出來的,希望對大家有幫助。

責(zé)任編輯:華軒 來源: findyi
相關(guān)推薦

2022-10-25 10:40:15

1024

2022-02-17 07:31:44

Linux程序員RPM

2018-09-07 23:10:15

程序員技能溝通

2019-07-01 11:16:08

Google程序員編程

2018-01-19 11:08:59

2018-02-05 15:09:03

2019-08-21 13:40:50

2022-01-26 00:05:00

AOPRPC遠(yuǎn)程調(diào)用

2021-12-15 07:24:56

SocketTCPUDP

2013-08-20 09:33:59

程序員

2022-07-08 14:22:46

程序員思維習(xí)慣

2018-07-03 14:12:21

Java 9Java10Java11

2015-07-02 10:33:00

Java程序員免費IDE編輯器

2012-10-09 10:23:07

Linus Torva程序員優(yōu)秀程序員

2020-05-28 10:45:31

Git分支合并

2016-12-16 19:06:02

擴(kuò)展數(shù)據(jù)庫架構(gòu)

2012-05-17 11:04:18

匈牙利命名法

2018-12-29 15:30:12

2013-11-28 14:34:30

微軟WP

2020-12-08 10:23:42

程序員PPT開發(fā)
點贊
收藏

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