A
A
AndySpot2018-03-10 12:28:38
open source
AndySpot, 2018-03-10 12:28:38

How to understand the architecture of someone else's application?

Good afternoon.
I've been studying programming for several months now, I still don't have real work experience, and I still don't get a skill called "the ability to read someone else's code."
No, I can figure out how a certain function works, understand the class structure and all that, but I can’t imagine how, for example, a person who comes to a new company comes to understand the functioning of the project entrusted to him. Or coming to write open source code.
It scares me that I don't see the big picture of the application.
These are hundreds or thousands of files, millions of lines of code. Naturally, no one probably reads each of the files, but then how do people parse the architecture of the application?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
T
tema_sun, 2018-03-10
@tema_sun

A few months is nothing. Keep learning.
But in general, no one reads the code just like a book. Usually you get the task to solve some problem, find the entry point into this problem and then "unwind" the code to the point where the problem occurs. Another conversation is that for this it may be necessary to shovel half of the project.

O
OnYourLips, 2018-03-10
@OnYourLips

This is just experience: you have seen similar things in the past, you know how to understand the main architectural patterns, you understand the various application layers and the relationships between them.

D
Dmitry Krapivin, 2018-03-10
@kiru

Greetings
As an option, developing an understanding of the application architecture:
1. If you understand what inheritance is, etc. from OOP, then download the archive with the application code from github: a) first, an application with a theme familiar to you, an example scheduler application, chat, etc., b) then the application is already more complicated.
2. Open a program to visualize the code into a diagram, for example, interprise architector, etc.
3a. Deal with the specified in paragraph 1. application on the resulting diagram. You study what, where and what it refers to. Google if something is not clear. Read the attached description to the program.
3b. You study the code.
4. Ask yourself why the developer did this? What can be done better?
5a. Write your questions to the developer (if the developers are from another country, then if you don’t know English - Google translator will help), you can ask the same questions, for example, why did he do this? etc. They often answer.
5 B. Search the Internet, maybe there are articles describing this application, incl. and its architecture, etc.
6. Read books on architecture.
And so "a lot" of applications to parse. Understanding will come, at least you will gain experience.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question