C++跨平臺(tái)開發(fā)技術(shù)指南

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

前言

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

內(nèi)容概要

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

作者簡介

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

書籍目錄

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

編輯推薦

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

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


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


用戶評論 (總計(jì)18條)

 
 

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

    本書主要把跨平臺(tái)開發(fā)、維護(hù)的手段、注意事項(xiàng)和經(jīng)驗(yàn)總結(jié)了一下,對于剛接觸的人起到引導(dǎo)、提醒的作用

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

    值得一看!
  •   作者是從事過實(shí)際跨平臺(tái)開發(fā)的,所講的很多東西還是比較有用的。不過,如果你的基礎(chǔ)不好,可能會(huì)比較吃力,因?yàn)槔锩嫔婕暗闹R(shí)領(lǐng)域很廣。
  •   這是一本指導(dǎo)性的書,內(nèi)容很全面。不過由于面太廣,不可能太詳細(xì)。
  •   不光是設(shè)計(jì),還有其他方面,比較全面
  •   內(nèi)容還行,就是紙的質(zhì)地太薄了
  •   還行,中規(guī)中矩,幫助不是很大
  •   還行吧,沒仔細(xì)看,不過對擴(kuò)展自己的C++知識(shí)還是有好處的
  •   紙張的質(zhì)量和排版不是很好,翻譯的也不太通順,不過還能讀
  •   細(xì)節(jié)不夠,范圍太廣
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7