Solving Code Review Frustrations with CodeRabbit AI Automation 🤖
CodeRabbit is a new AI LLM-powered tool for automated code reviews. It integrates with platforms like GitHub, GitLab, and Azure DevOps to automatically review pull requests, thus giving developers suggestions and feedback. The setup is quick and can be done in less than 10 minutes. CodeRabbit can be used with any programming language.
Nazi Submarines, High-Tech Toilets, and Lessons in Software Engineering
What do German World War II submarines and modern software development have in common? Surprisingly, quite a lot: Overengineering, ignoring testing, poor modularity, and cascading failures, to name a few.
Web components with Blazor .NET 7
Web components are web standards that allow you to create custom, reusable HTML elements. These can encapsulate their styles and behaviors, preventing conflicts with other parts of your website. They are built using HTML, CSS, and JavaScript and can range from simple UI elements to complex, fully-featured web applications.
Finding the Perfect Date: Exploring DateTime Formats for Developers
As developers, it's easy to think that working with dates and times is strictly a computer science problem. Even if it sometimes looks like someone is playing a cruel joke on programmers, historically making sense of time was a challenging task, much more than trying to parse some weird local datetime format. Tom Scott has a great video about problems with Timezones:
Public Nested Classes
For some time, I've been using public nested classes (often records) for POCOs (Plain Old C# Object), mostly with MediatR and services. I have found this approach very useful. Everything is contained within the MediatR model (or service), there is no way to access subclasses without explicitly understanding what you are doing.
Library: HashIds - Masking System Data (Id Series)
When we present information about the system to the users, we want to hide the system's inner workings. But, sometimes, it is necessary to give the user some of the details like:
NCEFMRFVSxU - .Net Core + EF + MediatR + FluentValidation + Serilog + xUnit
To misquote Lord Vader:
Creating Custom Randomized Sequential Ids (Id Series)
I am a big proponent of GUIDs as a surrogate key.
Cascade Deletion Purge and The Void World of Soft Deletion
Cascade deletion never made much sense to me.
It's not just about wanting to state intentions explicitly but about understanding the data relationships.
If you don't know how things are working, maybe you should not be the one doing the deletion?