Ваш любимый питомец пишет на Go и получает больше вас, а вы ещё нет? Не теряйте времени… Такая мысль может родиться у читателя от обилия статей по Go. Некоторым даже компании предлагают переучиться на этот язык. И, если вы хоть раз задумывались освоить язык, то я хочу вас предостеречь. Вернее показать странные вещи, попробовать объяснить зачем они и потом вы уже сами сделаете вывод нужен ли вам Go.
Рубрика «Go» - 45
Если вы подумываете начать писать на Go, то вот что вам следует знать
2018-12-20 в 9:37, admin, рубрики: Go, плохая архитектура, Программирование, странностиПацаны, так Ruby умер или нет?
2018-12-19 в 14:10, admin, рубрики: Go, ruby, ruby on rails, интервью
Последнее время, когда я говорю с разработчиками или компаниями, часто слышу одну и ту же историю разными словами — «мы писали на Ruby, но сейчас переезжаем». С одной стороны, ничего удивительного. Разработка — дело изменчивое, всегда появляется что-то новое, каждый день надо тратить кучу мозгов, чтобы оставаться актуальным.
Но при этом существуют же некие преданность технологии и даже культ инструмента. Скажи пхп-шнику, что пора переезжать на .NET, услышишь «PHP отличный, полмира на нем пишет», или просто получишь в лоб.
Что же не так с Ruby, и куда делась его взрывная популярность? Я поговорил с несколькими рубистами. Например, Максимом Индыковым из Staply, чья команда переезжает с Ruby на Go, и с Алексеем Кузнецовым из GeekBrains, компании, которая начиналась с курсов по Ruby, а сейчас отказалась от них полностью.
Читать полностью »
Kubernetes: поразительно доступное решение для персональных проектов
2018-12-14 в 14:27, admin, рубрики: devops, Go, kubernetes, Блог компании Издательский дом «Питер», Облачные вычисления, облачные технологии, Профессиональная литература, развертывание приложенийЗдравствуйте, коллеги!
В январе у нас наконец-то выходит долгожданная книга по Kubernetes. Речь о «Mastering Kubernetes 2nd edition» Джиджи Сайфана:

Мы не решились издавать книгу по Kubernetes около года назад, так как на тот момент технология определенно напоминала дредноут для суперкорпораций. Однако, ситуация меняется, в подтверждение чего мы предлагаем почитать большую статью Калеба Докси (Caleb Doxsey), написавшего, кстати, книгу о языке Go. Аргументы господина Докси очень интересны, и мы надеемся, что после ознакомления с ними вам действительно захочется попробовать Kubernetes на практике.
Читать полностью »
Путешествие gocritic’а в прошлое
2018-12-11 в 19:54, admin, рубрики: bugs, Git, git log, Go, go-critic, go-lintpack, gocritic, golang, linter, lintpack, open source, static code analysis, Программирование, Совершенный код, управление разработкой
Хочу поделиться результатами работы последних нескольких дней, которые включали в себя анализ git истории некоторых крупных Go проектов с целью нахождения коммитов, которые исправляли ошибки c последующей их формализацией для детектирования в случае их появления в новом коде.
Во второй части статьи рассмотрим некоторые новые диагностики в go-critic, которые позволяют находить код, который с высокой степенью вероятности содержит ошибку.
Как мы построили быстрое и надежное хранилище просмотров объявлений
2018-12-11 в 5:01, admin, рубрики: Go, mongodb, redis, Анализ и проектирование систем, базы данных, Блог компании «Колёса Крыша Маркет», микросервисы, Программирование, распределенные системы, хранение данныхОдна из малозаметных, но важных функций наших сайтов объявлений — сохранение и отображение количества их просмотров. Наши сайты следят за просмотрами объявлений уже больше 10 лет. Техническая реализация функциональности успела несколько раз измениться за это время, и сейчас представляет из себя (микро)сервис на Go, работающий с Redis в качестве кэша и очереди задач, и с MongoDB в качестве персистентного хранилища. Несколько лет назад он научился работать не только с суммой просмотров объявления, но еще и со статистикой за каждый день. А вот делать все это действительно быстро и надежно он научился совсем недавно.

