You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>
169
-
<p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a</p>
<p>What is modularity in Java? To some, it’s a principle for development: programming to interfaces and hiding the details of implementations. This is the “school of encapsulation”. To others, it’s about leaning hard on class loaders to provide dynamic execution environments. This is the “school of isolation”. To still others, it’s about artifacts, repositories, and tooling. This is the “school of configuration”. Individually, these perspectives are valid, but they feel like pieces of a larger story that’s not quite clear. If a developer knows that some portion of their code is for internal use only, why can’t they hide a package as easily as hiding a class or a field? If code can only be compiled and run in the presence of its dependencies, why don’t those dependencies flow smoothly from compilation to packaging to installation to execution? If tools only work when presented with pristine self-describing artifacts, how can anyone reuse older libraries that are just plain JAR files?</p>
168
+
169
+
<p>Java 9 offers a coherent story for modularity by introducing modules as a first-class feature of the Java platform. A module is a set of packages designed for reuse. This simple concept has a surprisingly powerful impact on how code is developed, deployed, and run. The longstanding mechanisms for promoting and controlling reuse in Java – interfaces, access control, JAR files, class loaders, dynamic linking – all work better when packages are placed into modules.</p>
170
+
171
+
<p>First, modules clarify the structure of a program in a way that other mechanisms cannot. Many developers will be surprised that their code is not as well structured as they thought. For example, a codebase spread across multiple JAR files has a good chance of cycles between classes in different JAR files, but cycles between classes in different modules are forbidden. One of the motivations for investing in the modularization of a codebase is the knowledge that, once complete, there won’t be any backsliding into the ball of mud that cyclic dependencies allow. Developing with modules also leads to programming with services, which reduce coupling and increase abstraction even further.</p>
172
+
173
+
<p>Second, modules engender a sense of responsibility for code in a way that other mechanisms cannot. A developer who exports packages from a module is making a commitment to a stable API, and even the name of the module itself is part of the API. A developer who bundles too much functionality into a single module will cause that module to drag in a large number of dependencies which are irrelevant for any single task; anyone who reuses the module will realize its sprawling nature even if its internals are hidden. Developing with modules encourages every developer to think about the stability and cohesiveness of their code.</p>
<h2class="page-header page-header-left">About the Authors</h2>
188
194
<h3>Sander Mak</h3>
189
195
<p>Sander is a Fellow at <ahref="https://www.luminis.eu">Luminis</a> in The Netherlands. At Luminis, he crafts modular and scalable software, most often on the JVM but with a touch of TypeScript where needed. He is author of the O'Reilly book 'Java 9 Modularity' and an avid conference speaker.</p>
190
-
<p>Sander loves sharing knowledge, through his blog at <ahref="http://branchandbound.net">http://branchandbound.net</a>, and also as <ahref="https://www.pluralsight.com/authors/sander-mak">Pluralsight</a> instructor.</p>
196
+
<p>Sander loves sharing knowledge, through his blog at <ahref="http://branchandbound.net">http://branchandbound.net</a>, and also as <ahref="http://bit.ly/sander-ps">Pluralsight</a> instructor.</p>
<pclass="page-heade-p">Below you'll find a number of options to get <i>Java 9 Modularity</i>. Consider leaving a review after reading, it is much appreciated!</p>
260
+
<pclass="page-heade-p">Below you'll find a number of options to get <i>Java 9 Modularity</i>. Consider leaving a review after reading (for example, on <ahref="https://www.goodreads.com/book/show/31332944-java-9-modularity" target="_blank">Goodreads</a> or <ahref="https://www.amazon.com/review/create-review/ref=cm_cr_dp_d_wr_but_top?ie=UTF8&channel=glance-detail&asin=1491954167&_encoding=UTF8&tag=branandboun-20&linkCode=ur2&linkId=c893f6df1a4749fe64e9b7ede9bf4b56&camp=1789&creative=9325" target="_blank">Amazon</a>), it is much appreciated!</p>
255
261
</div>
256
262
</div>
257
263
<divclass="row">
@@ -260,13 +266,10 @@ <h2 class="page-header wow">Get the Book</h2>
260
266
<h3>Read Online</h3>
261
267
<br>
262
268
<p>Safari Books online offers the largest selection of IT books on a subscription basis. You can read Java 9 Modularity with a Safari subscription.</p>
263
-
<p><ahref="https://www.safaribooksonline.com/library/view/java-9-modularity/9781491954157/" target="_blank" class="btn btn-primary">Read on Safari</a></p>
269
+
<p><aid="safaributton" href="https://www.safaribooksonline.com/library/view/java-9-modularity/9781491954157/" target="_blank" class="btn btn-primary">Read on Safari</a></p>
264
270
<p>No subscription? <ahref="https://bit.ly/java9modsafari" target="_blank">Start a trial</a>!</p>
<pclass="page-heade-p wow fadeInUp" data-wow-delay=".3s">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Provident, fugit recusandae laudantium nulla, consectetur quasi autem architecto nesciunt soluta? Cum incidunt ad totam!</p>
<p>This two hour video course gives you insight into the Java module system using practical examples. You'll learn how to create and use modules and how to migrate your applications to Java 9.</p>
0 commit comments