Как стать автором
Обновить
116.1
Рейтинг

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Еще один дайджест (теперь Go)

Go *
image Привет всем фанатам и интересующимся Go. Это 6-й выпуск дайджеста ссылок и новостей о набирающем популярность языке. Не сочтите за наглую попытку пропиарить ресурс, на котором я регулярно публикую новости все о том же Go. Все последующие выпуски «тулзовин и хреновин» будут публиковаться именно на 4gophers.com. Кроме того, по просьбам трудящихся, теперь есть подписка на рассылку.

Тема этого выпуска — GopherCon 2014. Это самая большая Go-конференция в этом году. Возможно, кто-то из читателей лично присутствовал и может рассказать о своих впечатлениях. Все найденные в сети доклады и материалы я стараюсь собрать в этом посте.

Читать дальше →
Всего голосов 54: ↑50 и ↓4 +46
Просмотры 18K
Комментарии 6

Новости

Пишем Penguin Daycare Simulator на Go (Google App Engine) и Lua (Corona SDK)

Разработка мобильных приложений *Lua *Go *
Tutorial

1. Введение


Данный проект представляет собой простой пример использования Google App Engine в мобильном приложении.

Cерверная часть предоставляет список пингвинов в формате JSON. Мобильный клиент запрашивает этот список по HTTP или HTTPS.
Также серверная часть ведёт запись определённых событий в базу данных, а именно количество посещений конкретного пингвина и количество нажатий кнопок: скормить рыбку и почесать животик.
У каждого пингвина есть поля описания Name, Bio и поля счётчиков.
Читай далее, если тебе не безразличны пингвины...
Всего голосов 21: ↑18 и ↓3 +15
Просмотры 9.2K
Комментарии 0

Язык Go для начинающих

Разработка веб-сайтов *Программирование *Go *
Из песочницы
Gopher

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
Читать дальше →
Всего голосов 73: ↑67 и ↓6 +61
Просмотры 394K
Комментарии 71

Используем nginx, docker, skydns и skydock для обновления кода на лету (zero-downtime deployment)

Разработка веб-сайтов *Программирование *Go *
Из песочницы

Инструменты, которые мы будем использовать


Docker


Docker — простая и элегантная библиотека для создания легковесных изолированных друг от друга виртуальных контейнеров, в которых можно исполнять любой код. Совершенно не требователен к ресурсам, минимальный overhead.

Собрав контейнер один раз, его можно многократно использовать.

Простой пример — это БД Redis. Если нам необходимо несколько серверов Redis на одном компьютере, при обычном подходе нам придется изменять конфигурационные файлы в /etc/redis и менять файлы в /etc/init.d. Можно написать bash скрипт, но это не делает процесс легче.
Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Просмотры 23K
Комментарии 14

Пишем веб сервис на Go (часть вторая)

Разработка веб-сайтов *Программирование *Go *
Tutorial
Продолжение статьи о том, как написать небольшое полнофункциональное приложение на Go.

В первой части мы реализовали REST API и научились собирать приходящие HTTP запросы. В этой части, мы покроем наше приложение тестами, добавим красивый веб-интерфейс на основе AngularJS и Bootstrap, и внедрим ограничение доступа для разных пользователей.
Напишем капельку кода на Go
Всего голосов 38: ↑34 и ↓4 +30
Просмотры 23K
Комментарии 12

Пишем веб сервис на Go (часть первая)

Разработка веб-сайтов *Программирование *Go *
Tutorial
В этой статье, я хотел бы рассказать вам, как можно достаточно быстро и легко написать небольшое веб-приложение на языке Go, который, не смотря на юный возраст, успел завоевать расположение у многих разработчиков. Обычно, для подобных статей пишут искусственные приложения, вроде TODO листа. Мы же попробуем написать что-то полезное, что уже существует и используется.

Часто, при разработке сервисов, нужно понимать какие данные отправляются в другой сервис, а возможность перехватить траффик есть не всегда. И как раз для того, чтобы отлавливать подобные запросы, существует проект requestb.in, позволяющий собирать запросы по определённому урлу и отображать их в веб-интерфейсе. Написанием подобного же приложения мы и займёмся. Чтобы немного упростить себе задачу, возьмём за основу какой-нибудь фреймворк, например Martini.

В конечном итоге, у нас должен будет получится вот такой вот сервис:



Приступим к разработке
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 50K
Комментарии 10

Исполнение SSH-команд на сотнях серверов с помощью Go

Высокая производительность *Программирование *Go *

О чём статья


В этой статье мы с вами напишем простенькую программу на Go (в 100 строк), которая может исполнять команды через протокол SSH на сотнях серверов, делая это достаточно эффективно. Программа будет реализована с помощью go.crypto/ssh — реализации SSH протокола авторами Go.

Более «продвинутая» версия программы, написанной в этой статье, доступна на гитхабе под названием GoSSHa (Go SSH agent).
Читать дальше →
Всего голосов 43: ↑36 и ↓7 +29
Просмотры 30K
Комментарии 26

