Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

article added for review by Himanshu #516

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

H11199
Copy link

@H11199 H11199 commented Apr 23, 2023

Please read through the writing guide before submitting a pull request and go through this checklist (at least for your first article).

Feel free to raise the pull request even if the checklist hasn't been worked through, yet, to take advantage of the online preview that is generated for each pull request (see "deploy/netlify" under "Show all checks" in your pull request). But please only flag it to be reviewed by your editor after going through the checklist.

Review

  • you have reviewed the text a day after finishing it (you'd be surprised how many errors you can avoid by just getting some distance to what you've written)

Content

  • the article explains why and not only how
  • (half-)sentences that express a meaningful idea that is understandable by itself own are bold to allow quick scanning of the text
  • the text has been checked with Grammarly (the free tier is enough)

Text

  • the text is conversational ("we" instead of "you", easy language)
  • there are no "walls of text" (short sentences, short paragraphs with a single idea)
  • the text is inclusive ("the developers" and "they" instead of "the developer" and "he/she")
  • the text uses active voice instead of passive voice
  • names are spelled consistently throughout the article (correct uppercase / lowercase)
  • file names and variables are highlighted as code

Structure

  • the article has a short intro before the first headline
  • by reading the table of contents (TOC) alone, I get a sense of the "story" of the article (check the TOC in the preview after raising the PR or by starting the blog locally on your machine)
  • if using sub-headlines, there's at least two sub-headlines below a main-headline
  • headlines are consistent throughout the article (same level of abstraction, same style - if one headline starts with a verb in imperative form, the other headlines on the same level should probably, too)

Code Examples

  • code examples are introduced with a ":" and explained below the code example
  • code examples are formatted to avoid horizontal scrolling (manual line breaks and 2-spaces indentation)

Copy link
Member

@thombergs thombergs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the draft. I did only a quick scan so far, looking at the structure. Please see my comments. I'll do a deep dive once those comments are addressed.

@@ -0,0 +1,169 @@
# Java 9 Module System

Table of Contents
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the table of contents, that is auto-generated by the blog from the headers.

@@ -0,0 +1,169 @@
# Java 9 Module System
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please copy a header from one of the other articles and edit it so it fits to your article.

Also, please add yourself to the data.authors.yml file ... this should fix the automatic preview (see the link in the "conversation" tab of the pull request).


Java 9 introduced one of the most important features called a module system that allows us to combine all of our code and packages into a single unit. In this tutorial, we’ll discuss what is this module system. why should we use it and how should we use it? We’ll be looking at the answers to all of these questions. Also, we’ll look at a practical example to add glitters to our understanding, so let’s begin.

## Introduction <a id='introduction'></a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No <a> tags necessary in headers, the blog does that automatically. Please remove.


## Issues with Previous Java Versions <a id='issues-with-previous-java-versions'></a>

Before we move to the usage of the module system, first we must know what are the flaws in previous versions of Java that make the Oracle team introduce this feature.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it really the "Oracle team" who did this?


Now we have all the theoretical knowledge about Java 9 module system let’s get our hands dirty by doing some hands-on. Here we’ll create a mini-project that contains two modules. Here we’ll learn how to import a module and how to export a module. We’ll also learn how we can control the access of the packages which is not possible in Java’s previous versions.

## Structuring Our Project <a id='structuring-our-project'></a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be a level three header? Please check this and the headers below this one.


Below is what our project structure looks like

![alt text](https://github.com/H11199/module-system-structure/blob/70c7d175c117e04d3e6e6a2b3bbbf9d1e9c5f019/Project-structure.JPG?raw=true)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add this image to the pull request in the folder assets/images/posts/<name-of-blog-post>

```
Our second module now also contains one more module “java.base” that we didn’t add from our side. This java.base module is actually a default module and all modules are linked to it.

## Conclusion <a id='conclusion'></a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like two additional sections in this article that talk about these topics:

  • How can I create a slimmed-down JDK that includes only the modules of the JDK that I need? (this is the most important aspect of JPMS, in my view) And why would I slim down the JDK?
  • Why isn't the module system widely used in application development, yet? (is this because tool support isn't good, yet? I haven't seen it in action, yet ...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants