軟件工程實(shí)踐者

          導(dǎo)航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          隨筆分類(lèi)

          文章分類(lèi)

          隨筆檔案

          統(tǒng)計(jì)

          留言簿

          友情鏈結(jié)

          閱讀排行榜

          評(píng)論排行榜

          #

          第十四屆國(guó)際軟件產(chǎn)品線會(huì)議

          9.13至9.17日,第十四屆國(guó)際軟件產(chǎn)品線會(huì)議(SPLC 2010)在韓國(guó)濟(jì)州島的華美達(dá)酒店舉行。這是SPLC第二次來(lái)到亞洲(上次是2007年在日本。作為軟件工程知名會(huì)議,SPLC輪流在美洲、亞洲和歐洲舉行,是系統(tǒng)化軟件復(fù)用的專(zhuān)業(yè)會(huì)議)。

          作為與工業(yè)界聯(lián)系比較緊密、體現(xiàn)軟件工業(yè)化的主流會(huì)議,SPLC 2010并未得到國(guó)內(nèi)的關(guān)注,這在一定程度上體現(xiàn)了國(guó)內(nèi)工業(yè)界的相對(duì)落后的局面(既沒(méi)有產(chǎn)品線的實(shí)踐,又缺乏對(duì)先進(jìn)軟件生產(chǎn)方式的跟蹤與研究)。

          本次的參會(huì)者來(lái)自國(guó)內(nèi)的只有 5 人(包括我和導(dǎo)師,分別來(lái)自北京大學(xué)、上海交通大學(xué)、東北大學(xué)和公安部第一研究所)當(dāng)然也有一些海外華人(老師和在讀的博士(后))。會(huì)議論文集收錄了來(lái)自國(guó)內(nèi)的一篇短文、一篇Poster(我們的),以及一篇工業(yè)化論文。對(duì)我來(lái)講,最大的收獲在于開(kāi)闊了視野、了解了一些當(dāng)前最新進(jìn)展和認(rèn)識(shí)結(jié)交了一些新朋友,當(dāng)然,這也是我第一次出國(guó),雖然離家很近。

          值得一提的是,來(lái)自公安部第一研究所的李東老師參加了Software Product Line Fame of Hall競(jìng)評(píng)演講(本次會(huì)議唯一的一個(gè)),至于能否加入Fame of Hall要等下次會(huì)議(SPLC 2011,慕尼黑)才能知曉,不過(guò)李老師所展示的航空安檢系統(tǒng)產(chǎn)品線已經(jīng)得到了與會(huì)絕大多數(shù)人員(好像沒(méi)有發(fā)現(xiàn)幾個(gè)不贊成的,呵呵)的認(rèn)可,很可能成為國(guó)內(nèi)第一家啊,祝福。

          posted @ 2010-10-30 17:22 軟件工程實(shí)踐者 閱讀(1513) | 評(píng)論 (3)編輯 收藏

          《計(jì)算機(jī)工程》文章投稿發(fā)表有感

          去年10月份向《計(jì)算機(jī)工程》投了一篇稿件,審稿加修改共耗時(shí)2個(gè)月,然后被錄用,說(shuō)安排在今年11月左右發(fā)表,結(jié)果今年10月份就發(fā)表了,本來(lái)是件好事,但我注意到的一個(gè)重要問(wèn)題是文章中刊出的“收稿時(shí)間”竟然是今年的5月份,我很驚訝,于是給編輯部留言問(wèn)是怎么回事,但始終沒(méi)有人答復(fù)。

          如此大的時(shí)間差別(去年10月份到今年5月份那可是7個(gè)月之久啊),難道是編輯“手誤”,手誤也應(yīng)該做個(gè)解釋啊,怎么就是不回留言呢。之前我也注意到一些發(fā)表的論文(10月份之前發(fā)表的)中刊出的“收稿時(shí)間”大概也在今年的2,3月份,當(dāng)時(shí)我還想怎么這么多在我之后收稿的卻在我之前發(fā)表呢,看來(lái)這也許是一種故意行為,“潛規(guī)則”!!!

          難道出版社就為了顯示自己發(fā)表周期短欺騙廣大科研工作者嗎?先不說(shuō)這本身就是學(xué)術(shù)不端,重要的是它直接給投稿者帶來(lái)了巨大的風(fēng)險(xiǎn)——剽竊。試想一篇思想類(lèi)似的文章如果是在去年10分之后投稿如果發(fā)表了(當(dāng)然前提是其它期刊刊出的收稿時(shí)間是真實(shí)的),那會(huì)是什么情況??不用說(shuō)別人肯定認(rèn)為是我剽竊,所以收稿時(shí)間應(yīng)該是絕對(duì)真實(shí)的,我想這也是這個(gè)信息在文章中出現(xiàn)的主要價(jià)值!!!!。另外的小問(wèn)題就是給投稿者的工作量/績(jī)效統(tǒng)計(jì)帶來(lái)不便,明明是去年的工作量怎么體現(xiàn)的是今年的時(shí)間,萬(wàn)一領(lǐng)導(dǎo)復(fù)查,怎么說(shuō)清楚呢。

          結(jié)論,再也不向此刊投稿了。

          posted @ 2010-10-25 14:58 軟件工程實(shí)踐者 閱讀(2319) | 評(píng)論 (3)編輯 收藏

          斯坦福大學(xué)研究顯示:重度采取多任務(wù)工作方式的人,其績(jī)效會(huì)受到負(fù)面影響

          轉(zhuǎn)自InfoQ:http://www.infoq.com/cn/news/2009/09/study-multitasking-performance

          ----------------------------------------------------------------------------------------------------------

          斯坦福大學(xué)上個(gè)月在Proceedings of the National Academy of Sciences學(xué)報(bào)上發(fā)布了一個(gè)研究結(jié)果:“媒體行業(yè)中多工人員(multitasker)的認(rèn)知控制”,強(qiáng)調(diào)指出一個(gè)顯而易見(jiàn)的事實(shí):從效率的角度考慮同時(shí)從事多任務(wù),絕對(duì)會(huì)影響工作效率。該研究審視了IT領(lǐng)域中一個(gè)廣為人知、卻常常為人忽略的現(xiàn)象:不斷出現(xiàn)、正在發(fā)生的多任務(wù)工作方式。敏捷實(shí)施者們這樣寫(xiě):這下可算有理由讓團(tuán)隊(duì)只開(kāi)發(fā)一個(gè)產(chǎn)品了,而且只能有一個(gè)產(chǎn)品負(fù)責(zé)人——將時(shí)間花在多個(gè)任務(wù)之上絕對(duì)是效率低下的工作方式。

          Wired雜志指出:雖然其他研究重點(diǎn)關(guān)注多任務(wù)工作方式的眼前效果(比如:辦公室里的工作人員經(jīng)常檢查郵件,這種情況下的工作效率),該研究提出了一個(gè)不同尋常的問(wèn)題:“要是人們總在使用多任務(wù)工作方式會(huì)怎么樣?”Stanford的研究者Clifford Nass、Anthony Wagner和Eyal Ophir調(diào)查了262名學(xué)生的媒體消費(fèi)習(xí)慣。19名使用多任務(wù)方式最多的學(xué)生和22名多任務(wù)方式最少的學(xué)生此后參加了兩個(gè)電腦測(cè)試,集中精力完成手上的測(cè)試。

          他們使用了一些標(biāo)準(zhǔn)的心理測(cè)試指標(biāo),研究結(jié)果顯示出:經(jīng)常在多個(gè)信息流之間轉(zhuǎn)換的學(xué)生,他們會(huì)在e-mail、網(wǎng)頁(yè)、視頻、聊天和電話之間來(lái)回切換,他們?nèi)〉玫倪M(jìn)展遠(yuǎn)低于不怎么采取多任務(wù)方式的學(xué)生。更令研究人員驚訝的是:在任務(wù)切換能力的測(cè)試上,“重度媒體多任務(wù)人士”表現(xiàn)更差,“似乎他們過(guò)濾不相干任務(wù)的干擾的能力更差。”

          該研究再次強(qiáng)調(diào)了認(rèn)知科學(xué)家反復(fù)提到的事情:同時(shí)處理多個(gè)信息流的輸入被認(rèn)為是人類(lèi)認(rèn)知能力的問(wèn)題。

          對(duì)于造成差異的原因——被定位使用多任務(wù)方式的人是不是先存在心智上的不健全,還是說(shuō)多任務(wù)方式造成了這種情況——“這是一個(gè)需要投入上百萬(wàn)美金才能回答的問(wèn)題,可是我們沒(méi)有一百萬(wàn)美金去取得答案。”Ness這么說(shuō)。

          Wagner接下來(lái)打算用腦部造影方法來(lái)研究多任務(wù)方式的神經(jīng)學(xué)解釋?zhuān)鳱ess將會(huì)研究?jī)和巳涸诙嗳蝿?wù)習(xí)慣上的發(fā)展。

          posted @ 2010-01-03 22:54 軟件工程實(shí)踐者 閱讀(339) | 評(píng)論 (0)編輯 收藏

          IT Productivity = ??

          本文是對(duì):
          Linda Wilbanks. IT Productivity = ??. IT Pro, November/December 2009, pp. 64, 63
          的總結(jié)。


          文章探討了什么事生產(chǎn)效率(或工作效率,但并沒(méi)有深入,只是個(gè)引子),以及如何提高(員工)的工作效率。

           

          文章開(kāi)頭指出,“productivity”(生產(chǎn)力,此處譯為工作效率)通常被定義為生產(chǎn)效能(efficiency)、度量(metrics),以及在生產(chǎn)過(guò)程中單位輸入得到的產(chǎn)出的衡量。但對(duì)IT人員來(lái)說(shuō),什么是生產(chǎn)效能呢?作者給出了一個(gè)非正式的定義“一個(gè)有效率的人是指那些能夠在指定的時(shí)間內(nèi)以高質(zhì)量的方式完成指定工作的人。”這引出下一個(gè)問(wèn)題:我們?nèi)绾巫隹梢允箚T工更有效率?

          作者援引Mr. Elgan在2009年4月5號(hào)的Computerworld那期中的一篇文章“Why Goofing Off at Work Boots Productivity"中的話說(shuō),

          那些偷偷在Fackbook和Twitter上花少量時(shí)間的辦公室“懶鬼”(slacker)比那些全部時(shí)間都用來(lái)做工作的人能做更多的工作。墨爾本大學(xué)的研究人員在一項(xiàng)新的研究中證實(shí)了這種真實(shí)性。他們的研究發(fā)現(xiàn),一般來(lái)說(shuō),那些為了個(gè)人原因在工作時(shí)間內(nèi)使用Internet的人比不用的人效率高9%

          作者指出,盡管Mr. Elgan沒(méi)有指出這些研究者是如何衡量生產(chǎn)率的,但他給出了為什么那些在Internet上花費(fèi)時(shí)間的人更具有效率的一些原因:

          • 潛意識(shí)仍然關(guān)注于工作中的問(wèn)題,解決方案通常會(huì)在隨后出現(xiàn);
          • “游手好閑”(Goof off)的時(shí)間是一段清理個(gè)人思想、消除個(gè)人顧慮的時(shí)間。在這一小段時(shí)間后,你會(huì)回來(lái)全身心的投入到工作中;
          • 從項(xiàng)目或任務(wù)中的短暫休息也可能是在受教育(或?qū)W習(xí)),例如讀一些與工作無(wú)關(guān)的東西。這些信息有可能在以后幫你解決另外的問(wèn)題。

          作者接著列舉了一些管理者們?cè)诓还膭?lì)計(jì)算機(jī)游戲或網(wǎng)絡(luò)沖浪的情況下建議所采用的提高員工效率的方式:

          1. 給員工有意義的工作。
          2. 承認(rèn)/賞識(shí)員工所完成的工作。
          3. 給員工為了最好完成工作所需要的工具。
          4. 批準(zhǔn)員工休息。
          5. 給予員工尊重。

          作者還舉了一個(gè)例子,說(shuō)有個(gè)復(fù)有創(chuàng)造力的同事把鍵盤(pán)上的F1~F12都附加了新功能:

          F1 Accurately reflect what’s in the building’s vending machines.

          • F2 Display the current traffic report for the area.
          • F3 Make every piece of software on your machine work exactly as advertised.
          • F4 Play your favorite music to lower your blood pressure.
          • F5 Bring up your favorite picture of the beach or of the place you plan to retire.
          • F6 Show a running clock on how many hours you have left until you retire.
          • F7 Show you where your kids or pets are (but be careful, this might not relieve stress!).
          • F8 Automatically delete all emails that were sent “Reply All.”
          • F9 Delete all meetings for the day, sending emails of regret to all attendees.
          • F10 Show what your 401K balance was two years ago instead of today’s value.
          • F11 Automatically start dinner/ESPN/CNN/soap opera (programmable to suit individual preferences).
          • F12 Advance time to five minutes before quitting time on Friday of the current week.

          作者最后指出,作為管理者,需要關(guān)注如何現(xiàn)實(shí)的鼓勵(lì)員工發(fā)揮他們最大的效率,還需要決定如何來(lái)優(yōu)化工作環(huán)境。只要求生產(chǎn)效而沒(méi)有適當(dāng)?shù)墓芾碇С趾唾Y源將適得其反。作者認(rèn)為,不時(shí)地準(zhǔn)備一塊蛋糕(不管什么原因)可以鼓勵(lì)團(tuán)隊(duì)和溝通。

          By the way:作者是美國(guó)能源部國(guó)家核安全管理局的CIO。

          posted @ 2009-12-19 22:59 軟件工程實(shí)踐者 閱讀(381) | 評(píng)論 (0)編輯 收藏

          1個(gè)民工>2院院士

          轉(zhuǎn)自:http://www.sciencenet.cn/m/user_content.aspx?id=275801


          1個(gè)民工>2院院士

          話說(shuō)我國(guó)一特大型國(guó)有企業(yè)B從A國(guó)引進(jìn)了一條香皂包裝生產(chǎn)線,結(jié)果發(fā)現(xiàn)這條生產(chǎn)線有個(gè)致命缺陷:常常會(huì)有盒子里沒(méi)裝入香皂。總不能把空盒子賣(mài)給顧客啊。沒(méi)辦法,B企業(yè)向國(guó)務(wù)院S部打報(bào)告,S部指定兩院和C9高校聯(lián)合設(shè)計(jì)一個(gè)方案來(lái)分揀空的香皂盒,于是組成了一個(gè)11人的科研團(tuán)隊(duì),計(jì)有:中科院院士1人、中國(guó)工程院院士1人、北京大學(xué)863首席科學(xué)家1人、清華大學(xué)973首席科學(xué)家1人、上海交通大學(xué)長(zhǎng)江學(xué)者1人、浙江大學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室主任1人、復(fù)旦大學(xué)“國(guó)家杰青”1人、南京大學(xué)國(guó)貼專(zhuān)家1人、哈爾濱工業(yè)大學(xué)國(guó)家大科學(xué)工程主任1人、中國(guó)科技大學(xué)引智計(jì)劃1人,當(dāng)中有海龜、陸龜、土鱉,還有博士后、博士、碩士、本科生,綜合采用了機(jī)械、微電子、自動(dòng)化、x射線探測(cè)、微機(jī)編程等技術(shù),花了100萬(wàn)元,成功解決了問(wèn)題。每當(dāng)生產(chǎn)線上有空香皂盒通過(guò),兩旁的探測(cè)器會(huì)檢測(cè)到,并且驅(qū)動(dòng)一只機(jī)械手把空皂盒推走。
                南方有個(gè)鄉(xiāng)鎮(zhèn)企業(yè)也買(mǎi)了同樣的生產(chǎn)線,四川老板發(fā)現(xiàn)這個(gè)問(wèn)題后大為發(fā)火,找了個(gè)湖南的小工來(lái)說(shuō):你他媽的今天給老子把這個(gè)搞定,不然明天你給老子滾蛋......小工很快想出了辦法:他在生產(chǎn)線旁邊放了臺(tái)風(fēng)扇猛吹,空皂盒自然會(huì)被吹走。
          這個(gè)故事告訴我們:
          1,知識(shí)不一定就是生產(chǎn)力,創(chuàng)造力和學(xué)歷、學(xué)識(shí)、學(xué)銜不直接相關(guān)。
          2,能吹是多么的重要,院士也能吹出來(lái)。
          3,民科是值得尊重的,應(yīng)該與官科享受同等待遇。
          4,再次證明人民的智慧是無(wú)窮的,歷史是群眾創(chuàng)造的,是普通的勞動(dòng)人民創(chuàng)造的。

          posted @ 2009-12-17 10:25 軟件工程實(shí)踐者 閱讀(228) | 評(píng)論 (0)編輯 收藏

          多語(yǔ)言編程

          本文是對(duì)Steve Vinoski. Multilanguage Programming. IEEE Internet Computing, Vol. 12, No. 3, MAY/JUNE 2008, pp. 83-85 的總結(jié)。

          本文的主要觀點(diǎn)是:在軟件開(kāi)發(fā)中,要為特定的任務(wù)選擇最合適的開(kāi)發(fā)語(yǔ)言。

          作者首先介紹了在軟件集成和軟件開(kāi)發(fā)中涉及的術(shù)語(yǔ)/技術(shù)浩如煙海,但是開(kāi)發(fā)者卻只堅(jiān)持某種技術(shù),而必須使用其它技術(shù)來(lái)解決問(wèn)題。這種現(xiàn)象在開(kāi)發(fā)語(yǔ)言領(lǐng)域也是一樣。開(kāi)發(fā)者總是使用自己喜歡的語(yǔ)言,而非解決問(wèn)題最優(yōu)的語(yǔ)言,會(huì)造成設(shè)計(jì)方案的不優(yōu)。

          作者指出在日常開(kāi)發(fā)中了解和使用多種編程語(yǔ)言可以帶來(lái)顯著的好處,因?yàn)闆](méi)有任何一門(mén)語(yǔ)言適用于解決所有問(wèn)題。而語(yǔ)言的存在也主要是由于它適于解決某些特定方面的問(wèn)題(在解決某些問(wèn)題方面比其它語(yǔ)言好),因此,不斷有語(yǔ)言出現(xiàn)和消亡。在編程語(yǔ)言設(shè)計(jì)和開(kāi)發(fā)中涉及許多需要權(quán)衡的因素,因此,這為許多不同的方案和變體預(yù)留了空間。

          作者指出,大部分單一語(yǔ)言開(kāi)發(fā)者傾向選擇用于通用目的的語(yǔ)言(像Java、C++等),而不是特定的編程語(yǔ)言。通用的編程語(yǔ)言可用于解決更廣范圍的問(wèn)題,但它們通常都是提供的折中的解決方案,不是太好,也不是太壞。當(dāng)然,一些單一語(yǔ)言開(kāi)發(fā)者盡力去挖掘語(yǔ)言的高級(jí)特性,來(lái)將語(yǔ)言的能力發(fā)揮到極致,但這些程序員仍然受制于這門(mén)語(yǔ)言實(shí)際的限度。

          作者指出語(yǔ)言的選擇對(duì)開(kāi)發(fā)效率是一個(gè)重要因素,選擇正確的語(yǔ)言所帶來(lái)的開(kāi)發(fā)效率的提升是巨大和值得這么去做的。作者以對(duì)XML的處理為例闡述了此觀點(diǎn)。通用語(yǔ)言,例如Java在處理XML方面沒(méi)有專(zhuān)門(mén)設(shè)計(jì)上的支持,這使得開(kāi)發(fā)人員在使用通用語(yǔ)言處理XML方面忍受這種不匹配,來(lái)進(jìn)行拙笨的開(kāi)發(fā),造成非優(yōu)的解決方案。在這種情況下,為了提高效率,他們通常采用一些代碼生成技術(shù),把XML構(gòu)造塊影射為靜態(tài)編程語(yǔ)言的構(gòu)造塊(通常是類(lèi))來(lái)盡量緩解這種阻抗,即便如此,這種方式仍然是十分脆弱的。因?yàn)榘迅叨褥`活的XML構(gòu)造塊轉(zhuǎn)化為嚴(yán)格的靜態(tài)的數(shù)據(jù)類(lèi)型很容易造成彼此版本的不匹配。XML文檔的任何改變都需要新的代碼生成、重新構(gòu)建、....這使得通過(guò)代碼生成獲得的一點(diǎn)點(diǎn)好處又被不斷維護(hù)帶來(lái)的成本所抵消。相比之下,Python、Perl、Erlang等語(yǔ)言都提供了XML處理模塊,甚至還帶版本化功能。更好的像ECMAscript for XML (E4X)和Scala,提供了對(duì)XML字面量的支持支持,開(kāi)發(fā)人員可以直接在語(yǔ)言語(yǔ)法中寫(xiě)XML。消除了阻抗,帶來(lái)了更簡(jiǎn)化的代碼和更清晰的功能。

          作者指出,選擇適當(dāng)?shù)恼Z(yǔ)言所帶來(lái)的效率的提升還體現(xiàn)在對(duì)代碼的維護(hù)上。作者援引Fred Brooks在《人月神話》中引用的的研究發(fā)現(xiàn)說(shuō),所需開(kāi)發(fā)和維護(hù)的工作量與指令的數(shù)目(可以理解為代碼行)是指數(shù)關(guān)系,而且這與所采用的語(yǔ)言無(wú)關(guān)。假設(shè)這個(gè)指數(shù)值是1.5的話,那么如果代碼行是原來(lái)的3倍的話,那么就需要5倍的開(kāi)發(fā)和維護(hù)成本,如果代碼行變?yōu)樵瓉?lái)的5倍,就需要11倍的開(kāi)發(fā)和維護(hù)成本,如果代碼行變?yōu)樵瓉?lái)的10倍,那么就需要32倍的開(kāi)發(fā)和維護(hù)成本。選擇正確的語(yǔ)言,不僅可以減少代碼行,更快的提供解決方案和對(duì)需要的響應(yīng),這個(gè)過(guò)程可以變?yōu)榉e極的循環(huán),更少的代碼帶來(lái)更好的缺陷和更容易的增強(qiáng)(維護(hù)),這又使得用戶更高興,提供免費(fèi)的廣告宣傳和反饋,進(jìn)一步促進(jìn)軟件的發(fā)展。

          作者指出,多語(yǔ)言編程的一個(gè)問(wèn)題就是如何使它們協(xié)同工作。這可以分為兩類(lèi)。如果是用于分布式應(yīng)用集成(即不同的應(yīng)用用不同的語(yǔ)言),那么網(wǎng)絡(luò)本身就通過(guò)協(xié)議提供了一個(gè)中立的方案,可以通過(guò)網(wǎng)絡(luò)消息等。如果不是分布式應(yīng)用,當(dāng)前的主流開(kāi)發(fā)語(yǔ)言,比如微軟的CLT(公共語(yǔ)言運(yùn)行時(shí))所支持的語(yǔ)言越來(lái)越多,命令式的、動(dòng)態(tài)的、函數(shù)式的,或腳本的。類(lèi)似的,JVM也從一個(gè)單語(yǔ)言平臺(tái)演化為一個(gè)可以支持許多語(yǔ)言的平臺(tái),包括JRuby、Scala、Groovy、JavaScript、E4X、Jython和其它的。而且,在JVM上,這些語(yǔ)言都容易學(xué),因?yàn)槎际腔谧止?jié)碼,這些語(yǔ)言可以與Java進(jìn)行互調(diào)。因此,JVM提供了一個(gè)非常好的方式來(lái)為應(yīng)用的不同部分選擇最適合的語(yǔ)言。

          作者還指出目前阻礙多語(yǔ)言編程的因素主要有兩個(gè):一個(gè)管理因素;另一個(gè)開(kāi)發(fā)者認(rèn)為學(xué)習(xí)新語(yǔ)言難度很大。對(duì)于第一個(gè)因素,管理者通常認(rèn)為只采用一種語(yǔ)言易于管理,因?yàn)榇蠹叶加猛瑯拥恼Z(yǔ)言,可以容易的替換開(kāi)發(fā)人員,而且某個(gè)開(kāi)發(fā)人員寫(xiě)的代碼,大家也都能看懂,避免陷入只有少數(shù)人才能看懂和維護(hù)的局面。作者認(rèn)為這種管理者對(duì)軟件開(kāi)發(fā)和維護(hù)所涉及的成本沒(méi)有充分考慮。在一個(gè)JVM或CLR基礎(chǔ)之上,選擇合適的語(yǔ)言可以減少代碼規(guī)模和開(kāi)發(fā)維護(hù)的工作量,從而降低系統(tǒng)的總成本,而且,較小的系統(tǒng)需要更少的開(kāi)發(fā)者,這又是一個(gè)巨大的成本減少。對(duì)于第二個(gè)因素,相比通用語(yǔ)言來(lái)說(shuō),那個(gè)特定的語(yǔ)言,像Lisp、Python等都很簡(jiǎn)練,核心概念并不多,初學(xué)者可以很快發(fā)現(xiàn)它們更具有生產(chǎn)力,而且,以往語(yǔ)言的經(jīng)驗(yàn)可以幫助你學(xué)習(xí)新語(yǔ)言。如果你掌握的語(yǔ)言越多,你就能更容易的學(xué)習(xí)一門(mén)新語(yǔ)言,也能發(fā)現(xiàn)解決問(wèn)題的最好方式。

          最后,作者以“畢竟,難道我們真的認(rèn)為我們已經(jīng)學(xué)到我們所需要的最后一門(mén)(終極)語(yǔ)言了碼?”結(jié)尾。

          ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

          歡迎您對(duì)自己所在的開(kāi)發(fā)組織對(duì)于多語(yǔ)言編程、融合的實(shí)踐和經(jīng)驗(yàn)發(fā)表看法,謝謝!

          posted @ 2009-12-16 12:51 軟件工程實(shí)踐者 閱讀(1882) | 評(píng)論 (1)編輯 收藏

          滑雪,年夜飯

          今天是部門(mén)年會(huì)活動(dòng)的日子,活動(dòng)項(xiàng)目:滑雪、年夜飯、卡啦OK
          第一次學(xué)滑雪,是挺興奮的,11點(diǎn)鐘開(kāi)使滑,地點(diǎn)林海滑雪場(chǎng),剛開(kāi)始是50多米的小短坡, Easy,吃完午飯,開(kāi)始在200米的高坡滑,跟頭栽了不老少,也是長(zhǎng)了不少經(jīng)驗(yàn)。爽!,就是膝蓋太累了...
          晚上又是一頓豐盛大餐....

          posted @ 2006-01-13 22:45 軟件工程實(shí)踐者 閱讀(262) | 評(píng)論 (0)編輯 收藏

          Mustang(jdk1.6)特性

          1. 提供了磁盤(pán)分區(qū) - 空間方法

          在File類(lèi)中增加了以下方法:
          public long getFreeSpace(): 返回一個(gè)分區(qū)剩余空間
          public long getTotalSpace(): 返回一個(gè)分區(qū)總空間
          public long getUsableSpace(): 返回一個(gè)分區(qū)已用空間
          注意,以上File指代的虛擬路徑必須是盤(pán)符,否則返回0。

          2. Splash Screen

          Mustang對(duì)于Splash Screen的實(shí)現(xiàn)是一個(gè)用來(lái)顯示gif(可以是動(dòng)畫(huà)式的),PNG, jpg圖片的沒(méi)有修飾的窗口
          使用方式:
          在java命令行中加入 -splash 選項(xiàng),示例如下:
          java -splash mypic.jpg HelloWorld

          如果你的類(lèi)是以jar的方式來(lái)運(yùn)行,那么可以在jar文件的MANIFEST.MF文件中加入如下的一行:
          SplashScreen-Image:mypic.jpg

          你也可以在命令行中寫(xiě):
          java -splash:mypic.jpg -jar helloWorld.jar
          這里用的圖片將替代MANIFESET.MF中定義的圖片(如果有的話)

          為了實(shí)現(xiàn)自定義的Splash Screen界面,你可以使用如下的方法:

          //使用SplashScreen的靜態(tài)方法獲得SplashScreen對(duì)象,然后自定義
          SplashScreen ss = SplashScreen.getSplashScreen ();
          if (ss != null)
          {
          // 自定義代碼。
          }

          在SpalshScreen中還提供了如下方法,具體使用請(qǐng)看JDK或訪問(wèn)sun網(wǎng)站
          public Graphics getGraphics()
          public URL getImageURL()
          public Dimension getSize()
          public void setImageURL(URL imageURL):
          public void update()

          值得注意的是:你必須使用 -spalsh選項(xiàng)或MANIFEST.MF的方式來(lái)調(diào)用SplashScreen,
          否則修改是無(wú)效的。

          posted @ 2006-01-11 13:10 軟件工程實(shí)踐者 閱讀(1280) | 評(píng)論 (1)編輯 收藏

          男人,三十而立!

                   昨晚,回到宿舍,正好趕上中央4套在播《名將之約》,這次邀請(qǐng)的名將是現(xiàn)任中國(guó)乒乓球隊(duì)總教練,劉國(guó)梁。
                   自己小時(shí)候就很喜歡乒乓球,到現(xiàn)在也是一樣,因此對(duì)于此類(lèi)人物,自己是欽佩有加,更何況劉的輝煌戰(zhàn)績(jī),在國(guó)內(nèi)也是先有人出其右。本月十號(hào),就是他三十歲的生日,以近而立之年的他,已經(jīng)是中國(guó)乒乓球的總教練,讓人感覺(jué)前途不可限量,要登上這個(gè)高度是非常之不易。
                   今年,我也已經(jīng)27啦,時(shí)光飛逝,轉(zhuǎn)眼就會(huì)到30歲的那一天,作為程序員這個(gè)行當(dāng)中的一員,這個(gè)年齡雖然不是很大,但絕對(duì)不小,自己的明天在哪里?
          30歲能達(dá)到什么高度?35,40呢?也許每一個(gè)IT人都會(huì)思考這個(gè)問(wèn)題,當(dāng)然也許有些牛人已經(jīng)是扶搖直上九萬(wàn)里,不必憂心此類(lèi)問(wèn)題。
                   我們的公司很大,部門(mén)也很多,好幾千人的規(guī)模,項(xiàng)目經(jīng)理很多很多,而公司級(jí)的項(xiàng)目經(jīng)理,也就是資深項(xiàng)目經(jīng)理,再加上部門(mén)的領(lǐng)導(dǎo),什么技術(shù)總監(jiān),項(xiàng)目總監(jiān),部長(zhǎng),經(jīng)理......
                   人,只有踏踏實(shí)實(shí)的把他目前的工作做好,才能不斷提升自己,我從不懷疑這樣的真理。
                   今天又抖出這個(gè)老生常談的話題,一是有感而發(fā),再則警示自己:拋棄浮躁,潛心修行。

          posted @ 2006-01-07 09:34 軟件工程實(shí)踐者 閱讀(391) | 評(píng)論 (1)編輯 收藏

          Oracle ADF和Spring的結(jié)合

          Oracle ADF(Application Developement Framework)是一套快速開(kāi)發(fā)企業(yè)級(jí)J2EE的MVC框架. Oracle在Model層和業(yè)務(wù)服務(wù)層上提供的缺省實(shí)現(xiàn)對(duì)開(kāi)發(fā)基于數(shù)據(jù)庫(kù)的應(yīng)用提供了極大的便利,尤其是它的ADF BC(Business components),這個(gè)微型的MVC框架提供了直接映射數(shù)據(jù)庫(kù)表的能力,結(jié)合View端的展現(xiàn)(Oracle 提供了桌面端Swing/JClient和Web端UIX的實(shí)現(xiàn)),開(kāi)發(fā)起來(lái)就如同用Borland的數(shù)據(jù)感知控件一樣。

          Spring目前是J2EE社區(qū)一個(gè)比較火的框架,應(yīng)用的比較廣,那如何進(jìn)行二者的有機(jī)結(jié)合呢?

          我們已經(jīng)習(xí)慣了Spring的IOC框架,方便的使用getBean()方法來(lái)獲得我們想要的對(duì)象,因此,如果能通過(guò)Spring來(lái)生成需要的對(duì)象,然后把這個(gè)對(duì)象注冊(cè)為Data Control(Oracle中數(shù)據(jù)感知組件),這樣就可以利用ADF BC的威力來(lái)快速構(gòu)建一個(gè)數(shù)據(jù)庫(kù)應(yīng)用。問(wèn)題的關(guān)鍵就在于ADF為每一個(gè)data control指定了一個(gè)工廠類(lèi)屬性,而這個(gè)工廠類(lèi)屬性的實(shí)例值需要我們用Spring來(lái)生成,就OK了。舉一個(gè)實(shí)際的例子:
          在Spring中,我們定義了如下的接口:
          package nl.amis.spring.hrm;
          import java.util.List;
          
          public interface HrmService  {
            public void setEmployeeDao(EmpDAO employeeDAO);
            public List getAllEmployees();    
            public long getSalarySum(); 
          }


          配置文件為:
          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
              "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
            <bean id="dataSourceDBDirect"
                  class="org.springframework.jdbc.datasource.DriverManagerDataSource"
                  destroy-method="close">
              <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
              <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
              <property name="username" value="scott"/>
              <property name="password" value="tiger"/>
            </bean>
            <bean id="employeeDAO" class="nl.amis.spring.jdbc.EmployeeJdbcDAO">
              <property name="dataSource">
                <ref local="dataSourceDBDirect"/>
              </property>
            </bean>
            <bean id="hrmService" class="nl.amis.spring.hrm.HrmServiceImpl">
              <property name="employeeDao">
                <ref local="employeeDAO"/>
              </property>
            </bean>
          </beans>

          在Oracle JDeveloper開(kāi)發(fā)環(huán)境下,我們找到
          nl.amis.spring.hrmServiceImp這個(gè)類(lèi),然后用菜單命令把它注冊(cè)為一個(gè)Data control組件。這個(gè)新生成的Data control缺省名字是:HrmServiceImplDataControl,查看它的屬性,有一個(gè)Factory class屬性,找到這個(gè)屬性所指的類(lèi),修改如下源碼:

          Object bean = oracle.jbo.common.JBOClass.forName(beanClass).newInstance();


          上面的代碼就是生成HrmServiceImpl對(duì)象的代碼,把它改為:

          ApplicationContext springCtx = new ClassPathXmlApplicationContext("SpringConfig.xml");
          Object bean = springCtx.getBean("hrmService");


          這樣主要工作就OK啦,剩下的就是修改一下Data Control的配置文件(在注冊(cè)成為Data Control后生成的同名.xml文件),修改
          <content>中的<AccessorAtribute>部分,把id改為:allEmployees; BeanClass 改為nl.amis.spring.hrm.Employee; IsCollection="true"; Type改為java.Util.List.
          以上修改表明我們需要的是通過(guò)employeeDao獲得的Employee的集合,把這個(gè)結(jié)合作為結(jié)果集應(yīng)用到ADF BC中。

          英文原文出自:http://technology.amis.nl/blog/index.php?p=765

          posted @ 2006-01-06 22:06 軟件工程實(shí)踐者 閱讀(1011) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共3頁(yè): 上一頁(yè) 1 2 3 下一頁(yè) 
          主站蜘蛛池模板: 河曲县| 颍上县| 顺昌县| 万州区| 金塔县| 绥宁县| 云和县| 青龙| 扬州市| 江陵县| 滦南县| 麟游县| 丹东市| 宽甸| 朝阳区| 南召县| 夏邑县| 辰溪县| 油尖旺区| 沁阳市| 靖江市| 运城市| 灵璧县| 兴隆县| 威宁| 成都市| 柳江县| 泰兴市| 玛纳斯县| 弥渡县| 如东县| 长武县| 沈阳市| 江永县| 花莲县| 诸城市| 景泰县| 青岛市| 中山市| 博湖县| 枣强县|