📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

От «Hello, World» до Метаклассов Python: Выращивание Инженера, Который Видит Код Python Насквозь.

Сильный метод индивидуального обучение Python.59:15

Transcription

Hello, guys. Today we will look at a guy. He allowed to name names. His name is Oleg. And we will analyze his tasks. And GPT analysis on the following question: who will he become? First, GPT's conclusion. A learning system where a student sequentially goes through the path from basic constructs to analyzing source code and creating their own frameworks, prepares not just a programmer. But a researcher engineer, capable of solving non-standard problems, such a candidate will be in demand by any team working on Python, from startups to large corporations, where deep knowledge and the ability to build reliable systems are valued. Next, companies are looking for developers who can understand legacy code, are capable of designing new features, write clean maintainable code, are not afraid of deep problems, performance, multithreading, interpreter bugs, and know how to communicate and explain their solutions. Oleg, having gone through this path, acquires all these qualities. His portfolio is convincing proof of his competence. During an interview, he can not only talk about patterns but also show how they are implemented. This is what we are doing today. So, the starting position, the number, and the final result. And then what is between them? On the test question, a type of answer that was completely untrue. In other words, not it. Now, how do you understand this line? Read it, how do you understand it. Perhaps I call a function and give it a class, but this is already bordering on some kind of fantasy. That is, with code reading, it's a complete zero. The first lesson was. 0825, that's August. Today we have Today we have March. twenty-sixth. Count. We started with the simplest things. The task is to write your own mini-framework. By the way, Oleg is a pathologist. I will put an article in the description. If young people are watching, read it, it's from Oleg's personal practice, right? And then you will think whether to go or not, so that a more real person, when writing. So, it's all quite creepy to read, actually. So, what did he come up with? Project description Smart Subtracker subscriptions. What for? A console application Mini-framework for managing user paid subscriptions, gym. It can calculate expenses, warn about calculations. Architectural features. Descriptors protect data. Metaclasses control the architecture. Inversion of dependency. Custom exceptions throw their own non-standard pets. We create our own errors. We start from the very foundation. In professional code, it is not customary to throw ordinary value errors if the user entered something incorrect. Why? Because value errors can fly out and so on. Oleg, this is the best thing you have done today. That is, you made the mistake that I consciously led you to. For one simple reason. The best architecture, and we are doing it now, this architecture is in the trash. Of course, for the guys who are watching this video, seeing descriptors, seeing such code, it's all beautiful. But our task is impeccable, impeccably to have written a mini-framework from what was, but we will talk about this later. In the meantime, let's see how GPT reasoned on this topic. I completely agree with everything here, except for one thing. There is simply no architecture here. For now, all this is done consciously, because I consciously slipped it in so that he would make a mistake. How to make a person understand what should be right? First, you need to do it wrong. We will never do it right. In this case, we will stop at the fact that it was enough that Oleg applied descriptors, Oleg applied metaclasses, and much more. Roughly speaking, before you is an almost ready professional programmer, but with this architecture, it won't work. Therefore, let's first see what GPT thinks. Here's what he wrote. Absolute truth. So, the learning system is presented in this notebook. This Jupyter notebook not only teaches the language, it simulates a professional environment and forms engineering thinking. The role of such a system for employment and demand in the labor market is huge. Let's break down why a graduate of such training becomes a valuable asset for any team. How does the system prepare for real work? Deep understanding of the language instead of superficial frameworking. How to write a Django model? Yes, many are looking for that. Employers are looking for not button-pushers, but engineers capable of understanding non-standard situations. Oleg not only knows the syntax, he understands how memory works, how descriptors, metaclasses, protocols are structured. He can optimize code, find memory leaks, or fix bugs in someone else's library. This is a senior-level skill. Well, I wouldn't be so hasty. Too early. Example from the file. Oleg analyzes Django source code and analyzes how the database model works in Rapundler. He doesn't just read, he asks questions, experiments, writes his own analogues. This is true. In real work, this means he will quickly master any internal codebase. This is true. Ability to read and analyze someone else's code. In commercial development, 90% of the time is spent working with existing code. Oleg is trained from the very beginning to analyze others' solutions, finds patterns and weaknesses in them. This makes him an ideal team member. He will not rewrite everything from scratch, but will be able to safely improve and refactor. Example from the file. Django URL task. The student is forced to delve into someone else's code, understand the logic, comment. This is a direct simulator for future work. Architectural thinking and knowledge of patterns. The final project Smart Sub shows that Oleg is capable of designing a system from scratch, identifying entities, defining interfaces, applying descriptors for validation, metaclasses for control, separating storage and business logic. He understands the SOLID principles and knows how to apply them. This is the level expected from a mid-level developer and above. Example from the file with clearly separated layers. Model separated into SOLID. True, custom exceptions are used, dependency inversion is implemented. Even after the first version, the student refactors and suggests improvements based on architectural knowledge. Django knowledge is a sign of growth. Discipline, self-reflection, ability to learn. The file shows how Oleg keeps a diary, describes each step, forms conclusions, admits difficulties and overcomes them. These are not just study notes, but proof that he knows how to systematize knowledge, work with feedback, and constantly improve. Employers value such employees for their resourcefulness and low support costs. Most importantly, when you don't have to stand over a person. Skills in working with real tools. He works with Jupiter, virtual environments, studies source code, writes tests. He is familiar with typing. Modern Python capabilities are everything that is in demand in daily development. Next, we read this. Let's move on to my, uh, to the modest role of a teacher. Valery Ivanovich acts not as a translator of knowledge, but as a mentor who guides, asks questions, makes you think. His methodology includes. This is true. Posing open-ended questions. What do you think the dots in this code are? What does the http check? These questions make the student not just search, but build hypotheses. This was all at the beginning. Creating a system for working with code. The teacher from the very beginning teaches to describe in words as much detail as possible to develop a habit of conscious programming. Immersion in primary sources. All answers must be based on documentation and source code. The student learns to read official documentation, PEP, C Python source code. Gradual complication. Each new topic logically follows from the previous one. Descriptors are explained after classes, metaclasses after descriptors, and architecture after understanding metaprogramming. Feedback and support, even when the student doubts, "I'm afraid I won't be able to handle it," the teacher gently pushes him forward, showing that difficulties are normal. We started with the simplest things. Control structures, functions, exceptions, files, object-oriented programming, descriptors, decorators, metaclasses, attribute namespaces, and so on. Further, it will be difficult and not very interesting. Much attention is paid to real code. That is, the main task is: we don't part with the code for a second. As a result of this learning system, the student is capable, in this case Oleg, of reading source code, understanding the ideas of absolutely any professional library. A large repository of knowledge that has been built up over years, 20 years, where there are super ideas, guys. And then interesting things. Only I don't agree with them. What artificial intelligence did, I praised it. Yes, I am against it, so we will immediately give a task. So, this is a long, long file where the learning system, the course, I showed, a person started with practically no knowledge, and today is writing a framework. The learning system presented in this file is not just a Python course, but a full-fledged school of engineering thinking. For the most part, today my categories of people have changed. Newcomers come, there are fewer of them. Come, it's okay, we'll build the training. Many developers come because they realized that they will have to work with Python after all. And they still need to understand at least metaclasses or other things to write something serious. And they will have to integrate artificial intelligence. People come with a mess: "This is my favorite audience, because there's nothing to do, they have all the knowledge, they just need to assemble the base." And people come who come with little knowledge, in this case, like Oleg, right? There was some initial knowledge, but in this short period from August to the 25th to March, look at the result. It is structured to sequentially turn a beginner into a specialist capable not only of writing code, but also of understanding how complex systems work, designing architecture, and you are all studying lists, guys, it's not serious. Designing architecture and solving non-standard problems. That is why everyone should go through it. This is written, by the way, by GPT. Who is aiming for professional Python development. Here are the key arguments. Formation of a systemic understanding of the language, not a superficial acquaintance. Most courses teach syntax and popular, and most courses teach syntax and popular libraries, leaving a black box under the hood. This system, on the contrary, starts with the fundamentals. Types, objects, functions, classes. Guys, we only work with four constructs, but we know everything about them. And then, step by step, it reveals the internal mechanisms, descriptors, metaclasses, protocols, closures, attribute devices. A professional must understand why a property works this way. Because the question is not how a descriptor or decorator works, but why it works this way, so that all questions fly off. When Java developers come, they raise such questions that, you know, most Python professionals wouldn't answer, but I like them very much. It works exactly like that, what's behind slots. How Python searches for methods by MRO, without this deep knowledge, code remains magic, and the programmer is a hostage of ready-made solutions. Who recognized themselves here, guys? Actually, you need to find 1 year. One quality: a little patience. The ability to read and analyze the source code of real projects. We don't break away from the source code for a second. Why teach a programmer a language if not to look into the source code? I see no point in this at all. Everything that is related, all our work, guys, from simple to complex, is related to code. First, we also test, when a person comes, I give a test task. What? I ask simple questions about the source code. It doesn't matter how many books have been read, it doesn't matter how many videos have been watched. What matters is what we can say now. This is the point from which you can push off. And the first task is to start reading code. Beginners, don't be scared further. The second task is to write shit code. Not good code, but shit code. Then we study the basics. We take these four constructs, study OOP, turn it inside out, finish with collections, and then deeply study the most important constructs: decorator, descriptor, metaclass, from which the architecture will be built. By the way, whoever decided for themselves that I will study patterns, it's secondary, and I will write code. This expands. That is, many don't even understand what architecture is, although it's everywhere here, in these libraries. Let's move on. The ability to read and analyze the source code of real projects. In commercial development, 90% of the time is spent working with the existing codebase. From the very first tasks, the student is trained to read the source code of Django, Tog, Pydantic, and so on. Comment on them, ask questions. He learns to see the architectural techniques used by the library authors. There are 20-30 years, guys, where is this? This is where you should take zero from for your standing. People have invested 20 years of their lives in these libraries. So take that as zero. I always say, develop from there. This is a superpower skill. You won't find a single book. No one will write Django architecture, guys. Well, who will write this? But you can learn this. This is a superpower skill. Such a developer quickly adapts to any project, is not afraid to delve into the internals of the framework, and can fix bugs and optimize bottlenecks. Development of architectural thinking through one's own project. The final project is just the beginning. In fact, it's not a training task, but a full-fledged mini-framework with a well-thought-out architectural model, descriptors for validation, metaclasses for control, a storage layer with a repository interface. The student, applying all the learned concepts, it is important to write from the head what is needed, and then reflect on their code, because we are preparing for pair programming. You need to manage this very same intelligence, because it writes heresy and the code is not viable. Many are already writing this, that the code is not viable. Therefore, you need to clearly understand what architecture, on what I will write. I'll look at what was done in Python, what was done in Django, what was done in Pydantic. To really take these ideas, to create something new. Offers improvements to the code by analogy. Such experience provides an understanding of how extensible and maintainable systems are built. What distinguishes an architect from a simple coder. Habit of research and overcoming difficulties. The file shows that Oleg encounters complex topics. Descriptors, metaclasses, classes, he experiences fear, doubts, but thanks to the methodology and mentor's support, he overcomes them. He learns to Google, read documentation, experiment, draw conclusions. In real work, such situations arise constantly. And I allow Googling after the docs. And sometimes I forbid thinking altogether. A developer who has gone through this path does not falter in the face of the unknown, but takes it as a challenge. Absolutely correct. Each task is accompanied by detailed comments, explanations, and why a particular approach was chosen. If you noticed, at the beginning there were, in principle, very fragmented knowledge. And a little time, and we already have architecture, guys. But he is learning according to the system, according to this plan. The link to the plan is in the description. He is learning according to the plan. Accelerated upward movement. From three to six tasks, one consultation per week. A wonderful, most in-demand plan, when a person works through a question for a week calmly, so there will be time for family, there will be time for work, and we move calmly. Conscious attitude to code and reflection. Each task is accompanied by. Comments, explanations of why a particular approach was chosen. The student keeps a diary where he forms conclusions. And conclusions, when they are in one file, can be commented on, analyzed, you can understand where something is lacking, why you are not reaching the required level. So, this is a very good method. It forms metacognitive skills, the ability to analyze one's actions, see weaknesses, and find better solutions. This approach leads to the programmer writing not just working, but quality code. This is the main task, guys. I say: "Code should be like this." Code should be like this. Like this. In fact, I am only an intermediary here between the student and the leading developers of the world, who are leading in the world. That's all. Conclusion. This learning system is the shortest path from beginner to engineer, guys. Well, indeed, it speaks the truth, this network from August 8th, 2025 to, uh, March 10th, 2026. Count. Understands the language at the level of its structure, can read and get the code of frameworks, is capable of designing complex systems, is not afraid of difficulties, constantly learns. It is precisely such specialists who are in demand in the market who enjoy their work. Therefore, everyone who wants to become a Python professional must go through this path. Well, you already. The path, yes, the path, yes, the path is not exactly the same, but built on the same principles, from foundation to depth, from learning to reading to creation, from support to mastery. Now we are at the stage, uh, of the best. That is, we are currently at the architecture stage, which very few people know. Some think, architecture. I'll study patterns, and then I'll stick it somewhere to my boots. Yes, guys, no, guys, it's not like that at all. So, today Oleg made a framework. Uh, let's give a grade. A grade of C minus. Oleg, I did this specifically so that you would understand. This is the best mistake. To make mistakes, you know, this is the main trait. A person must make mistakes, because only. In principle, if you look at the code that I gave earlier, I didn't tell you that if I saw a guy there, about whom I wrote a video, these two videos will be in the description. I'll show you now. The guy who wrote, I slipped him to Oleg. Yes, and I told that guy: "If you came to me for a job, I would tell you: 'Go, go home, go do something else.'" Although the guy described everything perfectly further. So, roughly. And how to finish this thought? No, guys, there is no provocation here. You cannot write a good architecture, right, you just can't write it. You must make a mistake. You have to write something at all. Oleg did this. This architecture did not suit him. He suspected something here. We will find out about this. He will write to me, I will tell you later, yes, I will put a link in this video. Oleg, why, after all, answer the question when you reach this point, then I will post the link. What is it, this architecture didn't like it, huh? And we started with the interface. In other words, what is the architecture here? First, we brought the furniture, right, guys, hung it on the walls of a non-existent house, I don't know how, but in programming, you can do that. Then we built the roof, then we built the walls, and then the foundation. Everything, everything upside down. If you take the real code of the guy that I slipped to Oleg, I thought for a week what was wrong here, right? And then when I wrote to the guy, he is completely redesigning today, there was a framework for a car repair shop, everything was described coolly. Thank you for the analysis and for the words of motivation. Indeed, you were right in your video. It was clearly not spoken, but it became clear from the written code. Thank God, Oleg saw it. I hope you will also see now that the sequence in which I wrote was indeed reversed. That is, in this case, the guy understands cars perfectly, understands the work of a car repair shop or service station perfectly. And he took on the role of a master and went to fix things. The only thing he forgot about was extensibility, about security. In general, we forgot about everything. But a master came to work and what should I do? Without a basic architectural concept that allows for expansion from scratch. This is the most important question. And actually, most programmers don't understand what architecture is at all, guys. That's why Oleg and I are trying to go through this by trial and error. And those who are going to study architecture cannot write a quality metaclass or descriptor, well, guys, it's about the same. You know yourselves, right? I just worked through the model's functionality from a system point of view. Correct. And I realized that he came as a master to a service station. And he knows how to do this. He sketched out the processes, and when he started implementing, he took what stuck along the way. That's why the metaclass turned out. Oleg, you have the same thing. And I, to be honest, at this moment dropped out and was out for a week and a half, thinking what was wrong here. No, I understand, I understand that a metaclass can be used, but not halfway. This is like heavy artillery, and this is like architecture. And where do we put it? It's unclear. Perhaps it turned out this way from the task that the assignments were going through. Or or what I was interested in starting? Oleg, this is the best moment. Your mistake will lead you out, just like this guy. He wrote this framework for a month and a half, after which I thought for another week and a half, because I got lost when I saw the metaclass in the middle. And then it dawned on me that the architecture is completely absent. Of course, beginners who watch the video, you show them this code, they will say: "I would never write like that." Guys, it's explained here that if you learn according to this system, you will write it anyway. Now the question is, a person writes from his head. The question is not about writing, he can write at all, but about writing qualitatively. These are different things. Perhaps it turned out this way due to the order. A more specific, visual example of a metaclass, but that's not important anymore. Now we need to deal with slots in practice. I wanted to ask for additional sources. Pydantic and so on. If you look further at his framework, then, in principle, you open this and immediately your hand reaches out to throw something. With what, you understand? This is exactly what happens when a guy comes to work and the director sits there. If he twitches, run away, damn it. But that won't happen. Why? Because we will be professionals. It must be impeccable. Both Ivan and Oleg. Impeccable. That's why we look at Django. Impeccable. And if you come with such code, your hand will reach out. So you need to make sure there's nothing heavy on the table. I'm kidding, but they'll say: "Go home." That's for sure. Therefore, this, but this is the best mistake. Why? Because now he understood, saw, now the code will start to sing. Further, further everything is normal. But he, further, what? Invented. He started inventing, right? Made an architecture, roughly speaking, hung cabinets, and then everything seemed to go humanly, like a pro, right, he actually introduced static types, began to think about types, what kind of objects he would return in the full sense of duck typing. Then everything seemed to be fine, right? But the question is, that is, the person in this case, the guy just started, he had no choice but to come up with something. And God forbid, a client comes and says: "You know, I want to open a hairdresser's salon in addition to my car repair shop." Everything, in this case, the roof flies off. A new process begins. Instead of adding two classes and writing two lines of code, we start the whole process from scratch. This is oh-oh-oh, I won't say. Next, the class method inspires us, right, it begins. And further, he behaves quite interestingly. This is pure writing from the head. My school is only to correct the architecture from the head, because GPT would never have written it like that, everything is the opposite. But what is important here is that the person implemented everything, professionally developed, descriptors, metaclasses, statistics, everything that modern programming requires. The only thing is that he immediately put the cabinets in, and then started building the roof. How did it hold? Well, it held for him. Well, in life, maybe he came up with some sticks, then he would start building walls. This is exactly what happened. Or he would turn the house upside down on the roof and then turn it over again. So, something like that. But this is an amazing experience. This is how you can understand. He will understand. Further, he raised questions about the sequence of development. Everything is very professional, guys. Everything is very professional. Further, he raised questions. The example proved why it should be done this way. So, it's cool, we'll say. But at one fine moment, one idea, which I completely dropped out of, to be honest, I just fell off, I sat and was silent and was silent. He described all the roles. He described all the rights, but at one fine moment, in principle, it doesn't matter anymore. Here, when I saw the metaclass in the middle, I was shocked. My jaw just dropped, and I asked myself: "Can you do that?" But what excuses him is that he came up with it. Of course, he started collecting descriptors like fields. This is great. But with what effort? With what effort? This is absolutely the same in this case. This is the best mistake that a programmer has made in this case, you can really say. But we need to become architects. We need to become impeccable. Now he will understand this. This is exactly the code I slipped him. Maybe you will say, maybe you will say that this is very unfair. Guys, it's not about fairness. It's about a person coming and being a true engineer. And you can't learn to take it and make a correct architecture. You have to make a wrong one first. So. So, I give Oleg this file and say: "Come up with an idea, write your framework." He has the knowledge. Pydantic will be missing here. I won't explain what it is now. But nevertheless, at this stage, I knew that Oleg would have this knowledge. He will have this knowledge. I just lost the file. So, project description and let's look at architectural features. Descriptors. Excellent. What will we mix it with? A shovel. Wonderful. The solution will be good. Yes, but we will get bogged down. Protects data. Precise goal. Metaclasses control the architecture. To control it, Oleg, it must first exist. Oh, you are so malicious. They force. Dependency inversion. Excellent. Somewhere I saw it. Separated from business logic. Custom exceptions, i.e. models. We create our own errors. Open Django. Open Django. We don't need Django itself. We need to understand the architecture. Open Django. Open the code. Open the core. Well, I wanted to say core. Yes, indeed, it could be in the core. Question: what is the core, Oleg? This is the first question I ask you. Go here and answer a simple question: what is the core? What does it include? What are its goals? What does it do? This is the first question. First, you need to understand and clearly formulate, what is this core in this project. And, for example, if we take it at a glance, in this project there are two different cores, but they exist, I knew this and I talked about it. Therefore, the first question is about this core or kernel. Two projects. What is the core? What is this core? That is, here is the core that Oleg came up with at the current stage, does it rely on? Ask the right question. Oleg, I'm asking you. Does this core rely on twenty years of development experience, for example, Django? Listen up to this point and write me an answer, does it rely on it or not? The fact that features from Django are taken here, the same Exceptions, I see them guaranteed. Here they are. That they are defined, I said.

Without descriptors of understanding. You have them perfectly set up, it will always be garbage code. I'll tell you now. The code is good. And how will we expand? What's wrong? Layers. Wonderful. Oleg, to add a new feature, the maximum you can write is one or two lines. Now I will give an answer, what I would like to see now. And you can do this. You wrote a metaclass. Wonderful, roughly speaking. What did we get? We got the following picture. We built, for example, you have a grandmother. We built a house for grandma, and for the house, so that she had light, we built a power station. Only for grandma. That's it. This is exactly what happened to you. That is, the most powerful thing that was supposed to automate processes, in this case, it started doing secondary nonsense. A most wonderful mistake you made. Most wonderful. So, to correct the situation, the first question. The core. This. We go here. I'm giving a link. This is the first question. We need a clear formulation first, what is the core and, in principle, its goals. As soon as this becomes clear, I think the code will fall into place for you completely differently. It's already clear, Oleg, that you've opened up a lot. But, Oleg, there's a difference, it should be impeccable. Yes, today we have achieved that you write code from scratch, implement layers, work with metaclasses, descriptors. In principle, what an ordinary person from ordinary courses can't even dream of in a nightmare. Why? Because he will always say that it's impossible. But, as you can see, everything is possible. You just need to follow a certain system step by step. This is not achieved in one day, but it is definitely achievable. There is nothing difficult here. Accordingly, the first question that will correct this situation, it is also topical, it is important. Assignment from March 10, 2026. And the first question. The core is. What is the core? The core is one core. This is Django. Here's the second. I'm not taking PyTorch, it will be too difficult for us there for now. That's a bit later. In the second core, they are different, but the approaches are clearly visible. At the same time, depending on the core, the depth is chosen, the design method is chosen, that is, through the handler, the guy also did everything with handlers. In Django, pay attention, everything is built on middleware. A slightly different situation, so it's like this. The core is. Oleg, as a hint. This is how it should have been done correctly. Pay attention, if we go into Django, if we go here, we don't need Django itself for 100 years, we're not going to write web. We are interested in something else. We see things. For example, the object module. You know all this perfectly, you read these links. This is a completely different method, for example, which is one, yes, in this shrcast, that is, it reflects the main architecture of Django. Oleg, this is a fairy tale. And we see that the file that is responsible for everything, for everything, is precisely the main one, that, yes, module base. That is, the most important thing, for example, is to create a model, yes, and then attach everything else. The idea here is very simple. The user creates a model, with the help of which they can express anything. These fields should be loaded into SQL, roughly speaking, into the database. We have three classes here. Object is our, manr interface. Then we take methods from the third class and stamp out whatever we want. But this is a template, look, why is it written with a small number of lines here? That's the whole idea. We don't need Django, we're not going to write a web framework. But there are good ideas that you can read perfectly. Let's take a look. Here I have created what I would suggest. First, a registry of all subclasses. Something is missing here. This must be added. Something is missing. This line, this line must be saved, because Ivan has a different recommendation, there is a different goal. Stop, I opened the wrong thing. It doesn't want to do anything now. Leave this line in. Remember this now. All descendants must be, all ancestors must be descendants of module base. This can simply be taken and stolen from them. This will be correct. Here, yes, to the end. So, if we do this, what goal do we pursue? To create ordinary classes. We have given a lot to metaclasses. You have learned to create them. When you said that you went from types, I understood that we have a slight problem here, but it will only be solved by practice. Next. And here's an interesting thing. Handling in meta. After all, we can do meta in Django. There it extends SQL classes, and we can create a method to add anything here and expand it instantly. Adding a manager. This is like an analog. Automatic annotation creation, like in Pydantic. But it's easier to do this. Why fiddle with it manually? Class registration. Classes are automatically registered, which allows factories to be created later. But today you are one, tomorrow there will be 10 more. The manager pattern provides a convenient way to work with subscriptions. Wonderful. The internal one provides flexibility in settings, for example, specifying currency limits. Look, annotations turn into descriptors without extra code. Well, this is an architecture where everything will be expanded far and wide, and in any way you want. And you can still refine it, add further. Let's go to work. Well, a metaclass can add a descriptor that, when read, will return the associated user, and when written, will update the feedback. Let's continue listing permissions. Everything that even the user bought in the store today can add what color label it was. Everything, everything, everything. Next, we have problems. If the user needs different features. So, create filtering and aggregation, take what Django has invented from time to time. But it's simpler. Feedback. This kind of architecture will be nothing. Only, guys, you have to write this. Oleg and I will achieve this. You must understand clearly what we want and how to expand it. For this, we need a metaclass. Oleg, I'm giving you this. Throw this entire interface of yours into the trash today. And today is the best day for you in this course, because you have made a mistake that will make you understand the difference between your interface, which you have made, and Oleg's experience, who writes wonderfully, indeed, writes wonderfully, but we want to see Oleg, who will take the experience of guys who have 20 years, who do it every day, and take this as a zero. This is the Oleg you should be, then the code will be impeccable. It is precisely this architecture that we, Oleg, should, after some time, show this architecture to people and say: "Now Oleg, this is a different Oleg, who will come, show the code, and those who will sit at the table will start sliding off their chairs, because they won't understand a damn thing there, but they will understand one thing: this is very cool. This is very cool. We should achieve this. You have all the knowledge for this. Only because of this, GPT wrote so wonderfully about you. Well, I think it's too early to relax. Now that we can write everything from scratch and use wonderful things, descriptors, metaclasses, now we need to learn how to assemble it correctly, relying on people who know how to do it. Well, in principle, that's what I wanted to say. This video was recorded with Oleg's permission, so my goal was for Oleg to realize that he needs to learn something different now. Yes, I didn't aim to say that Bovsanovsky teaches cool, that's already clear. I won't say anything here, because it's true. We work seriously, and everyone has this chance. Any day you waste will simply be a lost day between today and when you get your first serious salary as a programmer, right? So, the link is in the description, for those who want it. Indeed, guys, everything will work out. One skill. A little patience. Don't be afraid of Oleg's code. And why? Because he didn't do all this in a day. And you will succeed. Well, for Oleg, I'm attaching this. And Oleg, we are waiting for the architecture. You have wonderful thoughts, yes, solutions. Just for God's sake, don't put the class in the metaclass center anymore. This, Oleg, people who don't know will not understand, they will think that this is how it should be done. Well, for you, in fact, now you need to solve the issue with the core, answer what this core is, what tasks, functions it performs, and immediately everything will become clear with your knowledge. And look at this code. You can rework it. I just want you to do everything automatically, so that magic appears, so that the director you go to, whatever they are called, looks and widens their eyes. Magic, what the hell is magic. A little knowledge, a little bit, a little patience, and everything works out. Therefore, from your framework, I expect complete automation, which will be embedded in one small piece of code. And then you can twist it however you want. Then you can invent, attach anything you want, but the basic architecture must be laid now. But before laying it, I repeat for the 5062nd time, you need to answer the question. The core of what? What is it? What tasks does it perform? What functions, what to do, what does it work with? Here's the project, everything is clear there. Take your wonderful idea, refine it. Excuse me, then write me your feelings. And what you see, the old architecture and the new architecture. I think you yourself will be amazed by the possibilities, that huge possibilities have finally appeared there, and you don't have to do anything. Well, in principle, I've said what I wanted to say. It was supposed to be for young people. Oleg, a pathologist. Let's read a real story. Oleg writes to me, when he said, I didn't know. I only found out now. A year later, I wondered where he got such constant cold composure from. I myself, at one time, didn't even think I would end up here. I thought surgery, resuscitation, something alive. And then I realized that this is also, that this is also about life, only from another side, about figuring out why it ended this way, so that the truth comes out for relatives, for the investigation, for justice. It's creepy to read - this is a normal reaction. Yes, it's true. Creepy. I don't show everything, because there are really creepy things there. Most people, when they learn the details, first recoil, then say: "I couldn't." I always have a question, I won't ask it, because it's a stupid question. We have our own little philosophy of life and death here, I add from myself, because in thanatology, such words don't even come up. In every profession, there is its own philosophy, its own inner religion. If you can say so, for builders it's about creating something, something eternal. For a doctor, it's about fighting for life at any cost, for a teacher, it's about passing on meaning to the next generation. And in our thanatology, especially forensic, the philosophy is simple but profound: life and death are two sides of the same coin. They are inseparable. You see every day how fragile life is. One wrong step, one blow, one illness against the backdrop of alcohol, and that's it. But that's precisely why you start to appreciate it more sharply. Death is not an enemy, but a mirror. And a mirror, it's a mirror, it shows how we lived, what we left behind, whether everything ended justly. This is Oleg's thought. Working here, you understand that death is not the end of meaning, but its test. It makes you ask questions: why did this person live, for what? What did he manage to do, good or bad? In the end, you come to the conclusion that the meaning is not in avoiding death, that's impossible, but in living so that your death is not meaningless, so that after you there are not just cadaverous spots and conclusions, but something real, children, good deeds, the truth that you managed to establish. That's why I say, you should be afraid not of the dead, but of the living. Those who waste their lives in vain, in malice, drunkenness, and violence, because it is they who most often end up on our table. According to statistics, another case I'll tell you about happened last month. Maybe you're tired? You're not tired yet, but I want to share. They brought the body of a young guy, about 25-7 years old. A classic hanging. A belt loop around the neck, the body found in the entrance of a multi-story building by neighbors. The investigator immediately said suicide. There's a note, depression, everything is clear. But we always check thoroughly, especially when the case looks too obvious. During the autopsy, bruises on the neck immediately caught my eye, not entirely typical for hanging. They were not only from the loop, but also traces of fingers in front, as if they were strangled by hand. Plus small, pinpoint hemorrhages in the eyes and on the face, much stronger than usual. Another strangeness: the tongue was not sticking out, as often happens. Oh, oh my God, I can't read anymore. And it was tucked back. And most importantly, almost zero alcohol in the blood. And you see this every day. Oh my God. Well, let the youth read at least about the profession. Maybe someone will say, I can, someone will say, "To hell with it." Excuse me. And in the stomach, traces of a sleeping pill, ben, well, I won't read that. They started digging deeper, took samples for toxicology, histology. The guy was heavily sedated, in a comatose state. The loop on his neck was not a hanging point, it was low. He was hanging on his knees, his feet touching the floor. The most important thing is a fracture of the hyoid bone. A small one. In the end, not suicide, but murder. She was first pumped with a sleeping pill. Then strangled, then staged hanging to look like suicide. The note, by the way, was a forgery, the handwriting did not match completely, thanks to our conclusion. Asphyxia from pressure on the neck organs, imitation of hanging, the case was reclassified as murder, a suspect was found - a former friend, due to debts and drugs. The guy was jailed. The lesson from this is never believe the obvious. Even if everything looks like suicide, check the details. One small fracture or not the right degree of hemorrhage, the truth comes out as a weapon, and relatives get justice. This is a classic. Death always tells its story, if it has one. Well, in principle, I asked Oleg for permission, can I read, well, this is the reality he is in. You know, it's hard to imagine this profession in programming, so it's like that. Probably, it's a hobby, but the fact that the person is succeeding, and I, in fact, just found out about it. A week ago he told me about his profession. Usually, I don't ask much. If a person wants to, they want to. Well, life in general is strange, isn't it? Interesting. Like something alive. But, of course, let's say, it's all quite creepy, so I specifically read it for the youth. Maybe someone is thinking about choosing this profession, because I only saw it in movies. In movies, it's all so beautiful, interesting. When Oleg wrote, it's a bit creepy, so, well, you can judge that he is a serious person. Well, in principle, that's all. Well, let's end on a good note. Otherwise, reflection, I want to read differently after that letter. Okay, yes, yes. Well, in principle, I've said what I wanted to say, the link is in the description. People are different. And even thanks to this story that Oleg wrote, nevertheless, look, he helped someone, right? And what do a pathologist, a forensic pathologist, and programming have in common? I can't say. For Oleg, it's probably a hobby, but of course, the results are good. A person completely far from technical science, but everything is going well so far. Thank you. Link to training in the description.