作為工程師, 對問題的描述務(wù)必清晰, 準(zhǔn)確, 完整, 盡量避免"連不上", "報錯了", "跑不起來", "掛了"等模糊且無意義的表述. 這是作為工程師一個基本的素質(zhì). 對問題的描述應(yīng)該提供盡量多的信息, 例如:
- 服務(wù)跑不起來, 報了個 xxx 錯
- xx 服務(wù)連不上了, 報了個 xxx 錯
- 我在進(jìn)行 xx 操作的時候報錯了, 錯誤碼是 xxx, 報錯信息是 xxx
如果是遠(yuǎn)程(微信,QQ,郵件)協(xié)作團(tuán)隊, 在描述問題的時候, 還應(yīng)該主動附上完整的報錯日志, 請求\響應(yīng)報文, 相關(guān)軟件版本等必要的信息. 還有, 作為工程師你應(yīng)該知道在哪兒能看到報錯信息, 很多工程師甚至不知道瀏覽器有"開發(fā)者工具", 不知道大多數(shù)軟件都有日志文件. 很多工程師還會習(xí)慣性的忽略英文報錯, 我知道, 大家英文都不好, 有時候確實看不懂, 但是起碼你不能當(dāng)那些報錯不存在.
有篇經(jīng)典的文章, 我不得不再次引用: 提問的智慧. 很多時候, 把話說清楚能讓你省很多麻煩, 省很多工作量. 下面我們舉個例子, 比如: xx 服務(wù)連不上
- 錯誤表述: xx 服務(wù)連不上了!為啥?
- 正確表述: xx 服務(wù)連不上了, 報超時(time out), 或報主機(jī)(網(wǎng)絡(luò))不可達(dá), 最好附上報錯截圖.
服務(wù)連不上的情況有很多種情況:
-
超時(time out)
確認(rèn)目標(biāo)服務(wù)是否正常, 如果是 web 服務(wù), 可以使用瀏覽器, 或者 curl 命令, 或者 postman 等工具發(fā)送 http 請求; 如果是數(shù)據(jù)庫, 可以使用相應(yīng)的連接工具測試.
-
網(wǎng)絡(luò)不可達(dá)
通常是網(wǎng)絡(luò)路由異常, 應(yīng)該檢查電腦與目標(biāo)機(jī)器是否處在同一網(wǎng)絡(luò)環(huán)境中, 檢查自己使用的是 wifi 還是有線網(wǎng)絡(luò), 理論上是否能連接到目標(biāo)機(jī)器. 可以通過 ping 檢查.
-
主機(jī)不可達(dá)
網(wǎng)絡(luò)正常, 但無法連接到目標(biāo)主機(jī), 極有可能是配置錯誤. 可以通過 ping 檢查. 同時跟服務(wù)提供方確認(rèn)服務(wù)地址.
通過檢測, 如果服務(wù)可用, 則檢查代碼中的配置. 如果服務(wù)不可用, 則聯(lián)系服務(wù)的負(fù)責(zé)人尋求支持, 同時最好附上報錯的截圖.
不管你遇到什么問題, 如果你想解決, 就要提供線索, 否則很可能會收到以下回復(fù):
RTFM
RTFM 是 Read The Fucking Manual 的縮寫,譯為中文大概可以是“去讀那操蛋的手冊”。一句話糙理不糙的話,直如當(dāng)頭棒喝,稍有覺悟的人聽了這句話以后就能夠脫胎換骨,成就一生。這句話的出處大概是在:http://www.readthefuckingmanual.com/ , 一個在首頁論述你應(yīng)當(dāng)去讀手冊的網(wǎng)站。摘抄一段:If you follow this advice, probability is that up to 8 times out of 10, you can solve your own problem right there and then, without any hassle and frustration, and without having to call the manufacturer.
GIYF
讀手冊是治根治本的方法,但不那么容易見效,而且許多知識沒有人整理成手冊。所以很多時候遇到急事,就不那么容易通過 RTFM 來解決了,這時我們要記得 GIYF。GIYF 就是 Google Is Your Friend,當(dāng)遇到少見的代碼編譯錯誤號,連接數(shù)據(jù)庫拋出異常,遇到一個沒見過的英文縮寫,或者在 A 機(jī)運行正常的代碼在 B 機(jī)總是跑不起來,就是到了去探訪 Google 這個朋友的時候了!
STFW 和 JFGI
這兩個詞,大概可以看作 GIYF 的升級版,語氣更加嚴(yán)厲一些。它們的全拼分別是 Search The Fucking Web 和 Just Fucking Google It。Just Fucking Google It 也有一個專門的網(wǎng)站── http://justfuckinggoogleit.com/,里面的一句話道破天機(jī):Someone thinks you are an idiot because you were too stupid to check Google before asking a question。無論你信與不信,去 Google 搜索能夠解決你遇到的 80% 以上的問題,《Google 搜索引擎入門到精通》是程序員的必讀書目。
其實這幾個縮寫的核心思想都是一致的:就是自己的問題自己想辦法解決。不要把論壇、maillist、同學(xué)同事、親戚朋友或客服電話看作解決問題的第一選擇。要有 the buck stops here (什么意思?JFGI?。┑呢?zé)任心和勇氣,擺脫對其他人的依賴,才能真正提高自己。
當(dāng)然, 工程師通常也不是單打獨斗, 通常是有團(tuán)隊的, 團(tuán)隊內(nèi)部是有分工的, 也不能一個人什么都干, 要搞清楚自己的邊界. 對于開發(fā)工程師而言, 與軟件開發(fā)不直接相關(guān)的問題, 大可以拋給同事. 但是前面說了那么多, 你大概知道自己應(yīng)該如何跟同事描述問題了吧, 千萬別只說"xxx 不能用了"就了事.