《偉大的產品:Windows進化啟示錄》是2016年電子工業出版社出版的圖書,作者是雷蒙德·陳。
基本介紹
- 書名:偉大的產品:Windows進化啟示錄
- 作者:【美】Raymond Chen(雷蒙德·陳)
- 譯者:聶雪軍
- ISBN:9787121278297
- 頁數:476
- 定價:99.00元
- 出版社:電子工業出版社
- 出版時間:2016年3月
- 開本:16開
編輯推薦,內容提要,目錄,精彩節摘,作者簡介,媒體評論,
編輯推薦
儘管一直被吐槽,但是Windows依然是用得最多的個人作業系統。是什麼原因讓人對它吐槽不斷,卻又始終不離不棄?讀完本書,相信你會有答案。從Windows 中‘開始(Start)’按鈕的設計過程,到討論只有極客們才會喜歡的GlobalAlloc,本書幾乎涵蓋了Windows 系統從高層到低層的方方面面,既有引人入勝的小八卦,也有深入的技術分析,它將幫助你真正地體會在設計和編寫高質量軟體產品的過程中存在的困難和不易。
內容提要
憑藉在微軟Windows 開發團隊十多年的工作經驗,作者Raymond Chen 將向你揭示你不可不知的Windows 系統內幕。《偉大的產品:Windows進化啟示錄》的許多內容都是講述某項技術的來龍去脈,通過了解這些歷史故事,你不僅可以更加透徹地理解Windows 的設計思想,還可以澄清一些由來已久的誤解。
對於Windows 平台的開發者,閱讀《偉大的產品:Windows進化啟示錄》有助於提高工作效率;而對於軟體產品經理、UI 設計人員,則能從其中獲得不少有益的啟示。
目錄
第 1 章 用戶界面設計初探
為什麼要單擊“開始(Start)”按鈕來關機
為什麼Windows 沒有“專家模式(expert mode)”
對話框的默認按鈕是“取消”
最好的設定是:即使你沒有意識到這些設定的存在,但它們依然按照你所期望的
方式在工作
為了顯示我們的超群智慧,現在就來問一個你回答不了的問題
為什麼安裝程式不會問你是否希望保留作業系統檔案的新版本
功能設計的思考
什麼時候應該禁止選項,而什麼時候又該刪除選項
什麼時候應該將“…”放在按鈕或者選單項的後面
自動售貨機的用戶界面設計
室內門鎖的用戶界面設計
Windows 用戶界面中“睫毛膏”的演變
第 2章 Windows 95 的精選回憶錄
為什麼在世界地圖中,當前時區沒有被加亮顯示
為什麼當記憶體超過 1GB 時,Windows 95 無法啟動
為什麼在Windows 95 中有些函式叫作BEAR、 BUNNY 和PIGLET
BOZOSLIVEHERE 和TABTHETEXTTOUTFORWIMPS 表示什麼含義
在Windows 95 特別版的包裝盒中都有些什麼東西
Windows 95 引出了每個人的羅爾沙赫氏測試
登錄時的武術圖片
為什麼一個非常大的詞典反而不好
了解Windows 95 的啟動聲音
如果不在意正確性,寫專欄文章是很容易的
為什麼在系統屬性頁中對記憶體的大小進行了取整
為什麼硬碟指示燈每隔幾秒鐘閃一下
尋求更快的系統陷阱
一個位元組曾經價值一美元
每個產品支持電話的成本相當於賣出一個Windows 拷貝
為什麼在Windows 的光碟中沒有包含Tweak UI
不能通過xcopy 來安裝Windows
買下一個Egghead 軟體商店
Windows PowerToys 的歷史故事
Windows 如何選擇最終構建編號
為什麼在安裝系統補丁包時系統的構建編號不會增加
第 3 章 GetWindowText 函式的秘密
視窗如何管理文本
深入了解GetWindowText 函式
如果我不喜歡這些規則,那該怎么辦
能否給出一個示例程式來說明這種差異
為什麼GetWindowText 的規則如此奇怪
第 4 章 系統列與通知區域
為什麼有些人把系統列叫作“托盤”
為什麼系統列默認是在螢幕的底部
為什麼在系統列中的時鐘並不顯示秒
為什麼不在系統列中顯示模擬時鐘
為什麼當系統列豎直停靠時,“開始”按鈕上的文本消失了
為什麼當用戶單擊“X”按鈕,通知圖示不會收到訊息
第 5 章 令人困惑的界面問題
那些小小的覆蓋圖示是什麼
為什麼當我登錄時,有些不希望看到的檔案/資料夾會自動打開
對檔案來說,檔案名稱字型的顏色代表什麼含義
為什麼在高級選項對話框中,在每個選項後面都會加上“開”或者“關”
Alt+Tab 中的圖示順序是如何確定的
為什麼資料夾的“唯讀”屬性非常奇怪
當我單擊空白系統列按鈕時,這些按鈕消失了,發生了什麼事
“最小化所有視窗”和“顯示桌面”之間的區別是什麼
在選單中的粗體文本表示什麼含義
自定義的網頁圖示是從何而來的
任務管理器的標籤和按鈕到哪裡去了
拖動一個檔案是表示移動還是複製
為什麼“連結”資料夾總是不斷地自我創建
為什麼同時選擇多個文檔進行列印時,文檔的列印順序是亂的
我在產品支持部門的一天
吹掉連線器上的灰塵
1G 位元組到底有多少
為什麼不能刪除“僅用於測試/評估”的標記
第 6 章 GlobalAlloc 函式的歷史
從前的故事
選擇符
過渡到Win 32
實現示例
第 7 章 Windows 編程中的一些話題
“臨時”程式
獲得在標題圖示中的自定義右鍵選單
CreateMenu 與CreatePopupMenu 有什麼區別
為什麼視窗管理器會自動銷毀選單
僅當視窗在螢幕上可見時才進行繪製
判斷視窗是否被覆蓋了
用點陣圖刷來實現平鋪效果
DC 畫刷的好處是什麼
用ExtTextOut 函式來繪製實心矩形
用StretchBlt 函式來繪製實心矩形
在顯示字元串時去掉那些難看的方框
沒有所有者的信號量
自動復位的事件只是一個毫無意義的信號量
第8 章 視窗管理
為什麼會收到偽WM_MOUSEMOVE 訊息
為什麼沒有WM_MOUSEENTER 訊息
白屏
空心畫刷的作用是什麼
桌面視窗有什麼特殊的地方
禁止視窗和激活視窗的正確順序
恢復視窗位置時的問題
界面模態與代碼模態
WM_QUIT 訊息與模態
為模態界面設定正確的所有者視窗
與進入模態的程式進行互動
定時訊息框的簡單版本
臨時視窗
在GWLP_USERDATA 中的附加視窗數據
定時訊息框的改進版本
定時右鍵選單
為什麼視窗在被銷毀之後還會收到訊息
第 9 章 關於硬體的回憶錄
硬體的向後兼容性
光碟機
微軟公司的網路:比“地獄”差 1.7 倍
有時候製造商會自取其辱
欺騙WHQL 的驅動程式認證過程
20 英尺長的計算機
USB 手推車
檢測到了新設備:波音 747
超頻帶來的問題
第 10 章 對話框管理器的內部工作機制
關於對話框過程
對話框模板的發展
為什麼需要對話框模板
對話框是如何創建的
模態對話框的訊息循環
嵌套對話框以及DS_CONTROL
為什麼需要對話框循環
為什麼對話框編輯器從 100 開始設定控制項的ID
在DefDlgProc 函式中做了哪些工作
不要將焦點設定在被禁止的控制項上
在IsDialogMessage 中做了什麼工作
為什麼有些訊息框中的“X”按鈕是被禁止的
第11 章 常見的軟體問題
為什麼夏令時與我們的直覺不同
為什麼當檔案複製到軟碟時,檔案的時間戳會發生變化
不要相信返回地址
編寫排序比較函式
可以從另一端來理解契約
實用主義和純粹主義之間的爭論
最佳化通常是違背直覺的
在伺服器上,分頁=當機
不要保存任何能夠重新計算的結果
通過增加其他組件的開銷來提升性能
輪循的性能問題
檢測記憶體泄漏的簡單方法
不好的快取策略將導致記憶體泄漏
第 12 章 深入研究Visual C++編譯器
析構函式在什麼時候調用
COM 對象的布局
調節轉換器
指向成員函式的指針是非常奇怪的
什麼是__purecall
第 13 章 向後兼容性
有些應用程式的本意就是要造成崩潰
當程式使用未公開的結構時
為什麼不阻止那些使用了未公開結構的程式
為什麼 16 位DOS 和 16 位Windows 仍然存在
像NUL 和CON 這些保留檔案名稱的作用是什麼
為什麼(有時候)在UNC 路徑前面是一個驅動器盤符
不要輕視“獵鹿者”這個遊戲的威力
有時候,遊戲中的bug 只有在玩了一段時間後才會顯現出來
Shell Folders 鍵的故事
保持錯誤碼的向後兼容性是很重要的
沒錯,我們實現了這個功能
有些程式在為作業系統打補丁時將陷入困境
即使在內部數據結構中也存在著兼容性問題
為什麼Windows 讓BIOS 時間保持為本地時間
版本號的檢測
破壞IUnknown::QueryInterface 的幾種方式
當程式假設作業系統永遠不會發生改變——之一
當程式假設作業系統永遠不會發生改變——之二
偽顯示控制臺
偽可視化風格
第 14 章 一些名字的來源和歷史
在WPARAM 和LPARAM 中,字母W 和L 分別表示什麼意思
為什麼在Windows 98 中,顯示器的最大數量是 9
為什麼註冊表檔案被叫作蜂窩
16 位Windows 中對資源的記憶體管理
HINSTANCE 和HMODULE 之間的區別是什麼
在WinMain 函式中,hPrevInstance 參數的作用是什麼
為什麼GlobalWire 函式被叫作這個名字
LocalAlloc 和GlobalAlloc 之間的區別是什麼
GMEM_SHARE 標誌的作用是什麼
為什麼在轉換到LPARAM 之前會進行一個多餘的轉換
為什麼有些註冊表函式的名字以Ex 結尾
SHGetMalloc,SHAlloc 和CoGetMalloc 之間的區別是什麼
為什麼Windows 錯誤報告程式的暱稱是DrWatson
DirectX 4 出了什麼問題
為什麼HANDLE 類型的返回值如此不一致
為什麼文本檔案是以Ctrl + Z 來結束的
為什麼行結束符是CR + LF
TEXT、__TEXT 與__T 和UNICODE 與__UNICODE
為什麼對話框在初始創建時是隱藏的
當程式在內部做修改時,沒有人會注意
如果FlushInstructionCache 沒有做任何事情,為什麼還要調用這個函式
如果InitCommonControls 沒有做任何事情,為什麼還要調用這個函式
為什麼InterlockedIncrement/InterlockedDecrement 這兩個函式只是返回結果的
符號
為什麼會存在WSASetLastError 函式
為什麼在Windows 中使用了基於廣播的機制
在系統列出現之前,視窗最小化之後被放到了什麼地方
為什麼在計算桌面視窗大小時會把系統列也包含在內
為什麼在按下Alt 鍵時,游標將停止閃爍
ES_OEMCONVERT 風格的作用是什麼
在檔案系統隧道背後隱藏的故事
為什麼NTFS 和資源管理器在對檔案名稱進行排序時是不一致的
日期/時間控制臺並不是日曆
Windows 如何重新設定DLL 的載入基址
SYSTEM_FONT 和DEFAULT_GUI_FONT 是什麼字型
為什麼上下控制項中的箭頭是相反的
Windows 95 發布會的門票
第 15 章 視窗訊息的傳送與接收
傳送訊息和投遞訊息
傳送訊息的生命期
投遞訊息的生命期
生成的投遞訊息
SendMessageCallback 將在什麼時候調用回調函式
當訊息逾時後,SendMessageTimeout 函式將執行什麼操作
澄清一些關於訊息處理的謬論
如何知道訊息的傳送者/投遞者
不能用PostMessage 來模擬鍵盤輸入
第 16 章 國際化編程
在Unicode 上做大小寫映射是很困難的
關於錯誤大小寫映射的趣事
為什麼不能旋轉文字
0409 和 1033是些什麼目錄
注意編碼頁
為什麼默認的 8比特編碼頁叫作“ANSI”
為什麼默認的控制台編碼頁叫作“OEM”
為什麼OEM 編碼頁經常被叫作ANSI
在Unicode 和ANSI 之間的轉換結果既是合理的但也是奇怪的
第 17章 安全
所有用戶都可以寫入的檔案
在資源管理器中隱藏檔案
竊取密碼
未驗證驅動程式的靜默安裝
調試代碼可能是一個安全漏洞
為什麼共享數據段是一個安全漏洞
IE 的增強安全配置並不信任內部網路
第 18章 Windows 2000 和Windows XP
為什麼在Windows XP“開始”選單的“所有程式”列表中沒有智慧型選單
為什麼沒有定義可以訪問“開始”選單中快速啟動列表的函式接口
為什麼Windows XP Service Pack 2 有時候會忘記CD 自動播放設定
不安全設備刪除對話框
關於Windows XP 中“Comments”按鈕的兩段回憶
為什麼資源管理器在刻錄完光碟之後會把光碟彈出來
為什麼Windows 安裝程式會生成新的啟動扇區
超自然力調試法:為什麼在四處理器的機器中有三個處理器沒有發揮作用
超自然力調試法:為什麼CPU 使用率總在 50%上下徘徊
DS_SHELLFONT 標誌的作用是什麼
為什麼DS_SHELLFONT = DS_FIXEDSYS | DS_SETFONT?
DS_SHELLFONT 在屬性頁上的效果是什麼
第 19章 Win 32中的設計問題
為什麼當無法解析某個導入函式時,Win 32就不會載入這個模組
為什麼要仔細檢查結構的大小
為什麼必須為了WM_DEVICECHANGE 返回一個奇怪的值?
程式和用戶之間的戰爭
為什麼不能截獲TerminateProcess 函式調用
為什麼有些進程在被終止之後還停留在任務管理器中?
理解WAIT_ABANDONED 所帶來的結果
為什麼不能把超連結放在通知圖示氣球提示中
為什麼在樹型控制項中不能重複使用同一個節點
奇怪的STRRET 結構
為什麼不能把UTF-8 設定為系統的ANSI 編碼頁
什麼時候應該使用下沉的客戶區
為什麼沒有包羅萬象的Windows 版本
為什麼可能發生禁止桌面視窗的情況
視窗和選單的嵌套限制分別是多少
HWND_TOP 和HWND_TOPMOST 之間的區別是什麼
第 20章 稅賦
分級存儲管理
地緣政治學
遠程桌面連線與繪製
快速用戶切換和終端服務
多用戶
漫遊用戶配置檔案
重定向資料夾
“我的文檔”與“應用程式數據”
大地址空間
電源管理和檢測電池的電量
間歇性的網路連線
反走樣字型和ClearType 技術
高DPI 顯示
多顯示器
工作區
在正確的位置上顯示彈出視窗
輔助功能
第 21章 一些可笑的故事
容易誤解的“空”操作
不要讓市場部門搞砸你的幻燈片
異想天開的Bug 報告
小心示例URL
任何代碼都不是孤立的
我在Viusal Basic 方面很專業
半透明的塑膠
我遭遇的第一次死亡威脅
你無法擺脫這些AOL CD
在接入電腦的電源之前發出嚴正警告
連環新接龍不再排名第一
關於Rat Poker 的一些事情
為產品小組取名時請三思
討論組的命名心理學
經理和程式設計師的區別
將軟碟作為信號量
當一個標誌中途改變了它代表的含義
把異想天開的尷尬作為一種溫和的指責方式
用物品來提醒
辦公室里的迪士科舞會
萬聖節主題的大廳
精彩節摘
推薦序
我記得在 2007年前後曾經閱讀過“The New Old Thing”這本書,給我留下深刻印象的是,這本書介紹了 Windows開發團隊中經歷過的一些趣事。未必是高深的理論,卻揭示了我們每天使用的 Windows是如何長成這個樣子的,一些編程套路是如何形成的。
Windows作業系統可算得上是人類複雜工程的一次成功實踐,一套代碼服務於幾億規模的來自於不同硬體廠商的 PC機器,而且持續進化了二十多年。這其中的經驗和教訓何其寶貴,本書展示的正是作者親身經歷過的各種編程實踐活動,涵蓋了用戶體驗設計、API進化,以及系統層面的設計,甚至還涉及了 Windows團隊的工在一些技術書籍中程師文化。
多年以後再來翻閱這本書,懷舊的感覺非常強烈。最近 5年,我已經不再使用 Windows開發平台了,但仍然堅持使用 Windows作為自己的辦公系統。偶爾在公共場所看到 Windows出醜的界面,比如廣場大屏出現藍屏、捷運閘口出現 Windows 2000風格的出錯對話框、腳踏車租賃處出現 Windows啟動界面,瞬時感覺無比親切。在信息技術飛速發展的過去二十多年,Windows影響著大多數技術人員,本書中講述的各種技術和非技術的點點滴滴,是大家曾經共同面臨或感受過的。
今天,隨著智慧型設備的快速普及,智慧型作業系統獲得了軟體開發人員的廣泛關注,Windows已經風光不再。但是在 Windows平台上的開發經歷卻仍然是許多開發人員的共同話題,本書中絕大多數章節的內容依然是技術人員的共同語言。我不止一次見到過這樣的場景,Android或者 iOS的開發人員在向他們的老闆描述一個技術問題時,用 Windows平台上的對應術語或做法進行解釋。在這樣的場景中,管理者的 Windows背景被強化了,年輕一代更易於接受新的技術和平台;另一方面,也說明了 Windows平台雖然不再像以往一樣被廣泛使用,但它倡導的編程模式和技術框架依然被沿襲到各種後來的開發平台,甚至嵌入式系統或移動智慧型作業系統中。
這不是一本教你如何進行 Windows編程的書,也不是講解 Windows的核心技術的書,但是,閱讀本書會有意想不到的收穫。你可以理解 Windows背後的一些設計來源,以及 Windows進化過程中的一些有趣故事。如果你有過 Windows平台的開發經歷,那么,很多章節的內容一定可以引起你的共鳴,並且更好地理解 Windows之所以成為我們看到的 Windows。
Windows NT是一個具有強設計的作業系統,在二十多年的進化過程中,其初始的設計始終主導著它的每一個版本。但是,在一些細微或局部的方面,也會隨著版本的進化而發生變化。這種變化可能是做了妥協,也可能是做了最佳化,甚至是一些意想不到的原因導致,但通常可讓系統更加滿足實際的需求。通過本書,我們可以輕鬆地了解到 Windows曾經經歷過的各種設計選擇和變化,也可以讓我們在面對其他系統的時候有更深刻的理解。
潘愛民
2015年 12月於杭州城西
再版譯序
光陰似箭,歲月如梭。自 2007年首次出版本書以來,已經過近十年時間。這段時間是移動網際網路發展的黃金時代,然而微軟卻頻頻錯失發展機遇,使得 Windows的日漸式微與 iOS與 Android的強勢崛起形成了鮮明對比。2015年 Windows 10的發布,或許是微軟過去數年以來做出的最為正確的戰略部署,有望藉助覆蓋所有尺寸設備的大一統平台,重回其昔日的巔峰地位。
儘管 Windows在移動領域處於弱勢,但其在傳統桌面領域的統治性地位仍然難以撼動,這與其優秀的設計理念是分不開的。儘管每天都有大量的開發人員在 Windows平台上工作,然而許多人對 Windows蘊含的設計思想卻了解有限,對於一些重要功能也只是知其然,而不知其所以然,因為最熟悉的東西往往也是最容易被忽視的。例如,在看似簡單的“開始”按鈕背後,就有著複雜的設計考慮。在 Windows平台上開發套用時,如果不了解這些知識,就很難像 Windows那樣將用戶體驗設計做到極致。
本書的內容在 2007版的譯序中已做了簡要介紹,這裡不再贅述。此次再版翻譯的主要工作包括,對譯稿的文字做出了一些調整,使得閱讀起來更為流暢,並對其中的一些錯誤進行了更正。
記得 2007年初次翻譯本書時,譯者還是一名普通的 Windows程式設計師。後來,由於工作需要,先後在 Linux、Android等平台上從事過開發,涉及的領域包括大規模存儲系統、移動終端瀏覽器引擎及 GPU並行加速等,而目前又重新回到Windows平台從事三維設計系統的開發。在十餘年的職業生涯中,較為深刻的感悟之一就是“大道至簡”。像 Windows這樣的軟體系統可謂博大精深,但其中的基本原理、方法和規律卻往往是極其簡單的,本書也正是向讀者闡述 Windows中的這些道理,希望讀者們能夠從中有所收穫。
致謝
首先要感謝電子工業出版社的編輯,使本書能夠有再版的機會。感謝妻子云蘭和我們的兩個孩子彤彤、越越,是你們讓我充滿了工作的動力。
聶雪軍
2016年 1月於湖北海洋工程裝備研究院智慧型技術研究所
譯序
對於有經驗的 Windows程式設計師來說,每天調用各種各樣的 Windows API早已成為了一種習慣,甚至無須參考 MSDN也能夠說出每個函式的用法和參數的含義。可是,你知不知道為什麼這些函式要設計成這樣的工作方式?知不知道有些常見的函式在多執行緒與單執行緒之間存在著一些微妙的差異?或許有些細節你根本就沒有注意到,只有當有人指出來之後才恍然大悟。作為最成功的軟體之一,在 Windows中自然有許多設計思想和基本理論是值得學習的,而這也正是本書的重點所在。在閱讀完本書之後,相信讀者的編程水平能夠上升到更高的境界。
本書所講述的內容涉及 Windows的各個方面。從用戶界面行為到核心工作機制,從最初的 Windows 1.0到後來的 Windows Vista,可以算是一部簡單的 Windows“發展史”。本書的許多內容都是講述某項技術的來龍去脈,通過了解這些歷史故事,你不僅可以更加透徹地理解 Windows的設計思想,還可以澄清一些由來已久的誤解,這將有助於你在開發過程中更加得心應手,並極大地提高編程效率。此外,你還能夠從這些故事中得到 Windows在發展過程中的一些經驗教訓,以此為鑑,這將有助於你在今後的程式開發中避免重複以前的錯誤。
在本書中還穿插了一些在 Windows開發中的趣事,作者 Raymond Chen以一種輕鬆幽默的語氣來敘述這些故事。正如書中所指出的,編程工作並不總是嚴肅的和枯燥的,它只是眾多工作中的一種,自然也有著其獨特的樂趣。在翻譯本書的時候,妻子云蘭(對 Windows的認識僅限於普通的操作)曾自告奮勇地成為本書的第一個讀者,她常常為這些趣事感到開心不已。
因此,本書適合不同層次的讀者,從專業的開發人員到普通的 Windows用戶,都可以從中獲益。對於專業開發人員來說,可以從本書中收穫深層次的設計思想。對於普通的 Windows用戶來說,則可以把本書的一部分內容當作有趣的故事來閱讀。
在本書的翻譯過程中,譯者總是盡最大努力將每一段內容都明白無誤地呈現給讀者。然而,由於譯者的水平和時間有限,翻譯中的疏漏和錯誤在所難免,還望讀者和同行不吝指正。
致謝
首先要感謝華章公司的冀康對於我的信任和耐心,使得我能夠順利地完成本書。感謝妻子云蘭和女兒彤彤,你們給我增添了許多的樂趣,使我很快地忘卻工作的疲憊。感謝我的父母,你們一直都在默默地支持著我。
聶雪軍
2007年 5月於武漢
作者簡介
Remond Chen 是微軟公司Windows 部門的軟體工程師。他的網站“The Old New Thing”主要討論Windows 的發展歷史以及Win32 編程。他還為TechNet 雜誌撰寫Windows Confidential 專欄。
譯者簡介
聶雪軍,2011年畢業於華中科技大學計算機系統結構專業,獲工學博士學位。現就職於湖北省海洋工程裝備研究院智慧型信息技術研究所,任虛擬製造室主任。在計算機領域工作與研究13年,主持過多個國家級科研項目及企業級產品研發,涉及的領域包括遙感數據處理系統、大規模存儲系統、嵌入式GPU並行計算以及海洋工程裝備三維設計平台等。技術圖書譯者,翻譯過《Exceptional C++中文版》、《團隊制勝: 掌握軟體項目成功主動權》、《C++編程風格》、《Windows高級調試》等。
媒體評論
“Raymond Chen是一個擅長講述 Windows故事的人。”
——Scott Hanselman,ComputerZen.com
“Raymond在微軟工作了多年,他見到過許多關於 Windows的趣事,而其他人可能只是略知一二。在這本書中,Raymond將與你一起分享他的知識、經歷,以及 Windows的一些奇聞軼事,本書將幫助我們更好地理解這個每天影響著成千上萬人的作業系統。每個人都能從本書中得到他們想要的東西,這本書讀起來很輕鬆,非常值得推薦。”
——Jeffrey Richter,Wintellect公司創始人之一,作家兼顧問
“這是一本非常有趣的書, Raymond將告訴你一些關於 Windows的內幕故事。”
——Eric Gunnerson,微軟公司程式經理
“如果你想了解 Windows的歷史、奇聞軼事以及它們的來龍去脈,那么這絕對是一本值得推薦的書。”
——Matt Pietrek,MSDN雜誌 Under the Hood專欄作家
“Raymond Chen已經成為了軟體界的傳奇人物,在本書中你將找到他為什麼能夠達到這種高度的原因。從回憶 Windows‘開始(Start)’按鈕的設計過程,到討論只有極客們才會喜歡的 GlobalAlloc,幾乎涵蓋了 Windows系統從高層到低層的方方面面,可以說這是一本引人入勝的奇聞軼事集,它將幫助你真正地體會到在設計和編寫高質量軟體的過程中存在的困難。”
——Stephen Toub,MSDN雜誌技術編輯