<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    mimi_van

    吞下寂寞的戀人
    posts - 30, comments - 45, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2008年1月2日

    這道菜也是師從我婆婆

    不得不說,婆婆真的是一個美食家,好吃,好看,隨便幾個蔬菜到她那里都會被演繹的很美味。
    呵呵。。。。

    現在就來介紹這道菜的步驟:

    1.準備材料
                 原茄子一個
                 青豆若干
                 蔥白少許
                 醋
                 胡椒
                 鹽
                 醬油

    2.制作過程
                 將茄子去皮,切成薄片,然后在切成細絲
                 給切好絲的茄子上散少許鹽,腌制15分鐘,讓其出水
                
                 青豆用水煮熟,如果你買的是生的
                (我在超市買的大包裝的,不知道是不是熟的,反正我沒提前煮過)
                
                 炒鍋中倒少許油,爆香蔥花
                 加入茄子絲兒,翻炒幾下,放少許醬油,少許醋
                (喜歡稍微酸一點的可以多加一點點醋哦)
                 將火調小一些,加一點水,翻炒幾下,蓋上鍋蓋,悶少許時間
                 當茄子快全部軟了的時候,加入剛才煮好的青豆
                 翻炒幾下,然后去調一些 稀薄的 水淀粉
                 回來,加入些雞精,胡椒粉,翻炒幾下
                 加入水淀粉,大火收一下,出鍋


    下次我在做的時候,拍張照片附上
              


                

     

    posted @ 2008-08-06 20:44 mimi_van 閱讀(1355) | 評論 (0)編輯 收藏

    當前位置:Java EE樂園文章中心Struts+Spring+Hibernate → 文章內容

    用fileupload組件上傳文件出現亂碼解決方法|http://www.aspsky.net

    減小字體 增大字體 作者:佚名  來源:不詳  發布時間:2007-12-31 19:58:00
    快速查找內容

    我們用apache的fileupload組件上傳文件,
    如果不做任何出理,通常會出現文件名亂碼或普通text文本框值的亂碼,那么,我們該如何處理呢?

    其實,fileupload組件提供了一個設置編碼的接口,在沒有指定編碼時使用系統缺省的encoding,如果需要使用gbk,可以使用該接口進行設置,如:
    //FileUploadBase fb = new FileUpload(new DefaultFileItemFactory());
    //fb.setHeaderEncoding("GBK");

    DiskFileUpload fu = new DiskFileUpload();
    fu.setHeaderEncoding("GBK");

    這 樣,獲取的文件名就不會亂碼了,但普通文本框的值卻還是亂碼,我們還要對文本值進行處理,中文的text字段可以通過 title = new String((fileItem.getString("iso8859-1")).getBytes("iso8859-1"),"GBK"); 來 獲取


    UTF-8的也是同理,祝在家好運.

    posted @ 2008-02-29 19:53 mimi_van 閱讀(706) | 評論 (0)編輯 收藏

    在網上找過很多例子,但都有很多問題。

    希望得到大家的幫助。

    謝謝

    posted @ 2008-01-28 11:13 mimi_van 閱讀(887) | 評論 (5)編輯 收藏

    在網上找過很多例子,但都有很多問題。

    希望得到大家的幫助。

    謝謝

    posted @ 2008-01-28 11:13 mimi_van 閱讀(612) | 評論 (3)編輯 收藏

    下面的方法也是我在google上搜到的,因為嘗試了其中一個方法,成功了,
    所以在這里記錄下,備用。

    比如以下兩個jsp頁面之間的傳遞:

    a.jsp頁面內容:
    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
    <form action="b.jsp">
        name:<input type=text name=name>
        <input type=submit>
    </form>
     
    b.jsp頁面內容:
    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
    <%
     String name=request.getParameter("name");
    %>
    <body>
        <%=name%>
    </body>

    現象:中文亂碼,比如“??????”
     
    解決方法如下:

    方法一:-----------嘗試過,有效但確實不可取
    1.         在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"
                雖然這樣b.jsp頁面顯示的內容還是亂碼,但是不是那種“??????”的亂碼,
                而是一些特殊字符
    2.         然后在瀏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了。
    3.         但是這種方法是不可行的。

    方法二:---------- 嘗試過,有效。我的部分頁面就是用該方法
    1.         在b.jsp中把String name=request.getParameter("name");修改為
                String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
    2.         這時再在頁面上顯示,則就是中文了。
    3.         但是我個人不喜歡這種方法,因為編寫起來代碼非常繁瑣

    方法三:
    1.         有人說修改get/post的傳值方式,但是這是有前提的,
                如果只是把get方式修改成post方式,頁面結果還是亂碼!
    2.         前提你必須配置了過濾器,若果你只是配置了過濾器,
                則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!
    3.         過濾器的配置,我想大家都能有,我就不說了

    方法四:
    1.         有人說配置tomcat的配置文件server.xml里這句:
                 <Connector URIEncoding="GB2312" 
                    port="8080"   maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
     
                    加上這句:URIEncoding="GB2312"

    2.         雖然可以但是有前提的,若果你過濾器沒有配置,
                則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!
                當是post方式時,照樣是亂碼!
                *這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
                *有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,
                下面就是我推薦的方法五*

     方法五:
    1.         其實很簡單,就是同時實現方法三又實現方法四!
    2.         就是先配置過濾器,又配置server.xml文件,都設置成GB2312的編碼
    3.         這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!

    posted @ 2008-01-22 14:41 mimi_van 閱讀(5393) | 評論 (1)編輯 收藏

    今天閑逛CSDN ,看到了這樣一個有趣的標題,趕緊進去瞧了瞧。
    別人我不知道,因為我是轉行業到java編程的。現在正在做web開發的工作,
    所以對這篇文章的內容深有同感,尤其是我轉載過來,注以紅色字的部分。
    希望跟我一樣境況的人看到這則新聞,也能加強一下對其他語言的學習。



    【CSDN 1月9日消息】 國際消息 美國紐約大學的兩位計算機科學系退休教授發表一篇公開文章,標題是“計算機科學教育:明日的軟件工程師在何處?”。在文中,他們強烈地批評了紐約大學和其他大學,沒有向學生傳授純粹的語言如C、C++、Lisp和ADA。

    “學生從當前教育實踐課程中獲取的技能不足以應付今日軟件行業的發展(尤其是安全和安全目的方面)。更不幸的是,與外部行業需要過于匹配了,我們訓練了許多容易被取代的軟件工程師。”

    尤為注意的是,文中以“Java作為第一編程語言的諸多缺陷”為小標題對Java進行了批判:

    由于Java在Web應用領域的流行,以及初學者容易生成圖形化編程,Java成為入門課程中使用最普遍的語言。從此后學生發現很難在一個沒有圖像界面的語言上編寫程序,不清楚源程序和硬件如何執行之間的關系,更具有危險性的是他們一點也不了解指示器的語義,這使得使用C語言編程也成為挑戰。”

    編程的真正的美妙之處在于,將復雜的過程縮減成非常小的一個簡單操作。Java并沒有體現這種美妙,它鼓勵采用“問題解決(problem-solving)”的方式,使程序員就像五金店的水管工人:到處翻騰抽屜、閣子最后找出需要的零件。最終的結果使得學生知道如何將一些簡單的程序組到一起,而對編程卻一無所知。而且過早地使用Java庫和框架有一個更大的缺陷:它使得學生很難對編寫的東西形成運行時間成本(run-time cost)的概念,因為他們很難知道究竟哪種方法的調用是有效的。我們為此亦找到了一些證據。Bjarne Stroustrup(被譽為C++之父)在德州農工大學(Texas A&M University )的報告中,指出了工業對于這種方式越來越多的不滿,而且Bjarne這樣說,“從工業那里我看到了許多許多對此(Java作為第一編程語言來使用)的抱怨,尤其是AT&T, IBM, Intel, Bloomberg, NI, Microsoft, Lockheed-Martin等等。”

    另外在文中,這兩位教授們認為真正的程序員能夠使用任何語言(C,Java,Lisp,Ada)。【吶不喊】

    posted @ 2008-01-22 14:24 mimi_van 閱讀(497) | 評論 (0)編輯 收藏

    在網上找到了的解決辦法

    解決方法一:
    1.運行對話框中輸入mmc 
            ------打開控制臺,將cmd改寫成mmc 
            ------在彈出來的對話框里,點擊文件 
            ------添加/刪除管理單元
            ------添加--找到"Microsoft SQL 企業管理器"
            --添加,確定
            然后回到控制臺 

            ------點擊控制臺的另存為,
            ------將它存儲為: c:\program File\microsoft SQL Srver\80\Tools\BINN\SQL Server Enterprise Manager.MSC
    即可 
            關掉控制臺的時候,不保存控制臺的目錄結構


    解決方法二:
    刪掉C:\Documents and Settings\YourUserName\Application Data\Microsoft\MMC\SQL Server Enterprise Manager



    上面的兩個方法我只嘗試了方法一,成功了哦

    posted @ 2008-01-14 18:18 mimi_van 閱讀(1510) | 評論 (2)編輯 收藏

    H

    Hex (hexadecimal) ---- 十六進制,注意,十六進制代碼都是以#開頭的

    posted @ 2008-01-08 14:56 mimi_van 閱讀(187) | 評論 (0)編輯 收藏

    B

    Binary ---- 二進制的( octal 八進制的,decimal 十進制的,hexadecimal 十六進制的,)
    Binary distribution ---二進制版本(很多地方都會發現這個詞,比如你去tomcat官網下載tomcat,下載mysql,大概其的意思就是告訴你這是一個二進制版本的)

    Bit  ------ (二進制的)位

    beta  ----- 因為字母的 B ,常常用來表示 真正發布前的測試階段 
                     有alfa(alpha)字幕A,表示發布前第一階段的測試,開發者自己測試
                     而beta 就是 發布前的第二階段測試 常常是開放給 部分用戶的測試
                     這兩個測試階段都過去后,就可以released 發布 了

    posted @ 2008-01-08 14:54 mimi_van| 編輯 收藏

    O

    Octal  --------- <計算機>八進制的
                             八的,第八的

    posted @ 2008-01-08 14:53 mimi_van| 編輯 收藏

    A

    Axis  --------- n.軸,中軸,中樞,中心線
                           the Axis 指二戰時德意日組成的軸心國
                           <計算機> axis 是指一種 數據庫

    posted @ 2008-01-08 14:53 mimi_van| 編輯 收藏

    D

    debugger  --------- 計算機指 調試器
    我目前知道的有application debugger 和 application debugger 這兩個名詞,其他的還待補充

    Decimal ----- <計算機>十進制的
                          十的,第十的

    posted @ 2008-01-08 14:53 mimi_van 閱讀(219) | 評論 (0)編輯 收藏

    U


    URL----  統一資源定位符,在URL里必須包含“http://”

    posted @ 2008-01-08 14:52 mimi_van 閱讀(178) | 評論 (0)編輯 收藏

    Terry Lee - 2008年不再用騰訊QQ says:
    這個也行:http://java-source.net/open-source/bloggers
    Terry Lee - 2008年不再用騰訊QQ says:
    是專門web用的
    mimi says:
    好的。我都看看。呵呵。。
    mimi says:
    謝謝了
    mimi says:
    我今天才知道還有專門的調試器程序
    Terry Lee - 2008年不再用騰訊QQ says:
    恩,好多呢
    mimi says:
    我傻死了
    Terry Lee - 2008年不再用騰訊QQ says:
    我原來跟你說過,java最大的好處是有各種開源工具
    Terry Lee - 2008年不再用騰訊QQ says:
    各個行業,各種應用的幾乎都有
    mimi says:
    沒明白
    Terry Lee - 2008年不再用騰訊QQ says:
    你得多上網看一些技術文章
    mimi says:
    恩。
    Terry Lee - 2008年不再用騰訊QQ says:
    比如連接池,log,內容管理,CRM,報表,進程管理,緩存管理等等好多方面java都有開源的框架和工具
    Terry Lee - 2008年不再用騰訊QQ says:
    不用自己來開發,直接使用就行
    Terry Lee - 2008年不再用騰訊QQ says:
    比如hibernate和struts
    Terry Lee - 2008年不再用騰訊QQ says:
    這個網站有個簡單的總結:http://java-source.net/
    mimi says:
    那些開源的框架都是人們免費寫的
    mimi says:
    為什么就給java寫啊
    Terry Lee - 2008年不再用騰訊QQ says:
    有時間建議你去一些java技術網站看看最新的技術和應用: www.theserverside.com, www.onjava.com 等等
    Terry Lee - 2008年不再用騰訊QQ says:
    因為java開源
    Terry Lee - 2008年不再用騰訊QQ says:
    php也有,但是沒有java的多
    mimi says:
    哦。
    Terry Lee - 2008年不再用騰訊QQ says:
    java的開源是所有語言中最多的了
    Terry Lee - 2008年不再用騰訊QQ says:
    因為java語言本身就是開源的,其他語言都不是
    mimi says:
    我問一個,你不要生氣啊。
    Terry Lee - 2008年不再用騰訊QQ says:
    你用的eclipse也是java的開源工具
    mimi says:
    你說java語言本身就是開源的。。就是指免費的。還是也指其他的
    mimi says:
    那這么說,myeclipse就不是開源的
    Terry Lee - 2008年不再用騰訊QQ says:
    java本身是開放源代碼的,開源指的是源代碼,不是免費不免費
    Terry Lee - 2008年不再用騰訊QQ says:
    和linux一樣,可以去官方網站下載源代碼
    mimi says:
    哦。

    Terry Lee - 2008年不再用騰訊QQ says:
    其他語言都是編譯好免費使用,但不一定是開源的
    Terry Lee - 2008年不再用騰訊QQ says:
    java的這個特點被眾多網友應用在java開發的產品上,好多免費的東西都是開源的
    mimi says:

    Terry Lee - 2008年不再用騰訊QQ says:
    其他的語言,比如asp,php開發的東西也可以叫開源,但是和java比還不一樣
    Terry Lee - 2008年不再用騰訊QQ says:
    java不是腳本語言,php本身就是腳本語言,不想開放代碼都不行
    mimi says:
    哦,因為java可以隨便看源代碼,所以大家可以根據java的源代碼再開發一些基于java語言的 軟件,框架什么的
    mimi says:
    有這個意思吧
    Terry Lee - 2008年不再用騰訊QQ says:
    不是隨便看源代碼才有這些框架
    mimi says:
    腳本語言為什么不想開放都不行
    Terry Lee - 2008年不再用騰訊QQ says:
    是因為java開源,很多技術專家都可以跟sun公司提出自己的改進意見,使得java更好,和linux一樣
    Terry Lee - 2008年不再用騰訊QQ says:
    你用過asp或者php嗎
    mimi says:
    基本沒用過,但是看過一些,php是腳本語言,就是那些 用var聲明,function什么的。
    Terry Lee - 2008年不再用騰訊QQ says:
    我給你個.asp文件,你用記事本就能打開看到代碼,我把java編譯成.class或者用工具做成.exe給你用,你能直接看到源代碼嗎
    mimi says:
    你剛才說腳本語言不想開源度不行是什么意思啊
    mimi says:
    哦。
    mimi says:
    asp也可以用記事本看啊
    mimi says:
    這樣的。
    Terry Lee - 2008年不再用騰訊QQ says:
    那你說說怎么不讓我看到asp代碼
    mimi says:
    呵呵。。
    mimi says:
    恩呢
    Terry Lee - 2008年不再用騰訊QQ says:
    這好像沒啥難理解的吧
    mimi says:
    恩。
    mimi says:
    是的。
    Terry Lee - 2008年不再用騰訊QQ says:
    做軟件行業應該對這些東西都有個了解,這個就像生活的基本嘗試一樣
    mimi says:
    主要是沒想到 能用 記事本打開那些 php或asp文件
    mimi says:
    恩。
    mimi says:
    你說的對
    mimi says:
    謝謝
    Terry Lee - 2008年不再用騰訊QQ says:
    這個我想不明白了
    Terry Lee - 2008年不再用騰訊QQ says:
    用記事本打開什么文件,怎么會想到或者想不到呢
    Terry Lee - 2008年不再用騰訊QQ says:
    就算是二進制文件都可以用記事本打開,只不過打開后看不懂是些什么東西
    mimi says:
    恩。

    Terry Lee - 2008年不再用騰訊QQ says:
    jsp,asp,php,js等等這些腳本語言因為它們自身的特性想不開源都不行
    mimi says:
    我還是不太習慣用這樣的思維考慮,我總是想,打開一種類型的文件,肯定要用相關的軟件,以前都是作為普通的使用者。比如打開數碼照片就用acd什么的。

    Terry Lee - 2008年不再用騰訊QQ says:
    c/c++/java/delphi/basic等等這些語言可以選擇是否開源
    mimi says:
    恩。。。你說的對。
    Terry Lee - 2008年不再用騰訊QQ says:
    php確實還沒有什么官方的編輯工具,那些IDE環境都是第三方開發的
    Terry Lee - 2008年不再用騰訊QQ says:
    所以不要有這種概念,一個文件類型不一定要用某種特定工具打開
    mimi says:

    Terry Lee - 2008年不再用騰訊QQ says:
    你用java讀取flv本身就是“打開”的概念
    mimi says:

    Terry Lee - 2008年不再用騰訊QQ says:
    java有個開源框架專門處理office文檔的,是apache項目下的poi項目
    Terry Lee - 2008年不再用騰訊QQ says:
    可以直接讀取excel,word等文檔
    mimi says:
    哦。
    Terry Lee - 2008年不再用騰訊QQ says:
    不借助其他什么ODBC,是直接二進制讀取分析的
    mimi says:
    哦。
    mimi says:
    開源還真是好處多多啊
    Terry Lee - 2008年不再用騰訊QQ says:
    java的freeChat報表框架可以生成各種報表圖,扇形、圓餅、柱狀、曲線等等,不用自己調用繪圖類進行繪圖,直接調用這個框架,輸入一些數據參數就行
    mimi says:

    Terry Lee - 2008年不再用騰訊QQ says:
    tomcat本身也是一種開源servlet容器,你做web程序不用自己寫服務器,直接用免費開源的就行
    Terry Lee - 2008年不再用騰訊QQ says:
    很多大公司使用自己的web服務器,就是拿tomcat或者apache的源代碼然后做修改,改成適合自己公司使用的服務器
    mimi says:
    難道其他的語言還要自己寫服務器
    mimi says:
    哦。
    Terry Lee - 2008年不再用騰訊QQ says:
    其他很多都不用,但要么不是免費,要么是別人給你服務器,你沒法看到服務器內部工作原理,無法自己修改
    mimi says:
    哦。
    Terry Lee - 2008年不再用騰訊QQ says:
    比如tomcat你發現幾個功能有缺陷,不太適合自己公司,可以拿來源代碼自己修改,發現多余的功能可以自己刪除,windows下的IIS就不同了,你沒法自己修改,只能把意見提到微軟,看看它們什么反應
    Terry Lee - 2008年不再用騰訊QQ says:
    linux系統也是,現在有N多版本,就是因為開源的緣故,誰都可以根據核心代碼生產自己的linux產品
    mimi says:
    哦。
    mimi says:
    這樣的
    mimi says:

    Terry Lee - 2008年不再用騰訊QQ says:
    所以java才會發展起來,要不大家都還在用vc或者.net
    mimi says:
    嗯。
    Terry Lee - 2008年不再用騰訊QQ says:
    java光靠跨平臺是沒有太多優勢的,開源框架才是它的生命力
    mimi says:
    嗯。
    mimi says:
    是啊。。會更方便
    mimi says:
    謝謝你說的這么多
    mimi says:
    剛看了你給我的那兩個技術網站,都是e文的呢。呵呵。。
    mimi says:
    我csdn才剛剛能看懂一些
    Terry Lee - 2008年不再用騰訊QQ says:
    是,我經常去看
    mimi says:
    主要是知道的太少
    mimi says:
    看不明白
    Terry Lee - 2008年不再用騰訊QQ says:
    特別是 http://www.theserverside.com/ 經常介紹一些新框架和新技術
    Terry Lee - 2008年不再用騰訊QQ says:
    能學到不少東西
    mimi says:
    我都收藏起來
    mimi says:
    恩。。你簡直太厲害了
    Terry Lee - 2008年不再用騰訊QQ says:
    很多東西我不是天生就知道的,比如log4j那些東西,都是看到一些有影響力的大網站介紹我才知道的
    Terry Lee - 2008年不再用騰訊QQ says:
    這就像天天看報紙新聞才能知道天下發生了什么事情一樣
    mimi says:
    嗯。明白你的意思。我會多看的。
    Terry Lee - 2008年不再用騰訊QQ says:
    恩,英文的東西多訓練一下自己,畢竟前沿的文章有人翻譯后就變成過時的東西了
    mimi says:
    恩。
    mimi says:
    現在看這些e文的,習慣多了。
    mimi says:
    很多主要都是 中文都不知道說個什么,e文就更不明白了
    mimi says:
    不過多看確實很好。謝謝你啊
    Terry Lee - 2008年不再用騰訊QQ says:
    恩,說明你知識面還是不夠寬,接觸的東西太少
    mimi says:
    可不是嘛,
    mimi says:
    這個是積累的
    Terry Lee - 2008年不再用騰訊QQ says:
    可以先去jakarta.apache.org看看apache項目下面的子項目都是干嘛的
    mimi says:

    mimi says:
    那你每天都幾點睡覺啊
    Terry Lee - 2008年不再用騰訊QQ says:
    不一定,最近幾天睡得比較晚
    mimi says:
    你現在回到家了吧
    Terry Lee - 2008年不再用騰訊QQ says:

    mimi says:
    Ex-Jakarta 這個是什么意思啊,擴展的
    mimi says:
    ant 也是jakarta下的
    Terry Lee - 2008年不再用騰訊QQ says:

    mimi says:
    算什么呢
    Terry Lee - 2008年不再用騰訊QQ says:
    jakarta是apache下面的子項目,主要是一些java的項目
    Terry Lee - 2008年不再用騰訊QQ says:
    apache不光包括java項目,還有c++的
    Terry Lee - 2008年不再用騰訊QQ says:
    axis就是分c++和java兩個版本
    Terry Lee - 2008年不再用騰訊QQ says:
    今后可能會有.net版本的
    mimi says:
    哦。
    Terry Lee - 2008年不再用騰訊QQ says:
    以前我們公司經常用axis
    mimi says:
    謝謝你啊。
    Terry Lee - 2008年不再用騰訊QQ says:
    客氣
    mimi says:
    那我先不打擾了。你忙吧。估計今天還要晚睡。注意身體哦。
    Terry Lee - 2008年不再用騰訊QQ says:

    posted @ 2008-01-04 00:07 mimi_van 閱讀(222) | 評論 (0)編輯 收藏

    最近,有兩位Google Maps API的初學者向我請教他們按照最簡單例子寫的程序為什么不能正常的運行。

    其中一位用GTalk跟我交流,我仔細了看了他的代碼,沒看出問題,把代碼保存在本地,打開Firefox的錯誤控制臺,用Firefox打開他的頁面。出錯的那一行被清晰的顯示出來,我再仔細端詳那句話,原來有兩個應該是英文逗號的地方,寫上了中文逗號。

    另一位,在我的論壇跟我交流他的Google Maps API中遇到的問題,我看他代碼的時候也沒有馬上發現問題。然而,同樣在用Firefox打開后,問題很明顯的找到了,原來是一個方法openInfoWindow被他寫成OpenInfoWindow了。

    在我幫助別人解決的程序調試問題中,這是非常常見的。人人都可能打出中文逗號,人人都可能把大小寫寫錯。但是在我幫助他們解決問題以后,他們總是感慨的說,謝謝我解決了這個問題,這個問題困擾了他們幾個小時,甚至是幾天。

    這其實并不是只有初學者才會遇到的問題,我還幫助過些有非常豐富經驗的工程師解決問題,有時候問題僅僅出自某個參數沒有傳遞進來,或者是拼接字符串的時候少些了一個冒號,或者是拼接地址的時候漏掉了http:。我甚至幫助一些人調試一些我根本不懂的語言的程序,因為多半出現的問題,都和語言特性無關,不是程序員寫錯了字符,就是寫錯了邏輯,或者是錯誤理解了一個函數。

    出問題是正常的,寫程序是一個復雜的邊思考邊打字的過程,筆誤和一時糊涂都是難以避免的。程序員一般把這種問題叫做低級問題,因為這類問題跟你的智商完全無關,任何人都可能犯。

    但是,問題在于,有時候即使是很優秀的程序員,也會被一個低級錯誤困擾,可能會幾天都解決不了。所以,關鍵在于,如何找到問題。

    遇到問題的時候:

    1,不要怨天怨地。出了問題,當然有可能是系統的bug,API的問題,但是那些幾率往往比你犯低級錯誤的幾率要低多了,先從自己身上找原因,是不是自己寫錯了。


    2,要掌握工具。最低限度你要會寫Log,最好是Log和調試器結合。好 的工具可以大大的提高效率。以前有人跟我說,Dll不能調試,我發現可以;有人說多線程不能調試,我發現可以;有人說COM不能調試,我發現可以;有人說 IE插件不能調試,我發現可以;有人說OE插件不能調試,我發現也可以。當然,你確實會遇到不能調試的時候,當年我們做東芝芯片的嵌入程序,一個組都沒有 一個仿真器和調試器,但是至少可以用Log嘛,無非是麻煩點。

    3,分析問題要有邏輯。遇到問題可以先把所有的可能性都列出來,然后一個一個分析,肯定能找到原因的。

    4,要學會隔離問題。問題涉及到的代碼越多,越難以理解,問題越難以解決。遇到這樣的情況,可以利用Log或者調試器,一行代碼一行代碼的給它們洗清嫌疑,這樣很快你就可以找到出問題的地方。如果代碼特別長,程序特別復雜,可以用二分法來做,效率很高。

    5,千萬不要懶惰,不要事事求別人。一次復雜的調試過程就像一部偵探劇,如果你有非常好的邏輯性,那這部劇的主角就是福爾摩斯,劇情一定非常精彩。我說這個是有巨大風險的,說真的我幫人調東西挺上癮的,很有意思。但是我還是要告訴大家,一次高難度的調試之后,你的滿足感絕對不亞于寫了一個偉大的程序。

    要想不遇到問題,寫代碼的時候:

    1,要對寫出來的代碼負責。我很佩服那些寫代碼寫100行都不執行一次的 高手,如果他們最后不被低級錯誤困擾的話我就更加的佩服了。我寫程序幾乎是寫一行兩行就要執行一次,每句話我都要確保執行效果跟我的預期一致。沒錯這樣寫的時候 可能慢一些,但是調試的時候很輕松,我可以很簡單的確定哪些代碼絕對沒有問題。所以我寫代碼整體速度比一般人高。很多人學習新東西的時候喜歡把例子抄一遍,運行一下,改改,再運行。我喜歡一句一句的抄例子,抄一句兩句執行一次,這樣可以把例子透徹的理解,而且很難會遇到出現了問題找不到原因的時候。


    2,函數體功能塊不要過長。我認為我的智商并不高,我很難接受一個程序的一個函數體或者一個功能塊超越3屏(當然邏輯真的有那么復雜除外,你會發現越是簡單的邏輯越是容易被人寫的冗長)。很多人對面向對象耳熟能詳,對封裝繼承看起來駕輕就熟。但是動不動就寫出來個函數體超長的程序。這就像寫本書從頭到尾不點句號一樣,會累死讀者的。自己看的時候,估計也會被累的喘不過來氣。這是我對基礎教育的微詞所在,他們連教會學生寫函數都沒教會,雖然表面上他們連面向對象這么高深的東西都教。


    3,縮進要對。這點很重要,雖然大部分語言不是像Python那樣用縮進來決定邏輯塊的位置,但是人看到縮進的時候,總是會以為這些縮進位置跟邏輯相關。尤其是在有大量的ifelse或者for循環等等的嵌套邏輯的時候,如果縮進錯了,可能會直接讓人把程序的邏輯讀錯。所以我拿到別人的代碼,第一件事情就是整理縮進。我見過一些比較優秀的頁面工程師,他們會在div結束的位置用注釋寫上這個div的id,這樣層級關系就一目了然了。


    4,不斷重構。隨著程序的不斷修改,有些部分會不斷的增長,原來看著清晰的架構可能因為問題的復雜而慢慢模糊,也可能被修正bug的權宜之計弄的面目全非。不信你找一個經過多次修改的程序看看,是不是滿目瘡痍,是不是都很難認出是你自己的作品了。這在多人參與的項目中更加嚴重,每個人有不同的代碼風格,經過多次雜交后,你肯定認不出你的代碼是騾子是馬,還是四不像了。隨著程序的慢慢成長,原來有些函數體會慢慢膨脹,需要拆分;有些原來簡單的功能塊四處都需要,應該被提煉成函數或者方法,等等。現在不重構,未來等到代碼復雜到無法控制的時候,重構的工作就會變得更加困難。我見過最強的案例是,一個幾千行的電子辭典配套聯機軟件,經過無數次的改版,變成了一個幾乎無法維護的主窗體的cpp有1萬8千行的怪物。最后經過復雜的重構,才變成一個出新版本只需要新增一個驅動程序的可以維護的幾千行的程序。

    郝培強:銀杏技術咨詢創始合伙人,網名Tinyfool,技術方向是全文檢索,搜索引擎優化,網站架構設計等。 銀杏技術咨詢的主要業務是幫助客戶的網站改進技術,提高網站性能和反應速度,解決門檻性技術問題,從而提高用戶滿意度。

    關于郝培強www.yinxingtech.com/team.htm

    關于銀杏技術咨詢www.yinxingtech.com/

    我就是初學者,我覺得講的很是有道理,轉到這里,大家共同看看。

    posted @ 2008-01-03 17:40 mimi_van 閱讀(409) | 評論 (1)編輯 收藏

    也為要做頁面驗證,需要用到js,發現了一個問題。

    在js里,有indexOf 這樣的方法,卻沒有像java一樣的startsWith 或者 endsWith 這樣的方法。

    研究了半天,在js里,通通可以用 indexOf()!=-1 來代替。要記得,這個indexOf()!=-1 和 indexOf()>0 得到的結果是不同的。

    比如下面的例子:(功能:希望輸入的值不包含空格)

    function checkSize(str){
        if(str.indexOf(' ')!=-1){
        alert("不能含有空格");
    }

    這個方法可以檢查到 str 的開頭,中間,結尾是不是空格

    可是如果選擇了 下面這個方法,卻只能檢測到 str 中間 和 結尾的空格,檢測不到str開頭的空格。

    function checkSize(str){
        if(str.indexOf(' ')>0){
        alert("不能含有空格");
    }

    很奇怪的。呵呵。。。。

    還不是很了解js,以后還會更新

    posted @ 2008-01-02 13:38 mimi_van 閱讀(13333) | 評論 (8)編輯 收藏

    主站蜘蛛池模板: 免费国产黄线在线观看| 亚洲成色999久久网站| 亚洲国产精品综合久久网络| 曰韩无码AV片免费播放不卡| 亚洲国产成人高清在线观看| 亚洲精品无码日韩国产不卡?V| 黄色免费网站网址| 可以免费观看的国产视频| 粉色视频在线观看www免费| 免费福利视频导航| 精品一区二区三区免费毛片爱| 搡女人免费免费视频观看| 特级毛片A级毛片100免费播放| 亚洲国产成人99精品激情在线| 亚洲福利在线观看| 久久亚洲AV成人出白浆无码国产| 久久久青草青青国产亚洲免观| 国产成人免费手机在线观看视频| 国拍在线精品视频免费观看| 久久午夜免费视频| 免费毛片在线播放| 亚洲国产成人久久综合野外| 国产男女性潮高清免费网站 | 中文字幕不卡亚洲| 亚洲人精品午夜射精日韩| 亚洲AV日韩AV天堂久久 | 又粗又大又黑又长的免费视频| 日本人的色道免费网站| 日韩免费视频观看| 亚洲一区二区三区影院 | mm1313亚洲国产精品美女| 亚洲熟女乱综合一区二区| 久久精品国产亚洲av高清漫画| 亚洲欧洲另类春色校园网站| 亚洲av无码成人精品区一本二本| 日韩精品免费一线在线观看| 日本免费一区二区久久人人澡| 美女被免费喷白浆视频| 亚洲一级特黄大片在线观看| 久久亚洲sm情趣捆绑调教 | 亚洲福利精品一区二区三区|