I am fairly new in product development and I am trying to work over a product. T
ID: 651909 • Letter: I
Question
I am fairly new in product development and I am trying to work over a product. The problem that I have realized is that people draw diagrams and charts showing different modules and layers.
But as I am working alone (I am my own team) I got a bit confused about the interaction I am facing in the development within the programs and I am wondering whether developing a product in modules is real or not?
Maybe I am not a great programmer, but I see no boundaries when data start to travel from frontend to backend.
Explanation / Answer
The "layers" that we describe when we describe software systems are abstract concepts. To the computer, all it gets to see is a featureless stream of one opcode after another, no matter which layer, which class or which method it originally came from. In this sense, they are not "real" at all.
However, layers (and classes and methods) are useful for programmers to ease thinking about the system. By voluntarily restricting ourselves to think about the system only on one level of description at a time, and to think about an operation only in terms of its input and output rather than its internal workings, we increase our ability to understand the relevant parts when adding functionality or making a change.
This is initially quite counter-intuitive, and under-taught in formal education. But I assure you that judicious use of abstraction is the only thing that makes software development "in the large" possible at all for people who aren't autistic savants.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.