程序員在寫代碼的時候bug太多會給計算機造成損壞嗎?為什麼?

魏晉美人


你好,我是一名開發老司機,5年php開發經驗。PHP主要用來做web開發。我也用php做過文件處理系統,也有作為小程序,h5,app等之類的後端開發語言。

首先,任何人在開發的過程中都會有bug,沒有人能保證不出現bug,bug被測試出來,就要積極的去修復bug。測試環節也至關重要。開發過程中要儘量避免低級錯誤,注重程序性能的優化。

前面有點跑題了,這裡說說bug會對電腦硬件有損害嗎?答案是:會有。這裡我回答的有,是指計算死循環,cpu使用過渡,內存過渡溢出導致的計算機出現死機,藍屏,更有甚者cpu燒壞等這些。這種極端條件下,會對計算機造成嚴重的損害。不過你不要擔心,這種嚴重事故,基本上上線之前就會被測試出來,所以題主無需擔心。

題主肯定也見到過某某網站出現bug,系統癱瘓。這種很大程度是由於併發,造成的一些列問題,例如:數據庫宕機,redis雪崩,緩存擊穿等。這些問題有影響的只是軟件公司的服務器,而非個人自己的電腦?

現在科技發展速度迅速,電子產品更新換代非常快,部分電子元器件的價格大家也很容易接受。前幾年內存條價格比較昂貴,現在降了很多了。所以我們電腦也會經常升級換代,所以無需擔心程序開發導致電腦損壞。

總結:程序開發過程中基本上bug過多不會導致計算機損害。


西瓜有點胖


你好,一個具有八年嵌入式底層驅動程序設計經驗的工程師回答你提出的問題,程序員在寫代碼的時候Bug太多會給計算機造成損壞嗎?為什麼?答案是大部分情況下不會造成計算機的損壞,極端情況下可能,分析如下:

一、程序設計的分類

隨著現代社會的不斷髮展,我們的軟件分類越來越多,傳統的軟件一般分為底層驅動啟動代碼

操作系統中間件和應用軟件等。可以說每個層次的軟件地位劃分不同,一般啟動代碼和驅動程序更加接近硬件設備,而操作系統和應用軟件一般上可認為是純軟的設計,它們距離硬件系統稍遠一些。

二、不同類型程序的訪問特點

像Linux或者Windows這樣的操作系統,對於內部的進程存儲空間是有保護的,也就是說,如果你在桌面系統上編寫一個應用軟件,由於操作系統的保護,最多也就是訪問越界,造成操作系統進入異常處理,終止你的應用進程。所以,如果只是在桌面系統上開發應用軟件,那麼基本不可能造成硬件的損壞。如果是驅動程序或者我們說的Boot軟件,它們啟動時具有硬件芯片最高的訪問權限,一般都會涉及一些最接近芯片內核的代碼,還有各種外設接口的硬件訪問控制,也就是說整個芯片都隨便由其處置,那麼Bug程序如果產生在這樣的軟件之中,極端情況下,就有可能損傷硬件的。


三、列舉一個硬件可能損壞的情況

我舉一個嵌入式系統的例子,假如我們的Bug程序會不斷的擦寫我們的非易失性存儲器,比如NorFlash或者NandFlash,又或者EEPROM,每次上電或者異常都要不停的擦寫,假如擦寫了上百萬次(當然這只是一個假設,Bug也不會存在那麼久),那麼NorFlash可能就會壞掉,Nand產生N多個壞塊,基本上也會報廢。所以從程序的訪問特點來看,驅動程序更接近硬件,Bug可能會造成硬件損壞。

總結以上分析得出,如果只是在計算機桌面系統中開發應用軟件,由於系統的保護,基本不會出現損傷硬件的情況,如果是底層驅動的代碼有Bug,極端情況下,會有損傷壞硬件的可能。


以上是我的觀點,希望可以幫到你,喜歡的話歡迎點贊和關注哦!


瓶凡科技營


原則上程序員寫代碼調試對於計算機的衝擊是有限的,但編程來講不是什麼都是絕對的,如果是windows編程寫的代碼對於cpu或者硬盤有非常大的衝擊,也會造成計算機損害但這種概率還是非常低的,所以對於軟件開發來講可以進行無數次的試錯,而且成本代價很低,這是軟件開發相比硬件要好的地方。硬件的開發試錯成本就會提升很多,硬件的試錯需要具體的器件,如果運行不成功很可能導致器件的損壞。

要說軟件的操作對於具體器件沒有損害,這種話是不對的因為在具體實施過程中,通過軟件來控制硬件的,特別是一些衝擊力比較大的硬件如果軟件控制的時序不對,也會造成硬件的損傷,所以硬件和軟件整體來講是不分家的,硬件不會具體脫離軟件而去運行,軟件的控制硬件的時序不當也會造成期間受到巨大損失。

程序員在具體寫代碼的過程中經常出現bug是非常常見的事情,特別是對於一些新手由於對規則講述不清晰也會造成問題的出現,新手在寫代碼的時候更加容易出現一些異常的錯誤,因為新手在具體實施過程中可能基本的代碼邏輯都會存在問題,更不要說是設計邏輯上的問題。即使非常成熟的程序員寫的代碼也會有bug的存在,因為代碼的細節還是非常繁多,而且只要是軟件產品就會有bug的存在,即使是已經運行多年的產品,如同只要是上網的設備都可能存在被攻擊的可能性。

如何避免寫的代碼出現bug,根本問題在於多做不要怕寫代碼同樣的問題出現多了,自然就會想辦法去規避問題,所以越是經驗豐富的程序員越是對代碼的把握能力強,而且老程序員在對待出現的問題還能推演出不對的問題所在,所以經歷項目多的程序員在處理緊急問題時候表現的更加沉穩。

好的程序代碼在運行過程中不但損耗少,而且還非常的穩定,如果寫的代碼對於硬件資源佔據的比例非常大,長時間運行系統就容易變得不穩定,同樣是一直在運行的程序但是用的時間長就能看出好壞了,bug是程序開發過程中必不可少的因子,也是程序員成長過程中必然要經歷的事,解決的bug越多經驗顯得越豐富,涉及到嵌入式的軟件開發對於硬件的控制就要加倍小心了,因為硬件需要在合適的工作環境下工作,像強電的操作如果軟件控制的時序不對,就會造成器件的損壞,用軟件控制硬件的場景使用的就非常多,關鍵器件的工作是需要合適的條件的,硬件在非常規下運行的時間長了,自然就會縮短壽命了,希望能幫到你。


分享到:


相關文章: