Николай Лихогруд
Компания: Яндекс
Комментарий Программного комитета:
На примере проекта Яндекс.Карт Николай делится реальным опытом, рассказывает о мотивации принятого решения распила монолита и о том, как это повлияло не только на метрики, но и на культуру в их команде. Если коротко, то прикладная и популярная в последнее время тема, интересный проект, интересный спикер.
Начиная разбивать приложение на модули, наша команда и не представляла, как сильно в итоге изменится наш процесс разработки. Как и многие, мы засели за эту работу, лишь когда время компиляции превысило все моральные границы, да и билд начал просто вылетать из-за превышения длины команды компиляции. Однако на данный момент мы используем модульность в первую очередь как способ организации параллельной разработки фич в отдельных проектах, а проблема долгой компиляции при минимальных затратах перестала быть такой критичной.
По данной теме уже существуют доклады, но нам в свое время не хватило ответов на конкретные вопросы: на какие модули разбить приложение? Какие должны быть между ними связи? Когда остановиться? Какие инструменты могут облегчить жизнь? Как все так наладить, чтобы было удобно создавать отдельные проекты для каждой фичи? В докладе мы разберем все эти вопросы, пройдемся по подводным камням использования CocoaPods, вспомогательному тулингу, работе с тестами, на конкретных примерах посмотрим, как организовать dependency inversion между модулями, обсудим, что в итоге мы получили и какими усилиями.
Многомодульность в корне преобразовала не только наш код, но и наш процесс, наше отношение к проекту. Доклад призван помочь избежать возможных ошибок и мотивировать заняться этой темой, даже если перед вами не стоит проблема большого монолита.
Компания: Яндекс