Codeium
Автокомплит
Codeium - это AI помощник, аналогичный Copilot, его бесплатная альтернатива. У него есть расширение для VS Code и других IDE.
В прошлой главе useFavourites
был на 80% написан им с помощью автокомплита. Ты начинаешь писать название функции, он генерит её тело на основании контекста, ты клавишей Tab
принимаешь его решение, либо выбираешь другое из предложенных с помощью комбинаций клавиш Alt + ]
и Alt + [
(⌥ + ]
и ⌥ + [
):
Для подобных довольно простых по логике модулей и компонент Codeium генерит код достаточно точно. Удобно пользоваться.
Чтобы поточнее подсказать Codeium, что тебе надо, можно сперва написать комментарий о функции, которую надо сгенерить, и затем на следующей строке использовать автокомплит.
Чат-бот
Чат-бот для промптов есть в отдельной Codeium панели
Explain, Refactor, JSDoc
Над каждой функцией Codeium позволяет совершать определенные действия:
Например, Refactor -> Make this code strongly typed
с небольшими правками дает следующее на listFavourites()
:
/**
* Returns a list of favorite products.
*
* @returns {Array<number>} - The list of favorite product IDs.
*/
function listFavourites(): Array<number> {
return Array.from(favourites.value);
}
Добавились типы и сгенерился JSDoc, который можно получить используя только команду Generate JSDoc
.
Теперь если в месте использования функции мы наведем курсор на неё, получим полное описание:
Explain
даёт текстовое объяснение функции:
This code defines a function called listFavourites that returns a list of favorite product IDs. The function uses the Array.from method to convert the favourites.value array-like object into a proper array. The function has a return type annotation of Array<number>, indicating that it returns an array of numbers.
Explain problem
При подчеркивании ошибки ESlint-ом Codeium часто предлагает опцию Explain problem
, в которой будет не только объяснение ошибки, но и генерация "правильного" кода. С ошибками TypeScript работает очень неплохо.
Вывод
Codeium - не панацея, если не умеешь программировать, но экономит много времени, если что-то умеешь.