Top 10 Best Books to Read in Software Reuse - August 2021

Here are our top ten recommendations if you are looking for the best books to read in Software Reuse. We have made sure our list is diverse to cater to the interests of different types of readers.

1. Design Patterns: Elements of Reusable Object-Oriented Software

Top 10 Best Books to Read in Software Reuse - August 2021

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

  • Author: Erich Gamma
  • Publisher: Addison-Wesley Professional; 1st edition (November 10, 1994)
  • Genre: Computers & Technology, Computer Science
  • ISBN: 978-0201633610
  • Dimensions: 9.31 x 7.62 x 1.04 inches


2. MonoGame Mastery: Build a Multi-Platform 2D Game and Reusable Game Engine

Top 10 Best Books to Read in Software Reuse - August 2021

Intermediate user level

  • Author: Jarred Capellman
  • Publisher: Apress; 1st ed. edition (November 10, 2020)
  • Genre: Computers & Technology, Programming
  • ISBN: 978-1484263082
  • Dimensions: 6.1 x 0.78 x 9.25 inches


3. C Interfaces and Implementations: Techniques for Creating Reusable Software

Top 10 Best Books to Read in Software Reuse - August 2021

creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach. Features of C Interfaces and Implementations: * Concise interface descriptions that comprise a reference manual for programmers interested in using the interfaces. * A guided tour of the code that implements each chapters interface tp help those modifying or extending an interface or designing related interfaces. * In-depth focus on algorithm engineering: how to packag

  • Author: David Hanson
  • Publisher: Addison-Wesley Professional; 1st edition (August 20, 1996)
  • Genre: Computers & Technology, Programming
  • ISBN: 978-0201498417
  • Dimensions: 9.26 x 7.41 x 1.11 inches


4. Analysis Patterns: Reusable Object Models

Top 10 Best Books to Read in Software Reuse - August 2021

This innovative book recognizes the need within the object-oriented community for a book that goes beyond the tools and techniques of the typical methodology book. In Analysis Patterns: Reusable Object Models , Martin Fowler focuses on the end result of object-oriented analysis and design—the models themselves. He shares with you his wealth of object modeling experience and his keen eye for identifying repeating problems and transforming them into reusable models. Analysis Patterns provides a catalogue of patterns that have emerged in a wide range of domains including trading, measurement, accounting and organizational relationships. Recognizing that conceptual patterns cannot exist in isolation, the author also presents a series of "support patterns" that discuss how to turn conceptual models into software that in turn fits into an architecture for a large information system. Included in each pattern is the reasoning behind their design, rules for when they should and should not be used, and tips for implementation. The examples presented in this book comprise a cookbook of useful models and insight into the skill of reuse that will improve analysis, modeling and implementation.

  • Author: Martin Fowler
  • Publisher: Addison-Wesley Professional; 1st edition (October 9, 1996)
  • Genre: Kindle Store, Kindle eBooks, Computers & Technology


5. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (paperback) (Addison-Wesley Microsoft Technology Series)

Top 10 Best Books to Read in Software Reuse - August 2021

Master Today’s Best Practices for Building Reusable .NET Frameworks, Libraries, and Components “.NET Core contains advances important to cloud application developers: performance, resource utilization, container support, and others. This third edition of Framework Design Guidelines adds guidelines related to changes that the .NET team adopted during transition from the world of client-server application to the world of the Cloud.” –From the Foreword by Scott Guthrie Framework Design Guidelines has long been the definitive guide to best practices for developing components and component libraries in Microsoft .NET. Now, this third edition has been fully revised to reflect game-changing API design innovations introduced by Microsoft through eight recent updates to C#, eleven updates to .NET Framework, and the emergence and evolution of .NET Core. Three leading .NET architects share the same guidance Microsoft teams are using to evolve .NET, so you can design well-performing components that feel like natural extensions to the platform. Building on the book’s proven explanatory style, the authors and expert annotators offer insider guidance on new .NET and C# concepts, including major advances in asynchronous programming and lightweight memory access. Throughout, they clarify and refresh existing content, helping you take full advantage of best practices based on C# 8, .NET Framework 4.8, and .NET Core. Discover which practices should always, generally, rarely, or never be used–including practices that are no longer recommended Learn the general philosophy and fundamental principles of modern framework design Explore common framework design patterns with up-to-date C# examples Apply best practices for naming, types, extensibility, and exceptions Learn how to design libraries that scale in the cloud Master new async programming techniques utilizing Task and ValueTask Make the most of the Memory<T> and Span<T> types for lightweight memory access This guide is an indispensable resource for everyone who builds reusable .NET-based frameworks, libraries, or components at any scale: large system frameworks, medium-size reusable layers of large distributed systems, extensions to system frameworks, or even small shared components. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

  • Author: Krzysztof Cwalina
  • Publisher: Addison-Wesley Professional; 3rd edition (June 18, 2020)
  • Genre: Computers & Technology, Programming
  • ISBN: 978-0135896464
  • Dimensions: 6.95 x 1.4 x 9.05 inches


6. Mastering Object-Oriented Python: Build powerful applications with reusable code using OOP design patterns and Python 3.7, 2nd Edition

Top 10 Best Books to Read in Software Reuse - August 2021

Gain comprehensive insights into programming practices, and code portability and reuse to build flexible and maintainable apps using object-oriented principles Key Features Extend core OOP techniques to increase integration of classes created with Python Explore various Python libraries for handling persistence and object serialization Learn alternative approaches for solving programming problems, with different attributes to address your problem domain Book Description Object-oriented programming (OOP) is a relatively complex discipline to master, and it can be difficult to see how general principles apply to each language's unique features. With the help of the latest edition of Mastering Objected-Oriented Python, you'll be shown how to effectively implement OOP in Python, and even explore Python 3.x. Complete with practical examples, the book guides you through the advanced concepts of OOP in Python, and demonstrates how you can apply them to solve complex problems in OOP. You will learn how to create high-quality Python programs by exploring design alternatives and determining which design offers the best performance. Next, you'll work through special methods for handling simple object conversions and also learn about hashing and comparison of objects. As you cover later chapters, you'll discover how essential it is to locate the best algorithms and optimal data structures for developing robust solutions to programming problems with minimal computer processing. Finally, the book will assist you in leveraging various Python features by implementing object-oriented designs in your programs. By the end of this book, you will have learned a number of alternate approaches with different attributes to confidently solve programming problems in Python. What you will learn Explore a variety of different design patterns for the __init__() method Learn to use Flask to build a RESTful web service Discover SOLID design patterns and principles Use the features of Python 3's abstract base Create classes for your own applications Design testable code using pytest and fixtures Understand how to design context managers that leverage the 'with' statement Create a new type of collection using standard library and design techniques Develop new number types above and beyond the built-in classes of numbers Who this book is for This book is for developers who want to use Python to create efficient programs. A good understanding of Python programming is required to make the most out of this book. Knowledge of concepts related to object-oriented design patterns will also be useful. Table of Contents Preliminaries, Tools, and Techniques The __init__() Method Integrating Seamlessly - Basic Special Methods Attribute Access, Properties, and Descriptors The ABCs of Consistent Design Using Callables and Contexts Creating Containers and Collections Creating Numbers Decorators and Mixins - Cross-cutting Aspects Serializing and Saving - JSON, YAML, Pickle, CSV, and XML Storing and Retrieving Objects via Shelve Storing and Retrieving Objects via SQLite Transmitting and Sharing Objects Configuration Files and Persistence Design Principles and Patterns The Logging and Warning Modules Designing for Testability Coping With the Command Line Module and Package Design Quality and Documentation

  • Author: Steven F. Lott
  • Publisher: Packt Publishing; 2nd edition (June 14, 2019)
  • Genre: Kindle Store, Kindle eBooks, Computers & Technology


7. Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications

Top 10 Best Books to Read in Software Reuse - August 2021

The way developers design, build, and run software has changed significantly with the evolution of microservices and containers. These modern architectures use new primitives that require a different set of practices than most developers, tech leads, and architects are accustomed to. With this focused guide, Bilgin Ibryam and Roland Huß from Red Hat provide common reusable elements, patterns, principles, and practices for designing and implementing cloud-native applications on Kubernetes. Each pattern includes a description of the problem and a proposed solution with Kubernetes specifics. Many patterns are also backed by concrete code examples. This book is ideal for developers already familiar with basic Kubernetes concepts who want to learn common cloud-native patterns. You’ll learn about the following pattern categories: Foundational patterns cover the core principles and practices for building container-based cloud-native applications. Behavioral patterns explore finer-grained concepts for managing various types of container and platform interactions. Structural patterns help you organize containers within a pod, the atom of the Kubernetes platform. Configuration patterns provide insight into how application configurations can be handled in Kubernetes. Advanced patterns cover more advanced topics such as extending the platform with operators.

  • Author: Bilgin Ibryam
  • Publisher: O'Reilly Media; 1st edition (April 9, 2019)
  • Genre: Kindle Store, Kindle eBooks, Computers & Technology


8. Design Patterns for High-Quality Automated Tests: High-Quality Test Attributes and Best Practices

