Представьте себе книгу, в которой нет деления на главы, и все идет без логической и смысловой разбивки, книгу, где нет ни абзацев, ни точек, ни запятых, книгу, где первая строка рассказывает об одном, вторая о другом.
, третий снова о первом.
Представлен? Смогли бы вы понять, о чем эта книга? Как быстро вы смогли найти интересующий вас отрывок? Ваш код, как и содержание книги, должен быть структурирован так, чтобы его было легко читать и он передавал предполагаемое значение.
В этой статье я покажу примеры организации кода, в котором классы будут иметь одинаковую последовательность основных блоков и их разбивку.
Для удобства я буду использовать слово класс, но имею в виду любой тип (класс, структура, перечисление).
Применив эти советы, ваш код станет читабельным, что в дальнейшем обеспечит удобство и скорость работы с ним.
Конечно, описанные советы можно модернизировать по своему вкусу, следуя основным принципам.
Для начала давайте сравним один и тот же код в двух версиях.
Пример беспорядочного класса:
Этот код похож на свалку методов, переменных и выходов, в которой все слито воедино, сложно понять, что чему принадлежит и где что искать.
Пример чистого класса:
Пустая строка 38 — отступ на одну строку от последнего метода, чтобы было видно, где заканчивается последняя закрывающая скобка метода, а где заканчивается сам класс.Оба примера предоставляют одинаковую функциональность, но разница в том, что второй вариант имеет четкую структуру, благодаря чему логика более очевидна, код легко читается, можно быстро найти то, что ищете, и кроме того, просто приятно смотреть.
Основные принципы формирования чистой классовой структуры:
- Мы всегда используем // ОТМЕТКА: -
- Даем названия меткам и задаем их порядок
- Переносим логику из методов жизненного цикла в отдельные методы
- Мы используем расширение для реализации протоколов
- Выбор логически связанных элементов
- Удаление неиспользуемых элементов
- Автоматизируйте рутину
1. Мы всегда используем // ОТМЕТКА: -
Для удобства чтения книга разделена на главы, и нам будет удобнее работать, если мы создадим оглавление занятия с помощью // ОТМЕТКА: - .Эта метка не только хорошо выделяется на фоне остального кода, но и автоматически создает оглавление — выделяет разделы кода жирным шрифтом в списке элементов данного файла.
Посмотреть оглавление файла можно, нажав на кнопку после стрелки вправо (> ) в самом верху файла после имени этого файла или ctr+6 (меню пунктов документа).
2. Дайте названия меткам и установите их порядок.
Ниже приведены основные метки для разбиения кода на логически связанные блоки и их последовательность: При использовании этого метода группировки вы сможете легко ориентироваться в коде любого класса.
3. Выносим логику из методов жизненного цикла в отдельные методы
Логику внутри методов жизненного цикла ViewController следует вынести в отдельные методы, даже если вам нужно создать метод с одной строкой кода.Сегодня один, а завтра десять.
За счет того, что детали реализации передаются сторонним методам, логика жизненного цикла становится более понятной.
4. Используйте расширение для реализации протоколов
Поместите реализацию протоколов в расширение с отметкой // МАРК: - SomeProtocol : В этой метке будет все, что связано с этим протоколом — все, что есть только здесь и больше никуда идти не нужно, иначе методы и свойства протокола будут разбросаны по всему классу.
5. Выбирайте логически связанные элементы
Для повышения наглядности нужно выделить логически связанные элементы пустой строкой:6. Удалите неиспользуемые элементы
Не оставляйте ненужные комментарии (по умолчанию), пустые методы или мертвый функционал — это засоряет код. Обратите внимание на класс AppDelegate, скорее всего вы найдете там пустые методы с комментариями внутри.
7. Автоматизируйте рутину
Чтобы не писать вручную в каждом классе // МАРК: - SomeMark , использовать Фрагмент кода .
Пишем метку, выделяем ее, далее Editor -> Create Code Snippet, даем ей имя и вызываем по ярлыку.
// ОТМЕТКА: - Бонус
- Пометить класс ключевым словом финальный если у этого класса нет потомков, проект компилируется быстрее и код выполняется быстрее.
- Помечайте свойства, выходы и методы ключевым словом частный — они будут доступны только внутри класса и не будут в публичном списке свойств и методов, если они там не нужны.
-
Опыт Внедрения Tarantool В Сервисе Calltouch
19 Dec, 24 -
[email protected] Теперь С Видео
19 Dec, 24 -
Простой Брандмауэр С Использованием Puppet
19 Dec, 24 -
Freemium Или Free-To-Play: Есть Ли Разница?
19 Dec, 24 -
Падение Крупнейшей Биткойн-Биржи
19 Dec, 24