[Перевод] Массивы, срезы (и строки): Механизм 'вставки'

Программирование *Go *

Вступление


Одна из самых общих возможностей процедурных языков программирования, это концепция массива. Массивы могут показаться чем-то простым, но с другой стороны, перед их добавлением в язык требуется решить несколько вопросов, таких как:
  • Фиксированный или переменный размер?
  • Размер это часть типа?
  • Что из себя будут представлеть многомерные массивы?
  • Что из себя представляем понятие пустого массива?

Ответы на эти вопросы определят массивы как простую возможность языка, или как основную часть его дизайна.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 33K
Комментарии 8

Бесплатные скринкасты для изучения Go

Разработка веб-сайтов *Go *
Tutorial
На сайте GoCasts.io опубликована небольшая подборка скринкастов, обучающих программированию на языке Go. Всего опубликовано три скринкаста от Алана Харпера. Приятно, что в качестве примеров выбраны не абстрактные, а самые практичные примеры из реальной жизни.

#1 – HTTP Get
Как осуществить простой HTTP-запрос с использованием пакета net/http в стандартной библиотеке Go.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Просмотры 9.5K
Комментарии 3

Повторное использование кода в Go на примере

Разработка веб-сайтов *Open source *Go *
image «Пойду поищу готовое решение в Google»

В процессе работы над любым программным продуктом разработчик может столкнуться с проблемой заимствования чужого кода. Происходит это постоянно. С каждым годом, вместе с развитием социальных сетей для разработчиков, процесс становится всё более естественным и гладким. Забыли, как вытащить из файла все слова? Нет проблем, идём на Stack Overflow и получаем готовый сниппет. Для особо запущенных случаев есть даже плагин для Sublime Text, который по хоткею ищет выделенный текст на SO и вставляет кусок кода из принятого ответа прямо в редактор. Такой подход ведёт к ряду проблем…
Читать дальше →
Всего голосов 44: ↑41 и ↓3 +38
Просмотры 18K
Комментарии 23

Мой любимый редактор acme

Разработка веб-сайтов *Программирование *Go *
Еще один редактор? Я пользуюсь Vim в SSH сессиях, благо он гарантированно присутствует в любой инсталляции Linux. Мне нравится SublimeText уникальной способностью multiselect. Я иногда открываю emacs, чтобы прикоснуться к вечности и в полной мере ощутить свою никчемность.
acme у меня открыт постоянно, под катом агитация с картинками.
Это Гленда
Читать дальше →
Всего голосов 43: ↑33 и ↓10 +23
Просмотры 23K
Комментарии 25

Починка электронного правительства Объединенного Королевства посредством языка Go

Go *
Это первая ласточка в серии публикаций о новом динамическом HTTP маршрутизаторе поддерживающем GOV.UK. Это письмо проливает свет на наш порыв, объясняет решимость и подытоживает приобретенный опыт.

Зачем это нам сдалось.
Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Просмотры 7K
Комментарии 3

Блокнот с графическим интерфейсом на языке Go

Go *
Несмотря на то, что язык Go существует уже не один год, информация о том, как создавать приложения с графическим интерфейсом на этом языке, практически отсутствует. Возможно это вызвано тем, что среди официальных библиотек до сих пор нет библиотеки для работы с GUI. Однако это не значит, что мы не можем создать приложение с пользовательским интерфейсом: существуют библиотеки, предоставляющие такую возможность. Приведу их список. Но есть еще несколько библиотек, не указанных в этом списке. Среди них — Walk, название которого расшифровывается как «Windows Application Library Kit». С его помощью я попробую создать небольшое приложение с пользовательским интерфейсом.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 30K
Комментарии 19

Релиз Go 1.2

Go *
Перевод
image1 декабря 2013. Мы рады объявить о выпуске последней стабильной версии Go 1.2.

С момента предыдущего релиза Go 1.1, в мае, прошло около семи месяцев и это гораздо более короткий период, чем четырнадцать месяцев между релизами 1.1 и 1.0. Мы ожидаем сопоставимые интервалы времени между мажорными релизами в будущем.

Go 1.2 включает пару незначительных изменений языка, некоторое количество улучшений в реализации компилятора и инструментов, несколько моментов улучшения производительности, много дополнений и (обратно-совместимых) изменений в стандартной библиотеке.

Пожалуйста подробно изучите замечания к релизу, так как некоторые изменения могут повлиять на поведение существующих программ. Далее рассмотрим основные изменения и нововведения.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 8.8K
Комментарии 2

Нагрузочный тест на Go, версия 2

