Pull to refresh
1
0
Павел @lifestyle

User

Send message

Как UX-паттерны помогают без затрат повысить конверсию на торговых площадках?

Level of difficulty Medium
Reading time 3 min
Views 829

Маркетплейсы становятся все более популярными как среди потребителей, так и среди предпринимателей. Они предлагают уникальную возможность объединить продавцов и покупателей на одной платформе, создавая благоприятную среду для торговли. Однако, чтобы успешно конкурировать в этой сфере, необходимо обеспечить высокий уровень пользовательского опыта (UX), который стимулирует конверсию. Здесь я выложу список лучших примеров UX-паттернов в популярных сервисах, которые могут помочь достичь пользователя любой цели.

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

Гексагональная Архитектура и Spring Boot

Level of difficulty Medium
Reading time 5 min
Views 9.4K

Всем привет!

Хочу рассказать про опыт применения гексагональной архитектуры в одном из наших микросервисов. С чем столкнулся и какие выводы сделал.

Читать далее
Total votes 14: ↑14 and ↓0 +14
Comments 15

Паттерны проектирования в автоматизации тестирования

Reading time 22 min
Views 162K
«Нельзя просто так взять и написать классный тест. Один тест написать можно, но сделать, так чтобы по мере того, как количество этих классных тестов росло, как количество людей, которые пишут эти классные тесты, и вы не теряли ни в скорости, ни во времени...»

Эта мысль красной нитью пойдет сквозь материал под катом, и она, пожалуй, требует пояснения. Статья основана на докладе Николая Алименкова, к которому он подошёл не просто прогретым, а горящим после дискуссии с Алексеем Виноградовым о подходах к написанию тестов: методом прямого кода или при помощи паттернов. Нужны ли какие-то еще паттерны, кроме PageElement, Steps, PageObject?! С чего кто-то решил, что паттерны усложняют код, заставляют нас тратить время на создание ненужных (?) boilerplate-простыней? SOLID вам не угодил? А ведь все они создавались с учётом всего накопленного опыта сообщества разработчиков и они знали, что делают.

Николай xpinjection Алименков – известный Java-разработчик, Java техлид и delivery-менеджер, основатель XP Injection. В настоящее время является независимым разработчиком и консультантом, Agile/XP коучем, спикером и организатором различных конференций

Автоматизация тестирования имеет собственный набор задач, так что существует и набор полезных паттернов проектирования для этой области. В докладе Николай рассказывает обо всех известных паттернах и подробно описывает их с практическими примерами.



В основу этого материала легло выступление Николая Алименкова на конференции Heisenbug 2017 Piter под названием «Паттерны проектирования в автоматизации тестирования». Слайды здесь.
Total votes 30: ↑28 and ↓2 +26
Comments 4

Методы организации DI и жизненного цикла приложения в GO

Reading time 20 min
Views 15K

Есть несколько вещей, которыми можно заниматься вечно: смотреть на огонь, фиксить баги в легаси-коде и, конечно, говорить о DI — и всё равно нет-нет, да и будешь сталкиваться со странными зависимостями в очередном приложении.
В контексте языка GO, впрочем, ситуация чуть сложнее, поскольку явно выраженного и всеми поддерживаемого стандарта работы с зависимостями нет и каждый крутит педали своего собственного маленького самоката — а, значит, есть что обсудить и сравнить.


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

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

Мой опыт смены ЯП с PHP на Golang

Level of difficulty Easy
Reading time 2 min
Views 9.1K

Я разработчик и уже много лет в данной профессии. Как таковой я fullstack, но с уклоном в backend. Для меня в кайф возиться с SQL запросом, нежели верстать.

Читать далее
Total votes 19: ↑12 and ↓7 +5
Comments 56

ML в животноводстве. Как ГК «Русагро» училось считать поголовье свиней

Level of difficulty Easy
Reading time 6 min
Views 2.8K

Привет, Хабр! В сентябре мы провели конференцию «Инфраструктура для ML и AI, виды дрифтов ML-моделей, Computer Vision в животноводстве». Обсудили, как разные компании используют машинное обучение в работе, поговорили о трендах и инструментах построения production ML-систем в бизнесе. На митапе было четыре интересных доклада, и мы решили поделиться ими.

В этой публикации расскажем про опыт «Русагро Тех» — как они разрабатывают проекты по видеоаналитике в животноводстве для агрохолдинга ГК «Русагро. Кейсом поделился Павел Ширяев — руководитель группы компьютерного зрения «Русагро Тех».
Позже опубликуем остальные доклады про ML.
Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Comments 13

Тестовое в Firefly Studios или игра за час

Level of difficulty Easy
Reading time 14 min
Views 7.3K

Пару недель назад, на меня вышла HR "светлячков" и пригласила поговорить о позиции AI программера в их новую старую игру. Я был несколько удивлен, потому что знаком с парой ребят из студии и знаю, что найм у них сейчас остановлен. Но всегда интересно пообщаться с умными людьми, поэтому отказываться не стал. Первый созвон с HR вышел стандартный, где над чем работал, какие игры шипнул. Не очень понимаю зачем все это было спрашивать, если все это есть на линкедине подробно и с датами. Ну да ладно - видно такая их эйчарская доля по тридцать три раза переспрашивать. Или HR дальше второй страницы просто поленилась почитать.

Забукали время технического интервью. В полдень четверга на встречу приходит сотрудник студии и начинает просматривать резюмешку дальше второй страницы, где натыкается на скрин опенсорсного проекта StoneKingdoms, в который я некоторое время активно комитил. Проект, если что, получил благословение самого Simon Bradbury, так что проблем с правами на использование ресурсов из Stronghold нет. Посыпались вопросы, а что за проект? а как делаете? и что все на lua? а как же плюсы? Где-то на середине разговора к нам подключился другой разработчик "светлячков", с которым мое знакомство началось еще в 2010, когда он помогал восстанавливать исходники Caesar III и просто давал консультации как реализована игровая симуляция. Мы и сейчас иногда общаемся на форуме по ремейкам старых игр.

Как прошел собес...
Total votes 30: ↑30 and ↓0 +30
Comments 26

Сборка мусора в JavaScript

Level of difficulty Medium
Reading time 10 min
Views 18K

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

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

Погнали собирать мусор!

Собрать мусор
Total votes 17: ↑16 and ↓1 +15
Comments 5

Детализированные стратегии кэширования динамических запросов

Reading time 7 min
Views 4K
Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 2

Свежий Google Gemini, GPT-4 и математика

Level of difficulty Medium
Reading time 10 min
Views 24K

Итак, Google всё‑таки решилась выпустить в свет языковую модель Gemini не дожидаясь Нового Года, и, конечно, обещая революцию. Она де превосходит все публично доступные модели, и местами превосходит людей. Отдельной её особенностью является мультимодальность (в частности способность работать с изображениями и видео) в почти реалтайм режиме, чему есть довольно впечатляющие демонстрации.

Давайте же сравним её с флагманом OpenAI/Microsoft — GPT-4, на трудном поле математики.

Читать далее
Total votes 28: ↑27 and ↓1 +26
Comments 25

Как работать со словарями данных и оптимизировать запросы в ClickHouse

Reading time 11 min
Views 5.4K

Приветствуем! На связи вновь Глеб Кононенко и Алексей Диков — разработчики из Лиги Цифровой Экономики. Ранее мы уже немного рассказывали про наш опыт работы с распределенными таблицами в ClickHouse в этой статье.

Сегодня хотим поделиться опытом оптимизации запросов и работы со словарями данных. Используемая версия ClickHouse: 23.8.7.24

Читать далее
Total votes 9: ↑7 and ↓2 +5
Comments 3

