Увеличивает ли количество файлов время компиляции в Swift?

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


person Kex    schedule 22.02.2017    source источник
comment
Что ж, я скажу: да, для компиляции большего количества файлов потребуется больше времени. Что касается MVC, это просто отделение бизнеса от представления и улучшение внешнего вида вашего кода. Но это все равно потребует от вас создания большего количества классов моделей, так что все еще будет создано больше файлов, и вы можете использовать несколько представлений на одном контроллере представления вместо того, чтобы создавать по одному для каждого.   -  person Tushar Sharma    schedule 22.02.2017


Ответы (1)


Короткий ответ: да. Большее количество файлов увеличивает время компиляции, некоторые больше, чем другие.
Способ сократить время компиляции состоит в том, чтобы удалить раскадровки, а затем выполнить пользовательский интерфейс в коде, или сделать ваши раскадровки максимально многоразовыми. По моему опыту, чистая архитектура лучше всего работает с кодом, основанным на коде, поскольку вы уменьшаете количество файлов представления, если все сделано правильно. Хотя вы должны задать себе еще один вопрос: является ли немного увеличенное время компиляции более полезным с точки зрения наличия более читаемого, поддерживаемого и тестируемого кода, а не возни с постоянно увеличивающимися контроллерами MVC? И MVC может даже не уменьшить время компиляции, поскольку в большинстве случаев у вас могут появиться более крупные раскадровки. И последний вопрос. Да, использование одной раскадровки на контроллер можно считать плохой практикой, но только в том случае, если эти раскадровки нельзя использовать повторно.

person T. Hyldgaard    schedule 12.02.2018