程序開發中那些莫名奇妙的bug

衆所周知,程序員的使命,就是不停的編程,調試,測試,直到上線爲止。但其中至關一部分時間都花費到調試上,由於咱們總會在開發過程當中由於不一樣的環境,不一樣的編碼語言規則,致使咱們遇到各類各樣的奇葩問題,對於這些問題,當別人發現這些問題時,咱們很驚訝的告訴別人,這不可能!或者說要否則你重啓下,或者你電腦抽風了吧,實際上,有些問題,是由於咱們的我的習慣致使的bug,百分之九十的狀況下經過重啓根本解決不了任何問題,因此咱們在編程過程當中必定要養成謹慎,認真的習慣。從而節省咱們更多的時間去作更有意義的事情。html

下面是我之前在開發中曾經遇到過的問題,分享給你們,讓你們引覺得戒!前端

  1. 路徑名稱不區分大小寫mysql

例如:在web端程序的控制層action返回一個頁面路徑時,假設路徑中的某個元素使用了大寫,而靜態頁面使用了小寫,若是你在Windows下開發可能不會出現任何問題,由於Windows下不區分大小寫,那天你的服務要是部署到Linux服務器上,那時日誌裏面一直出現504異常,你就完全歇菜了。程序員

 

2.    html頁面中id重複web

若是你使用jq選中一個id進行操做,突然發現失靈了,怎麼操做都不起做用,你就應該檢查下你的頁面中是否存在重複的id。正則表達式

 

3. 前端數據傳到後臺時摻雜前端的數據。sql

有時咱們爲了使體驗更好,都習慣在輸入框裏面使用placehoder,卻不知,在IE8下,placehoder裏面的值會直接傳到後臺,這時就應該加上判斷,再好比js一直報錯‘缺乏右括號’,檢查一下你的代碼是否是有空格,瀏覽器默認結束了,要注意加上\" \"字符防止瀏覽器認爲你的字符結束。還有若是你的前端代碼寫的不標準,由於瀏覽器解析的緣由,極可能把一些/等等前端符號傳到後端,最後形成一些莫名其妙的錯誤。數據庫

 

4. 使用數學中的邏輯運算符編程

          if(2<a<7){………}乍看起來沒有問題,我這樣用都用了幾十年了,思惟定勢啊,找了半天,恍然大悟,計算機中比較運算符是不能這樣使用的 。後端

 

5. 文本文檔的編碼格式問題

一般咱們在打開記事本,編輯文字時,Windows下記事本的編輯格式默認使用ANSI,它包括gbk,gb2312,可是咱們Java程序習慣使用utf8,若是咱們把這個文件讀到程序中,可想而知,全是亂碼(有時後果很嚴重的)。

 

6. 突然發現Java中的repalaceAll不能使用了。

String str = "咱們都是中國人.......";

String replaceAll = str.replaceAll(".", "");

這裏面的點號,是不管如何也不能替換掉,不只不能替換掉,並且其餘文字也替換掉了,這時你若是細心點,你會發如今Java中點號是特殊字符,它表明任何字符。(詳細的你能夠參考正則表達式部分轉義字符的api)。

 

7.    char x = 'x';System.out.println(true?250:x);

結果爲ú,對於三目運算符中的兩個結果,若是一個是常量,一個是類型T的變量,則常量會被轉型爲類型T。

 

8.    mysql數據庫字段值的大小寫問題。

若是插入2個不一樣的值當作key,可是數據庫就是拋出duplicated key,這時你須要仔細看一下你的兩個值同樣不同的區別是否是在大小寫上面,在默認狀況下mysql字段值得內容是不區分大小寫的,至於怎麼設置方法不少,你到官方文檔上看去。

 

若有問題請掃碼回覆

相關文章
相關標籤/搜索