Да знаешь ли ты, не нюхавший пороху cgi-скриптов салабон, что значит быть техническим директором, и всегда нести ответственность за проект? Ощущал ли ты когда-нибудь этот груз ожиданий, чаяний, и надежд? Держал ли ты в своих натруженных руках архитектуру? Эту маленькую, крошечную жизнь (которую в древней Спарте без раздумий выкидывали со скалы), просящую лишь надежды на бытие? Так слушай, салабон, хорошими тех.директорами не рождаются, ими становятся… Как? Записывай!
Команда
Мало найти человека. А как понять что он хороший программист? Как, например, увериться в его способности выполнить работу? Спроектировать, написать, отладить? Не знаешь? Вот и я не знаю. Вообще, чем меньше вопросов, тем больше времени на написание кода. Записывай — гуголь есть — разберется. Что «как пишется»? ГУГОЛЬ! Ты вообще что ли деревянко? Дай ручку сюда! Вот — ГУГОЛЬ. Не тупи, ты несешь ответственность за проект, забыл?
Организация работы
Как только ты набрал команду… Да не важно на каком языке они пишут! Гуголь есть — разберутся, ты что, ё-мое!
Так вот… Как только ты набрал команду — надо организовать ее работу! Не нюхавшие пороху мамкины руководители сразу начинают внедрять редмины\жиры. Только бесятся с жиру. Запомни, запиши! Нефиг делать. Есть телефон, вотсапп, телеграмм, блокнот, бумажка и ручка в конце концов. Записал задачу — передал на исполнение. Всё. Как будет готово — доложат.
Архитектура
Ты, лично ТЫ несешь ответственность за то, каким будет проект. Что? Программировать не умеешь? Да и не надо оно тебе! Понаполучают высших образований, ходят павлинами, на драной козе не подъедешь. Записывай! Все планировать самостоятельно! Никаких советчиков, никаких возражений. Каждый суслик в поле агроном. Лови вводную — делаем гостевую… Да нет, тут любой справится, лучше пусть будет, например, расписание уроков! Вот как ты спроектируешь? Ну-ну, таблица с расписанием, так? Таблица с уроками? Мдээ… Посредственно. А теперь — внимание, батя в здании!
Начнем с главного — для чего мы делаем расписание? Что там будет? Правильно, уроки! Но, во-первых, уроки могут быть разными по названию, и по сути, во-вторых, могут отличаться от школы к школе. И в-третьих! Такую систему можно продавать, поэтому делать надо сразу хорошо, и для себя.
Давай построим всю цепочку:
Вот это и есть расписание, разложенное по составляющим.
Школы
Нам откуда-то надо брать список школ. Как ты сказал? Сами введут? Они тебе там такого введут, мама не горюй. Поэтому — принимаем стратегическое решение — выделяем школы в отдельную информационную систему. Подключим КЛАДР, ФИАС, чтобы обеспечить правильный ввод адреса.
Уроки
Здесь тоже не всё просто, как видишь. Есть уроки, которые будут везде. Физкультура, например. А есть — такие, которые не везде будут. Французский язык ты много где видел? То-то и оно! Поэтому — стратегическое решение №2! Уроки выделяем в отдельную информационную систему. Что значит «зачем»? Ты что, деревянко, не понимаешь? Уроки не привязаны к школам напрямую, они привязаны к регионам, например. Поэтому нечего смешивать всё в одну кучу.
Время урока
Тут всё просто, так как два предыдущих пункта у нас стали самостоятельными ИС — здесь будет наша гордость — АИС «Расписание». Сюда поступает школа из ИС «Школы», и урок из ИС «Уроки».
Всё ясно? Видишь, задача вроде бы простая, однако если её как следует продумать, получается не всё так просто!
А теперь возвращаемся к распределению задач — как ты распределишь разработку? Так, обсудишь сначала… Бла-бла… Повторяю для особо забывчивых — чем больше обсуждений — тем меньше времени на разработку! План у тебя уже есть — осталось дать задачи на места. Да, это три отдельные системы, сделают API для работы, в чем проблема? Трудный ты, однако…
Безопасность
Особое внимание удели безопасности. Взломают, стыда не оберешься. Так вот, не рассказал самого главного — четвертая часть нашей головоломки — это система безопасности. Да, отдельная. Она будет управлять разрешениями.
Смотри, какой должен быть регламент:
О чем мы забыли? Не знаешь? Сразу видно, салабон. Сколько должен действовать токен, ответь мне, милый ребёнок? Правильный ответ — 15 минут. Для смены токена должен быть отдельный регламент. Таким образом мы обезопасили себя. Проверки на каждом шагу. Что? Перебор пароля? Ну сделают, наверное защиту, да это не главное! Чем чаще меняем токены, тем лучше.
Теперь представь, что кто-то украл исходники нашей системы. И что он с ними сделает? Ничего, там сложно всё, никто не разберется. А даже если разберется — мы регламенты поменяем, не страшно.
Ну, как, просветился более-менее? Ничего, это только начало. Помни главное — чем сложнее, тем безопаснее, и лучше.
P.S. Много статей на тему «как делать не надо», и других «вредных советов». Сделать сложно, запутано, непонятно, может и дурак. А чтобы получилось просто и элегантно — надо постараться. Постараться хотя бы до этого додуматься, поставить под сомнение свои гипотезы, что, увы, могут не все.
P.P.S. С 1 апреля, друзья! Сейчас особенно полезно обернуться назад, и посмеяться над прошедшими трудностями, смех, всё-таки продлевает жизнь.
Команда
Мало найти человека. А как понять что он хороший программист? Как, например, увериться в его способности выполнить работу? Спроектировать, написать, отладить? Не знаешь? Вот и я не знаю. Вообще, чем меньше вопросов, тем больше времени на написание кода. Записывай — гуголь есть — разберется. Что «как пишется»? ГУГОЛЬ! Ты вообще что ли деревянко? Дай ручку сюда! Вот — ГУГОЛЬ. Не тупи, ты несешь ответственность за проект, забыл?
Организация работы
Как только ты набрал команду… Да не важно на каком языке они пишут! Гуголь есть — разберутся, ты что, ё-мое!
Так вот… Как только ты набрал команду — надо организовать ее работу! Не нюхавшие пороху мамкины руководители сразу начинают внедрять редмины\жиры. Только бесятся с жиру. Запомни, запиши! Нефиг делать. Есть телефон, вотсапп, телеграмм, блокнот, бумажка и ручка в конце концов. Записал задачу — передал на исполнение. Всё. Как будет готово — доложат.
Архитектура
Ты, лично ТЫ несешь ответственность за то, каким будет проект. Что? Программировать не умеешь? Да и не надо оно тебе! Понаполучают высших образований, ходят павлинами, на драной козе не подъедешь. Записывай! Все планировать самостоятельно! Никаких советчиков, никаких возражений. Каждый суслик в поле агроном. Лови вводную — делаем гостевую… Да нет, тут любой справится, лучше пусть будет, например, расписание уроков! Вот как ты спроектируешь? Ну-ну, таблица с расписанием, так? Таблица с уроками? Мдээ… Посредственно. А теперь — внимание, батя в здании!
Начнем с главного — для чего мы делаем расписание? Что там будет? Правильно, уроки! Но, во-первых, уроки могут быть разными по названию, и по сути, во-вторых, могут отличаться от школы к школе. И в-третьих! Такую систему можно продавать, поэтому делать надо сразу хорошо, и для себя.
Давай построим всю цепочку:
- Школа
- Урок
- Время урока
Вот это и есть расписание, разложенное по составляющим.
Школы
Нам откуда-то надо брать список школ. Как ты сказал? Сами введут? Они тебе там такого введут, мама не горюй. Поэтому — принимаем стратегическое решение — выделяем школы в отдельную информационную систему. Подключим КЛАДР, ФИАС, чтобы обеспечить правильный ввод адреса.
Уроки
Здесь тоже не всё просто, как видишь. Есть уроки, которые будут везде. Физкультура, например. А есть — такие, которые не везде будут. Французский язык ты много где видел? То-то и оно! Поэтому — стратегическое решение №2! Уроки выделяем в отдельную информационную систему. Что значит «зачем»? Ты что, деревянко, не понимаешь? Уроки не привязаны к школам напрямую, они привязаны к регионам, например. Поэтому нечего смешивать всё в одну кучу.
Время урока
Тут всё просто, так как два предыдущих пункта у нас стали самостоятельными ИС — здесь будет наша гордость — АИС «Расписание». Сюда поступает школа из ИС «Школы», и урок из ИС «Уроки».
Всё ясно? Видишь, задача вроде бы простая, однако если её как следует продумать, получается не всё так просто!
А теперь возвращаемся к распределению задач — как ты распределишь разработку? Так, обсудишь сначала… Бла-бла… Повторяю для особо забывчивых — чем больше обсуждений — тем меньше времени на разработку! План у тебя уже есть — осталось дать задачи на места. Да, это три отдельные системы, сделают API для работы, в чем проблема? Трудный ты, однако…
Безопасность
Особое внимание удели безопасности. Взломают, стыда не оберешься. Так вот, не рассказал самого главного — четвертая часть нашей головоломки — это система безопасности. Да, отдельная. Она будет управлять разрешениями.
Смотри, какой должен быть регламент:
- Пользователь вводит логин и пароль;
- Если он верный — система безопасности дает ему токен;
- С этим токеном он идет в ИС «Школы», которые запрашивают у системы безопасности, верный ли токен, и какие школы можно смотреть;
- Далее — то же самое для ИС «Уроки» — только она запрашивает сначала ИС «Школы», потом систему безопасности;
- Ну и в конце — расписания.
О чем мы забыли? Не знаешь? Сразу видно, салабон. Сколько должен действовать токен, ответь мне, милый ребёнок? Правильный ответ — 15 минут. Для смены токена должен быть отдельный регламент. Таким образом мы обезопасили себя. Проверки на каждом шагу. Что? Перебор пароля? Ну сделают, наверное защиту, да это не главное! Чем чаще меняем токены, тем лучше.
Теперь представь, что кто-то украл исходники нашей системы. И что он с ними сделает? Ничего, там сложно всё, никто не разберется. А даже если разберется — мы регламенты поменяем, не страшно.
Ну, как, просветился более-менее? Ничего, это только начало. Помни главное — чем сложнее, тем безопаснее, и лучше.
P.S. Много статей на тему «как делать не надо», и других «вредных советов». Сделать сложно, запутано, непонятно, может и дурак. А чтобы получилось просто и элегантно — надо постараться. Постараться хотя бы до этого додуматься, поставить под сомнение свои гипотезы, что, увы, могут не все.
P.P.S. С 1 апреля, друзья! Сейчас особенно полезно обернуться назад, и посмеяться над прошедшими трудностями, смех, всё-таки продлевает жизнь.