mimi_van

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

          2008年1月3日

          這道菜也是師從我婆婆

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

          現(xiàn)在就來介紹這道菜的步驟:

          1.準(zhǔn)備材料
                       原茄子一個(gè)
                       青豆若干
                       蔥白少許
                       醋
                       胡椒
                       鹽
                       醬油

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


          下次我在做的時(shí)候,拍張照片附上
                    


                      

           

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

          當(dāng)前位置:Java EE樂園文章中心Struts+Spring+Hibernate → 文章內(nèi)容

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

          減小字體 增大字體 作者:佚名  來源:不詳  發(fā)布時(shí)間:2007-12-31 19:58:00
          快速查找內(nèi)容

          我們用apache的fileupload組件上傳文件,
          如果不做任何出理,通常會(huì)出現(xiàn)文件名亂碼或普通text文本框值的亂碼,那么,我們?cè)撊绾翁幚砟?

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

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

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


          UTF-8的也是同理,祝在家好運(yùn).

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

          在網(wǎng)上找過很多例子,但都有很多問題。

          希望得到大家的幫助。

          謝謝

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

          在網(wǎng)上找過很多例子,但都有很多問題。

          希望得到大家的幫助。

          謝謝

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

          下面的方法也是我在google上搜到的,因?yàn)閲L試了其中一個(gè)方法,成功了,
          所以在這里記錄下,備用。

          比如以下兩個(gè)jsp頁面之間的傳遞:

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

          現(xiàn)象:中文亂碼,比如“??????”
           
          解決方法如下:

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

          方法二:---------- 嘗試過,有效。我的部分頁面就是用該方法
          1.         在b.jsp中把String name=request.getParameter("name");修改為
                      String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
          2.         這時(shí)再在頁面上顯示,則就是中文了。
          3.         但是我個(gè)人不喜歡這種方法,因?yàn)榫帉懫饋泶a非常繁瑣

          方法三:
          1.         有人說修改get/post的傳值方式,但是這是有前提的,
                      如果只是把get方式修改成post方式,頁面結(jié)果還是亂碼!
          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傳值時(shí)候才可以!
                      當(dāng)是post方式時(shí),照樣是亂碼!
                      *這時(shí)我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
                      *有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,
                      下面就是我推薦的方法五*

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

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

          今天閑逛CSDN ,看到了這樣一個(gè)有趣的標(biāo)題,趕緊進(jìn)去瞧了瞧。
          別人我不知道,因?yàn)槲沂寝D(zhuǎn)行業(yè)到j(luò)ava編程的?,F(xiàn)在正在做web開發(fā)的工作,
          所以對(duì)這篇文章的內(nèi)容深有同感,尤其是我轉(zhuǎn)載過來,注以紅色字的部分。
          希望跟我一樣境況的人看到這則新聞,也能加強(qiáng)一下對(duì)其他語言的學(xué)習(xí)。



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

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

          尤為注意的是,文中以“Java作為第一編程語言的諸多缺陷”為小標(biāo)題對(duì)Java進(jìn)行了批判:

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

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

          另外在文中,這兩位教授們認(rèn)為真正的程序員能夠使用任何語言(C,Java,Lisp,Ada)?!緟炔缓啊?/span>

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

          在網(wǎng)上找到了的解決辦法

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

                  ------點(diǎn)擊控制臺(tái)的另存為,
                  ------將它存儲(chǔ)為: c:\program File\microsoft SQL Srver\80\Tools\BINN\SQL Server Enterprise Manager.MSC
          即可 
                  關(guān)掉控制臺(tái)的時(shí)候,不保存控制臺(tái)的目錄結(jié)構(gòu)


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



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

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

          H

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

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

          B

          Binary ---- 二進(jìn)制的( octal 八進(jìn)制的,decimal 十進(jìn)制的,hexadecimal 十六進(jìn)制的,)
          Binary distribution ---二進(jìn)制版本(很多地方都會(huì)發(fā)現(xiàn)這個(gè)詞,比如你去tomcat官網(wǎng)下載tomcat,下載mysql,大概其的意思就是告訴你這是一個(gè)二進(jìn)制版本的)

          Bit  ------ (二進(jìn)制的)位

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

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

          O

          Octal  --------- <計(jì)算機(jī)>八進(jìn)制的
                                   八的,第八的

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

          A

          Axis  --------- n.軸,中軸,中樞,中心線
                                 the Axis 指二戰(zhàn)時(shí)德意日組成的軸心國
                                 <計(jì)算機(jī)> axis 是指一種 數(shù)據(jù)庫

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

          D

          debugger  --------- 計(jì)算機(jī)指 調(diào)試器
          我目前知道的有application debugger 和 application debugger 這兩個(gè)名詞,其他的還待補(bǔ)充

          Decimal ----- <計(jì)算機(jī)>十進(jìn)制的
                                十的,第十的

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

          U


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

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

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

          Terry Lee - 2008年不再用騰訊QQ says:
          其他語言都是編譯好免費(fèi)使用,但不一定是開源的
          Terry Lee - 2008年不再用騰訊QQ says:
          java的這個(gè)特點(diǎn)被眾多網(wǎng)友應(yīng)用在java開發(fā)的產(chǎn)品上,好多免費(fèi)的東西都是開源的
          mimi says:

          Terry Lee - 2008年不再用騰訊QQ says:
          其他的語言,比如asp,php開發(fā)的東西也可以叫開源,但是和java比還不一樣
          Terry Lee - 2008年不再用騰訊QQ says:
          java不是腳本語言,php本身就是腳本語言,不想開放代碼都不行
          mimi says:
          哦,因?yàn)閖ava可以隨便看源代碼,所以大家可以根據(jù)java的源代碼再開發(fā)一些基于java語言的 軟件,框架什么的
          mimi says:
          有這個(gè)意思吧
          Terry Lee - 2008年不再用騰訊QQ says:
          不是隨便看源代碼才有這些框架
          mimi says:
          腳本語言為什么不想開放都不行
          Terry Lee - 2008年不再用騰訊QQ says:
          是因?yàn)閖ava開源,很多技術(shù)專家都可以跟sun公司提出自己的改進(jìn)意見,使得java更好,和linux一樣
          Terry Lee - 2008年不再用騰訊QQ says:
          你用過asp或者php嗎
          mimi says:
          基本沒用過,但是看過一些,php是腳本語言,就是那些 用var聲明,function什么的。
          Terry Lee - 2008年不再用騰訊QQ says:
          我給你個(gè).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:
          做軟件行業(yè)應(yīng)該對(duì)這些東西都有個(gè)了解,這個(gè)就像生活的基本嘗試一樣
          mimi says:
          主要是沒想到 能用 記事本打開那些 php或asp文件
          mimi says:
          恩。
          mimi says:
          你說的對(duì)
          mimi says:
          謝謝
          Terry Lee - 2008年不再用騰訊QQ says:
          這個(gè)我想不明白了
          Terry Lee - 2008年不再用騰訊QQ says:
          用記事本打開什么文件,怎么會(huì)想到或者想不到呢
          Terry Lee - 2008年不再用騰訊QQ says:
          就算是二進(jìn)制文件都可以用記事本打開,只不過打開后看不懂是些什么東西
          mimi says:
          恩。

          Terry Lee - 2008年不再用騰訊QQ says:
          jsp,asp,php,js等等這些腳本語言因?yàn)樗鼈冏陨淼奶匦韵氩婚_源都不行
          mimi says:
          我還是不太習(xí)慣用這樣的思維考慮,我總是想,打開一種類型的文件,肯定要用相關(guān)的軟件,以前都是作為普通的使用者。比如打開數(shù)碼照片就用acd什么的。

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

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

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

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

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

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

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

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

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

          最近,有兩位Google Maps API的初學(xué)者向我請(qǐng)教他們按照最簡單例子寫的程序?yàn)槭裁床荒苷5倪\(yùn)行。

          其中一位用GTalk跟我交流,我仔細(xì)了看了他的代碼,沒看出問題,把代碼保存在本地,打開Firefox的錯(cuò)誤控制臺(tái),用Firefox打開他的頁面。出錯(cuò)的那一行被清晰的顯示出來,我再仔細(xì)端詳那句話,原來有兩個(gè)應(yīng)該是英文逗號(hào)的地方,寫上了中文逗號(hào)。

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

          在我?guī)椭鷦e人解決的程序調(diào)試問題中,這是非常常見的。人人都可能打出中文逗號(hào),人人都可能把大小寫寫錯(cuò)。但是在我?guī)椭麄兘鉀Q問題以后,他們總是感慨的說,謝謝我解決了這個(gè)問題,這個(gè)問題困擾了他們幾個(gè)小時(shí),甚至是幾天。

          這其實(shí)并不是只有初學(xué)者才會(huì)遇到的問題,我還幫助過些有非常豐富經(jīng)驗(yàn)的工程師解決問題,有時(shí)候問題僅僅出自某個(gè)參數(shù)沒有傳遞進(jìn)來,或者是拼接字符串的時(shí)候少些了一個(gè)冒號(hào),或者是拼接地址的時(shí)候漏掉了http:。我甚至幫助一些人調(diào)試一些我根本不懂的語言的程序,因?yàn)槎喟氤霈F(xiàn)的問題,都和語言特性無關(guān),不是程序員寫錯(cuò)了字符,就是寫錯(cuò)了邏輯,或者是錯(cuò)誤理解了一個(gè)函數(shù)。

          出問題是正常的,寫程序是一個(gè)復(fù)雜的邊思考邊打字的過程,筆誤和一時(shí)糊涂都是難以避免的。程序員一般把這種問題叫做低級(jí)問題,因?yàn)檫@類問題跟你的智商完全無關(guān),任何人都可能犯。

          但是,問題在于,有時(shí)候即使是很優(yōu)秀的程序員,也會(huì)被一個(gè)低級(jí)錯(cuò)誤困擾,可能會(huì)幾天都解決不了。所以,關(guān)鍵在于,如何找到問題。

          遇到問題的時(shí)候:

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


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

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

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

          5,千萬不要懶惰,不要事事求別人。一次復(fù)雜的調(diào)試過程就像一部偵探劇,如果你有非常好的邏輯性,那這部劇的主角就是福爾摩斯,劇情一定非常精彩。我說這個(gè)是有巨大風(fēng)險(xiǎn)的,說真的我?guī)腿苏{(diào)東西挺上癮的,很有意思。但是我還是要告訴大家,一次高難度的調(diào)試之后,你的滿足感絕對(duì)不亞于寫了一個(gè)偉大的程序。

          要想不遇到問題,寫代碼的時(shí)候:

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


          2,函數(shù)體功能塊不要過長。我認(rèn)為我的智商并不高,我很難接受一個(gè)程序的一個(gè)函數(shù)體或者一個(gè)功能塊超越3屏(當(dāng)然邏輯真的有那么復(fù)雜除外,你會(huì)發(fā)現(xiàn)越是簡單的邏輯越是容易被人寫的冗長)。很多人對(duì)面向?qū)ο蠖炷茉?,?duì)封裝繼承看起來駕輕就熟。但是動(dòng)不動(dòng)就寫出來個(gè)函數(shù)體超長的程序。這就像寫本書從頭到尾不點(diǎn)句號(hào)一樣,會(huì)累死讀者的。自己看的時(shí)候,估計(jì)也會(huì)被累的喘不過來氣。這是我對(duì)基礎(chǔ)教育的微詞所在,他們連教會(huì)學(xué)生寫函數(shù)都沒教會(huì),雖然表面上他們連面向?qū)ο筮@么高深的東西都教。


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


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

          郝培強(qiáng):銀杏技術(shù)咨詢創(chuàng)始合伙人,網(wǎng)名Tinyfool,技術(shù)方向是全文檢索,搜索引擎優(yōu)化,網(wǎng)站架構(gòu)設(shè)計(jì)等。 銀杏技術(shù)咨詢的主要業(yè)務(wù)是幫助客戶的網(wǎng)站改進(jìn)技術(shù),提高網(wǎng)站性能和反應(yīng)速度,解決門檻性技術(shù)問題,從而提高用戶滿意度。

          關(guān)于郝培強(qiáng)www.yinxingtech.com/team.htm

          關(guān)于銀杏技術(shù)咨詢www.yinxingtech.com/

          我就是初學(xué)者,我覺得講的很是有道理,轉(zhuǎn)到這里,大家共同看看。

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

          主站蜘蛛池模板: 若尔盖县| 西丰县| 收藏| 克拉玛依市| 教育| 桐城市| 定安县| 元朗区| 松原市| 德惠市| 利辛县| 长子县| 酒泉市| 碌曲县| 清新县| 涟源市| 青浦区| 陇西县| 衡阳市| 湖州市| 资阳市| 莆田市| 云南省| 咸丰县| 西吉县| 芜湖县| 临武县| 桃园市| 交城县| 德安县| 德江县| 观塘区| 育儿| 和林格尔县| 资源县| 江川县| 大关县| 宁南县| 田林县| 新干县| 兰西县|