S
S
Stefan Blackwall2021-10-03 19:56:40
Software design
Stefan Blackwall, 2021-10-03 19:56:40

How to build an application architecture?

Prompt resources or literature that would allow you to understand the issue of organizing the application architecture.
I have been writing in Python for about half a year now, but until now I have been doing small applied things for work not related to programming. I thought about the question and an idea came up, but I don’t even know how to competently approach this issue.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
dmshar, 2021-10-03
@dmshar

The fact is that if now (as I understand it, after half a year of studying programming) you start reading something on the architecture of software systems, you simply won’t understand 90% of the information that you find.
Well, for example:
https://habr.com/ru/post/276593/
https://www.rea.ru/ru/publications/AttachmentsLibr...
https://martinfowler.com/architecture/
https://www .amazon.com/Fundamentals-Software-Archi...
And it's not your fault. It's just that architecture design is not what junior programmers do. In order to properly design an architecture, it is not enough to know a programming language - you need to know a lot more "around". From databases to the peculiarities of scenarios for the interaction of components such as Peer-to-peer, Client-server and others (of which there are dozens), from the ability to work with requirements to the skills of writing a technical project, from the ability to justify the choice of (one of many) project implementation technologies to the ability to assessment of the quality of a software product, from algorithmization to multithreading, appropriate tools (notations) and a lot more. This is what people have been learning for years. Even at universities, in the relevant specialties, introductoryThe course of software architecture is often taught to masters, and still this course is very overview and introductory. So take your time. Focus on improving your basic programming skills for now. And self-education in the field of computer technology. And by practice. That's when you master all this - that's when you can think about solving architectural problems.

A
Alexander, 2021-10-04
@Aleksandr-JS-Developer

Architecture, algorithms, data structures, programming patterns are all problem solving.
How can you understand and learn to solve problems if you haven't faced them?
And now learn the syntax, solve problems, display todo lists, write some kind of snake or something.

E
Evgeny Pichugin, 2021-10-04
@dolusMalus

Unfortunately, it is difficult to objectively answer your questions. The field of application development and programming is already so huge that it includes a huge number of areas with their own specifics both in architecture and in the technology stack. I will try to briefly state my thoughts and ask you to take it as a private opinion.
Alas, there are probably no ready-made recipes that work for everyone and you have to select them individually. However, it is very good that you thought about the need to expand your knowledge. Based on a little experience in teaching juniors, I can recommend that you first decide on the area where you want to develop. This will allow you to use roadmaps, for example, for machine learning and a language used in a field like pythonwhere you already have experience. Once you get a little familiar with technologies and simple projects, where you will just fill the bumps and there will be an understanding of the design techniques used; you can already try to take some small open source project (preferably with documentation + a community where you can ask questions) and try to figure out its structure, ideology, libraries used. Try to draw a simplified diagram of the design of the project, then each system, etc. During the debriefing, a list of questions or topics for further study should appear.
After that, you can just move on to serious design literature and / or just fit into the development of a large project, where you will be directed in the right direction.
From the general ones, you can read about design patterns, which will meet in any case; but do not rush to apply them without good motivation. Because singleton, for example, is already considered an antipattern somewhere, and people ask to forget about its existence.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question