Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
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
1. Starting the Journey
Themes
Java Features Software Design and Architecture SOLID Testing
Chapter Summary Iterating on You
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
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
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
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
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
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
8. Conclusion
Project-Based Structure Iterating on You Deliberate Practice Next Steps and Additional Resources
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion