Как стать автором
Обновить
7
0
Лобачев Олег @aironik

Пользователь

Отправить сообщение
понятно становится тогда, когда знаешь, что такое работает. Но то, что пустота пушится в бранч и это действие заменяет пустотой ветку — до этого нужно додуматься (а с моей точки зрения это больше похоже на баг). Ну и удаление становится однообразным.
Проблема не в MVC, а в игнорировании паттерна и превращения кода в мясо. Использование другого паттерна не решает проблему того, что этот паттерн тоже игнорируется и код превращяется в неподдерживаемое месево. Вся бизнес логика должна отделяться от MVC, MVVM и прочих букв этого семейства. Бизнес логика дожна жить самостоятельно. Контроллер в MVC должен заниматься контролем и не заниматься обязанностями представления (максимум — делегировать представлению).
Группировать файлы лучше по назначению. Например, есть часть проекта, которая отвечает за события. Ее и нужно группировать. Когда происходит работа над функциональностью, то так удобно держать все части рядом. Если фича большая, то можно увеличить вложенность. Например, события отображаются в таблице, типов ячеек в таблице — 7 и их можно сгруппировать в свой каталог. Для каждого события можно посмотреть детали — своя группа. А если фича совсем вырастет, то ее можно просто выделить в отдельный подпроект и определить точки входа, не раскрывая в публичных интерфейсах все.
IB нужен для того, чтобы настраивать визуально то, что можно настроить декларативно. В данном случае, декларативно, для текушего «экрана» устанавливается конкретная реализация обработчика. При желании, можно и все view создавать в -loadView. Просто xib/storyboard это делает наглядным.

Исключения — это именно исключительная, особенная, критическая ошибка. Если у нас всего лишь формат не соответствует ожидаемому и мы это проверяем, то это ожидаемый результат вычисления правильно/нет, а не ошибка.

Для того, чтобы узнать, что код не дописан, есть вариант использования assert'ов, Например, можно использовать семейство функций NSAssert, которые работают похожим образом в дебажных/тестовых/домашних сборках выключать их в релизных при помощи определения NS_BLOCK_ASSERTIONS.
К сожалению, я часто вижу не просто один switch, а некое месиво вложенных switch и if. Если switch всего один, то не обязательно от него избавиться, но можно уменьшить уровень вложенности switch и if (один из вариантов приведен в ервой части статьи).
Нет. Задача осталась прежняя. А код стал линейным. В нем нет ветвлений и вложенных if-else/switch. Просто берем значение, и возвращаем его.
Switch — это инструмент. Вообще, с ним бороться не стоит. Стоит бороться за минимизацию использования switch и if. После получения линейной логики получаем простое понимания кода, и как следствие — быстрое изменение.
Пачку именованных констант тоже можно обернуть в одну структуру и использовать именно целосное состояние, а не кучку констант.
Да. Спасибо. Поправил.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность