30 karma · joined April 15, 2021
Interesting point. Will try to incorporate that.
> Does making a change in one flow tend to adversely affect seemingly unrelated others?
It doesn't happen that much, but because there is a lot of intersection between those flows, they are kind of interlinked(to reduce code duplication). But point noted, I will try to see if they can be separated.
> Lock the `main` branch, only allow commits to it from PR's. Review your own PR's.
Done.
> There are no bad queries, only insufficient validation and/or timeouts.
Validations are huge issue. When you have hundreds of variables and one of them throws DivisionByZero error or invalid data type, those are hard to catch
Loved these suggestions especially the first one. any more ideas?
But I have a question. I'm a junior dev(gimme some leeway here).
I don't really understand how important these design patterns are because in the programs I write, I usually write the classes and call them in runtime myself. I think usually we write the servers and client ourselves.
Let's take the different client types example. You are making an assumption that users can call close on a closed client. Is it so hard to just follow the sequence
` client = Client()
client.connect()
client.authenticate()
client.send_message()
client.close() `
Aren't they overengineering? Perhaps I have not worked in a large code bases to understand the problems TypeState Pattern or more generally these design patterns solves.
I understand that these patterns are elegant and make the future modifications or enhancements easier but I have never seen the tangible value enough in real life