Некоторые главные принципы кроссплатформенной архитектуры RIBs от Uber:
Поддержка сотрудничества между разработчиками на разных платформах. habr.com www.techaheadcorp.com Большинство сложных частей приложений Uber аналогичны на iOS и Android. habr.com RIBs обеспечивает общие паттерны разработки, чтобы инженеры могли использовать одну архитектуру для своих функций. habr.com www.techaheadcorp.com
Минимизация глобальных состояний и решений. habr.com www.techaheadcorp.com Глобальные изменения состояния могут привести к непредсказуемому поведению. habr.com Архитектура на основе RIBs поощряет инкапсулированные состояния в глубокой иерархии хорошо изолированных RIB, что позволяет избежать проблем с глобальными состояниями. habr.com
Тестируемость и изоляция. habr.com github.com Классы должны быть простыми для модульного тестирования и рассуждений в изоляции. github.com Отдельные классы RIB имеют разные обязанности (например, маршрутизация, бизнес-логика, логика представления, создание других классов RIB). habr.com
Инструменты для продуктивной разработки. habr.com Архитектура RIBs поставляется с инструментами IDE для создания кода, статического анализа и интеграции во время выполнения, что повышает производительность разработчиков в больших и малых командах. habr.com
Принцип открытости-закрытости. habr.com Разработчики, по возможности, должны добавлять новые функции без изменения существующего кода. habr.com
Структурирование вокруг бизнес-логики. habr.com Структура бизнес-логики приложения не должна строго отражать структуру пользовательского интерфейса. habr.com
Точные контракты. habr.com Требования должны быть объявлены с помощью контрактов, которые проверяются во время компиляции. habr.com Класс не должен компилироваться, если его собственные зависимости, а также гостевые зависимости не удовлетворены. habr.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.