Refactoring helps to move towards cleaner code that is easier to understand and maintain. It takes practice and experience to recognise code smells: symptoms of bad design which indicate deeper problems in the code. Tools can be helpful to refactor in small steps and prevent breaking the code.
On September 18th, hours before the Ethereum Foundation devcon 2 conference was about to start, a DOS security alert was posted on the Ethereum blog. The alert was related to a vulnerability discovered on the Ethereum blockchain, in block 2283416, and was considered to have a high likelihood and severity.
People stopped seeing the need to define the architecture or do software design due to incorrect interpretation of the agile manifesto, argued Simon Brown. Many software developers don’t seem to have a sufficient toolbox of practices and the software industry lacks a common vocabulary for architecture. A good architecture enables agility with just enough up front design to create firm foundations.
Derek Ashmore details the different types of monoliths he has come across with a view to subsequently describing how they may be broken down into more manageable components/microservices.
Yahoo! has made available Pulsar, their publish-subscribe messaging platform used internally in production by several services.
Moving towards microservices means moving towards distributed systems where you have to deal with latency, authorization and authentication, and messages that do not arrive, argues Sander Hoogendoorn. With microservices you can break down large systems into smaller components to regain control over the architecture.
Almost five years in the making, Dropwizard's Java RESTful Web Service framework version 1.0.0 offers a host of new features including Java 8, Http/2 and Scala support, and the latest versions of supporting Java APIs.
One of the hardest problem when creating and developing microservices for an enterprise is their data. Analysing the business domain using Domain-Driven Design (DDD) and reason about what your data represents will help in achieving a microservices architecture, Christian Posta claims in one of a series of blog posts about microservices implementations.
Google has released gRPC 1.0, considering it stable and ready for production.
Spring Boot 1.4 and Dropwizard 1.0 were both released at the end of July, using fat JARs. As adoption of such frameworks and microservices increases, fat JARs are becoming a more common deployment mechanism. Earlier HubSpot cited issues where Fat JARs deployments experienced problems with the maven-shade-plugin, and efficiency problems when packaging 100,000 tiny files as a JAR.
IBM recently announced a cloud service for organizations looking to adopt blockchain technologies. The service is underpinned by the IBM LinuxONE platform which hosts a series of underlying services for blockchain processing. IBM is positioning this platform for organizations in regulated industries which require secure environments for testing and running blockchain projects.
In the webcast entitled "What's Better Than Microservices? Serverless Microservices," Alan Williams (Autodesk), Asha Chakrabarty (Amazon) and Alan Ho (Apigee) discuss the architecture of a serverless microservice built with lambda functions with Apigee end-points running on AWS.
Increasingly, software developers have the ability to not only maintain and architect code, but extend their expertise to providing direction to the business. By using domain driven design, developers can discover customer behaviors and recommend practices that change the nature of the business.
WireMock v2, an API mocking and service virtualisation tool, has been released. Core enhancements include improved request verification failure reporting, the ability to create custom request matching logic (including the use of Java 8 lambdas), randomly distributed delays (currently with uniform and lognormal distributions), and matching on cookies and basic auth headers.
Amazon Web Services has launched their new Application Load Balancer, an OSI Layer 7 balancer that can route traffic to different end-points depending a set of URL rules.