Как увеличить скорость написания кода: ИИ, генерация кода и плагины

Как увеличить скорость написания кода: ИИ, генерация кода и плагины

10:45, 29.05.2023

Содержание статьи
arrow

  • Генерация кода
  • Java Annotation Processing (APT)
  • Gradle Plugin
  • Плагины компилятора Kotlin
  • IDE
  • Сode completion 
  • Live Templates
  • Плагины
  • Шаблоны Android Studio
  • Geminio от HH
  • Сode completion посредством ИИ
  • Заключение

Генерация кода

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

Java Annotation Processing (APT)

Известным методом генерации кода является Java Annotation Processing (APT), который широко используется в таких библиотеках, как Dagger, Hilt и Room. Тем не менее, у APT есть определенные недостатки, такие как увеличение времени сборки и ограничения на модификацию существующих классов Java.

Чтобы APT работал в проектах на языке Kotlin, используется KAPT (Kotlin Annotation Processing Tool), генерирующий Java-стабы, которые затем обрабатываются процессором аннотаций. Хотя APT позволяет избежать использования рефлексий и может быть оптимизирована, она вносит дополнительную сложность и влияет на время сборки.

Kotlin Symbol Processing (KSP) – это альтернатива APT, специально разработанная для кода Kotlin. Она устраняет необходимость в дополнительных шагах, таких как KAPT, и обещает более быструю генерацию кода по сравнению с APT. KSP построен поверх плагинов компилятора Kotlin, что обеспечивает потенциальную оптимизацию в будущих версиях.

Gradle Plugin

Помимо создания проектов, Gradle можно использовать для включения функций генерации кода. Различные плагины, такие как ViewBinding, DataBinding, Apollo GraphQL, protobuf и SQLDelight, могут помочь в генерации кода из источников, отличных от Kotlin/Java, таких как XML-ресурсы Android или SQL-запросы.

Плагины компилятора Kotlin

Плагины компилятора Kotlin предлагают уникальные возможности для генерации кода. Примерами плагинов являются Kotlin Serialization, KSP и Jetpack Compose. Эти плагины позволяют реализовать дополнительные возможности и модификации кода, выходящие за рамки того, что указано в исходном коде.

IDE

Интегрированная среда разработки (IDE) является одним из ведущих инструментов для ускорения написания кода. Android Studio или IDEA, основные IDE для разработки Android, предлагают также множество встроенных функций. Кроме того, функциональность IDE может быть расширена за счет использования плагинов.

Сode completion 

Сode completion , предоставляемое IDE, значительно повышает скорость написания кода. Оно избавляет от необходимости запоминать имена конкретных классов или искать документацию. Автозаполнение предлагает подходящие классы или методы на основе контекста, делая кодирование более быстрым и эффективным.

Live Templates

IDE, такие как IDEA и Android Studio, предлагают функцию под названием Live Templates. Эти шаблоны позволяют разработчикам использовать сокращения или ярлыки для быстрой генерации часто используемых конструкций кода. Пользовательские живые шаблоны могут быть созданы на основе существующих или с нуля, что позволяет экономить время на написание повторяющегося кода.

Плагины

IDE могут быть расширены за счет плагинов, которые предоставляют дополнительные возможности генерации и модификации кода. Однако разработка и поддержка подключаемых модулей может быть сложной задачей, требующей совместимости с несколькими версиями API. Написание плагинов для IDEA облегчается обращением к исходному коду IDEA Community Edition.

Шаблоны Android Studio

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

Geminio от HH

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

Сode completion посредством ИИ

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

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

Одним из подобных решений является GitHub Copilot – ИИ-компаньон для работы с кодом, обученный на проектах GitHub. Хотя поддержка Kotlin не является официальной, она все равно работает достойно. Однако код, на котором он обучается, также может содержать ошибки, что лишает нас гарантии релевантных результатов. Кроме того, он требует подключения к Интернету и отправляет ваш код на сервер, что вызывает опасения по поводу конфиденциальности.

TabNine – еще одно достойное упоминания решение. Хотя оно работает только онлайн, его можно захостить у себя (self-host), что позволит вам обучать модель на собственной кодовой базе. Это привлекает компании, уделяющие особое внимание целостности и безопасности данных.

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

Заключение

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

.



views 30s
views 2
Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.