事情的發生是這樣子的:
在乙個祥和的,風和日麗的沒有太陽的回藍天,要打乙個國內版本的提審包,就差我配置乙個對應分支版本的配置表(為了打包時取各自對應的配置就可以,不需要把所有沒用的配置都帶上),我吃著火鍋(沒有火鍋),唱著小曲兒三下五除二配置完。奔著策劃的優良品質,自己驗證一下,噩夢就是從這裡開始了。
因為!沒有生效!
空氣及周圍的氛圍十分非常以及極其的尷尬,我檢查了幾遍配置都沒有發現問題,就陷入了一種【這他麼的到底是**錯了】的絕望情緒,在一臉懵逼,二臉懵逼十分鐘後,沒辦法啊,問題還是要解決啊,男人不能說自己不行。【因為是新錶,所以不能通過回滾來解決問題和確定問題】
1.新配置獎勵表不生效【和另外乙個分支的配置表屬於同乙個功能但因為版本分支不同有細微的差別】
2.頁面上,任務文字及跳轉正常
3.與另外乙個分支配置相同的任務正常
4.與另乙個分支配置不同的新任務累計不生效(如上圖0/10)
重點:在無數臉懵逼的時候,毫無頭緒的時候怎麼做出對問題的判斷
1.自查
》如果是配置表,就檢查配置表,如果是其他的資源或者其他問題的改動,請檢查【自查】
【我檢查了好幾遍,包括表的格式,id,數值,字段等等等等,如果是資源就檢查資源(因為策劃的提交一般就是資源提交或者是配置提交)】
2.查異
》如果第一步沒有問題,檢查更新(以防是其他人改動帶來的報錯)和檢查本地與svn差異(可能是其他改動導致的這個問題)
【同樣沒發現問題】
3.排查客戶端
》因為任務文字及任務內容等客戶端內容顯示正確,且改動後有對應變化,所以客戶端問題排除
4.排查伺服器
》走到這裡基本可以確定是伺服器的問題。
》回想表現的問題,新任務不正常,老任務正常
》鎖定問題:之前說過不同版本可能有不同的配置,新任務不行,而之前存在的老問題可以。
伺服器讀乙個配置表肯定會一視同仁,如果讀取到了配置表資料一定可以一起讀到
結論只有乙個:伺服器沒有拿到新配置的資料
》解謎:因為新老配置表其實根本上是乙個,只是因為是屬於不同版本分支的,有一些細微的差距、
所以,我一直以為新配置沒生效,老功能生效了其實完全是乙個煙霧彈,根本原因是因為新功能完全沒有生效(伺服器端)
但客戶端生效了之後,新老配置表是有一部分重疊的,造成了一種老功能生效的假象
改完伺服器引用,成了,問題解決。
【會一點程式的策劃可是真帥呀,雖然後邊的解決可能並不需要策劃來做,但是主要想向其他人傳達這種查錯的方式】
1.自查(確定是不是自己的問題)
2.查異(是不是改動衝突的問題)
3.查客戶端
4.查伺服器
其實大部分正常情況下,如果是因為策劃改動帶來的問題,都會在第一步就結束了(尤其如果是迭代,回滾一下版本沒問題立馬就可以確認是改動的問題,不確定問題的時候才回滾,確定問題都不需要回滾,直接改)。但是如果不是第一步的問題,一般第二步配合第一步可以將基本的問題都篩選出來了。如果1,2步都解決不了,很大的可能性就是程式有問題了(且屬於不是報錯的那種程式,舉個例子比如說當ab格式完全一樣時取a值,取成了b的那一種錯誤就不會報錯--還有其他例子就不舉了因為我暫時也沒想到哈哈哈哈)一般3 4步是不需要策劃來做的,但是如果有能力的可以嘗試這推一推,可以問題圈子縮的更小,也更方便程式了解來解決問題。【在推出是**的問題之後跟程式將,程式一下子就知道改哪了】
以上就是全部了,可能說起來沒什麼實打實可以具體解決問題的乾貨而且因為這次的問題主要是因為第四步,所以第四步可能更細緻一些,而對於第一步自查沒有做特別細緻如果細緻且全面的自查進行乙個闡述,只是給諸君提供一些思路,共勉。
日常學習心得
第一題,尋找原程式的錯誤 include using namespace std class time time t1 intmain void time set time void time show time 現的問題 1.在main函式中呼叫類的成員函式時前面要加上物件名 2.類外定義成員函式...
日常開發注意篇心得總結。
最近工作有些忙,但不忘做些日常總結,溫故而知新嘛。盡量使用php內建方法,因為二維陣列使用了個 導致php版本不相容 git限制重要配置不要提交到版本庫,因為測試環境,本地環境,線上環境等都不相同,每個人電腦也不同 中不要寫死 因為涉及到負載均衡,等多web伺服器的時候,特別是多同事協作的時候,太難...
bool型別變數與0比較的if語句應該怎樣書寫
bool btestflag false 想想為什麼一般初始化為 false 比較好?a if btestflag 0 if btestflag 1 b if btestflag true if btestflag flase c if btestflag if btestflag 哪一組或是那些組...