標籤:android style blog http color io os 使用 java
題記)最是那一低頭的溫柔,像一朵睡蓮花不勝涼風的嬌羞
1)接收
公司的X部門有個APP小項目,APP後台是C sharp的MVC,提供了一個C sharp的web from做管理員操作的後台操作,此項目是一個實習生寫的,也不屬於我這邊,因此我對此瞭解是透明的,後來實習生沒來了,於是這一堆從Android到wp到IOS到背景BUG全部丟到我這了。
得說點題外話,現在很多大學生抱怨找不到工作,但是很多找到工作的學生,人品真的不咋的,記得去年,那工作環境是相當的巴士,早9晚6,從不加班,周末從來雙修,按時出去旅遊,後來公司一氣招了5個實習生,這些實習生,幹了一段時間,招呼不打,直接就不來上班了, HR妹妹打電話問,直接就說不來上班了,然後讓其歸還門禁卡,後來沒有下文了。
對C sharp沒有深入研究過,這次到手一個項目,想自己搞一下,有源碼在手,有MSDN在那放著,還不能征服你個小小的C sharp,何懼之有?於是我卯足了勁,根據BUG列表,一個勁的在MSDN上來回掃,放在其他語言中,這些bug就是一些入門的問題,然對C sharp沒有深入過,也的慢慢來。
1):整個管理員登入的後台Web系統全部無法實現更新操作
解決:C sharp有個Page_Load,這個方法我覺得很奇葩,因為每次頁面載入會執行這個方法,於是這裡顯示了頁面詳情,表單的post提交會再次執行這個方法,然後才提交表單,正因為提交表單的時候,執行了這個方法,input裡面的值被資料庫的值給替換了,導致資料被覆蓋,於是看了MSDN裡面,微軟的處理方法是判斷是否是第一次調用這個方法:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ShowData(); //顯示頁面詳情 } }
沒有想明白在POST之前再次調用這個方法有什麼意義。
2)奇葩的資料,因為我看的是背景MVC代碼,並沒有去產生APP用戶端,APP的後台是MVC模式,用戶端通過HTTP請求,返回JSON,於是從登入入手熟悉代碼,整個登入流程功能倒是沒啥問題,就是實現的太扯蛋了,從資料庫一看:
第一個念頭是這玩意兒使用的啥加密方式,瀏覽了3次代碼,沒有發現可疑的加密的地方,登入驗證是用預存程序實現,基本就是很簡單的幾句,於是我轉念一想,難道。。。。
很實在的插入一條,我靠,還真是,資料庫沒有加密,這串看著像密文的東西就是明文入庫,現在寫代碼的小朋友,實在是不該啊,好歹MD5一下成不。
3)在給我處理了1 mol的問題之後,活動專題有個地方,無法修改,於是再次卯足勁看問題,發現這個地方是拋了SQLException,異常資訊:
e:過程或函數 ‘PR_Action_UpdateActionByActionID‘ 需要參數 ‘@ActionAddress‘,但未提供該參數。
說的很明確,沒有賦值,再次看代碼:
問題就在這個地方,這裡的參數的名稱沒有寫對,也就是給一個資料庫不存在的欄位賦值,傳遞給了預存程序,這報錯也太奇葩了,不報錯該欄位不存在,報欄位未賦值。
這些因為人不仔細的問題坑死人啊。。
後記)基本耗時一天把整個背景問題基本處理了,然後丟到線上,客戶那邊是抱怨不已,登入不進去,無法註冊,速度太慢,速度是因為使用第三方模組的UI,模組裡載入了很多google的css,加入第三方模組的人不太熟悉,沒有去掉,導致整個系統到處慢的要命。
PS:總體來說C sharp還是不錯,寫起來有手感,會j2ee再來搞C shrap門檻很低,我就在想,做一個軟體,將java代碼做個大小寫轉換,然後java代碼就可以變成C sharp了。。
有空研究下這個。
(原)C sharp雜談記事(一)