青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Zachary.XiaoZhen - 夢(mèng)想的天空

多年來(lái)一直占據(jù)主導(dǎo)地位的集中式IT功能,如今正承受著來(lái)自云計(jì)算、企業(yè)消費(fèi)級(jí)移動(dòng)設(shè)備以及大數(shù)據(jù)分析業(yè)務(wù)等多種全新技術(shù)趨勢(shì)的強(qiáng)力沖擊。根據(jù)《經(jīng)濟(jì)學(xué)家》雜志的報(bào)道,隨著這些新趨勢(shì)對(duì)固有IT結(jié)構(gòu)造成的不斷削弱,CIO與他們的團(tuán)隊(duì)必須更好地迎合企業(yè)業(yè)務(wù)需求,否則將很難在瞬息萬(wàn)變的市場(chǎng)中安然立足——正所謂不在進(jìn)取中爆發(fā),就在沉默中滅亡。

幾十年來(lái),企業(yè)一直對(duì)集中式IT功能信任有加,希望其能在控制技術(shù)基礎(chǔ)設(shè)施的同時(shí),為企業(yè)各部門及員工提供服務(wù)。如今,以云計(jì)算、企業(yè)消費(fèi)級(jí)移動(dòng)設(shè)備以及大數(shù)據(jù)分析為代表的新型技術(shù)已經(jīng)粉墨登場(chǎng),并大有顛覆現(xiàn)有游戲規(guī)則的趨勢(shì)。CIO及其手中掌握的IT服務(wù)機(jī)制必須適時(shí)做出轉(zhuǎn)型,否則必將被吞沒(méi)在歷史的洪流當(dāng)中。

根據(jù)一份名為《高管層向IT發(fā)起挑戰(zhàn):來(lái)自商業(yè)價(jià)值的新預(yù)期》的最新報(bào)告稱(由戴爾服務(wù)部門贊助,經(jīng)濟(jì)學(xué)家信息部撰寫),企業(yè)高管層紛紛表示IT部門應(yīng)該為即將到來(lái)的重大轉(zhuǎn)型做好準(zhǔn)備:在536位受訪高管中,57%的管理者認(rèn)為在未來(lái)三年內(nèi)IT部門的核心職能將發(fā)生顯著改變;12%的受訪者則認(rèn)為IT職能會(huì)發(fā)生“徹底改變”。另外,43%的受訪者指出企業(yè)會(huì)根據(jù)自身需求購(gòu)買額外的IT服務(wù)。
 

 

經(jīng)濟(jì)學(xué)家信息部在報(bào)告中指出,受訪高管們所討論的這種變化趨勢(shì)不僅會(huì)給IT部門的職能帶來(lái)革命,更會(huì)顛覆性地影響整套業(yè)務(wù),并最終在開發(fā)創(chuàng)新型產(chǎn)品及服務(wù)、打造新的客戶交流通道以及反思傳統(tǒng)業(yè)務(wù)流程等方面給企業(yè)帶來(lái)前所未有的機(jī)遇。在山雨欲來(lái)的壓力之下,CIO及其技術(shù)團(tuán)隊(duì)所面臨的既是不成功便成仁的挑戰(zhàn)、也是涅槃重生的良機(jī)。

“當(dāng)一切準(zhǔn)備就緒時(shí),傳統(tǒng)CIO所代表的‘純技術(shù)職位’將不復(fù)存在,”Hord Tipton告訴我們。他在2002年到2007年間曾擔(dān)任美國(guó)內(nèi)政部CIO,目前則在安全教育及認(rèn)證機(jī)構(gòu)(簡(jiǎn)稱ISC)負(fù)責(zé)管理工作。“現(xiàn)在,IT已經(jīng)成為業(yè)務(wù)中的重要組成部分,可以說(shuō)沒(méi)人能在缺乏IT支持的情況下讓業(yè)務(wù)流程正常運(yùn)轉(zhuǎn)。”

CIO必須懂得使用商務(wù)語(yǔ)言

雖然IT可能會(huì)逐漸轉(zhuǎn)型為業(yè)務(wù)的核心組成部分,但如果不能找到合適的辦法迎合企業(yè)高管層在交流方式及投資價(jià)值方面的需求,CIO及其團(tuán)隊(duì)仍然很可能慘遭淘汰。報(bào)告發(fā)現(xiàn),CIO與企業(yè)高管在技術(shù)與業(yè)務(wù)的結(jié)合效果方面看法并不一致:三分之二的受訪CIO認(rèn)為他們的技術(shù)職能已經(jīng)與業(yè)務(wù)流程融合妥當(dāng),但只有不到一半的企業(yè)高管認(rèn)同這一結(jié)論。值得注意的是,僅僅46%的企業(yè)高管表示他們的CIO能夠理解業(yè)務(wù)部門的實(shí)際需求,44%的受訪者指出他們的CIO能夠發(fā)現(xiàn)IT發(fā)展新趨勢(shì)中所蘊(yùn)含的技術(shù)風(fēng)險(xiǎn)。

“在理想狀況下,企業(yè)高管應(yīng)該充分依賴CIO在工作匯報(bào)中對(duì)于現(xiàn)階段情況的總結(jié),并支持技術(shù)部門以新的方式利用IT,以解決技術(shù)與業(yè)務(wù)協(xié)作中可能存在的風(fēng)險(xiǎn),”報(bào)告指出。“然而只有不到一半的受訪管理者認(rèn)為他們的CIO充分理解了這一任務(wù);而將近四分之一的受訪者干脆表示CIO們的表現(xiàn)很令人失望。我們可以基本認(rèn)定,在如何將IT投資最大程度轉(zhuǎn)化為經(jīng)濟(jì)利益方面,CIO與企業(yè)高管層之間仍然存在較大的觀念分歧。”

與此同時(shí),CIO們突然發(fā)現(xiàn)自己已經(jīng)在某種情況下不知不覺受到排擠。在調(diào)查中研究人員發(fā)現(xiàn),大約六分之一的受訪CIO僅僅擁有“咨詢”的權(quán)利,他們根本無(wú)法參與到企業(yè)IT戰(zhàn)略的制定工作當(dāng)中,也就是說(shuō)他們?cè)谧约好刻焖裱陌l(fā)展戰(zhàn)略中竟然毫無(wú)發(fā)言權(quán)。該報(bào)告還發(fā)現(xiàn),即使CIO能夠加入到戰(zhàn)略決策的討論中來(lái),往往也只能扮演“技術(shù)后臺(tái)”的角色,跟創(chuàng)收等核心內(nèi)容完全無(wú)關(guān)。只有約三分之一的受訪者認(rèn)為CIO應(yīng)該在發(fā)掘潛在客戶或者開發(fā)產(chǎn)品及服務(wù)等方面發(fā)揮關(guān)鍵性甚至主導(dǎo)性作用。

CIO在IT戰(zhàn)略中表現(xiàn)越積極,企業(yè)整體業(yè)績(jī)就越出色

雖然整體形勢(shì)不容樂(lè)觀,但最后一項(xiàng)統(tǒng)計(jì)數(shù)據(jù)給了決心扭轉(zhuǎn)被動(dòng)局面的CIO們一線希望。相對(duì)于將CIO們直接打入冷宮的做法,讓技術(shù)領(lǐng)導(dǎo)者加入戰(zhàn)略制定的企業(yè)的確在財(cái)務(wù)業(yè)績(jī)方面交出了超過(guò)前者的優(yōu)異答卷。在樂(lè)于讓CIO在業(yè)務(wù)戰(zhàn)略中發(fā)揮作用的37%受訪高管中,有47%的企業(yè)表現(xiàn)出傲視同儕的業(yè)績(jī)水準(zhǔn)。而另一方面,在20%禁止CIO參與經(jīng)營(yíng)戰(zhàn)略制定的受訪者中,只有28%的企業(yè)能夠讓自己的運(yùn)營(yíng)狀況超過(guò)平均水平。

對(duì)于CIO們而言,熟練掌握商務(wù)語(yǔ)言是前瞻性思維的一種具體表現(xiàn)。只有不到一半的受訪者表示,他們將IT視為改善企業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì)的有效途徑。盡管仍然有許多企業(yè)僅僅把IT作為削減運(yùn)營(yíng)成本(38%)或者提高業(yè)務(wù)執(zhí)行效率(42%)的輔助角色,但勇于將IT與拓展商務(wù)業(yè)績(jī)、增加運(yùn)營(yíng)收入的企業(yè)往往發(fā)現(xiàn),IT職能所帶來(lái)的助益其實(shí)能夠在其它多個(gè)領(lǐng)域發(fā)揮重要作用。

降低成本與增加營(yíng)收之間并不存在矛盾

“正所謂無(wú)利不起早,企業(yè)在從IT職能中發(fā)掘新的盈利途徑時(shí),表現(xiàn)得往往比利用IT開發(fā)新產(chǎn)品或培養(yǎng)新客戶群體時(shí)更積極,”報(bào)告總結(jié)道。“另外,企業(yè)也更樂(lè)于提升IT基礎(chǔ)設(shè)施的可靠性以及IT與業(yè)務(wù)之間的協(xié)作能力。令人驚訝的是,以營(yíng)利為優(yōu)先考量的企業(yè)受訪者們?cè)趯?shí)際工作中會(huì)比那些以削減成本為主要目的的企業(yè)管理者更積極也更開明,可以說(shuō)開源比節(jié)流更能調(diào)動(dòng)企業(yè)的整體活力。”

舉例來(lái)說(shuō),Lowes公司前任CIO Steve Stone就曾指出,CIO應(yīng)該有能力把像Lowes公司這樣規(guī)模的零售業(yè)巨頭從技術(shù)挑戰(zhàn)中解救出來(lái),并將此轉(zhuǎn)化為發(fā)展的機(jī)遇。2002年還在擔(dān)任CIO一職時(shí),他就制定了一系列基礎(chǔ)設(shè)施改進(jìn)戰(zhàn)略,希望能夠在任何情況下——包括通信系統(tǒng)被切斷時(shí)——保證設(shè)施運(yùn)轉(zhuǎn)的正常與順暢。但這一戰(zhàn)略的制定也帶來(lái)無(wú)數(shù)后續(xù)挑戰(zhàn),其中影響最大的就是每家店鋪的冗余基礎(chǔ)設(shè)施會(huì)給企業(yè)帶來(lái)沉重的更新與維護(hù)成本。面對(duì)這一局勢(shì),Stone果斷轉(zhuǎn)換思路,嘗試通過(guò)集中式數(shù)據(jù)中心代替分散各處的設(shè)施資源,如此一來(lái)不僅保證了數(shù)據(jù)的高度可用性,同時(shí)也令業(yè)務(wù)以更具時(shí)效性的方式運(yùn)轉(zhuǎn)。從另一方面來(lái)看,數(shù)據(jù)的集中管理使商務(wù)部門得以掌握大量第一手資源,并以此為基礎(chǔ)開發(fā)出能夠降低交付成本同時(shí)加速客戶獲得產(chǎn)品過(guò)程的新服務(wù)。

“對(duì)于當(dāng)今的實(shí)體型零售產(chǎn)業(yè)而言,我們真正需要的是充分利用廣域網(wǎng)優(yōu)勢(shì)并精簡(jiǎn)每家店鋪中所使用的生產(chǎn)技術(shù),頻繁折騰現(xiàn)場(chǎng)設(shè)施既不明智、也不劃算,”他總結(jié)道。

與業(yè)務(wù)融合也要講策略

報(bào)告中給出了三種實(shí)用性策略,CIO們可以以此為基礎(chǔ),創(chuàng)造出更多適合自己的業(yè)務(wù)融合方案。策略的具體內(nèi)容如下:

• 將一部分預(yù)算與商務(wù)部門共同分享,這樣一來(lái)那些規(guī)劃IT預(yù)算的管理者們將能使自己的部門也在方案中受益。這不僅有助于降低純IT類運(yùn)營(yíng)成本,更可以使IT與業(yè)務(wù)高效配合起來(lái),畢竟沒(méi)人愿意為自己不需要的服務(wù)投入太多預(yù)算份額。除此之外,這種二者融為一體的策略也會(huì)讓IT投資帶來(lái)更多業(yè)務(wù)管理者想要的服務(wù)項(xiàng)目。

• 從培養(yǎng)正確的企業(yè)文化出發(fā),讓IT團(tuán)隊(duì)能夠在業(yè)務(wù)發(fā)展中起到更重要的促進(jìn)作用,這也將從不同的角度激勵(lì)其他員工的工作干勁。

• 如果大家認(rèn)為某些IT項(xiàng)目能夠建立起理想的知識(shí)或技能儲(chǔ)備,那么在大規(guī)模投入資金之前,先做些局部實(shí)驗(yàn)性工作。盡管從短期來(lái)看試點(diǎn)會(huì)增加一部分技術(shù)投入,但過(guò)程中培養(yǎng)出的骨干人才會(huì)為企業(yè)在今后的發(fā)展道路上立下更多顯赫的功勞。

除了上述策略外,報(bào)告還提供了一些值得企業(yè)管理者認(rèn)真考量的建議:

• 解放思想。技術(shù)創(chuàng)新所改變的絕不僅僅是企業(yè)的IT職能,它所帶來(lái)的很可能是商務(wù)運(yùn)作方式的根本性轉(zhuǎn)變。我們應(yīng)該以更寬泛的角度看待創(chuàng)新中蘊(yùn)藏的潛在影響,發(fā)現(xiàn)IT職能之外那些更深遠(yuǎn)的業(yè)務(wù)走勢(shì)。

• 勇于讓CIO掌權(quán)。將IT基礎(chǔ)設(shè)施視為一種商品的做法,確實(shí)能夠減少企業(yè)IT部門的規(guī)模及影響范疇,但絕不應(yīng)該因此而限制CIO角色的作用。對(duì)于大多數(shù)高層管理者而言,應(yīng)該將CIO從純技術(shù)領(lǐng)域解放出來(lái),使其實(shí)現(xiàn)更多商務(wù)價(jià)值。

• 不要將IT職能與其它部門完全隔離。多數(shù)在云計(jì)算、移動(dòng)設(shè)備擴(kuò)展以及大數(shù)據(jù)分析等新型技術(shù)的沖擊下仍能從容應(yīng)對(duì)甚至借勢(shì)為己用的優(yōu)秀企業(yè),其成功的法門主要在于適應(yīng)變化的高超能力。這種能力除了幫助部門緊跟時(shí)代發(fā)展的腳步,更能讓技術(shù)與業(yè)務(wù)需求完美契合起來(lái)。

• 重新審視企業(yè)制定的投資分配方案。不要以為IT投資就一定意味著在降低成本與增加收入之間做出權(quán)衡。隨著時(shí)代的發(fā)展,越來(lái)越多的企業(yè)發(fā)現(xiàn)二者其實(shí)并不矛盾。

• 風(fēng)險(xiǎn)只是種潛在的可能性,不要因噎廢食。隨著云計(jì)算、移動(dòng)設(shè)備擴(kuò)展以及大數(shù)據(jù)分析等技術(shù)的普及,很多企業(yè)對(duì)這些領(lǐng)域的相關(guān)風(fēng)險(xiǎn)逐漸重視起來(lái)。不過(guò)請(qǐng)記住,風(fēng)險(xiǎn)只是種潛在的可能性,不要因噎廢食。我們完全可以通過(guò)成熟的機(jī)制識(shí)別、評(píng)估、管理并最終避免新技術(shù)所帶來(lái)的風(fēng)險(xiǎn),這與其它經(jīng)營(yíng)項(xiàng)目中的風(fēng)險(xiǎn)并無(wú)不同,沒(méi)必要太過(guò)緊張。

