Шаблон Flyweight (Приспособленец) на Go

Определение: Приспособленец — это структурный шаблон проектирования, в котором объект, представляющий себя как уникальный экземпляр в разных местах программы, по факту не является таковым. Цель — оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность. Flyweight используется для уменьшения затрат при работе с большим количеством мелких объектов. — Wikipedia Позже продемонстрирую шаблон «Приспособленец» ПОДРОБНЕЕ

Метапрограммирование на Go

Большинство современных сайтов реализуют некий MV*-фреймворк как формально, так и неформально. Если вы пишете много кода, скорее всего, вы пишете много моделей снова и снова. Они в основном похожи по структуре и отличаются только деталями схемы. Вы определяете SQL-схему, создаете структуры и соединяете некоторые базовые CRUD API. Затем вы подправляете ПОДРОБНЕЕ

Удалённые вызовы процедур в Golang

Что такое удалённые вызовы процедур? Удалённый вызов процедур (RPC) — это подпрограмма в распределённых вычислениях. Реализация RPC напоминает реализацию локальных вызовов, но обычно они не идентичны. Как правило, RPC предполагает передачу параметра, имени объекта, имени функции на удалённые серверы, откуда затем на сторону клиента возвращаются обработанные результаты (запрос-ответ). RPC осуществляется с использованием ПОДРОБНЕЕ

Полиморфизм с интерфейсами в Golang

Интерфейсы в Golang работают в совершенно особенной манере в сравнении с интерфейсами на других языках серверного программирования. Прежде чем углубляться в тему, начнём с базовых понятий. Интерфейсы в Golang предоставляют список сигнатур функций, которые реализовываются любой «структурой» для работы с конкретными интерфейсами. Давайте разберёмся, что под этим подразумевается. Для тех, ПОДРОБНЕЕ

Почему мы создаем инфраструктуру машинного обучения в Go, а не в Python

Ни для кого не секрет, что Python является наиболее востребованным языком для проектирования машинного обучения. В то время как R, C++ и Julia имеют своих приверженцев и отдельные случаи применения, Python остается максимально универсальным языком, используемым в каждом фреймворке, посвященном машинному обучению. Наша же кодовая база на Cortex — открытой платформе для ПОДРОБНЕЕ

Объектно-ориентированное программирование в Golang

Давайте поучимся работать с объектно-ориентированной архитектурой в Golang. Здесь нет классов, зато есть структуры, работа с которыми является единственным способом поддержки объектно-ориентированной модели. Создание структур в Golang Структуры могут использоваться для представления сложного объекта, состоящего из нескольких пар «ключ — значение». Обратимся к конкретному примеру. Допустим, нам надо представить в качестве объекта сотрудника ПОДРОБНЕЕ

Настройка Swagger документации для API в Golang

Часть 1, Часть 2, Часть 3 В предыдущей статье мы создали RESTful API в Golang. Теперь, когда у нас есть готовый проект, надо понять, как его использовать. Ведь если нельзя протестировать проект и увидеть его возможности, он будет просто бесполезен. Без полноценной документации, позволяющей тестировать конечные точки и видеть возможности ПОДРОБНЕЕ

Создание интерфейсов RESTful API в Golang

Часть 1, Часть 2, Часть 3 В предыдущей статье мы говорили о создании «идеальной» настройки для Golang проекта. Теперь пришла пора найти для неё реальное применение: будем создавать интерфейсы RESTful API. В этой части рассмотрим базы данных, модульное тестирование, тестирование API, пример приложения и в принципе всё, что вам нужно ПОДРОБНЕЕ

Docker для разработки Go с горячей перезагрузкой

Создание модуля Go В Go 1.13 были введены модули. Это означает, что больше не нужно размещать все проекты в одно рабочее пространство Go. Для начала создаем новый каталог go-docker, в котором будут храниться все файлы. Затем инициализируем репозиторий Git и создаем модуль Go. git init git remote add origin [email protected]:Dirk94/go-docker.git ПОДРОБНЕЕ

Приключения Java-разработчика, решившегося изучать Go

Мне нравится изучать что-то новое, особенно новые языки. Всегда интересно узнать, как с одной и той же проблемой справляются разные языки и как различается их синтаксис. Ознакомившись с многочисленными шаблонами и решениями, без труда распознаёшь их в новом для себя языке программирования, и это облегчает его освоение. Как-то раз решил ПОДРОБНЕЕ