Java程序员的典型工作过程有哪些_Java程序员都要经历哪些阶段
原標題:Java程序員都要經歷哪些階段
程序員從菜鳥到優秀的過程是需要時間,經驗,不斷的進階,小編和大家一起看看每個階段都要經歷哪些成長陣痛:
沒有防衛
這個階段很快就會過去,因為有無數的書本和”前輩”在提示防衛性編碼的必要性。
瘋狂防衛
無論是模塊之間,還是模塊內部,處處充滿檢查,首先是檢查參數,其次是檢查返回值和出參。最后,給自己寫的函數通通加上指示成功失敗的返回碼。
如果有幸參加過代碼評審會,對階段二的代碼應該不會陌生,看看到底哪里不對勁?
只管匯報,不管處理,不了了之
這些泛濫的防衛性代碼有一個共同的特點–只管檢查匯報,不管處理。所謂的處理就是一層一層的return錯誤碼,典型的懶政行為,老子眼界不夠高,做不了決定,把皮球丟給上級機關。上級機關面對來自不同下屬的千奇百怪的錯誤碼,他也沒轍,只好再丟給上上級機關。這樣層層上報,人手再多也搞不定,因為用來分析錯誤的上下文信息已經在層層匯報中丟失了。所以別看費了好大力氣匯報錯誤碼,最后除了一死了之或者睜只眼閉只眼也沒有更好的辦法。
內外不辨,親疏不分
防衛是應該的,但不應該處處為營。國界線上要有邊防軍巡邏,但是省界呢?縣界呢?設防是有成本的,在軟件上就體現為交復雜度稅。同一個模塊內部,假設A調用B,如果B認為A傳給它空指針是一個錯誤,那么A應該設計為永遠不會把空指針傳遞給B,而不是在B處設防。模塊內部設防,就好比兩口子同床異夢,精力都內耗了。
人格分裂,自相矛盾
設計這種代碼的人一方面認為自己思維縝密,步步設防,另一方面認為自己白癡到底,所以要步步設防,左手要防著右手。左右手互搏的代碼散布得紛紛揚揚,幾乎無法辨認有限的功能代碼。
顧頭不顧尾,屁股擦不干凈
只要評審得足夠仔細,總能發現這些防衛性代碼的漏洞,要么是文件沒關閉,要么是內存沒釋放。這是必然的,因為一個正常人根本沒腦力搞定這么多細節。考慮到天量的路徑組合和邏輯的自相矛盾,你也沒辦法設計測試用例來驗證它。這就是為什么真的一不小心命中的話,結局總是很悲慘的原因。寫到這里,我想起歷史上重大的安全事故調查報告,事故之所以能發生,是因為多道安全閘門同時失效,而軟件故障會更加可怕,因為后面的閘門本身就是炸彈。
說了這么多,那么階段三到底又是什么樣的呢?
邊界清晰,御敵于國門之外
在模塊的邊界處,無論別人調用你還是你調用別人,一定要明確約定調用規范,一旦違反規范,立即啟用錯誤處理流程,不要讓錯誤在自己的模塊內部流竄。
不給錯誤做二傳手
如果發現錯誤,讓錯誤到此為止,非必要,不接力傳遞錯誤碼。
當斷則斷,早死早超生
所有程序的正確運行都是依賴于一定的前提條件的,如果你發現外部模塊不工作了,遵從系統的錯誤處理策略,該報異常就報異常,該立即退出就退出,重要的是搜集好現場的證據。一味的容錯處理既不能解決問題還會掩蓋問題,導致錯誤擴散,變形,拖延定位問題的時機。
和諧社會,簡單單純
在模塊內部,只有不言自明的約定,沒有周伯通似的左右手互搏。好比烏龜,龜殼堅硬,但龜殼內部是一個柔軟的世界。
這樣的代碼,模塊內部幾乎沒有用于實現需求以外的代碼,很容易閱讀,僅通過黑盒測試就能實現代碼覆蓋。返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的Java程序员的典型工作过程有哪些_Java程序员都要经历哪些阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 左测输卵管有囊肿还能坏孕吗?
- 下一篇: java服务器端测试_java-在服务器