Go — относительно молодой, но популярный язык программирования. По данным опроса Stack Overflow, именно Golang получил третье место в рейтинге языков программирования, которые хотели бы освоить разработчики. В этой статье мы попробуем разобраться в причинах популярности Go, а также посмотрим, где этот язык используется и почему его вообще стоит изучать.
Рубрика «Go» - 27
Зачем вам учить Go
2019-04-08 в 15:54, admin, рубрики: geekbrains, Go, golang, mail.ru group, Блог компании Mail.Ru Group, Программирование, Учебный процесс в ITМой путь от Python к Go — делюсь советами и ресурсами
2019-03-22 в 14:41, admin, рубрики: Go, python, skillbox, Блог компании Skillbox, выбор, Программирование, Учебный процесс в ITОт переводчика: перевели для вас статью Илада Леева о переходе с Python на Go. Статья будет полезна не только начинающим программистам, но и всем, кто так либо иначе интересуется Go.
Мне нравится Python. Этот язык был моим фаворитом последние пять лет. Он дружелюбный, эффективный, и его легко выучить. Используется практически для всего: от создания простых скриптов и веб-разработки до визуализации данных и машинного обучения
Постепенное «созревание» Go, обширное комьюнити и тот факт, что все больше компаний принимают этот язык на вооружение после успешных тестов, заставили меня обратить на него внимание и углубиться в литературу. Но этот пост не о том, что лучше — Python или Go: сравнений в сети огромное количество. По моему мнению, все зависит от области применения. Я собираюсь рассказать о том, почему выбрал Go, дав несколько советов и ссылок на полезные ресурсы для всех интересующихся темой.
Читать полностью »
GraphQL и Golang
2019-03-22 в 9:00, admin, рубрики: Go, graphql, Блог компании RUVDS.com, разработка, Разработка веб-сайтовТехнология GraphQL за последние несколько лет, после того, как компания Facebook перевела её в разряд опенсорсных, стала весьма популярной. Автор материала, перевод которого мы сегодня публикуем, говорит, что попробовал работать с GraphQL в среде Node.js и на собственном опыте убедился в том, что эта технология, благодаря её замечательным возможностям и простоте, неслучайно привлекает к себе столько внимания. Недавно он, занимаясь новым проектом, перешёл с Node.js на Golang. Тогда он и решил испытать совместную работу Goland и GraphQL.
Изучаем Go: подборка видеозаписей докладов
2019-03-21 в 16:00, admin, рубрики: Go, Блог компании Mail.Ru Group, видео, высокая производительность, ПрограммированиеСегодня язык Go широко используется для разработки распределённых и высоконагруженных приложений. Мы собрали для вас подборку видео, в основном с наших митапов, в которых разбираются преимущества и недостатки языка, и рассказывается об особенностях его применения на примерах реальных проектов.
Список видеозаписей:
- Go в production.
- Профилирование Go-приложений.
- Медиасервер трансляций на Go.
- Pipeline поиска по Почте на Go.
- Синхронизация данных в Go с помощью mysql binlog.
- Как мы начали использовать Go в Ответах Mail.ru.
- Pub/Sub и 1 миллион WebSocket’ов.
- Программирование на Go (курс).
- Кому нужен язык Go и микросервисы.
Условия в Go и их странности
2019-03-18 в 9:45, admin, рубрики: Go, высокая производительность, компиляторы кода, оптимизация кода, Серверная оптимизацияКак вы думаете, эквиваленты ли по производительности эти два варианта проверки условий внутри цикла?
if a > b && c*2 > d {
....
}
// и
if a <= b {
continue;
}
if c*2 > d {
....
}
Beego — это уже не Go
2019-03-16 в 17:25, admin, рубрики: beego, framework, Go, golang, ruby on rails, ПрограммированиеЛюбой хайп весьма забавен, когда смотришь на него со стороны. Менее забавен, когда оказываешься в него вовлечен напрямую.
Хайп Go пришелся где-то на 2014ый год, когда авторы приложений имевших от силы 1000RPM (requests per minute) вдруг как один решили, что им срочно нужен concurrency, потому что вот-вот их 1000RPM превратиться в 1000RPS (что тоже не так много, на самом деле).
Результатом хайпа стало то, что к Go приобщилось много людей, привыкших к MVC архитектуре приложения, буть то Spring, Django или Ruby on Rails. И эту архитектуру, как сову на глобус, они стали натягивать на Go. Так появились кадавры вроде Beego и Revel. Revel благополучно сдох, хотя его и пытаются все еще откачать. А вот о Beego хочется поговорить отдельно.
Немалый вклад в продвижение Beego среди масс вложил Richard Eng своим циклом статей «A word the Beegoist». Практически «Евангелие от Ричарда». Иронично, что не смотря на то, что Ричард оголтело продвигает Go, сам он на нем не пишет.
В свою очередь я с Go, а еще хуже, с Beego, проработал не мало. И могу сказать, что это явно не тот путь, которым должна идти разработка на Go.
Читать полностью »
Наша проблема c зависимостями
2019-03-13 в 16:40, admin, рубрики: Go, open source, абстрагирование зависимости, изоляция зависимости, информационная безопасность, пакетные менеджеры, управление зависимостямиНа протяжении десятилетий повторное использование ПО чаще обсуждалось, чем реально имело место. Сегодня ситуация обратная: разработчики каждый день повторно используют чужие программы, в виде программных зависимостей, а сама проблема остаётся практически неизученной.
Мой собственный опыт включает десятилетие работы с внутренним репозиторием Google, где зависимости установлены как приоритетная концепция, а также разработку системы зависимостей для языка программирования Go.
Зависимости несут серьёзные риски, которые слишком часто упускаются из виду. Переход к простому повторному использованию малейших фрагментов ПО произошёл так быстро, что мы ещё не выработали лучшие практики для эффективного выбора и использования зависимостей. Даже для принятия решения, когда они уместны, а когда нет. Цель этой статьи — оценить риски и стимулировать поиск решений в этой области.
Читать полностью »
Gotify — open source проект по доставке уведомлений и отправке сообщений на сервер
2019-03-12 в 6:13, admin, рубрики: github, Go, Gotify, open source, push, rest api, открытое ПО, пуши, сервер, Серверное администрирование, сообщенияДля тех, кто администрирует серверы и/или веб-проекты остро стоит вопрос информированности о том, что же происходит с их «подопечными». На рынке существует масса решений об оповещении о сбоях, состоянии соединения и прочих параметрах, в том числе и с помощью СМС. Речь о MRTG, Twilio, F-Droid, сервисах Google и многих-многих других. Вот только проблема в том, что большинство из этих решений весьма узко специализированы, а повлиять на их функции не представляется возможным. MRTG отдаст информацию о трафике и соединении, Google пришлет СМС. Кое-какую свободу дает Twilio в плане написания скриптов на JavaScript под свои нужды, но простите, это же коммерческий проект. То есть «давай, плати бабло или проваливай».
Так вот, в этом семействе инструментов у нас есть open source пополнение: Gotify — простой клиент-серверный проект для получения и отправки пуш-уведомлений и команд, в том числе и через Android-приложение. И о нем определенно стоит рассказать чуть подробнее, думаю, это пригодится для тех, кто искал нечто похожее и при этом бесплатное, но в итоге завел собственный pet-project. Вполне возможно, эта публикация сэкономит пару сотен часов вашего времени.
Читать полностью »
Механизмы выделения памяти в Go
2019-03-07 в 9:00, admin, рубрики: Go, golang, Блог компании RUVDS.com, разработка, Разработка веб-сайтов, Серверная оптимизацияКогда я впервые попытался понять то, как работают средства выделения памяти в Go, то, с чем я хотел разобраться, показалось мне таинственным чёрным ящиком. Как и в случае с любыми другими технологиями, самое важное здесь скрывается за множеством слоёв абстракций, сквозь которые нужно пробраться для того, чтобы что-то понять.
Автор материала, перевод которого мы публикуем, решил добраться до сути средств выделения памяти в Go и рассказать об этом.
Читать полностью »
Go += управление версиями пакетов
2019-03-01 в 14:35, admin, рубрики: Go, Go 1.11, vgo, управление версиями пакетовСтатья написана в феврале 2018 года
В Go необходимо добавить версионирование пакетов.
Точнее, нужно добавить концепцию версионирования в рабочий словарь разработчиков Go и в инструменты, чтобы все употребляли одинаковые номера версий при упоминании, какую именно программу собрать, запустить или проанализировать. Команда go
должна точно говорить, какие версии каких пакетов находятся в конкретной сборке.
Нумерация версий позволяет сделать воспроизводимые сборки: если я выложу последнюю версию своей программы, вы получите не только последнюю версию моего кода, но и точно такие же версии всех пакетов, от которых зависит мой код, так что мы с вами создадим полностью эквивалентные двоичные файлы.
Версионирование также гарантирует, что завтра программа соберётся точно так же, как сегодня. Даже если вышли новые версии зависимостей, go
не станет их использовать без специальной команды.
Читать полностью »