Библиотека Go (Golang) разработчика
2.63K subscribers
290 photos
96 videos
29 files
354 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Веб-приложение на Golang для чтения и записи данных в JSON файл

Golang предлагает мощные инструменты для создания веб-серверов.В Golang вы можете создавать веб-серверы, с разными адресами, разными типами запросов и разными типами контента. Для веб-разработки основными пакетами стандартной библиотеки являются net/http и html/template. Используя эти два пакета, вы можете создавать полнофункциональные веб-приложения.

👉 @golang_lib
👍1
Задача «Маски» - разбираем решения задач для Go-разработчиков

Никита собирается открывать свой пункт выдачи заказов (ПВЗ). Для обеспечения безопасности посетителей Никита решил обеспечить ПВЗ одноразовыми медицинскими масками, которые будут поставляться каждый месяц в количестве $N$ штук. Местные поставщики продают маски по цене 0,55 рублей за одну штуку, но можно сэкономить, купив упаковку из 24 масок за 11 рублей или коробку из 16 упаковок за 160 рублей. Помогите Никите, определив, сколько коробок, упаковок и отдельных масок он должен купить, чтобы заплатить как можно меньше денег. Далее

👉 @golang_lib
👍1
Полезные советы по написанию Dockerfile для проектов на Go.

https://faun.pub/the-martial-arts-of-writing-go-dockerfile-9dcffd010619

👉 @golang_lib
👍2
Структурированное логирование JSON в приложениях на Golang

Что такое «структурированное логирование»?

Ведение журнала, или логирование — очень важная часть программного обеспечения. Логи нужны для отслеживания того, что происходит в системах, и по мере роста последних важность логов только увеличивается.

Есть много отличных инструментов для парсинга логов. Мне, например, очень нравится ElasticSearch. Но большинство из них рассчитано на структурированные логи, а не на двоичные большие объекты с обычным текстом (и не факт, что эти объекты записаны в нужном формате). Далее

👉 @golang_lib
👍2
Логирование программ Go

Журнал пакетов стандартной библиотеки предоставляет базовую инфраструктуру для управления логами на языке GO. Основная цель ведения логов — отследить, что происходит в программе, где это происходит и когда это происходит. Логи могут обеспечивать отслеживание кода, профилирование и аналитику. Ведение журнала логирования( глаза и уши программиста) — это способ найти эти ошибки и узнать больше о том, как работает программа. Далее

👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Реверс Go-бинарей с использованием Ghidra

Запись доклада на Hack In The Box Cyber Week 2021 о реверсе Go-бинарей с помощью Ghidra. Доклад включает введение в семейства вредоносных IoT-программ, написанные на Go, обсуждение уникальных особенностей и препятствий бинарных файлов Go, решение распространенных проблем при реверсе вредоносного ПО на Go, разбор сценариев Ghidra, которые используют докладчики в ходе реверса, а также исследование последних разработок вокруг обфускации Go и криптеров Linux.

👉 @golang_lib
👍1
Программа для перевода температуры из Цельсия в Фаренгейты

package main

import (
"fmt"
)

type celsius float64

func (c celsius) fahrenheit() fahrenheit {
return fahrenheit((c * 9.0 / 5.0) + 32.0)
}

type fahrenheit float64

func (f fahrenheit) celsius() celsius {
return celsius((f - 32.0) * 5.0 / 9.0)
}

const (
line = "======================="
rowFormat = "| %8s | %8s |\n"
numberFormat = "%.1f"
)

type getRowFn func(row int) (string, string)

// drawTable создает таблицу с двумя столбцами.
func drawTable(hdr1, hdr2 string, rows int, getRow getRowFn) {
fmt.Println(line)
fmt.Printf(rowFormat, hdr1, hdr2)
fmt.Println(line)
for row := 0; row < rows; row++ {
cell1, cell2 := getRow(row)
fmt.Printf(rowFormat, cell1, cell2)
}
fmt.Println(line)
}

func ctof(row int) (string, string) {
c := celsius(row*5 - 40)
f := c.fahrenheit()
cell1 := fmt.Sprintf(numberFormat, c)
cell2 := fmt.Sprintf(numberFormat, f)
return cell1, cell2
}

func ftoc(row int) (string, string) {
f := fahrenheit(row*5 - 40)
c := f.celsius()
cell1 := fmt.Sprintf(numberFormat, f)
cell2 := fmt.Sprintf(numberFormat, c)
return cell1, cell2
}

func main() {
drawTable("°C", "°F", 29, ctof)
fmt.Println()
drawTable("°F", "°C", 29, ftoc)
}

👉 @golang_lib
👍1
Distributed_Services_with_Go.pdf
5.2 MB
Distributed Services with Go
Your Guide to Reliable, Scalable, and Maintainable Systems
Travis Jeffery (2021)

This is the book for Gophers who want to learn how to build distributed systems. You know the basics of Go and are eager to put your knowledge to work. Build distributed services that are highly available, resilient, and scalable. This book is just what you need to apply Go to real-world situations. Level up your engineering skills today.

👉 @golang_lib
👍2
Как сделать api на golang?

Вы можете использовать net/http пакет чтобы сделать GET или POST API запрос на Golang, ниже пример кода как пример:

package main

import (
"fmt"
"io/ioutil"
"log"
"net/http"
)

func main() {
response, err := http.Get("https://вашсайт.ru/api/thread/latest")

if err != nil {
panic(err)
}

defer response.Body.Close()

// Распаковать ответ
data, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}

// Вывести ответ как строку
fmt.Println(string(data))
}

👉 @golang_lib
👍1👎1
Telegram Бот на Golang

Обзор проекта
Проектируем Архитектуру Telegram Бота
Разработка API Клиента (SDK библиотеки)
Базовая структура проекта
Генерируем ссылку авторизации
Сервер авторизации. Подключаем BoltDB
Система конфигов и обработка ошибок
Деплоймент. DigitalOcean. CI/CD

👉 @golang_lib
👍2