Otello / Отелло
Application Review: В коде представлен прототип сервиса бронирования номеров в отелях, в котором реализована возможность забронировать свободный номер в отеле.
Сервис будет развиваться, например
Заголовок раздела «Сервис будет развиваться, например»- появится интеграция с настоящей базой данных;
architecture/system-design - появится отправка письма-подтверждения о бронировании;
architecture/system-design - появятся скидки, промокоды, программы лояльности;
testing/unit-mocks - появится возможность бронирования нескольких номеров.
architecture/system-design
Задача: Проведи код-ревью сервиса, обозначь те проблемы, которые ты видишь и предложи варианты их решения. Важно обратить внимание на: misc/general
Заголовок раздела «Задача: Проведи код-ревью сервиса, обозначь те проблемы, которые ты видишь и предложи варианты их решения. Важно обратить внимание на: misc/general»- разделение ответственностей между компонентами и выделение архитектурных слоев
- выделение абстракций и интерфейсов с учетом дальнейшего развития и расширения функциональности
- корректную работу с конкурентностью, указателями и каналами
Что будет на встрече: На встрече ожидаем что ты продемонстрируешь экран и проведешь ревью кодовой базы сервиса. Мы будем задавать вопросы по твоему ревью и можем попросить какие-то участки кода переписать, чтобы исправить те проблемы, которые ты видишь.
Можем спросить что будет если продакт решит добавить какую-то новую фичу - как она ляжет на в архитектуру сервиса. Если будет время - попробуем такую фичу запрототипировать в коде.
Также можем поговорить и про достаточно общие темы
Заголовок раздела «Также можем поговорить и про достаточно общие темы»- о значениях и указателях, многопоточности, интерфейсах и каналах в Go;
go/channels - о базах данных и транзакциях; о шинах данных и паттернах работы с ними.
sql/transactions
Если у тебя нет опыта работы с Go - не беда, можешь воспринимать задание как некоторый псевдокод на Си-подобном языке. Будем говорить про то как в коде выделены абстракции и распределены зоны ответственности. Про то как можно улучшить код с точки зрения применения лучших практик проектирования и про то как сделать его надежным и расширяемым.
otello.zip