В настоящее время я использую архитектуру CLEAN Swift iOS для довольно большого приложения iOS (http://clean-swift.com ), он основан на чистой архитектуре дяди Боба. Это действительно уменьшает размер контроллеров представления, однако существует МНОГО файлов для каждой сцены (или экрана). Типичный экран будет иметь такие файлы, как: ViewController, Presenter, Interactor, Router, Configurator. Мы также используем отдельную раскадровку для каждого контроллера представления - каждая раскадровка имеет только один контроллер представления. Также существует множество рабочих файлов, которые выполняют различные вызовы API. Время компиляции Swift довольно медленное, но, насколько мне известно, я почти уверен, что так было всегда (даже до того, как мы изменили нашу архитектуру с MVC на CLEAN). Однако некоторые коллеги начинают сомневаться, является ли эта архитектура причиной медленного времени компиляции. Мой вопрос: увеличивает ли использование большего количества файлов время компиляции? Будет ли MVC компилироваться быстрее? А как насчет раскадровки? Это плохая практика - использовать по одному на каждый контроллер представления?
Увеличивает ли количество файлов время компиляции в Swift?
Ответы (1)
Короткий ответ: да. Большее количество файлов увеличивает время компиляции, некоторые больше, чем другие.
Способ сократить время компиляции состоит в том, чтобы удалить раскадровки, а затем выполнить пользовательский интерфейс в коде, или сделать ваши раскадровки максимально многоразовыми. По моему опыту, чистая архитектура лучше всего работает с кодом, основанным на коде, поскольку вы уменьшаете количество файлов представления, если все сделано правильно. Хотя вы должны задать себе еще один вопрос: является ли немного увеличенное время компиляции более полезным с точки зрения наличия более читаемого, поддерживаемого и тестируемого кода, а не возни с постоянно увеличивающимися контроллерами MVC? И MVC может даже не уменьшить время компиляции, поскольку в большинстве случаев у вас могут появиться более крупные раскадровки. И последний вопрос. Да, использование одной раскадровки на контроллер можно считать плохой практикой, но только в том случае, если эти раскадровки нельзя использовать повторно.