Closed NikKovIos closed 7 years ago
В частности, у нас на проекте мы придерживаемся следующего правила: протоколы называем без суффикса "Protocol", а конкретные реализации - с суффиксом "Implementation" (например, CalendarDataDisplayManager - CalendarDataDisplayManageImplementation).
Отдельный naming convention существует для VIPER модулей. Например, Presenter соответствует протоколам ViewOutput, ModuleInput и InteractorOutput (здесь мы понимаем, что суффиксы Input и Output могут быть только у протоколов).
Если протокол отражает какое-то свойство объекта, то мы добавляем окончание "able" (например, Mappable, SomethingConfigurable etc).
Спасибо за ответ!
Ещё вопрос - как вы относитесь к объединению файлов интерфейса и имплементации в один свифтовый файл? В случае, если нужно сменить имплементацию просто добавляем новый файл имплементации и инджектим его к нужному интерфейсу?
В таком подходе есть плюс в скорости работы, так как не нужно постоянно переключаться между файлами интерфеса и имплементации. Также автоподстановка работает стабильнее - не нужно сохранять файлы интерфейса постоянно, чтобы появились подстановки в интерфейсе.
Мы храним протоколы и реализации в разных файлах по следующим причинам:
Иногда в каких-то тестовых проектах, которые я пишу дома, я могу пренебречь этим правилом в целях экономии времени, но в продакшене все всегда в разных файлах.
Тогда вопросец - может вы придумали способ быстро и удобно переключаться между протоколами и реализациями (как например можно в objective-C между файлами интерфеса и имплементации). Вся боль в разделении в том, что нужно часто переключаться между файлами и это неудобно.
Есть 2 основных способа:
Также некоторые шорткаты можно еще подсмотреть вот здесь: https://medium.com/ios-geek-community/bobs-favorite-xcode-8-shortcuts-part-1-3-36381e07284d#.r72henn21
Хочу поднять вопрос правильного именования протоколов в Swift
Если в Objective-C понять протокол это или нет - можно по скобкам <>, то в swift 3 именование протоколов и названий классов не разделено и в связи с этим бывает происходит путаница класс это или протокол. Может в конце протоколов добавлять Protocol? Например ViewOutputProtocol.
Однако согласно конвенции добавлять Protocol в конце считается некрасиво и рекомендуют использовать прилагательные или причастия, образованные от существительного типа (..able, ..ing).
Каково ваше мнение?