Как стать автором
Поиск
Написать публикацию
Обновить
170.22

Go *

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

Сначала показывать
Порог рейтинга
Уровень сложности

[Перевод] Почему Go не так хорош

Время на прочтение16 мин
Количество просмотров56K
Всем привет! Недавно вышел перевод статьи о том, как TJ Holowaychuk прощался с Node.js, решив двигаться в сторону Go. В конце статьи была ссылка на посвящённый сравнению и критике языка Go пост Уилла Ягера, который просили перевести — собственно, с результатами перевода я и предлагаю ознакомиться. Я пытался более-менее сохранить как многословный стиль изложения, присущий автору, так и оригинальную разбивку на предложения и параграфы.
Буду очень рад любым конструктивным замечаниям и предложениям по переводу, опечаткам и/или оформлению, но очень прошу помнить, что точка зрения переводчика может не совпадать с позицией автора переведённой статьи.
Читать перевод

TJ Holowaychuk: Прощай Node.js

Время на прочтение5 мин
Количество просмотров54K
Примечание от переводчика:

Я решил перевести эту статью в основном из-за личности автора. TJ вложил очень много усилий в развитие Node.js и его инфраструктуры, он автор таких проектов как express, jade, mocha, stylus, автор 550 репозиториев на npm. Существуют также теория, что под этим именем скрывается группа людей.

Как бы то ни было, JavaScript и Go сообщества в ближайшие время ожидают изменения.

Покидая страну Node.js


Я сражался с Node.js достаточно долго, что бы перестать получать от этого удовольствие, это мое официальное прощание! И, что еще важнее, я ищу людей, которые смогут поддерживать мои проекты!

Node отлично справляется с некоторыми вещами, но, к сожалению, это не самый подходящий инструмент для того, что мне сейчас интересно. Я все еще планирую использовать его для сайтов, но если вы хотели бы заняться поддержкой одного из моих проектов, дайте мне знать. Просто оставьте комментарий с вашим именем на Github, ссылкой на npm и названием проекта. Как обычно я прошу не делать больших изменений в существующих API: создать новый проект будет проще.

Я также продолжу поддерживать Koa.

Читать дальше →

Go-дайджест: июнь 2014

Время на прочтение3 мин
Количество просмотров12K
image

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

Новости

  • Вышел Go 1.3 — Версия 1.3 была выпущена 18 июня, спустя шесть месяцев после версии 1.2, и она не содержит изменений в языке. Основная работа была произведена над реализацией, что обеспечило точную сборку мусора, рефакторинг тулчейна, результатом которого стала более быстрая сборка, особенно больших проектов, и значительное улучшение производительности. Прочитать о новом релизе подробнее можно здесь [ru], и еще подробнее — на официальном сайте [en] и в коротком обзоре [en].
  • Поддержка Android в Go 1.4 [en] — Скорее всего, в новой версии языка появится поддержка Android, причем биндинги для OpenGL и Java позволят писать игры на Go и использовать свой код на мобильной платформе.
  • Dropbox отдали в open source свои библиотеки для Go [en] — Как стало известно, хотя в Dropbox и продолжают разрабатывать большую часть функционала на Python, но критические для производительности компоненты уже мигрировали на Go. В связи с чем компания написала несколько своих «велосипедов», которые многим будут полезны. Выложенные компоненты предназначены для работы с кэшированием и Memcache, построением SQL-запросов, улучшенным выводом ошибок и улучшенным алгоритмом хэширования.
  • Состоялась встреча Golang Moscow — Видеозаписи докладов с московской встречи гоферов, состоявшейся 21 июня, можно посмотреть по ссылке.
  • На прошедшей Google I/O 2014 было несколько докладов про Golang — И их записи будут доступны в виде скринкастов несколько позже.
  • Cayley, открытая графовая база данных от Google, написанная на Go — Работает как надстройка над LevelDB или MongoDB. Есть обзор и видео.
  • juju — Крутой DevOps-инструмент для управления облаками от Ubuntu — теперь и на Github.
  • Релиз beego 1.3 — Новый релиз фреймворка для быстрой разработки веб-приложений и API на Go
  • Релиз отличного менеджера зависимостей gpm v1.2.3

Читать дальше →

Видеозаписи докладов конференции Golang Moscow

Время на прочтение1 мин
Количество просмотров7.2K
image

Сегодня на площадке Digital October состоялась встреча московского сообщества разработчиков на языке программирования Go.

Доклады на мероприятии были следующие:

  • Вячеслав Бахмутов из Яндекса рассказал про опыт использования Go в своей компании в облачной платформе Cocaine. «В Яндексе нет вакансий на gophers, берут питонистов, а потом говорят – будешь писать на Go» coocheenin
  • Артём Андреенко из Openstat (Spylog) рассказал про опыт использования Go в своей компании в режиме реального времени.
  • Александр Орловский из sports.ru рассказал про очереди сообщений (и в частности NSQ).

Видеозапись докладов доступна для всех интересующихся по ссылке:
digitaloctober.ru/ru/events/golang_moscow

Фотография взята из Твиттера @HornedKavu

Делаем многопользовательскую игрy на Go и WebSocket'ах

Время на прочтение9 мин
Количество просмотров49K
golang gopher
Продолжаем знакомство с языком программирования Go (golang). В прошлый раз мы посмотрели основные конструкции языка. В этой статье я хочу показать использование горутин и каналов. И, конечно, продемонстрировать все это на реальном приложении, в данноcм случае многопользовательской игре. Рассматривать будем не всю игру, а только ту часть бэкэнда, которая отвечает за сетевое взаимодействие между игроками посредством WebSoket.

