正規產品代碼是提交到公司級代碼版本服務器上,一般用較多的是git或svn。這些服務器上只有管理員能徹底刪除數據,其他人的賬號只能提交代碼,無權刪除。程序員誤刪也就只能刪掉自己本地的代碼,就算把刪除代碼提交到版本服務器了,也只是版本服務器的一個增量提交操作,revert一下就回來了。那要是管理員誤刪了服務器數據怎么辦?當然有其他保護辦法系統源碼,服務器還可以做數據備份的。
說到數據備份技術。備份可以分成全量備份和增量備份,例如每10次增量備份就做一次全量備份。備份頻率可以到小時級別。經過長時間的備份后,還會由運維人員執行離線異地備份。簡單點的做法是把整個服務器虛擬機或數據備份拷貝到電銷電話硬盤拿走,高級做法可以部署專業的數據容災軟件,為服務器實現異地連續數據保護,簡稱CDP技術。這個技術可以記錄一段時間內的所有修改操作,把這些改寫數據的操作串起來維護就是一個叫做journal的數據記錄。可以理解成類似數據變更錄像機,記錄了一段時間內任一次修改操作。在這個journal內,數據可以像視頻播放器拉動播放進度條那樣,選擇任何一個點恢復數據。
至于程序員自己,前面說了也就只能刪刪個人電腦那份代碼。刪了怎么辦?從服務器重新checkout就可以了系統源碼,最多就是損失個人未提交那部分代碼。既然是未提交的,也就是說未算納入產品。開發流程規范的公司會有對應及時提交代碼的要求,比如每天的改動的代碼要及時提交,所以本地即使丟失了未提交代碼一般不會太多,最多一兩天的代碼量。
最后,程序員誤刪代碼要不要負責?當然要!你的項目經理如果合格的話,馬上就會要求你自行找時間加班把未提交的代碼重寫,總不能讓你影響項目進度哈哈。不多說了,該回公司查bug了!