«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Инструмент командной строки для создания документов Infusion

Инструмент командной строки для создания документов Infusion

Опубликовано 8 ноября 2024 г.
Просматривать:842

Infusion docs generation cli tool

Infusion — это инструмент с открытым исходным кодом, который используется для создания документации в ваших файлах кода. Для написания комментариев он использует модель OpenAI gpt-4. Это был мой проект, и я написал его на Python.

Ссылка на GitHub:
https://github.com/SychAndrii/infusion

explainer.js — это инструмент с открытым исходным кодом, который используется для объяснения фрагментов кода в ваших файлах кода. Для написания комментариев он использует модели Groq. Это был проект моего товарища по команде @aamfahim, и он написал его на Node.JS

Ссылка на GitHub:
https://github.com/aamfahim/explainer.js

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

Способ связи

Большинство проблем, созданных для обоих репозиториев, были решены с использованием синхронной связи через вызов Discord. После этого мы общались асинхронно, используя сообщения Discord, так как у меня была сложная проблема с оптимизацией настройки моего проекта с помощью bash-скриптов, и звонить товарищу по команде каждый раз, когда мне нужно было проверить, работает ли это на его машине, казалось ненужным. Тестирование с использованием контейнеров Docker и подсистемы WSL Linux на моей машине отличалось от тестирования их в системе Ала и выявило важные ошибки.

Опыт ревью чужого кода

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

Опыт кого-то, проверяющего мой код

Ал предложил много возможностей для улучшения, особенно в отношении установки моего инструмента CLI. Когда он впервые развил мой репозиторий, конечным пользователям требовалось вручную установить определенную версию Python, что определенно является разочаровывающей задачей. Кроме того, он выделил другие возможные улучшения для удобного использования инструмента, например введение файла .env, чтобы вам не приходилось вводить ключ API каждый раз при запуске инструмента. Мне нравится получать информацию о моем коде от других людей, потому что это позволяет мне расти как разработчику и определенно расширяет мое представление о жизненном цикле разработки.

Проблемы во время проверки и тестирования

Большинство проблем, с которыми мы столкнулись, были связаны с моим инструментом, поскольку программа CLI Эла была написана на Node.JS, и мы оба имеем большой опыт работы с ней. Напротив, нам обоим не нравится экосистема Python, поэтому у нас было много проблем при взаимодействии с ней. Тестируя репозиторий Ала, я обнаружил, что документы, написанные в его README, вводят в заблуждение или сбивают с толку понимание, особенно параметры модели и API-ключа. Нам пришлось пройти процесс проб и ошибок, чтобы выяснить, какие ключи и модели API принимаются его инструментом. Когда дело дошло до тестирования моего репозитория, версия Python в системе Ала была очень устаревшей (2.7), поэтому ему пришлось вручную установить 3.10.6 (версию, необходимую для использования моего инструмента). Однако даже на этом проблемы не закончились. Несмотря на то, что он установил его, он все еще не распознавался виртуальной средой, которую мой инструмент создает с помощью Pipenv. После этого у нас также возникло разочарование по поводу ввода ключа API, необходимого для использования моего инструмента, каждый раз, когда мы его запускали. Наконец, документы README не помогли с установкой. Мы пытались следовать им, но продолжали получать ошибки, связанные с тем, что некоторые скрипты не распознавались в PATH. Именно тогда я решил, что нам нужен какой-то инструмент автоматизации, который выполнит всю установку за вас. У меня была одна мысль — докеризовать приложение, но тогда мне потребовалось бы каким-то образом сопоставить тома Docker с выходным каталогом и входными файлами, указанными для моего инструмента, а это усложнило бы все в два раза. Таким образом, я вспомнил, что многие менеджеры пакетов на самом деле являются инструментами командной строки, и если вы устанавливаете их путем клонирования репозитория GitHub, вам нужно настроить их, выполнив какой-то сценарий установки bash. Вот эту идею я и решил реализовать. Наконец, мы оба не могли придумать, как присвоить зарегистрированным проблемам такие ярлыки, как «ошибка» или «улучшение».

Проблемы, которые я подал

https://github.com/aamfahim/explainer.js/issues/13
https://github.com/aamfahim/explainer.js/issues/12
https://github.com/aamfahim/explainer.js/issues/11
https://github.com/aamfahim/explainer.js/issues/10
https://github.com/aamfahim/explainer.js/issues/9

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

Проблемы, которые были зарегистрированы в моем репозитории

https://github.com/SychAndrii/infusion/issues/11
https://github.com/SychAndrii/infusion/issues/10
https://github.com/SychAndrii/infusion/issues/9
https://github.com/SychAndrii/infusion/issues/8

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

Проблемы, которые мне удалось исправить

Я исправил все свои проблемы. На исправление всех них ушло менее 30 минут, но была одна проблема, на исправление которой у меня ушло около 2-3 часов:
https://github.com/SychAndrii/infusion/issues/8

Это может показаться странным, поскольку улучшение файла README должно быть легко достижимо, но первое предложение Ала потребовало от меня полностью переделать процесс установки моего инструмента, что потребовало от меня введения двух сценариев для установки - одного для bash и один для Powershell. Проблема, которую я не мог решить большую часть времени, заключалась в том, что хотя эти сценарии установки правильно устанавливали необходимую версию Python, эта версия Python не передавалась в виртуальную среду, в которую вам необходимо войти перед использованием моего инструмента. В конце концов я это исправил.

Что я узнал

Я определенно улучшил свои навыки чтения README. То, как я привел пример использования, очень сбивало с толку конечного пользователя. Кроме того, я наконец-то использовал языки bash и powershell, чтобы сделать что-то сам, не для школьного задания, не потому, что это было требованием, а потому, что я хотел упростить процесс взаимодействия с моим инструментом. Наконец, я решил встретиться с языком, который совершенно терпеть не могу, — Python. Работать с ним мне определенно не доставляло удовольствия, но я думаю, что иметь возможность использовать его очень важно, если вы хотите найти работу сегодня, особенно с учетом тенденций в области искусственного интеллекта.

Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/shy_andrii/infusion-docs-generation-cli-tool-ipg?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3