Как мы работаем с ресурсами в веб-приложениях

Reading time 14 min
Views 5.8K

Приложения, созданные на платформе 1С:Предприятие, могут быть развернуты в трёхзвенной архитектуре (Клиент – Сервер приложений – СУБД). Клиентская часть приложения может работать, в частности, как веб-клиент, в браузере. Веб-клиент – это довольно сложный фреймворк на JavaScript, отвечающий за отображение пользовательского интерфейса и исполнение клиентского кода на встроенном языке. Одна из задач, которая стояла перед нами в ходе разработки веб-клиента – это корректная работа с различного рода ресурсами (в первую очередь – их своевременное освобождение).

Мы провели анализ существующих подходов и хотим рассказать вам об этом. Добро пожаловать под кат!

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 8

SOLID — это несложно. С примерами на Python

Reading time 16 min
Views 29K

Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик в облачном провайдере beeline cloud.

Почти на всех собеседованиях задают вопросы про SOLID: что это такое, зачем нужен, как его применяет кандидат, как понимает принципы из него?

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

Чтобы мой материал не получился очередной статьей про SOLID, я изменю формат подачи и последовательность объяснения принципов. Буду добавлять код небольшими инкрементами и на каждом из них указывать, какие принципы SOLID используются в том или ином случае. 

Читать далее
Total votes 25: ↑20 and ↓5 +15
Comments 43

Как мы научили заводчан строить красивые инженерные отчеты из Jupyter Notebook на Python

Reading time 14 min
Views 29K

Была у нас тут история, когда легкий перфекционизм помог привести в порядок конструкторскую документацию и регулярно экономить инженерам кучу дней на прохождение бюрократических процедур. В ее основе – создание системы управления расчетными данными и переход от трудночитаемых и трудноинтегрируемых отчетов Mathcad к гибкой связке Jupyter Notebook с Python и Teamcenter. Но основной рассказ будет про то, как преобразовывать и экспортировать математические формулы, таблицы и другие элементы из Jupyter в красивый и удобный вид.

Читать далее
Total votes 96: ↑96 and ↓0 +96
Comments 18

Новосибирск глазами айтишника

Reading time 12 min
Views 20K

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

Читать далее
Total votes 71: ↑65 and ↓6 +59
Comments 150

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

Level of difficulty Medium
Reading time 10 min
Views 3.2K

Возникла задача проверки нескольких типов пользовательских документов Excel. Проверка должна покрывать такие аспекты как корректность шаблона (наличие ожидаемых страниц, колонок таблиц) и корректность данных (присутствие обязательных значений, корректность значений точки зрения форматов, отсутствие дубликации, итд).

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

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

Давайте посмотрим, как заставить pytest работать внутри сервиса. Это не так тривиально, как может показаться на первый взгляд.

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

Ручная пила для PHP-монолита

Level of difficulty Medium
Reading time 11 min
Views 6.8K

Привет! Это третья и заключительная часть истории поиска надёжного способа работы с транзакциями в распределённых системах.

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

Статья может быть полезна разработчикам и архитекторам, которые задумываются о вынесении части бизнес-логики из монолита, написанного на PHP.

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

Как устроены сети: полезные материалы от сотрудников Selectel

Reading time 4 min
Views 20K

Фрагмент из курса «Сети для самых маленьких».

Чтобы стать сетевиком, новичку нужно изучить много теории, разобраться в особенностях профессионального оборудования и других аспектах. Мы в Selectel попросили коллег порекомендовать полезные ресурсы по сетевым технологиям, которые пригодятся на старте. Сохраняйте подборку в закладки и делитесь своими вариантами в комментариях.
Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 8

Моя любимая задача для собеседований по программированию

Level of difficulty Medium
Reading time 9 min
Views 97K

В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
Читать дальше →
Total votes 131: ↑126 and ↓5 +121
Comments 170

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity