Форум программистов, компьютерный форум CyberForum.ru

В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? - Objective-C

Восстановить пароль Регистрация
 
smth
175 / 44 / 6
Регистрация: 23.06.2011
Сообщений: 243
11.12.2015, 23:07     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #1
Добрый вечер!
Делаю один объемный проект (клиент-сервер, много вьюх, большая storyboard, rest api) на Obj-C и начинает потихоньку напрягать быстрое "размножение" файлов исходного кода: на каждый чих - минимум два файла, а то и три (если xib'ы отдельно от сториборда делаю). Очень непривычно после C# или php: там, например, спокойно можно было объединить логически связанные сущности в один файл (например, гружу из базы компанию-отдел-сотрудников - в одном файле несколько классов описал, удобно). Изучал различные другие проекты и примеры с гитхаба, там - то же самое.

Тем не менее, хочу получить ответ на вопрос: это нормальное "поведение" для Objective C? А то уже жалеть начинаю, что не на swift начал, конца проекта еще не видно, а у меня уже почти 30 папок (групп), а уж файлов скоро под сотню будет. Боюсь, как бы теряться там не начал. Может, как-то можно "упаковать" несколько классов в одну пару .h + .m файлов? А то уж прям жаба душит ради синглтона из 10 строк отдельную пару файлов создавать.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2015, 23:07     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так?
Посмотрите здесь:

Рефакторинг кода. Objective-C
Objective-C Парсинг XML кода
Objective-C Парсинг HTML кода
Проектирование кода Objective-C
Совмещение С++ файлов и файлов Objective-C Objective-C
Objective-C Что значат собака (@) и процент (%) в тексте кода
Objective-C Добавление кода отправки GET запроса в AppDelegate.m
Objective-C О написании чистого кода
Objective-C Возникла сложность в реализации кода. Начинающий в Objective C

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
661 / 523 / 44
Регистрация: 05.03.2010
Сообщений: 1,270
13.12.2015, 11:35     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сто файлов? Лол
Это не много вообще, главное разделяйте их по предназначению или еще как-то, тогда будет удобно ориентироваться
Например, бизнесс логика в одной папке, представления а другой, нетворкинг - в третьей и тд
Еще есть подход: library-oriented programming, это когда отдельные модули приложения выделяете в отдельные библиотеки.

Но на самом деле, да, в objective-c принято отдельный класс создавать в отдельном файле, в большинстве из-за хедеров. Но серьезно, создавай вы по три класса в файле, проект проще не станет, а иногда только сложнее.

Но в swift я практикую такое, и создаю в одном файле протокол, его имплементацию и фабрику, которая создает инстанс, а так же - возможные экстеншены.

Насчет упаковки нескольких классов в один хедер файл, то и это один из подходов, только он часто юзается как зонтик для остальных хедеров используется такой подход в библиотеках. Т.е создаете один хедер, который включает в себе другие хедеры или просто объявляет несколько классов.

Но я бы советовал придерживаться существующих и проверенных практик и проблем будет меньше.
smth
175 / 44 / 6
Регистрация: 23.06.2011
Сообщений: 243
13.12.2015, 17:01  [ТС]     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #3
Почти сотня файлов при том, что в сториборде 6 экранов всего на текущий момент А будет по самым скромным подсчетам около 15-20.

Конечно же, группирую файлы, в основном в "стиле" hmvc.

Я не до конца понял вот эту фразу:
Насчет упаковки нескольких классов в один хедер файл, то и это один из подходов, только он часто юзается как зонтик для остальных хедеров используется такой подход в библиотеках. Т.е создаете один хедер, который включает в себе другие хедеры или просто объявляет несколько классов.
Я понял, что не возбраняется объявлять несколько классов в одном h-файле, а с m-файлами как правильно поступать? Для каждого класса свой или тоже можно несколько implementation в одном делать? И про зонтик не понял.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
661 / 523 / 44
Регистрация: 05.03.2010
Сообщений: 1,270
13.12.2015, 17:47     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #4
Цитата Сообщение от smth Посмотреть сообщение
Я понял, что не возбраняется объявлять несколько классов в одном h-файле, а с m-файлами как правильно поступать? Для каждого класса свой или тоже можно несколько implementation в одном делать? И про зонтик не понял.
можно как угодно, и в одном .m файле несколько имплементаций, и для каждого .m файла отдельная имплементация имея общий хедер.
Зонтик это такой объеденяющий хедер файл. Например у вас есть a.h, b.h, c.h и есть all.h, в котором вы импортируете a,b,c и таким образом остальным пользователям вашего модуля\библиотеки не нужно вручную подключать кучу этих хедеров, а использовать только all.h.

Но снова-таки, правильно поступать, это стараться следовать советам Apple и придерживаться общепринятых стандартов. Кол-во файлов в проекте это вообще не проблема, при правильной группировке и наименованию, сложность понимания расти не должна. Вам нужен модуль X или скрин Y, вы идете в эту директорию и все там находите, вам нужен нетворкинг, идете туда и там все лежит.

Просто прийдет к вам завтра на проект Петя или Вася, которого вы так долго искали с многолетним стажем и так далее, и все что он будет делать, это долго материться, почему у вас не как у людей и ничерта неясно. Ведь он привык работать по определенным конвенциям, которые более или менее уже устоялись среди разработчиков.

Цитата Сообщение от smth Посмотреть сообщение
что в сториборде 6 экранов всего на текущий момент А будет по самым скромным подсчетам около 15-20.
вот, кстати, еще совет - не храните все приложение в одном сториборде.
Сториборд, он как бы подсказывает своим названием, что предназначен для какой-то стори\сценария. Например сценарий логина - пользователь видит начальный скрин, откуда решается что делать дальше, потом разветвление - либо логин скрин, либо скрин регистрации, на регистрации возможно нужно подтвердить имеил или еще что-то сделать. И на этом хватит. Дальше лучше создать новый сториборд для нового сценария. Например сценарий настроек приложения и так далее.
Более мелкие сториборды будет проще мержить и проще понимать.
smth
175 / 44 / 6
Регистрация: 23.06.2011
Сообщений: 243
17.12.2015, 13:20  [ТС]     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #5
Да, со кошмаром огромного сториборда я уже как-то раз столкнулся. Он по пол минуты открывался на моем i7 с 16 гигами оперативки. (хотя, может это нормально и я просто не видел по-настоящему огромные сб?). Осложнялось это тем, что я по незнанию в этом же сториборде создавал экраны с десятком uiview, внутри которых была друг на друге куча других uiview (они потом превращались в 3х-мерный куб с разной высотой сторон). С этого экрана было что-то около 90 аутлетов (я еще тогда задавал вопрос, на который в то время так никто и не ответил - чем лучше пользоваться для закрытых пременных, property или ivar, но сейчас уже знаю ответ). Это было через месяц после того, как я впервые открыл мануал по ObjC.

Теперь как раз я и стараюсь все максимально разделить и создавать reusable (как это по-русски, переиспользуемые?) компоненты. Что, правда, привело к созданию этой темы ) Но так все равно лучше, чем тогда.
LeninRedStar
5 / 5 / 4
Регистрация: 22.11.2015
Сообщений: 21
21.12.2015, 19:40     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так? #6
StoryBoard можно бить на отдельные стори, иначе он становится реально очень громоздким и неудобным (не только из-за того, что долго грузится а в принципе становится большой).
Yandex
Объявления
21.12.2015, 19:40     В проекте быстро растет количество файлов исходного кода. Все ли я делаю так?
Ответ Создать тему

Метки
objective c, красивый код
Опции темы

Текущее время: 06:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru