五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

寫代碼時(shí)遇到問(wèn)題該怎么辦?

2023-08-14 02:18 作者:石皮幼鳥  | 我要投稿

平常還是有不少朋友寫代碼遇到問(wèn)題了過(guò)來(lái)找我尋求幫助,我本身手上就有好幾個(gè)項(xiàng)目,這下更是弄得主播我有點(diǎn)忙上加忙。

這里并不是說(shuō)不歡迎大家過(guò)來(lái)問(wèn),但畢竟你手上的代碼不是我本人寫的,倘若我親自來(lái)給你找問(wèn)題,就得從頭讀一遍你的代碼,極端復(fù)雜的情況下我怕是得花上一兩個(gè)小時(shí)把你寫的項(xiàng)目都給摸干凈了。有一次,主播我?guī)鸵晃煌瑢W(xué)解決代碼bug,他用jsp寫的工程實(shí)踐項(xiàng)目,前后端不分離,代碼里邊一點(diǎn)注釋都沒有,硬生生讓我花了八個(gè)小時(shí)才解決了他的問(wèn)題,雙方的時(shí)間都被浪費(fèi)掉了,得不償失。

有些時(shí)候,你拿一些我不會(huì)或者不熟的東西過(guò)來(lái)硬讓我看,比如我萬(wàn)年沒碰的Python啥的,或者讓我現(xiàn)場(chǎng)硬給你寫的c++ qt項(xiàng)目看點(diǎn)毛病出來(lái),確實(shí)有點(diǎn)為難我。主播還是比較友好,大多情況下盡可能給你現(xiàn)場(chǎng)讀代碼憋點(diǎn)東西出來(lái),最怕的就是主播自己花上幾個(gè)小時(shí)也沒解決掉你的問(wèn)題,那就很恐怖了。

所以呢,既然代碼是你自己寫的,你應(yīng)該對(duì)項(xiàng)目最熟悉,問(wèn)題更多時(shí)候應(yīng)該由你自己解決才對(duì)。主播沒時(shí)間做視頻教代碼萌新們?nèi)绾紊鲜植殄e(cuò),就只好用寫文章的方式分享點(diǎn)個(gè)人經(jīng)驗(yàn)了。

第一步 閱讀錯(cuò)誤信息

一般情況下,咱們遇到的問(wèn)題都是程序跑不起來(lái),控制臺(tái)各種報(bào)錯(cuò)。然而,這些報(bào)錯(cuò)信息大多情況下都是英文,很多朋友面對(duì)這一大串英文,那是一個(gè)字都看不進(jìn)去,假裝閱讀一遍自我感動(dòng)一番,終究是無(wú)從下手,光速把自己的項(xiàng)目打包,最后打開QQ微信把壓縮包發(fā)給班上的大佬同學(xué)看兩眼。

但是,即便你的英語(yǔ)能力實(shí)在是差到?jīng)]邊了,就必須得跟寫代碼說(shuō)再見么?這就大錯(cuò)特錯(cuò)了。

咱們先來(lái)看看這張報(bào)錯(cuò)截圖:

一大坨英文糊你臉上,確實(shí)很有沖擊力。但是倘若此時(shí)我們仔細(xì)觀察,正如圖中我勾畫的那樣,就會(huì)看到幾個(gè)我們比較熟悉的單詞。

這就是今天我要教的第一個(gè)技巧——關(guān)鍵詞提取法。我們可以只尋找我們認(rèn)識(shí)的詞組,特別是那些和我們所需要掌握的技術(shù)棧有關(guān)的常見詞語(yǔ)。像這里我們就可以大體猜出,也許是MySQL的數(shù)據(jù)庫(kù)連接出問(wèn)題了。

這里又涉及到第二個(gè)技巧,迅速定位問(wèn)題發(fā)生點(diǎn)。我們先在大腦中快速思考,項(xiàng)目的開發(fā)過(guò)程中究竟在哪些地方涉及到了MySQL。稍加思索,看來(lái)我們需要去看看配置文件當(dāng)中的數(shù)據(jù)庫(kù)相關(guān)信息是否正確,是不是用戶名和密碼輸錯(cuò)了,還是說(shuō)數(shù)據(jù)庫(kù)路徑寫錯(cuò)了。

