Почитать на каникулах. Лучшие посты в нашем блоге за 2018 год

Привет! Грядут новогодние каникулы, а с ними и некоторое количество свободного времени Собрали подборку популярых статей из нашего блога. Внутри деление → бекенд, фронтенд, команда, мобильная разработка.

Приглядитесь, даже если почитываете наш блог время от времени.
Читать дальше →
Почитать на каникулах. Лучшие посты в нашем блоге за 2018 год
Source: habrahabr

snap & flatpack — трагедия общин

Лонгрид варнинг: вас предупредили, много букв.

Уже давно ведётся разработка формата дистрибуции приложений, которые были «свободны» от общесистемных зависимостей. Ubuntu очень, очень активно продвигает свой snap, gnome — flatpack. Оба обещают рай и свободу от rpm/deb. Давайте же подумаем про проблему, которую они хотят решить, и цену, которую они просят за решение этой проблемы.

Читать дальше →
snap & flatpack — трагедия общин
Source: habrahabr

20 лет Fast Reports «Продукт создавался на одном дыхании, просто в кайф…»

Многие знают Михаила Филиппенко — организатора и соучастника конференций ISDEF, но есть в Fast Reports и «теневой лидер», которого мы попросили выйти из тени. Беседа с основателем компании Fast Reports Александром Цыганенко.

image Читать дальше →
20 лет Fast Reports «Продукт создавался на одном дыхании, просто в кайф…»
Source: habrahabr

Безликий код убьет программирование, и ничего мы с этим не сделаем

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

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

Читать дальше →
Безликий код убьет программирование, и ничего мы с этим не сделаем
Source: habrahabr

Самые смешные поисковые запросы 2018 года

Компания «Яндекс» составила список самых забавных поисковых запросов 2018 года (см. под катом). Вдобавок, на подборке «смешных, трогательных и парадоксальных» запросов компания запустила «генератор предсказаний».

По нажатию на кнопку генератор просто выдаёт случайный запрос из подборки — и пользователю предлагают подумать, к чему бы это.
Читать дальше →
Самые смешные поисковые запросы 2018 года
Source: habrahabr

TeamLead Conf: «MBA digital-у не товарищ»

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

Как появилась идея TeamLead Conf, при чем тут новый тип образования в digital и серендипность, рассказывает Александр Зиза, один из организаторов нашей конференции Aletheia Business и член программного комитета TeamLead Conf.


Читать дальше →
TeamLead Conf: «MBA digital-у не товарищ»
Source: habrahabr

Эффективная разработка и сопровождение Ansible-ролей

Ansible — система, которая решает различные задачи автоматизации, включая конфигурирование, резервное копирование и деплой проектов. Систему приятно использовать для написания сценариев автоматизации от простого окружения до крупного проекта. В сценариях важную роль играют playbooks и роли — структурированные playbooks.

Ansible не волшебная таблетка, и помогает только на первых порах. Когда проект растет, становится сложно поддерживать разросшееся количество ролей. Помогает решить проблему механизм непрерывной поставки для ролей.

Как раз об этом расшифровка доклада Александра Харкевича на DevOps Conf Russia. В докладе: разработка Ansible-ролей через CI, механизм разработки публичных ролей и публичных ролей с тестовыми прогонами в приватной инфраструктуре. А еще в докладе нет вывода.

Читать дальше →
Эффективная разработка и сопровождение Ansible-ролей
Source: habrahabr

[Перевод] За что я не люблю Go

На нынешней работе приходится использовать Go. Я хорошо познакомился с этим языком. Мне он не нравится, и меня озадачивает его популярность.

Эргономика разработки

Никогда не встречал языка, настолько открыто противостоящего удобству для разработчика. К примеру, Роб Пайк неоднократно и открыто враждебно относился к любому обсуждению подсветки синтаксиса на Go Playground. В ответ на разумно сформулированные вопросы пользователей его публичные ответы отсвечивали пренебрежением и неуважением:

Gofmt написан специально чтобы уменьшить количество бессмысленных дискуссий о форматировании кода, что отлично удалось. К сожалению, это никак не повлияло на количество бессмысленных дискуссий о подсветке синтаксиса или, как я предпочитаю её называть, spitzensparken blinkelichtzen.

И снова в ветке 2012 Go-Nuts:

Подсветка синтаксиса — для маленьких. В детстве меня учили арифметике на цветных палочках. Сейчас я вырос и использую чёрно-белые цифры.

Читать дальше →
[Перевод] За что я не люблю Go
Source: habrahabr

Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде

Привет, Хабр!

Меня зовут Виталий Котов, я работаю в компании Badoo и бо́льшую часть времени занимаюсь вопросами автоматизации тестирования. Решением одного такого вопроса я и хочу поделиться в этой статье.

Речь пойдёт о том, как мы организовали процесс работы UI-тестов с A/B-тестами, коих у нас немало. Я расскажу о том, с какими проблемами мы столкнулись и к какому флоу пришли в итоге. Добро пожаловать под кат!


Читать дальше →
Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде
Source: habrahabr

[Перевод] Проблема со связанными переменными: как превратить оптимизатор из врага в друга

Автор статьи – Виктор Варламов, OCP.
Оригинал статьи опубликован 07.07.2017.
Отдельное спасибо автору перевода — brutaltag.

В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов служат список клиентов и временной интервал (дневной, недельный, месячный). Из-за неравномерных данных в таблицах один запрос может выдать как одну строку, так и миллион строк, в зависимости от параметров отчета (у разных клиентов — различное количество строк в таблицах фактов). Каждый отчет выполнен в виде пакета с основной функцией, которая принимает входные параметры, проводит дополнительные преобразования, затем открывает статический курсор со связанными переменными и в конце возвращает этот открытый курсор. Параметр БД CURSOR_SHARING выставлен в FORCE.
В такой ситуации приходится сталкиваться с плохой производительностью, как в случае повторного использования плана запроса оптимизатором, так и при полном разборе запроса с параметрами в виде литералов. Связанные переменные могут вызвать неоптимальный план запроса.
Читать дальше →
[Перевод] Проблема со связанными переменными: как превратить оптимизатор из врага в друга
Source: habrahabr