LEADER 01573nam 2200361 n 450 001 996384575103316 005 20200824120654.0 035 $a(CKB)4940000000068010 035 $a(EEBO)2240899682 035 $a(UnM)ocm99888539e 035 $a(UnM)99888539 035 $a(EXLCZ)994940000000068010 100 $a19981112d1662 uy 101 0 $aeng 135 $aurbn||||a|bb| 200 00$aArticles to be diligently enquired of, and particularly answered unto in writing by the high constables in every hundred, and by the petty constables and tithingmen in every several parish, town and hamblet, at the assizes to be holden for the county of [blank]$b[electronic resource] 210 $a[London $cs.n.$d1662] 215 $a1 sheet ([1] p.) 300 $aImprint from Wing (CD-ROM edition). 300 $aReproduction of original in the British Library. 330 $aeebo-0018 606 $aBroadsides$zEngland$vEarly works to 1800 606 $aPolice regulations$zEngland$vEarly works to 1800 607 $aGreat Britain$xHistory$yCharles II, 1660-1685$vEarly works to 1800 615 0$aBroadsides 615 0$aPolice regulations 801 0$bCu-RivES 801 1$bCu-RivES 801 2$bCu-RivES 906 $aBOOK 912 $a996384575103316 996 $aArticles to be diligently enquired of, and particularly answered unto in writing by the high constables in every hundred, and by the petty constables and tithingmen in every several parish, town and hamblet, at the assizes to be holden for the county of$92320683 997 $aUNISA LEADER 05386nam 2200673Ia 450 001 9910785584703321 005 20230120011818.0 010 $a1-282-99425-5 010 $a9786612994258 010 $a0-12-385004-5 035 $a(CKB)2670000000070817 035 $a(EBL)667720 035 $a(OCoLC)704559821 035 $a(SSID)ssj0000466966 035 $a(PQKBManifestationID)11311384 035 $a(PQKBTitleCode)TC0000466966 035 $a(PQKBWorkID)10466292 035 $a(PQKB)11015347 035 $a(Au-PeEL)EBL667720 035 $a(CaPaEBR)ebr10446500 035 $a(CaONFJC)MIL299425 035 $a(CaSebORM)9780123850034 035 $a(MiAaPQ)EBC667720 035 $a(EXLCZ)992670000000070817 100 $a20101007d2011 uy 0 101 0 $aeng 135 $aurunu||||| 181 $ctxt 182 $cc 183 $acr 200 10$aAPI design for C++$b[electronic resource] /$fMartin Reddy 205 $a1st edition 210 $aBoston $cElsevier/Morgan Kaufmann$d2011 215 $a1 online resource (468 p.) 300 $aDescription based upon print version of record. 311 $a0-12-385003-7 320 $aIncludes bibliographical references (p. 409-412) and index. 327 $aFront Cover; API Design for C++; Copyright; Contents; Foreword; Preface; Why You Should Read This Book; Who is the Target Audience; Focusing On C++; Conventions; Book Web Site; Acknowledgments; Author Biography; Chapter 1: Introduction; 1.1 What are Application Programming Interfaces?; 1.1.1 Contracts and Contractors; 1.1.2 APIs in; 1.2 What's Different About Api Design?; 1.3 Why Should you Use APIs?; 1.3.1 More Robust Code; 1.3.2 Code Reuse; 1.3.3 Parallel Development; 1.4 When Should you Avoid APIs?; 1.5 Api Examples; 1.5.1 Layers of APIs; 1.5.2 A Real-Life Example 327 $a1.6 File Formats and Network Protocols 1.7 About this Book; Chapter 2: Qualities; 2.1 Model the Problem Domain; 2.1.1 Provide a Good Abstraction; 2.1.2 Model the Key Objects; 2.2 Hide Implementation Details; 2.2.1 Physical Hiding: Declaration versus Definition; 2.2.2 Logical Hiding: Encapsulation; 2.2.3 Hide Member Variables; 2.2.4 Hide Implementation Methods; 2.2.5 Hide Implementation Classes; 2.3 Minimally Complete; 2.3.1 Don't Overpromise; 2.3.2 Add Virtual Functions Judiciously; 2.3.3 Convenience APIs; 2.4 Easy to Use; 2.4.1 Discoverable; 2.4.2 Difficult to Misuse; 2.4.3 Consistent 327 $a2.4.4 Orthogonal 2.4.5 Robust Resource Allocation; 2.4.6 Platform Independent; 2.5 Loosely Coupled; 2.5.1 Coupling by Name Only; 2.5.2 Reducing Class Coupling; 2.5.3 Intentional Redundancy; 2.5.4 Manager Classes; 2.5.5 Callbacks, Observers, and Notifications; Callbacks; Observers; Notifications; 2.6 Stable, Documented, and Tested; Chapter 3: Patterns; 3.1 Pimpl Idiom; 3.1.1 Using Pimpl; 3.1.2 Copy Semantics; 3.1.3 Pimpl and Smart Pointers; 3.1.4 Advantages of Pimpl; 3.1.5 Disadvantages of Pimpl; 3.1.6 Opaque Pointers in C; 3.2 Singleton; 3.2.1 Implementing Singletons in 327 $a3.2.2 Making Singletons Thread Safe 3.2.3 Singleton versus Dependency Injection; 3.2.4 Singleton versus Monostate; 3.2.5 Singleton versus Session State; 3.3 Factory Methods; 3.3.1 Abstract Base Classes; 3.3.2 Simple Factory Example; 3.3.3 Extensible Factory Example; 3.4 API Wrapping Patterns; 3.4.1 The Proxy Pattern; 3.4.2 The Adapter Pattern; 3.4.3 The Fac?ade Pattern; 3.5 Observer Pattern; 3.5.1 Model-View-Controller; 3.5.2 Implementing the Observer Pattern; 3.5.3 Push versus Pull Observers; Chapter 4: Design; 4.1 A Case for Good Design; 4.1.1 Accruing Technical Debt 327 $a4.1.2 Paying Back the Debt 4.1.3 Design for the Long Term; 4.2 Gathering Functional Requirements; 4.2.1 What Are Functional Requirements?; 4.2.2 Example Functional Requirements; 4.2.3 Maintaining the Requirements; 4.3 Creating Use Cases; 4.3.1 Developing Use Cases; 4.3.2 Use Case Templates; 4.3.3 Writing Good Use Cases; 4.3.4 Requirements and Agile Development; 4.4 Elements of Api Design; 4.5 Architecture Design; 4.5.1 Developing an Architecture; 4.5.2 Architecture Constraints; 4.5.3 Identifying Major Abstractions; 4.5.4 Inventing Key Objects; 4.5.5 Architectural Patterns 327 $a4.5.6 Communicating the Architecture 330 $aThe design of application programming interfaces can affect the behavior, capabilities, stability, and ease of use of end-user applications. With this book, you will learn how to design a good API for large-scale long-term projects. With extensive C++ code to illustrate each concept, API Design for C++ covers all of the strategies of world-class API development. Martin Reddy draws on over fifteen years of experience in the software industry to offer in-depth discussions of interface design, documentation, testing, and the advanced topics of scripting and plug-in extensibility. 606 $aApplication program interfaces (Computer software) 606 $aC++ (Computer program language) 615 0$aApplication program interfaces (Computer software) 615 0$aC++ (Computer program language) 676 $a005.13/3 676 $a005.133 686 $a54.53$2bcl 700 $aReddy$b Martin$01469764 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910785584703321 996 $aAPI design for C++$93681336 997 $aUNINA