舉報

會員
Design Patterns and Best Practices in Java
Havingaknowledgeofdesignpatternsenablesyou,asadeveloper,toimproveyourcodebase,promotecodereuse,andmakethearchitecturemorerobust.Aslanguagesevolve,newfeaturestaketimetofullyunderstandbeforetheyareadoptedenmasse.Themissionofthisbookistoeasetheadoptionofthelatesttrendsandprovidegoodpracticesforprogrammers.WefocusonshowingyouthepracticalaspectsofsmartercodinginJava.We'llstartoffbygoingoverobject-oriented(OOP)andfunctionalprogramming(FP)paradigms,movingontodescribethemostfrequentlyuseddesignpatternsintheirclassicalformatandexplainhowJava’sfunctionalprogrammingfeaturesarechangingthem.YouwilllearntoenhanceimplementationsbymixingOOPandFP,andfinallygettoknowaboutthereactiveprogrammingmodel,whereFPandOOPareusedinconjunctionwithaviewtowritingbettercode.Gradually,thebookwillshowyouthelatesttrendsinarchitecture,movingfromMVCtomicroservicesandserverlessarchitecture.WewillfinishoffbyhighlightingthenewJavafeaturesandbestpractices.Bytheendofthebook,youwillbeabletoefficientlyaddresscommonproblemsfacedwhiledevelopingapplicationsandbecomfortableworkingonscalableandmaintainableprojectsofanysize.
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- What should be expected in Java 11?
- Some more additions to Java 10
- Parallelization of full garbage collection
品牌:中圖公司
上架時間:2021-06-25 20:42:57
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-06-25 20:53:16
- Other Books You May Enjoy
- Summary
- What should be expected in Java 11?
- Some more additions to Java 10
- Parallelization of full garbage collection
- copyOf method for collections
- Local variable type inference
- Best practices and new features of Java 10
- Some more additions to Java 9
- New HTTP client
- Additions to the Optional class
- Method addition in arrays
- Creating immutable collections
- Enhancements in streams
- Private methods in interfaces
- JShell
- Java platform module system
- Best practices and new features of Java 9
- Currently supported versions of Java
- Features of Java 8
- Features of Java 5
- A brief history of Java
- Best Practices in Java
- Summary
- What are the challenges with serverless architecture?
- What does serverless architecture guarantee?
- Independence from infrastructure planning
- Serverless architecture with an example
- Serverless architecture
- What are challenges with microservices-based architecture?
- What does microservices-based architecture guarantee?
- Communicating among services
- Microservice architecture with an example
- Microservices-based Architecture
- What are the challenges with service-oriented architecture?
- What does service-oriented architecture guarantee?
- Enterprise service bus
- SOAP versus REST
- Web services
- Service-oriented architecture with an example
- Service-oriented architecture
- What are the challenges with MVC architecture?
- What does MVC architecture guarantee?
- A more contemporary MVC implementation
- MVC architecture with an example
- Model View Controller architecture
- What are the challenges with layered architecture?
- What does layered architecture guarantee?
- Tiers versus layers
- Layered architecture with an example
- Layered architecture
- What is application architecture?
- Trends in Application Architecture
- Summary
- Idempotency pattern
- Publisher-subscriber pattern
- Event-driven communication pattern
- Patterns for message-driven implementation
- Self-containment pattern
- Autoscaling pattern
- Stateless-services pattern
- Single responsibility pattern
- Patterns for elasticity
- Bulkhead pattern
- Monitoring patterns
- Bounded-queue pattern
- Failure-handling pattern
- The circuit-breaker pattern
- Patterns for resilience
- Fail-fast pattern
- Fan-out and quickest-reply pattern
- Caching pattern
- Asynchronous-communication pattern
- Request-response pattern
- Patterns for responsiveness
- Reactive Design Patterns
- Summary
- Example project
- Subjects
- Schedulers
- The retry operator
- The using operator
- The do operator
- The catch operator
- Error handling
- The zip operator
- The merge operator
- The join operator
- The combine operator
- Combining Observables
- The take operator
- The skip operator
- The sample operator
- The first/last operator
- The filter operator
- The elementAt operator
- The distinct operator
- The debounce operator
- Filtering Observables
- The window operator
- The scan operator
- The map operator
- The groupBy operator
- The flatMap operator
- The buffer operator
- The subscribe operator
- Transforming Observables
- The repeat operator
- The range operator
- The timer operator
- The interval operator
- The from operator
- The empty operator
- The defer operator
- The create operator
- Creating Observables
- Observables Flowables Observers and Subscriptions
- JShell installation
- Maven installation
- Installing the RxJava framework
- Introduction to RxJava
- What is reactive programming?
- Let's Get Reactive
- Summary
- Examples
- Intent
- The execute around method
- Examples
- Intent
- Memoization
- Examples
- Intent
- Tail call optimization
- Examples
- Intent
- Loan pattern
- Examples
- Intent
- MapReduce
- Functional design patterns
- Template method
- Strategy
- Observer
- Iterator
- Interpreter
- Command
- Chain of responsibility
- Decorator
- Adapter
- Builder
- Singleton
- Re-implementing OOP design patterns
- Stream terminal operations
- Stream intermediate operations
- Stream creator operations
- Streams
- Lambda expressions
- Introducing functional programming in Java
- Monads
- Applicatives
- Functors
- Immutability
- Closure
- Currying
- Composition
- Higher-order functions
- First-class functions
- Referential transparency
- Pure functions
- Lambda expressions
- Introducing functional programming
- Functional Patterns
- Summary
- Examples
- Implementation
- Intent
- Flyweight pattern
- Examples
- Implementation
- Intent
- Fa?ade pattern
- Examples
- Implementation
- Intent
- Composite pattern
- Examples
- Implementation
- Intent
- Bridge pattern
- Examples
- Implementation
- Intent
- Decorator pattern
- Examples
- Implementation
- Intent
- Proxy pattern
- Examples
- Implementation
- Intent
- Adapter pattern
- Structural Patterns
- Summary
- Implementation
- Intent
- The visitor pattern
- Implementation
- The null object pattern
- Implementation
- Intent
- The template method pattern
- Implementation
- Intent
- The strategy pattern
- The state pattern
- Applicability
- Implementation
- Intent
- The memento pattern
- Applicability and examples
- Implementation
- Intent
- The mediator pattern
- Implementation
- Intent
- The observer pattern
- Applicability and examples
- Implementation
- Intent
- The iterator pattern
- Applicability and examples
- Implementation
- Intent
- The interpreter pattern
- Applicability and examples
- Implementation
- Intent
- The command pattern
- Applicability and examples
- Implementation
- Intent
- The chain-of-responsibility pattern
- Behavioral Patterns
- Summary
- Object pool pattern
- Shallow clone versus deep clone
- Prototype pattern
- Anonymous builders with method chaining
- Simplified builder pattern
- Car builder example
- Builder pattern
- Simple factory versus factory method versus abstract factory
- Abstract factory
- Anonymous concrete factory
- Factory method pattern
- Simple factory with class registration using Product.newInstance
- Simple factory with class registration using reflection
- Static factory
- Simple factory pattern
- The factory pattern
- Early and lazy loading
- Lock-free thread-safe singleton
- Synchronized singleton with double-checked locking mechanism
- Synchronized singletons
- Singleton pattern
- Creational Patterns
- Summary
- Dependency inversion principle
- Interface Segregation Principle
- Liskov Substitution Principle
- Open/closed principle
- Single responsibility principle
- Design patterns and principles
- Composition
- Aggregation
- Association
- Dependency
- Realization
- Generalization
- Class relations
- An introduction to Unified Modeling Language
- Working with collections versus working with streams
- Functional programming
- Declarative programming
- Polymorphism
- Inheritance
- Abstraction
- Encapsulation
- Objects and classes
- Object-oriented paradigm
- Real-life imperative example
- Imperative programming
- Java programming paradigms
- Java – an introduction
- From Object-Oriented to Functional Programming
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the authors
- Contributors
- PacktPub.com
- Why subscribe?
- Packt Upsell
- 版權信息
- 封面
- 封面
- 版權信息
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- From Object-Oriented to Functional Programming
- Java – an introduction
- Java programming paradigms
- Imperative programming
- Real-life imperative example
- Object-oriented paradigm
- Objects and classes
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Declarative programming
- Functional programming
- Working with collections versus working with streams
- An introduction to Unified Modeling Language
- Class relations
- Generalization
- Realization
- Dependency
- Association
- Aggregation
- Composition
- Design patterns and principles
- Single responsibility principle
- Open/closed principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency inversion principle
- Summary
- Creational Patterns
- Singleton pattern
- Synchronized singletons
- Synchronized singleton with double-checked locking mechanism
- Lock-free thread-safe singleton
- Early and lazy loading
- The factory pattern
- Simple factory pattern
- Static factory
- Simple factory with class registration using reflection
- Simple factory with class registration using Product.newInstance
- Factory method pattern
- Anonymous concrete factory
- Abstract factory
- Simple factory versus factory method versus abstract factory
- Builder pattern
- Car builder example
- Simplified builder pattern
- Anonymous builders with method chaining
- Prototype pattern
- Shallow clone versus deep clone
- Object pool pattern
- Summary
- Behavioral Patterns
- The chain-of-responsibility pattern
- Intent
- Implementation
- Applicability and examples
- The command pattern
- Intent
- Implementation
- Applicability and examples
- The interpreter pattern
- Intent
- Implementation
- Applicability and examples
- The iterator pattern
- Intent
- Implementation
- Applicability and examples
- The observer pattern
- Intent
- Implementation
- The mediator pattern
- Intent
- Implementation
- Applicability and examples
- The memento pattern
- Intent
- Implementation
- Applicability
- The state pattern
- The strategy pattern
- Intent
- Implementation
- The template method pattern
- Intent
- Implementation
- The null object pattern
- Implementation
- The visitor pattern
- Intent
- Implementation
- Summary
- Structural Patterns
- Adapter pattern
- Intent
- Implementation
- Examples
- Proxy pattern
- Intent
- Implementation
- Examples
- Decorator pattern
- Intent
- Implementation
- Examples
- Bridge pattern
- Intent
- Implementation
- Examples
- Composite pattern
- Intent
- Implementation
- Examples
- Fa?ade pattern
- Intent
- Implementation
- Examples
- Flyweight pattern
- Intent
- Implementation
- Examples
- Summary
- Functional Patterns
- Introducing functional programming
- Lambda expressions
- Pure functions
- Referential transparency
- First-class functions
- Higher-order functions
- Composition
- Currying
- Closure
- Immutability
- Functors
- Applicatives
- Monads
- Introducing functional programming in Java
- Lambda expressions
- Streams
- Stream creator operations
- Stream intermediate operations
- Stream terminal operations
- Re-implementing OOP design patterns
- Singleton
- Builder
- Adapter
- Decorator
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Observer
- Strategy
- Template method
- Functional design patterns
- MapReduce
- Intent
- Examples
- Loan pattern
- Intent
- Examples
- Tail call optimization
- Intent
- Examples
- Memoization
- Intent
- Examples
- The execute around method
- Intent
- Examples
- Summary
- Let's Get Reactive
- What is reactive programming?
- Introduction to RxJava
- Installing the RxJava framework
- Maven installation
- JShell installation
- Observables Flowables Observers and Subscriptions
- Creating Observables
- The create operator
- The defer operator
- The empty operator
- The from operator
- The interval operator
- The timer operator
- The range operator
- The repeat operator
- Transforming Observables
- The subscribe operator
- The buffer operator
- The flatMap operator
- The groupBy operator
- The map operator
- The scan operator
- The window operator
- Filtering Observables
- The debounce operator
- The distinct operator
- The elementAt operator
- The filter operator
- The first/last operator
- The sample operator
- The skip operator
- The take operator
- Combining Observables
- The combine operator
- The join operator
- The merge operator
- The zip operator
- Error handling
- The catch operator
- The do operator
- The using operator
- The retry operator
- Schedulers
- Subjects
- Example project
- Summary
- Reactive Design Patterns
- Patterns for responsiveness
- Request-response pattern
- Asynchronous-communication pattern
- Caching pattern
- Fan-out and quickest-reply pattern
- Fail-fast pattern
- Patterns for resilience
- The circuit-breaker pattern
- Failure-handling pattern
- Bounded-queue pattern
- Monitoring patterns
- Bulkhead pattern
- Patterns for elasticity
- Single responsibility pattern
- Stateless-services pattern
- Autoscaling pattern
- Self-containment pattern
- Patterns for message-driven implementation
- Event-driven communication pattern
- Publisher-subscriber pattern
- Idempotency pattern
- Summary
- Trends in Application Architecture
- What is application architecture?
- Layered architecture
- Layered architecture with an example
- Tiers versus layers
- What does layered architecture guarantee?
- What are the challenges with layered architecture?
- Model View Controller architecture
- MVC architecture with an example
- A more contemporary MVC implementation
- What does MVC architecture guarantee?
- What are the challenges with MVC architecture?
- Service-oriented architecture
- Service-oriented architecture with an example
- Web services
- SOAP versus REST
- Enterprise service bus
- What does service-oriented architecture guarantee?
- What are the challenges with service-oriented architecture?
- Microservices-based Architecture
- Microservice architecture with an example
- Communicating among services
- What does microservices-based architecture guarantee?
- What are challenges with microservices-based architecture?
- Serverless architecture
- Serverless architecture with an example
- Independence from infrastructure planning
- What does serverless architecture guarantee?
- What are the challenges with serverless architecture?
- Summary
- Best Practices in Java
- A brief history of Java
- Features of Java 5
- Features of Java 8
- Currently supported versions of Java
- Best practices and new features of Java 9
- Java platform module system
- JShell
- Private methods in interfaces
- Enhancements in streams
- Creating immutable collections
- Method addition in arrays
- Additions to the Optional class
- New HTTP client
- Some more additions to Java 9
- Best practices and new features of Java 10
- Local variable type inference
- copyOf method for collections
- Parallelization of full garbage collection
- Some more additions to Java 10
- What should be expected in Java 11?
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-25 20:53:16