原文名:CIOs Need to Evolve or Be Left in the Dust
 

【責(zé)任編輯:王勇 TEL:(010)68479336】

   
posted @ 2012-07-14 10:15 BoyXiao 閱讀(135) | 評(píng)論 (0)編輯 收藏
     MUILIB界面庫(kù)的界面設(shè)計(jì)編輯器近日已經(jīng)初步完成,并進(jìn)行了內(nèi)部測(cè)試,
關(guān)于該界面設(shè)計(jì)編輯器的更詳細(xì)的功能介紹已經(jīng)更新到官方網(wǎng)站,對(duì)該編輯器
感興趣的可以前往欣賞!
    本次網(wǎng)站的對(duì)相關(guān)內(nèi)容的更新相較前段時(shí)間貼出來(lái)的圖片更加詳細(xì),已經(jīng)
細(xì)致的介紹了該軟件的主要功能模塊的截圖!
posted @ 2012-07-14 10:15 BoyXiao 閱讀(114) | 評(píng)論 (0)編輯 收藏
    博客光寫GacUI(http://www.gaclib.net/)的Demo更新也好無(wú)聊啊。所以今天先換換口味,胡扯點(diǎn)別的。

    一年一度的高中畢業(yè)生填簡(jiǎn)歷的日子即將就要到了,又有很多人問(wèn)計(jì)算機(jī)專業(yè)的事情。其實(shí)我從心底里覺得,高考后才來(lái)問(wèn)這個(gè),已經(jīng)完了一大半了。當(dāng)然另一小半十分有前途的人可以在大學(xué)四年趕上來(lái),不過(guò)估計(jì)他們還是要讀個(gè)研究生,才能把自己訓(xùn)練成能用的碼農(nóng)。

    編程是一件很難的事情。當(dāng)然我的意思跟那篇著名的《編程是一件很難的事情》不一樣。想把代碼寫好,本來(lái)就是一件非常困難的事情。我大三的時(shí)候訓(xùn)練一個(gè)大一的老鄉(xiāng),就光是C++,長(zhǎng)達(dá)四年后她還搞不清楚模板元編程究竟是什么。而且還有C語(yǔ)言學(xué)會(huì)了轉(zhuǎn)C++會(huì)把壞習(xí)慣帶進(jìn)來(lái)啦,C++的人轉(zhuǎn)做C#之后發(fā)現(xiàn)很多C++的好技巧到了C#都只會(huì)讓程序變得更慢啦,很多寫動(dòng)態(tài)語(yǔ)言的人不理解類型的好處還在那里胡扯啦,還有C#和javascript明明放著大好的函數(shù)式風(fēng)格不用,非要把代碼寫的超長(zhǎng)(本來(lái)光是這樣沒(méi)什么問(wèn)題的,只是有某些人不肯學(xué)習(xí)新知識(shí))。可見,就算把自己訓(xùn)練了好多年,最終進(jìn)入了工作崗位,想把代碼寫好,也是一件非常困難的事情。

    當(dāng)然有些人說(shuō),如今只有產(chǎn)品做得好才能賺錢,代碼寫的好有個(gè)屁用。這只能是人各有志,有些人就不喜歡鉆研代碼,這本來(lái)也沒(méi)什么。但是這些人老是跳出來(lái)忽悠別人,也只會(huì)讓編程變得更難。只是幸好,我的單位并不會(huì)跟某些單位一樣說(shuō)一些“把代碼寫得那么好有什么用,搞到我們還非得學(xué)東西才能看你的代碼,趕緊做點(diǎn)新feature啦”的這種話,我已經(jīng)覺得很好了。

    寫得好這個(gè)東西還是比較抽象。我認(rèn)為其中一條就是代碼要好維護(hù)。我一直以為,只有代碼寫得好維護(hù),好改,清晰易懂,這樣加新的功能才會(huì)容易,不出事情,順利發(fā)布軟件。后來(lái)我發(fā)現(xiàn)我錯(cuò)了,騰訊不也是QQ一版一版的發(fā)嗎,原來(lái)加班也是一種方法,啊哈哈哈。如果在一個(gè)單位里面,不加班別人就會(huì)找你麻煩的話,我相信你也不會(huì)花心思把代碼寫好的,反正都要加班。

    不過(guò)對(duì)于志向就是寫代碼的那一些人,最好還是不要受到這些外來(lái)信息的干擾。最近跟我們組里的一個(gè)test manager聊天,他是一個(gè)菲律賓人,說(shuō)是從紙帶時(shí)代開始就寫代碼了(不過(guò)看起來(lái)好年輕……),工作的時(shí)候還覺得C語(yǔ)言是一個(gè)嶄新的語(yǔ)言。后來(lái)他跟我說(shuō),如果一個(gè)人有志向與,代碼一條路走到黑,最好就去學(xué)習(xí)一下怎么當(dāng)architect。他說(shuō)道,Architect的知識(shí)架構(gòu)是由各種pattern組成的,然后就說(shuō)了自己年輕的時(shí)候的很多故事來(lái)作證這個(gè)道理。然后還講了微軟的其中一個(gè)創(chuàng)始人到現(xiàn)在還堅(jiān)持一線寫代碼的事情,不過(guò)沒(méi)告訴我是誰(shuí)。

    在這之前,剛好MSR的Daan Leijen因?yàn)閬?lái)北京參加programming language相關(guān)的conference,就來(lái)我們這里參觀了一下。后來(lái)我看他做過(guò)GUI,做過(guò)parser combinator,發(fā)明實(shí)現(xiàn)過(guò)語(yǔ)言,就前去搭訕,結(jié)果發(fā)現(xiàn)他讀書的時(shí)候的導(dǎo)師竟然是Erik Meijer。按照他的話說(shuō),“then we are connected”,如果說(shuō)成中文,就是有緣分吧。接著就跟他討論了一些parser combinator和類型系統(tǒng)之類的東西。我說(shuō)我之前也搞過(guò)這些東西,最后還貢獻(xiàn)了一部分給公司,換了個(gè)組之后還開了講座什么的。他講到他讀書的時(shí)候,也是學(xué)校沒(méi)教自己自學(xué)的這些東西,后來(lái)周圍也沒(méi)什么人做,但是并沒(méi)有讓他喪失動(dòng)力。然后就說(shuō)了一句話讓我印象很深刻:“原來(lái)你也做這些東西啊,我應(yīng)該可以看到為什么你要從產(chǎn)品組跳到MSRA來(lái)了。”他直到今天,頭發(fā)都基本上掉光了,還在那里繼續(xù)研究programming language的東西,還給了我?guī)灼撐摹N矣X得很好,人就該像他那樣。

    有些時(shí)候,人就得有那個(gè)信念,才能把可行但是難度大的東西,也最終搞出來(lái)。我自己寫了11年的程序,其實(shí)并沒(méi)有接觸過(guò)十分廣泛的東西,因?yàn)楹芏鄷r(shí)間都花在重寫我的一些idea上面了。譬如說(shuō)編譯器就寫了五六個(gè),GUI庫(kù)就寫了八遍,還有些雜七雜八的。不過(guò)從這個(gè)過(guò)程之中,可以明顯感覺到自己什么時(shí)候比以前更進(jìn)一步。這種signal有很多,譬如說(shuō)當(dāng)你決定要添加一個(gè)比較復(fù)雜的功能,也可以迅速知道怎么做而不用動(dòng)到架構(gòu)啦;譬如說(shuō)你覺得你的代碼越來(lái)越順眼啦;譬如說(shuō)你因?yàn)榧軜?gòu)不行決定重寫的時(shí)候,你發(fā)現(xiàn)前一個(gè)版本的代碼可以撿起來(lái)繼續(xù)用的部分越來(lái)越多啦。

    寫到這里,我想起很多人都問(wèn)過(guò)我,程序要怎么寫才能寫得好,或者說(shuō)設(shè)計(jì)模式要怎么寫,之類的問(wèn)題。如果把學(xué)習(xí)編程花費(fèi)的精神代價(jià)做標(biāo)準(zhǔn)的話,捷徑是沒(méi)有的。但是如果僅僅把時(shí)間作為標(biāo)準(zhǔn)的話,捷徑顯然是有的。怎樣才能加速你學(xué)習(xí)的過(guò)程呢?答案就是,先寫再看書。對(duì)于像編譯原理這種略微高深的知識(shí),總要自己寫過(guò)幾遍,吃了一些苦頭,才能知道為什么書里非要把算法那么設(shè)計(jì)結(jié)構(gòu)那么安排。對(duì)于像設(shè)計(jì)模式這種需要大量經(jīng)驗(yàn)才可以領(lǐng)悟到的知識(shí),如果你從來(lái)沒(méi)獨(dú)立寫過(guò)一個(gè)上萬(wàn)行的程序,你覺得你能理解設(shè)計(jì)模式在講什么嗎?我覺得這種時(shí)候能做的也就是背下來(lái),理解什么的都是扯淡。諸如此類,學(xué)習(xí)程序,如果要加速那個(gè)過(guò)程,肯定要花大量的時(shí)間寫代碼。當(dāng)你把項(xiàng)目做得越大、越復(fù)雜、算法越扭曲、界面越華麗、尺寸已經(jīng)大到你覺得不學(xué)習(xí)新的方法論就肯定會(huì)讓代碼失控的時(shí)候,這個(gè)時(shí)候你來(lái)看設(shè)計(jì)模式的書,保證是每看到一個(gè)模式都覺得人家說(shuō)到你心坎里去了。那你不僅可以迅速理解,而且以后還可以不由自主的想起來(lái)使用它。

    當(dāng)然,如果你不是一個(gè)喜歡寫代碼的人,那這個(gè)方法肯定沒(méi)有用,因?yàn)橹型痉艞壥裁吹奶嗔恕_@種時(shí)候,只能怪你沒(méi)緣分,設(shè)計(jì)模式不渡你了。如果你最后撐下來(lái)了,雖然你自己覺得你也花費(fèi)了相當(dāng)?shù)呐Γ莿e人反正是看不到你的努力的,就會(huì)開始覺得你有捷徑了。為什么呢?因?yàn)樾矢甙。瑫r(shí)間花得短啊。

    光寫代碼也是沒(méi)用的。同人于野一篇講成年人還能不能進(jìn)步的博客說(shuō)得很好,知識(shí)分為舒適區(qū),學(xué)習(xí)區(qū)和恐慌區(qū)。舒適區(qū)的意思就是,你很容易就可以做完。學(xué)習(xí)區(qū)的意思就是,你需要花費(fèi)大量的智力才可以做完。恐慌區(qū)的意思就是,你根本不知道如何下手。當(dāng)你在為了練習(xí)編寫大量的代碼的時(shí)候,你要盡量把題目都安排在學(xué)習(xí)區(qū)這里,這樣才能讓你進(jìn)步快的同時(shí),還不會(huì)被問(wèn)題打倒,可以繼續(xù)積累成就感了。

    學(xué)生做這個(gè)最方便了,工作之后,如果剛好遇上個(gè)黑心公司要你天天加班,你反而沒(méi)時(shí)間做學(xué)習(xí)區(qū)的內(nèi)容了,公司給你的肯定是舒適區(qū)的苦力活。

    說(shuō)到這里,如果你還有時(shí)間練習(xí)的話,千萬(wàn)不要去想:“我每一個(gè)程序都要跨平臺(tái)”,“我只做這個(gè)語(yǔ)言”等等。反正將來(lái),語(yǔ)言你都要會(huì),平臺(tái)的差異你都要知道,為什么要斷送自己了解這些東西的機(jī)會(huì)呢?你真的以為不知道垃圾收集的原理,和一些底層的可以通過(guò)C++的練習(xí)而得到的的操作,你真的可以在某些關(guān)鍵時(shí)刻操縱好C#嗎?當(dāng)然有些人會(huì)覺得,我估計(jì)一輩子不會(huì)遇到這些問(wèn)題的,所以我還是不管他了。人各有志嘛,C#不渡你,也是你自己的事情。如果你真的可以一輩子都在一個(gè)平臺(tái)上用一種語(yǔ)言做同一種程序做到退休,那真是幸福的生活啊。

    胡扯到這里也差不多了,這就是月經(jīng)貼,時(shí)不時(shí),總是要發(fā)一下的。
posted @ 2012-07-14 10:15 BoyXiao 閱讀(116) | 評(píng)論 (0)編輯 收藏

美社會(huì)學(xué)家建議 Twitter 向中國(guó)微博學(xué)習(xí)

  社會(huì)學(xué)家特蕾西婭·王

  北京時(shí)間 7 月 13 日消息,據(jù)國(guó)外媒體報(bào)道,32歲的特蕾西婭·王(Tricia Wang)是在中國(guó)工作的社會(huì)學(xué)家和顧問(wèn),據(jù)她表示自己現(xiàn)在的日常工作已經(jīng)離不開 Instagram 了。另外,她還在工作中記錄了微博和人人網(wǎng)等全新社交媒體在中國(guó)蓬勃發(fā)展的情況,并建議 Twitter 向中國(guó)的微博學(xué)習(xí)。

  以下為文章摘要:

  特蕾西婭·王很有可能是在中國(guó)火車上用 Instagram 拍攝照片最多的。王有多種身份,她是一名社會(huì)學(xué)家、民族志學(xué)者(ethnographer),以及研究全球科技在移民、低收入群體、年輕人和社會(huì)邊緣階層中使用情況的企業(yè)咨詢顧問(wèn)。王過(guò)去幾年都生活在中國(guó)。從 2005 年開始,她跑遍了中國(guó)的大江南北,經(jīng)常乘坐的交通工具是火車。她的工作是觀察數(shù)字技術(shù)對(duì)進(jìn)城農(nóng)民工的深遠(yuǎn)影響,并對(duì)新型社交媒體(如微博和人人)的迅速普及進(jìn)行記錄。一年前,王回到了自己位于紐約布魯克林的家中。在接受國(guó)外網(wǎng)站的采訪時(shí),王談到了以下幾點(diǎn)內(nèi)容:她使用了數(shù)字技術(shù)來(lái)進(jìn)行民族志的工作、不在大公司工作的好處,以及美國(guó)高科技公司可以從中國(guó)同行那里獲得靈感。

  問(wèn):你是怎樣獲得這份不錯(cuò)的工作的?

  答:特蕾西婭·王:我之前從沒(méi)想過(guò)要去找一份工作。我就讀于加州大學(xué)圣地亞哥分校,主修的是傳播學(xué),畢業(yè)之后我在紐約市的低收入社區(qū)從事過(guò)幾年社區(qū)干事的工作,另外還從事過(guò)宣傳和普及教育的工作。我并沒(méi)有打算進(jìn)入學(xué)術(shù)界,我一直以來(lái)都沒(méi)有這方面的興趣,尤其是大多數(shù)學(xué)術(shù)界那種封閉的氛圍不太吸引我。丹娜·博伊德(Danah Boyd)是第一位吸引了我的學(xué)者,因?yàn)樗墓ぷ骺瓷先ズ屯饨缦⑾⑾嚓P(guān)。另外,她的個(gè)性也啟發(fā)了我,讓我意識(shí)到我需要具備一些額外的研究技巧,才能對(duì)我感興趣的領(lǐng)域具有一定影響力。所以,我又回到了加州大學(xué)圣地亞哥分校,繼續(xù)攻讀我的社會(huì)學(xué)博士學(xué)位。

  現(xiàn)在,我已經(jīng)是一名獨(dú)立的研究員。去年,我獲得了富布萊特訪問(wèn)學(xué)者(Fulbright Fellow)的資助,我還從事著咨詢的工作,負(fù)責(zé)幾個(gè)項(xiàng)目,有時(shí)還會(huì)對(duì)外界做報(bào)告。上一次做報(bào)告是在里昂證券公司,它是中國(guó)最大的股票交易和金融服務(wù)公司之一。我曾經(jīng)在諾基亞做過(guò)研究工作,并擁有微軟的訪問(wèn)學(xué)者資格。我尤其喜歡關(guān)注公司戰(zhàn)略層面的內(nèi)容。另外,我時(shí)常通過(guò)分析科技用戶的文化特性,使得投資者能夠更好的理解市場(chǎng),或者從不同的角度去理解用戶。比如說(shuō),我曾經(jīng)就“為什么谷歌會(huì)在中國(guó)失敗”寫過(guò)一些文章,并做過(guò)報(bào)告。我之所以會(huì)做這些工作,只是希望自己能有機(jī)會(huì)去分享我的研究成果,而不至于將來(lái)眼看著這些科技公司陷入困境。

  問(wèn):當(dāng)你“在現(xiàn)場(chǎng)”的時(shí)候,你實(shí)際上在做什么?

  答:我接受過(guò)社會(huì)學(xué)調(diào)研的培訓(xùn),我記錄時(shí)使用的是民族志的方法。這種方法要求我全身心的投入進(jìn)去,所以我去到中國(guó),同那里的人生活在一起,花大量的時(shí)間同他們一起吃飯、逛街等,從而理解他們的生活方式到底是怎么樣的。另外,還有一個(gè)目的就是了解他們是如何使用科技的。我尤其喜歡和低收入者、年輕人和外地務(wù)工人員打交道,因?yàn)槲艺J(rèn)為社會(huì)邊緣階層所形成“亞文化”是理解社會(huì)變遷和未來(lái)趨勢(shì)的關(guān)鍵。我在美國(guó)和墨西哥從事過(guò)社會(huì)研究工作,但是從 2005 年以后我就一直聚焦中國(guó)的發(fā)展。近幾年,中國(guó)人在科技使用上的變化是令人吃驚的,尤其是在互聯(lián)網(wǎng)和手機(jī)的使用方面。和美國(guó)不同的是,中國(guó)一些低收入甚至更邊緣化的人群在手機(jī)購(gòu)買方面增長(zhǎng)得特別快,這得歸功于政府積極建設(shè)無(wú)線通信基礎(chǔ)設(shè)施,以及國(guó)有電信運(yùn)營(yíng)商之間競(jìng)爭(zhēng)激烈,導(dǎo)致資費(fèi)顯著下降。

  問(wèn):你在中國(guó)的研究開始之后,所關(guān)注的重點(diǎn)有沒(méi)有過(guò)變化?

  答:剛開始的時(shí)候,我專注的是外來(lái)務(wù)工人員,并花了很多時(shí)間泡在網(wǎng)吧里面,里面有很多人在上網(wǎng)、打游戲和看電影,但是不少人在網(wǎng)上找工作的時(shí)候卻吃住都在網(wǎng)吧。我對(duì)中國(guó)中產(chǎn)階級(jí)和上層階級(jí)使用科技的情況從來(lái)沒(méi)有感興趣過(guò),因?yàn)槲铱床怀鰜?lái)他們同美國(guó)的情況有什么區(qū)別。當(dāng)我去年再次回到中國(guó)時(shí),發(fā)現(xiàn)那里又發(fā)生了很多變化——現(xiàn)在年輕人都在頻繁使用社交媒體。人們開始使用類似于 Twitter 和 Facebook 這樣的手機(jī)應(yīng)用,不過(guò)功能會(huì)有些不同。作為一個(gè)民族志學(xué)者,你很多時(shí)候沒(méi)有辦法選擇你所研究的對(duì)象,而且必須緊跟當(dāng)下發(fā)生的事情。我對(duì)社交媒體的關(guān)注并不是刻意的,但現(xiàn)在卻成了我研究的焦點(diǎn)。

  問(wèn):為什么和中國(guó)的社交媒體如此不同?

  答:在中國(guó),最重要的兩個(gè)社交媒體是人人網(wǎng)(基本上是抄襲 Facebook)和微博(與 Twitter 有點(diǎn)像)。一般來(lái)講,我們認(rèn)為沒(méi)有必要向美國(guó)以外的科技公司學(xué)習(xí),但對(duì) Twitter 而言,無(wú)疑應(yīng)該好好研究微博,并從中汲取一些靈感。微博看上去像是輕博客 Tumblr、游戲平臺(tái) Zynga、Facebook 和 Twitter 的混合體。它上面的消息帶有很多圖片,而 Twitter 往往是文字更多一些。在微博中,圖片直接就放在每條消息的下面,所以你不需要再次點(diǎn)擊就可以查看圖片。有些圖片往往同消息中的文字內(nèi)容非常不同,有時(shí)圖片中的內(nèi)容還可以是文字。

  問(wèn):用戶的使用情況怎么樣?

  答:微博歷史上的一個(gè)轉(zhuǎn)折點(diǎn)就是去年的動(dòng)車事件。網(wǎng)民拍攝了很多現(xiàn)場(chǎng)的照片,并發(fā)布到了微博上面,甚至有關(guān)于追尾瞬間發(fā)生的內(nèi)容。由于瘋狂轉(zhuǎn)發(fā),現(xiàn)場(chǎng)的信息也大量傳播了出去。目前,微博上出現(xiàn)了一種“長(zhǎng)微博”,這種工具允許你將發(fā)布的整篇文章轉(zhuǎn)化成 JPEG 圖片。點(diǎn)擊該圖片,里面的文字得以放大,這樣用戶就可以查看完整的內(nèi)容。雖然這看上去是一件微不足道的事情,但是從中你可以了解中國(guó)社交媒體的現(xiàn)況。同樣,如果是在美國(guó),我一般關(guān)注的是用戶如何黑掉社交媒體,因?yàn)楦鱾€(gè)國(guó)家的文化是不一樣的。

  問(wèn):你在工作中是如何使用社交媒體的?

  答:雖然一些研究人員對(duì)自己的工作相當(dāng)保密,但是我做的事情確是透明的。我告訴人們我在哪里,我常使用 Foursquare 和 Instagram,這樣我可以將我的文章轉(zhuǎn)發(fā)到 Tumblr、Facebook 和 Twitter 上。我盡可能在網(wǎng)絡(luò)上留下我的蹤跡,這可以提醒自己在網(wǎng)絡(luò)上從事的任何工作都是公開的,不管是在美國(guó)還是在中國(guó)。如果發(fā)生了任何事情,朋友都可以在網(wǎng)上找到我的位置。Instagram 是我在中國(guó)工作的主要工具,我可以在第一時(shí)間將實(shí)地研究報(bào)告發(fā)布到上面,既有圖片又有文字。做實(shí)地調(diào)查很枯燥、孤單,所以朋友們的實(shí)時(shí)回復(fù)可以讓我減少孤獨(dú)感。

posted @ 2012-07-14 10:15 BoyXiao 閱讀(129) | 評(píng)論 (0)編輯 收藏

Linq to xml 這個(gè)東西出來(lái)好多年了,但一直沒(méi)有機(jī)會(huì)在項(xiàng)目中用到,前段時(shí)間,終于項(xiàng)目中一些地方需要用到xml作為數(shù)據(jù)源,于是就體驗(yàn)了一把這個(gè),感覺還挺不錯(cuò)的,今天在此小結(jié)一下.

       首先我們來(lái)模擬一下一個(gè)真實(shí)的業(yè)務(wù)場(chǎng)景:在這里我們需要展示一個(gè)火車站上各個(gè)站臺(tái)上面燈光開關(guān)狀態(tài).假設(shè)每個(gè)站臺(tái)一共6個(gè)開關(guān),站臺(tái)我們用Station節(jié)點(diǎn)表示,站臺(tái)開關(guān)我們用SwitchNo來(lái)表示,在初始化(即默認(rèn)狀態(tài))的時(shí)候,我們需要表示成第一個(gè)站臺(tái)2個(gè)開關(guān)開著,第二個(gè)站臺(tái)3個(gè)開關(guān)開著,第三個(gè)站臺(tái)4個(gè)開關(guān)開著….

    那么我們可能需要的一個(gè)xml文件格式可能就是如下這個(gè)樣子: 

