Как стать автором
Обновить
112.34
Рейтинг
Sportmaster Lab
Рассказываем о том, как мы делаем «Спортмастер»
Сначала показывать

Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

Блог компании Sportmaster Lab Oracle *Программирование *Java *Администрирование баз данных *
Tutorial

Приветствую!

Меня зовут Артём, я back-end разработчик на продукте WFM (Workforce Management). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это построение рабочего графика для персонала розничного магазина.

В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.

Почти в каждом продукте, скорее всего, есть база данных. В нашем случае это РСУБД Oracle, большая часть логики содержится внутри в виде хранимых процедур. Удобство взаимодействия с базой всегда было достаточно важной и щепетильной задачей для любого бэкендера, особенно, если речь идет о взаимодействии с хранимками, которые выдают и принимают "сложные" plsql-типы. Конвертация plsql-типа в java-тип — задачка не самая приятная, мягко говоря, и удобных инструментов в этом деле не так уж много.

Давайте кратко вспомним некоторые популярные подходы к взаимодействию с РСУБД, какими достоинствами и недостатками они обладают.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.3K
Комментарии 0

Новости

Как физические упражнения улучшают когнитивные способности и здоровье мозга в целом

Блог компании Sportmaster Lab Научно-популярное Здоровье


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

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

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

  1. Улучшение работы мозга и памяти.
  2. Улучшение и защита мыслительных процессов.
  3. Повышение концентрации.
  4. Уменьшение стресса, депрессии и беспокойства.
  5. Улучшение качества сна.


Физические упражнения несут в себе физиологические преимущества как для тела, так и для мозга. Упражнения укрепляют память и улучшают качество мыслительных процессов – как прямо, так и косвенно.
Читать дальше →
Всего голосов 34: ↑29 и ↓5 +24
Просмотры 13K
Комментарии 63

Как мы СМ 3.0 запускали

Блог компании Sportmaster Lab Разработка веб-сайтов *Разработка под e-commerce *Тестирование веб-сервисов *

Привет, меня зовут Виктор, я руководитель продукта сайта Спортмастер, точнее — его новой версии. Я работаю в компании с 2019 года и пришёл на проект системным аналитиком. В то время проект только стартовал. Мы выбрали архитектуру нового приложения, технологии, тактику тестирования, а также собрали команду разработки.  

На старт

Через полгода после старта работ выяснилось, что дизайны не соответствуют текущим реалиям, так что разработку заморозили на полгода. В это время команда не скучала, развивалась и реализовала небольшой проект — Web-приложение для управления электронными подарочными картами. И вот появились дизайны, появились концепция и большой файлик в Excel с примерно 800 строками. Каждая строка — это фича, которую надо реализовать на сайте. Фичи были как маленькие (отображать баннер и другой блок на сайте), так и большие (реализовать корзину).

На дворе было лето 2020 года, в этот момент мы поняли, что 800 фич команда будет реализовывать в течение пары лет. Начали всё приоритизировать и разделять на несколько этапов, дабы выбрать самое важное и начать это реализовывать. В процессе реализации выяснилось, что некоторые требования пришлось изменить, от некоторых отказаться, а также что-то добавить новое. Но мы не сдавались и двигались вперёд.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 1.2K
Комментарии 4

Как разработчику перестать быть потребителем технологий

Блог компании Sportmaster Lab Программирование *Совершенный код *Карьера в IT-индустрии
Перевод

За последние несколько лет, в процессе работы и общения со множеством разработчиков, я заметила часто повторяющийся паттерн. Он меня сильно беспокоил и я продолжала о нём думать и говорить, пытаться найти понимание или даже оправдание ему.

Почему ты выбрал такой подход к решению?

  • Не знаю. Прочитал в какой-то статье.
  • Не знаю. Скопипастил его из X.
  • Не знаю. Такой же подход я использовал в предыдущем проекте.
  • Не знаю. Кто-то мне посоветовал.

Этот паттерн можно назвать "потреблением вместо творчества". Потреблением без сомнений и вопросов. Потреблением, потому что можно спрятаться за чьим-то авторитетом.

Я видела разработчиков, берущих решение других людей как должное. Без малейших раздумий о выбранном подходе, не заморачиваясь анализом. Да, конечно, когда Дэн Абрамов говорит мне, как правильно использовать React, или в документации написано, что это единственный способ применения API, то с этим нужно согласиться. Тем не менее, когда вы используете какой-то технический контент без хотя бы доли скептицизма, то вы всё равно сможете продвинуться в своей карьере, но есть вероятность, что это вам помешает.
Читать дальше →
Всего голосов 36: ↑28 и ↓8 +20
Просмотры 9.1K
Комментарии 13

