Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20

Real–World Software Development

A Project-Driven Guide to Fundamentals in Java

Paperback Engels 2019
Verkooppositie 6023
Verwachte levertijd ongeveer 8 werkdagen


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.


Aantal pagina's:202


Wees de eerste die een lezersrecensie schrijft!

Geef uw waardering

Zeer goed Goed Voldoende Matig Slecht

Over Raoul-Gabriel Urma

Raoul-Gabriel Urma is an author of the bestselling book “Java 8 in Action” (Manning). He has worked as a software engineer for Oracle’s Java Platform Group, as well as for Google’s Python team, eBay, and Goldman Sachs. An instructor and frequent conference speaker, he’s currently completing a PhD in Computer Science at the University of Cambridge. He is also co-founder of Cambridge Coding Academy and a Fellow of the Royal Society of Arts. In addition, Raoul-Gabriel holds a MEng in Computer Science from Imperial College London and graduated with first-class honors, having won several prizes for technical innovation.

Andere boeken door Raoul-Gabriel Urma

Over Richard Warburton

Richard is an empirical technologist and solver of deep-dive technical problems. He has professionally worked on static analysis problems, verifying part of a compiler and developing advanced automated bug detection technology. More recently his career has been focussed on data analytics for high performance computing. He is a leader in the London Java Community, sits on their JCP Committee and organises the Adopt-a-JSR programs for Lambdas and Date and Time in Java 8. Richard is also a known conference speaker, having talked at JavaOne, DevoxxUK and JAX London. He obtained a PhD in Computer Science from The University of Warwick where his research focussed on compiler theory.

Andere boeken door Richard Warburton


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
Java Features
Software Design and Architecture
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
Class-Level Cohesion
Method-Level Cohesion
Automated Testing
Using JUnit
Code Coverage
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
Iterating on You
Completing the Challenge

4. The Document Management System
The Challenge
The Goal
Document Management System Requirements
Fleshing Out the Design
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
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
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
Iterating on You
Completing the Challenge

6. Twootr
The Challenge
The Goal
Twootr Requirements
Design Overview
From Events to Design
The Hexagonal Architecture
Where to Begin
Passwords and Security
Followers and Twoots
Modeling Errors
Creating Mocks
Verifying with Mocks
Mocking Libraries
The equals and hashcode Methods
The Contract Between equals and hashCode
Iterating on You
Completing the Challenge

7. Extending Twootr
The Challenge
The Goal
Persistence and the Repository Pattern
Designing the Repositories
Query Objects
Functional Programming
Lambda Expressions
Method References
Execute Around
User Interface
Dependency Inversion and Dependency Injection
Packages and Build Systems
Limitations and Simplifications
Iterating on You
Completing the Challenge

8. Conclusion
Project-Based Structure
Iterating on You
Deliberate Practice
Next Steps and Additional Resources


Managementboek TOP 5


Populaire producten



        Real–World Software Development