Skip to content
This repository was archived by the owner on Apr 16, 2023. It is now read-only.

Arlet2/calcobot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calcobot

Это PET-проект на Go. В рамках него я сделал калькулятор, который преобразует ввод пользователя в обратную польскую запись и вычисляет его. Ввод на калькулятор осуществляется через телеграмм бота, каждый корректный запрос пользователя записывается в базу данных. Также есть возможность по HTTP-запросу получить данные из базы данных.

Бот расположен здесь: https://t.me/calcoalcobot

Он принимает операции: +, -, *, /, ^ (возведение в степень), ~ (унарный минус), ! (факториал).

В качестве БД я использовал Postgresql. Для Telegram API я использовал эту библиотеку github.com/go-telegram-bot-api/telegram-bot-api/v5.

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

Пример взятия данных из БД с http сервера image

Можно попробовать сделать самому: http://arlet.space:9900/calcobot?username=shulga02

Во время разработки столкнулся со следующими проблемами:

  1. Обработка ошибок. Непривычно было обрабатывать ошибки без try-catch, а в C-стиле. В Go это реализовано более удобно чем в C благодаря нескольким возвращаемым значениям. Но я считаю, что я не до конца разобрался в этом вопросе, и буду в будущем по другому обрабатывать ошибки.
  2. Реализация нескольких стеков. Так как в Go нет дженериков, то пришлось реализовать два стека с +/- похожими операциями. Пока не нашёл адекватного решения для этого, возможно с написанием большого числа программ, найду решения.
  3. Ещё было непривычно работать с внедрением структур/интерфейсов и сокрытием этого внедрения. Но в итоге после изучения, как делают другие разработчики на Go (репозиторий Docker на github), я разобрался и спокойно применяю внедрение.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published