程序員開發程序bug比較多怎麼辦?

驀然回首180219


從事軟件開發多年,bug幾乎伴隨著整個軟件開發的週期,從開發週期到維護週期都可能存在bug,只要從事軟件開發就會有bug的存在,但是能力高的人寫的代碼框架相對bug會少很多,初級的或者水平差的做出的東西bug會多一些,在實際開發過程中是否產生bug,有時候不一定完全是程序員能決定的,還有本身項目的框架以及開發時間有關。

現在就個人的一些經歷分析下為什麼會產生bug,產生bug從大的方向上講有這麼幾個原因,第一點程序員本身能力不足,這種是最直接的產生bug的原因,特別是經驗不足十分容易導致出現一個奇怪的bug,所以在成型的公司一般不會輕易讓新手參與到項目開發中,即使參與也是比較簡單可控的模塊,對於複雜的功能基本上都會留給工作經驗豐富的程序員,因為要解決新手製造出的詭異的問題還不如直接老手親自完成,初級的程序員還在糾結於用代碼如何實現上,所以出現一些奇怪的現象也是特別正常的事情。

出現bug第二種原因,本身的框架兼容性不夠或者可擴展性不強,由於框架問題導致在實現的時候可能無形之中增加很多問題,舉個例子如果增加一個新的模塊需要改動的代碼關聯代碼特別多,這種就會增加bug的出現,或者增加一個新的功能模塊,之前的框架兼容性不強都會增加很多無用功,所以搭建好一個軟件框架對於後續功能的開發都有非常重要的作用。

第三種出現bug原因,測試力度不夠,在產品出廠之前檢測加大壓力測試能極大的減少產品問題的概率,所以有些企業的軟件測試部門的權威不小於研發部門,這樣無形之中能夠提升軟件測試的力度,有些公司測試部門依附於研發那麼產品的質量必然容易打折扣。

想要完全排除bug這幾乎在軟件開發裡面不可能發生的事情,要做的只能是儘量減少bug的產生而不能安全排除bug的存在,告別bug了也就告別軟件開發了。對於一個普通程序員來講如何減少bug出現,現在就以個人的經驗總結幾條

1.夯實編程基本功

編寫代碼就是用基礎編程語言來完成功能模塊,這依賴於編程語言的基礎,所以基本功完善起來,就能減少出錯的可能性,在任何情況夯實基礎都是正確的選擇。

2.提升框架能力

站的角度更高一點就容易發現問題,只是侷限於一個模塊,做的東西容易帶有侷限性,導致再次添加新的模塊出現不兼容問題,站在架構師的角度考慮問題,在實現代碼的時候就能減少後續的兼容性麻煩。

3.加強內測,不停重構

很多程序員實現完功能就覺得萬事大吉了,實現的功能是不是最優的,在特殊場景下是不是能夠經得住考驗這都是要慎重考慮的事情,發現功能不是很完善的地方就去重構選擇更加優化的方案。

減少bug,主要的原因還是從自身出發,排除外界的影響,自身的基本功上去了,bug相應的會減少很多。

希望能夠幫到你。


大學生編程指南


我也是一名程序員,而且還是一名工作6年的C++程序員。當初也是一名菜鳥,沒有出眾的智商,沒有大神的動手能力。剛實習的時候,程序Bug一大堆!

工作到今天,我的程序依舊有Bug,只是Bug的級別不一樣了。修復Bug的代價也不一樣了。


程序出Bug的原因

我覺得程序出Bug,得分析一下原因,然後定向解決問題。

編程語言的Bug:我平時遇到的C++的Bug主要有:變量未初始化,內存訪問越界,野指針等等,這些都很隱蔽。如果是這種原因,可以藉助第三方工具檢查,比如valgrind。


