Go – это мультипарадигмальный, статически типизированный и компилируемый язык программирования, разработанный компанией Google. Многие разработчики приняли Go благодаря его функции сбора мусора, безопасности памяти и структурной системе типизации. Веб-фреймворки Go были созданы для того, чтобы облегчить процесс веб-разработки на Go, не заботясь о настройках и уделяя больше внимания функциональности проекта. При создании небольших приложений фреймворки могут быть не нужны, но для программного обеспечения производственного уровня они крайне важны. Фреймворки предоставляют дополнительные функции и сервисы, которые могут быть использованы другими разработчиками, желающими добавить аналогичные функции в свое программное обеспечение, вместо того чтобы писать полноценное программное обеспечение самостоятельно.
В этом руководстве мы рассмотрим, как использовать тесты для обеспечения целостности извлечения данных Ethereum в приложении на Go. Мы будем использовать клиент Go-Ethereum для получения данных о блоках и транзакциях и пакет testify для наших тестов.
В этом руководстве вы создадите простое приложение для чата в реальном времени с использованием Go, Fiber и HTMX.
Вы узнаете, как использовать универсальность Fiber, используя WebSocket. Вы также узнаете, как создать реактивный интерфейс без использования JavaScript.
Отладка проблем приложений в кластере Kubernetes часто похожа на лабиринт. Контейнеры эфемерны по своей конструкции и должны быть неизменяемыми после развертывания. Это создает уникальную проблему, когда что-то идет не так и нам нужно разобраться в проблеме. Прежде чем погружаться в инструменты и методы отладки, необходимо понять суть проблемы: почему изменять экземпляры контейнеров напрямую — плохая идея. В этом блоге вы узнаете о тонкостях отладки Kubernetes и получите практические советы по эффективному устранению неполадок в среде Kubernetes.
Мне очень нравится, что стандартная библиотека Go включает в себя так много вариантов тестирования прямо из коробки. В этом посте мы представим вариант тестирования производительности в Go.
Как и во многих случаях в Go, при использовании этой функции необходимо следовать некоторым соглашениям Benchmark
. Они очень похожи на те, которые используются для написания модульных тестов.
В этой статье мы обсудим принцип инверсии зависимостей. Вкратце мы расскажем о том, что это такое, и рассмотрим этот принцип на примере простого Go-приложения.
Принцип инверсии зависимостей (DIP) — это один из пяти принципов SOLID объектно-ориентированного программирования (ООП), впервые представленный Робертом К. Мартином. Он гласит:
Состоялся релиз новых версий языка программирования Golang — 1.21.10 и 1.22.3.
Отличительной чертой новых версий являются исправления в системе безопасности, согласно политике Go.
User
, представляющую сущность пользователя.UserRepository
с методами для управления пользователями.InMemoryUserRepository
и MySQLUserRepository
для обеспечения хранилищ в памяти и на основе MySQL, соответственно.NewInMemoryUserRepository
и NewMySQLUserRepository
- это функции-конструкторы для создания экземпляров соответствующих репозиториев.Многие функции, над которыми я работаю, используют массивы точек (GPS-треков) []float64{lng,lat}
для статистического анализа. Отдельные треки могут содержать более 50 000 точек, описывающих реальное путешествие из пункта А в пункт Б.
Тестирование функций, которые обрабатывают GPS-треки, оказалось неожиданно сложным. Тестовые данные вида [1.0,2.0]
для логического тестирования подходят. Но помимо этого, я хочу иметь возможность проверять согласованность в таких вещах, как поиск кластеров или контрольных точек коэффициента.
Вы когда-нибудь задумывались, как работают информационные бюллетени от разных компаний и организаций? Некоторые компании используют такие платформы, как Mailchimp, но если вы хотите понять, что происходит и как создать свою собственную платформу, чтобы иметь полный контроль, тогда следуйте инструкциям, когда мы отправим нашим подписчикам несколько специальных информационных бюллетеней.
Присоединяйся в тусовку
Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.