How to Use Error Boundaries for Better Error Handling in React 16

React recently announced their latest version release, React 16. Although a relatively light release feature-wise, React 16 completely overhauled their inner workings. This release sees marked improvements to the React 16 error handling process.
Today, I’m going to show you how React has made it much easier (and more reliable) to handle errors in React applications with the release of error boundaries.


Full Stack Node Development

Back in August, I had participated in Midwest JS located in Minneapolis, Minnesota. As you may know, I’m a huge fan of developing full stack applications with the JavaScript stack. This is exactly what I had presented on at the conference.
My session was well attended and many developers were taught how to use Node.js with Couchbase to develop a RESTful API and Angular as the client facing layer.


What Are the Hurdles in Web Dev?

To gather insights on the state of web application development today, we spoke with 12 executives who are familiar with the current state of the industry and asked them, “What are the most common hurdles you see affecting the development of web applications?" Here’s what they told us:

There’s an impedance mismatch between developers, DevOps, and SecOps. Testing is still being done manually. This causes the chasm to widen. There is cultural inertia that’s made worse by the acceleration of technology development.
Speed to market bogged down by how hard it is to release software. We used to have outages for releases but now with 24/7 uptime, we must make releases trivial without interrupting users. Companies need to adopt a DevOps culture where they ship less and ship less risk. Only a few features go into each release. Ship quickly and small.
Environment management is a constant struggle in web application development. Most developers have unique ways of modifying their computer to facilitate the type of development they do. Custom development environments are great when it is a single developer on a small application, but they seldom translate to a smooth transition between developers or upstream to hosting and QA environments. Lost time due to added complexity in managing environments creates inefficiencies that lead to higher cost, lower job satisfaction, and degraded quality.

Legacy Systems

The need to modernize legacy systems. Keep up with what’s going on so you don’t isolate the employees. Provide something employees can work with. Help lead them to modern development and technology. 
Legacy systems don’t want to consider security, passwords, international standards because they don’t think they are relevant for their app at this time. They are taking a narrow view and their app will not scale. We try to help them see what the big picture looks like. For example, we provide support for Linux. While a company may not be using Linux today, there’s a high likelihood they will in the future. 
The most common problems we see are creating beautiful UIs, integrating with enterprise business processes and web services, and finding enough skilled developers to do the work. Our low-code platform is purpose-built to solve these challenges.


Design for clients where their UX is across multiple modalities (travel websites, Concur expense reports). Providing a seamless experience across form factors is extremely difficult to execute well. 
All of the stuff around tooling. We see many problems getting apps configured and built. Developers are good at API and app development but the tooling has changed so much developers don’t realize all the new tooling there is to get to React or the correct version of the node. They don’t know the version of JavaScript they are transpiling to. 
No longer self-contained. You don’t know which browser, you can’t control updates of browsers, operating systems, devices changing can all affect UX. Microservices on the backend can affect the front end. That’s why we do continuous testing and monitoring. 
Complexity. How many versions of clients (operating systems, browsers) are you supporting? How many versions of your APIs? How do you get your application deployed most broadly? How to scale effectively with regards to performance, resilience, and reliability. How to foster effective communication? How to overcome challenges – often cultural? New communications and openness. Be data driven. Observe how systems are being used in a transparent way. Provide insights into the architecture and how the code is interacting. Think about the performance of all communications. Make sure everyone is aware of what is going on and how the system is performing. Be able to see what flows users are using.


Bad technology choices early on can easily lead to a complete re-work of the application.


Dev-Centric API Pricing Is the Future

As folks who power real-time APIs, my team is always interested in broader trends in what is referred to as the “API Economy." In the last couple of years, we (and everyone else) have seen the proliferation of APIs skyrocket. ProgrammableWeb indexes over 18, 412 APIs. Even Walgreens has an API.
This has generally been a good thing for developers who want to build new technology. Instead of having to build your app from scratch, you can assemble distributed processes for everything from payments to messaging that are built and scaled by specialists, leaving you with more time to focus on your unique functionality. There are APIs and "as-a-services," for almost everything you can imagine – and this means developers are implementing more APIs in a single project than ever before.


Common Uses for Node.js

Node.js uses an event-driven input-output (I/O) which makes it perfect for the implementation of real-time web applications. While Ruby on Rails was a server-side language that attempted to make the implementation of real-time applications a reality, Node.js actually is the server.
What makes Node.js more efficient than alternatives such as Apache is that it remains dormant when there are no connections. Apache, on the other hand, requires several idle servers to remain active to deal with new connections as they come. Since Node only activates a callback when new connections come in, server resources are saved.


Interesting JavaScript Libraries Born in China

The JavaScript community has been growing bigger, and the language is gradually becoming the most used programming language in the world.
The community’s reach have spread to China, which has become a country to reckon with in the Information Technology industry. They have tried their hands at creating useful JavaScript libraries.


Every UI Is a Conversation, Make it Thoughtful and Fun

With the proliferation of chatbots, there is a lot of attention towards conversational UIs. But every UI is a conversation – between your application and the user. As engineers, we tend to focus more on what our application needs and what we need from the user. That works, but if you want to make a good UI, you have to enter the user’s mind and focus on what they are trying to accomplish and create an experience that works for them. Like any good conversation, make it intuitive, thoughtful, and delightful.
Ten years ago, that was hard to do technically, but today, in the asynchronous world we live in, there is no excuse to be sloppy – there are many frameworks available to create thoughtful user interfaces. All we need is common sense and thoughtfulness.


What Are Some Web Dev Use Cases?

To gather insights on the state of web application development today, we spoke with 12 executives who are familiar with the current state of the industry and asked them, “What are some real-world problems solved (use cases) by web applications developed by you or your clients?" Here’s what they told us:

Some examples: 1) A major pharmaceutical company uses a set of our apps, several written wholly or in part by us, to heavily automate their drug delivery pipeline. Applications allow analysis of chemical assays and animal tests of candidate compounds, tracking of samples, tracking and analysis of contracts with partners, and other functions. 2) A major defense contractor uses a massive application of ours to track and itemize costs involved in government bids through their network of suppliers and contractors, so they can provide the necessary full transparency in bids that frequently go into the billions of USD. 3) A major chip manufacturer uses several of our applications to collaboratively analyze performance and defects in batches of chips, to refine their manufacturing processes.
In New Zealand and Australia, we have a medical industry client trying to help patients be discharged from the hospital earlier and ensuring they follow a home health protocol. They have blue tooth monitors that link to the smartphone that verify the patient is taking the recommended action (weighing, checking blood pressure, taking medications). If not, the patient can be reminded and the doctor or hospital can be notified and a nurse dispatched if necessary since this is less expensive than re-admittance to the hospital. We’re also doing a lot of work with pharmacies with regard to adherence and compliance of prescribed medicines. 
Our solution is used across industries to launch new businesses, new products, and orchestrate new customer experiences (CX). From accelerating clinical trial start-up at Sanofi to speeding the check-out experience at Ryder Truck, our low-code platform provides the fastest time-to-market for mission-critical workloads.


Making structured data easier to use with API data feeds. Marry the data structure with the structured content that’s SEO friendly. Keep it simple on the developer side while maximizing the value on the structured data side.
Transactional emails like password resets, welcome emails, abandoned cart, and marketing emails can be automated based on user need.
DevSecOps culture is bringing security into the SDLC. Seamlessly embedding security testing from build to delivery with a single pane of glass. Increase assurance not insurance. Security is a real-world challenge. Developers are supposed to deliver features and functionality at high velocity. We need to check for defects earlier. Allow companies to prioritize security without diverting developer focus from core features. Autonomous, self-driving security.
It’s the main UI for users accessing our product. We enable clients to model complex things in the real world through the software pipeline to the production model. Able to work in the web mobile-friendly environment which works anywhere – screens and touch-friendly. Design, usability, ubiquity, and learnability with coaching marks and guided walkthroughs.
We make development tools for people building web apps – pre-built, tested components (grids, charts, scrolling mechanisms) so customers don’t have to reinvent the wheel. We enable customers to focus on their business specialty.
Headless example with our plug-in through HTTP watches the coder scanning, and flags errors and suggests corrections, with microservices in the cloud that can scale to maintain a performance equivalent.
newmedia is an interactive agency that specializes in web application development for a multitude of clients. When newmedia began working with us, they had consistent problems engaging new developers and delivering reliable hosted products. While newmedia was consistently able to deliver quality web applications to clients, they continued to spend significant time onboarding new developers and designers and maintaining hosting environments. Feedback cycles were slow because there was no concept of continuous delivery. We were able to reduce the time it took for a new developer or designer to create billable work from as much as two weeks to less than half a day by providing consistent development environments and workflows centered around our dev tool. By using a hosting platform driven by us, newmedia was able to provide consistent environments and high availability deployments. Continuous pipelines made it trivial for employees to move code into staging or production environments. The work empowered Project Managers to reduce feedback loops with clients ensuring quality deliveries while enhancing newmedia’s offerings with additional security and reliability.
We work with clients in the development, deployment, pre-production, and post-production phases to ensure the UI of their web app looks great in each browser, screen size, resolution, and location. We test on different devices to ensure consistency. We monitor after the application is deployed to ensure UX/UI is consistent with good response times.

What are some interesting web applications that you’ve seen?


Developing a Web Application Using Angular (Part 3)

In the previous article, we laid the foundation of our implementation by developing the resource layer, including automated unit tests that carefully exercised the functionality of our Order resource class. In this article, we will continue the implementation of our web application by creating the service layer that will interface with our order management web service. Along the way, we will explore the Dependency Injection (DI) and Hypertext Transfer Protocol (HTTP) functionality of Angular.
Implementing the Service Layer
The ultimate purpose of our service layer is to abstract the web service that manages our orders and to allow other components (namely the UI layer) to obtain Order resources and commit changes to these Orderresource objects. In order to accomplish this, we must understand the Representational State Transfer (REST) endpoints that the web service provides and how to interface with these endpoints. As designed in Creating a REST Web Service With Java and Spring (Part 1), our order management web service has the following endpoints:


Web Dev Roundup: Spring Is in the Air

Over the past few months, some of the most popular articles in our Web Dev Zone have been centered around creating web applications using Spring. So, the man of the people that I am, I decided to make this roundup all about Spring! Read on for some great tutorials, a link to the official Spring documentation, DZone publications about Spring, and a Spring-based job!  Quick plug! If you’re interested in contributing to DZone, come check out our Bounty Board, where you can win prizes for writing articles on suggested topics.