Перейти к содержимому

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