舉報

會員
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
推薦閱讀
- 極簡算法史:從數學到機器的故事
- Deploying Node.js
- C++ Builder 6.0下OpenGL編程技術
- Python爬蟲開發與項目實戰
- Scratch 3.0少兒編程與邏輯思維訓練
- Getting Started with SQL Server 2012 Cube Development
- KnockoutJS Starter
- R語言與網絡輿情處理
- 軟件測試實用教程
- JavaScript腳本特效編程給力起飛
- SQL Server 2008 R2數據庫技術及應用(第3版)
- 鴻蒙OS應用編程實戰
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- C#程序設計基礎入門教程
- Processing開發實戰
- LabVIEW數據采集(第2版)
- 分布式系統架構與開發:技術原理與面試題解析
- 少年小魚的魔法之旅:神奇的Python
- 計算機信息技術實踐教程
- Python自動化開發實戰
- jQuery權威指南
- Java EE 7 First Look
- C++程序設計基礎(下)
- Tableau數據可視化從入門到精通
- 數字化中臺
- 區塊鏈原理、技術及應用
- Microsoft BizTalk ESB Toolkit 2.1
- Learning Android Google Maps
- Hands-On Functional Programming in Rust
- INSTANT PostgreSQL Starter