На одном из собеседований в секции поговорить про архитектуру мне задали вот такой вопрос:
Пусть мы делаем бэкенд для некоего аналога яндекс пробок.
У нас уже есть готовый сервис картографии, а также популярное мобильное приложение, которое установлено у кучи автовладельцев и шлет нам геокоординаты.
Нужно придумать общую архитектуру бэкенда, продумать нагрузки и т.п.
Это вопрос не с одним правильным ответом, а на поговорить.
Но от него я выпал в осадок, т.к. никогда раньше на таком уровне системы не проектировал, а больше делал конкретные задачи (я — обычный миддл).
Что-то попытался родить, но мне самому не понравилось, интервьюеру, видимо, тоже.
А вопрос к форуму такой: что можно почитать на эту тему?
Должны же быть какие-то типовые архитектурные задачи, типовые проблемы их типовые решения, и описания этих решений.
Ну, т.е. книжки про архитектуру, по аналогии с тем, как есть книжки про качество кода.
A>А вопрос к форуму такой: что можно почитать на эту тему? A>Должны же быть какие-то типовые архитектурные задачи, типовые проблемы их типовые решения, и описания этих решений. A>Ну, т.е. книжки про архитектуру, по аналогии с тем, как есть книжки про качество кода.
Мартин Фаулер. Архитектура корпоративных программных приложений. https://www.ozon.ru/context/detail/id/1616782/
Здравствуйте, anon, Вы писали:
A>Что-то попытался родить, но мне самому не понравилось, интервьюеру, видимо, тоже.
это вопрос, на попытаться понять как вы способны мыслить столкнувшись с незнакомой задачей.
A>А вопрос к форуму такой: что можно почитать на эту тему?
не надо читать. попробуйте всё таки попробывать решить задачу, на основе здравого смысла и инженерного подхода.
попробуете, перед вами встанут конкретные вопросы (точнее вы их сами перед собой поставите), их и прогуглите.
Здравствуйте, anon, Вы писали:
A>На одном из собеседований в секции поговорить про архитектуру мне задали вот такой вопрос: A>Пусть мы делаем бэкенд для некоего аналога яндекс пробок. A>У нас уже есть готовый сервис картографии, а также популярное мобильное приложение, которое установлено у кучи автовладельцев и шлет нам геокоординаты.
A>Нужно придумать общую архитектуру бэкенда, продумать нагрузки и т.п.
A>Это вопрос не с одним правильным ответом, а на поговорить.
A>Но от него я выпал в осадок, т.к. никогда раньше на таком уровне системы не проектировал, а больше делал конкретные задачи (я — обычный миддл). A>Что-то попытался родить, но мне самому не понравилось, интервьюеру, видимо, тоже.
A>А вопрос к форуму такой: что можно почитать на эту тему? A>Должны же быть какие-то типовые архитектурные задачи, типовые проблемы их типовые решения, и описания этих решений. A>Ну, т.е. книжки про архитектуру, по аналогии с тем, как есть книжки про качество кода.
Для начала нужно решить, что будет делать сервис, а что клиент. Например клиент скачивает к себе дорожную сеть с сервиса или ее участок и сам определяет участок где на ней находится, направление движения и среднею скорость за X последних минут и шлет это все сервису. В этом случае сервис получается тривиальным и легко масштабируемым.
Здравствуйте, MadHuman, Вы писали:
MH>это вопрос, на попытаться понять как вы способны мыслить столкнувшись с незнакомой задачей.
большинство незнакомых задач 99% с большой вероятностью около 99% уже когда-то и кем-то решались.
MH>не надо читать. попробуйте всё таки попробывать решить задачу, на основе здравого смысла и инженерного подхода. MH>попробуете, перед вами встанут конкретные вопросы (точнее вы их сами перед собой поставите), их и прогуглите.
Все-таки есть архитектурные решения для определенных классов задач. Эти решения надо знать.
Так же как и алгоритмы. Базовые алгоритмы надо знать и применять при решении определенных задач, а не тратить время на создание своего ужасного и стремного "велосипеда".
Знать базовые вещи в своей инженерной области — это и есть инженерный подход.
Тот подход, который предлагается вами, не инженерный, он ближе к методу "научного тыка".
Такой подход может привести к тому, что у "специалиста" будет неправильное мнение о том, что он знает как правильно решать определенные задачи,
хотя на самом деле это будет не так. И горе будет тому, кто наймет такого специалиста. Если такая трабла происходит с программистом, то это пол-беды, если же с архитектором, то это пипец.
S>есть еще вот такая, но я не знаю насколько она хорошая S>https://www.ozon.ru/context/detail/id/144499396
Книжка — ХОРОШАЯ. Рекомендую прочитать.
Но она в общих вопросах архитектуры вообще.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lexey, Вы писали:
L>Здравствуйте, MadHuman, Вы писали:
A>>>А вопрос к форуму такой: что можно почитать на эту тему?
L>Grokking the system design interview, например.
А вы проходили его? Советуете?
Смотрю на него, нравится как оформлен и содержание. Пока не понял правильный ли это паттерн для тренировки — читать подробные рассказы про то, как кто то (не совсем понятно кто) считает надо проектировать сервисы.
Здравствуйте, burgundy, Вы писали:
B>А вы проходили его? Советуете?
Я его не проходил. Читал отдельные нагугленные главы.
B>Смотрю на него, нравится как оформлен и содержание. Пока не понял правильный ли это паттерн для тренировки — читать подробные рассказы про то, как кто то (не совсем понятно кто) считает надо проектировать сервисы.
А как ты будешь оценивать правильность? По крайней мере, в подобных рассказах предлагается определенный подход к решению задач проектирования распределенных систем, который выглядит вполне разумным.