Логирование программ Go
Журнал пакетов стандартной библиотеки предоставляет базовую инфраструктуру для управления логами на языке GO. Основная цель ведения логов — отследить, что происходит в программе, где это происходит и когда это происходит. Логи могут обеспечивать отслеживание кода, профилирование и аналитику. Ведение журнала логирования( глаза и уши программиста) — это способ найти эти ошибки и узнать больше о том, как работает программа. Далее
👉 @golang_lib
Журнал пакетов стандартной библиотеки предоставляет базовую инфраструктуру для управления логами на языке GO. Основная цель ведения логов — отследить, что происходит в программе, где это происходит и когда это происходит. Логи могут обеспечивать отслеживание кода, профилирование и аналитику. Ведение журнала логирования( глаза и уши программиста) — это способ найти эти ошибки и узнать больше о том, как работает программа. Далее
👉 @golang_lib
👍2
Learn Go Programming by Building 11 Projects – Full Course
https://www.youtube.com/watch?v=jFfo23yIWac
👉 @golang_lib
https://www.youtube.com/watch?v=jFfo23yIWac
👉 @golang_lib
YouTube
Learn Go Programming by Building 11 Projects – Full Course
In this Go programming language course for beginners, you will improve your Go programming skills by building eleven projects.
✏️ Akhil Sharma created this course. Check out his channel: https://www.youtube.com/c/AkhilSharmaTech
⭐️ Project Code ⭐️
1. Build…
✏️ Akhil Sharma created this course. Check out his channel: https://www.youtube.com/c/AkhilSharmaTech
⭐️ Project Code ⭐️
1. Build…
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
Запись доклада на 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
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
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, ниже пример кода как пример:
👉 @golang_lib
Вы можете использовать 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
Обзор проекта
Проектируем Архитектуру Telegram Бота
Разработка API Клиента (SDK библиотеки)
Базовая структура проекта
Генерируем ссылку авторизации
Сервер авторизации. Подключаем BoltDB
Система конфигов и обработка ошибок
Деплоймент. DigitalOcean. CI/CD
👉 @golang_lib
👍2
Go и плагины
Go многими воспринимается как средство для написания микросервисов, тем не менее, сам он является языком общего назначения и позволяет писать приложения любого рода, в том числе, поддерживающие модули расширения.
Примерно год назад передо мной встала задача добавить поддержку плагинов в приложение на Go. Задача стояла не особо остро, и руки до решения дошли только сейчас. Ответ, однако, оказался не столь очевидным, сколь хотелось бы. Идеального решения, как по мне, нет, поэтому попытаюсь максимально объективно рассмотреть все три имеющихся.
👉 @golang_lib
Go многими воспринимается как средство для написания микросервисов, тем не менее, сам он является языком общего назначения и позволяет писать приложения любого рода, в том числе, поддерживающие модули расширения.
Примерно год назад передо мной встала задача добавить поддержку плагинов в приложение на Go. Задача стояла не особо остро, и руки до решения дошли только сейчас. Ответ, однако, оказался не столь очевидным, сколь хотелось бы. Идеального решения, как по мне, нет, поэтому попытаюсь максимально объективно рассмотреть все три имеющихся.
👉 @golang_lib
👍2
В этой статье представлено TimingWheel в go-zero, которое позволяет разработчикам планировать множество отложенных задач.
https://faun.pub/implement-a-timing-wheel-for-millions-of-concurrent-tasks-942c8d9e4abe
👉 @golang_lib
https://faun.pub/implement-a-timing-wheel-for-millions-of-concurrent-tasks-942c8d9e4abe
👉 @golang_lib
👍1
Adam_Woodbeck_Network_Programming_with_Go_Learn_to_Code_Secure_and.pdf
3.9 MB
Network Programming with Go: Code Secure and Reliable Network Services from Scratch
Автор: Adam Woodbeck (2021)
В книге описана теория и практика использования Go для написания безопасного, читаемого и готового к работе сетевого кода. В первых главах вы узнаете основы работы в сети и маршрутизации трафика, затем примените полученные знания на практике.
По мере продвижения вы изучите сетевые протоколы более высокого уровня и напишете приложения, которые безопасно взаимодействуют с серверами, клиентами и API-интерфейсами по сети с использованием TLS.
Кроме того, вы узнаете фундаментальные основы TCP/IP, методы обеспечения надежности связи на уровне сокетов, способы использования обработчиков и middleware, инструменты для включения аутентификации и шифрования в приложения с использованием TLS, методы сериализации данных для хранения или передачи данных, подходы к настройке приложения для работы в облаке и многое другое.
👉 @golang_lib
Автор: Adam Woodbeck (2021)
В книге описана теория и практика использования Go для написания безопасного, читаемого и готового к работе сетевого кода. В первых главах вы узнаете основы работы в сети и маршрутизации трафика, затем примените полученные знания на практике.
По мере продвижения вы изучите сетевые протоколы более высокого уровня и напишете приложения, которые безопасно взаимодействуют с серверами, клиентами и API-интерфейсами по сети с использованием TLS.
Кроме того, вы узнаете фундаментальные основы TCP/IP, методы обеспечения надежности связи на уровне сокетов, способы использования обработчиков и middleware, инструменты для включения аутентификации и шифрования в приложения с использованием TLS, методы сериализации данных для хранения или передачи данных, подходы к настройке приложения для работы в облаке и многое другое.
👉 @golang_lib
👍2