LEADER 05580nam 2200757Ia 450 001 9911108134503321 005 20251214180321.0 010 $a9786612994258 010 $a9781282994256 010 $a1282994255 010 $a9780123850041 010 $a0123850045 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(OCoLC)795704443 035 $a(OCoLC)ocn795704443 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++ /$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 08$a9780123850034 311 08$a0123850037 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. 517 3 $aAPI design for C plus plus 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 676 $a005.362 686 $a54.53$2bcl 700 $aReddy$b Martin$01988115 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9911108134503321 996 $aAPI design for C++$94763647 997 $aUNINA LEADER 02795nam 22005173 450 001 9911154100003321 005 20241207060246.0 010 $a9789815305579 010 $a9815305573 024 7 $a10.0000/9789815305579 035 $a(CKB)36812856800041 035 $a(MiAaPQ)EBC31812691 035 $a(Au-PeEL)EBL31812691 035 $a(Perlego)4742164 035 $a(DE-B1597)729146 035 $a(DE-B1597)9789815305579 035 $a(OCoLC)1477220398 035 $a(DE-B1597)BR1430480 035 $a(EXLCZ)9936812856800041 100 $a20241207d2024 uy 0 101 0 $aeng 135 $aur||||||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aPractical Digital Forensics: A Guide for Windows and Linux Users$fAkashdeep Bhardwaj, Pradeep Singh, Ajay Bhardwaj 205 $a1st ed. 210 1$aSharjah :$cBentham Science Publishers,$d2024. 210 4$dİ2024. 215 $a1 online resource (269 pages) 311 08$a9789815305586 311 08$a9815305581 327 $tPractical Digital Forensics: A Guide for Windows and Linux Users 330 $aPractical Digital Forensics: A Guide for Windows and Linux Users is a comprehensive resource for novice and experienced digital forensics investigators. This guide offers detailed step-by-step instructions, case studies, and real-world examples to help readers conduct investigations on both Windows and Linux operating systems. It covers essential topics such as configuring a forensic lab, live system analysis, file system and registry analysis, network forensics, and anti-forensic techniques. The book is designed to equip professionals with the skills to extract and analyze digital evidence, all while navigating the complexities of modern cybercrime and digital investigations. Key Features:- Forensic principles for both Linux and Windows environments.- Detailed instructions on file system forensics, volatile data acquisition, and network traffic analysis.- Advanced techniques for web browser and registry forensics.- Addresses anti-forensics tactics and reporting strategies.- Includes real-world examples and practical case studies. Readership: Digital forensics professionals, law enforcement, cybersecurity analysts, legal practitioners, IT administrators, students, and corporate investigators. 606 $aCOMPUTERS / Forensics$2bisacsh 615 7$aCOMPUTERS / Forensics. 700 $aBhardwaj$b Akashdeep$01740497 701 $aSingh$b Pradeep$01782429 701 $aPrasad$b Ajay$01968242 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9911154100003321 996 $aPractical Digital Forensics: A Guide for Windows and Linux Users$94842479 997 $aUNINA