ADT
ADT личный блог
24 октября 2025, 15:01

Первые сдвиги в Go + SQL

В общем долго я маялся, мучился, ленился и, таки себя пересилив, в конечном счете сел за программирование. Кое-как, со скрипом, но сел. Начал буквально через силу: думаю «блин, мне под сраку лет уже, а я пишу какие-то задачки для 5 класса, какого...?». Но это гонор, я засунул его в Ж. и стал тупо брать и делать. Цель есть и надо идти вперед.

Сначала по видео учился, благо недавно у Нильчанпаба вышел четкий курс по Go в 2 частях, большой объемный, хорошо рассказанный с кодом и большой аргументацией. На ютубе лежит, кому надо — найдёте. В принципе вот именно он меня и сдвинул с мертвой точки. Хорошо парень рассказывает, стал его подробно проходить, с тетрадкой, записывая все важное (а там — всё важное!). 2х13 часов видео курс по основам (недели 3-4 заняло по 5-6 часов в день).

Потом стал пробовать писать код, написал всяких простеньких залипух порядка 1.5 сотен. Теперь полностью (почти полностью) понимаю код и пробую писать бота по своей ТС, благо я эту систему сам придумал и знаю ее всю досконально. Все подводные камни помню и предвижу после работы с наемными программистами ранее. ИИ помогает с ошибками и интерфейсом, книгу уже использую как справочник (ага использую, это громко сказано), в общем первые сдвиги есть. А все очень непросто, но интересно. Однако, приятно понимать, что уже что-то можешь. Ладно, как я там говорил, дорогу осилит идущий? Вот-вот.

Тружусь, надеюсь за год приду к простенькой базовой реализации (хотя хрен его знает, там впереди столько всего, а я еще SQL задумал, но по SQL опыт у меня хороший по работе). А БТ пусть пока питоновский остаётся. Он исправен и буду из него сетапы брать. 

Такие дела. Впереди долгий путь, но мне уже не привыкать :) Хвастовство в картинках приложил :) 

Первые сдвиги в Go + SQL

Первые сдвиги в Go + SQL

Первые сдвиги в Go + SQL

30 Комментариев
  • Alexs
    24 октября 2025, 15:11
    Go ужасный язык, неудобный, многословный и весьма ограниченный. Хорош только для задач с многопоточностью. 

    Почему такой выбор?
  • Alexs
    24 октября 2025, 15:08
    И как язык программирования можно выучить по видео, это тоже великая загадка. Ну купите книжку то на озоне, епрст. Все равно читать писать придётся раз уж взялись за это дело ) 
  • myaucha
    24 октября 2025, 15:36
    Go-Go! Happy hour! Или вы не об этом?!
  • Михаил Михалёв
    24 октября 2025, 15:51
    Зачем Go? Почему не Python?
      • Михаил Михалёв
        25 октября 2025, 08:59
        ADT, Сам питон может и тормоз (есть пути значительно ускорить), но у него куча библиотек, которые написаны на плюсах. Те же pandas/numpy, ведь наверняка почти все Ваши алгоритмы сводятся к использованию массивов данных и операций над ними. Да и tensorflow keras проще использовать, а он тоже внутри написан на плюсах и может использовать gpu. Плюс многопроцессорность, корутины. Не спорю, просто пытаюсь понять выбор:)
      • Михаил
        25 октября 2025, 11:05
        ADT, там есть правильный комментарий — Статья то про выбор языка для компании.

        Go — хороший язык для написание продуктового кода с использованием микросервисов в большой компании
        Если это маленькая компания или один человек или не классический продуктовый код про перекладывание json-ов — очень спорное решение
        Если много математики и статистики — в Go c этим очень плохо, так как нет нормальных библиотек
        Если нужна очень большая скорость, то тоже есть варианты получше

        ИМХО если скорость не важна (не надо укладываться в микросекунды и с сервером на колокейшене), но много математики (стат тесты, ML/DL), то лучше Python
        Если чего-то очень быстрое, то Rust или С и сервер на колокейшене

        Чего у вас на Python тормозит дистанционно сложно понять — при правильной реализации, все тормозное выполняется в библиотеках вроде numpy или pytorch со скоростью недостижимой на Go, а для io операций есть asyncio
          • Михаил
            25 октября 2025, 19:31
            ADT, мне просто кажется вы видите проблему, там где ее реально нет, а реальную проблему не видите. Вы можете пояснить, чего за агрегация свечей, которую вам нужно все время делать и как быстро эти свечи появляются?
              • Михаил
                25 октября 2025, 21:05
                ADT, 
                > вы посмотрите внимательно на картинку с командной строкой и командами SQL, там видно какие свечи собираются

                Я видел картинки с часовыми и более редкими свечками, видел ваши рассказы про пинг до сервера под 100 мс в предыдущем посте и большие конфиги (не понимаю, как это вообще может влиять), 50 сетапов — это кажется крайне несущественной нагрузкой. Поэтому у меня большое подозрение, что вы не очень понимаете в чем реальная причина торможения, и что совершаете какие-то простые, но совершенно неочевидные вам ошибки

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

                Считаю, что всегда неплохо, когда кто-то осваивает, что-то новое, и просто хотел вам помочь разобраться. Если есть желание, то можно попробовать обсудить без погружение в конфидециальные делали, что вы делаете и попробовать разобраться, как это ускорить. Ну а если желания нет и интересно копаться самому — могу вам пожелать только успехов
                  • Михаил
                    26 октября 2025, 11:48
                    ADT, ключевая проблема — «разработчик меня лечил», а не в Питоне. В Питоне есть потоки, есть процессы, асинхронные не блокирующие запросы в одном потоке. Не знаю, что там за разработчик, но нормальный сейчас получает от 25к в час. Возможно писать самому вполне разумный выбор для саморазвития и экономии средств, тем более там еще поди пойми нормальный разработчик или нет, если в этом не разбираешься

                    Если у вас много запросов по сети, то потоки особо не нужны, если у вас не десятки тысяч запросов в секунду. Потоки скорее нужны для тяжелой математики, с чем у Go есть проблемы в отличии от Питона. В общем-то у Go со всем проблемы кроме сетевых вызовов. Нарисовать какой-то банальный график или быстро покрутить данные в разных разрезах — отдельных большая задача, хотя в Питоне это делается на щелчок пальцев. Ну если нужно только делать запросы к удаленному серверу и сохранять в базу + какие-то примитивные операции уровня сложить поделить несколько чисел, то Go вполне нормальный вариант

                    Я на Go пишу каждый день, но вот для трейдинга пишу на Python. Пытался на Go, но плюнул — пользы мало, а постоянно спотыкаешься об какие-то ограничения языка, но у меня много всякой не простой математики + нейронные сеточки

                    Успехов вам. Освоить язык и писать небольшие программы достаточно легко, но поддерживать кодовую базу по мере ее разрастания совсем другого уровня задача, которую гораздо сложнее осилить
                      • Михаил
                        26 октября 2025, 16:55
                        ADT, если вы можете несколько задач запускать, то зачем вам потоки — по сути вы руками потоки запускаете. С матрасчетами очень все зависит от используемого алгоритма. Иногда есть приемы, которые позволяют их ускорять на несколько порядков. Плюс в современных процессорах есть так называемые векторные инструкции, когда процессор делает одновременно несколько похожих операций (например, если в процессоре есть AVX-512 может 16 одновременно). Хорошие библиотеки для математических операций прокручивают оба этих приема, но руками это самому не удастся написать. Плюс есть вариант на GPU расчеты перекинуть. Но Go под это все не предназначен — это не язык для расчетов. Он прежде всего про сетевое взаимодействие — ордеры выставлять, в базу и очереди писать самое то, а для бектестов скорее Python c numpy и pytorch, которые умеют под капотом всякую вычислительную магию делать очень эффективно. Часто для разных задач нужно разное использовать
                  • Михаил
                    26 октября 2025, 13:18
                    ADT, кстати думаю полезно сделать следующий эксперимент — в самое начало функции main() добавить fmt.Println(runtime.GOMAXPROCS(1)). Результате при запуске у вас напечатает во сколько потоков обычно работает программа на Go и переключит Go в работу в одном потоке (на обычном бытовом компьютере там будут что-то около 8-16). Если следовать вашей логике про потоки, то программа должна замедлится в напечатанное количество раз. Но есть подозрение, что вы не заметите сколько-нибудь существенного замедления
  • Михаил
    24 октября 2025, 18:54
    Хоть я и люблю Go, но выбор на мой взгляд странный
      • Михаил
        25 октября 2025, 11:03
        ADT, выше написал, где вы на статью сослались
  • Просто трейдер
    24 октября 2025, 19:26
    Здесь явно не ради прибыли и денег трудитесь. Если ради опыта — оставьте надежды переметнуться в ИТ. Наш любимый ГПТ почти закрыл нишу для слабых программистов. Требования ввентил до небес.
      • Alexs
        25 октября 2025, 21:17
        ADT, не знаю ваших конкретных задач но 99% их можно решить на питоне используя numpy и получив скорость не меньше чем вы накодите на go. 

        Я не люблю ни питон ни го, но такова истина. 



          • Alexs
            27 октября 2025, 15:03
            ADT, да ну какие обиды.

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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн