Как выровнять код в xcode
Перейти к содержимому

Как выровнять код в xcode

  • автор:

5 ловких приемов Xcode для рефакторинга кода

Более 60% своего рабочего времени программисты занимаются рефакторингом кода. В связи с этим каждый уважающий себя специалист должен научиться делать это профессионально. Ведь качественно выполненный рефакторинг таит в себе столько преимуществ:

  • изначально создается более чистый и безопасный код;
  • появляется возможность упрощения базы кода;
  • улучшается ее тестируемость;
  • эффективнее проводятся ревью кода, поскольку известен предмет поиска.

В рамках этой статьи я поделюсь рядом приемов рефакторинга кода с помощью Xcode.

1. Переименование из контекстного меню

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

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

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

Этот способ подходит не только для переменных! Он также приемлем для рефакторинга types , enum и имен function . Примечательно, что в случае с функциями можно переименовывать имена и метки параметров.

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

2. Генерация почленного инициализатора

При работе с модулями, SDK и библиотеками мы не можем всецело полагаться на автоматический синтез инициализаторов. В большинстве случаев приходится создавать публичные инициализаторы и обрекать себя на рутину по копированию и вставке всех свойств struct . К счастью, Xcode располагает полезной функциональностью для автоматической генерации почленных инициализаторов (memberwise initializer).

Для ее применения нажимаем правой кнопкой мыши на тип, требующий init , затем выбираем Refactor и Generate Memberwise Initializer .

Xcode создает инициализатор прямо под объявлением типа с ключевым словом internal . Можно изменить ключевое слово на public (или на нужное значение), а затем вырезать и вставлять где угодно.

3. Расширение случаев Switch

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

Здесь мы можем немного посодействовать и открыто проинструктировать IDE заполнить все недостающие случаи. Для активации этой функциональности сначала пишем синтаксис для инструкции switch . Далее нажимаем правой кнопкой мыши на switch , выбираем Refactor и в самом конце списка элементов находим Expand Switch Cases .

4. Многострочное редактирование

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

К типичным примерам относятся view.addSubview в UIView или установка свойства translatesAutoresizingMaskIntoConstraints в значение false для группы элементов.

Конечно, можно прибегнуть к вспомогательным средствам или Mirror API для автоматического выполнения данной процедуры. Однако зачастую проще и вполне приемлемо воспользоваться многострочным редактированием для быстрого ввода подобных строк.

Существуют два способа активации данной функциональности:

  1. Удерживая control+shift ( ⌃+⇧ ) и нажимая стрелку вверх или вниз.
  2. Выбрав несколько строк кода и последовательно нажимая на Editor , Selection и Split Selection By Lines .

Как только мы это сделали, можно приступать к вводу символов, которые будут добавляться в каждую строку с курсором.

5. Быстрый поиск всех мест вызова функции

Хоть этот прием и не относится к рефакторингу, но я просто не могу о нем не упомянуть. При работе с большими базами кода может понадобиться информация обо всех местах, где применяется функция или переменная.

Xcode содействует в проведении такого поиска, задействуя команду Find , расположенную под Refactor в контекстном меню. Например, выделяем объявление функции, выбираем Find и затем Find Call Hierarchy для обнаружения всех участков кода, где вызывается функция.

Полученная в результате поиска иерархия вызовов позволяет увидеть не только все места использования искомого метода. Мы также можем пойти дальше, проверяя все методы второго уровня, которые задействуют метод, вызывающий искомый.

Таким образом создается своего рода статическая трассировка стека возможного вызова. Этот полезный инструмент позволяет:

  1. понять принцип работы базы кода;
  2. отследить ошибки или странное поведение, наблюдаемые в приложении.

Заключение

В данной статье были рассмотрены несколько способов ускоренного рефакторинга кода с помощью Xcode. Мы узнали, как:

  • за один раз изменить имя множества элементов;
  • автоматически создать почленный инициализатор;
  • проинструктировать Xcode расширить все случаи switch ;
  • отредактировать сразу несколько строк;
  • найти все участки кода, где применяется элемент.

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

Кроме того, такие знания говорят о стремлении лучше изучить среду разработки, что может впечатлить коллег по работе или даже интервьюеров, проверяющих ваши навыки программирования.

  • 4 принципа качественного рефакторинга функций
  • ТОП-10 признаков плохого кода: хардкод и спагетти-код в примерах на JavaScript
  • Что я понял за год работы программистом в стартапе

Как выровнять код в xcode

Различные полезности xCode для начинающих. То, что облегчает жизнь разработчику и уменьшает трудоемкость. Простые мелочи, описание которых не требует отдельной статьи.

Чистый код в xCode

Конечно, после использования много раз это запомнится, и шпаргалка будет не нужна, но даже в этом случае она может пригодиться другим.

1. Автоматическое выравнивание кода

Выделить нужные строки кода или выделить все сразу (нажатием +A), затем нажать Control+I или через меню программы: Editor -> Structure -> Re-Indent:

Чистый код в xCode - Автоматическое выравнивание кода

2. Как открыть окно с архивами сборок приложения

Чтобы не делать сборку заново, а сразу открыть окно Органайзера выбрать через меню xCode: Window -> Organizer

(периодически забываю, где это искать в меню xCode, пусть будет шпаргалка)

Чистый код в xCode - Автоматическое выравнивание кода

Комментарии ( 0 )

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.

Интересные статьи:

Изменение БД для GPS Garmin с цикла AIRAC 1708

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

Про НОТАМы

НОТАМы (NOTAM = NOTice for Air Men) — это существенные изменения в аэронавигационной обстановке. Международные НОТАМы распространяются из мест их издания по всему миру. Некоторые страны издают также региональные (внутренние) НОТАМы, которые доступны обычно только для эксплуатантов своей страны. НОТАМы дополняют сборники аэронавигационной информации и обеспечивают актуализацию аэронавигационной информации через.

Как отформатировать флэшку в NTFS?

Считается, что файловая система NTFS надежнее, чем FAT32 и FAT16. Но не смотря на это все флэшки по умолчанию имеют файловую систему FAT16 (Windows отображает как просто FAT). Большинство пользователей это никак не напрягает и многие из них даже не задумываются об изменении файловой системы своей любимой флэшки. Но в последнее время из-за развития технологии и бесповоротного удешевления.

Каналы и частоты TACAN, VOR, LOCALIZER

На всех российских самолетах и на иностранных гражданских воздушных судах по умолчанию нет оборудования TACAN. При заходе на посадку по схеме, например, VOR/TAC или еще хуже — просто TACAN от этого такана бортовое оборудование может получать только информацию по дальности (и то не повсем используемым каналам и частотам), курсового наведения не будет. TACAN (tactical air navigation system) -.

Как изменить размер шрифта в iPad?

Если у Вас слабое зрение, но, тем не менее, вы хотите пользоваться планшетом iPad, специально для вас Apple предусмотрел возможность увеличения размера шрифта в Ipad. Но имеются некоторые ограничения: изменение размера шрифта возможно только для сообщений электронной почты, записей календаря и для списка контактов. В остальных приложениях, как от Apple, так и от сторонних разработчиков ПО шрифт не.

Обновление навигационных баз данных навигатора Garmin GPS Map 495

Навигаторы Garmin считаются одними из лучших, причем, не важно, какие это навигаторы: туристические, автомобильные, морские или авиационные — профессионалы предпочитают приборы Garmin (очень похоже на рекламу, но факт остается фактом). В зависимости от типа навигатора и частоты его использования необходимо поддерживать в актуальном состоянии его базы данных. Например, если туристический.

Огни статуса ВПП — Runway Status Lights

20 октября 2014 года в аэропорту Москва Внуково произошла авиакатастрофа с самолетом Falcon 50EX французской авиакомпании UniJet (регистрационный номер F-GLSA). При выполнении взлета ночью в сложных метеоусловиях воздушное судно столкнулось со снегоочистителем, совершившим несанкционированный выезд на ВПП. Конечно же было проведено тщательное расследование данного происшествия, были определены все причины -.

Горячие клавиши (шорткаты) для Xcode

Сборка проекта со сбросом кэша (Command + Shift + B)

Xcode. Сборка проекта со сбросом кэша

Command + Shift + B

Процедура получается достаточно затратной по времени, учтите перед использованием.

Создание нового файла (Command + N)

Xcode. Создание нового файла

Command + N

Xcode. Создание нового файла

Открыть файл проекта (Command + Shift + O)

Xcode. Открыть файл

Command + Shift + O .

Xcode. Открыть файл проекта Xcode. Открыть файл проекта

Открыть / скрыть область навигатора (Command + 0)

Xcode. Открыть / скрыть область навигатора

Command + 0

Xcode. Закрыть / открыть

(на конце цифра ноль). Открыть / закрыть, быстро и удобно.

Навигация по навигатору

Xcode. Навигация в навигаторе

В области навигатора присутствует 9 вкладок. Каждая из вкладок достаточно маленькая и прицеливаться курсором – больно.

Навигация по проекту (Command + 1)

Xcode. Навигация по проекту

Три способа сделать ваш код Swift более читабельным

Важность читабельности кода часто недооценивают, особенно при программировании в среде, которая подчеркивает пользовательский интерфейс и пользовательский опыт. Хотя действительно важно создавать отличные приложения, не менее важно иметь возможность изменить их в будущем. С нечитаемым кодом может быть намного труднее решать ошибки, с бесчисленными часами попыток найти правильные строки кода и понять, как он работает.

Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям. — Мартин Фаулер

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

1. Используйте комментарии

Это может показаться очевидным способом сделать код более читабельным, но его часто упускают из виду. Если вы пишете код Swift, вполне вероятно, что вы используете XCode в качестве компилятора, и удобно, оказывается, что XCode обладает множеством функций, которые помогают сделать ваш код более читабельным.

Однострочные комментарии

Наиболее широко используемый тип комментариев — это однострочный комментарий. Многие из нас используют две косые черты перед строкой, чтобы компилятор игнорировал их, но не забывайте, насколько это полезно для документирования вашего кода!

Вот как сделать традиционный однострочный комментарий:

// calculate the average grade
let average = (gradeA + gradeB + gradeC) / 3.0

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

// sum the grades and divide by 3

Быстрый комментарий

Возможно, вы использовали Command-Click для получения дополнительной информации о конкретной переменной, классе или методе, но знаете ли вы, что можете добавить такую информацию в свой собственный код? Для этого используйте специальный синтаксис однострочного комментария следующим образом: три слеша, затем пробел и тире. Затем добавьте имя атрибута (например, «параметр») и, наконец, введите слово, а затем его определение.

Вот пример синтаксиса комментариев быстрой справки:

/// - parameter foobar: definition of foo
func foobar() 

Когда вы нажмете Command-Click на функции foobar , где бы она ни использовалась, вы увидите ее определение под parameters.

Блок комментариев

Менее широко используемый тип комментария - блочный комментарий. Эти комментарии обычно используются для размещения лицензионной информации и информации об авторских правах в верхней части файла, но их также можно использовать, если вам нужно написать несколько строк, объясняющих ваш код (хотя это хорошее практическое правило, если вам нужно столько слов, чтобы объясните свой код, он, вероятно, недостаточно читабелен).

Чтобы сделать комментарий к блоку, начните с косой черты, звездочки, а затем своего кода. Когда вы будете готовы закончить комментарий, вы можете просто поставить звездочку, а затем еще одну косую черту.

Copyright (c) 2018, Vardhan Agrawal
All rights reserved.

Блок комментариев для быстрой справочной документации

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

Вот как вы могли бы документировать некоторый код:

This function returns a list of randomness.
**Parameters:**
- foo: a bit of randomness.
- bar: a bunch more randomness.

Начните добавлять хорошие комментарии к своему коду, и вы будете на шаг ближе к написанию читаемого кода.

2. Наименование на основе роли

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

В Swift лучше называть вещи в зависимости от роли, которую объект играет в коде. Например, вместо того, чтобы просто использовать имя apple для переменной типа Apple , если яблоко служит пищей для животного, его можно назвать food .

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

Переменные и константы

Имена . свойств, переменных и констант должны читаться как существительные. - Apple

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

  • var scoreCounter для переменной состояния игры SpriteKit.
  • let sharedInstance для синглтона.

Булеаны

Использование булевых методов и свойств следует читать как утверждения о получателе. - Apple

Говоря, что логические значения «должны быть утверждениями о получателе», мы просто подразумеваем, что они должны быть декларациями да или нет. Давайте посмотрим на несколько примеров:

  • var isEmpty для массива.
  • let touchesEdge для игрового спрайта.

Протоколы

Протоколы, описывающие что-то, должны читаться как существительные. - Apple

Если вы используете протоколы для создания типа «шаблон», вам следует использовать то же наименование, которое вы использовали бы для переменных и констант. Это также имеет смысл, потому что вы называете тип методов, классов и т.д. Вот несколько примеров:

  • protocol Fruits для разных классов фруктов
  • protocol Collections для массов, списков и тд.

Протоколы, описывающие возможности, должны быть названы с использованием суффиксов: able, Ible или ing. - Яблоко

Если ваши протоколы определяют, что тип может делать, он должен быть назван с суффиксами выше. Это следует читать так, как будто протокол «способен» что-то делать. Вот еще один список примеров:

  • protocol Returnable для типов, которые могут быть возвращены.
  • protocol ProgressReporting для типов, которые могут быть показать прогресс.

Будь проще!

В дополнение к этим соглашениям об именах Apple также рекомендует вам избегать того, что они называют «художественными терминами», или, другими словами, терминами, которые не могут быть легко понятны. Они не говорят избегать их полностью, но не используют их, когда вместо этого будет достаточно базового слова.

3. Используйте шаблоны проектирования

В приложениях разработчики используют шаблоны проектирования для структурирования своего кода таким образом, чтобы его можно было изменить, а также сделать более читабельным. Давайте обсудим несколько шаблонов дизайна, которые вы можете использовать в своем следующем приложении для iOS.

Как бы это ни звучало клише, это действительно основа того, как вы программируете свое приложение. Допустим, вы строите дом, дом своей мечты. Этот дом высотой в пять этажей, поэтому, если вы не построите прочный фундамент и не будете следовать чертежам, он, вероятно, просто рухнет. Основой приложения для iOS является шаблон дизайна или шаблоны, которые вы выбираете. Давайте рассмотрим два наиболее часто используемых шаблона.

MVC (модель-вид-контроллер)

Шаблон проектирования Model-View-Controller или MVC является отраслевым стандартом. Он разделяет каждую часть вашего кода на три части: модель, представление и контроллер.

  • Модель. Модель - это данные приложения. Это обрабатывает такие вещи, как повторно используемые структуры и классы, которые имеют дело только с данными приложения. Модель не обрабатывает ничего, касающегося представления или того, как информация будет показана пользователю.
  • Представление: представление отвечает только за визуальное представление данных, а также за взаимодействие с пользователем. Оно ничего не обрабатывает в отношении данных и не имеет отношения к конкретным представлениям. Это просто класс многократного использования, который можно использовать несколько раз без повторения кода.
  • Контроллер: Контролер является самым главным. Он приносит данные из модели, а затем отправляет их в представление, чтобы, наконец, отобразить их пользователю. Обычно это файл ViewController.swift, который прослушивает ввод и изменяет модель по мере необходимости.

Есть много вариантов этого, таких как MVVM и MVP. На них стоит почитать, но принцип похож на MVC. Чтобы узнать больше о MVC и MVVM, посмотрите эти статьи Барта Джейкобса здесь на Envato Tuts +.

Почему MVC не может быть лучшим шаблоном для приложений Cocoa

Model-View-Controller (MVC) - это широко распространенный шаблон разработки программного обеспечения. Узнайте, что такое MVC и почему он не может быть лучшим решением для разработчиков какао.

Bart JacobsBart JacobsBart Jacobs

Барт Джейкобс 28 августа 2017

Отправьте свои контроллеры представления на диету с MVVM

Узнайте об альтернативе шаблону MVC: Model-View-ViewModel. Я покажу вам, как MVVM может устранить некоторые недостатки Model-View-Controller.

Bart JacobsBart JacobsBart Jacobs

Барт Джейкобс 08 сентября 2017

Какой бы вариант вы ни выбрали, все они называются шаблонами проектирования и делают наш код более модульным. Давайте рассмотрим другой шаблон дизайна, который может дополнить шаблон приложения, который вы выберете для использования.

Одиночки

Singleton - это единственный экземпляр класса, который постоянно присутствует в памяти. Итак, почему мы заботимся об этом? Ну, скажем, вы создаете приложение, которое подключается к базе данных. Вам нужно место, чтобы поставить все ваши соединения службы передачи данных. Это было бы идеальным местом для использования синглетонов.

Посмотрите на код ниже - он покажет вам, как создать синглтон:

// Declaration 
class DataService  

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *