Category : golang

golang
Еще раз про Di-контейнеры в golang

В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не …

  • четверг, 24 апреля 2025 г. в 00:00:05
golang
Retry в Go: От граблей к дзену отказоустойчивости

В мире распределенных систем и микросервисов сетевые сбои, временная недоступность сервисов или всплески нагрузки — не исключение, а скорее правило. Отказ одного компонента не должен каскадом обрушить всю систему. Здесь на помощь приходит механизм retry (повторные попытки).Грамотно реализованный retry позволяет системе самоисцеляться от временных проблем, делая ее более надежной и отказоустойчивой. Однако, неправильное использование ретраев может усугубить ситуацию, замаскировав серьезные пробл…

  • четверг, 24 апреля 2025 г. в 00:00:05
golang
Dockerfile, только для LLM

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

  • среда, 23 апреля 2025 г. в 00:00:05
golang
Как оптимизировать код на Go? Раскладываем по полочкам

Привет, Хабр! Меня зовут Дмитрий Гурьянов, я руковожу командой Manuls в VK HR Tek (система ведения кадрового электронного документооборота). Сегодня расскажу о нюансах оптимизации на разных уровнях исполнения кода на Go.Я хотел бы рассмотреть оптимизацию большого количества не самого сложного кода — веб-приложений, информационных систем и так далее. Часто по требованиям бизнеса приходится писать много нового кода, и редко бывает возможность вернуться назад и улучшить старые функции, поскольку п…

  • вторник, 22 апреля 2025 г. в 00:00:07
golang
Пишем web-фреймворк на Go: как работают современные web-фреймворки под капотом

В данной статье представлен пошаговый процесс разработки легковесного веб-фреймворка на языке программирования Go. Основываясь на стандартной библиотеке net/http, мы исследуем ключевые концепции, лежащие в основе современных Go-фреймворков, таких как Gin, Echo и тд.Важно отметить: цель данной статьи — объяснение фундаментальных принципов, а не создание готового продакшн фреймворка. Представленный код служит исключительно для иллюстрации концепций, так как многие разработчики используют фреймвор…

  • понедельник, 21 апреля 2025 г. в 00:00:05
golang
Туториал: использование Go из PHP через FFI

Свою первую работу программистом на языке PHP я нашёл в далёком 2011 году, имел опыт с разными версиями языка от 5.0 до 8.1 в коммерческих разработках. C тех пор иногда приходилось выходить в смежные области: Python, NodeJS, 1С, VBA и вот наконец Go. Для любого опытного профессионала не станет откровением, что одну и ту же вещь можно сделать разными средствами, и что для каждой задачи есть свой наиболее подходящий инструмент. В середине 2010-х особое распространение начинают получать такие нап…

  • понедельник, 21 апреля 2025 г. в 00:00:04
golang
Как я начал учить Go и правда ли он похож на Python. Мой личный опыт

Всем привет! Меня зовут Иван, я программирую на Python и недавно решил освоить новый ЯП. Долго думал, какой выбрать. В итоге решил довериться утверждению, что Python во многом похож на Go — на нем и остановился.Ниже поделюсь личным опытом изучения языка — и да, я еще продолжаю его осваивать. Расскажу, какие встретил различия между Python и Go в типах данных, преобразовании типов данных, подходах к обработке ошибок. А еще обсудим, какой ЯП быстрее и можно ли импортировать и выполнить код Go в Py…

  • воскресенье, 20 апреля 2025 г. в 00:00:04
golang
Срезы(slices) в Go

Срезы (slices) в Go могут показаться простыми при первом знакомстве, но их эффективное использование требует понимания внутреннего устройства и особенностей работы с памятью. Многие разработчики сталкиваются с путаницей между понятиями длины и емкости срезов, что может привести к неэффективному использованию памяти или даже утечкам. Важно разобраться, как эти концепции работают при выполнении базовых операций: инициализации, добавлении элементов, копировании и нарезке. В этой статье мы рассмотр…

  • суббота, 19 апреля 2025 г. в 00:00:09
golang
Люблю я http, и вот как я его готовлю

Я старый фуллстек-разработчик и не знаю слов любви, но около полугода назад при очередной итерации сервера почувствовал себя утомленным путником, который узрел нежную красоту wr-обработчика нативного net/http! Вот раньше всё было ужасно - а теперь красиво, приятно читать и интересно показать! За несколько месяцев я переделал свои сотни обработчиков на новый стиль - и всё еще доволен! Почистил авгиевы конюшни слоев логики - теперь там царит запах фиалок! Также у меня была возможность посмотреть …

  • суббота, 19 апреля 2025 г. в 00:00:08