成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows Shell知名程序員:如果兩個(gè)程序都這樣做會(huì)怎樣?

開發(fā) 項(xiàng)目管理
在腦子里“設(shè)想如果可以這樣”,這種方法能幫助你理解Windows是否會(huì)允許讓你做這種或那種事情。如果這種設(shè)想會(huì)明顯的導(dǎo)致一種自相矛盾的情況,或跟人們已經(jīng)接受的原則體系相沖突,那你可以明確的得出Windows不會(huì)支持這種行為的結(jié)論。

本文作者介紹

Raymond Chen
[[88947]]

Raymond Chen是微軟Windows Shell開發(fā)團(tuán)隊(duì)中的知名程序員,從1992年加入微軟開始,他參與過OS/2,Windows 95,DirectX已經(jīng)以后版本的Windows的開發(fā)。他的關(guān)于Windows的發(fā)展以及Win32編程個(gè)人博客“The Old New Thing”是微軟MSDN上***的個(gè)人博客之一。著有同名書籍《The Old New Thing》,中文譯名為《Windows編程啟示錄》。Raymond還為Microsoft TechNet撰寫專欄文章。

在腦子里“設(shè)想如果可以這樣”,這種方法能幫助你理解Windows是否會(huì)允許讓你做這種或那種事情。如果這種設(shè)想會(huì)明顯的導(dǎo)致一種自相矛盾的情 況,或跟人們已經(jīng)接受的原則體系相沖突,那你可以明確的得出Windows不會(huì)支持這種行為的結(jié)論。(當(dāng)然,如果沒有明顯的矛盾或沖突,也不能證明 Windows就一定會(huì)支持這種操作。但用這種方法你可以排除一些明顯的不正確的想法。)

問“如果兩個(gè)程序都這樣做會(huì)怎樣?”也是一種非常有用的甄別一個(gè)功能特征或設(shè)計(jì)想法是否合理的好方法。配合“設(shè)想如果可以這樣”,它們能成為一個(gè)漂亮的組合拳。下面是幾個(gè)例子:

  “我怎么才能創(chuàng)建一個(gè)窗口,讓它永遠(yuǎn)不會(huì)被其它窗口覆蓋,即使那些最上層的窗口也不行?”

假設(shè)這樣如果是可以的,加上如果有兩個(gè)程序都這樣做。程序A創(chuàng)建了一個(gè)“最上層”的窗口,程序B也這樣做了。現(xiàn)在用戶拖動(dòng)這兩個(gè)窗口,讓它們重疊,會(huì)發(fā)生什么?你給自己創(chuàng)造了一個(gè)邏輯沖突。這兩個(gè)窗口必須有一個(gè)在上,一個(gè)在下,推翻了假想的“超級(jí)最上層”設(shè)計(jì)想法。

  “如何突出我的進(jìn)程,讓它成為在系統(tǒng)關(guān)機(jī)時(shí)***個(gè)/***一個(gè)接到通知?我想在系統(tǒng)關(guān)機(jī)時(shí)在所有其它程序退出之前/之后做一些事情。”

假設(shè)如果這樣可能,假設(shè)兩個(gè)程序都這樣做。你現(xiàn)在有了兩個(gè)程序都希望做***/***。但你不可能有兩個(gè)***或兩個(gè)***。其中有一個(gè)必須要放棄。(這個(gè)可以推廣到其他的人們想要***或***的事情上。)

  “如何能保證當(dāng)用戶雙擊.XYZ文件時(shí)總是我的關(guān)聯(lián)程序會(huì)啟動(dòng)運(yùn)行?”

假設(shè)這是可能的,假設(shè)兩個(gè)程序都想這樣。當(dāng)用戶點(diǎn)擊.XYZ文件時(shí),哪個(gè)程序運(yùn)行?

這種情況下的一種解決方案是用戶來選擇文件的關(guān)聯(lián)程序;但一旦用戶決定讓另外一個(gè)程序來執(zhí)行.XYZ文件,那你不得不接受這樣的事實(shí)。

對(duì)于很多這種“我想成為這最X”類型的問題,程序員通常會(huì)想出一些伎倆,比如運(yùn)行一個(gè)定時(shí)器周期性的檢查自己是否仍是最X,如果不是,就重新把它推到X位。不久,你就會(huì)開始停下來思考,“如果兩個(gè)程序都這樣做會(huì)怎樣?”,于是認(rèn)識(shí)到這是一個(gè)糟糕的想法。

就算是我這樣解釋了,很多人仍然不得要領(lǐng)。我讓他們?nèi)ハ胂?ldquo;如果兩個(gè)程序都這樣做會(huì)怎樣?它們會(huì)打架,”而我得到的回復(fù)是,“我可以讓第二個(gè)程序檢查***個(gè)程序是否在運(yùn)行。”他們不明白第二個(gè)程序不是他們寫的。

當(dāng)出現(xiàn)兩個(gè)程序這樣“互毆”時(shí),我們無法預(yù)料哪一個(gè)會(huì)贏,但我們可以確定的、100%的預(yù)料的誰會(huì)輸:用戶。

我還清楚的記得有一回同事讓我看有兩個(gè)非常流利的商業(yè)軟件都想成為當(dāng)用戶點(diǎn)擊.XYZ文檔時(shí)被調(diào)用的程序。因?yàn)檫@是沒法保證的,于是軟件里就提供了定時(shí)檢查的程序試圖解決這個(gè)問題。

你安裝了***個(gè)程序,它把自己設(shè)置成.XYZ文件的關(guān)聯(lián)程序,這看起來很正常。然后你安裝了第二個(gè)程序,它也把自己設(shè)置成.XYZ文件的關(guān)聯(lián)程序, 這樣***個(gè)程序就跳出來說,“不,.XYZ應(yīng)該是由我來處理的”,并且把文件關(guān)聯(lián)改了回去。而第二個(gè)程序也說,“沒門,我才是處理.XYZ文件的程序”, 并且把自己重置回去。

這種小孩斗氣式的游戲進(jìn)行的時(shí)候,用戶只能無助的坐在那里發(fā)愣的看著.XYZ文件的圖標(biāo)在兩個(gè)程序間換來換去。這兩個(gè)程序都堅(jiān)持認(rèn)為讓自己來處理.XYZ文件是在為用戶著想。

原文鏈接:http://blogs.msdn.com/b/oldnewthing/archive/2005/06/07/426294.aspx

譯文鏈接:http://www.aqee.net/what-if-two-programs-did-this/

責(zé)任編輯:陳四芳 來源: 外刊IT評(píng)論
相關(guān)推薦

2013-07-05 10:52:07

程序員結(jié)對(duì)編程

2015-02-05 09:54:13

程序員

2018-06-21 08:12:01

中文編程編碼

2016-12-06 10:12:07

程序員開會(huì)

2013-05-10 09:31:06

程序員

2011-07-13 15:23:22

程序員

2015-07-14 10:21:58

2018-06-25 13:37:13

2018-08-02 16:00:26

程序員專家自我學(xué)習(xí)

2022-08-11 09:41:35

阿里程序員

2021-07-05 07:28:14

程序員菜鳥技術(shù)

2014-05-09 15:29:21

2021-09-28 09:57:50

程序員技能開發(fā)

2015-05-13 10:42:21

程序員代碼

2013-08-30 09:54:18

2012-11-01 11:31:56

程序員編程開發(fā)

2014-09-24 09:37:05

程序員

2020-06-15 09:32:59

程序員大公司小公司

2015-05-18 09:23:33

2016-12-21 11:35:55

Python程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91久久精品一区二区二区 | 91久久| 免费成人av | 精品欧美一区免费观看α√ | 久久天天| 日韩精品一区二区三区免费观看 | 国产69精品久久99不卡免费版 | 国产精品视频久久久 | 成人精品国产 | 日韩精品一区二区三区 | 日日干天天操 | 国产一区亚洲二区三区 | 久久国产精品色av免费观看 | 久久国 | 国产综合久久 | 91在线观看网址 | 日韩国产中文字幕 | 精品免费国产视频 | 欧美日韩在线看 | 国产精品久久久久久久免费大片 | 国产一区二区精品在线观看 | 欧美日韩一区精品 | 羞羞视频免费观 | 国产精品国产成人国产三级 | 亚洲国产aⅴ精品一区二区 免费观看av | 久久精品网 | 成人午夜精品 | 神马久久久久久久久久 | 成人精品视频99在线观看免费 | 亚洲激精日韩激精欧美精品 | 国产九九九九 | 欧美在线精品一区 | 亚洲精选一区 | 国产精品一区在线播放 | 国产精品精品视频 | 国产东北一级毛片 | 国产成人综合网 | 一区二区高清 | 久久久久久一区 | 日韩一区二区三区视频 | 日本中文字幕视频 |