業務邏輯的Bug:其實因為編程語言出現的Bug都還好解決,如果是業務邏輯上出現Bug,這主要是因為不瞭解項目的業務邏輯。要解決這方面的問題就需要仔細研究好業務邏輯,動手之前要在紙上畫畫業務邏輯。這方面的Bug修復起來的難易程度取決於程序設計的好壞!

優秀的程序架構花費小的代價修復Bug,混亂的結構需要花費巨大的精力修復Bug!

現在對我剛實習時做的第一個項目記憶深刻,我第一個項目其中有個個業務邏輯應該使用MVC設計模式,但是當時沒有經驗,數據,操作,視圖所有都糾纏在一起。後來每修復一個Bug,都需要修改很多代碼,而且還很容易帶來新的Bug。


所以,對於C++就需要學好各種設計模式,設計優良的架構。要想少出Bug,需要在動手之前,徹底弄清業務邏輯,最好是落實到紙上,做到了然於胸!


AI科技猿


軟件開發過程中,BUG的出現是不可避免的。其原因很多,大多數的BUG是由於開發人員的粗心大意引起的。人非機器,一個變量命名書寫錯誤、一個邏輯判斷的疏漏都必定會導致BUG的存在。軟件有BUG並不可怕,關鍵在於這些BUG能夠被及時發現、快速修復。在專業的軟件項目開發過程中,BUG的管理體系和質量監管工作是必須的。通常我們會採用一個BUG跟蹤系統來科學管理軟件所產生的BUG,比如JIRA、BUGZILLA 等軟件都是非常優秀的質量跟蹤管理工具。另外不可或缺的,必須在團隊中配備測試人員,對每次軟件版本更新進行詳細的測試工作。軟件測試工作非常重要,是保證軟件產品能夠保質量交付的前提。在標準的軟件開發過程中,測試工作是貫穿始終的,並且不同階段有不同的測試目標和方法。比較常見的是

1、單元測試:在開發階段每當編寫完畢一段功能代碼,都需要進行單元測試。單元測試可以防止在編碼的級別上出現錯誤。例如語法、變量、事務邏輯等。

2、集成測試:當多個模塊或者構成一個完整業務過程的多段代碼完成時,必須進行集成測試。集成測試的目的是確保各個模塊或者多個代碼片段能夠協同工作,並完成預期的業務流程。

以上兩點是在開發過程中隨時需要進行的測試工作。

3,業務測試:在軟件構建一個可運行的版本之後,需要進行業務測試。此項工作需要業務人員或者需求提出方參與測試,以確認軟件在業務需求實現上,是否正確、達到了預期的要求。

4,用戶體驗測試。當了軟件的運行質量、業務功能趨近完善後,應當對軟件的操作使用體驗做進一步的測試,並進行優化,以使軟件產品更加易於操作使用。

減少軟件BUG的發生,出了在開發過程中保持認真細心的態度,更重要的是軟件的架構設計管理方法。注意兩點:

1,儘可能讓代碼自動化構建。計算機程序總是比人細心。多使用IDE的模版代碼生成以及自動化構建工具,減少人工代碼的書寫和配置。

2,組件模塊封裝,避免同樣的功能反覆編碼。你應該將常用的功能或者業務代碼進行封裝,隱藏內部實現,以儘量簡單的接口對外提供使用。

3,不要讓代碼複雜。應該用盡量簡練的編碼實現功能。代碼寫得越少,就越不容易出錯,當BUG發生時也更容易找到問題所在


Kevin9308


如果程序員開發程序bug比較多,建議應該多關注一些像我一樣優秀的頭條號!(手動調皮)

言歸正傳,自己寫的程序bug非常多怎麼辦?

我相信這種情況會隨著時間的推移不斷減少的,但目前應該如何應對呢?

首先我們要知道,每個程序員都會寫bug,如果把一個系統從無到有開發出來過程中不會產生bug,那一定是不可能的。

至於bug多和少的問題,我認為需要和三方面有所聯繫。

第一:態度。程序員對待系統的態度是怎樣的?對待需求的態度是怎樣的?對待技術準確性的態度是怎樣的?