仔細(xì)一看,原來(lái)是端口號(hào)里少打了個(gè)數(shù)字,3306變成了306,這下豁然開朗了。

實(shí)際上我們?nèi)粘i_發(fā)遇到的問(wèn)題會(huì)比上面這個(gè)要復(fù)雜許多,因此定位問(wèn)題發(fā)生點(diǎn)也會(huì)變得相對(duì)復(fù)雜。這個(gè)時(shí)候就需要我們腳踏實(shí)地學(xué)習(xí)基礎(chǔ)知識(shí),積累開發(fā)經(jīng)驗(yàn),寫代碼多加注釋,多犯錯(cuò)多查錯(cuò),這樣才能便于我們快速定位問(wèn)題發(fā)生點(diǎn)。

?

第二步 搜索解決方案

有些時(shí)候難免會(huì)遇到報(bào)錯(cuò)信息真的一點(diǎn)都看不懂的情況,還有些時(shí)候其實(shí)報(bào)錯(cuò)信息里邊講的確實(shí)比較籠統(tǒng)。比如你前端用戶token過(guò)期了,過(guò)不掉后端權(quán)限驗(yàn)證機(jī)制,控制臺(tái)會(huì)直接朝你丟一句NETWORK ERROR 401之類的錯(cuò)誤信息讓你不知所措。這個(gè)時(shí)候就要嘗試把錯(cuò)誤信息往搜索欄里邊丟了,絕大部分的問(wèn)題其他人都遇到過(guò),前輩們?cè)缇蜑槟沅伜寐妨?,你大可放心走?/p>

這里就不多做詳細(xì)闡述了,如果你連怎樣利用搜索引擎都不會(huì),我相信這篇文章不是很適合你。更不要說(shuō)什么網(wǎng)上大神提供的教程你一點(diǎn)都看不懂,你當(dāng)前遇到的問(wèn)題肯定是和你的開發(fā)水平相符合的,你只是想找個(gè)機(jī)會(huì)擺爛而已。

這邊再推薦一個(gè)AI問(wèn)答工具,由GitHub提供的Copilot Chat。如果你是大學(xué)生,這款工具是可以免費(fèi)申請(qǐng)使用的。目前它只能在vscode 測(cè)試版里面使用,網(wǎng)上申請(qǐng)這個(gè)工具的教程比較多,這里也不細(xì)講了。

貌似它還是GPT-3.5模型,有點(diǎn)傻傻的,不過(guò)想要解決平時(shí)的開發(fā)問(wèn)題是足夠的。不過(guò)遇到問(wèn)題不要第一時(shí)間去問(wèn)他,盡可能自己解決,不然你的能力根本不可能得到提升。我周圍已經(jīng)有一部分人太過(guò)于依賴這東西,把這玩意丟掉怕是連個(gè)Java的HelloWorld都寫不出來(lái)。

?

第三步 善用查錯(cuò)工具

既然要遠(yuǎn)離AI,自己動(dòng)手找錯(cuò),那就得多多利用查錯(cuò)工具。

相信很多同學(xué)在剛剛接觸編程語(yǔ)言的時(shí)候,老師就教過(guò)各位,要善用斷點(diǎn)測(cè)試工具。

對(duì)某一行代碼添加斷點(diǎn),可以在程序運(yùn)行到這一步的時(shí)候停住,此時(shí)我們可以一行一行代碼分步執(zhí)行,或是進(jìn)入更底層的代碼分步執(zhí)行,一探究竟。

Jetbrains系列開發(fā)集成工具使用斷點(diǎn)測(cè)試需要點(diǎn)擊右上角的小蟲,而不是類似于播放圖標(biāo)的運(yùn)行按鈕

但要注意,如果你已經(jīng)開始編寫多線程的程序,這套查錯(cuò)方法就不是很管用了。

