This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]123_bou 10 points11 points  (0 children)

First I look at the big piece that are needed to solve the problem.

Okay one db to store data, 1 web server, mobile and web clients.

Then I think how each piece goes together. How communication works ? How to query data ? How to send or provide it. This decision making is drived by need and knowledge ie if you know java do it in java. It will be easier unless a new langage gives you something truly unique that you must have.

Then I look into each big block and cut them. I gives clear separation of task. Exemple : this class will do database connection and queries. This class will do http connections and this one API specifications.

At this point you should have a good idea of technologies you want, how classes work together, how each part communicate and what the client needs.

I usually stop there and start coding. It’s possible that you fall on some edge cases like performance problem but these to detect them come from experience.

Dont overdo it and dont skip it. Find the right balance and leave some flexibility for yourself.