84 votes

How important is it to clearly understand requirements and architecture before starting to code?

I've seen people dive straight into the code, make bad assumptions and spend ages writing the wrong thing. On the other hand, I've seen people spend weeks "understanding requirements", ...
16 votes

How important is it to clearly understand requirements and architecture before starting to code?

There is a large field of study devoted to this.  See for example: https://en.wikipedia.org/wiki/Category:Software_project_management https://en.wikipedia.org/wiki/Agile_software_development https://...
  • 32.8k
15 votes

How important is it to clearly understand requirements and architecture before starting to code?

The most important thing is knowing when to stop. Gather requirements. Do architecture design. Stop when it's not teaching you anything. I think of them like making popcorn. When it's making ideas pop ...
8 votes
Accepted

How to avoid side effects in complex code

There is no silver bullet to solve your issue. That does not mean it cannot be solved, though "solved" is probably be the wrong term. A better description is IMHO "it can be managed&...
  • 194k
4 votes

How important is it to clearly understand requirements and architecture before starting to code?

I hate these wishy washy "it depends" answers. Here's my answer: Don't bother with requirements and architecture. Why? Requirements You are just pushing back the coding problems to the ...
  • 68.8k
2 votes

Are there any guidelines for calculating hardware requirements in a containerized environment?

You are expecting too much. There is no such analytical approach beyond trying and measuring which works for any software (inside or container, or without it, does not matter). For a specific ...
  • 194k
2 votes
Accepted

Multiplayer FPS Architecture

You've fallen into the trap of deciding that each noun should be a class, rather than each class being a class. Usually people with this syndrome make a class for each noun in their program - Player, ...
  • 4,431
1 vote

How to improve a monthly usage quota system for an API with growing number of users?

Work out the count of requests from a time indexed log of requests instead of storing a number in reddis. (elastic etc) Now you are just writing to the log for each request. Move your usage ...
  • 68.8k
1 vote

Where to check preconditions in multi functions

There are basically two ways to deal with preconditions. The caller is fully responsible, and if the preconditions are not met, all warranties are void. This is essentially how the C standard library ...
1 vote
Accepted

How to deal with overlapping domains?

Specific to the Problem An employee knows his laptop, but a laptop does not know an employee. The employee uses the laptop, and it's a good idea to put employee-laptop logic in the same package with ...
  • 176
1 vote
Accepted

How to handle dependencies between microservices all called within one large service

As long as you have micro services calling each other directly, you will have hard dependencies between services. With your current design, the statistics service is a active participant in the ...
1 vote

Multiplayer FPS Architecture

I think you might be missing an 'Event' model in your design. You talk about managing the state of the game, which is important, but things like 'player A gun fired' are pretty hard to model using ...
  • 24.5k
1 vote

Multiplayer FPS Architecture

This is the sort of thing that is remarkably hard to do well. The general subject of "rollback netcode" is worth doing your reading on, as it can make or break the player experience. You ...
  • 10.2k
1 vote

Multiplayer FPS Architecture

The core idea of multi player games, at least where there is any competition or reason to cheat, is to never trust the client. Using this model the client is simply a dumb client. It sends mouse and ...
  • 3,134
1 vote

Implementing paging with multiple data sources

It's often very difficult or impossible to combine multiple data sources into a single index. For example, if the underlying sources change often, you end up having to maintain essentially a ...
  • 135

Only top scored, non community-wiki answers of a minimum length are eligible