如果被這三個問題問倒,那麼我可以很負責任的告訴你,你的態度非常有問題。一個優秀的工程師應該敢於對自己的程序負責任,敢於對自己的技術負責任,敢於對自己實現的需求負責任。

端正自己的態度是第一步,當你發自內心嚴格要求自己的時候,才是你走向大牛的第一步。

第二:功夫。程序員的核心價值就是放之四海皆可用的需求實現能力。而需求的實現可以有非常多的技術方案。舉個例子,一個for循環可以有命令式和函數式兩種實現方式,那麼你選擇哪一個?

函數式可以調用類庫的實現,而命令式需要你嚴格把控每一步的執行過程,也就會更容易產生bug,如果單從實現功能的角度,那為什麼不直接採用函數式呢?這就需要你對於一項技術的鑽研程度。

功夫下到了,你的技術就會過硬,更能夠預見可能出現的問題,從而避開各種bug。總之一句話,技術一定要好好下功夫。

第三:細節。不管你生活中是否大大咧咧,寫代碼的時候都要看好每個細節。放過細節是非常可怕的。一個好的程序員往往也非常細心。你也可以培養在生活中細心的好習慣,將生活安排的井井有條。避免因為混亂而導致出現差錯。

這樣也可以讓你在寫代碼的時候減少由於混亂的書寫風格而隱藏更多的bug。

綜上三點,就是我認為可以減少bug的終極奧義。希望可以幫助到你。

------------------------

另外,如果你希望學習Java知識,和我一起感受分享的魅力,歡迎關注“Java聖鬥士”哦。

期待你能夠一天比一天愉快!





Java聖鬥士


可以從以下幾個方面考慮:

1、自身的工作態度問題。

自身的心態也就是責任心的問題,做事不負責,寫完了也不檢查,不測試,這是對自己和他人的不負責。大多數是這種情況產生的。

2、自身的能力問題。

由於技術能力有限,寫出的代碼質量不高。考慮的不夠全面,代碼中邏輯不夠好。

3、Leader設計及檢查不到位。

一個項目是有一個團隊共同完成的,其中項目經理佔主導作用,項目的框架設計很重要,而且過程中要不斷的檢查,才能保證項目的質量,不能說項目搭建好了,就不管後面提交上來的代碼了。

4、測試。

開發過程中需要多測試,出現的問題要及時修改,避免上生產出現問題,影響使用。


老老實實寫代碼


找原因是最主要的

1、是技術問題?

2、是態度問題,不認真。

最後一句話,還是專業的人做專業的事情。一定不要為了省錢,請太新手的程序員開發程序。

給的低了,招聘不到好的程序員,工作低了 新手程序員問題多多,

1、的問題就是技術不過關 哪裡都是問題,工作效率不高,你還不如請好一些的程序員。

2、工資低了 態度的問題就出來了 大家都懂的,就怕給你磨洋工 態度問題是最要命的 哈哈


網博資源


我是一名程序員,每天的工作就是寫bug,然後測試解決bug,然後繼續寫bug,日復一日,年復一年,突然有一天發現我寫bug越來越少了。 任何程序都有bug,bug是無法避免的,只能慢慢積累經驗,這樣以後寫的代碼bug就會少了~


千年還魂


bug多有兩點因素。

1.業務場景考慮不周全,說白了就是需求沒有分析清楚。

2.代碼編寫能力問題,代碼規範很重要,同時對各種類庫框架的使用要熟練掌握,這樣才能編寫出好的代碼,而不是隻會copy的碼農。


小蔡帶你看科技



追風的腳印


軟件開發過程中有bug是很正常的,而且這些基本是在開發完成之後才出現的,所以去糾結究竟是程序員的問題還是系統架構的問題,沒有太實際的意義,還是要針對每一個bug怎麼修改拿出具體的方案。


分享到:


相關文章: