Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

API Design for C++
API Design for C++
API Design for C++
Ebook942 pages20 hours

API Design for C++

Rating: 3.5 out of 5 stars

3.5/5

()

Read preview

About this ebook

API Design for C++ provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations.

API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online.

This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.
  • The only book that teaches the strategies of C++ API development, including design, versioning, documentation, testing, scripting, and extensibility
  • Extensive code examples illustrate each concept, with fully functional examples and working source code for experimentation available online
  • Covers various API styles and patterns with a focus on practical and efficient designs for large-scale long-term projects
LanguageEnglish
Release dateMar 14, 2011
ISBN9780123850041
API Design for C++
Author

Martin Reddy

Dr. Martin Reddy holds a Ph.D. in Computer Science and has over 30 years of experience in the software industry. He is a Fellow of the IEEE, a Fellow of the AAIA, and a Distinguished Member of the ACM. He has published 10 patents, over 40 professional articles, and 2 books. Martin was co-founder and CTO of the AI startup, PullString, where he oversaw the development of the company's technology until it was acquired by Apple in 2019. While at Apple, Martin was a software architect responsible for the architecture and APIs of major components of the Siri virtual assistant. Before that, Dr. Reddy worked for 6 years at Pixar Animation Studios where he was a lead engineer for the studio's in-house animation system. He worked on several Academy Award Winning and Nominated films, such as "Finding Nemo", "The Incredibles", "Cars", "Ratatouille", and "Wall-E". He was also the hair model for Mr Incredible. Martin began his career at SRI International where he worked on a distributed 3D terrain visualization system and co-authored the geospatial functionality in the VRML and X3D ISO standards. Martin was awarded Alumnus of the Year by his alma mater, Strathclyde University.

Related to API Design for C++

Related ebooks

Software Development & Engineering For You

View More

Related articles

Reviews for API Design for C++

Rating: 3.4375 out of 5 stars
3.5/5

8 ratings1 review

What did you think?

Tap to rate

Review must be at least 10 words

  • Rating: 3 out of 5 stars
    3/5
    This book was a disappointment. The coverage was shallow, a mile wide and an inch deep, and mainly repeated information available elsewhere, in better books. It wandered off into coverage of topics not directly related to its subject - profilers and memory analysis tools are certainly useful in API/library implementation, but have little to do with design, for example. Reddy's prose is pedestrian (not that one necessarily demands scintillating prose in a technical book). For the experienced programmer, this is a waste of time and money; it will largely tell you what you know already; better reread Lakos or Coplien. For the neophyte or the journeyman, it does have the virtue of gathering a lot of basic information into one place.

Book preview

API Design for C++ - Martin Reddy

