Tales of an experienced technical director

Do you know, who did not smell the gunpowder of cgi-scripts salabon, what it means to be a technical director, and always bear responsibility for the project? Have you ever felt this burden of expectations, aspirations, and hopes? Did you hold architecture in your tense hands? This small, tiny life (which in ancient Sparta was thrown out of the cliff without hesitation), asking for only hope for being? So listen, salabon, they are not born good technical directors, they become ... How? Write it down!

Team

Little to find a person. But how to understand that he is a good programmer? How, for example, to be sure of his ability to do the job? Design, write, debug? Do not you know? So I don’t know. In general, the fewer questions, the more time it takes to write the code. Write down - there is googol - will figure it out. What is "how to spell"? GOUGOL! Are you wooden? Give me a pen here! Here is GOGOL. Don’t be dumb, you are responsible for the project, forgot?

Organization of work

Once you have typed a team ... It doesn’t matter what language they write! There is googol - they’ll figure it out, are you, my!

So ... As soon as you typed a team - you need to organize its work! Mom’s leaders who didn’t smell gunpowder immediately begin to introduce redmins / fats. Only raging with fat. Remember, write it down! Nefig do it. There is a telephone, a telephone, telegram, a notebook, a piece of paper and a pen in the end. I wrote down the task - transferred it for execution. All. As will be ready - report.

Architecture

You, personally, YOU are responsible for what the project will be. What? Can't you program? Yes, and you do not need it! They get higher education, go peacocks, you can’t drive up on a tattered goat. Write it down! Plan everything yourself! No advisers, no objections. Every gopher in the field is an agronomist. Catch the introductory - we make the guest ... No, no one can do it, let it be better, for example, the lesson schedule! Here's how you design? Well, well, the schedule table, right? Table with lessons? Mde ... Mediocre. And now - attention, Dad in the building!

Let's start with the main thing - what are we doing the schedule for? What is going to be there? Right, the lessons! But, firstly, the lessons can be different in name, and in fact, secondly, can differ from school to school. And thirdly! Such a system can be sold, so you need to do it right immediately, and for yourself.

Let's build the whole chain:

  • School
  • Lesson
  • Lesson time

This is the schedule laid out in its components.

Schools

We need to take a list of schools from somewhere. As you said? Do they introduce yourself? They will bring you such a thing there, mother do not grieve. Therefore - we make a strategic decision - we separate schools into a separate information system. We will connect the KLADR, FIAS to ensure the correct entry of the address.

Lessons

Here, too, is not as simple as you see. There are lessons that will be everywhere. Physical education, for example. And there are those that will not be everywhere. French where have you seen a lot? That's it! Therefore - strategic decision No. 2! We single out the lessons into a separate information system. What does “why” mean? Don’t you understand? Lessons are not tied to schools directly; they are tied to regions, for example. Therefore, there is nothing to mix everything together.

Lesson time

Everything is simple here, since the two previous points have become independent IP - here will be our pride - AIS "Schedule". Here comes the school from the IS "Schools", and a lesson from the IS "Lessons".

All clear? You see, the task seems to be simple, but if you think it through properly, it’s not so simple!

And now back to the distribution of tasks - how do you distribute the development? So, discuss it first ... Blah blah ... I repeat for the most forgetful - the more discussions - the less time for development! You already have a plan - it remains to give tasks to the places. Yes, these are three separate systems, will make the API work, what's the problem? You are difficult, however ...

Security

Pay particular attention to safety. Hack, shame does not work. So, I did not tell the most important thing - the fourth part of our puzzle is a security system. Yes, separate. She will manage permissions.

See what the rules should be:

  1. User enters login and password;
  2. If he is faithful, the security system gives him a token;
  3. With this token, he goes to the IS “Schools”, which ask the security system whether the token is correct and which schools you can watch;
  4. Further - the same for the IS "Lessons" - only she asks first IS "Schools", then the security system;
  5. Well and in the end - schedules.

What have we forgotten about? Do not you know? Immediately obvious, salabon. How much token should act, answer me, dear child? The correct answer is 15 minutes. There must be a separate regulation for changing the token. Thus, we secured ourselves. Checks at every turn. What? Password brute force? Well, they’ll probably do protection, but that’s not the main thing! The more often we change tokens, the better.

Now imagine that someone stole the source code of our system. And what will he do with them? Nothing, everything is complicated there, no one will figure it out. And even if you figure it out, we will change the rules, it’s not scary.

Well, how, enlightened more or less? Nothing, this is just the beginning. Remember the main thing - the more difficult, the safer and better.

PSMany articles on the topic "how to do it is not necessary", and other "bad advice." To make it difficult, confused, incomprehensible, maybe a fool. And to make it simple and elegant - you have to try. Try to at least think of it, cast doubt on your hypotheses, which, alas, not everyone can.

PPS Since April 1, friends! Now it is especially useful to turn back and laugh at past difficulties, laughter, nevertheless prolongs life.

All Articles