Разработка веб-сайтов *Тестирование IT-систем *Go *
Tutorial
Никак не доходили руки переписать go-meter. Увеличить производительность, получить более полный контроль над процессом и довести до приближения к wrk. В идеале хочется увидеть легко и удобно расширяемую альтернативу. Да, в wrk недавно появилась поддержка Lua скриптов, которые решают многие неудобства, но и там тоже есть неприятные нюансы, например, расширенную статистику собирать не получится, так как методы вывода статистики работают только на первом потоке, и к собранным данным на других потоках доступа нет, поэтому сводится опять к тому, что-бы разбираться в исходниках и делать под себя, но это не тривиальная задача. И так, готовим нагрузочный тест на Go, c плюшками. Кому интересно, прошу под кат.
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 7.7K
Комментарии 13

Изящный вебсервер на Go (Graceful Restart)

Высокая производительность *Разработка веб-сайтов *Go *
Из песочницы
В этой статье я собираюсь описать Graceful Restart на Go. Graceful Restart важен для Go вебприложения. Go обладает одним недостатком. В Go нет возможности перезагружать код вовремя исполнения. Поэтому разработчики на Go встречаются с проблемой, которой нет в серверах написанных на Java, .NET или PHP. Если нужно обновить код сервера написанного на Go, то процесс сервера надо остановить и запустить новый процесс. Это понижает доступность сервера в момент обновления кода.

В предыдущей статье я описал Балансировщик на Go в 200 строк. На базе балансировщика можно обеспечить высокую доступность вовремя обновления приложения, но как тогда обновить сам балансировщик. Использование балансировщика часто может быть просто лишним. Если ваш сервер запущен на Mac OS X или Linux, то есть другой способ обновить код сервера и обработать все запросы поступившие в момент перезапуска сервера. Этим способ является Graceful Restart.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 18K
Комментарии 37

Знакомство с Go, часть 2: пишем граббер изображений с балансировщиком и извращениями

Go *

Задание


Недавно я рассказывал, как выполнял секретную миссию и с помощью Go загружал дамп цитат с «пустоты». Пришло время снова вступить в бой, на этот раз дело касается «Ататы», и не только потому что в рифму с пустотой.

Для тех кто пропустил — в свое время «Тематические Медиа» (да-да, хозяева хабра) запустили проект «Респектива» ( этакую гламурную имиджборду\тумблр с одним разделом), хитроумными баннерами заманили туда девушек и программистов и стали ждать, видимо надеясь что срастется. Не срослось, и через некоторое время «Респективу» мутировали в «Атату», которая уже имела функционал для создания пользовательских бордпотоков, хабов для объединения тематических потоков и так далее. Какое-то время проект развивался, но Девушки ушли, остались программисты, да и их стало куда меньше. Сейчас это место почти покинуто, там чумные ветра, брошенные поезда, темнота и только редкие вопли нескольких выживших старожилов изредка прорезают хтмл в ночи.

И ладно, атата с ней, с этой ататой. Но отличного контента в виде картинок там осталось немало, один тред с обоями чего стоит! Поэтому неудивительно, что следующее задание из штаба выглядело следующим образом:
«Срочно сохранить для потомков все изображения из потока #949 #291. ps. Извращенно.»

Ну, что же, есть задание — нужно работать. Вообще-то по извращенным структурам у нас уже есть некий кофейный чемпион, но и на Go тоже можно что-нибудь сообразить! После 9 часов работы в Paint у меня родился следующий план атаки:



Степень изврата поражает, начальство будет довольно! Рассмотрим что тут и как:

«Генератор» будет загружать с ататы хтмл код страниц, выдергивать урлы картинок и передавать их «Балансировщику», который раскидывает эти урлы некоторому количеству «Рабочих» (каждый из которых имеет свою небольшую очередь заданий) следя за тем, чтобы все рабочие были равномерно нагружены. Ну а «рабочие» загружают картинки и радуют глаз умиленного балансировщика. Выглядит избыточно, но зато про войну! Поехали:
Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Просмотры 21K
Комментарии 11

Java vs Go

Java *Go *
Из песочницы
Последнее время язык Go стал очень обсуждаемым, и довольно часто его сравнивают с Java. Неделя Go принесла нам очень интересную ознакомительную статью Dreadd, и мне стало интересно, как справится с описанной задачей Java.
По мере написания кода стало понятно, что и в Java тоже есть много интересного, но мало освещённого в прессе. Я постарался использовать самые интересные нововведения из Java7, надеюсь тут найдут полезную информацию как начинающие, так и опытные, но ленивые Java разработчики.
Почитать чужой код
Всего голосов 71: ↑59 и ↓12 +47
Просмотры 34K
Комментарии 62

Загружаем данные в postgresql

PostgreSQL *Go *
Прочитал статью о разгоне производительности операций вставок в СУБД Oracle при помощи транзакций на Java. Так как в данный момент я работаю с postgresql, то решил проверить, сколько выдаст эта СУБД в связке с голангом.
Используемый стек: golang-1.1.2 + postgresql-9.3.1.
Для запуска программы понадобится голанговский драйвер для postgresql. Я пользуюсь драйвером github.com/lib/pq, который установил при помощи команды go get -u github.com/lib/pq.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 18K
Комментарии 7

Вклад авторов

Работа

Go разработчик
155 вакансий