BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Programming Content on InfoQ

  • Adapting Projects to Use C# 8 and Nullable Reference Types

    This report is a case study on upgrading a C# 7 class library to C# 8 with nullable reference types. The project used in this case study is a collection of MVVM style base classes, reflection code, and various utility functions. It was chosen because it is reasonably small and has a good mix of idiomatic and unusual C# patterns.

  • Ambassador: Building a Control Plane for an Envoy-Powered API Gateway on Kubernetes

    This article provides an insight into the creation of the Ambassador open source API gateway for Kubernetes, and discusses the technical challenges and lessons learned from building a developer-focused control plane for managing ingress or "edge" traffic within microservice-based applications.

  • Overcoming RESTlessness

    New API protocols like GraphQL, gRPC, and Apache Kafka have risen in popularity as alternatives to REST-inspired HTTP APIs. Instead of seeking to replace REST, the software engineering industry should seek to evolve by building on the maturity of the REST ecosystem while exploiting the technological strengths of the new protocols.

  • The Complete Guide to the Java SE 12 Extended Switch Statement/Expression

    A complete guide to Java SE 12 extended switch statement/expression. This article contains details on the proposed extension to the Java switch statement that allows it to be used as either an enhanced switch statement or a switch expression. Examples are included.

  • Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report

    AppsFlyer processes nearly 70+ billion HTTP requests a day, and is built using a microservices architecture style. The entry point to the system that wraps all of the frontend services is a mission-critical (non-micro) service called the API Gateway. This article is an experience reporting of migrating from a Clojure-based gateway to a newly designed Go-based implementation.

  • Why Do We Need Architectural Diagrams?

    Software architecture diagrams, when created well, and sparingly, can greatly improve communication within the development team and with external stakeholders. They require an understanding of the intended audience, and thoughtful restraint on what to include. Resist the temptation to think that diagrams are unnecessary or unhelpful, simply because there have been plenty of cases of bad diagrams.

  • Q&A on the Book Refactoring - Second Edition

    The book Refactoring - Second Edition by Martin Fowler explores how you can improve the design and quality of your code in small steps, without changing external behavior. It consists of around seventy detailed descriptions of refactorings, including a motivation for doing them, the mechanics, and an example.

  • Headless Selenium Browsers

    Selenium is a well-known, powerful tool for automated testing in web browsers. While Selenium Web driver supports all the major browsers, you don’t always want the costs of testing in a real browser.

  • Super Charge the Module Aware Service Loader in Java 11

    Uday Tatiraju describes the service loading mechanism in Java and the changes made to it in order to support the native Java module system. Tatiraju also discusses an experimental library called Susel that can assist developers in building modular and extensible applications that leverage the native Java module system. The library removes the boilerplate code required to locate and load services.

  • Article Series - .NET Core - 2nd Series

    In this series, we explore some of the benefits .NET Core and how it can help traditional .NET developers and all technologists who need to bring robust, performant and economical solutions to market

  • How to Slow Down to Go Faster Than Ever in Software Development

    Going fast without control could be the biggest enemy of software development. By slowing down on people, we improve professionalism and craftsmanship. By slowing down on process, we improve adaptation and efficiency. And by slowing down on product, we improve automation and quality. When we focus on these areas, we start to cultivate a development culture enabling software development fast.

  • Book Review: Optimizing Java

    InfoQ reviewed the book Optimizing Java, a comprehensive in-depth look at performance tuning in the Java programming language written by Java industry experts, Ben Evans, James Gough and Chris Newland. InfoQ spoke to the authors for more insights on their experiences, learnings and obstacles in authoring this book.

BT