Я так давно пользуюсь услугами Github, что уже начал забывать, как это страшно потерять код, который целый день сочинял и отлаживал. Раньше для сохранения кода я использовал дискетки, потом cd-rom и переносной жесткий диск, потом пришли флешки. Все это для того, чтобы перенести код с рабочего компьютера на домашний и не потерять. И все эти
устройства постоянно ломались, терялись, у них заканчивался срок службы и т.п.
Рубрика «golang» - 4
Быстрый бэкап всех ваших репозиториев Github
2022-04-24 в 7:51, admin, рубрики: backup, github, Go, golang, mirrorСобеседование Golang разработчика (теоретические вопросы), Часть I
2022-03-06 в 11:35, admin, рубрики: Go, golang, вопросы на собеседование, карьера, Карьера в IT-индустрии, Программирование, собеседованиеПривет! Эта статья - начало цикла статей на то, как сейчас проходят интервью на golang разработчика (без привязки к грейду).
Цикл будет в себя включать как теоретические вопросы (с примерами и кодом исходников языка), так и реальные практические задачи, которые спрашивают при устройстве на позиции go разработчика.
Оглавление

Свежая подборка новостей и материалов
Интересное в этом выпуске
-
Выпущены Go 1.17.7 и 1.16.14
-
Go 1.18 Release Candidate 1: Заметки
-
Самомодифицирующийся исполняемый файл на Go
-
Go Workspaces в Go 1.18
-
Gambit - шахматы в терминале
-
Подкаст - обсуждаем дженерики от Go Get Podcast
-
FQ - Инструмент для работы с бинарными данными
Приятного чтения!
Читать полностью »
Беглый взгляд на Go Workspaces в Go 1.18
2022-02-17 в 12:47, admin, рубрики: Go, go.work, golang, Блог компании JoomСкоро выходит версия Go 1.18, и в массовом сознании она, скорее всего, будет ассоциироваться с Generic-ами. Но помимо них туда попадает еще несколько вкусных фичей. Например, Go Workspaces.

Что даёт Go Workspaces?
Скоро выйдет релиз 1.18 в котором появятся долгожданные дженерики. Они позволят сделать универсальные методы. Я написал пару примеров для себя. Может быть они будут интересны кому-нибудь ещё.
Интерфейсы any, comparable, constraints. и ~
Появились новые ключевые слова
any - аналог interface{}
. Это ключевое слово можно использовать в любом месте. Например при определении типа переменной или при опрредении типа поля в структуре. Вот такой код ошибок не вызовет:
func TestDo(v any) any {
var k any
k = 10
return k
}
type Test interface {
Some() any
}
comparableЧитать полностью »
Анализируем bound checks в Go по CPU профилю
2022-02-13 в 10:42, admin, рубрики: amd64, asm, cpuprofile, Go, golang, performance, pprof, profiling, static analysis, высокая производительность, Компиляторы, системное программированиеСегодня мы будем анализировать бинарники на пару с CPU профилями, чтобы создать на их основе расширенные профили исполнения. Эти дополненные профили мы сможем использовать для оценки времени, которое программа тратит на проверки выхода за границу массивов и слайсов.
Рекомендации по работе с Docker для Golang-разработчиков (Multistage Building)
2022-01-23 в 11:37, admin, рубрики: docker, dockerfile, Go, golangСтарайтесь всегда использовать многоэтапную сборку, для создания более компактных Docker образов. Давайте, рассмотрим на примере, как многоэтапная сборка позволяет значительно уменьшить размер Docker образа. В качестве примера, мы будем использовать простое веб-приложение на Golang:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", HelloServer)
fmt.Printf("Starting server at port 8080n")
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal(err)
}
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello world")
}
Сначала, соберем Docker образ в один этап:
Читать полностью »
SSH Picker в ежедневной работе сетевого инженера
2022-01-22 в 12:57, admin, рубрики: automatization, Go, golang, parsers, RabbitMQ, ssh, Сетевые технологии, системное администрированиеВ статье рассмотрим полезный инструмент облегчающий сбор данных с сетевых устройств. Для работы скриптов с командной строкой по SSH на языке Python нужно использовать множество сторонних модулей, а вернее множество зависимостей одного модуля (привет paramiko), а если на машине где будет работать скрипт нет интернета или нет возможности установить Python последних версий, то задача запуска скрипта становится практически невозможной. Для решения подобной проблемы был разработан SSH Picker с возможностью подключения дополнительных модулей через AMQP протокол.
Ускоряем hugo на 20% простым изменением в пакете reflect
2022-01-14 в 21:47, admin, рубрики: binary search, Go, golang, Hugo, linear search, open source, profiling, reflect, reflection, высокая производительность, Компиляторы, ПрограммированиеНайти значительное узкое место в производительности стандартной библиотеки или зрелого приложения — это редкость.
Я был удивлён, когда в top10 списке CPU-профиля hugo при сборке digitalgov.gov на первой позиции находился метод reflect.Type.MethodByName()
.
flat flat% sum% cum cum%
8.84s 6.28% 6.28% 57.85s 41.10% reflect.(*rtype).MethodByName
7.93s 5.63% 11.92% 8.50s 6.04% reflect.name.readVarint
7.56s 5.37% 17.29% 111.79s 79.43% reflect.Value.call
7.53s 5.35% 22.64% 23.33s 16.58% runtime.mallocgc
7.29s 5.18% 27.82% 16.10s 11.44% reflect.name.name
В этой статье я расскажу вам о том, как так вышло и что с этим можно было бы сделать.
Почему я перешёл с Python на Go: choose your fighter
2021-12-28 в 13:18, admin, рубрики: Go, golang, highload, python, Блог компании Ozon Tech, карьера, Карьера в IT-индустрии, смена языкаВ один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».
Каждый инженер десятки раз в своей карьере сталкивается с выбором: оставаться дальше на той технологии, на которой он работает, или уходить на другую. В статье я расскажу, по каким критериям я сравнивал две технологии, и почему принял решение переехать на другой язык.

Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Читать полностью »