C++跨平臺開發(fā)技術指南

出版時間:2009-1  出版社:機械工業(yè)出版社  作者:[美] Syd Logan  頁數(shù):318  譯者:徐旭銘  
Tag標簽:無  

前言

  作為Firefox、Mozilla和Netscape瀏覽器解析和渲染超文本標記語言/可擴展標記語言/層疊樣式表(HTML/:XML/CSS)的引擎,Gecko是全世界使用最廣泛的渲染引擎之一?! 《疑頌镹etscape的工程師以及后來MozillaGecko團隊的開發(fā)經理,有幸從一開始就參與了Gecko引擎的開發(fā)?! ecko誕生時的愿望是要創(chuàng)建一個跨平臺的、小巧快速的、先進的可嵌入Web瀏覽引擎,而這一點正是我們在“瀏覽器大戰(zhàn)”中爭奪優(yōu)勢的砝碼。當時笨拙的Netscape4.x引擎顯然已經無法再完全支持CSS2、CSS3和:XMI。Web標準了。所以有人提出只使用原有的引擎的一部分庫來重新開發(fā)。在Gecko項目的早期,我們曾經討論過要采用擁有跨平臺能力的Java而不是c++。但最后還是覺得只有c++以及它特有的開發(fā)過程、工具和設計技術,才能產生最好的解決方案?!禖++跨平臺開發(fā)技術指南》將會把這些過程、工具和設計技術作為最佳實踐來逐一描述?! ≡谶M入.Netscape工作之前,我曾為很多公司開發(fā)過跨平臺軟件。然而,MoziUa項目把這些經歷提升到了一個完全不同的高度。我們使用和開發(fā)了一系列軟件架構、工具和過程來實現(xiàn)大范圍內的跨平臺開發(fā)工作?! ∥业牡谝粋€任務是把Gecko從微軟Windows系統(tǒng)上移植到Motif/Xlib上去。寫過跨平臺軟件的人都知道,剛開始的移植工作是最有挑戰(zhàn)性的。你會在那時發(fā)現(xiàn)軟件的移植性到底如何。即使Gecko從設計的時候就是以可移植為目標,然而平臺和編譯器之間的細微差異還是搞得我們很頭疼。這就是為什么需要有一個像Mozilla‘Tinderbox那樣的工具來驗證check.in代碼的可移植性,并且還需要一個軟件開發(fā)過程來要求工程師在向代碼倉庫提交新的源代碼之前至少在兩個平臺上驗證過?! ecko引擎開發(fā)的動機之一,是要在它上面重現(xiàn)NetscapeCommunicator的用戶界面體驗。這就要求有一個跨平臺的用戶界面方案,因為NetscapeCommunicator就是在多個平臺上提供了圖形用戶界面的環(huán)境。所以我就有了這樣一個機會來設計一個用戶界面策略以解決這個棘手的跨平臺問題。我撰寫了一份文檔,解釋了如何在Gecko渲染引擎里把描述用戶界面元素的X~~VII。元描述(XML,metadescription)與作為控件和事件邏輯的JavaScript相混合,以達到跨平臺用戶界面的目的。這份文檔后來成為了XUL(XMLUserInterfaceL.anguage)的原型。再后來,F(xiàn)irefox的開發(fā)人員用xuL和Gecko引擎開發(fā)出了小巧快速、廣受歡迎的跨平臺Web瀏覽器。第9章描述了如何在xUL上創(chuàng)建你自己的跨平臺用戶界面。  作為W3CSVG(ScalableVectorGraphics)最早的成員之一,我對Gecko能不斷地進化和解決跨平臺問題感到非常興奮。最近添加的對SVG的原生支持則又是Gecko可移植性的一大勝利?! ydL.xogan在這里要展示的信息是無數(shù)工程師對于那些和創(chuàng)建跨平臺軟件產品相關的特殊問題的真知灼見。雖然它是以c++為藍本,不過很多技術都是可以為其他非c++軟件項目所借鑒。我希望你能從中發(fā)現(xiàn)有用的工具、技術或是過程,從而避免跨平臺開發(fā)中的陷阱,讓你的項目取得巨大成功。

內容概要

  本書詳細介紹C++語言的跨平臺技術,包含的主要內容有:Netscape在向數(shù)百萬Win-dows、Mac OS和Linux用戶發(fā)布瀏覽器時采用的策略和過程;如何使用基于標志的API,包括POSIX和STL;如何避免隱晦的移植性陷阱,相關的如浮點數(shù)、chat。類型、數(shù)據(jù)序列化,以及C++的類型;如何建立一個有效的跨平臺bug報告和跟蹤系統(tǒng)等。本書內容詳實,實例豐富。適合軟件開發(fā)技術人員參考。      本書是開發(fā)可移植C/C++應用程序的權威讀物,它指導編寫的代碼可以無縫地運行在Windows、Macintosh和Linux平臺上而不需要犧牲任何功能、易用性或是產品的品質?! ozilla和Netscape的資深工程師Syd Logan系統(tǒng)地講解了所有和軟件移植性有關的技術和管理上的挑戰(zhàn),包括編碼、測試以及部署上的設計和考量。基于他豐富的跨平臺開發(fā)經驗,Logan完整地討論了從原生API的使用到最新的可移植GUI開發(fā)策略等一系列問題。他還展示了如何避免傳統(tǒng)跨平臺開發(fā)方法里存在的問題,以及如何達到特性的對等性。   本書對正在構建新的跨平臺軟件,移植現(xiàn)有的C/C++軟件,或是考慮將來為軟件添加跨平臺支持的每一位軟件從業(yè)人員和技術經理來說,都是必不可少的資源。

作者簡介

  Syd Logan,是一位工作生活在南加州的軟件工程師,擁有圣地亞哥州立大學的計算機科學學士和碩士學位。Syd曾是Netscape Client Product Development(CPD)團隊的一員,在Netscape 6和7的開發(fā)過程中,他同時擔任了開發(fā)和管理的職務。之后,Syd留在AOL并作為AOL Instant Me

書籍目錄

“C++設計新思維”叢書前言譯者序序前言引言第1章 策略與管理 條款1:把所有的平臺都放在同樣重要的位置 條款2:使用公共的代碼  工廠模式在不同平臺上的實現(xiàn)  類的實現(xiàn)  平臺相關的ProcessesImpl類  創(chuàng)建實例層次  用CVS或SVN組織項目  編譯代碼和Makefile 條款3:要求開發(fā)人員用不同的編譯器編譯代碼 條款4:要求開發(fā)人員在不同的平臺上編譯代碼  條款5:測試所有的平臺 條款6:關注編譯警告  GNU 標志  微軟Visual C++第2章 Build系統(tǒng)和Toolchain 條款7:使用最適合平臺的編譯器 條款8:盡量使用本地IDE 條款9:在Windows上安裝和使用Cygwin 條款10:使用跨平臺的Make系統(tǒng)Make  在Windows上編譯Makefile和源碼  Autoconf/Automake  Imake  在Mac OS X上安裝Imake  在Windows上安裝Imake  一個例子:使用Imake  Imakefile文件  完整編譯的一個多文件程序  在site?def里重寫默認值  去除代碼里的#ifdefs  Imake中用到的文件  編譯含有子目錄的項目  Debug的編譯第3章 軟件配置管理 條款11:使用跨平臺的bug報告和  跟蹤系統(tǒng)  可訪問性  跟蹤平臺相關bug的能力Bugzilla75 條款12:設置Tinderbox 條款13:用CVS或Subversion來管理  源代碼  設置和使用CVS 條款14:使用patch  一個例子  patch選項  應對reject  patch和跨平臺開發(fā)第4章 安裝與部署94條款15:為本地安裝程序提供支持 XPInstall 平臺安裝第5章 操作系統(tǒng)接口和庫 條款16:使用標準API(如POSIX)  POSIX  支持POSIX、SVID、XPG和BSD  在GCC里使用標準支持  微軟Runtime Library對POSIX的支持  在Windows上使用GCC  決定支持哪個標準 條款17:考慮使用NSPR這樣的平臺  抽象庫  為什么要開發(fā)NSPR  NSPR基礎  線程  NSPR的其他功能第6章 其他可移植性主題  條款18: 慎用浮點數(shù)  不要把浮點值序列化為二進制  判斷相等 條款19:顯式地注明char類型的符號 條款20:避免序列化二進制數(shù)據(jù) 條款21: 避免類型長度和組織帶來的  問題  整型的長度  NSPR里的類型  長度和效率  整型轉換  struct的對齊和順序第7章 用戶界面 條款22:從Model里把用戶界面分離出來  用Model/View把用戶界面和程序邏輯  分開  用Publish/Subscribe在View和Model之間通訊  小結 條款23:開發(fā)一個跨平臺用戶界面的  策略  影響跨平臺GUI開發(fā)移植性的問題 選擇GUI的策略第8章 wxWidgets196wxWidgets概述 許可協(xié)議 安裝wxWidgets 一個簡單的例子:Hello wxWidgets199創(chuàng)建應用程序的用戶界面 編譯wxWidgets應用程序 控件與事件 容器widget 對話框 復合式widget 國際化和本地化第9章 用C++開發(fā)跨平臺GUI工具包 什么是XUL DHTML HTML 腳本語言 文檔對象模型 樣式系統(tǒng) XUL 窗口和對話框 box元素 工具條  菜單 控件 其他widget 用XUL編程 用JavaScript為UI添加邏輯 用XPCOM和XPConnect接口化JavaScript和C/C++ Trixul Trixul支持的widget Trixul的基本操作 widget 類的實現(xiàn) 創(chuàng)建widget實現(xiàn)的對象 widget工廠 應用程序主循環(huán) Trixul創(chuàng)建用戶界面的步驟 文檔、元素和DOM288 創(chuàng)建widget 布局 滾動窗口和布局 和JavaScript集成 和C++組件集成

編輯推薦

  《C++跨平臺開發(fā)技術指南》是開發(fā)可移植C/C++應用程序的權威讀物,它指導編寫的代碼可以無縫地運行在Windows、Macirltostl和Linux平臺上而不需要犧牲任何功能、易用性或是產品的品質?! ozilla和Netscape的資深工程師Syd Logan系統(tǒng)地講解了所有和軟件移植性有關的技術和管理上的挑戰(zhàn)。包括編碼、測試以及部署上的設計和考量?;谒S富的跨平臺開發(fā)經驗,Logarl完整地討論了從原生API的使用到最新的可移植GUI開發(fā)策略等一系列問題。他還展示了如何避免傳統(tǒng)跨平臺開發(fā)方法里存在的問題,以及如何達到特性的對等性。  《C++跨平臺開發(fā)技術指南》對正在構建新的跨平臺軟件,移植現(xiàn)有的c/c++軟件,或是考慮將來為軟件添加跨平臺支持的每一位軟件從業(yè)人員和技術經理來說,都是必不可少的資源?!  禖++跨平臺開發(fā)技術指南》詳細介紹跨平臺應用的構建方法,包括真實的場景和大量實用的代碼示例。以及一個完整的基于Mozilla xUL的跨平臺GUI工具包,你可以在網站上下載到所有的源碼,并從中獲益?! etscape在向數(shù)百萬Windows、Mac OS和Linux用戶發(fā)布瀏覽器時采用的策略和過程?! ≡谒衅脚_上提供一致的功能和接口?! ±斫饬餍械钠脚_GUl API之間關鍵的相似與不同,它們包括Win32/.NET、Cocoa和Gtk+?! Q定使用原生IDE的時機,以及如何限制它們對移植性的影響?! ∈褂没跇酥镜腁PI,包括POSI×和STL等。避免隱晦的移植性陷阱,相關的如浮點數(shù)、char類型、數(shù)據(jù)序列化,以及C++的類型等?! ±闷脚_抽象庫,如Netscape Portable Runtime(NSPR)等?! 〗⒁粋€有效的跨平臺bug報告和跟蹤系統(tǒng)。為多個平臺創(chuàng)建build并在跨平臺構建失敗時檢測到它們。理解本地運行環(huán)境以及它們對安裝程序的影響。使用wxWidgets從一個代碼庫里來創(chuàng)建多平臺的GUI應用程序?! ⊥暾販y試應用程序的可移植性?! ⊥ㄟ^Trixul理解跨平臺GUl工具包的設計。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    C++跨平臺開發(fā)技術指南 PDF格式下載


用戶評論 (總計18條)

 
 

  •   讀了一半章節(jié)左右,其它翻了下

    本書主要把跨平臺開發(fā)、維護的手段、注意事項和經驗總結了一下,對于剛接觸的人起到引導、提醒的作用

    但對于有過相關經驗的老程序員來說,本書可能沒有太令人感覺出彩的地方,因為大多內容都是較普通和常見的
  •   寫跨平臺的代碼,需要太牛的功底
  •   寫得很好的一本書...可心看出作者是位很有開發(fā)經驗r的
  •   才開始看,很實用的一本書,操作性比較強。
  •   內容很好,很有幫助,推薦。
  •   送貨速度飛快,很滿意,書也很好
  •   偶然之間在書架上發(fā)現(xiàn)此書,由于實際生活中有類似需要,見之大喜,遂然讀之。書中涉及了項目管理和技術開發(fā)兩部分,再加上拿Mozilla和Netscape做例子,感覺真實性較強。本書富于指導性,從項目管理到設計理念,談及的話題比比皆是;然而面面俱到的風格難免造成細節(jié)方面的缺失。以最后一章為例,你可能需要(也是建議)在源碼的陪同下進行閱讀,方能感受Trixul的實現(xiàn)機理,畢竟“紙上學來終覺潛”。此外,該章中對一些字詞翻譯的把握上方可進一步斟酌。至于是否有收獲,PM類型的我不敢說;但喜歡探究C++跨平臺技術開發(fā)和實現(xiàn)的朋友倒不妨一試。
  •   這是一本寫給有比較豐富編程經驗的程序員看的書,不太適合初學者。書中提到了若干在跨平臺開發(fā)過程需要注意的問題,言簡意駭,給了不少很好的建議。對有經驗的開發(fā)者——相信有跨平臺開發(fā)需求的一般都不是是菜鳥——來講,書的內容很易理解,讀起來很輕松,可以當作飯后睡前的消遣。
    當然書中的有些內容略顯陳舊了點,如CVS這種server-client模式的版本控制已經有點過時了。
    是一本好書,值得看一看。
  •   從工程源文件如何在CSV組織到測試到平臺特性都說的很詳細??缙脚_開發(fā)的必備手冊。
  •   因為最近在弄跨平臺的東西,所以買了這本書。
    從一些開發(fā)流程和編碼的一些習慣或技巧上,這本書都有些介紹 ,雖然深入不深入還有待商榷,但是確實可以從中吸取不少的經驗。

    值得一看!
  •   作者是從事過實際跨平臺開發(fā)的,所講的很多東西還是比較有用的。不過,如果你的基礎不好,可能會比較吃力,因為里面涉及的知識領域很廣。
  •   這是一本指導性的書,內容很全面。不過由于面太廣,不可能太詳細。
  •   不光是設計,還有其他方面,比較全面
  •   內容還行,就是紙的質地太薄了
  •   還行,中規(guī)中矩,幫助不是很大
  •   還行吧,沒仔細看,不過對擴展自己的C++知識還是有好處的
  •   紙張的質量和排版不是很好,翻譯的也不太通順,不過還能讀
  •   細節(jié)不夠,范圍太廣
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7