A_book_preview_excerpt.html\q~p-REРIQڄ $}f}eÀ!y<$}Uu,e(hg\^_9_u}]^e_|K7}n<1#:z⺕S1V]{q|a'#&xn+æjÐmt"nMSL&&/Bv*U.mUZuirC#?ٰE]wuqȆ]7eVaty5]6t.CVt;kǬj2|86U&݆Y贮~*k2&.|°ʚ0Ra~M>gaB;5Bxl*1+%Vi+JV,%Ԝ"\eoVcLVMEؓM8Uasw)u&b.CE6Rw#|_"Uy6T2jl1LCބ.?R|#Smˏ5D}nvtPAn,93s2gWkS}aٳ LZh?E.&A8%|BhOԉ,-dC+,G!aae ,($^2$P6b2 OW'^OU=f]23߳ȓhyoC*f~)TP=V Qt.MTJy#ivt f]QL < OxYhśXȁ "j=A%ԸuŪ 뺻3m0=QRD=V{VmTՠ !RhuWܸb"$rرKTmщgrlCؖ1 hV1("B͊Ԇv+˅6mVQWxf"BfjH u؟ω9'1iLqhjLdpqi4Pڀ IʰN=E_/O^TIkQ 9*ETC1rC T`>XG|zkӧKGTfN&F2/(}yA` ehDn8ǠATo3^R;lݩcc,I!bD Ծ".d;U!{#ɇe$ۧQO&dgwK\9"1DĨppqѓTag2V!OYQG49$"U&$ﺮP_w W'/1^1Qd/JFpgQ@Xc1(/.z%P`͐Rz r#x۟%b4EQ%Ǯ+&6Q,uCo`ٔ$_WHV `2EZ1W9LNdlDE or|pg?TѕpT%FZ]R W%4h#rQEnrla>@>=e8ԖY7%P}Q4H!EwfX|jI~냂21T3%. ><4J "C,VL 2FM m>iImI[֫zÌ#TғF* 3(G1eLt7\Wρqcm`9 1vڜk҉Ѽr( 9U >.eC$Ĝ /$%o;fôN~Lzٺϒ,,B/oӔwSTJa- ;04~5|Cl9$p=s0b07"hQ1\WvܯFi =fdx `y{? TDŽ)% =q"S93Y@{*B}wE=o.Ϣb~ofuG_%e3@P)dd^<:#'(l2|#d퉂ceލh^~bCԭy`}(PB_+uɛuWV Be#M|RF]\.dtDKb2Pk%Ͷ UB. %D+(DGPS@`5CEQ6%'(yv%=T};P$N+m_+SR4vx[oL@z,Pvb9B\#huA* 7'bO{q6Sҥ\O%}EICIZXx1_d#@  NdC[/Db -6Vi^0piZDEZV^_0T!~3!G'tLX0@2lfvo#BSo޾ԠTbLXH}#ծ A[JրB*0FFVqxShqaGD>쳓ȩ&#GAlI2)L cCsqҏ=!ϒT|~|O1t"쐒bŽм"~󞘹9a5DAPY`+ aEF°l:jij{ϔǕ;FgWhi\Dscv5{n] D|ۙ bM7ITvfĆ5VFZ1"!쓛,dEƮV  AhWҺb*kr22RiA'Ӕ 7 djn ChҸڮO d̨R1D\W^2Kr8L/mW'T Jq a8F5V+5n jQq"ȍ\~zk%qV #;؛i^۪C%#^Or"U-MYCgw]`l\֢P:[nPi+;h!>Wugk!ݲZ%S"S(D @`s}*q4 j4Y .p^I͈V܆3~z6uKs n I*3^WL ϤJVALIur h+#V]&%H6m|e|GFEG ح}7,PX_WwSQCz/H,6,0-WFIY%WJ; jUKk㹛{6V#I6|&z -fEvb$(Uzsq97q$DlnɇD66ld7b|?IDA%Pn:B8ct}$)j! ڔawį;M$Mv2(3Vňl0h1Qm$ly-V]}b!߿y~cւ_$:JFyQP{Oﯿ}^ճozX)̓tG̭5񯳿~{*^'k=A2/_DFt5C}۱moU+_} lq^F!47@-F`HIH5*fAȷZ[Z4S@I<} .*"zТzJ'#dBРk] 4ZD5fz4k.mF}C <؉h`adl8sztu鮿Dך皇sC' !XZYMC8J ^hqdp.MS!4<٭DC!M;2wcшlx^W"ԡE b]d|ZOy)H6VmW gr31ih8">Įo;D17}Gg^oXg  #Y) =>-GˀJQMԃIT S @.>VFRf5QV-bMe5~!&@fK n+2gf;%ao>'m=L55!2jMBf#.֦+͐x1++?0dQ6`-Ⱦ6T:%fe'Oa+ڳII*s9GE&K^V1Cl,J) gl?&EX6Cgy*;K𺇶ř)hVM \ta<9JjXm 'Ee7-dTVC?N{bV?N!HWL`cF[. ' t4XW 2ZY!ʕ,QElKf 1hoG[ҰnaؗrM0O>Pe $@fo]UN$jDϊUaxW^Cvܭ$HCPX bG-R [>#};wjVHAhO+̵GMOFsJCg*c}#G0?;doԢ0` ܙ 77Nwfb ˻kdƌcϻ.]`?.]ra^zvYDqfFO^^dΰ_Oe+5bg4%"y,X'F:Kc41,t:˳G+85d"Bt ԃuY k=+IzUYNX+dm]cǝx$Ҏ;Gk#-2ElnUmKy-wBH%!Jlar#_l{lD:qf;\Lv=0IYq8|펗s- ؍&9N0_Ts8j y(bi_ك& U]Z}bQUGpxټӉGIyY8ҡ"Уg?@զ3ú1r@[;)H Pf8{G4*H2.f 0Tpy*z EhsDc"x4nq є/זy L3%;nIW~ 1Pޣ| X,(d20:;Gq->;/ۨk\|F_m+Utk~j( c >ۦ0pmTHXz(9bʊ9^{Ay~Z XhԎ2j-QC4bH~?+;X;[O)J5!x6'hfL?_?VPZRעpQ!X/"_{L]_`Jd}.Ct,/HYƎ I, [1^{;Ƹl[ ;C#6xˢ|EKP lk}9I!97 @,~hcμUWB`mJ9%yvd( Cޟ0@y!b^j*Ξ".t'Ka{<37ztQ[M '1 K!%nVWwݣ={1SEQX26y8L<߅z/ƦnG:wڨ9kƲ_AbXyB lʧ k⮎UWWz5&Pf[ !}L[hg"D |Gd*&o;$VnD"|"9Vv-o z4i.&Tn $tLxda Fo(s" &f+OݗPWkՏ%8.D^RS<>yxϥG3ʈu7=RdT &P){X?z|MP)VwCP!=<襱:J;n8nCqX:'[MFCYd^ފvQ0m6E^ٙ!INe{<)f_?O`Aȣ'!GV w.%ԷxbT&kkli_N eL d\AMHerȊ0-QA+$2g`]%j W8 s^M:W~ Y7D3Wyq${eZ)wmzLޮڌ]ǽm<"Q[/^HP] Yٻw߿ԋ\=Á m,zjRb57܇NaD3QNFQk݆tus^iWmA@?,EWM9~[vm՛>t2(_'$U]d5zhr,=ftGf-D;fN)}G\VddQIg$X([Tx5^|u|6s :Sx\Qkx(e; l<.P?lp2?dC^>UB)$< GxwxⵙDUwҼg_ !)4L%8.=z3xIakmij=_^C$y`Qm+`~lw|) BDs>ě9qP4h+rЊhXG5 :+?s݅oEЫdQ/)P"v?Vv;xMcQvḟIfp+(SZg4PpT.lp[\\͜OΧJ^'ƥzo[ۄ0eK=p\;OOX 9
Enjoying the preview?
Page 1 of 1