• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-18  評(píng)論-11  文章-12  trackbacks-0
              2009年6月21日
                  2009年6月的一天,我在甲方辦公室加班調(diào)試程序,筆記本的屏幕只有12英寸,我得不停地在調(diào)試器和編輯器之間切換,觀察斷點(diǎn)的執(zhí)行情況,發(fā)現(xiàn)代碼中的問(wèn)題。在那一刻,我突然覺(jué)得所做的完全是低水平重復(fù)工作。
                    1. 對(duì)業(yè)務(wù)流程不熟悉,對(duì)自己的代碼不熟悉,編譯運(yùn)行后不能預(yù)測(cè)結(jié)果。
                    2. 做管理軟件,重復(fù)性工作太多。
                    3. 技術(shù)視野有限,不能從一個(gè)更廣的角度去看待問(wèn)題。
                    對(duì)于第一個(gè)問(wèn)題,首要要求在寫(xiě)完代碼后做review,把代碼詳細(xì)讀一遍想一遍,確認(rèn)無(wú)誤后才編譯。review要隨時(shí)地做,寫(xiě)完一個(gè)函數(shù)完成一個(gè)功能塊,都要檢查,想一想這段代碼在整個(gè)業(yè)務(wù)流程中的位置。對(duì)代碼做到心中有數(shù),而不至于不停的開(kāi)調(diào)試器(調(diào)試器是一個(gè)效率低下的緣由之一)。
                   重復(fù)性工作多,這個(gè)是管理軟件固有屬性,能否將重復(fù)性的工作抽離出來(lái)?在之前的項(xiàng)目中,做了很多這方面的嘗試。有一定成效。但另一方面,由于經(jīng)驗(yàn)不足,強(qiáng)扭地將一些個(gè)性化的東西抽離出來(lái),最后代碼組織結(jié)構(gòu)混亂。要達(dá)到重用,有很多條路可以達(dá)到,但由于技術(shù)的積累不夠,看到一條路就以為這條路是最好的,一往無(wú)前地闖過(guò)去。其實(shí)還有很多更好的選擇,只是因?yàn)榧夹g(shù)積累不夠,而工期緊張,沒(méi)得選了。
                   視野有限,所看到僅僅是所寫(xiě)的,而不能引發(fā)更加廣度的聯(lián)想。比如說(shuō)在asp.net中的master頁(yè)面,自定義控件,管理軟件三層架構(gòu)的優(yōu)勢(shì),mvc等等。沒(méi)有深刻地了解和實(shí)際的體驗(yàn),在項(xiàng)目中自然無(wú)法聯(lián)想到。所以只能做一些簡(jiǎn)單的重復(fù)工作。
            posted @ 2009-06-21 20:18 ronliu 閱讀(332) | 評(píng)論 (0)編輯 收藏
              2009年3月11日

                在日常生活中,經(jīng)常有大量的文本需要處理,正則表達(dá)式正是基于此提出的。本文將結(jié)合一些具體的實(shí)例來(lái)解釋它。雖然在不同的語(yǔ)言環(huán)境中,正則表達(dá)式有不同的語(yǔ)法規(guī)則,但其基本語(yǔ)義卻是一致的。http://en.wikipedia.org/wiki/Regular_expression。這將是一個(gè)系列教程。本節(jié)只是一個(gè)開(kāi)胃菜:)

                某一次同學(xué)很無(wú)聊,然后問(wèn)我電腦上有無(wú)小說(shuō)。這是顯然的,我是網(wǎng)絡(luò)小說(shuō)迷嘛!從起點(diǎn)down下無(wú)數(shù)小說(shuō)存在電腦上,名字都懶得改,都是以數(shù)字打頭,然后以“.txt”結(jié)尾,比如23432.txt之類(lèi)的。當(dāng)然,文件查找還是得用Everything,要不然電腦上的上百萬(wàn)個(gè)文件,手會(huì)抽筋的。

                (注:我以為Everything是史上最快的文件查找工具,強(qiáng)烈推薦?。?/p>

               先用"*.txt"嘗試一下,:(,給出一大堆文本文件呀。范圍太廣。還是得用正則表達(dá)式來(lái)。

              ^[0-9]*\.txt

                Yes!給出了我電腦上存儲(chǔ)的所有小說(shuō)了。

            image

                解釋一下:
                ^[0-9]表示文件名以0-9之間的數(shù)字開(kāi)頭,^是開(kāi)頭的意思($結(jié)尾)
                *表示它前面的字符(這里是數(shù)字)要重復(fù)若干次(>=0)
                \.匹配139869.txt中的那個(gè)小數(shù)點(diǎn)。因?yàn)檎齽t表達(dá)式中,‘.’被占用了,表示任意字符,所以要轉(zhuǎn)義一下
                txt,這就不說(shuō)了,緊接著小數(shù)點(diǎn)的是‘txt’三個(gè)字符。

                Everything只支持部分正則表達(dá)式, | () ? * + . [] [^] ^ $ {m,n} 不過(guò)已經(jīng)完全夠用了。
            http://xbeta.info/everything/faq.htm#How_do_I_use_regex

                考慮這樣一個(gè)問(wèn)題:項(xiàng)目組在驗(yàn)收的時(shí)候,被指出代碼的注釋量不夠,需要達(dá)到至少30%才行,也就是至少需要添加6500行注釋。此時(shí)老師提出,要將所有的函數(shù)加上注釋?zhuān)瘮?shù)的名稱(chēng)、功能、參數(shù)、返回值。這個(gè)時(shí)候,考慮能不能用正則表達(dá)式,提取源代碼中的函數(shù)信息,然后自動(dòng)生成注釋模板?比如:

            int foo(int x, int y);
            替換為:
            /**
            * @method foo
            * @para x
            * @para y
            * @return
            */
            int foo(int x, int y);

                注意到,這個(gè)函數(shù)參數(shù)的個(gè)數(shù)和類(lèi)型可以是變動(dòng)的,返回值限定符的個(gè)數(shù)和類(lèi)型也是變動(dòng)的,比如static類(lèi)型函數(shù),有兩個(gè)限定符,而構(gòu)造函數(shù),則沒(méi)有限定符,還有部分virtual類(lèi)型函數(shù)。

            posted @ 2009-03-11 20:01 ronliu 閱讀(646) | 評(píng)論 (1)編輯 收藏
              2009年3月8日

                    本例學(xué)習(xí)QDialog。預(yù)期目的:1. 組織多個(gè)窗體。2. 學(xué)習(xí)Dialog的相關(guān)屬性。3. 學(xué)習(xí)一些widget。

                    1. 本例中,定義了3個(gè)不同的PageWidget,都是從QWidget中派生。用戶(hù)在左側(cè)list更換后,切換到不同的配置頁(yè)。

                    2. QStackedWidget提供一組widget,但一次只能有一個(gè)顯示。將這個(gè)widget添加到layout中。

                    3. 在layout設(shè)置中,一般為MainWindow設(shè)置一個(gè)layout,然后向這個(gè)layout中添加不同的widget,layout。

                    4. 一個(gè)窗體是Window或者Dialog,向這個(gè)窗體中添加其他的Widget,這些Widget可以使系統(tǒng)提供的,也可以是用戶(hù)自己定義的。

                    5. 本例中使用兩次QListWidget。一次為圖文,一次為文字。setViewMode(),設(shè)置ListWidget為圖標(biāo)模式。通過(guò)setIcon(),設(shè)置Item的圖標(biāo)。configButton->setIcon(QIcon(":/images/config.png"));

                    6. 定義QListWidgetItem的父類(lèi)為QListWidget,設(shè)置QListWidget的項(xiàng)。或者使用addWidget()之類(lèi)的方法。

                    7. 左側(cè)select切換時(shí),if(!current)  current = previous;防止current為0的意外情況。

                    8. 自定義了一個(gè)slot,用來(lái)處理contentList被選中項(xiàng)切換時(shí),相應(yīng)的處理方法。也就是設(shè)置stackedWidget的被選中項(xiàng)。通過(guò)contentlist的row()確定index,然后設(shè)置第index項(xiàng)為當(dāng)前item。

            posted @ 2009-03-08 22:20 ronliu 閱讀(776) | 評(píng)論 (0)編輯 收藏
              2009年2月26日

            2008.2.27 by RonLiu

            方法一:使用tr()函數(shù)

            QT中,用QString存儲(chǔ)所有可見(jiàn)得文本/字符串,使用tr()將各種字符編碼的文本轉(zhuǎn)化為QString,然后既可以將他們?cè)O(shè)置為控件的顯示文本。

            在Widget的構(gòu)造函數(shù)中加入:

            QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));

            QFont font1("Times", 12, QFont::Normal, FALSE);

            this->setFont(font1);

            這樣在該窗體的其他位置,可以使用tr()設(shè)置控件的內(nèi)容,他們均可以顯示為中文了。

            setWindowTitle(tr("消息嗅探器"));

            注意:這種方式設(shè)置的中文顯示對(duì)于整個(gè)控件,以及它們的子控件都生效。如果在子控件中另外設(shè)置了setFont(),那么全局的字體方案將會(huì)失效。

            方法二:使用translate()轉(zhuǎn)換

            先將需要顯示的中文轉(zhuǎn)化為gbk編碼的unicode,然后將unicode轉(zhuǎn)化為QByteArray,在將只轉(zhuǎn)化為char指針,并傳遞給translate()函數(shù)。

            注意:這種方法顯示中文時(shí),會(huì)出現(xiàn)失效的情況。譬如在菜單欄中可以顯示中文,但是在Label或者Button中卻無(wú)法顯示中文。

            另外,這種方法僅僅建議只有少數(shù)按鈕顯示中文時(shí)選用,否則,代碼寫(xiě)得也麻煩呀。

            如果使用QDesigner生成的ui文件,后創(chuàng)建的界面類(lèi),一般都有一個(gè)retranslateUI,就是做這個(gè)用的。

            const char * stringToUnicode(const char *str)

            {

            static QTextCodec *codec = QTextCodec::codecForName("gbk");

            QByteArray qba = (codec->toUnicode(str)).toLocal8Bit();

            const char * c_str = qba.data();

            return c_str;

            }

            menuFile->setTitle(QApplication::translate("MainWindow", stringToUnicode("文件"), 0, QApplication::CodecForTr));

            QTextCodeC用于在不同的編碼方案之間進(jìn)行轉(zhuǎn)換。

            方法三:使用Linguist

            這是QT自帶的用于軟件本地化的軟件的工具。沒(méi)仔細(xì)研究過(guò)。

            這種方式可以用于外文軟件的本地化,那么相比于前兩者方式,處于更高的層次。

            延生一:編寫(xiě)多語(yǔ)言版本的QT程序

            (本部分內(nèi)容參考QT手冊(cè)Internationalization一節(jié))

            在方法一和方法二種,仍然是一個(gè)程序?qū)?yīng)一個(gè)語(yǔ)言。如果希望QT程序針對(duì)不同的語(yǔ)言,有不同的版本,該如何操作?

            準(zhǔn)備一個(gè).pro文件,如:

            HEADERS         = funnydialog.h \

                               wackywidget.h

            SOURCES         = funnydialog.cpp \

                               main.cpp \

                               wackywidget.cpp

            FORMS           = fancybox.ui

            TRANSLATIONS    = superapp_dk.ts \

                               superapp_fi.ts \

                               superapp_no.ts \

                               superapp_se.ts

            1. 使用lupdate,從QT程序中抽取可轉(zhuǎn)換的文本,生成一個(gè)ts文件。

            2. 使用Linguist工具,在原始文本間轉(zhuǎn)換。ts文件以xml格式保存,可以手動(dòng)修改。

            3. 運(yùn)行l(wèi)release,生成輕量級(jí)的qm格式的消息文件。這種文件可以在程序中使用。

            4. In your application, you must QTranslator::load()  the translation files appropriate for the user's language, and install them using QCoreApplication::installTranslator().

            posted @ 2009-02-26 20:09 ronliu 閱讀(839) | 評(píng)論 (0)編輯 收藏
              2009年2月20日

            1. 為什么使用Eclipse進(jìn)行C++的開(kāi)發(fā)。

                  因?yàn)镋clipse的IDE支持多種語(yǔ)言,如Java、Python、C++,也支持不同的操作系統(tǒng)。這樣不管換到什么環(huán)境,或者換一種語(yǔ)言,熟悉的環(huán)境不會(huì)變化。

            2. 安裝和設(shè)置Eclipse/CDT的環(huán)境。

                  a. mingw的安裝與配置。http://www.shnenglu.com/romangol/archive/2008/04/19/47595.html。(PATH,C_INCLUDEPATH,CPLUS_INCLUDE_PATH, LIBRARY_PATH)

                  b. Java虛擬機(jī)的安裝與設(shè)置。(PATH)

                  c. Eclipse/CDT的下載與安裝。http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/index.html

            3. toolchain設(shè)置

                  新建一個(gè)自帶makefile的helloworld程序,build可以通過(guò)。但點(diǎn)擊運(yùn)行時(shí),提示找不到可執(zhí)行文件。原因在于,新建項(xiàng)目時(shí),沒(méi)有選擇合適的toolchain。如果是下載后解壓后得到的CDT,那么toolchain已經(jīng)內(nèi)置在其中了。但如果是update的方式獲取,則需要手動(dòng)下載。

                 我安裝的是mingw的編譯環(huán)境,但選擇cygwin,卻仍然可以生成可執(zhí)行的程序。奇怪的事情。獲取是因?yàn)?,設(shè)置configuration時(shí),通過(guò)檢查環(huán)境變量來(lái)獲取實(shí)際調(diào)用的編譯器?

                  image   image
                  image 

            4. 何為toolchain?

                  A toolchain is a set of tools (such as a compiler, linker, and assembler) intended to build your project. Additional tools, such as a debugger, can be associated with a toolchain. There can be several toolchains available, depending on the compilers installed on your system.

            5. 有哪些toolchain可供選擇?

                 Cygwin,通過(guò)支持GNU libc運(yùn)行庫(kù),它完全實(shí)現(xiàn)gun toolchain,使用dll向上提供Windows的兼容層。

                 mingw。windows平臺(tái)下gnu toolchain的入口,它直接使用windows c運(yùn)行庫(kù),不需要兼容層,但可移植性要差一些。

            6. Eclipse如何使用這些toolchain? TODO

                 The CDT is designed to provide an extensible architecture, that will provide support for integration of tools provided by Independent Software Vendors。

             

            附:

                   Eclipse 平臺(tái)只是用于開(kāi)發(fā)者工具的一個(gè)框架,它不直接支持 C/C++;它使用外部插件來(lái)提供支持。CDT 是完全用 Java 實(shí)現(xiàn)的開(kāi)放源碼項(xiàng)目(根據(jù) Common Public License 特許的),它作為 Eclipse SDK 平臺(tái)的一組插件。這些插件將 C/C++ 透視圖添加到 Eclipse 工作臺(tái)(Workbench)中,現(xiàn)在后者可以用許多視圖和向?qū)б约案呒?jí)編輯和調(diào)試支持來(lái)支持 C/C++ 開(kāi)發(fā)。

            下面是 CDT 插件/組件的完整列表:

            • 主 CDT 插件(Primary CDT plug-in)是“框架”CDT 插件。
            • CDT 功能 Eclipse(CDT Feature Eclipse)是 CDT 功能組件(Feature Component)。
            • CDT 核心(CDT Core)提供了核心模型(Core Model)、CDOM 和核心組件(Core Component)。
            • CDT UI是核心 UI、視圖、編輯器和向?qū)А?
            • CDT 啟動(dòng)(CDT Launch)為諸如編譯器和調(diào)試器之類(lèi)的外部工具提供了啟動(dòng)機(jī)制。
            • CDT 調(diào)試核心(CDT Debug Core)提供了調(diào)試功能。
            • CDT 調(diào)試 UI(CDT Debug UI)為 CDT 調(diào)試編輯器、視圖和向?qū)峁┝擞脩?hù)界面。
            • CDT 調(diào)試 MI(CDT Debug MI)是用于與 MI 兼容的調(diào)試器的應(yīng)用程序連接器。
            posted @ 2009-02-20 14:15 ronliu 閱讀(7633) | 評(píng)論 (0)編輯 收藏
              2009年2月16日

                  對(duì)于QT的學(xué)習(xí),一直處于半懂不懂的狀態(tài),看文檔也只處于“貌似”的境界,導(dǎo)致真正碰到問(wèn)題時(shí)就個(gè)屁掉。這次閱讀basiclayout的demo說(shuō)明,甚感慚愧,之前學(xué)得太膚淺。

                  1. 設(shè)計(jì)一個(gè)窗體,安排好它的函數(shù)和屬性。

                  2. 基本的layout包括四類(lèi),QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout。前兩個(gè)將widget水平或豎直防止,grid將widget以格子的形式放置,formlayout將widget以row的形式放置。

                  3. layout的使用方法是,先定一個(gè)layout,再向這個(gè)layout中添加widget,然后使用父類(lèi)中的setlayout(),設(shè)置這個(gè)widget的layout。

                  4. layout有一個(gè)setMenubar,可以使得Dialog也可以設(shè)置菜單欄。

                  5. 在定義類(lèi)時(shí),定義一個(gè)enum,之后就可以直接使用這個(gè)enum中的元素。

                  6. QT賦參數(shù)的方法為tr("Button %1").arg(i + 1)。

                  7. QGridLayout有setColumnStretch(int, int)方法,用于設(shè)置grid中格子的伸長(zhǎng)因子,也就是能夠占用多大的空間。

                  8. QDialogButtonBox指用于確定/退出的button組。它是這兩類(lèi)常用button的一個(gè)box組合。

                  9. 本例中涉及到的其它widget包括:

                         a.  QTextEdit,文本編輯框,支持plain text和html text

                         b.  QPushButton,按鈕

                         c.  QGroupBox,將widget以box的形式組織在一起

                         d. QLineEdit,行編輯框

                         e. QComboBox,下拉框

                         f. QSpinBox,spin框,提供數(shù)值選擇。

            posted @ 2009-02-16 22:28 ronliu 閱讀(9625) | 評(píng)論 (3)編輯 收藏
              2009年2月11日

                  cppblog提供了metablog接口,供用戶(hù)使用一些桌面工具操作blog。MetaBlogAPI是一個(gè)XML-RPC Service。它可以讓用戶(hù)遠(yuǎn)程調(diào)用Blog程序提供的接口來(lái)完成一些功能,比如發(fā)布新的文章,查看最新文章的列表等。http://dudu.cnblogs.com/articles/411388.html

                  先看cppblog的一個(gè)接口:

            metaWeblog.getCategories()的參數(shù)

            image

            返回結(jié)構(gòu)體

            image

                  下面介紹使用Python來(lái)操作metablog接口。既然metablog是一個(gè)xml-rpc接口,那么就使用Python的xmlrpc庫(kù)吧,好消息是這個(gè)庫(kù)Python已經(jīng)提供了,就是xmlrpclib。

                  代碼如下:

            import xmlrpclib

            user = 'ronliu'

            pass = '123'

            url = 'http://www.shnenglu.com/ronliu/services/metaweblog.aspx'

            server = xmlrpclib.Server(url)

            cata = server.metaWeblog.getCategories('', user, pass)    #典型的rpc調(diào)用

            for e in cata:

                 print e['categoryid'], e['title']

            操作結(jié)果:

            image 

             

                  使用xmlrpclib的Server()方法,可以創(chuàng)建一個(gè)rpc服務(wù)器的代理,然后通過(guò)這個(gè)代理訪(fǎng)問(wèn)遠(yuǎn)程的方法??梢允褂肞ython提供的調(diào)試功能查看rpc的執(zhí)行過(guò)程:

            import httplib

            httplib.HTTPConnection.debuglevel = 1

            image

            image

            posted @ 2009-02-11 22:36 ronliu 閱讀(474) | 評(píng)論 (0)編輯 收藏

                   使用這些api,即使一個(gè)門(mén)外漢也可以為自己的網(wǎng)站添加地圖。

                  下面的代碼,將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的地圖網(wǎng)頁(yè)。如:

            <html xmlns=" >
            <head runat="server">
                <title>地圖測(cè)試</title>
                <script language="javascript" src="
            </head>

            <body>
                <form id="form1" runat="server">
                    <div id="myMap" style="position:relative; width:400px; height:300px;"></div>
                    <script language="javascript">
                        var maps = new LTMaps( "myMap" );   //LTMaps類(lèi)有一個(gè)參數(shù),是該地圖所在div的name
                        maps.cityNameAndZoom( "beijing" , 5 );
                        var c = new LTSmallMapControl();   //簡(jiǎn)單的放大縮小條
                        maps.addControl(c);
                        var point = new LTPoint( 11640969 , 3989945 );//北京
                        var marker = new LTMarker( point );  //一個(gè)標(biāo)記
                        maps.addOverLay( marker );  //將標(biāo)記覆蓋到地圖涂層上
                        var text = new LTMapText( marker );
                        text.setLabel( "我的位置" );
                        maps.addOverLay( text );
                    </script>
                </form>
            </body>
            </html>

            詳細(xì)的API說(shuō)明在http://api.51ditu.com/docs/index.html可以查詢(xún)。

            51API架構(gòu)

            posted @ 2009-02-11 20:25 ronliu 閱讀(373) | 評(píng)論 (0)編輯 收藏
              2009年1月6日
            現(xiàn)象:服務(wù)器端意外退出后馬上重啟,提示端口綁定錯(cuò)誤,端口正在使用中。稍等一會(huì)后再次重啟,可以正常運(yùn)行。
            可以設(shè)置socket的選項(xiàng)為SO_REUSEADDR,使其允許完全重復(fù)的綁定。
                int rc = 1;
                setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&rc, sizeof(rc));
                bind(fd, (struct sockaddr *) &addr, sizeof(addr));

            setsockopt的函數(shù)原型為:
                   int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
                   int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
                   其中optval為選項(xiàng)的開(kāi)關(guān)標(biāo)志符,例如我使用rc=1開(kāi)啟SO_REUSEADDR。

            fcntl 文件控制,file control,譬如控制socket為非阻塞IO,信號(hào)驅(qū)動(dòng)IO等。類(lèi)似的有ioctl
            posted @ 2009-01-06 11:52 ronliu 閱讀(1418) | 評(píng)論 (0)編輯 收藏
              2009年1月4日
                 (一)感冒了,渾身發(fā)抖,頭疼,胸口疼,胃疼。不注意保暖,以及嚴(yán)重的不規(guī)律飲食帶來(lái)的。現(xiàn)在只想早些跑回去鉆被窩加衣服。網(wǎng)絡(luò)小說(shuō)是不能看了,不規(guī)律的飲食很大程度與此有關(guān),且影響學(xué)習(xí)狀態(tài)。可以多讀一些歷史,政治,經(jīng)濟(jì)方面的書(shū),比如世界通史之類(lèi)。關(guān)注養(yǎng)生,病殃殃的狀況實(shí)在難受,學(xué)會(huì)調(diào)養(yǎng)自己的身體。有條件的話(huà),可以多鍛煉一些。
                 (二)找工作期間,最遺憾的是,沒(méi)有拿得出手的技能,以及拿得出手的成果。在找完工作之后,就開(kāi)始急于求成,一心想作一個(gè)東西出來(lái),但經(jīng)常是想了卻不做,做時(shí)半途而廢,然后又開(kāi)始新的想法。很浮躁,急于求成。在今后的三個(gè)月,可以多作技能方面的鍛煉。比如編程語(yǔ)言,能否作到精通?需要鍛煉的技能包括:
                  甲。語(yǔ)言是表達(dá)思想的工具,語(yǔ)言說(shuō)不好,不精通,再好的思想也表達(dá)不出來(lái)。反過(guò)來(lái),語(yǔ)言學(xué)得好了,會(huì)促進(jìn)思維的成長(zhǎng)。然后,掌握一門(mén)專(zhuān)精的語(yǔ)言,也是將來(lái)安身立命,向更深層次的架構(gòu)師成長(zhǎng)的根本。但就目前,有什么語(yǔ)言是真正拿的出手的?C++是最熟悉的,卻仍然談不上精通。在今后的三個(gè)月,對(duì)C++的深入鍛煉,是重點(diǎn)。
                  乙。在平常的編程中,算法用的似乎并不多,但對(duì)培養(yǎng)計(jì)算機(jī)的思維,培養(yǎng)設(shè)計(jì)能力,很有好處。更高層的,如設(shè)計(jì)模式之類(lèi)??梢詫⒄Z(yǔ)言的學(xué)習(xí)和算法,設(shè)計(jì)模式的學(xué)習(xí)結(jié)合起來(lái)。
                 (三)新的一年,增大一歲。不知不覺(jué),二十好幾?;仡^看時(shí),什么也沒(méi)有做成。感情上,學(xué)業(yè)上,以及和家人的關(guān)系,都不如意。這是浮躁的根本原因。但這些問(wèn)題,卻不是一蹴而就的,需要時(shí)間的積累,需要精力的積累,不是隨想就有的。就像Scott信中的那位技術(shù)總監(jiān),沒(méi)有5年甚至5年以上的技術(shù)沉淀,能夠?qū)⒓夹g(shù)玩到如指臂使?淡然,做好自己該做的。清風(fēng)撫山崗,明月照大江。高三畢業(yè)那年,能夠坐在河邊,對(duì)廣場(chǎng)上人來(lái)人往充耳不聞,和尚念經(jīng)般默誦這兩句話(huà),心中淡然。年齡增大,考慮增多,卻越來(lái)越浮躁了。在浮躁和淡然之間,需要有一個(gè)平衡。
                 (四)做好接下來(lái)的三個(gè)月!
            posted @ 2009-01-04 11:13 ronliu 閱讀(338) | 評(píng)論 (0)編輯 收藏
            僅列出標(biāo)題  下一頁(yè)
            欧美亚洲另类久久综合| 99精品国产99久久久久久97| 国产综合久久久久| 国产L精品国产亚洲区久久| 久久av高潮av无码av喷吹| 性高朝久久久久久久久久| 无码国产69精品久久久久网站| 性高湖久久久久久久久| 久久最新精品国产| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 99久久人妻无码精品系列| 狠狠久久综合| 无码人妻精品一区二区三区久久 | 97精品伊人久久久大香线蕉 | 久久福利片| 久久亚洲AV成人无码电影| 久久精品无码一区二区三区日韩 | 91精品国产91久久综合| 久久天天躁狠狠躁夜夜av浪潮| 亚洲AV无码久久精品色欲| 久久久久久极精品久久久| 国产成人精品久久一区二区三区| 青青青青久久精品国产h久久精品五福影院1421| 国产精品乱码久久久久久软件| 日本精品久久久久中文字幕| 色综合久久中文字幕无码| 日韩AV毛片精品久久久| 97超级碰碰碰碰久久久久| AV狠狠色丁香婷婷综合久久| 无码国产69精品久久久久网站| 激情久久久久久久久久| 国产精品久久久久久影院| 久久午夜伦鲁片免费无码| 亚洲精品无码久久久久| 久久无码AV中文出轨人妻| 日韩欧美亚洲综合久久影院Ds| 久久99国产精品99久久| 久久国产精品-国产精品| 久久99精品国产99久久6男男| 国产亚洲综合久久系列| 久久r热这里有精品视频|