Системный подход в хобби: бесплатный тренер, или как за 500 рублей научиться катать на сноуборде

Блог компании Sportmaster Lab Управление проектами *Читальный зал Здоровье

Пять дней в неделю, по 8 часов с перерывом на обед мы занимаемся своей работой. Безусловно, у многих этот график другой. Шесть дней в неделю, семь, по десять, по двенадцать, по четырнадцать часов. Мы пилим, шьем, пишем, строим, проектируем, систематизируем в поте лица и, порой, до изнеможения. И где же мы получаем отдушину от такой напряженной деятельности, в чем состоит наш досуг?

Вы тоже заметили, да? Хобби как-то не очень популярно, менее 20% опрошенных рискуют сменить позу звезды на диване ради любимого занятия. В чем же причина такого нежелания предаваться этому виду времяпрепровождения? По данным того же исследования ВЦИОМ…

Читать далее
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 3.2K
Комментарии 14

Из могилы в IT

Блог компании Sportmaster Lab Карьера в IT-индустрии Читальный зал

— Дима, посмотри-ка кандидата в твою команду АМТ, — сказал мне наш HR Александр.

— Саркофагов Вадим, ведущий специалист по функциональному тестированию…

Я ещё раз перечитал фамилию: “Сар-ко-фа-гов”. В памяти заворочались почти забытые события, будто кто-то включил в моей голове один из фильмов про Индиану Джонса. Меня перебросило в далёкий и, как принято говорить, невозвратный 2007 год…

Читать далее
Всего голосов 24: ↑19 и ↓5 +14
Просмотры 5.8K
Комментарии 12

Как я влюбился в UX и бросил маркетинг

Блог компании Sportmaster Lab Интернет-маркетинг Карьера в IT-индустрии

Привет, меня зовут Андрей Кононов, сейчас я работаю аналитиком-проектировщиком в «Спортмастере», а до этого много лет проработал маркетологом. В этом посте расскажу, как открыл для себя сферу UI/UX и почему в найме оказалось удобнее, чем на фрилансе.

Итак, по порядку.

Маркетолог-многорук без вдохновения и перспектив

Лето. Очередной рабочий день в офисе на позиции интернет-маркетолога. Официально я был руководителем отдела маркетинга, а на самом деле работал один на две компании и всё делал сам. Постоянно мониторил результаты таргетинга в фейсбуке, зарывался в таблицах для корректировки директа. Будем откровенны — мне это не нравилось. 

Я привык работать на себя, но уже перегорел маркетингом, для меня он превратился в рутину. Даже создание креативов не развивало творческий потенциал. А когда в директе появилась функция «автоматический подбор ключевых слов», я понял, что скоро этих специалистов заменит искусственный интеллект: выбираешь тему, указываешь допустимый бюджет, а система все делает за тебя.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 3.5K
Комментарии 2

Как выстроить систему планирования в жизни для достижения цели

Блог компании Sportmaster Lab Управление проектами *Agile *

Всем привет! Меня зовут Владимир Тутынин, я методолог продуктового подхода и сегодня расскажу о своем методе планирования. Вы увидите, какие шаги я выполняю и какими инструментами пользуюсь для достижения результата.

Нам понадобятся две программы:

1.      Evernote – это система заметок, которые хранятся в блокнотах и помечаются метками. Очень похожа на Confluence.

2.      Trello – это доска задач с определенными правилами, на которой мы отображаем движение задачи по этапам. 

Представим, что наше движение к достижению цели – это движение ракеты. Сначала мы находимся на высоте 0 метров, далее 10 000м, через минуту 20 000м, далее 30 000м и 40 000м. Эти отметки мы будем использовать как ориентиры и начнем наш маршрут в «космос». 

Формирование меток

Заходим в Evernote и создаем 4 метки так, как показано на рисунке. Этими метками мы будем ориентироваться в пространстве заметок. В скобках после названия метки показано количество заметок, имеющих такую метку. Например, у меня есть 36 заметок с меткой «20.000м Цели».

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 5.4K
Комментарии 2

Зачем вам может понадобиться собственный DNS-сервер?

Блог компании Sportmaster Lab Информационная безопасность *Сетевые технологии *DNS *
Перевод

Одна из сложностей в понимании DNS заключается в его децентрализованности. Существуют тысячи (а может, сотни тысяч?) авторитетных серверов имён и по крайней мере 10 миллионов резолверов. На них работает множество разного ПО! Из-за того, что на разных серверах выполняется своё ПО, в работе DNS присутствует большая несогласованность, что может вызывать кучу раздражающих проблем.

Но вместо того, чтобы обсуждать проблемы, я хочу разобраться, почему децентрализация DNS — это хорошо?
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 11K
Комментарии 3

Самый простой (и неожиданный) алгоритм сортировки?

Блог компании Sportmaster Lab Программирование *Алгоритмы *
Перевод

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

1. Алгоритм


Большинству из нас хорошо известны такие простые алгоритмы сортировки, как сортировка пузырьком. По крайней мере, нам так кажется. Оказывались ли вы когда-нибудь в ситуации, когда вам нужно записать псевдокод сортировки пузырьком, и вы осознавали, что он не так прост, как кажется, и с первого раза правильно написать его не удаётся? Нужно внимательно следить за тем, чтобы индексы циклов начинались и заканчивались нужными значениями и не выходили за границы, а также правильно обрабатывать флаговые переменные. Разве не было бы здорово иметь простой алгоритм без всей этой возни? Ниже представлен такой алгоритм, сортирующий массив A из n элементов в неубывающем порядке. Для простоты доказательства массив начинается с 1, то есть имеет элементы A[1],..., A[n].

Алгоритм 1 ICan’tBelieveItCanSort(A[1..n]):

for i = 1 to n do
  for j = 1 to n do
    if A[i] < A[j] then
      swap A[i] and A[j]

Вот, собственно, и всё. Он просто обходит в цикле каждую пару значений (i, j) стандартным способом из двойного цикла for, выполняет сравнение и обмен значениями. Разве можно придумать что-то ещё более простое? Возможно первой реакцией увидевшего этот алгоритм будет что-то типа «это не может быть верно» или «знак неравенства направлен в другую сторону, да и индексы цикла указаны неверно». Но нет, он действительно правильно сортирует в возрастающем порядке.
Читать дальше →
Всего голосов 53: ↑40 и ↓13 +27
Просмотры 23K
Комментарии 39

Как скрестить Коня и Трепетную лань

Блог компании Sportmaster Lab Программирование *Оболочки *Разработка под Linux *Разработка под Windows *

«Бить (Bash) или не бить», - спрашивал один датский принц. Вот и у меня возник аналогичный вопрос, когда у нас в компании появился сервер сборки Bamboo. Как можно в задании Bamboo, выполняющем скрипт Bash или Cmd, написать команды, одновременно понятные интерпретатору командной строки Windows и оболочки Linux?

У нас в компании в качестве скриптового языка планов Bamboo используется кроссплатформенный язык Python. Но для запуска скриптов в Windows и Linux используется разный код.

Команды, понятные Linux, будут обработаны с ошибкой в Windows и наоборот. Что делать в этой ситуации?

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 2.6K
Комментарии 16

Как мы тестируем Rest API в SM 2.0 с помощью Postman: сценарии, запросы, переменные окружения и немного автотестов

Блог компании Sportmaster Lab Тестирование IT-систем *JavaScript *Тестирование веб-сервисов *

Всем привет! Сегодня я расскажу о том, как мы тестируем Rest API в SM 2.0 с помощью инструмента Postman.



И сделаю это на примере реальной задачи — посмотрим сценарий пользователя (как оформляется заказ у нас на сайте), посмотрим, как это работает все изнутри, пару слов скажу о REST-запросах, расскажу про Postman. Далее мы перейдём в сам инструмент, посмотрим окружение, интерфейс, далее разберём исходные данные и приступим к решению самой задачи, и в конце немного расскажу про автотесты.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 11K
Комментарии 16

Как работает создание и управление маркетинговыми кампаниями Спортмастера и причём здесь Oracle

Блог компании Sportmaster Lab Oracle *Разработка под e-commerce *Управление e-commerce *
✏️ Технотекст 2021

Приветствую! Меня зовут Михаил, я разработчик Oracle в ClubPro (Клубная программа, программа лояльности Спортмастера). В команде разработки моё основное направление связано с развитием Campaign Management. 

Campaign Management (далее для краткости Campaign) предназначен для создания и управления многошаговыми маркетинговыми кампаниями. Другие задачи, которые решает Campaign — формирование омниканальных предложений клиенту, начисление бонусов в Клубной программе, верстка и создание email-рассылок. 

В этой статье я сделал основной упор на то, как кампании работают в СУБД Oracle и какие технологии Oracle мы используем. Вначале предлагаю краткий обзор того, как создаются кампании и какой путь проходят от брифа до запуска. 

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 2.5K
Комментарии 12

