Connect with us

Программирование

Просим ИИ сделать рефакторинг Swift кода

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

Опубликовано

/

     
     

В последнее время я добавляю в Elite Hoops исправления, связанные с “качеством жизни” платформы. Среди них —  быстрые действия на главном экране (Home Screen Quick Actions).

Прошла некоторое время с тех пор, как я создавал динамические действия, так что я забыл, сколько кода может быть задействовано. Я хотел динамическое быстрое действие для каждой недавно просмотренной команды в Elite Hoops. Но это также означает, что…

  • Мне нужно добавить действие в UIApplication.shared.shortcutItems при открытии одной из них.
  • И обновлять его, когда название команды может быть изменено.
  • И удалять его, когда она была удалена.
  • И написать действие таким образом, чтобы, когда я добавлю облачную синхронизацию, оно не отставало от любых изменений на сервере.

В общем, одна из тех сложных и легких задач.

Вот функция, которую я написал изначально:

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

Промпт:

chatGPT 4

Во-первых, институциональный выбор. chatGPT от OpenAI использует chatGPT 4:

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

meta.ai

Новичок на рынке, олицетворяющий подход «если это бесплатно, то вы и есть продукт» — новоиспеченный meta.ai от Meta*. Вот как он рефакторит мой код:

Что мне нравится, так это то, насколько проще его читать. Несмотря на то, что я чаще всего пишу код, похожий на chatGPT 4, я думаю, что смогу легче прочитать то, что написал ИИ от Мета.

Claude от Anthropic

Наконец, есть Claude. Я считаю его последним из «большой тройки», по крайней мере, в моей сфере дейтельности. Должен заметить, что это не лучшая модель Anthropic — это Claude 3 Opus — но в любом случае вот что у меня получилось:

Неплохо, что, как и chatGPT 4, модель склонна подробно объяснять, что именно она изменила и почему она это сделала. И, как и в Meta, решение по-прежнему находится в рамках одной функции, но значительно упрощено.

Заключительные мысли

Я не выношу никакого вердикта в этом посте, кроме как… интересно посмотреть, как большие языковые модели рассуждают о коде. Например, все три модели быстро указали на ранний оператор guard. И каждая из них склонна опираться на особенности языка, такие как функциональные аспекты Swift. Как и должно быть, я полагаю.

Так к чему я пришел?

Я просто оставил свою оригинальную, уродливую функцию и написал этот пост 😇.

До следующего раза ✌️.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: