согласен, в MVP по сути предлагается контроллер как то так упрознить, чтобы его функцию связывания урезать, чтобы этот код связывания уменьшить и чтобы его не нужно было поддерживать-тестировать каждый раз
ну что вам так не нравятся ifdef, сравните количество символов ifdef и количество строк новых классов, мне кажется числа будут сопостовимы, это вам не JAVA а Objective-C. Язык на котором писалась NEXT Step, помните в 80-х как там все в 3D крутилось? Технологиие обогнавшие десятилетия. Думаете не было тогда макросов? Кстати сейчас картотеку портируют под Android и есть проблемы с памятью… нет, это конечно же не из-за того что там нет макросов
мне кажется четких граний нет, эти границы начинаешь ощущать когда у тебя неожиданно вырастает код UIViewController и сыпятся warnings со словами типо вы забыли объявленные классы связать с визуальным представлением в контроллере, при добавлении новых компонентов. А впринципе как не назови все одно — меньше связанностей — больше свободы :-)
разницы в написании кода практически нет, но вот в продукте конечном…
макросы позволяют на этапе копиляции убрать ненужный код в конечном приложении, ну например объявили вы массив в iPad для класса и где небудь держите миллион экземпляров этого класса, оно надо iPhone?, память нужно экономить у мобилок
Или метод вызывается в цикле миллион итераций, а в методе надо делать проверку? Насколько все замедлится?
1. Вы все таки не согласны что макросы это правилно в данном контексте, когда критична память и процессор?
2. Паттерны в статье предлагается открыть для себя самостоятельно, это значит что в данном контексте они не используются, у вас не возникает вопроса почему?
3. «А если Вы захотите еще настольную MAC версию сделать ??? еще одна ветка ??? или заново все писать ???» Вот тут вы себе противоречите, как раз будет куча веток классов наследования, каждый композитор будет перенаследован, кроме того будет написано куча обслуживающего кода: адапторы, фабрики. Кроме того поедит производительность. Кроме того стоит учитывать тот факт что iPhone/iPad — почти идентичные платформы, следовательно код у них почти одинаков, меняется представление и чаще всего оно всего лишь расширяется для iPad. А под Mac используются совершенно другие компоненты и поведение, для него можно портировать только МОДЕЛЬ. Впринципе модель можно портировать под любую платформу.
4. Свои компоненты чаще всего неизбежны за счет ограничений стандартных. Чего тут спорить? Ну никак нельзя UISplitViewController посадить на навигатор, что вы предложите в замен?
хорошее предложение, поскольку Proxy не сильно утежелит MPMusicPlayerController, я думаю. Но в местах, где быстродействие критично — определите свой макрос в проекте и пользуйтесь им. Кстати метод Krypt рекомендован Apple
Вы предлагаете использовать паттерн Adapter, есть еще куча паттернов, которые помогают объектную модель сделать проще и отказавшись от линейной модели программирования сделать код более понятной. В статье кстати написано, кстати, что вы их сами изучите, и соответственно сами будете их использовать. Здесь уклон в другую сторону: в сторону быстродействия (НУ ОЧЕНЬ КРИТИЧНО) и минимизации кода. Представте что вы своим насследованием потяните кучу изменений классов. В Картотеке например присутствует 6-уровневое наследование виджетов, что каждую ветвь перенаследовать? Кстати паттерны учат нас избегать наследования в пользу композиции, это так — к слову.
мне тоже мозг сломала эта фраза, давайте автора попросим исправить? Мне кажется автор имел в виду тот факт, что устаревшие макросы не хотят реанимировать и давать им НОВУЮ жизнь, даже там где они становятся актуальными
скорее это Ваши домыслы насчет снобизма.
Объективно в постах демонстрируется только знания о своей компании, о ее финансировании и знания законов РФ, которое кстати обусловлено текущим проектом
какая заминусованная статья!
походу народу не нравится идея закрытия «В контакте»
а в корпоративном блоге, потому что наша компания разрабатывает софт, который данную информацию предоставляет
Очень важное дополнение программы! Без обновления текущей версии сейчас можно загружать актуальные версии PDF файлов и если они не изменялись, то чтение их будет происходить без расхода интернет трафика (интернет нужен только для проверки актуальности версии). Мы заботимся о пользователях мобильного инета :-)
макросы позволяют на этапе копиляции убрать ненужный код в конечном приложении, ну например объявили вы массив в iPad для класса и где небудь держите миллион экземпляров этого класса, оно надо iPhone?, память нужно экономить у мобилок
Или метод вызывается в цикле миллион итераций, а в методе надо делать проверку? Насколько все замедлится?
А где был замечен впервые MVP?
2. Паттерны в статье предлагается открыть для себя самостоятельно, это значит что в данном контексте они не используются, у вас не возникает вопроса почему?
3. «А если Вы захотите еще настольную MAC версию сделать ??? еще одна ветка ??? или заново все писать ???» Вот тут вы себе противоречите, как раз будет куча веток классов наследования, каждый композитор будет перенаследован, кроме того будет написано куча обслуживающего кода: адапторы, фабрики. Кроме того поедит производительность. Кроме того стоит учитывать тот факт что iPhone/iPad — почти идентичные платформы, следовательно код у них почти одинаков, меняется представление и чаще всего оно всего лишь расширяется для iPad. А под Mac используются совершенно другие компоненты и поведение, для него можно портировать только МОДЕЛЬ. Впринципе модель можно портировать под любую платформу.
4. Свои компоненты чаще всего неизбежны за счет ограничений стандартных. Чего тут спорить? Ну никак нельзя UISplitViewController посадить на навигатор, что вы предложите в замен?
summer2010.etalks.ru/
Немного рекламы: материал (в том числе и видеосъемку) можно преобрести тут
www.stepinsoft.com/shop/etalks-summer-2010/
Объективно в постах демонстрируется только знания о своей компании, о ее финансировании и знания законов РФ, которое кстати обусловлено текущим проектом
походу народу не нравится идея закрытия «В контакте»
а в корпоративном блоге, потому что наша компания разрабатывает софт, который данную информацию предоставляет