Публикации по теме 'golang'


Интерфейсы Go, но какой ценой?
Использование интерфейсов связано с расходами. Что это за стоимость? Давай попробуем кое-что из этого поработать. Начнем с основных накладных расходов, связанных с вызовом метода через интерфейс. Мы определим очень простой интерфейс с помощью одного метода и очень простой реализации. Мы также отметим метод, чтобы он не был встроен компилятором. Мы делаем это для того, чтобы обращение к get не было полностью удалено в прямом случае. type getter interface { get() int } type..

Тестирование буферов протокола, JSON и XML в Go
В моем посте Построение высокопроизводительных API-интерфейсов на ходу с использованием gRPC и протокольных буферов я написал простой API-интерфейс на gRPC с протокольными буферами версии 3 в качестве проводного формата. В этом кратком посте я сравниваю производительность Protocol Buffers 3, JSON и XML как для маршалинга, так и для демаршалинга. Вот тестовые тесты, написанные на Go: Вот результаты тестов производительности: Выходные данные показывают, что буферы протокола..

Доказательство того, что проблема остановки неразрешима (для программистов-непрофессионалов)
Есть задачи, которые вычислительно невозможны. Они относятся к классу неразрешимых задач. Для неразрешимой задачи не существует алгоритма, который решает задачу на каждом входе независимо от времени работы алгоритма. Вы запускаете полиномиальное время, экспоненциальное время; нет алгоритма, который собирался бы решить это на каждом входе. В 1936 году великий Алан Тьюринг доказал, что проблема остановки неразрешима. И мы увидим идею этого результата сейчас. Эта статья Тьюринга в..

Начало работы с Go — Продолжение
Продолжая предыдущую статью, есть еще несколько советов и приемов, которым можно научить вас. Для импорта мы можем написать их гораздо яснее, если у нас есть несколько импортов: Старый способ: import "fmt" import "time" Новый путь: import ( "fmt" "time" ) Это сделает наш код чище и кратче. Мы также можем проделать тот же трюк с переменными и константами: var ( name string age int address string married bool ) и аналогично с..

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

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

Никаких исключений: буквально
Никаких исключений: буквально Рассмотрим другой подход к обработке исключений. Разве вы не ненавидите, когда статьи начинаются так? Есть два типа людей. Ну, есть два вида. Есть те, кто застилает постель после того, как просыпаются, и есть те, кто оставляет все это в связке. Имеет ли значение, складываю ли я одеяла, взбиваю подушку и оставляю их аккуратно сложенными? Возможно нет. Но я предпочитаю думать, что становлюсь лучше или, по крайней мере, лучше справляюсь с трудностями..