BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Java Content on InfoQ

  • Interview and Book Review: BDD In Action

    "BDD In Action" is a book that aims to cover the full spectrum of BDD practices from requirements through to the development of production code backed by executable specifications and automated tests.

  • Deploying Microservices to AWS at Gilt: Introducing ION-Roller

    Over a period of seven years, gilt.com has grown from an e-commerce start-up running a monolithic Ruby on Rails application to $1B luxury goods company operating a cloud-based microservice platform utilising Scala, Docker and AWS. This article introduces Gilt's ION-Roller continuous deployment application, and explains the history and motivations that lead to the creation of this tool.

  • Cloud Native Architectures - a Conversation with Matt Stine

    Rags Srinivas caught up with Matt Stine at the O'Reilly Architecture conference in Boston, MA. Matt talks about Cloud Native Architectures and some of the cultural and technological challenges. He talks about some of the NetFlix services and how Spring is wrapping it up to be able to architect and develop microservices on the platform. He also talks about SOA and what it probably missed out.

  • Concise Java

    Unix pioneer Ken Thompson once said, “one of my most productive days was throwing away 1000 lines of code.” In this article Cas Saternos highlights practices now possible for writing concise Java code, with a special focus on the new functionality available in JDK 8. Shorter, more elegant code is possible due to the inclusion of Lambda Expressions in the language.

  • Functional-Style Callbacks Using Java 8's CompletableFuture

    The innovation of parallel streams in Java 8 has diverted attention from a very substantial addition to the concurrency library, the CompletableFuture class. Author Maurice Naftalin eloquently explores CompletableFuture, why it is so useful in programming systems that depend on the interaction of asynchronous tasks, and how it complements fork/join-style parallelism, including parallel streams.

  • You’ve Completed Unit Testing; Your Testing has Just Begun

    Stopping testing your code when your unit tests all pass is like starting mass production of automobiles after testing the nuts and bolts. Integration testing guarantees that the collaboration of classes works. This article investigates some important techniques in integration testing.

  • Secrets of the Bytecode Ninjas

    The Java language is defined by the Java Language Specification. But the executable bytecode of the Java Virtual Machine is defined by a completely separate standard, the Java Virtual Specification, and the two are often at odds. In this article we take a look at the structure of a class file and how to create class files directly without starting from Java source, using the ASM library.

  • Go for the Money! JSR 354 Adds First Class Money and Currency Support to Java

    First class money and currency support in Java are almost here. In this article Credit Suisse's Anatole Tresch JSR 354 spec lead, discusses the shortcomings of the legacy currency and money support, motivation for the new APIs, and lots of examples.

  • Highly Distributed Computations Without Synchronization

    Synchronization of data across systems is expensive and impractical when running systems at scale. Traditional approaches for performing computations or information dissemination are not viable. In this article Basho Sr. Software Engineer Chris Meiklejohn explores the basic building blocks for crafting deterministic applications that guarantee convergence of data without synchronization.

  • Scala in Large Scale Systems

    This is the first installment in a series about using Scala for large-scale data stores and analytics. Dave Hrycyszyn speaks to Andrew Jayne, senior software engineer at McLaren Applied Technologies, about the experience of building a custom high-performance data store in Scala.

  • Spring Framework 4 and Java 8

    Java 8 shipped with new language features and libraries and Spring 4.x is already supporting many of these. Some of the new Java 8 features don’t have an impact on Spring and can just be used as is, while other Java 8 features require Spring to explicitly support them. This article will walk you through the new Java 8 features that are supported by Spring 4.0 and 4.1.

  • 5 Advanced Java Debugging Techniques Every Developer Should Know About

    With architectures becoming more distributed and code more asynchronous, pinpointing and resolving errors in production is harder than ever. In this article we investigate five advanced techniques that can help you get to the root cause of painful bugs in production more quickly, without adding material overhead.

BT