Рубрика «Анализ и проектирование систем» - 21

Данная статья основана на реальных событиях,
и все проблемы в ней не вымышленные. (С)

В начале хотелось бы отметить, что статья не призвана показать изобретение велосипеда, потому как многие приёмы уже давно существуют в культуре разработки баз данных. Однако обобщить, проанализировать проблемы, которые они могут решить и показать, как с ними можно работать. А проблем хватает несмотря на то, что нормативно-справочная информация (НСИ) не относится к бизнес-логике, а скорее находится в обслуживании у неё. Стандартный процесс по рисованию очередной таблички для хранения справочника очень скоро начинает обрастать костылями или трудоёмкими переделками.
Читать полностью »

Мы недавно писали, как затеяли конференцию, полностью посвященную инженерным процессам и практикам. Наша цель — собрать в одном месте профессионалов, которые развивают техническое лидерство у компании, продукта и дать им возможность поделиться опытом, обсудить свои задачи и проблемы индустрии, вместе найти новые подходы. Мы долго думали, что объединяет таких людей, как их распознать. И поняли, что это техлиды. Именно они несут ответственность за технологический вектор, внедряют те самые инженерные практики и настраивают процессы.

Но в нашей индустрии даже градация должностей junior/middle/senior колоссально отличается от компании к компании. Что уж говорить о техлиде, который и вовсе не должность, а роль. Поэтому решили разобраться, что вкладывают в это понятие чаще всего. Заодно очертить зоны ответственности, сформулировать ключевые навыки техлида и понять, наконец, чем техлид отличается от тимлида (Спойлер: тимлид — это тоже роль, поэтому один человек может одновременно быть и техлидом, и тимлидом. А может и не быть).

Кто такой техлид и почему он нужен команде - 1

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

Привет! Меня зовут Алексей Пьянков, я разработчик в компании Спортмастер. В этом посте я рассказал, как начиналась работа над сайтом Спортмастер в 2012 году, какие инициативы удалось «протолкнуть» и наоборот, какие грабли мы собрали.

Сегодня я хочу поделиться мыслями, которые следуют за другим сюжетом – выбор системы кеширования для java-бэкенда в админке сайта. Этот сюжет имеет особое значение для меня – хотя история разворачивалась всего 2 месяца, но эти 60 дней мы работали по 12-16 часов и без единого выходного. Никогда раньше не думал и не представлял, что можно так много работать.

Поэтому текст разбиваю на 2 части, чтоб не загрузить по полной. Наоборот, первая часть будет очень легкой — подготовкой, введением, некоторыми соображениями, что такое кеширование. Если вы уже опытный разработчик или работали с кешами — с технической стороны ничего нового в этой статье, скорее всего, не будет. А вот для джуниора небольшой такой обзор может подсказать, в какую сторону смотреть, окажись он на таком распутье.

Как мы в Спортмастере выбирали систему кеширования. Часть 1 - 1
Читать полностью »

В PostgreSQL нет High Availability из коробки. Чтобы добиться HA, нужно что-то поставить, настроить — приложить усилия. Есть несколько инструментов, которые помогут повысить доступность PostgreSQL, и один из них — Patroni.

На первый взгляд, поставив Patroni в тестовой среде, можно увидеть, какой это прекрасный инструмент и как он легко обрабатывает наши попытки развалить кластер. Но на практике в production-среде не всегда всё происходит так красиво и элегантно. Data Egret начали использовать Patroni еще в конце 2018 года и накопили определенный опыт: как его диагностировать, настраивать, а когда вовсе не полагаться на автофейловер.

На HighLoad++ Алексей Лесовский обстоятельно, на примерах и с разбором логов рассказал о типовых проблемах, возникающих при работе с Patroni, и best practice для их преодоления.

В статье не будет: инструкций по установке Patroni и примеров конфигураций; проблем за пределами Patroni и PostgreSQL; историй, основанных на чужом опыте, а только те проблемы, с которыми в Data Egret разобрались сами.
Читать полностью »

Пускать или не пускать? Вот в чем вопрос…

Сейчас на многих сайтах мы видим возможность зарегистрироваться или войти с помощью соцсетей, а некоторые сайты предлагают использовать внешние ключи безопасности или отпечатки пальцев. Что это? Стандарты с хорошо проработанной безопасностью или проприетарные реализации? Можем ли мы доверять этим технологиям и использовать их для разработки сайтов и в повседневной жизни? Давайте разбираться. Итак, сейчас существуют несколько стандартов и технологий для идентификации пользователей OAuth 2.0,OpenID Connect, WebAuthn, SAML 2.0, Credential Management API и др. В статье я расскажу о трех наиболее перспективных протоколах OAuth 2.0, OpenID Connect и WebAuthn. И чтобы понять как их применять на практике, сделаем три лабораторные работы. В качестве платформ для идентификации пользователей будем использовать GitHub и Google, на которых у большинства есть аккаунты.

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

Управление ценовыми скидками: модели для количественного измерения эффекта на примере АЗС - 1

Мы продолжаем публиковать доклады, прозвучавшие на RAIF 2019 (Russian Artificial Intelligence Forum). На этот раз своим опытом делится Вадим Аббакумов, кандидат физико-математических наук, главный эксперт-аналитик «Газпромнефть-Альтернативное топливо». Передаем ему слово:
Читать полностью »

Это ответ на статью за авторством nmivan.

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

Мне «удалось» очень близко познакомиться с методами работы сотрудников интенсивной терапии, где я и мой сын провели практически год круглосуточно, иногда, по хорошему поводу, переезжая в общую палату.

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

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

Tarantool: история ускорения поиска в 1С - 1

Недавно у наших добрых друзей из крупной розничной сети возникла задача ускорения поиска в 1С.

Во-первых, искать нужно было по клиентам (три справочника, 9 текстовых полей, поиск типа %like%) и всего-то по 2,5 млн записей. Сразу скажем, что полнотекстовый поиск и морфология — это пока не про Tarantool. В результате ряда экспериментов мы остановились на ElasticSearch, но т.к. он не в тему статьи, то можем написать отдельную, если будет интерес. Скажем только, что скорость выросла на порядок по сравнению с тем, что мы могли выжать из полнотекстового поиска MS SQL.

Во-вторых, нужен был поиск и подбор по товарам с выводом остатков по всем складам без дополнительных запросов. Скорость поиска должна была быть сопоставима с обычным откликом интерфейса, то есть около 0,2 сек вместо текущих 5-12 секунд в 1С (в зависимости от уровня нагрузки). 90 тысяч строк, список номенклатур меняется не часто, примерно по 10-50 позиций в день.

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

Михаил Салосин (далее – МС): – Всем привет! Меня зовут Михаил. Я работаю бэкенд-разработчиком в компании MC2 Software, и я расскажу об использовании Go в бэкенде мобильного приложения «Смотри+».

Михаил Салосин. Golang Meetup. Использование Go в бэкенде приложения «Смотри+» - 1

Кто-нибудь из присутствующих любит хоккей?

Михаил Салосин. Golang Meetup. Использование Go в бэкенде приложения «Смотри+» - 2

Тогда это приложение для вас. Оно – для «Андроида» и iOS, служит для просмотра трансляций разных спортивных событий в онлайне и в записи. Также в приложении есть различная статистика, текстовые трансляции, таблицы по конференциям, по турнирам и прочая информация, полезная для болельщиков.

Михаил Салосин. Golang Meetup. Использование Go в бэкенде приложения «Смотри+» - 3

Также в приложении есть такая штука, как видеомоменты, т. е. можно посмотреть острые моменты матчей (голы, драки, буллиты и др.). Если вам не хочется смотреть всю трансляцию, можно посмотреть только самое интересное.Читать полностью »

Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.

Принцип подстановки Лисков - 1

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


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