JavaScript Monorepos in 2024: Legit or Sus?

JavaScript Monorepos in 2024: Legit or Sus?

Zach Gardner Articles, Development Technologies & Tools, JavaScript, Programming, Tutorial 4 Comments

Iโ€™ve been developing JavaScript through all of the major existential changes weโ€™ve had. Browser wars? I remember those. Trying to make a complex application before Firebug? Oh yeah, tell me about it. Having to roll my own AJAX request by hand? Vividly remember.

Something that I experienced in all of my large JS projects before the last few years was an eventual point of no return, a metaphorical event horizon, beyond which the amount of time it took to build the code locally as well as on the CI/CD system was just simply too long.

All projects start fine, but as they grow and evolve and change over time, the amount of build time seems to creep up until it becomes inimical to deploying and testing changes in any reasonable time frame. Further, it becomes very difficult to onboard new developers as any change they make is not isolated, and must take into account all of the other code in the app. Granted, frameworks and libraries like React do help to some extent, but there are no clean-cut boundaries on the source code with different features, it always had to be by convention.

It was during a project a few years ago that I finally put my foot down and decided that something needed to be done. Researching how other architects were doing it, I came across JavaScript monorepos. I was familiar with the concept of monorepos from my research on how Google structures their code base (they have two repos, one for YouTube and one for everything else, no joke), but had never thought to apply that same principle to JavaScript. So I dove in head first, made a lot of mistakes, iterated, and finally got to a place where I feel comfortable sharing my lessons learned.

This blog post is not an extensive study, but it is enough to get you interested in a way to solve two common problems we all have (i.e. sluggish build times and inability to effectively onboard new devs due to lack of feature separation), and give you enough of a context around how I approached the problem to determine how you should proceed.

Cobol Modernization with Spring Batch Header Image of Mainframe Racks

White Paper: COBOL Modernization Strategy with Spring Batch

Keyhole Software Articles, COBOL, Development Technologies & Tools, Java, Modernization, Spring, Spring Batch Leave a Comment

The Keyhole team is proud to announce the publishing of a new, free white paper: COBOL Modernization Strategy with Spring Batch

This strategy positions Spring Batch as an irresistible proposition for organizations ready to bid farewell to their COBOL legacy. Keyhole Software offers guiding principles for COBOL modernization, with a comprehensive guide based on tangible experience for enterprises navigating the realm of COBOL modernization.ย 

Dynamic Unit Conversions in Math.js

Using Math.js for Dynamic Unit Conversions

Lou Mauget Articles, Development Technologies & Tools, JavaScript Leave a Comment

In this post, Iโ€™ll survey a convenient JavaScript math.js library approach for converting a numeric value having a unit to a value for another unit. Iโ€™ll show how to convert a number associated with a unit to a value having another unit, add custom units and conversions, and evaluate textual expressions containing values with units. To wrap up, weโ€™ll walk through a few practical use cases.

By the end of this post, I hope you are inspired to use math.js in your projects. Itโ€™s a powerful tool in the right scenarios. With that, letโ€™s get started.

Dev Container CLI Escaping the IDE Restrictions

Dev Container CLI: Escaping the IDE Restrictions

Jake Everhart API Development, Articles, Development Technologies & Tools, Docker, Programming 1 Comment

In past blogs, I have discussed development containers (dev containers) in detail, from explaining their general mechanics to showing how they can bolster a team’s build automation. As a brief recap for the uninitiated: dev containers are a way of encapsulating a developerโ€™s setup into a container, typically a Docker container. As a practical example, rather than forcing a new teammate to manually install and configure all the necessary tooling before contributing to a project, they can leverage a teamโ€™s devcontainer.json definition file to quickly spin up a fully configured development environment.

Microsoft has championed this workflow over the past few years, offering tight integration with tools like VS Code and Codespaces to make containerized development as seamless as possible. At the time of writing, the developer experience has reached a point where I honestly prefer to operate within a dev container for certain types of projects. When I open a teamโ€™s codebase within VS Code and it informs me that they have provided a dev container to use, I have higher confidence that Iโ€™ll be using the same versions of their tools and seeing the behaviors that they expect.

Iโ€™ve even come to trust these setups more than an equivalent set of Dockerfiles or docker-compose scripts, just because the simplicity of the ecosystem makes it more likely that everything is well-maintained and configured correctly. Itโ€™s easy to see how these standardization and automation benefits can be a huge boost to teamsโ€ฆonce theyโ€™ve adopted the right tools to integrate with them.

But what if you donโ€™t want to use VS Code?

Macros: To Code or Not to Code

Joel Buckingham Articles, Development Technologies & Tools Leave a Comment

No matter what project I find myself working on, it seems like I have a batch of actions I need to sift through to find all the instances of some conditions and then do something with each instance found at least once a week. You only need to do it once and then move on, so buying a tool or writing some fancy code to handle it seems like overkill. This is where text editors with macro recording functionality can save the day, or at least a few hours of the day.

In this blog, Iโ€™ll share a practical use case for macros. Iโ€™ll walk you through the example, and then weโ€™ll dive into what it looks like to use macros. I hope that this demonstrates the value and versatility of adding macros to your programming tool belt.