Как стать автором
Обновить
14
0
Анна @iFebrity

Java/Scala Developer

Отправить сообщение

Настоящий Product Backlog Refinement: 4 этапа правильной работы над фичами

Время на прочтение6 мин
Количество просмотров20K

Привет, Хабр! Я Екатерина Колесникова, Agile Coach в inDriver. Когда я пришла в команду, заметила проблемы в процессе Product Backlog Refinement. Я предложила новый сценарий этой церемонии — и он сработал. В этой статье поделюсь опытом проведения PBR без скучной теории о «правильном» планировании. 

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии9

Как мы развивали ИТ в «Леруа Мерлен»: пересборка двигателя на ходу

Время на прочтение6 мин
Количество просмотров12K


Четыре года назад база клиентов велась отдельно в каждом магазине плюс ещё одна — на сайте.

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

Самый простой юзеркейс: сделать заказ через сайт и забрать его в реальном магазине «Леруа Мерлен» в России. Раньше заказы интернет-магазина обрабатывались в другом приложении вообще и по другой схеме. Теперь нам нужна была омниканальная витрина, чтобы любой заказ был разбит на интерфейс: касса в магазине, мобильное приложение, терминал в магазине, сайт — что угодно. Если вы поставите Linux на микроволновку — пускай будет микроволновка. Главное, чтобы какие-то интерфейсы могли стучать по API к беку и говорить, что вот тут надо оформить такой-то заказ. И получали на это внятный ответ. Вторая история была с запросами наличия и свойств товара из его карточки.

На фронте (скоро и про это напишем) у нас монстр — AEM, а за ним в беке было два больших приложения: OPUS и MoVe. Первое — это база данных свойств каждого товара (от габаритов до описания), второе — отвечает за чекаут, то есть монолит касс. Если сильно упростить.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии20

Устройство Helm и его подводные камни

Время на прочтение8 мин
Количество просмотров21K

Typhon freight hauler concept, Anton Swanepoel

Меня зовут Дмитрий Сугробов, я разработчик в «Леруа Мерлен». В статье расскажу, зачем нужен Helm, как он упрощает работу с Kubernetes, что поменялось в третьей версии и как с его помощью обновлять приложения в продакшене без простоя.

Это конспект по мотивам выступления на конференции @Kubernetes Conference by Mail.ru Cloud Solutions — если не хотите читать, смотрите видео.
Всего голосов 27: ↑24 и ↓3+37
Комментарии10

10 фраз на английском, которые помогут сойти за американца

Время на прочтение5 мин
Количество просмотров65K


Только ленивый не знает, что школьный и университетский английский сильно отличаются от реального языка, на котором говорят в США или Британии.

В каждой англоязычной стране есть разговорные выражения, которые отличают носителя от приезжего.

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

Добавьте их в свой словарик и при разговоре сможете сами сойти если не за американца, то хотя бы за обладателя уверенного английского. Поехали.
Всего голосов 33: ↑29 и ↓4+33
Комментарии44

«Walking in my shoes» — стоп, а они маркированные?

Время на прочтение8 мин
Количество просмотров7.6K
С 2019 года в России действует закон об обязательной маркировке. Закон распространяется не на все группы товаров, и сроки вступления в силу обязательной маркировки для товарных групп разные. Первыми под обязательную маркировку попадают табак, обувь, лекарства, позднее добавятся и другие товары, например, духи, текстиль, молоко. Это законодательное нововведение побудило к разработке новых ИТ-решений, которые позволят отследить всю цепочку жизни товара с момента производства до покупки конечным потребителем, всем участникам процесса: как само государство, так и все организации, реализующие товары с обязательной маркировкой.

В Х5 система, которая будет отслеживать товары с маркировкой и обмениваться данными с государством и поставщиками, получила название “Маркус”. Расскажем по порядку как и кто ее разрабатывал, какой у нее стек технологий, и почему нам есть чем гордиться.


Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

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

Время на прочтение4 мин
Количество просмотров126K


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Всего голосов 81: ↑77 и ↓4+91
Комментарии62

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере

Время на прочтение12 мин
Количество просмотров21K


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


В JVM-мире всё немного сложнее. Есть огромное количество фреймворков и библиотек, блокирующих потоки при использовании. Так и сама stdlib может делать то же самое порой. Да и в Java нет аналогичного механизма, похожего на горутины в Golang.


Тем не менее, JVM активно развивается и появляются новые интересные возможности. Есть Kotlin с корутинами, которые по своему использованию очень похожи на горутины из Golang (хоть и реализованы совершенно по-другому). Есть JEP Loom, который в будущем привнесёт fibers в JVM. Один из самых популярных веб-фреймворков — Spring — не так давно добавил возможность создавать полностью неблокирующие сервисы на Webflux. А с недавним релизом Spring boot 2.2 интеграция с Kotlin стала ещё лучше.


Предлагаю на примере небольшого сервиса по переводу денег с одной карты на другую самим написать приложение на Spring boot 2.2 и Kotlin для интеграции с несколькими внешними сервисами.

Читать дальше →
Всего голосов 26: ↑25 и ↓1+33
Комментарии15

Akka Streams для простых смертных

Время на прочтение27 мин
Количество просмотров24K
Как можно несколькими строками кода распечатать непрерывный поток сообщений из Твиттера, добавив в него данные о погоде в местах проживания их авторов? И как при этом ограничить скорость запросов к провайдеру метеоусловий, чтобы они не внесли нас в черный список?

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


В основе статьи — расшифровка доклада Вагифа Абилова с нашей декабрьской конференции DotNext 2017 Moscow.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии9

Большое интервью про Big Data: зачем за нами следят в соцсетях и кто продает наши данные?

Время на прочтение24 мин
Количество просмотров39K
Disclaimer. Специалист по Big Data, Артур Хачуян, рассказал, как соцсети могут читать наши сообщения, как наш телефон нас подслушивает, и кому все это нужно. Эта статья — расшифровка большого интервью. Есть люди, которые экономят время и любят текст, есть те, кто не может на работе или в дороге смотреть видео, но с радостью читает Хабр, есть слабослышащие, для которых звуковая дорожка недоступна или сложна для восприятия. Мы решили для всех них и вас расшифровать отличный контент. Кто всё же предпочитает видео — ссылка в конце.



Каждый день мы что-то пишем, разыскиваем и выкладываем в интернете, и каждый день кто-то следит за нами по ту сторону экрана. Специальные программы сканируют фото, лайки и тексты, чтобы продать наши данные рекламным компаниям или полиции. Можно назвать это паранойей или научной фантастикой, но телефон, круг общения, переписка или ориентация — больше не секрет.
Всего голосов 48: ↑44 и ↓4+40
Комментарии59

Неформальные отношения в команде: зачем и как ими управлять

Время на прочтение13 мин
Количество просмотров45K


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

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

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

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

В последние десять лет я занимаюсь тем, что руковожу командами разработки, семь из них — в Badoo. Эта статья написана по мотивам моего  выступления на Saint TeamLead Conf 2019: в ней я попытаюсь объяснить, как и зачем нужно работать над неформальными отношениями в коллективе. 
Читать дальше →
Всего голосов 90: ↑79 и ↓11+68
Комментарии165

Справочник по синхронизаторам java.util.concurrent.*

Время на прочтение14 мин
Количество просмотров284K
Целью данной публикации не является полный анализ синхронизаторов из пакета java.util.concurrent. Пишу её, прежде всего, как справочник, который облегчит вхождение в тему и покажет возможности практического применения классов для синхронизации потоков (далее поток = thread).

В java.util.concurrent много различных классов, которые по функционалу можно поделить на группы: Concurrent Collections, Executors, Atomics и т.д. Одной из этих групп будет Synchronizers (синхронизаторы).



Синхронизаторы – вспомогательные утилиты для синхронизации потоков, которые дают возможность разработчику регулировать и/или ограничивать работу потоков и предоставляют более высокий уровень абстракции, чем основные примитивы языка (мониторы).
Читать дальше
Всего голосов 45: ↑41 и ↓4+37
Комментарии15

7 способов использовать groupingBy в Stream API

Время на прочтение2 мин
Количество просмотров137K

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


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Зарегистрирована
Активность