Игра пошаговая, для двух игроков. Однако, описанные ниже приемы можно применять для создания других игр, от покера до стратегий.
Читать дальше →

Является ли Go языком ООП?

Время на прочтение9 мин
Количество просмотров76K
Object-oriented design is the roman numerals of computing.
— Rob Pike, автор Go.

image

Предлагаю вашему вниманию вольный перевод заметки «Is Go An Object Oriented Language?» за авторством Steve Francia, в которой автор наглядно рассказывает об особенностях использования парадигмы ООП в Go. Сразу предупреждаю, что из-за свойств оригинального материала большую часть текста пришлось переформулировать полностью, где-то добавить своего. Флажок перевода убирать не стал.
Читать дальше →

Разбор строки адреса (улица [дом]) средствами Golang и Postgis

Время на прочтение3 мин
Количество просмотров15K
Hi, %habrauser%.
Столкнулся я на днях с интересной задачей — пользователь вводит строку, которая может быть улицей с домом, просто улицей или вообще не улицей, а нам надо узнать имел ли он ввиду улицу с домом и соответствующее ему подсказать.
— Казалось бы чего проще — разбей строку по пробелу и наслаждайся — подумал Штирлиц
— А как насчет улицы Павла Корчагина — шепнула птица Обломинго
— Эм, ну номер дома же наверняка число — сказал Штирлиц
— Ага, корп1 — хорошее число
— Мдя, придется изобретать велосипед

Читать дальше →

DevConf 2014: Пишем функциональное, надежное и быстрое веб-приложение на Go

Время на прочтение2 мин
Количество просмотров9.3K

Дмитрий Вьюков, разработчик, Google работающий над ядром языка Go выступит докладчиком на DevConf 2014

Поддержите Дмитрия, чтоб доклад вошел в программу конференции DevConf 2014


В программе еще 2 доклада по Go:
  • Go на Google App Engine — просто, надёжно, быстро и недорого.
  • Go: аналитика Рунета в реальном времени
Предлагаем Вашему вниманию интервью с автором доклада
Читать дальше →

Реверс-инжинеринг и написание бота для flash игры на Go

Время на прочтение19 мин
Количество просмотров9.9K
image В этой статье я расскажу, как декомпилировать flash-приложение с последующим извлечением алгоритма подписи запросов на игровой сервер. И как на основе этой информации написать игрового бота на Go.
Все началось с того, что я искал стратегию, чтобы поиграть со своего android смартфона. Нашел неплохую игру под названием «Throne rush». Потом оказалось, что есть и браузерный клиент, что делает удобнее некоторые действия. Но все же игровой процесс явно требовал автоматизации. Я воспользовался прекрасным инструментом JPEXS Free Flash Decompiler, о котором далее пойдет речь.
Читать дальше →

Как ускорить программу на Go

Время на прочтение2 мин
Количество просмотров17K
Увы, я не веду свой бложик, а результат недавнего «открытия» обнародовать в виде заметки считаю необходимым. Полагаю, найдутся люди, которым это весьма пригодится.

Go — язык, компилируемый в нативный код, а посему, очевидно, должен быть быстрым. Однако, к сожалению, на данный момент это далеко не всегда соответствует действительности.
В моём же случае, Go проиграл PHP (ну, на самом деле модулю PHP на C, однако результат всё равно удручающий). Если кратко, то при вычислении Whirlpool-хеша Go проигрывал в 3,5-7.5 раз!
Покажи решение

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

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

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

Читать дальше →

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

Время на прочтение13 мин
Количество просмотров9.6K

1. Введение


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

Cерверная часть предоставляет список пингвинов в формате JSON. Мобильный клиент запрашивает этот список по HTTP или HTTPS.
Также серверная часть ведёт запись определённых событий в базу данных, а именно количество посещений конкретного пингвина и количество нажатий кнопок: скормить рыбку и почесать животик.
У каждого пингвина есть поля описания Name, Bio и поля счётчиков.
Читай далее, если тебе не безразличны пингвины...

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

Время на прочтение9 мин
Количество просмотров504K
Gopher

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
Читать дальше →

Ближайшие события

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

Время на прочтение5 мин
Количество просмотров24K

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


Docker


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

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

Простой пример — это БД Redis. Если нам необходимо несколько серверов Redis на одном компьютере, при обычном подходе нам придется изменять конфигурационные файлы в /etc/redis и менять файлы в /etc/init.d. Можно написать bash скрипт, но это не делает процесс легче.
Читать дальше →

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

Время на прочтение18 мин
Количество просмотров26K
Продолжение статьи о том, как написать небольшое полнофункциональное приложение на Go.

В первой части мы реализовали REST API и научились собирать приходящие HTTP запросы. В этой части, мы покроем наше приложение тестами, добавим красивый веб-интерфейс на основе AngularJS и Bootstrap, и внедрим ограничение доступа для разных пользователей.
Напишем капельку кода на Go

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

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

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

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



Приступим к разработке

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

Время на прочтение5 мин
Количество просмотров36K

О чём статья


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

Более «продвинутая» версия программы, написанной в этой статье, доступна на гитхабе под названием GoSSHa (Go SSH agent).
Читать дальше →

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

Время на прочтение15 мин
Количество просмотров38K

Вступление


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

Ответы на эти вопросы определят массивы как простую возможность языка, или как основную часть его дизайна.
Читать дальше →

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

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

#1 – HTTP Get
Как осуществить простой HTTP-запрос с использованием пакета net/http в стандартной библиотеке Go.
Читать дальше →

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