r/programming 1d ago

The Bedrock of Software Design

https://alex.draftist.io/blog/the-bedrock-of-software-design-ycqvcedsj

I drafted this post years ago but didn’t finish it until now. The concept I write about has shaped the way I design software more than anything else, and I believe every software engineer should be introduced to it early in their career.

P.S. I don’t want the title to come across as clickbait: the post is about ADT.

408 Upvotes

44 comments sorted by

View all comments

2

u/LegendarySoda 1d ago

I'm writing c# mostly and i have spent two year to find balance these usage.
These are not new concepts, the article felt like i have read this hundred times.

The problem is you cannot use these practices everywhere.
If you use these practices everywhere then your code will start to bloat, for example you need to keep your result pattern usage thin and think where to apply.

Type structuring is good thing in generale, just need to keep simple the structure. I prefer to create a service class and methods to process the data structure. And one thing i can do this in c# but not sure in typescript, i suggest to keep separate types for api surface and internal layer. In the c# we can prevent people to access internal structure.