<?xml version="1.0" encoding="utf-8"?>
<Stations>
  <Station Id="1">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">0</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="2">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="3">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="4">
    <SwitchNo Id="1">0</SwitchNo>
    <SwitchNo Id="2">0</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="5">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">1</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="6">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">1</SwitchNo>
    <SwitchNo Id="6">1</SwitchNo>
  </Station>
</Stations>

 

下面我們就從xml數(shù)據(jù)的創(chuàng)建/查詢/修改這三個(gè)方面簡(jiǎn)單談一下吧.關(guān)于概念啥的就不啰嗦了,直接上代買吧.

1. 創(chuàng)建這個(gè)文件

/// <summary>
        /// 創(chuàng)建xml文件
        /// </summary>
        private void writeStationXmlData()
        {            
            string fileName = Path.Combine(dataPath, "StationWitch.xml");

            if (!Directory.Exists(dataPath))
                Directory.CreateDirectory(dataPath);

            if (File.Exists(fileName))
                return;

            var stationEleList = new List<XElement>();  //臨時(shí)緩存每個(gè)站臺(tái)節(jié)點(diǎn)

            //一共6個(gè)站臺(tái),循環(huán)創(chuàng)建           
            for (int i = 1; i < 7; i++)
            {
                var xAttr = new XAttribute("Id", i);

                //臨時(shí)緩存每個(gè)每個(gè)站臺(tái)下的開關(guān)狀態(tài)
                var childList = new List<XElement>();       
                for (int j = 1; j < 7; j++)
                {
                    childList.Add(new XElement("SwitchNo", new XAttribute("Id", j), i >= j ? 1 : 0));
                }

                //構(gòu)建一個(gè)站臺(tái)節(jié)點(diǎn)
                var stationEle = new XElement("Station", xAttr, childList.ToArray());
                stationEleList.Add(stationEle);
            }

            //構(gòu)建Stations節(jié)點(diǎn)
            XElement xBody = new XElement("Stations", stationEleList.ToArray());

            //構(gòu)建整個(gè)文檔
            XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"), xBody);
            doc.Save(fileName);
        }

2. 讀取當(dāng)前xml 文件并轉(zhuǎn)化為友好的類型

/// <summary>
        /// 查詢讀取每個(gè)站臺(tái)的開關(guān)狀態(tài)并轉(zhuǎn)化為keyValue鍵值對(duì)
        /// </summary>
        /// <returns></returns>
        public IList<KeyValue<int, int>> GetStationLightData()
        {
            writeStationXmlData();
            if (stationLightData == null)
            {
                stationLightData = new List<KeyValue<int, int>>();
                stationSwitchStatus = new List<KeyValue<int, bool>>();                

                //加載xml
                string fileName = Path.Combine(dataPath, "StationWitch.xml");
                XElement doc = XElement.Load(fileName);

                //讀取站臺(tái)列表
                var station = from s in doc.Descendants("Station")
                              select s;
                //遍歷站臺(tái)
                foreach (var st in station)
                {
                    //獲取每個(gè)站臺(tái)的開關(guān)集合 即SwitchNo節(jié)點(diǎn)
                    var st_switchs = st.Elements("SwitchNo");
                    var stationId = int.Parse(st.Attribute("Id").Value);
                    int light = 0;
                    foreach (var sw in st_switchs)
                    {
                        var swithNo = int.Parse(sw.Attribute("Id").Value);
                        bool isOn = sw.Value == "1";
                        if (isOn)
                            light += 20;
                        stationSwitchStatus.Add(new KeyValue<int, bool>(stationId, isOn, swithNo));
                    }
                    stationLightData.Add(new KeyValue<int, int>(stationId, light));
                }
            }
            return stationLightData;
        }

3.更新節(jié)點(diǎn)值(先查詢找到指定的節(jié)點(diǎn) 在更新后保存)

 /// <summary>
        /// 更新制定站臺(tái)中的指定開關(guān)的狀態(tài),即更新制定Station->SwitchNo節(jié)點(diǎn)下值
        /// </summary>
        /// <param name="station"></param>
        /// <param name="switchNo"></param>
        /// <param name="isOn"></param>
        public void UpdateStationSwitchStatus(int station, int switchNo, bool isOn)
        {
            string fileName = Path.Combine(dataPath, "StationWitch.xml");
            //讀取數(shù)據(jù)
            XElement doc = XElement.Load(fileName);
            var up_station = doc.Descendants("Station")
                .Where(o => o.Attribute("Id").Value == station.ToString()).FirstOrDefault();

            //找出指定的節(jié)點(diǎn)
            var upSwitch = up_station.Elements("SwitchNo").FirstOrDefault(o => o.Attribute("Id").Value == switchNo.ToString());

            //更新
            if (upSwitch != null)
            {
                upSwitch.Value = isOn ? "1" : "0";
            }

            //保存為文件
            lock (sync)
            {
                doc.Save(fileName);
            }
        }

至此,xml的常規(guī)操作就介紹完了,希望能對(duì)有需要的同學(xué)有所幫助.

posted @ 2012-07-14 10:15 BoyXiao 閱讀(115) | 評(píng)論 (0)編輯 收藏

攸關(guān)政府資安設(shè)備採(cǎi)購(gòu)的臺(tái)銀共同供應(yīng)契約網(wǎng)路及資訊安全設(shè)備類(LP5-990074),自從去年新制訂出「加值服務(wù)選項(xiàng)」規(guī)格,要求必須通過(guò)資訊安全產(chǎn)品評(píng)估之共同準(zhǔn)則(Common Criteria, CC)ISO/IEC 15408定義之評(píng)估保證等級(jí)(EAL)檢測(cè)認(rèn)證之產(chǎn)品可被採(cǎi)購(gòu)勾選。公告一出,對(duì)臺(tái)灣資安設(shè)備市場(chǎng)造成不小衝擊。而NCC經(jīng)過(guò)一年努力推動(dòng)臺(tái)灣版資通設(shè)備安全檢測(cè)認(rèn)證,並期望在今年7月臺(tái)銀換約時(shí)也被納入加值服務(wù)選項(xiàng)認(rèn)可中,但目前看來(lái)仍有變數(shù)。

 

去年臺(tái)銀祭出這項(xiàng)公告,首波是在入侵偵測(cè)防禦系統(tǒng)、防火牆與防毒閘道器等三類產(chǎn)品的採(cǎi)購(gòu)案中。據(jù)臺(tái)銀統(tǒng)計(jì),自去年公告至今年4月為止,在這三類的產(chǎn)品採(cǎi)購(gòu)案中,有近半數(shù)的採(cǎi)購(gòu)案均勾選需要此加值服務(wù)選項(xiàng)功能。

 