В сумме по проектам, сервис обрабатывает ~300 тысяч запросов на чтение и ~9 тысяч запросов на запись в минуту, 99% которых выполняются до 5мс. Это, конечно, не астрономические показатели и не запуск ракет на Марс — но и не такая тривиальная задача, какой может показаться простое хранение чисел. Оказалось, что делать все это, обеспечивая сохранение данных без потерь и чтение согласованных, актуальных значений требует определенных усилий, о которых мы расскажем ниже.
Читать полностью »
Вырываемся в top10. Бот для игры в телеграме
2018-12-06 в 9:55, admin, рубрики: Go, telegram-cli, ПрограммированиеВырываемся в top10. Бот для игры в Telegram
Предыстория
Все началось с того, что мне прислали ссылку на бота в Telegram с предложением поиграть.
Выглядит он примерно так.

После моей первой игры я заработал 28 балов, не сильно впечатляющий результат. Значит нужно всего ничего — программа, которая находит слова из букв исходного слова и база существительных русских слов.
Поехали
Для базы решил использовать sqlite3, он мобильный и для этой задачи самое то.
Стурктура базы выглядит так.
CREATE TABLE IF NOT EXISTS words (
word VARCHAR(225) UNIQUE NOT NULL,
length INTEGER NOT NULL
);
- word — из название понятно что это хранимое буквенное значение слова.
- length — символьная длина.
Структура есть, для ее заполнения воспользовался списком существительных русских слов.
Заполнение базы и поиск слов было решено реализовать в одном коде, обработку разделить флагами.
Так же само создание файла базы и создание таблицы реализовываются в init()
func init() {
var err error
connetion, err = sql.Open("sqlite3", "./words.db")
if err != nil {
log.Fatalf("Failed connection: %v", err)
}
_, err = connetion.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
if err != nil {
log.Fatalf("Failed create database table words: %v", err)
}
}
Форкни это: 8 проектов на Go, в исходном коде которых интересно покопаться
2018-12-04 в 11:24, admin, рубрики: Go, open source, блог binary district, Блог компании Binary District, исходный код, практика программированияМы в Binary District проводим интенсивы по Go. За два дня можно научиться понимать идеологию и внутренности Go, писать чистый тестируемый код. Но это первый шаг, а дальше — практика, практика, практика: читать чужой код, писать и править свой.
Для этого идеально подходит open source:
- Open source повышает насмотренность. Можно невозбранно изучать исходники.
- Open source дает стимул писать максимально чистый код и документировать логику.
- Вклад в open source движение улучшает карму.

Вместе с выпускником нашего Go-курса Сергеем Tolsi мы составили список открытых проектов разного уровня и направленности, которые подходят, чтобы учиться писать хороший код и заодно делать мир лучше.
Читать полностью »
Что нового в GoLand 2018.3
2018-11-30 в 13:56, admin, рубрики: Go, GoLand, golang, jetbrains, Блог компании JetBrains, ПрограммированиеПривет!
На прошлой неделе вышла новая версия GoLand 2018.3.

В этом обновлении вы найдете множество улучшений для отладки и тестирования. Это отладка приложений на платформе Google App Engine, Testify фреймворк, анализ дампов памяти и Mozilla rr.
Появился новый Change Signature рефакторинг, инспекции кода и автодополнение для функций.
Кроме того, мы добавили поддержку для диаграмм, улучшили Rename и Inline рефакторинги, работу с шаблонами Go(text/html) и системой контроля версий для Git, Docker и Kubernetes плагины, и многое другое.
External — GUI для Golang
2018-11-29 в 10:32, admin, рубрики: Go, golang, harbour, hwgui, open source, интерфейсы, ПрограммированиеПриветствую вас, коллеги!
Около месяца назад я опубликовал здесь статью GUI-фреймворки — на поток, где предлагалась технология создания GUI-фреймворков для разных языков программирования, основанная на подключении (tcp/ip или каком другом) к внешнему процессу, играющему роль своеобразного GUI-сервера. Здесь я хочу представить конкретную реализацию этой идеи — новый GUI-фреймворк для Golang — External.
Зачем вообще потребовалось писать новый GUI для Golang, если в наличии уже имеется немало таких инструментов? В первую очередь, потому, что ни один из них не устраивал меня в полной мере. Нужно было что-то для создания десктопных приложений, кросс-платформенное, чтобы выглядело естественно для каждой платформы. По-возможности, не очень громоздкое, имеющее минимум зависимостей — я привержен минималистическому подходу.Читать полностью »
Отчёт с митапа «Go в продакшене»: видео, фото, презентации
2018-11-27 в 12:55, admin, рубрики: Go, golang, golang-dev, mail.ru group, meetup, Блог компании Mail.Ru Group, конференции, Программирование
Всем привет! 23 сентября мы отлично провели время в московском офисе Mail.Ru Group на митапе сообщества Go в продакшене. Собрали для вас фото, видео и презентации.
Читать полностью »

