From Spaghetti to S'mores: Tasty Techniques for Code Compartmentalization
Just as a camper carefully layers ingredients for the perfect s'more, a developer can construct code with precise structure and compartmentalization. Spaghetti code often results in a development experience that's as messy as an over-melted marshmallow, but with the right strategies, we can achieve clarity and maintainability in our projects.
In this session, attendees will dive into the layers of code compartmentalization, from understanding the importance of clear modular boundaries to appreciating the advantages of single-responsibility components. Additionally, a subtle yet impactful touch to this organized approach is the integration of monorepo tooling, ensuring cohesion and simplicity in larger projects.
By the end, participants will be equipped with a toolkit that ensures their code remains organized, adaptable, and streamlined. Whether seeking strategies to simplify legacy systems or contemplating the management of new projects, this talk offers insights and guidance to refine your development process, much like the art of crafting a perfectly layered s'more.
Nx Project Crystal 💎 + .NET
Nx Project Crystal provides plugins a easy path for onboarding to the Nx ecosystem. This quick showcase demonstrates how .NET can be easily integrated into the Nx ecosystem, and also how Nx could be easily used to enhance .NET projects with minimal file changes.
From Spaghetti to S'mores: Tasty Techniques for Code Compartmentalization
Just as a camper carefully layers ingredients for the perfect s'more, a developer can construct code with precise structure and compartmentalization. Spaghetti code often results in a development experience that's as messy as an over-melted marshmallow, but with the right strategies, we can achieve clarity and maintainability in our projects.
In this session, attendees will dive into the layers of code compartmentalization, from understanding the importance of clear modular boundaries to appreciating the advantages of single-responsibility components. Additionally, a subtle yet impactful touch to this organized approach is the integration of monorepo tooling, ensuring cohesion and simplicity in larger projects.
By the end, participants will be equipped with a toolkit that ensures their code remains organized, adaptable, and streamlined. Whether seeking strategies to simplify legacy systems or contemplating the management of new projects, this talk offers insights and guidance to refine your development process, much like the art of crafting a perfectly layered s'more.
Redefining Projects with Nx: A Dive into the New Inference API
In a continuous strive for improvement, we have revamped the project inference API, aiming to provide greater flexibility and power in defining and managing projects. This talk will walk through the evolution of the project inference API, highlighting the transition from a 1:1 file-to-project mapping to a more nuanced approach that handles complex project configurations. We'll explore the key advantages of the new API, including the ability to define multiple projects within a single file and set more comprehensive project properties. Join us to learn about these exciting changes and understand how they can enhance your work with Nx.
Benchmarking like a Scientist: Communicating Code's Performance.
As software developers, it's not enough to simply write efficient code - we need to be able to communicate its performance effectively too. That's where benchmarking comes in. In this session, we'll dive into benchmarking, examining the different approaches and tools available for measuring the performance of your code. From micro to macro and synthetic benchmarking, we'll cover best practices and common pitfalls to avoid. We'll also delve into the crucial aspect of communication - how to present your benchmark results in a clear and concise manner, so that they can be easily understood by both technical and non-technical stakeholders. Whether you're a seasoned developer or new to the field, this talk will give you the skills and knowledge you need to effectively benchmark your code and communicate its performance.
Full Stack Type Safety Across Languages
Explore how type safety can transcend language barriers, and how you can combine your front-end and back-end code into a killer monorepo with Nx, .NET, and Angular. Using openapi extraction and code generation, we will explore how changing an interface in the backend can trigger build time failures for your front end, and exactly why that is a good thing anyways.
The driving example will utilize C# and ASP.NET Core, with Angular for the front end. Alternative commands will be provided for react, but both the front end and back end can be swapped out for nearly any tool that you may want to use
Benchmarking like a Scientist: Communicating Code's Performance.
This session will explore several aspects of benchmarking. We will start by introducing the concept of code benchmarking, what it is and why it is important in software development. We will then cover the different approaches to benchmarking, including micro, macro, and synthetic benchmarking, and examine the pros and cons of each method.
Next, we will delve into the best practices of benchmarking and the common pitfalls to avoid. This will include topics such as selecting the right metrics, avoiding bias in your benchmark results, and controlling environmental factors to ensure repeatability and reproducibility. We will also discuss the importance of benchmarking throughout the development process, and how it can be used to inform design decisions and optimize code. In addition to the technical aspects of benchmarking, we will also be focusing on the crucial aspect of communication. We will cover how to present your benchmark results in a clear and concise manner, so that they can be easily understood by both technical and non-technical stakeholders. This includes best practices for visualizing your results, and tips for effectively communicating the performance of your code.
This session is aimed at developers of all levels, from those new to the field to experienced professionals. Whether you are looking to improve your benchmarking skills, or simply want to gain a deeper understanding of the science behind code performance, this session will provide you with the knowledge and tools you need to succeed.
Full Stack Type Safety Across Languages
One of the benefits many companies see in monorepos is that you can share interfaces across your front-end and back-end code. Sharing interfaces enables you to create bulletproof API layers on the web but requires that your back end is also in JS.
This chat will introduce Nx to facilitate the conversation and use .NET and Angular as the driving example. Knowledge of the three technologies is optional, though; the tools will only be introduced enough to understand what is needed. All knowledge introduced should be transferrable to other tools.
We can take advantage of build pipelines and dependencies to ensure that accurate typings are generated for our front end before the typescript build, and introducing caching prevents any of the slowdowns that folks may be accustomed to with some older monorepo solutions.
The second half of the session will guide attendees in setting this up on their local machine, so that they can more thoroughly interact with it.
Progressively enhance your DX with Nx
Nx gives you tools to level up your productivity and DX. You can start off with a minimal setup and progressively add features by using plugins. Learn how Nx can help projects of any size to thrive.
Nx for your Stack
Take Nx beyond JavaScript incrementally, starting with only a few simple steps. From run-commands and shell scripts, up to a full custom plugin, Nx is capable of handling any language and tooling thrown at it. Experience the full benefits Nx provides in Angular, React, and Node, with the full stack of your choice.