Application Code Upgrades in Elixir
In this third and final part of my series about production code upgrades in Elixir, we will look at what happens during an application upgrade. Let’s get going!
In this third and final part of my series about production code upgrades in Elixir, we will look at what happens during an application upgrade. Let’s get going!
In this world, there are many mysteries — but few are as elusive as metaprogramming in Elixir. In this four-part series, we’ll start by looking at core concepts and then explore how metaprogramming operates in Elixir specifically. Let’s develop an understanding of metaprogramming and uncover some Elixir metaprogramming secrets!
Good logging practices are crucial for monitoring and troubleshooting your Node.js servers. They help you track errors in the application, discover performance optimization opportunities, and carry out different kinds of analysis on the system (such as in the case of outages or security issues) to make critical product decisions. Even though logging is an essential aspect of building robust web applications, it’s often ignored or glossed over in discussions about development best practices.
In the second part of this two-part series on testing LiveView in Elixir, we’ll write an integration test that validates interactions within a single live view, and an integration test that validates the interactions between two separate live views. You will focus on testing the behavior of the survey results chart filter from the previous post. We’ll use the LiveViewTest module’s functions to simulate LiveView connections without a browser.
In this post, I’ll take a close look at asynchronous queries in Recoil. I’ll show you what the library is capable of and how it blends seamlessly with React. Let’s get going!
When I first started writing Ruby code professionally back in 2011, one of the things that impressed me the most about the language was its flexibility. It felt as though with Ruby, everything was possible. Compared to the rigidity of languages like C# and Java, Ruby programs almost seemed like they were alive. Consider how many incredible things you can do in a Ruby program. You can define and delete methods at will. You can call methods that don’t exist.
In the previous chapter of this series, we looked at hot code reloading in Elixir and why we should use GenServer to implement long-running processes. But to organize a whole application, we need one more building block — supervisors. Let’s take a look at supervisors in detail.
Developing against third-party or unfamiliar web APIs can be painful and slow compared to using native libraries. For example, making requests with an HTTP client is simple enough but offers no compile-time sanity checks and no way for code suggestion tools like Intellisense to help you navigate. Worst of all, if the API you are consuming introduces breaking changes, you won’t find out until runtime.
In this two-part series, you’ll get a comprehensive overview of everything you need to know to test your LiveView applications in Elixir. In Part I, I’ll introduce you to LiveView testing guidelines and you’ll write some flexible and elegant LiveView unit tests. In Part II, you’ll write interactive LiveView tests that validate a full set of live view behaviors.
Tests are an integral part of most well-working Rails applications where maintenance isn’t a nightmare and new features are consistently added, or existing ones are improved. Unfortunately, for many applications, a production environment is where they are put under heavy workload or significant traffic for the first time. This is understandable as such tests are costly.