real-world_software_development.pdf

(6809 KB) Pobierz
Real-World
Software
Development
A Project-Driven Guide to Fundamentals in Java
Raoul-Gabriel Urma
& Richard Warburton
A Project-Driven Guide to Fundamentals in Java
Real-World Software
Development
Raoul-Gabriel Urma and Richard Warburton
Beijing
Boston Farnham Sebastopol
Tokyo
Real-World Software Development
by Raoul-Gabriel Urma and Richard Warburton
Copyright © 2020 Functor Ltd. and Monotonic Ltd. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are
also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional
sales department: 800-998-9938 or
corporate@oreilly.com.
Editor:
Alicia Young
Production Editor:
Kristen Brown
Copyeditor:
Kim Cofer
Proofreader:
Tracy Brown-Hamilton
December 2019:
First Edition
Indexer:
Ellen Troutman-Zaig
Interior Designer:
David Futato
Cover Designer:
Karen Montgomery
Illustrator:
Rebecca Demarest
Revision History for the First Edition
2019-12-02:
First Release
See
http://oreilly.com/catalog/errata.csp?isbn=9781491967171
for release details.
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc.
Real-World Software Development,
the
cover image, and related trade dress are trademarks of O’Reilly Media, Inc.
The views expressed in this work are those of the authors, and do not represent the publisher’s views.
While the publisher and the authors have used good faith efforts to ensure that the information and
instructions contained in this work are accurate, the publisher and the authors disclaim all responsibility
for errors or omissions, including without limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and instructions contained in this work is at your own
risk. If any code samples or other technology this work contains or describes is subject to open source
licenses or the intellectual property rights of others, it is your responsibility to ensure that your use
thereof complies with such licenses and/or rights.
978-1-491-96717-1
[LSI]
Table of Contents
Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1.
Starting the Journey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Themes
Java Features
Software Design and Architecture
SOLID
Testing
Chapter Summary
Iterating on You
1
1
2
2
2
3
4
2.
The Bank Statements Analyzer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
The Challenge
The Goal
Bank Statements Analyzer Requirements
KISS Principle
final Variables
Code Maintainability and Anti-Patterns
God Class
Code Duplication
Single Responsibility Principle
Cohesion
Class-Level Cohesion
Method-Level Cohesion
Coupling
Testing
Automated Testing
Using JUnit
5
5
6
6
8
9
9
10
10
14
17
20
21
23
23
24
iii
Zgłoś jeśli naruszono regulamin