Top 10 Best Books to Read in Software Reuse - August 2021

About This Book Achieving high-quality test automation that brings value- you need to understand core programming concepts such as SOLID and the usage of design patterns . After you master them, the usual career transition is into more architecture roles, such as choosing the best possible approaches for solving particular test automation challenges. You will get an access to more than 20000+ lines of real-world code examples. Who This Book Is For The book is NOT a getting started guide! If you don't have any prior programming experience in writing automated tests through WebDriver, I suggest you to first start with some book about basic programming and basic WebDriver usage. I believe it might be invaluable for the readers that have a couple of years of experience and whose job is to create/maintain test automation frameworks, or to write high-quality reliable automated tests. The book is written in C#. However, I think that you can use the approaches and practices in every OOP language. If you have a Java background (or similar), you will get everything you need, don't worry. Even if you don't get all the concepts from the first read, try to use and incorporate some of them, later you can return and reread them. I believe with the accumulation of experience using high-quality practices- you will become a hard-core test automation ninja! What You Will Learn Learn how to optimize and stabilize your flaky tests. Learn how to handle asnynchronious web pages in your tests. Automatically deal with AJAX and jQuery. Improve Test Readability, Maintainability, Reusability, Extensibility by incorporating 10+ design patterns: Page Object Model, Facade, Decorator, Observer, Strategy, Singleton, Fluent Interface, Template Method, Abstract Factory, Factory Method, Repository, Lazy Load. Learn what are the SOLID principles and how they can improve your test code. We will also discuss other essential programming principles such as composition, DRY, KISS and others. Learn how to asses and choose the best possible design for your framework or library. Learn how the benchmarking your code can help you to speed up your tests. Learn how to design and build your framework to handle test data and different test environments. Learn about high quality code practices and naming convention so that your code get much more understandable.

  • Author: Anton Angelov
  • Publisher: Independently published (March 6, 2020)
  • Genre: Computers & Technology, Programming
  • ISBN: 979-8621316983
  • Dimensions: 8 x 0.79 x 10 inches


9. Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers

Top 10 Best Books to Read in Software Reuse - August 2021

Gain the knowledge and skills necessary to improve your embedded software and benefit from author Jacob Beningo’s more than 15 years developing reusable and portable software for resource-constrained microcontroller-based systems. You will explore APIs, HALs, and driver development among other topics to acquire a solid foundation for improving your own software. Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers not only explains critical concepts, but also provides a plethora of examples, exercises, and case studies on how to use and implement the concepts. What You'll Learn Develop portable firmware using the C programming language Discover APIs and HALs, explore their differences, and see why they are important to developers of resource-constrained software  Master microcontroller driver development concepts, strategies, and examples Write drivers that are reusable across multiple MCU families and vendors Improve the way software documented Design APIs and HALs for microcontroller-based systems Who This Book Is For Those with some prior experience with embedded programming.

  • Author: Jacob Beningo
  • Publisher: Apress; 1st ed. edition (December 8, 2017)
  • Genre: Computers & Technology, Programming
  • ISBN: 978-1484232965
  • Dimensions: 7.01 x 0.75 x 10 inches


10. RESTful Web Clients: Enabling Reuse Through Hypermedia

Top 10 Best Books to Read in Software Reuse - August 2021

Powerful web-based REST and hypermedia-style APIs are becoming more common every day, but instead of applying the same techniques and patterns to hypermedia clients, many developers rely on custom client code. With this practical guide, you’ll learn how to move from one-off implementations to general-purpose client apps that are stable, flexible, and reusable. Author Mike Amundsen provides extensive background, easy-to-follow examples, illustrative dialogues, and clear recommendations for building effective hypermedia-based client applications. Along the way, you’ll learn how to harness many of the basic principles that underpin the Web. Convert HTML-only web apps into a JSON API service Overcome the challenges of maintaining plain JSON-style client apps Decouple the output format from the internal object model with the representor pattern Explore client apps built with HAL—Hypertext Application Language Tackle reusable clients with the Request, Parse, Wait Loop (RPW) pattern Learn the pros and cons of building client apps with the Siren content type Deal with API versioning by adopting a change-over-time aesthetic Compare how JSON, HAL, Siren, and Collection+JSON clients handle the Objects/Addresses/Actions Challenge Craft a single client application that can consume multiple services

  • Author: Mike Amundsen
  • Publisher: O'Reilly Media; 1st edition (March 14, 2017)
  • Genre: Computers & Technology, Programming
  • ISBN: 978-1491921906
  • Dimensions: 7 x 0.79 x 9.19 inches