Рубрика «Go» - 50

Даже слон не выдержит столько данных

Постановка задачи

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

К такому количеству записей существующие SQL/NoSQL системы хранения оказались плохо приспособлены, поэтому клиент предложил с нуля разработать специализированное решение.

Читать полностью »

Привет!

Три года назад мы приняли стратегическое решение принять участие в разработке go-lang-idea-plugin, опенсорсного проекта, нацеленного на создание IntelliJ-плагина для Go. За эти три года наш вклад (в сумме около 3000 коммитов) помог полностью переписать плагин, сделав его более стабильным, расширяемым и функциональным.

В прошлом году мы начали подсчет количества уникальных пользователей плагина. За год оно выросло вдвое и теперь составляет 30 тысяч активных пользователей в месяц. Это, а также большое количество пользователей, ждущих от нас Go IDE уровня IntelliJ IDEA, вместе убедили нас наконец «форкнуть» go-lang-idea-plugin и создать собственную IDE для Go.

Сегодня мы рады представить вашему вниманию Gogland, новую Go IDE и последнее пополнение семейства IDE на базе платформы IntelliJ! Хотя Gogland находится в активной разработке, сегодня мы начинаем «закрытое» тестирование. Это означает, что у вас есть шанс одними из первых опробовать Gogland.

Читать полностью »

Довольно часто на Хабре появляются статьи о написании бота для Telegram, которые в своем роде, если откинуть уникальность идеи, являются самым обычным туториалом на тему «как получить сообщение от Telegram, обработать его и отправить ответ пользователю». Однако ни в одной из статей, прочтенных мной (конечно же, не берусь утверждать, что прочел их все, но тем не менее) я не встретил упоминания о лимитах отправки сообщений пользователям и как с ними работать. Кого заинтересовал, прошу под кат.
Читать полностью »

Спроси backend-разработчиков Badoo. Часть 1. Платформа - 1

Нам очень нравится формат AMA (ask me anything) на Reddit, когда кто-нибудь (в нашем случае – команда разработчиков) приходит в сабреддит AMA и говорит, что готов отвечать на заданные вопросы. Из самых запоминающихся сессий Ask Me Anything, например, команда инженеров Space X, или инженеры из Google, и даже действующий президент США Барак Обама четыре года назад отвечал на вопросы на Реддите. Недавно наша Android-команда проводила AMA и в онлайн-режиме отвечала на вопросы разработчиков.

Но в России нет своего Реддита. Зато есть свой Хабр. Поэтому мы решили прийти с форматом «задай нам вопрос» сюда. И не с пустыми руками, как велят правила AMA. Чтобы вам было проще понять тему, мы выбрали одну из наших команд – «Платформу» – и попросили ребят рассказать, чем они занимаются, на чём программируют и чего добились за время существования команды. И подвели небольшие итоги уходящего 2016 года. Поехали!

Оглавление

1. Чем занимается «Платформа»
2. Сервисы: Pinba, SoftMocks и другие
3. Системное программирование. Как мы начали использовать Go и к чему это привело
4. Фотографии
5. Скриптовое облако
6. LSD: Live Streaming Daemon
7. Cassandra Time Series: что это и как работает
8. Badoo AMA: задай вопрос разработчикам «Платформы»

Пруф, что это действительно мы.
Читать полностью »

Обзор конференций, на которых мы побывали в 2016 году - 1

Возможно, вы уже слышали о том, что в Badoo каждый год в декабре мы с коллегами ходим в баню составляем календарь конференций для технарей по всему миру, на которые хотим попасть. И 2016 год не стал исключением: у нас в списке больше ста конференций, но мучить отчетами с каждой мы вас, конечно, не будем. Вместо этого мы выбрали лучшие, по мнению наших разработчиков, и собрали небольшие отзывы очевидцев из Badoo. Спойлер: конференций восемь. Спойлер второй: некоторые отзывы не такие уж и небольшие. Поэтому ниже – оглавление.

Оглавление

1. CodeFest, Новосибирск, Россия
2. SQA Days 19, Санкт-Петербург, Россия
3. DevConf, Москва, Россия
4. Velocity, Нью-Йорк, США
5. GopherCon, Денвер, США
6. Percona Live, Амстердам, Нидерланды
7. ZendCon, Лас-Вегас, США
8. HighLoad++, Москва, Россия
Читать полностью »

Всем привет. В дополнении к моей предыдущей статье был интересный диалог с
kirill_danshin. В конце концов мы это сделали. Встречайте — efaceconv, тулза для go generate, с помощью которой можно приводить типы из interface{} без аллокаций и в ~4 раза быстрее.
Читать полностью »

Написал программу для автоматического выписывания ssl-сертификатов налету (при первом запросе к домену).
Для начала работы программы её достаточно просто запустить, настраивать не надо совсем (даже домены для сертификатов указывать не надо).

github.com/rekby/lets-proxy/releases/latest

Подробности внутри.
Читать полностью »

Всем привет! Недавно я писал про реализацию пустых интерфейсов в Go, та статья, как можно догадаться имеет прямое отношение к разработке ОС на Go, да данная тема не заброшена и не забыта, но была отложена на долгий срок.

Под катом: «выкидываем» asm прокси-методы, имплементируем методы panic() и поддержку рантаймовых ошибок.
Читать полностью »

1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Библиотека
• 16.4 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой

Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространство имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать полностью »

Языку программирования Go — семь лет - 1

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

Что такое Go и чем он хорош, мы описывать не будем: кто в теме, знают и так, а остальные могут почитать в Википедии. Уже вчера мы поделились с вами полезным переводом 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков, а сегодня передаём слово нашим разработчикам, пишущим на Go. В честь годовщины мы задали каждому из них три вопроса:

  1. Почему ты выбрал Go (плюсы/минусы)?
  2. Что ты уже написал на Go?
  3. Как лучше изучать Go, что посоветуешь начинающим?

Вот что они ответили.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js