IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – August 2017
Here in Europe we’re well into the vacation season. July and August are usually quiet, but at JetBrains we’ve been working hard on a number of 2017.2 releases, including IntelliJ IDEA and Upsource, so this month’s Java Annotated includes links to all the information about these releases. In addition, there’s loads of Java 9 news, and a good chunk of Design and Architecture this month. I was going to squeeze in a new section this month, but we’ve got so much content you’ll have to wait and see if I ever get space for it…
Java 9
July saw a lot of Java 9 articles, news pieces, videos and interviews, probably originally timed to coincide with the July release date. We didn’t get the release (Java 9 is currently scheduled for 21 September), but we did get a lot of great tutorials and opinion pieces.
- Java Module Platform System (JSR 376) Passes the Public Review Reconsideration Ballot – full steam ahead to Java 9
- Java 9 Modular Development (Part 1)
- Java 9 Modular Development (Part 2)
- Migrating from Java 8 to Java 9 – article by me, Trisha Gee, for Java Magazine
- Painlessly Migrating to Java Jigsaw Modules – a Case Study – article by me for InfoQ, follows on from the previous article
- Java 9: Streams Improvements
- Java 9: A Look at Milling Project Coin
- Process Handling in Java 9 – updates to the process API in Java 9, well worth being aware of
- JDK 9: Pitfalls For The Unwary
- Gradle Building Java 9 Modules – so excited to see Gradle works with Java 9 now
- Java Futures: Modules and More (video)
- A Live Migration to Java 9 Modules (video)
- 55 New Features in JDK 9 (video)
- Java 9 and the future of modularity: Will Project Jigsaw be a hit or flop? – Java Influencers Interview Series part 2 (see Java General for part 1)
- Java 9 misconceptions & Java 10 wish list – Java Influencers Interview Series part 3
Java In General
In all the excitement about Java 9, we’re a bit short of non-Java-9 news. However what we do have is a smattering of tips to understand the JVM’s performance, and some fundamentals that you probably already know, but it doesn’t hurt to be reminded.
- No swan song for Java: 11 influencers weigh in on its reputation, rivals and adoption – Java Influencers Interview Series part 1
- Concurrency: Java Futures and Kotlin Coroutines
- What False Sharing is and How the JVM Prevents it (with reference to the LMAX Disruptor example)
- Java Performance Engineer’s Survival Guide (video)
- Are Java 8 Streams Truly Lazy? Not Completely!
- Four Techniques for Writing Better Java
- A Curious Java Language Feature and How it Produced a Subtle Bug
Languages, Frameworks and Libraries
Normally these types of articles end up in the General Java section, but this month we have a good selection so they’ve earned their own spot.
- Java EE 8 – June recap – summary: nearly there!
- Spring Boot Web Test Slicing
- Upgrading to Vaadin Framework 8 (Part 1)
- Upgrading to Vaadin Framework 8 (Part 2)
- How to Build Microservices With Java EE and JBoss Forge – because if you can’t do Microservices in your technology, it’s not valid…
- Gradle vs. Maven – overview of the two systems and some discussion of the pros and cons of both
- What are Reactive Streams In Java? – long article that covers the differences between Reactive Programming and Reactive Streams, and some of the Reactive Streams implementations
- Reactive Spring 5 and application design impact – a look at the specific implementation in Spring 5
- A quick look into Reactive Streams with Spring Data and MongoDB
- Kotlin Workshop Material free for you to use – if you’re involved in a user group you might want to share this
- Kotlin for grumpy Java developers (written for Android developers)
Android
Apparently Architecture Components are the Next Big Thing…
- Android Architecture Components – Looking at Room and LiveData – Part 1
- Android Architecture Components – Looking at ViewModels – Part 2
- Android Architecture Components – Looking at Lifecycles – Part 3
- Architecture Components: Lifecycle
- Architecture Components: LiveData
- Architecture Components: ViewModel
- Architecture Components: Testing & Other Stories
- Converting an App to Use Clean Architecture
- A Massive Guide to Building a RESTful API for Your Mobile App
- Embracing Java 8 language features
- Developer Preview 4 now available, official Android O coming soon!
- Learn how to refactor an app with Kotlin
Design and Architecture
A good handful of articles spanning a range of (generally Java-specific) concerns beyond the code-level. The usual functional-vs-OO commentary appears, and of course microservices. Domain Driven Design is a personal favourite of mine but still not as widely adopted as I’d expect, so in an attempt to brainwash the Java programming public I will continue to include articles covering DDD in Annotated Monthly.
- Programming Without a Framework – or: it’s really good to understand what’s happening under the covers
- To Framework or Not To Framework? – follow up to previous article
- Microservices for Java Developers: A Hands-On Introduction to Frameworks and Containers – free ebook from RedHat/O’Reilly
- Why the JVM is a Good Choice for Serverless Computing – good to know, because normally it sounds like Serverless == Back End Java Is Dead
- Functional Programming for the Uninitiated
- Beginning to Doubt Object-Oriented Programming (or not…)
- Project Package Organization – different approaches, pros and cons
- Three Wise Men on Tell, Don’t Ask …and the Single Responsibility Principle and Domain Driven Design
- Capture – Embed – Protect, Guidelines for Domain-Driven Design
- Eric Freeman and Elisabeth Robson on Design Patterns (podcast with the authors of Head First Design Patterns)
Events
Nothing for August!
And Finally
Everyone at JetBrains has been working really hard on the latest product releases. IntelliJ IDEA 2017.2 and Upsource 2017.2 came out in July, so there are a lot of videos and blog posts about the new features in these releases.
- Support for Java 9 in IntelliJ IDEA 2017.2
- Debugger: Filtering Arrays & Collections in IntelliJ IDEA 2017.2
- Support for JUnit 5 M4 in IntelliJ IDEA 2017.2
- Loads of Small Improvements in IntelliJ IDEA 2017.2
- Database Tools: What’s New in IntelliJ IDEA 2017.2
- What’s New in IntelliJ IDEA videos (Java 9, Spring Boot, VCS)
- New Upsource Overview Video, includes features from 2017.2
- TeamCity 2017.2 EAP is open
And in case you missed it…
- Git Questions – How and When do I Merge or Rebase? (video and blog post)
- Webinar Recording: Why IntelliJ IDEA is the Premier IDE for Grails 3
- JetBrains elected to the JCP Executive Committee announcement, and JetBrains Elected to the JCP Executive Committee, Interview with Trisha Gee (InfoQ article)