舉報

會員
Java EE 8 Design Patterns and Best Practices
PatternsareessentialdesigntoolsforJavadevelopers.JavaEEDesignPatternsandBestPracticeshelpsdevelopersattainbettercodequalityandprogresstohigherlevelsofarchitecturalcreativitybyexaminingthepurposeofeachavailablepatternanddemonstratingitsimplementationwithvariouscodeexamples.ThisbookwilltakeyouthroughanumberofpatternsandtheirJavaEE-specificimplementations.Inthebeginning,youwilllearnthefoundationfor,andimportanceof,designpatternsinJavaEE,andthenwillmoveontoimplementvariouspatternsonthepresentationtier,businesstier,andintegrationtier.Further,youwillexplorethepatternsinvolvedinAspect-OrientedProgramming(AOP)andtakeacloserlookatreactivepatterns.Movingon,youwillbeintroducedtomodernarchitecturalpatternsinvolvedincomposingmicroservicesandcloud-nativeapplications.Youwillgetacquaintedwithsecuritypatternsandoperationalpatternsinvolvedinscalingandmonitoring,alongwithsomepatternsinvolvedindeployment.Bytheendofthebook,youwillbeabletoefficientlyaddresscommonproblemsfacedwhendevelopingapplicationsandwillbecomfortableworkingonscalableandmaintainableprojectsofanysize.
目錄(291章)
倒序
- 封面
- Title Page
- Copyright and Credits
- Java EE 8 Design Patterns and Best Practices
- Dedication
- 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
- Introduction to Design Patterns
- Explaining design patterns
- Explaining the Gang of Four design patterns
- The catalog of Gang of Four design patterns
- Understanding the advantages of design patterns
- Understanding the basic design patterns of the Java world
- Explaining Singleton
- Explaining Abstract Factory
- Explaining Facade
- Explaining Iterator
- Explaining Proxy
- Explaining enterprise patterns
- Defining the difference between design patterns and enterprise patterns
- Summary
- Presentation Patterns
- Explaining the presentation tier
- Explaining intercepting filter pattern
- Implementing the intercepting filter pattern using Java EE 8
- Implementing LogAccessFilter
- Implementing LogBrowserFilter
- Deciding filter mapping
- Explaining the FrontController pattern
- Implementing FrontController
- Implementing the commands
- The application controller pattern
- Implementing DownloadFrontController
- Implementing DownloadApplicationController
- Implementing commands
- The difference between the application controller and front controller patterns
- Summary
- Business Patterns
- Understanding the business tier
- Explaining the Business Delegate pattern
- Client tier presentation tier and business tier
- Layers
- Tiers
- The classic Business Delegate pattern scenario
- The benefits of the Business Delegate pattern
- Business Delegate – obsolete or not
- Explaining the Session Fa?ade pattern
- Benefits of Session Fa?ade
- Implementing the Session Fa?ade pattern in JEE
- The classic Session Fa?ade pattern scenario
- Implementing the Session Fa?ade pattern
- Explaining the business-object pattern
- Applications with complex business rules
- Motivation for using the business-object pattern
- Benefits of business-object pattern usage
- Implementing the business-object pattern
- Summary
- Integration Patterns
- Explaining the concept of the integration tier
- Explaining the concept of the data-access object pattern
- Implementing the data-access object pattern
- Implementing the entity with JPA
- Implementing DAO
- Explaining the concept of the domain-store pattern
- Implementing the domain-store pattern
- Implementing the PersistenceManagerFactory class
- Implementing the PersistenceManager class
- Implementing the EmployeeStoreManager class
- Implementing the StageManager interface
- Implementing the TransactionFactory class
- Implementing the Transaction class
- Implementing the EmployeeBusiness class
- Explaining the concept of the service-activator pattern
- Java Message Service (JMS)
- EJB asynchronous methods
- Asynchronous events – producers and observers
- Implementing the service-activator pattern
- Implementing sending and receiving messages with JMS
- Implementing the EJB asynchronous methods
- Implementing asynchronous events – producers and observers
- Summary
- Aspect-Oriented Programming and Design Patterns
- Aspect-oriented programming
- Compile-time versus run-time AOP
- AOP in JEE scenario – the interceptor
- A brief word about CDI and beans
- The bean
- Managed beans in CDI
- Loose coupling
- Interceptors in the JEE platform
- EJB interceptor implementation
- Intercepting method invocation
- Interceptor class and multiple method interceptors
- Intercepting life cycle callback events
- CDI interceptor implementation
- Decorator
- The decorator pattern
- The decorator in a JEE scenario
- Decorator implementation
- Summary
- Reactive Patterns
- Explaining the concept of an event in CDI
- Implementing an event in CDI
- Implementing the FileUploadResource class
- Bean sent on the event
- Qualifier to select the JpgHandler observer to react to an event
- Qualifier to select the PdfHandler observer to react to an event
- Qualifier to select the ZipHandler observer to react to an event
- The FIleUploadResource class
- Implementing observers
- Explaining the concept of an asynchronous EJB method
- Difference between an asynchronous EJB method and an event in CDI
- Implementing an asynchronous EJB method
- Implementing EJBs
- Implementing the FileUploadResource class
- Calling an asynchronous EJB method to save a PDF
- Calling an asynchronous EJB method to save a JPG
- Calling an asynchronous EJB method to save a ZIP
- Explaining the concept of an asynchronous REST service
- Implementing an asynchronous REST service
- Implementing the EJBs
- Implementing the FileUploadResource class
- Implementing the client API
- Summary
- Microservice Patterns
- Explaining microservices patterns
- Inside a monolithic application
- Difficulty in implementing new features and fixing bugs
- Long application startup time
- Inefficient continuous deployment
- Low reliability
- Difficulty using new frameworks and technologies
- The scale cube
- What microservices actually are
- Microservices are not a silver bullet
- Explaining how microservices architecture works
- The application is decomposed into smaller components
- Multitask teams
- Product focus
- Simpler and smarter processing
- Decentralized governance of libraries and APIs
- Single responsibility principle
- Fault tolerance
- Evolutionary systems
- Decentralized data
- Explaining when to use microservices architecture
- How to decompose an application into microservices
- Identifying microservices
- Taking care of the process of extracting application modules that are candidates for microservices
- Establishing a hexagonal model for the application
- Advantages and drawbacks of a microservices-based application
- Microservices architecture patterns
- Aggregator pattern
- Proxy pattern
- Chained pattern
- Branch pattern
- Asynchronous pattern
- Implementing microservices
- Summary
- Cloud-Native Application Patterns
- Explaining the concept of cloud-native applications
- Explaining the goals of the cloud-native application
- Explaining the cloud design patterns
- Composite application (microservices)
- Abstraction
- Twelve-factor
- Codebase
- Dependencies
- Config
- Backing services
- Build release run
- Processes
- Port-binding
- Concurrency
- Disposability
- Dev/prod parity
- Logs
- Admin processes
- The API Gateway
- The service-registry pattern
- Config server
- The circuit-breaker pattern
- The circuit-breaker mechanism
- Summary
- Security Patterns
- Explaining the concept of security patterns
- Explaining the concept of the single-sign-on pattern
- Implementing the single-sign-on pattern
- Implementing the AuthenticationResource class
- Implementing the App1 and App2 classes
- Explaining the authentication mechanism
- Explaining basic authentication
- Explaining form authentication
- Explaining digest authentication
- Explaining client authentication
- Explaining mutual authentication
- When to use the deployment descriptor annotation or programmatic configuration
- Implementing the authentication mechanism
- Implementing the web.xml file
- Implementing the HelloWorld class
- Implementing the HelloWordServlet class
- Explaining the authentication interceptor
- Implementing the authentication interceptor
- Implementing the CDI interceptor
- Implementing the JAX-RS resource
- Summary
- Deployment Patterns
- Explaining the concept of deployment patterns
- Explaining the concept of canary deployment
- Defining the canary servers
- Deploying the application to canary servers
- Testing the application and verifying whether it satisfies our criteria
- Deploying the application to remaining servers
- Explaining the concept of blue/green deployment
- Defining the group of servers to receive the first deployment
- Deploying the application to a group of servers
- Deploying the application to the remaining server
- Explaining the concept of A/B testing
- Defining a group of end users
- Defining the servers to receive a new version
- Deploying the new version
- Evaluating the impact of a new version
- Explaining the concept of continuous deployment
- Summary
- Operational Patterns
- Explaining the concept of operational patterns
- Explaining the concept of performance and scalability patterns
- The cache-aside pattern
- When to use the cache-aside pattern
- The lifetime of cached data
- Evicting data
- Priming the cache
- Consistency
- Local (in-memory) caching
- The CQRS pattern
- When to use the CQRS pattern
- The event sourcing pattern
- Understanding the event of event sourcing
- Promoting performance
- Promoting decoupling
- Promoting scalability
- Promoting auditing
- Explaining the index table pattern
- The materialized view pattern
- Rebuilding the materialized view
- When to use the materialized view pattern
- Explaining the sharding pattern
- When to use the sharding pattern
- Explaining the concept of management and monitoring patterns
- The ambassador pattern
- When to use the ambassador pattern
- Explaining the health endpoint monitoring pattern
- When to use the health endpoint monitoring pattern
- Explaining the external configuration store pattern
- When to use the external configuration store pattern
- Summary
- MicroProfile
- Explaining the Eclipse MicroProfile project approach
- Eclipse MicroProfile Config 1.3
- Eclipse MicroProfile Fault Tolerance 1.1
- Eclipse MicroProfile Health Check 1.0
- Eclipse MicroProfile JWT authentication 1.1
- Eclipse MicroProfile Metrics 1.1
- Eclipse MicroProfile OpenAPI 1.0
- Eclipse MicroProfile OpenTracing 1.1
- Eclipse MicroProfile REST Client 1.1
- CDI 2.0
- Common annotations 1.3
- JAX-RS 2.1
- JSON-B 1.0
- JSON-P 1.1
- Why should we use the MicroProfile project?
- Community
- Future work
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-07-23 16:55:40
推薦閱讀
- pcDuino開發實戰
- 從零開始寫Linux內核:一書學透核心原理與實現
- Learning Windows Server Containers
- Hands-On DevOps with Vagrant
- 深入淺出Node.js
- Advanced Infrastructure Penetration Testing
- 電腦辦公(Windows 10 + Office 2016)入門與提高(超值版)
- Linux從入門到精通(視頻教學版)
- Azure Resource Manager Templates Quick Start Guide
- 基于Arduino的嵌入式系統入門與實踐
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Gradle Effective Implementations Guide(Second Edition)
- Windows Azure實戰
- Administering ArcGIS for Server
- Instant Responsive Web Design
- 嵌入式Linux設備驅動程序開發指南(原書第2版)
- Windows10開發入門經典
- 你必須掌握的Windows 8技巧
- Command Line Fundamentals
- Getting Started with Oracle Public Cloud
- iCloud Standard Guide
- MacTalk·人生元編程
- Linux C編程從初學到精通
- 深度學習在動態媒體中的應用與實踐
- Linux應用基礎教程(基于CentOS 7)
- Windows8應用開發實戰:使用JavaScript
- 圖像處理、分析與機器視覺
- MATLAB控制系統設計與仿真
- RHEL8系統管理與性能優化
- Android底層開發實戰