舉報

會員
Modular Programming in Java 9
最新章節:
Summary
ThisbookiswrittenforJavadeveloperswhoareinterestedinlearningandunderstandingthetechniquesandbestpracticestobuildmodularapplicationsinJava.ThebookassumessomepreviousprogrammingexperienceinJava8orearlier,familiaritywiththebasicJavatypessuchasclassesandinterfaces,aswellasexperienceincompilingandexecutingJavaprograms.
目錄(200章)
倒序
- cover
- Title Page
- Copyright
- Modular Programming in Java 9
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- Introducing Java 9 Modularity
- Modularity in Java
- Rethinking Java development with packages
- The unfortunate tale of a library developer
- The impossible task of a deployment engineer
- The classpath problem
- Java - the 20-year-old code base
- Legacy classes
- Internal APIs
- Java Platform Module System
- Project Jigsaw
- Summary
- Creating Your First Java Module
- Setting up the JDK
- Switching between JDKs
- Setting up the NetBeans IDE
- Java 9 modules
- Traditional Java code structure
- What is a module?
- Creating a module
- Creating your first Java module
- Compiling your module
- Executing your module
- Creating a module using NetBeans
- The address book viewer application
- Handling possible errors
- Summary
- Handling Inter-Module Dependencies
- Creating the second module
- Compiling two modules
- Configuring module dependency
- Module versioning
- Rethinking package structure
- Understanding module path arguments
- Revisiting classpath
- Revisiting the classpath problems
- Summary
- Introducing the Modular JDK
- Examining the legacy JDK
- The JRE structure
- Understanding rt.jar
- The problem with this model
- The attempted solution - Compact profiles
- The state of API encapsulation
- Understanding internal APIs
- The problem with this model
- The attempted solution - Deprecation warnings and documentation
- Enter Project Jigsaw
- Platform modularity
- The impact of platform modularity
- Module graph
- The java.base module
- Browsing modules
- Module types
- Examining platform file structure
- Observable modules
- Revisiting the two problems
- Solving the monolithic runtime
- Solving the API encapsulation problem
- Summary
- Using Platform APIs
- Adding logging ability
- Using an alternative compiler command
- Reading contacts from an XML file
- Removing the hard-coded contact list
- Creating the module
- Coding the XmlUtil class
- Coding the ContactLoader class
- Shared classes
- Dependency leakage
- Consuming the new module
- Adding UI with Java FX
- Creating the module
- Summary
- Module Resolution Readability and Accessibility
- Readability
- Accessibility
- Interface and implementation accessibility
- Split packages
- Tweaking modularity
- Implied readability
- Aggregator modules
- Java platform aggregator modules
- Qualified exports
- Applying the concepts to address book viewer
- Creating a custom aggregator module
- Optimizing module imports
- Optimizing module exports
- Summary
- Introducing Services
- The problem of coupling
- Understanding services
- The service registry
- Creating and using services
- Implementing sorting services
- Drawing the module graph
- Advanced services
- Supporting singleton and factory providers
- Implementing service priorities
- Service interface provider lookup
- Selective service instantiation
- Services and the module system goals
- Summary
- Understanding Linking and Using jlink
- Module resolution process
- Module resolution steps
- Examining module resolution in action
- Revisiting the state of the JDK
- Linking using jlink
- The jlink command
- Link phase optimizations and jlink plugins
- Building a modular JAR file
- Summary
- Module Design Patterns and Strategies
- Designing modules
- Scoping
- Team structure
- Reusability
- Modularizing by concerns
- Modularizing by layers
- Modularizing by change patterns
- Designing API
- Java modules coding patterns and strategies
- Pattern 1 - Public interface private implementation and factory class
- Example
- Pattern 2 - Services for multiple dynamic implementations
- Example
- Pattern 3 - Optional dependencies
- Example
- Pattern 4 - Optional dependencies using services
- Example
- Pattern 6 - Bundle model classes as separate sharable modules
- Pattern 7 - Open modules for reflection
- Example
- Pattern 8 - Use tooling for version control
- Pattern 9 - Design for changes
- Pattern 10 - Protect against dependency leakage
- Pattern 11 - Aggregator and facade modules
- Example
- Summary
- Preparing Your Code for Java 9
- Beginning Java 9 migration
- Introducing the sample Java 8 application
- Using the Java 9 compiler and runtime
- The unnamed module
- Handling non-standard access
- The jdeps tool
- Overriding module behavior
- Understanding the impact
- Recommended strategy
- Summary
- Migrating Your Code to Java 9
- Understanding the migration goal
- Beginning the migration
- Automatic modules
- Automatic module naming
- Automatic module definition
- Migrating with automatic modules
- Using jdeps to outline module relationships
- Refactoring into smaller modules
- Handling larger codebases
- Migrating libraries
- Reserving library names
- Using jdeps to create module descriptors
- Building libraries for multiple Java versions
- Summary
- Using Build Tools and Testing Java Modules
- Integrating with Apache Maven
- A Maven refresher
- Using Maven with Java 9 modules
- Working on a multi-module Java 9 Maven project
- Building the multi-module project
- Executing the multi-module project
- Understanding the exec plugin's module path
- Unit testing modules with Java 9
- Testing a Java 9 module
- Integrating with JUnit
- Wrapping up
- Summary 更新時間:2021-07-02 18:38:52
推薦閱讀
- SQL Server 從入門到項目實踐(超值版)
- Android應用程序開發與典型案例
- AngularJS Web Application Development Blueprints
- 基于Java技術的Web應用開發
- 機器人Python青少年編程開發實例
- 微信公眾平臺開發:從零基礎到ThinkPHP5高性能框架實踐
- Scala謎題
- MATLAB 2020從入門到精通
- Python深度學習:模型、方法與實現
- D3.js By Example
- C語言程序設計習題與實驗指導
- OpenStack Networking Essentials
- Sails.js Essentials
- 零基礎學C語言(第4版)
- Mastering SciPy
- HTML5與CSS3權威指南
- Mastering Machine Learning with R
- Python程序設計:基礎與實踐
- Python編程零基礎入門
- Unreal Engine 4 Game Development Essentials
- ASP.NET開發技巧精講
- Java從入門到精通(第7版)
- Mastering Kali Linux for Advanced Penetration Testing(Second Edition)
- 股票多因子模型實戰:Python核心代碼解析
- Learning Python for Forensics
- Kivy:Interactive Applications and Games in Python(Second Edition)
- Continuous Delivery with Docker and Jenkins
- 構建體驗新框架:人性化 智能化 平臺化
- 移動端機器學習實戰
- C# 8.0本質論