«Невозможный» параллельный алгоритм неотрицательной суммы

Блог компании Sportmaster Lab Программирование *Java *SQL *Параллельное программирование *
✏️ Технотекст 2021

Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.

Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но

сломать мозг
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 8.3K
Комментарии 33

Резервирование резервирования. Как я наш интернет труба шатал

Блог компании Sportmaster Lab Администрирование доменных имен *Сетевые технологии *Сетевое оборудование
Syn-Ack Хабр! Меня зовут Сергей Минаев, я руководитель направления администрирования веб-сервисов в компании «Спортмастер».

В преддверии наступающего Нового года хочется, чтобы было спокойно и тихо, можно было кушать оливье, спокойно отдыхать, а не вот это вот все: пожар, караул, SRE взбунтовались! Говорят, резервирование — ненастоящее!



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

Данная статья — не более чем повествование и рассуждение о возможности инженерной мысли, заключенной в рисование котиков красными линиями. Все совпадения реальные, герои – не выдуманные, все происходило взаправду.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 4.7K
Комментарии 15

Как работать с Tanzu — опыт Sportmaster Lab

Блог компании Sportmaster Lab IT-инфраструктура *Виртуализация *DevOps *Kubernetes *
Tanzu от VMware — это набор полезных продуктов для тех, кто работает с микросервисами. В Sportmaster Lab мы тоже начали его использовать, и в этом посте расскажем, как именно. Помогут нам в этом Павел Бацев, старший администратор сервисов Спортмастера, и Алексей Гришутин, который отвечает за сети и сервисы. Поговорим про Tanzu, про общую архитектуру, отказоустойчивость, бэкапы и много другое.



Почему вы вообще решили использовать Kubernetes и как пришли к нему?

Павел

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

Ваши коллеги уже умели с ним работать, или приходилось дополнительно их обучать?


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

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

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.9K
Комментарии 0

Как мы организовали хранилище фоток с кроссовками на Vue и Vuex и немного автоматизировали работу фотографов

Блог компании Конференции Олега Бунина (Онтико) Блог компании Sportmaster Lab JavaScript *Программирование *VueJS *

Привет! Меня зовут Артём Карачёв, я фронтенд-разработчик в Sportmaster Lab. Сейчас мы пишем модуль автоматизации физической фотостудии, где работают несколько фотографов, менеджеров, фоторедакторов, кладовщиков и других. Все фото кроссовок, которые вы видите в интернет-магазинах Спортмастера, снимают и загружают в базу данных именно эти люди.

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

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 3K
Комментарии 4

Автотесты на расширениях 1С

Блог компании Sportmaster Lab Тестирование IT-систем *Программирование * *

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

Меня зовут Игорь Левин. Я разработчик 1С в Sportmaster Lab. Наша команда работает над проектом Shipdocs 2.0 — это продукт, который состоит из двух информационных систем. Он обеспечивает информационную поддержку бизнес-области закупок и цепей поставок. Часто мы автоматизируем кроссфункциональные бизнес-процессы на стыке с международной логистикой и финансовым управлением.

Вот ключевые функции Shipdocs 2.0:

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 4.1K
Комментарии 1

Unit-тесты в СУБД — как мы делаем это в Спортмастере, часть третья

Блог компании Sportmaster Lab Тестирование IT-систем *Oracle *

Привет, привет!

Пару лет назад было решено поделиться историей про автоматизированное тестирование СУБД и наш опыт применения в Спортмастере. С результатами можно ознакомиться здесь и здесь.

И сейчас, спустя значительное время, хочется подвести итоги и порефлексировать о системе. Да и даже просто ответить на вопрос: «Как там ваши автотесты?»

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 3.9K
Комментарии 12

Целительная сила JavaScript

Блог компании Sportmaster Lab Разработка веб-сайтов *JavaScript *Совершенный код *HTML *
Перевод

Чуть меньше года назад, когда по всему миру начали распространяться локдауны в связи с Covid-19, большинство людей начало запасаться туалетной бумагой и консервами. Но лично я стремился получить нечто другое: реализовать функцию поиска.

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

Как и множество других писателей и художников, я держу личный веб-сайт, работающий уже в течение почти 20 лет. Решив заняться кодом, я смахнул пыль с моих заржавевших знаний JavaScript, и начал искать библиотеки нечёткого поиска, которые можно подключить к веб-сайту для упрощения поиска эссе из моей коллекции.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 7.7K
Комментарии 0

Информация

Дата основания
Местоположение
Россия
Сайт
www.sportmaster.ru
Численность
5 001–10 000 человек
Дата регистрации