而有無(wú)加值服務(wù)功能最大的差別就是反映在售價(jià)上。以1Gbps吞吐量的防火牆來(lái)說(shuō),含加值服務(wù)功能的產(chǎn)品售價(jià)約比不含此功能的產(chǎn)品高出5倍,而以500Mbps的入侵偵測(cè)防禦系統(tǒng)來(lái)說(shuō),也有2倍的價(jià)差。

 

由於目前取得CC認(rèn)證以外商品牌居多,因此市場(chǎng)上呈現(xiàn)幾家歡樂(lè)幾家愁現(xiàn)象。在國(guó)外政府標(biāo)案市場(chǎng)中,常見資安設(shè)備以國(guó)土安全為由,被設(shè)定採(cǎi)購(gòu)門檻,外商需要配合該國(guó)各種規(guī)定才有機(jī)會(huì)得標(biāo)。本土廠商認(rèn)為此次臺(tái)灣政府不扶植本土業(yè)者就罷了,臺(tái)銀此舉將本土品牌屏除在這些加值選項(xiàng)之外,將不利國(guó)內(nèi)資安產(chǎn)業(yè)的發(fā)展。

 

通傳會(huì)NCC所推動(dòng)的臺(tái)灣版CC認(rèn)證,其包含書面審查與實(shí)機(jī)檢測(cè)兩部分,目前已制定出8類資通設(shè)備安全檢測(cè)技術(shù)規(guī)範(fàn)(網(wǎng)路型防火牆等8類IS0008~IS0015),而國(guó)外CC認(rèn)證只包含書面審查。然而自去年NCC開始舉辦檢測(cè)說(shuō)明會(huì),迄今本土廠商投入準(zhǔn)備此認(rèn)證的廠商卻不多,有業(yè)者認(rèn)為此認(rèn)證目前尚未被臺(tái)銀共同供應(yīng)契約認(rèn)可,耗費(fèi)金錢、人力資源投入也未必看得到結(jié)果,目前先觀望。

 

臺(tái)銀委託二科表示,此認(rèn)證能否暨CC之後,也被納入加值服務(wù)選項(xiàng),目前仍在研議中,將視取得認(rèn)證通過(guò)的家數(shù)來(lái)衡量。NCC技術(shù)管理處羅金賢副處長(zhǎng)指出,近期將與臺(tái)銀協(xié)調(diào),請(qǐng)臺(tái)銀支持政府政策,將技術(shù)規(guī)範(fàn)納入加值服務(wù)選項(xiàng)當(dāng)中。

posted @ 2012-07-14 10:13 BoyXiao 閱讀(156) | 評(píng)論 (0)編輯 收藏

Linq to xml 這個(gè)東西出來(lái)好多年了,但一直沒(méi)有機(jī)會(huì)在項(xiàng)目中用到,前段時(shí)間,終于項(xiàng)目中一些地方需要用到xml作為數(shù)據(jù)源,于是就體驗(yàn)了一把這個(gè),感覺還挺不錯(cuò)的,今天在此小結(jié)一下.

       首先我們來(lái)模擬一下一個(gè)真實(shí)的業(yè)務(wù)場(chǎng)景:在這里我們需要展示一個(gè)火車站上各個(gè)站臺(tái)上面燈光開關(guān)狀態(tài).假設(shè)每個(gè)站臺(tái)一共6個(gè)開關(guān),站臺(tái)我們用Station節(jié)點(diǎn)表示,站臺(tái)開關(guān)我們用SwitchNo來(lái)表示,在初始化(即默認(rèn)狀態(tài))的時(shí)候,我們需要表示成第一個(gè)站臺(tái)2個(gè)開關(guān)開著,第二個(gè)站臺(tái)3個(gè)開關(guān)開著,第三個(gè)站臺(tái)4個(gè)開關(guān)開著….

    那么我們可能需要的一個(gè)xml文件格式可能就是如下這個(gè)樣子: 

<?xml version="1.0" encoding="utf-8"?>
<Stations>
  <Station Id="1">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">0</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="2">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="3">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">0</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="4">
    <SwitchNo Id="1">0</SwitchNo>
    <SwitchNo Id="2">0</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">0</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="5">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">1</SwitchNo>
    <SwitchNo Id="6">0</SwitchNo>
  </Station>
  <Station Id="6">
    <SwitchNo Id="1">1</SwitchNo>
    <SwitchNo Id="2">1</SwitchNo>
    <SwitchNo Id="3">1</SwitchNo>
    <SwitchNo Id="4">1</SwitchNo>
    <SwitchNo Id="5">1</SwitchNo>
    <SwitchNo Id="6">1</SwitchNo>
  </Station>
</Stations>

 

下面我們就從xml數(shù)據(jù)的創(chuàng)建/查詢/修改這三個(gè)方面簡(jiǎn)單談一下吧.關(guān)于概念啥的就不啰嗦了,直接上代買吧.

1. 創(chuàng)建這個(gè)文件

/// <summary>
        /// 創(chuàng)建xml文件
        /// </summary>
        private void writeStationXmlData()
        {            
            string fileName = Path.Combine(dataPath, "StationWitch.xml");

            if (!Directory.Exists(dataPath))
                Directory.CreateDirectory(dataPath);

            if (File.Exists(fileName))
                return;

            var stationEleList = new List<XElement>();  //臨時(shí)緩存每個(gè)站臺(tái)節(jié)點(diǎn)

            //一共6個(gè)站臺(tái),循環(huán)創(chuàng)建           
            for (int i = 1; i < 7; i++)
            {
                var xAttr = new XAttribute("Id", i);

                //臨時(shí)緩存每個(gè)每個(gè)站臺(tái)下的開關(guān)狀態(tài)
                var childList = new List<XElement>();       
                for (int j = 1; j < 7; j++)
                {
                    childList.Add(new XElement("SwitchNo", new XAttribute("Id", j), i >= j ? 1 : 0));
                }

                //構(gòu)建一個(gè)站臺(tái)節(jié)點(diǎn)
                var stationEle = new XElement("Station", xAttr, childList.ToArray());
                stationEleList.Add(stationEle);
            }

            //構(gòu)建Stations節(jié)點(diǎn)
            XElement xBody = new XElement("Stations", stationEleList.ToArray());

            //構(gòu)建整個(gè)文檔
            XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"), xBody);
            doc.Save(fileName);
        }

2. 讀取當(dāng)前xml 文件并轉(zhuǎn)化為友好的類型

/// <summary>
        /// 查詢讀取每個(gè)站臺(tái)的開關(guān)狀態(tài)并轉(zhuǎn)化為keyValue鍵值對(duì)
        /// </summary>
        /// <returns></returns>
        public IList<KeyValue<int, int>> GetStationLightData()
        {
            writeStationXmlData();
            if (stationLightData == null)
            {
                stationLightData = new List<KeyValue<int, int>>();
                stationSwitchStatus = new List<KeyValue<int, bool>>();                

                //加載xml
                string fileName = Path.Combine(dataPath, "StationWitch.xml");
                XElement doc = XElement.Load(fileName);

                //讀取站臺(tái)列表
                var station = from s in doc.Descendants("Station")
                              select s;
                //遍歷站臺(tái)
                foreach (var st in station)
                {
                    //獲取每個(gè)站臺(tái)的開關(guān)集合 即SwitchNo節(jié)點(diǎn)
                    var st_switchs = st.Elements("SwitchNo");
                    var stationId = int.Parse(st.Attribute("Id").Value);
                    int light = 0;
                    foreach (var sw in st_switchs)
                    {
                        var swithNo = int.Parse(sw.Attribute("Id").Value);
                        bool isOn = sw.Value == "1";
                        if (isOn)
                            light += 20;
                        stationSwitchStatus.Add(new KeyValue<int, bool>(stationId, isOn, swithNo));
                    }
                    stationLightData.Add(new KeyValue<int, int>(stationId, light));
                }
            }
            return stationLightData;
        }

