
Real-World Software Development
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Copyright
- Table of Contents
- Preface
- Why We Wrote This Book
- A Developer-Oriented Approach
- What's in the Book?
- Who Should Read This Book?
- Conventions Used in This Book
- Using Code Examples
- O'Reilly Online Learning
- How to Contact Us
- Chapter 1. Starting the Journey
- Themes
- Java Features
- Software Design and Architecture
- SOLID
- Testing
- Chapter Summary
- Iterating on You
- Chapter 2. The Bank Statements Analyzer
- 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
- Code Coverage
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 3. Extending the Bank Statements Analyzer
- The Challenge
- The Goal
- Extended Bank Statements Analyzer Requirements
- Open/Closed Principle
- Creating an Instance of a Functional Interface
- Lambda Expressions
- Interfaces Gotchas
- God Interface
- Too Granular
- Explicit Versus Implicit API
- Domain Class or Primitive Value?
- Multiple Exporters
- Introducing a Domain Object
- Defining and Implementing the Appropriate Interface
- Exception Handling
- Why Use Exceptions?
- Patterns and Anti-Patterns with Exceptions
- Guidelines for Using Exceptions
- Alternatives to Exceptions
- Using a Build Tool
- Why Use a Build Tool?
- Using Maven
- Using Gradle
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 4. The Document Management System
- The Challenge
- The Goal
- Document Management System Requirements
- Fleshing Out the Design
- Importers
- The Document Class
- Attributes and Hierarchical Documents
- Implementing and Registering Importers
- The Liskov Substitution Principle (LSP)
- Alternative Approaches
- Making Importer a Class
- Scoping and Encapsulation Choices
- Extending and Reusing Code
- Test Hygiene
- Test Naming
- Behavior Not Implementation
- Don't Repeat Yourself
- Good Diagnostics
- Testing Error Cases
- Constants
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 5. The Business Rules Engine
- The Challenge
- The Goal
- Business Rules Engine Requirements
- Test Driven Development
- Why Use TDD?
- The TDD Cycle
- Mocking
- Adding Conditions
- Modeling State
- Local Variable Type Inference
- Switch Expressions
- Interface Segregation Principle
- Designing a Fluent API
- What Is a Fluent API?
- Modeling the Domain
- Builder Pattern
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 6. Twootr
- The Challenge
- The Goal
- Twootr Requirements
- Design Overview
- Pull-Based
- Push-Based
- From Events to Design
- Communication
- GUI
- Persistence
- The Hexagonal Architecture
- Where to Begin
- Passwords and Security
- Followers and Twoots
- Modeling Errors
- Twooting
- Creating Mocks
- Verifying with Mocks
- Mocking Libraries
- SenderEndPoint
- Positions
- The equals and hashcode Methods
- The Contract Between equals and hashCode
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 7. Extending Twootr
- The Challenge
- The Goal
- Recap
- Persistence and the Repository Pattern
- Designing the Repositories
- Query Objects
- Functional Programming
- Lambda Expressions
- Method References
- Execute Around
- Streams
- Optional
- User Interface
- Dependency Inversion and Dependency Injection
- Packages and Build Systems
- Limitations and Simplifications
- Takeaways
- Iterating on You
- Completing the Challenge
- Chapter 8. Conclusion
- Project-Based Structure
- Iterating on You
- Deliberate Practice
- Next Steps and Additional Resources
- Index
- About the Authors
- Colophon
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.