寫代碼一遍就成功時怎么一種體驗?第一反應就是不真實。想著太陽從西邊出來了,還是返回邏輯給短路了。那些年寫的代碼,不斷自測下,bug都層出不窮,一遍就成功的很少。當然,有些代碼肯定會一遍通過,除非是你剛接觸編程。最典型的就是廣泛傳播的“HelloWorld”,有一定的編程基礎,這個代碼肯定會一次通過,C語言的執(zhí)行結(jié)果除此之外,還多了一句“0warning(s),0error(s)”。這些代碼中的難忘記憶,是否引起的你的共鳴呢?
寫代碼,問題總是不可避免的,一遍就成功的可能有,但就個人的經(jīng)驗來說,還是比較少的,尤其是我們一些線上維護的項目,由于種種原因,本地無法運行,在預發(fā)環(huán)境部署后,才能看到執(zhí)行的效果。在本地修改代碼,改了一段有一段,偶爾還會寫寫單元測試,一些典型的工具類方法,還是通過Main方法重點自測,模擬各種邊界測試數(shù)據(jù)來看是否達到效果。但是如果需求緊急時,或者構(gòu)造測試數(shù)據(jù)比較困難時,就會選擇直接在預發(fā)環(huán)境進行測試,跳過單元測試流程。往往是一個需求代碼gitpush了5次以上,才能完成達到提測要求的代碼程序。除此之外,有時再預發(fā)環(huán)境自測中出現(xiàn)問題,還需要增加一些歷史代碼的日志打印來方便排查問題,在各個調(diào)用方法加日志之后,又是一系列的gitpush。
通過預發(fā)環(huán)境來自測,是特殊情況下的無奈選擇,有可能的話,還是建議自己在本地搭建起自己環(huán)境,有較為完整的測試數(shù)據(jù),這樣開發(fā)新需求時,就比較容易,可以比較直觀的斷點調(diào)試看到每個步驟的執(zhí)行結(jié)果。同時,在改代碼前,需要對自己編寫的代碼以及達到的效果有一個較為清晰的評估,該如何顯示的進行自測和測試,該怎么描述修改內(nèi)容以及評估影響范圍等,都需要有一個較為完整的思路,來避免本次需求對其他模塊的影響,有利于線上業(yè)務的穩(wěn)定。
寫代碼一遍就成功是一種理想情況,但規(guī)范的代碼風格有利于你朝著這個方面邁進,雖不能至,然心向往之。增加Sonar等代碼規(guī)范掃描工具的使用,有助于避免一些容易被忽略的問題,比如空指針。良好的代碼習慣,讓我們在寫代碼時更順手,當然,在預發(fā)環(huán)境部署自測的方式久而久之也會讓我自覺的去走查自己寫的代碼,避免提交低級別的問題,耗費預發(fā)環(huán)境部署的時間,但這種代價太大,在一些特殊的場景下用可能會好一些。
作者:夕陽雨晴,我的:偶爾美文,主流Java,為你講述不一樣的碼農(nóng)生活。