Pull to refresh
8
0
Виталий Сергиенко @sotland

Пользователь

Send message

Динамическая функция для генерации excel файла на Golang

Level of difficultyMedium
Reading time7 min
Views2.3K

Привет! В данной статье рассматривается проблема генерации excel файла и возможности реализовать динамическую генерацию excel файла с использованием интерфейса.

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments3

Golang: Мои Открытия

Reading time5 min
Views6.3K

В этом посте мы обсудим несколько увлекательных моментов, которые я узнал в процессе своей работы. В нашем канале много переводов стаей и обзор инструментов  GO, welcome.

1. Как используется встраивание (embedding) в Go?

В Go директива //go:embed используется для встраивания файлов и папок в бинарный файл Go на этапе компиляции. Эта функция улучшает безопасность, производительность и простоту кода за счёт возможности прямого импорта файлов без использования функций операционной системы.

Читать далее
Total votes 29: ↑13 and ↓16+3
Comments15

Чтение на выходные: «Silent Hill. Навстречу ужасу. Игры и теория страха» Бернара Перрона

Level of difficultyEasy
Reading time3 min
Views1.9K

Сегодня в рубрике книга для геймеров, которые любят углубиться в теорию.

Бернар Перрон — эксперт из мира кино и компьютерных игр, профессор Монреальского университета, соредактор игры-песочницы Landmark. Книжица небольшая, но содержательная и без воды. Если хотите прочитать за один заход, то лучше на свежую голову, чтобы уловить все примеры и фамилии: автор ссылается на разработчиков, коллег, фильмы, журналы, много чего цитирует.

Читать далее
Total votes 7: ↑5 and ↓2+4
Comments0

Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд

Level of difficultyMedium
Reading time14 min
Views22K

Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.

Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.

Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.

Читать далее
Total votes 50: ↑48 and ↓2+62
Comments20

Linux на ПК получил 4% рынка десктопов. Это новый рекорд, но чем он объясняется?

Reading time3 min
Views14K

Доля операционной системы Linux на настольных компьютерах никогда не была большой. Тем не менее она постепенно продолжает увеличиваться. Сейчас, в 2024 г., этот показатель достиг 4% — за три года он вырос на 2%. Что послужило причиной такого активного роста? Об этом — в продолжении.

Читать далее
Total votes 17: ↑16 and ↓1+22
Comments176

SQL в качестве API

Level of difficultyHard
Reading time11 min
Views13K


SQL в API??? 

Верно, вы уже успели подумать: «это же безумие, предоставлять API, который принимает SQL». Да, это ужасная идея. Особенно, если API обращён к Интернету. Делать так небезопасно, вы напрашиваетесь на атаки в виде SQL-инъекций. Поддержка такого интерфейса превратится в кошмар, а сама реализация бэкенда будет замкнута на конкретную технологию (это будет какая-нибудь база данных ANSI SQL).

Но справедливо ли такое суждение? Время его пересмотреть!
Читать дальше →
Total votes 34: ↑31 and ↓3+40
Comments40

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views23K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments20

Руководство для домохозяек, стремящихся к соблюдению сетевой гигиены и чистоплотности

Reading time6 min
Views8K

Делать будем жёстко, быстро и без соплей с сахаром. Как настоящая домохозяйка или мамкин админ!

За один вечер: покупаем и настраиваем VPS, поднимаем VLESS/Xray, настраиваем клиентcкое ПО на своём планшете, на ноуте мамы и на айфоне бабушки. А для очень ленивых будет AMNEZIA...

Читать далее
Total votes 19: ↑10 and ↓9+6
Comments38

Ускоряем Go: известные и не очень методы оптимизации и связанные с ними штуки

Level of difficultyEasy
Reading time4 min
Views8K

Привет, Хабр)

В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста).

Обсудим:

простые правила, которые не стоит забывать

мифы о производительности в духе "А я слышал, что X повышает скорость на Y%"

более интересные штуки, типо замены switch на map, проведём пару тестов, поэкспериментируем

Ну и помним, что преждевременная оптимизация — корень всех зол, не стоит сразу пытаться писать скоростной код, это может быть не так просто.

Поехали!

Читать далее
Total votes 20: ↑14 and ↓6+9
Comments18

Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

Reading time14 min
Views14K


Привет, Хабр! Меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
Читать дальше →
Total votes 30: ↑29 and ↓1+36
Comments0

Сериализация данных в Golang с Protobuf

Level of difficultyEasy
Reading time6 min
Views7.5K

Привет, Хабр!

Protobuf, или Protocol Buffers, это бинарный формат сериализации, разработанный в Google для эффективного обмена данными между сервисами. Это как JSON, только компактнее, быстрее и типизированнее. Если JSON был вашим первым крашем в мире сериализации, то Protobuf – это тот, с кем вы хотите серьёзных отношений.

Если вы хотите, чтобы ваши приложения общались между сервисами с молниеносной скоростью и минимальными задержками, тогда Protobuf — твой хороший выбор.

Читать далее
Total votes 14: ↑9 and ↓5+6
Comments2

Go: передача значений VS передача указателей

Level of difficultyMedium
Reading time9 min
Views9.8K

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

В данной статье предлагается во многом субъективное сравнение обоих способов и делается попытка убедить читателей передавать и возвращать значения в тех случаях, где это возможно.

Читать далее
Total votes 9: ↑7 and ↓2+10
Comments20

Flask для начинающих — Часть 2 пишем landing page+admin panel с редактированием контента

Level of difficultyEasy
Reading time40 min
Views17K

Здравствуйте! Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
 Я сам активно занимаюсь разработкой проектов на Flask и хочу поделиться своими знаниями и опытом, чтобы помочь вам начать свой путь в мире веб-разработки.

Flask для начинающих - Часть 2 создание Веб проекта.

Мы создадим с вами мини проект - веб сайт с админ панелью и обновлением контента сайта. При помощи Python, HTML, CSS, Bootstrap, Flask, SQLite.

создать сайт на Flask
Total votes 12: ↑10 and ↓2+8
Comments10

Переизобретённая жизнь: в чём суть синтетической биологии и как она изменит мир

Level of difficultyEasy
Reading time10 min
Views6.2K

Недавно консорциум Sc2.0 (International Synthetic Yeast Genome [Sc2.0] consortium) объявил о важном открытии — в авторитетном научном журнале Сell вышла статья о… простых пекарских дрожжах. Особенность открытия заключается в том, что половины генома новой версии дрожжей никогда прежде не существовало в природе. Её создали в лаборатории. Прежним рекордом было создание дрожжей с четвертью синтетических генов. Достижение ещё на шаг приблизило учёных к получению фундаментальной базы, которая позволит строить полезные живые организмы с нуля. Этим занимается синтетическая биология, и у неё большое будущее. 

Читать далее
Total votes 14: ↑13 and ↓1+16
Comments8

Открытые инструменты нагрузочного тестирования

Level of difficultyEasy
Reading time4 min
Views4K

Сервисы по продаже билетов, новостные ленты, стриминговые приложения, платформы онлайн-курсов и другие ресурсы, на которых бывает волнообразная нагрузка, должны поддерживать оптимальную производительность без сбоев. 

Как помочь ИТ-системам справиться с ростом трафика? Конечно, обеспечить эластичные вычисления и надежные каналы связи — сделать это можно с помощью облака. А еще на помощь приходит нагрузочное тестирование перед пиковыми событиями: вы должны знать, может ли приложение справиться с масштабированием или нет.

Для проведения нагрузочного тестирования следует определиться с методологией: наметить цели, продумать метрики и сценарии, подходы к интерпретации результатов. Разобраться с существенной частью этих задач должны специализированные открытые инструменты, и сегодня мы поговорим о некоторых заметных из них. В подборке: Locust, который позволяет писать тесты на Python, легковесный Drill, производительный Wrk, а еще — k6 и Tsung.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments0

Мокаем сервисы с Mountebank и Go

Level of difficultyMedium
Reading time11 min
Views1.7K

Mountebank - это мощная платформа для тестирования API и mocking-a, предоставляющая пользователям функционал и инструменты для создания гибких, настраиваемых и надежных тестовых окружений. В этой статье автор рассмотрит настройку Mountebank на реальном примере.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

Level of difficultyMedium
Reading time11 min
Views31K

Привет! Меня зовут Данил, я backend-разработчик в Doubletapp. Почти во всех наших проектах есть пользователи, которые могут войти в систему. А значит, нам почти всегда нужна авторизация. Мы используем авторизацию, построенную на JSON Web Token. Она отлично сочетает в себе простоту реализации и безопасность для приложений.

В интернете есть много разных материалов с объяснением, что такое JWT и как им пользоваться. Но большинство примеров ограничиваются выдачей токена для пользователя. В этой статье я хочу рассказать не только о том, что такое JWT, но и как можно реализовать работу с access и refresh токенами и решить сопутствующие проблемы. Будет немного теории и много практики. Присаживайтесь поудобнее, мы начинаем.

Путеводитель:

Что такое JSON Web Token?
Использование и реализация
Простая реализация JWT
Access и refresh tokens
Как отозвать токены
Доступ с нескольких устройств
Удаление старых данных
Резюмируем

Читать далее
Total votes 18: ↑16 and ↓2+17
Comments45

Актуальный гайд по написанию простого Windows-драйвера

Level of difficultyMedium
Reading time10 min
Views35K

В рамках данной статьи я постарался написать полноценное руководство по разработке простого драйвера под операционную систему Windows 10. Всем новичкам, заинтересованным в системном программировании рекомендую ознакомиться. Это поможет вам сделать первые шаги в разработке драйверов.

Читать далее
Total votes 61: ↑61 and ↓0+61
Comments40

Практика Go — Обработка ошибок (1 часть)

Level of difficultyEasy
Reading time9 min
Views5.6K

Я долго думал над тем, как лучше всего обрабатывать ошибки в программах на языке Go. Мне очень хотелось, чтобы существовал единый способ обработки ошибок, которому можно было бы научить всех программистов на Go, как учат математике или алфавиту.

Однако я пришёл к выводу, что единого способа обработки ошибок не существует. Вместо этого я считаю, что работу с ошибками в Go можно разделить на три основные стратегии.

Читать далее
Total votes 4: ↑1 and ↓30
Comments19

Лучшая фантастика последних трех лет по версии Goodreads

Reading time5 min
Views135K

GoodrGoodreads — пожалуй, главный книжный сайт англоязычного интернета. Недавно он составил список самых популярных фантастических книг за 2020-2023 годы, опираясь на мнение пользователей. К сожалению, на русский язык переведено далеко не все, однако даже те книги, которые уже можно прочитать в переводе, составляют внушительный список. Вот он.

Читать далее
Total votes 50: ↑46 and ↓4+54
Comments180
1
23 ...

Information

Rating
4,037-th
Location
Волгоград, Волгоградская обл., Россия
Date of birth
Registered
Activity