this post was submitted on 27 Jun 2023
7 points (88.9% liked)

C++

1990 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 2 years ago
MODERATORS
all 6 comments
sorted by: hot top controversial new old
[–] addie@feddit.uk 6 points 2 years ago (1 children)

I feel that this is something that would be fixed by writing your test suites first. If you think you have designed a tremendously clever API, but then the code that calls it is an absolute mess, then you have not designed a tremendously clever API.

General principles of restraint and not having to use every available language feature all the time apply here as everywhere - keep it simple, stupid. The only WTF I want when reading your code is, "I didn't realise there could be such a straightforward way to do it".

[–] gracicot@programming.dev 3 points 2 years ago

I had designed a system with what I thought was a good API, wrote the test for it and I was satisfied how simple it was to use the thing but then, when it came to integrate it, it was clunky and no good way to actually use the system.

I don't think it's always obvious when an API is good or bad, even with tests.

[–] o11c@programming.dev 2 points 2 years ago

I've been annoyed at this in Python sometimes, since its containers have some operations named only, some operator only, and some available as both.

C++'s standard containers mostly have useless operator overloads though, so its technical win here isn't particularly impressive. One thing you definitely notice when porting C++ code to other languages is just how many silly dances various APIs force you to use for common tasks.