O
O
Oleg2015-10-15 21:01:16
OOP
Oleg, 2015-10-15 21:01:16

Recommend sources on application design algorithms?

Recommend books/courses/resources (preferably videos) on object-oriented programming/design.
The problem is this, we need a methodology for breaking down the task to classes. For example, the task is to write a computer game\social network\mobile application. What algorithm can be used to formalize the problem and break it down to classes?
Just do not need to recommend basic books on OOP - inheritance / polymorphism / encapsulation - this is not it - the approach is instrumental. Design patterns are already better, but again a little different. UML is closer, but somehow too global and time-consuming (or I was looking in the wrong place).
There is a similar technology in databases. There are rules (normal forms) for separating data into tables. Take and use.
If metaphorically, I do not need the composition of bricks, but algorithms for designing houses.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
N
Night, 2015-10-15
@orion55

Unfortunately, I can not advise materials, but I will write a short note from my experience.
First, your app/game/service should be broken down into logical blocks.
Crushing method - business tasks, logically different tasks, areas of responsibility.
These blocks may be called components, modules, and the like.
Next, you need to break the modules into component parts, not yet classes - rather "services".
Each service should serve one logical part of the system, for example, payment processing, or user registration.
The service itself can be represented by a whole package of classes, libraries, etc., the main thing is that it has one input (interface, class). Services can interact with each other through an internal API. But the lower the level of connectivity, the better.
The service should not work with any kind of output - it should only provide a programming API.
Further, having an initial decomposition by services, you can further split each service separately, if it is appropriate and / or possible to the level of classes / interfaces.
After, you get a list (on paper) of modules, services, classes.
With this, you can easily start front-end development - whether it's controllers, a wrapper in the form of a REST-api, etc.
How to organize the muzzle is a separate issue, and depends on the type of task.

L
Lesha Kiselev, 2015-10-15
@Yakud

which time I give links:
ruhighload.com
https://refactoring.guru/ru
optimization.guide
Use the search.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question