3.更新節(jié)點(diǎn)值(先查詢找到指定的節(jié)點(diǎn) 在更新后保存)

 /// <summary>
        /// 更新制定站臺(tái)中的指定開關(guān)的狀態(tài),即更新制定Station->SwitchNo節(jié)點(diǎn)下值
        /// </summary>
        /// <param name="station"></param>
        /// <param name="switchNo"></param>
        /// <param name="isOn"></param>
        public void UpdateStationSwitchStatus(int station, int switchNo, bool isOn)
        {
            string fileName = Path.Combine(dataPath, "StationWitch.xml");
            //讀取數(shù)據(jù)
            XElement doc = XElement.Load(fileName);
            var up_station = doc.Descendants("Station")
                .Where(o => o.Attribute("Id").Value == station.ToString()).FirstOrDefault();

            //找出指定的節(jié)點(diǎn)
            var upSwitch = up_station.Elements("SwitchNo").FirstOrDefault(o => o.Attribute("Id").Value == switchNo.ToString());

            //更新
            if (upSwitch != null)
            {
                upSwitch.Value = isOn ? "1" : "0";
            }

            //保存為文件
            lock (sync)
            {
                doc.Save(fileName);
            }
        }

至此,xml的常規(guī)操作就介紹完了,希望能對(duì)有需要的同學(xué)有所幫助.

posted @ 2012-07-14 10:10 BoyXiao 閱讀(144) | 評(píng)論 (0)編輯 收藏
僅列出標(biāo)題
共2頁(yè): 1 2 

導(dǎo)航

留言簿(43)

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线亚洲+欧美+日本专区| 亚洲三级电影全部在线观看高清| 久久三级福利| 免费成人av在线| 亚洲尤物在线| 欧美h视频在线| 久久av红桃一区二区小说| 欧美韩国日本综合| 久久国产精品久久国产精品| 国产亚洲精品bt天堂精选| 亚洲国产精彩中文乱码av在线播放| 亚洲精品自在久久| 一区一区视频| 中文在线资源观看视频网站免费不卡| 影音先锋日韩资源| 羞羞色国产精品| 国产一区二区三区的电影 | 欧美日韩在线不卡| 久热精品视频在线| 欧美日韩国产123区| 亚洲成人在线网站| 狠狠88综合久久久久综合网| 午夜精品久久久久久久久久久久久| 99精品国产福利在线观看免费| 久久不射中文字幕| 新片速递亚洲合集欧美合集| 欧美理论大片| 亚洲美女在线国产| 亚洲欧洲日夜超级视频| 欧美一区二区网站| 亚洲日本理论电影| 久久影院午夜论| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久国产综合精品| 夜夜嗨av一区二区三区免费区| 亚洲乱码国产乱码精品精| 欧美国产日韩免费| 欧美专区亚洲专区| 女人色偷偷aa久久天堂| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩精品一区二区三区| 久久久精品动漫| 亚洲国产第一页| 久久欧美肥婆一二区| 亚洲影音先锋| 在线亚洲欧美视频| 亚洲精品国产精品国自产观看| 欧美精品在欧美一区二区少妇| 欧美中文字幕视频| 亚洲欧美在线网| 在线亚洲自拍| 日韩亚洲视频| 亚洲精品一区二| 亚洲高清视频一区二区| 久久天天综合| 久久久午夜视频| 久久不射中文字幕| 亚洲欧美日本另类| 国产亚洲精品7777| 国产精品一区二区你懂的| 亚洲女人av| 欧美二区乱c少妇| 一区二区高清视频| 99国产精品99久久久久久粉嫩| 亚洲国产精品v| 国产精品女主播| 欧美亚洲免费| 午夜精品视频| 午夜精品久久久久99热蜜桃导演| 亚洲伊人网站| 欧美成在线视频| 欧美国产视频在线| 亚洲一区久久| 亚洲已满18点击进入久久| 在线综合亚洲| 亚洲伊人一本大道中文字幕| 亚洲欧美激情诱惑| 欧美一级视频免费在线观看| 亚洲欧美日本国产专区一区| 欧美在线视频日韩| 久久久欧美精品sm网站| 美女被久久久| 亚洲视频久久| 亚洲欧洲日本国产| 一区二区日韩| 亚洲欧美视频在线| 亚洲经典视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆 | 9色国产精品| 亚洲一级在线| 亚洲三级影院| 亚洲一线二线三线久久久| 亚洲欧美综合精品久久成人| 欧美一级专区免费大片| 久久综合国产精品| 性感少妇一区| 麻豆精品国产91久久久久久| 欧美激情精品| 国产欧美日韩不卡| 麻豆精品网站| 亚洲精品女av网站| av成人天堂| 久久精品99无色码中文字幕| 欧美阿v一级看视频| 久久久久久夜| 久久九九久精品国产免费直播| 毛片基地黄久久久久久天堂| 欧美精品国产一区二区| 欧美电影在线播放| 国产精品高潮呻吟久久av黑人| 老司机久久99久久精品播放免费| 欧美国产精品专区| 国产欧美一区二区三区在线看蜜臀| 精品成人一区二区三区四区| 亚洲午夜电影网| 亚洲一区二区在线观看视频| 老司机精品视频网站| 国产精品99久久久久久有的能看 | 久久精品视频亚洲| 久久久人人人| 99国产精品久久久久久久成人热| 久久国产精品亚洲va麻豆| 欧美日韩精品免费观看视一区二区 | 亚洲网站在线播放| 欧美成黄导航| 狠狠做深爱婷婷久久综合一区| 亚洲一二区在线| 亚洲成人在线视频网站| 欧美怡红院视频一区二区三区| 欧美色图五月天| 国产精品v亚洲精品v日韩精品| 国产精品九九久久久久久久| 亚洲国产小视频| 久久亚洲国产成人| 亚洲欧美日本日韩| 欧美日韩在线三区| 日韩视频精品在线观看| 麻豆成人91精品二区三区| 亚洲一区二区免费看| 欧美日韩国产在线播放网站| 亚洲黄页一区| 欧美 日韩 国产一区二区在线视频 | 国产精品午夜在线观看| 国产欧美一区二区白浆黑人| 在线亚洲一区| 日韩一区二区免费高清| 欧美大片va欧美在线播放| 激情一区二区| 免费不卡在线观看| 久久精品道一区二区三区| 国产视频在线观看一区 | 免费在线观看一区二区| 欧美一区在线看| 国产无一区二区| 久久久精品动漫| 亚洲国产高清在线| 免费在线欧美黄色| 亚洲欧洲在线一区| 亚洲国产成人av| 欧美精品亚洲精品| 中国成人亚色综合网站| 一区二区三区四区蜜桃| 欧美专区福利在线| 狠色狠色综合久久| 欧美成人亚洲成人| 欧美国产日韩视频| 一区二区三区视频在线| 中文国产一区| 国产日韩专区| 能在线观看的日韩av| 免费毛片一区二区三区久久久| 亚洲美女福利视频网站| 亚洲美女福利视频网站| 欧美午夜一区| 久久国产手机看片| 久久久久久夜| 一卡二卡3卡四卡高清精品视频 | 欧美成人日韩| 欧美黄网免费在线观看| 亚洲一区中文| 欧美一区二区三区四区在线| 1024日韩| 久久久久久综合网天天| 久久久久久亚洲精品中文字幕| 亚洲激情在线观看| 亚洲美女福利视频网站| 国产欧美综合一区二区三区| 狂野欧美性猛交xxxx巴西| 欧美激情精品久久久久久变态| 亚洲一区免费看| 久久精品亚洲热| 一区二区三区精品久久久| 亚洲欧美国产精品桃花 | 一本到高清视频免费精品| 宅男在线国产精品| 精品成人一区二区| 99成人在线| 亚洲盗摄视频| 亚洲午夜精品福利| 亚洲国产一区视频|