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

image

Привет! Весна пришла на планету, а вместе с ней и многочисленные митапы и конференции.

Мы продолжаем формировать IT-community в Казахстане и делиться опытом веб-разработки и использования передовых технологий. 21 апреля в г. Алматы проведем первую международную веб-конференцию Kolesa/Web 2018!

В программе 7 докладов от Колёса Крыша Маркет, Avito, Badoo, дискуссии в перерывах и море вкусных угощений.
Читать полностью »

Привет! Я пишу php-parser на Go, и самый часто задаваемый вопрос: “А зачем это нужно?”

PHP парсер это библиотека которая разбивает текст на лексемы, а затем по грамматическим правилам, описанным в форме Бэкуса-Наура, собирает AST(Абстрактное синтаксическое дерево) с которым уже можно работать в языке программирования.

Я собрал несколько примеров где это используется.Читать полностью »

Привет. Хочу пригласить бэкендеров на Backend United #1. Винегрет — митап, посвященный кросс-языковым решениям для разработки серверной части. Обсудим общие подходы и инструменты для разных языков. Вы услышите доклады от представителей Gett RnD и Avito. Встреча пройдет в среду, 18 апреля, в московском офисе Avito.

Приходите на митап и приглашайте коллег. Под катом — тезисы выступлений, ссылки на регистрацию и видеотрансляцию встречи.

Backend United #1. Винегрет. Анонс - 1

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

Привет!

Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.

Знакомство с гео-библиотекой S2 от Google и примеры использования - 1

Введение

Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
Читать полностью »

Всем привет! В марте в московском Технополисе прошла конференция, посвященная языку программирования Go — GopherCon Russia 2018. На ней прозвучали выступления от core-team — было круто услышать из первых уст о том, как нужно делать правильно. И конечно, не обошлось без докладов про микросервисы, опентрейсинг, работу с сетью в Go, создание клиентских библиотек и крутых инструментов.
Хотим сказать «спасибо» выступающим — за доклады и организаторам — за возможность пообщаться с живым Бредом Фитцпатриком и настоящей Эшли МакНамара. Под катом рассказываем о докладах, мастер-классах и конкурсе от Avito, а также разыгрываем немного Go-сувенирки.

Avito на GopherCon Russia 2018 - 1

Большинство фото мы взяли из отчета, выложенного на странице GopherCon Russia 2018 в Facebook.

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

Всем привет! Я работаю в Avito и занимаюсь разработкой инструментов для тестирования. Когда у нас стало много UI-тестов, мы столкнулись с проблемой масштабирования Selenium-серверов, и сейчас я расскажу, как мы ее решили.

И так как же все-таки выполнять много UI-тестов параллельно, используя Selenium Grid? К сожалению — никак.
Selenium Grid не способен выполнять большое количество задач параллельно.
Хотите зарегистрировать действительно большое количество нод? Что ж, попробуйте.
Хотите скорости? Её не будет — чем больше нод зарегистрировано на гриде, тем менее стабильно выполняется каждый тест. Как следствие — перезапуски.
Хотите отказоустойчивость на случай, если Grid перестал отвечать? Тоже нет: вы не можете запустить несколько реплик и поставить перед ними балансировщик.
Хотите обновить Grid без даунтайма и чтобы тесты, выполняющиеся в данный момент, не упали? Нет, это не про Selenium Grid.
Хотите не держать тысячи Selenium-ов разных конфигураций в памяти, а поднимать их по требованию? Не получится.
Хотите знать, как решить все эти проблемы? Тогда приглашаю вас прочитать эту статью.

Как выполнять много UI-тестов параллельно, используя Selenium Grid? - 1

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

В предыдущей статье я описала как создать простую лямбду на Golang, которая принимает на вход простой объект из двух полей и такой же простой объект отдает на выходе. Теперь немного усложним задачу, подсоединив к лямбде в качестве источника данных Kinesis, а результат обработки записей Kinesis мы будем перекидывать в CloudSearch. Никакой особенной логики в лямбде не будет для упрощения: просто примем запросы от Kinesis, залогируем их в CloudWatch, преобразуем и отправим в CloudSearch.

image

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

Привет, коллеги! Пока блистательный Илон Маск вынашивает амбициозные планы терраформирования Марса, мы интересуемся новыми возможностями, связанными с парадигмой "Infrastructure as Code" и хотим предложить вам перевод статьи об одном из представителей «великолепной семерки» — Terraform. Книга Евгения Брикмана по теме неплохая, но ей скоро год, так что просим высказаться — хотите ли увидеть ее на русском языке

Слово Камалу Мархуби (Kamal Marhubi) из компании Heap.
Читать полностью »

В середине января этого года Амазон анонсировал поддержку Go в своих лямбдах.
Отличная новость, но сейчас я пишу эти строки не имея никакого опыта написания кода на Golang, чтобы, проходя через пеньки и ухабы, параллельно с написанием статьи, прийти к первой своей работающей лямбде на Go.
Читать полностью »

image

Прилетела мне недавно задача дополнить функционал одной довольно старой програмки (исходного кода программы нет). По сути нужно было просто сканить периодически БД, анализировать информацию и на основе этого совершать рассылки. Вся сложность оказалась в том, что приложение работает с БД c-tree, написанной аж в 1984 году.

Порывшись на сайте производителя данной БД нашёл некий odbc драйвер, однако у меня никак не получалось его подключить. Многочисленные гугления так же не помогли нормально сконнектиться с базой и доставать данные. Позже было решено связаться с техподдержкой и попросить помощи у разработчиков данной базы, однако ребята честно признались что уже прошло 34 года, всё поменялось 100500 раз, нормальных драйверов для подключения на такое старьё у них нет и небось уже тех программистов в живых тоже нету, которые писали сие чудо.
Порывшись в файлах БД и изучив структуру, я понял, что каждая таблица в БД сохраняется в два файла с расширением *.dat и *.idx. Файл idx хранит информацию по id, индексам и т.д. для более быстрого поиска информации в базе. Файл dat содержит саму информацию, которая хранится в табличках.

Решено было парсить эти файлики самостоятельно и как-то добывать эту информацию. В качестве языка использовался Go, т.к. весь остальной проект написан на нём.
Читать полностью »


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