記實際開發中遇到的重大失誤

2019年03月23日22:03:50

今天週六,app版本更新,於上週寫了一個新的簽到功能,7天一個循環,初始積分及累計簽到贈送積分要求可配置,並每天在簽到成功後推送一則笑話,功能不難,也很快就寫出了對應接口,但這個新的接口是我直接修改了原有的接口,沒有正式發包之前,並沒有什麼問題,測試包括我都沒有測出什麼問題,但最後發包的時候,因爲安卓和蘋果的版本不一樣,蘋果需要一個審覈,加上我是修改的原有的接口,這樣就導致了,線上的IOS端的app簽到出現錯誤,因爲原有接口被我替換成了新的接口,所以原來的簽到判定條件跟我現在的判定條件不一樣,所以,出現了一天可以簽到2次的情況,這個情況的出現,是自己疏忽了蘋果和安卓端版本不一致的原因,更是因爲自己圖方便,直接去修改了原有的接口,沒有新增一個接口導致的,如果上述原因注意到其中任意一條就不會讓今天這種情況發生,並且在後續的修改中,讓ios端恢復調原有的方法,更新之後再調新的方法,但還是出現了問題,問題在於老版的簽到功能簽到之後的記錄,和我寫的新版的記錄,當時另外一個接口需要一個返回字段,是否簽到,我是根據是否有積分記錄來判斷的,但這個地方就出現了一個問題,之前的老版本簽到成功後也是有簽到記錄的,當再用新版時,簽到功能就不會生效(按程序的正常邏輯來說,這時應該是生效的)所以,在判定是否簽到時,除了根據時間來判斷更嚴謹的方式是獲取到記錄中擴展字段中的值,這樣就能保證不會出現問題.在以後的開發過程中,一定要注意這種問題.確保下次不會再犯,要對程序懷有敬畏之心.

第二個問題是,在維護之前的基金項目時,因爲當時編寫的代碼過長,並且編寫時,猶豫不定,隨意使用變量,某一方法的關鍵判斷條件沒有明確,在不同的地方使用了不同的判斷條件,導致後期維護艱難,看代碼的時間佔了大多數,極大的浪費了開發的時間和效率.

對於以上兩個情況,從中吸取的教訓有:
1.開發時,明確接口的使用,能不修改原有的接口就儘量不去修改原有的代碼,因爲並不能保證修改之後會不會出現問題,儘量自己新寫接口去完成需求.
2.保證開發時,多思考,多動腦,再簡單的程序都不要輕視,不能自己覺得可以就去做,要在符合整個業務邏輯的情況下開發,儘可能的仔細考慮到每一種情況
3.當一段代碼的邏輯過於複雜,一定要注意方法的抽取,分割代碼,針對不同的情況,分成不同的模塊,切記不要在一個業務邏輯裏寫超級複雜的方法,這樣不利於後期的維護.
4.寫代碼時,關於方法的抽取,在編寫的過程中,可能會出現代碼邏輯的重複,當出現這種情況時,停止開發,仔細的思考兩段代碼通過抽取,能否實現方法的複用,這樣不僅提高了代碼的閱讀性,更方便了後期的維護,爭取一個方法不要超過80行!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章