Building Maintainable Software, Java Edition

Building Maintainable Software, Java Edition PDF Author: Joost Visser
Publisher: "O'Reilly Media, Inc."
ISBN: 1491953497
Category : Computers
Languages : en
Pages : 164

Get Book Here

Book Description
Have you ever felt frustrated working with someone else’s code? Difficult-to-maintain source code is a big problem in software development today, leading to costly delays and defects. Be part of the solution. With this practical book, you’ll learn 10 easy-to-follow guidelines for delivering Java software that’s easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems. Written by consultants from the Software Improvement Group (SIG), this book provides clear and concise explanations, with advice for turning the guidelines into practice. Examples for this edition are written in Java, while our companion C# book provides workable examples in that language. Write short units of code: limit the length of methods and constructors Write simple units of code: limit the number of branch points per method Write code once, rather than risk copying buggy code Keep unit interfaces small by extracting parameters into objects Separate concerns to avoid building large classes Couple architecture components loosely Balance the number and size of top-level components in your code Keep your codebase as small as possible Automate tests for your codebase Write clean code, avoiding "code smells" that indicate deeper problems

Building Maintainable Software, Java Edition

Building Maintainable Software, Java Edition PDF Author: Joost Visser
Publisher: "O'Reilly Media, Inc."
ISBN: 1491953497
Category : Computers
Languages : en
Pages : 164

Get Book Here

Book Description
Have you ever felt frustrated working with someone else’s code? Difficult-to-maintain source code is a big problem in software development today, leading to costly delays and defects. Be part of the solution. With this practical book, you’ll learn 10 easy-to-follow guidelines for delivering Java software that’s easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems. Written by consultants from the Software Improvement Group (SIG), this book provides clear and concise explanations, with advice for turning the guidelines into practice. Examples for this edition are written in Java, while our companion C# book provides workable examples in that language. Write short units of code: limit the length of methods and constructors Write simple units of code: limit the number of branch points per method Write code once, rather than risk copying buggy code Keep unit interfaces small by extracting parameters into objects Separate concerns to avoid building large classes Couple architecture components loosely Balance the number and size of top-level components in your code Keep your codebase as small as possible Automate tests for your codebase Write clean code, avoiding "code smells" that indicate deeper problems

Designing Maintainable Software

Designing Maintainable Software PDF Author: Dennis D. Smith
Publisher: Springer Science & Business Media
ISBN: 1461215005
Category : Computers
Languages : en
Pages : 173

Get Book Here

Book Description
Aimed at improving a programmers ability for altering code to fit changing requirements and for detecting and correcting errors, this book argues for a new way of thinking about maintaining software. It proposes the use of a set of human factors principles that govern the programmer-software-event world interactions and form the core of the maintenance process. The book is thus highly valuable for systems analysts and programmers, managers seeking to reduce costs, researchers looking at solutions to the maintenance problem, and students learning to write clear unambiguous programs.

Designing Data-Intensive Applications

Designing Data-Intensive Applications PDF Author: Martin Kleppmann
Publisher: "O'Reilly Media, Inc."
ISBN: 1491903104
Category : Computers
Languages : en
Pages : 658

Get Book Here

Book Description
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords? In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Design for Maintainability

Design for Maintainability PDF Author: Louis J. Gullo
Publisher: John Wiley & Sons
ISBN: 1119578515
Category : Technology & Engineering
Languages : en
Pages : 400

Get Book Here

Book Description
How to design for optimum maintenance capabilities and minimize the repair time Design for Maintainability offers engineers a wide range of tools and techniques for incorporating maintainability into the design process for complex systems. With contributions from noted experts on the topic, the book explains how to design for optimum maintenance capabilities while simultaneously minimizing the time to repair equipment. The book contains a wealth of examples and the most up-to-date maintainability design practices that have proven to result in better system readiness, shorter downtimes, and substantial cost savings over the entire system life cycle, thereby, decreasing the Total Cost of Ownership. Design for Maintainability offers a wealth of design practices not covered in typical engineering books, thus allowing readers to think outside the box when developing maintainability design requirements. The books principles and practices can help engineers to dramatically improve their ability to compete in global markets and gain widespread customer satisfaction. This important book: Offers a complete overview of maintainability engineering as a system engineering discipline Includes contributions from authors who are recognized leaders in the field Contains real-life design examples, both good and bad, from various industries Presents realistic illustrations of good maintainability design principles Provides discussion of the interrelationships between maintainability with other related disciplines Explores trending topics in technologies Written for design and logistics engineers and managers, Design for Maintainability is a comprehensive resource containing the most reliable and innovative techniques for improving maintainability when designing a system or product.

Real-World Software Development

Real-World Software Development PDF Author: Raoul-Gabriel Urma
Publisher: "O'Reilly Media, Inc."
ISBN: 1491967129
Category : Computers
Languages : en
Pages : 194

Get Book Here

Book Description
Explore the latest Java-based software development techniques and methodologies through the project-based approach in this practical guide. Unlike books that use abstract examples and lots of theory, Real-World Software Development shows you how to develop several relevant projects while learning best practices along the way. With this engaging approach, junior developers capable of writing basic Java code will learn about state-of-the-art software development practices for building modern, robust and maintainable Java software. You’ll work with many different software development topics that are often excluded from software develop how-to references. Featuring real-world examples, this book teaches you techniques and methodologies for functional programming, automated testing, security, architecture, and distributed systems.

Software Project Survival Guide

Software Project Survival Guide PDF Author: Steve McConnell
Publisher: Pearson Education
ISBN: 1572316217
Category : Business & Economics
Languages : en
Pages : 306

Get Book Here

Book Description
How to be sure your first important project isnþt your last.

Software Design for Flexibility

Software Design for Flexibility PDF Author: Chris Hanson
Publisher: MIT Press
ISBN: 0262362473
Category : Computers
Languages : en
Pages : 449

Get Book Here

Book Description
Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications. Time pressures encourage programmers to write code that works well for a narrow purpose, with no room to grow. But the best systems are evolvable; they can be adapted for new situations by adding code, rather than changing the existing code. The authors describe techniques they have found effective--over their combined 100-plus years of programming experience--that will help programmers avoid programming themselves into corners. The authors explore ways to enhance flexibility by: Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces Augmenting data with independent annotation layers, such as units of measurement or provenance Combining independent pieces of partial information using unification or propagation Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking Extending the programming language, using dynamically extensible evaluators

Working Effectively with Legacy Code

Working Effectively with Legacy Code PDF Author: Michael Feathers
Publisher: Prentice Hall Professional
ISBN: 0132931753
Category : Computers
Languages : en
Pages : 457

Get Book Here

Book Description
Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Domain-driven Design

Domain-driven Design PDF Author: Eric Evans
Publisher: Addison-Wesley Professional
ISBN: 0321125215
Category : Computers
Languages : en
Pages : 563

Get Book Here

Book Description
"Domain-Driven Design" incorporates numerous examples in Java-case studies taken from actual projects that illustrate the application of domain-driven design to real-world software development.

Software Design X-Rays

Software Design X-Rays PDF Author: Adam Tornhill
Publisher: Pragmatic Bookshelf
ISBN: 1680505807
Category : Computers
Languages : en
Pages : 356

Get Book Here

Book Description
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.