Pull to refresh
8
0
Диана @DainaFleur

Юный аналитик

Send message

Наш опыт создания «Интенсива», или почему избежать ошибок не удастся

Reading time6 min
Views2.4K

Всем привет! Меня зовут Дмитрий Чернышов, я руководитель группы разработки системы «БАРС.Бюджет-Бухгалтерия». Сегодня я поделюсь своим опытом создания обучающего курса для разработчиков.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments3

Достаточно ли защищен ваш GraphQL API?

Level of difficultyMedium
Reading time4 min
Views2.1K

На связи Юлия Полозкова, ведущий разработчик отдела архитектурных решений и перспективной разработки «БАРС Груп». В этой статье делюсь опытом, как обеспечить достаточный уровень кибербезопасности бизнес-приложений. Разбираю техники и средства защиты Graph API, такие как отключение интроспекции средствами HotChocolate, лимиты размеров запроса, его глубины вложенности и количества запрашиваемых объектов

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments0

Текстовое кунг-фу: советы от мастера UX-дизайна

Reading time5 min
Views5.9K

Привет, меня зовут Булат Давлетов, я продуктовый дизайнер в «БАРС Груп». Эта статья будет не про копирайтинг или дизайн, а про удобство работы с текстом за компьютером каждый день.

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments15

Парное программирование: да или нет?

Reading time5 min
Views3.2K

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

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments6

Подход «БАРС Груп» к управлению рисками информационной безопасности

Reading time3 min
Views2.6K

В 2016 году наша команда начала проект по внедрению риск-ориентированного подхода в управлении информационной безопасностью в «БАРС Груп», сопровождением которого мы занимаемся и на данный момент. Основные цели на старте проекта — переход к проактивному управлению информационной безопасностью и эффективное использование ограниченных ресурсов для снижения основных рисков. Спойлер! Наши цели были успешно достигнуты, но сегодня поговорим о другом. Я хочу поделиться определенными алгоритмами и методами, которые были выработаны при внедрении этого подхода. Меня зовут Ильдар Гарипов, я являюсь руководителем службы информационной безопасности в «БАРС Груп». Начнем!

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

«У agile-самурая нет цели, только Путь». Как я пришел в IT после 35

Reading time8 min
Views16K

Я всегда хотел заниматься программированием, но мой путь в IT оказался очень длинным. В маленьком северном городе сфера IT была не развита от слова «совсем» и выбор был сделан в пользу военной карьеры. Так пронеслись 15 лет службы на Севере. Я понимал, что жду пенсии, чтобы заняться по-настоящему любимым делом. Поэтому за 5 лет перед увольнением стал готовиться к «новой жизни», самостоятельно учиться языкам программирования.

Тогда я просто верил, что смогу в свои «около 40» лет измениться и найти работу своей мечты. Но настоящие испытания были еще впереди…

Читать далее
Total votes 20: ↑15 and ↓5+10
Comments10

Нейрозапятые, или как мы оставили своих редакторов без работы (ну почти)

Reading time9 min
Views9.5K

Всем привет, меня зовут Владислав Соболев – ML-инженер в компании “БАРС Груп”. Сегодня я хотел бы рассказать о том, зачем и как мы расставляем знаки препинания в текстах, сравним аналоги, и посмотрим на то, как устроена работа инструмента, который мы написали, чтобы обучать такого рода модели (ссылочка в самом конце). Начнем!

У нас в компании есть ряд ML-проектов, внутри которых используется анализ текста, в том числе и надиктованного голосом. Мы командой долго думали над тем, как можно реализовать данные проекты.

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

Читать далее
Total votes 17: ↑15 and ↓2+13
Comments7

Парное программирование: цели, преимущества

Reading time5 min
Views3.2K

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

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments0

“Заапрувьте мой ПР!”: инструменты гита через CQRS и Event Sourcing для пользователей

Reading time15 min
Views2.7K

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

Современные приложения работают со все большим количеством информации, и, понятно, что чем эффективнее подходы работы с потоками данных, тем эффективнее работа приложения в целом. 

За пять предыдущих лет человечеством было произведено информации больше, чем за всю предшествующую историю (из них половина была произведена в нашем отделе УНП). 

Проблематика

Существует класс приложений, в которых пользователи модифицируют исходные данные, но эти модификации должны применяться к основной системе только после согласования некоторой третьей стороной - руководителями/специалистами/сторонними организациями/другими уполномоченными пользователями. Также по итогам предварительного ознакомления с изменениями и ревью часто требуется  внести некоторые корректировки, чтобы снова отправить на согласование, и после нескольких итераций изменения вступают в силу. Создается новая базовая модель, в которую также можно вносить изменения, которые необходимо согласовывать - процесс повторяется. 

Мы занимались разработкой именно такой системы, и сегодня речь пойдет о новой версии реализации системы, которую мы разработали совместно со Skirgus.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

Как мы Data-Office создавали

Reading time4 min
Views3.1K


Привет, я – Ильдар Райманов и я руковожу департаментом в «БАРС Груп», который отвечает за развитие BI-решений в компании. Имея широкий опыт по работе с данными, а также обладая отраслевой экспертизой, мы решили попробовать сформировать центр компетенций, который, позволяя обрабатывать большие массивы данных, сможет обеспечить сервис по формированию знаний на те или иные предметные запросы клиентов.

Data-Office включает в себя сразу несколько составляющих – это проработанное хранилище, включающее как «озеро больших данных», так и подготовленные витрины, процессы наполнения данных из систем источников, механизмы проверки качества данных; команда методологов, которые понимают, о чем говорят те или иные цифры согласно отраслевой специфике, ну и конечно набор различных софтверных инструментов, основным из которых является платформа бизнес-аналитики Alpha BI, разработанная компанией «БАРС Груп».

Чтобы информация воспринималась еще более понятно, постараюсь раскрыть простым языком ключевые термины, акцентировано выделенные в тексте.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments2

О важности переработки систем, не адаптированных с точки зрения UX, или как съесть слона

Reading time3 min
Views2.3K


Привет, я Анна Оборина, специалист по UX «БАРС Груп», и сегодня я расскажу вам историю про маленького слона.

Жил-был слон. Отличный такой слон, маленький и аккуратный. Он прекрасно справлялся со своими обязанностями: вовремя гулял, кушал, какал и радовал хозяина. Слон рос-рос и вырос в большого слона. Он все так же гулял, кушал и… даже радовал хозяина. Но что-то изменилось.

«Если вам кажется, что пора что-то менять – вам не кажется»


Изменения происходят всегда и, как правило, очень незаметно. Любая система изменчива, программные же продукты, как система, развиваются стремительно. И вот наступает тот момент, когда уже невозможно закрывать глаза на то, что пора что-то менять.
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments2

Знакомство с pg_probackup. Третья часть

Reading time7 min
Views11K


Завершающая часть из цикла "Знакомство с pg_probackup" (первая | вторая части).

В предыдущей статье мы решили сразу две задачи: в первой создали архив wal-файлов, перешли к PAGE-архивам, настроили политику удержания wal-файлов; во второй — реплику из бэкапа и настроили pg_probackup на снятие бэкапов с неё.

Сегодня мы с вами продолжим тему восстановления из бэкапов.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments2

Логирование запросов к приложению Django

Reading time20 min
Views13K


Привет, меня зовут Дмитрий Чернышов, я ведущий разработчик компании «БАРС Груп». Последние несколько лет среди прочих задач нам в команде приходится сталкиваться с необходимостью анализа производительности приложений на Django с большим количеством пользователей и постоянно меняющимися профилями нагрузки. В данной статье я хочу поделиться наработками, которые появились у нас в процессе работы.

Предыстория/Описание проблемы


В Django достаточно средств для того, чтобы организовать логирование запросов к приложению с целью получения ответов на следующие вопросы:

  • Какие запросы в среднем работают дольше всего с точки зрения пользователей?
  • Каких запросов выполняется больше всего?
  • Какие запросы создают больше всего запросов к СУБД?
  • В каких запросах самые длинные транзакции?
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments11

Знакомство с pg_probackup. Первая часть

Reading time8 min
Views38K
image

Привет, я Александр Никитин, главный системный администратор компании «БАРС Груп». В этой статье я хочу познакомить вас с инструментом pg_probackup.

Pg_probackup — разработка компании Postgres Professional, которая помогает делать резервные копии СУБД PostgreSQL. В отличие от стандартной утилиты pg_basebackup этот инструмент позволяет создавать инкрементные резервные копии на уровне блоков данных (по умолчанию 8Kb), производить валидацию резервных копий и СУБД, задавать политики хранения и многое другое.

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

Будут рассмотрены следующие варианты использования:

  • создание автономных бэкапов на отдельном сервере
  • создание архива wal-файлов и создание бэкапов в этом режиме
  • развёртывание реплики из бэкапа и настройка создания бэкапов с реплики
  • различные варианты восстановления

Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments15

Знакомство с pg_probackup. Вторая часть

Reading time8 min
Views14K
image

Продолжаем знакомиться с инструментом pg_probackup.

В первой части мы установили pg_probackup, создали и настроили экземпляр, сняли два бэкапа — полный и инкрементный в режиме DELTA, научились просматривать и изменять конфигурацию экземпляра. Получили список бэкапов, написали скрипт (bkp_base.sh), производящий резервное копирование кластера и отправку результатов последней операции по снятию бэкапа в систему мониторинга. Сегодня будем решать не менее интересные задачи.

Задача 2


Дано: У нас есть два сервера, на первом у нас располагается наша база данных (имя хоста srv_db1, пользователь postgres), а на втором мы будем хранить бэкапы (имя хоста srv_bkp, пользователь backup_user). Но помимо бэкапов на этом же сервере мы будем хранить копии журналов предварительной записи, чтобы иметь возможность восстановления на произвольный момент времени (Point-in-time recovery) в течение последних 3х дней.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments21

Кто победит: человек — венец творения или обратный слэш?

Reading time10 min
Views3.3K

 
За основную часть перехода информационных систем с Oracle на PostgreSQL часто отвечают инструменты автоматической конвертации. Но среди гигантского объёма кода, покрываемого такими решениями, есть и исключительные истории, с которыми приходится импровизировать. В таких случаях первым делом, конечно, необходимо локализовать проблему, установить её причину и, чтобы подобрать правильное решение, подумать, нет ли аналогичных реальных или вымышленных ситуаций, которые могли бы иметь похожую природу. После этого обычно приходится рефакторить оригинальный код на Oracle, дорабатывать процессы конвертации и грамматику или реализовывать на PostgreSQL не имеющую аналогов функциональность Oracle. Однажды нам бросил вызов, на первый взгляд, примитивный запрос с ошибкой, для решения которой пришлось проводить целое расследование.

Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments2

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views190K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments60

Information

Rating
Does not participate
Registered
Activity

Specialization

Systems Analyst
Junior