程式設計師的那些悲催的事 生產環境

2021-06-20 04:00:16 字數 2036 閱讀 3745

下面這個文章是我看到的,確實是挺有意思的,大家對生產環境的可怕還沒太多意識,轉給大家看看。這下面的幾點,我犯過第一條和第二條相結合的錯誤:我們當時在客戶現場工作,上線之後為了能方便看到生產的資料以找出問題,所以我們的pl/sql都是既能連到測試庫,也能連到生產庫的,有一次,我刪除測試庫的資料delete from tablea,我意識到可能會和生產搞混,特意看了下,這個視窗連的是測試庫,那個視窗連的是生產庫,確認沒錯,ok,執行提交,結果提交後,再去確認一下,天哪,刪除的竟然是生產庫,之前也不知道是眼睛花了還是怎麼回事。好嘛,現在生產上的這張表被清空,並且還提交了。當時就蒙了。

以下是轉的:

在stakeoverflow上有這樣乙個貼子叫「confessions of your worst wtf moment」,挺有意思的,我摘幾個小故事過來,希望大家在笑過之後能從中學到什麼——所有的經驗都是從錯誤中來的(我在其中加了一些點評)

我們公司的軟體是給警察局用的,那是乙個對用來處理被逮捕的人的系統,此系統還需要收集臉部特徵和指紋資訊,並且,這個系統和會向fbi的系統提交這些資訊。當我們在測試這個系統的時候,我們一般都是用我們自己的指紋,當然,資料庫聯著的是我們的測試資料庫。不過,有一次,在我們測試完後,我們忘了把系統切換回生產庫,於是我們的測試資料庫就聯上了生產環境,於是我們的指紋資訊和**就散布到了其它系統中……清除我們警察局這邊的還好辦,但是,你需要波士頓警察局警司去法院簽字才能從fbi的資料庫中清除我們的資訊。

點評:測試環境和生產環境的資料不要混在一起。

有一次,我需要向新系統中匯入一堆資料,因為資料量太大,需要5個小時,只能在夜裡來幹,在系統需要正式使用前2個小時,資料導完了,此時是凌晨4點。隨後,我需要刪除一些資料,於是我在sql命令地上輸入了「delete from important_table; where id=4」。是的,我沒有看到**還有個分號,天啊。

點評:這就是加班工作的惡果。另,在delete之前最好先做一次select

我為乙個很大的銀行開發軟體,在我的**裡,我為一段理論上根本不可能執行到的**加了乙個報錯資訊。有一天,不可思異的事發生了,這條報錯資訊顯示在了該銀行的1800個分行的超過10000個終端上——「如果你看到這個資訊,說明整個系統被*了,回家吧,祝你過得愉快!」

點評:「假設是惡魔」,assume意為ass – u – me,意為——搞砸你和我。對於一些關鍵東西,永遠不要做假設。小心你言語中的——「可能、應該、覺得、不應該」等詞語,程式可不認這些東西。

我們的**中有乙個模組完美地工作了很多年了,只是**太亂了。我說服了我的老闆,我可以重寫這個模組,於是我花了三個星期來重寫這個模組。今天 ,我還記得,我的老闆站在我的後面看著我,而我在在流著斗大的法汗珠去fix被我重寫的「超級漂亮」的那個模組中乙個接乙個的bug。從那以後,我再也不重寫**了,除非有重大的利益。

點評:這就所謂的屠宰式程式設計。這個案例告訴我們兩個道理,1)維護**要用最最最保守的方法來進行。2)重構**前要像乙個商人一樣學會計算利益。當然,thoughtworks的諮詢師一定會告訴你tdd,結對,極限等等方法告訴你如果實踐重構。但我想告訴你,乙個程式在生產環境裡執行好幾個年能沒有問題是一件很不容易的事,那怕其中的**再爛,你再看不過去,你都要有乙個清醒的頭腦明白這幾點,1)軟體的執行質量是遠遠大於**質量的,2)你的測試案例是遠遠小於生產環境的,3)軟體的完美的質量,是靠長時間的執行、測試和錯誤堆出來的,而不是某種方**

————————————————

後來:這個事後,我的那個同事,把rm命令改了名,並自己寫了乙個rm命令,把刪除的檔案先放到乙個臨時目錄下。而我也因為這個事情,到今天,每次當我在root目錄下使用rm時,敲擊回車的手都是抖的。(另,rm時永遠使用絕對路徑)這裡,我想告訴大家——犯錯不可怕,可怕的是不會從中總結教訓,同乙個錯犯兩次

程式設計師那些悲催的事兒

在stakeoverflow上有這樣乙個貼子叫 confessions of your worst wtf moment wtf就是what the 的縮寫 挺有意思的,我摘幾個小故事過來,希望大家在笑過之後能從中學到什麼 所有的經驗都是從錯誤中來的 我在其中加了一些點評 我們公司的軟體是給警察局用...

程式設計師那些悲催的事兒

jonathan sampson在stakeoverflow上有這樣乙個貼子叫 confessions of your worst wtf moment wtf就是what the 的縮寫 譯文由酷殼網陳皓整理編譯 程式設計師那些悲催的事兒 我們公司的軟體是給警察局用的,那是乙個對用來處理被逮捕的人...

悲催的程式設計師,以及程式設計師的悲催

我盡量用平和一點的口吻跟你說說關於程式設計師的那點事兒。1.我在乙個叫摩托羅拉的公司幹過,那地方有50 的人整天幹的事情就是催另外25 的人沒完沒了的解剩下那25 的人造成的bug。我是個程式設計師,每天敲敲打打,哪天電腦崩潰了你會發現我這輩子啥都沒留下。大多數人甚至都沒有想過我們是怎麼把手機搗鼓出...