這個(gè)時(shí)候,老師又會(huì)教我們,要善用控制臺(tái)輸出語(yǔ)句。

控制臺(tái)輸出語(yǔ)句一般用兩種用處,一是檢查程序能不能執(zhí)行輸出語(yǔ)句之前的所有代碼,二是通過(guò)輸出語(yǔ)句看看某個(gè)變量的值是什么,為什么不能達(dá)成我們的目標(biāo)。

這種方法很低級(jí),卻很有效。

當(dāng)然,如果你寫的是Java,有些時(shí)候你會(huì)發(fā)現(xiàn),自己在測(cè)試代碼時(shí)println不起作用了。

這是因?yàn)樵趕pringboot這種復(fù)雜系統(tǒng)下,println輸出的位置是不定的。我們可以使用springboot封裝好的日志Logger對(duì)象進(jìn)行輸出:

private static final Logger LOG = LoggerFactory.getLogger(當(dāng)前的Java類名.class);

這里就不細(xì)說(shuō)了,網(wǎng)上一堆教程。

?

第四步 請(qǐng)教他人

你可能會(huì)覺得我的行為很好笑。我一邊說(shuō)著希望你們不要來(lái)找我問(wèn)問(wèn)題,一邊在告訴你們,請(qǐng)教他人也是想要解決問(wèn)題時(shí)的一種不錯(cuò)的方法。

不過(guò)相信很多人應(yīng)該看得出來(lái),我在這里其實(shí)是想表達(dá)另一種觀點(diǎn)——請(qǐng)?jiān)谧约簢L試解決問(wèn)題且無(wú)路可走之后再來(lái)尋求他人的幫助,并且你要學(xué)會(huì)問(wèn)問(wèn)題。

什么叫學(xué)會(huì)問(wèn)問(wèn)題?直接打包項(xiàng)目文件發(fā)給別人看,直接把git庫(kù)鏈接發(fā)出來(lái),這叫會(huì)問(wèn)問(wèn)題嗎?還是我之前說(shuō)的那句話,這只是你為了擺爛尋找的借口罷了。

如果你真的遇到了問(wèn)題,并且自己無(wú)法解決,必須尋求他人的幫助,你應(yīng)該嘗試定位問(wèn)題發(fā)生點(diǎn),把相關(guān)代碼和報(bào)錯(cuò)截圖發(fā)給想要詢問(wèn)的人,而不是一個(gè)幾百M(fèi)B超大壓縮包糊人家臉上,你這么做只是在浪費(fèi)他人的時(shí)間而已。

?

第五步 推翻重做

如果還是解決不了問(wèn)題,也許確實(shí)是你的思路方法不正確。不管做什么事,寫項(xiàng)目也好,做其他的事情也好,一定要有勇于承認(rèn)自己是錯(cuò)的勇氣,要有勇于把一切推翻重做的勇氣。但這里并不是說(shuō)要你無(wú)腦全部推翻重做,你還是得把握一下分寸。至于這個(gè)度該怎么掌控,還是得看你積累了多少經(jīng)驗(yàn),這不是光看我這一篇文章就能明白的事情。

綜上,遇到問(wèn)題別直接來(lái)問(wèn)我,要問(wèn)就問(wèn)點(diǎn)有價(jià)值有意義的問(wèn)題,我真的不想回答諸如“docker容器是什么?”“前后端跨域是啥?”之類的愚蠢問(wèn)題了。

寫代碼時(shí)遇到問(wèn)題該怎么辦?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
高平市| 大名县| 普兰店市| 德化县| 含山县| 德钦县| 钟祥市| 大连市| 屏南县| 五大连池市| 福海县| 长白| 德格县| 平顶山市| 漠河县| 双鸭山市| 防城港市| 连城县| 都昌县| 南投市| 竹山县| 迁安市| 蒲江县| 西乌珠穆沁旗| 长沙市| 河南省| 临汾市| 张掖市| 上饶县| 泰顺县| 沙河市| 莱州市| 宣城市| 虎林市| 元江| 绥宁县| 波密县| 海宁市| 翼城县| 卢龙县| 萝北县|