you are viewing a single comment's thread
view the rest of the comments
[–] 4 points 2 years ago

Are people, their critics, really bothered with the writing aspect of verbose code?

Verbose code - and their example shows it quite well - is less concise. To me, their example and reasoning looks more overly verbose, over-engineered rather than well or thoroughly designed and safe.

What makes more sense depends on the context. Where is and will it be used? What is it being exposed to?

A simple data holding class for one "internal" layer to the next can have a very simple form, so it's easily understood. It may not be safe against misuse or mistakes, but the simplicity and clear use-case and intention much outweighs those costly safeguards to me. For maintainability, for readability, for clarity.

It's always a balancing act between simplicity and easy understanding vs safeguards and costs. If there's less risk you can make it much simpler - which reduces other, less obvious risks and costs.


The example made me immediately spot how C# quite a while ago introduced language constructs for what would otherwise be a lot of boilerplate programming like they do in their example.

public record Reservation(DateTimeOffset Date, string Email, string Name, int Quantity, bool IsAccepted);

no need for 78 lines of code with 9 methods.

C# also has the with keyword for copy-adjusting immutable types.

And required init syntax provides another alternative for an effectively immutable type.

public class Reservation
{
    public required DateTimeOffset Date { get; init; }
    public required string Email { get; init; }
    public required string Name { get; init; }
    public required int Quantity { get; init; }
    public required bool IsAccepted { get; init; }
}
  • source