Pull to refresh
-7
0
Клёпов Алексей @XelaVopelk

User

Send message

Практическое DDD. Часть 1: Создание правильных основ

Reading time8 min
Views12K

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

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

Это БАЗА: 4 правила управления проектами для проджект-менеджеров

Reading time10 min
Views17K

Часто задерживаетесь на работе, количество задач растет в геометрической прогрессии, сроки проектов постоянно приходится сдвигать? Тогда эта статья для вас: расскажу о 4 главных ошибках, которые совершают руководители проектов, приводящие к таким последствиям. На примерах разберём эти ошибки, откуда они берутся и как их не допускать.

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

Грань выбора. Учимся строить временные петли на F# при помощи Hopac.Alt. Часть 1. Развилка

Reading time15 min
Views1.9K

Hopac -- самостоятельный асинхронный движок, написанный специально под F#.
Он стоит на 4 китах, одним из которых является перенаправление потоков вычисления через явное противопоставление конкурирующих задач.

Конкурирующие задачи (или ветки) реализуются через концепцию альтернатив (или Alt), которую я хочу осветить в этом цикле из трёх статей.

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

Что нам стоит диаграмму в Python построить: 5 вариантов привлекающей внимание визуализации данных и кое-что ещё

Reading time6 min
Views14K

Диаграммы помогают визуализировать как простые, так и самые сложные наборы данных. При этом диаграмм — множество видов, у каждого есть свои достоинства и недостатки. О наиболее эффектных и эффективных, реализуемых с Python, мы решили рассказать в сегодняшней подборке. Если вам интересна эта тема – просим под кат. А если у вас есть собственные предпочтения среди графиков (или вы используете что-то ещё), то пишите в комментариях, обсудим. Что же – поехали!

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

Как в 3 раза снизить затраты на отказоустойчивую инфраструктуру, переехав с Hazelcast на Redis

Level of difficultyEasy
Reading time10 min
Views7.2K

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

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

Функциональные и НЕфункциональные задачи

Reading time4 min
Views2K

Не тот стрелок, кто стреляет, а тот, кто попадает

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

В управлении потоком задач существует проблема разделения задач на функциональные и НЕфункциональные.

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

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

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

Часто выполнению функциональных задач нам мешают НЕфункциональные задачи.

И красно, и пестро, да пустоцветом

НЕфункциональные задачи — это противоположность функциональных задач. Это те задачи, которые на текущем отрезке времени никакого вклада в достижение заданных — желаемых целевых результатов не делают.

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

Читать далее
Total votes 9: ↑2 and ↓7-4
Comments4

Чем заняться тимлиду, если не кодить? Рассказываю о своих задачах

Level of difficultyEasy
Reading time10 min
Views12K

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

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

Я составил список своих задач и разбил их на категории. Кстати говоря, добрую половину этих задач я повесил на себя сам.

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

Лучшая задача по программированию для собеседования

Reading time7 min
Views65K

Готовиться к собеседованию можно по-разному: смотреть ролики на YouTube, читать документацию, положиться на судьбу и тд. В большинстве случаев кандидатам предложат решить одну или несколько задач. В этой статье вас ждет подробный разбор реальной задачки, рекомендации к ее решению и объяснение ожиданий интервьюера от кандидатов.

Читать далее
Total votes 61: ↑38 and ↓23+22
Comments271

В чем разница между unit и компонентным тестированием

Reading time4 min
Views9.6K

И почему вас это должно волновать.

При компонентном тестировании вы тестируете более ранние этапы процесса разработки, и вместо тестирования всего приложения (или его большого фрагмента) вы тестируете более мелкие части приложения. С точки зрения Shift Left это очень важно.

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

Архитектурные изменения: важно не терять темпа и воли к улучшению ситуации

Level of difficultyEasy
Reading time5 min
Views1.3K

Последнее время я достаточно часто участвую в проектах, где надо не придумать архитектуру с нуля, а исправить то, что уже придумали и уже почти год-два-три разрабатывают. Желающих и что более важно убедительно рассказывающих как правильно делать дизайн архитектуры большой системы с нуля полно. По разным причинам, далеко не всегда такое заканчивается успешным релизом. Так сложилось, уже, наверное, последние лет 6-7, 80% моей активности это участие в проектах где «мы тут придумали классную систему и год над ней работаем, а теперь надо чтобы она заработала». Симптомы почти в каждом таком проекте одни и те же

симптомы ...
Total votes 3: ↑3 and ↓0+3
Comments0

Организация внутреннего митапа в ИТ-компании: ожидание VS реальность

Level of difficultyEasy
Reading time8 min
Views4.7K

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

Под катом рассказываем, с чем мы столкнулись при подготовке первого внутреннего митапа МойОфис, что у нас в итоге получилось и какие мы сделали выводы.

Читать далее
Total votes 37: ↑34 and ↓3+33
Comments1

Код-ревью: cookbook от Google

Level of difficultyEasy
Reading time16 min
Views12K

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

От автора перевода: в Google вместо PR (Pull Request) принято использовать аббревиатуру CL (ChangeList — список изменений). Остальные термины, на мой взгляд, понятны и без пояснений. Чтобы разбавить кучу текста, в качестве разделителей разделов использованы генерации на тему "код-ревью от разных мультипликаторов" от нейросети Kandinsky.

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

Mela: асинхронный фреймворк на Python для сервисов, работающих с RabbitMQ

Level of difficultyEasy
Reading time10 min
Views5.8K

WARNING: длинная вступительная часть. Если хотите перейти сразу к делу - листайте до Getting Started.

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

Уровни английского языка: детальный разбор критериев в 2023

Level of difficultyEasy
Reading time10 min
Views51K

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

Читать далее
Total votes 16: ↑13 and ↓3+13
Comments4

Всё, что вы не знали о CAP теореме

Reading time7 min
Views131K
Во время моего первого опыта работы с распределенными системами я постоянно сталкивался с некой CAP-теоремой, пришлось изрядно покопать, чтобы изучить и осознать её со всех сторон. Я не являюсь мастером баз данных, но надеюсь, что мое маленькое исследование мира распределённых систем будет полезно для обычных разработчиков. В статье я расскажу о том, что такое CAP, его проблемы и альтернативы, а также рассмотрим некоторые популярные системы баз данных через CAP призму.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments9

Мини-справочник и руководство по Scrum

Reading time8 min
Views120K
Данная статья – это мини-справочник и руководство по методу Scrum, созданные в результате прочтения книги Сазерленда, статей из интернета и применения на практике.

Надо различать Agile и Scrum. Agile – это методология (наука), а Scrum – это метод достижения цели.

Применяя Scrum важно иметь настоящую команду профессионалов, соблюдать условия прозрачности, открытости и доверия.

Члены команды должны быть довольны своей деятельностью, быть счастливыми в своей работе. Состояние счастья приводит людей к превосходным результатам.
Счастливые люди успешнее на 50%. А значит они на 50% более продуктивные, если счастливы и находят смысл в своей работе. При этом они на 88% более лояльны, потому что понимают, что работают не зря, посвящая половину своего времени развитию этого бизнеса
— доктор Корри Блок, эксперт по стратегии бизнеса в области оценки счастья.

Мини-справочник Scrum


Scrum (скрам) – схватка, гибкий метод управления проектами. Термин пришел из игры рэгби.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments23

Как составить стратегическую карту компании по методу «снизу-вверх»

Level of difficultyEasy
Reading time9 min
Views7.6K

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

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

Научиться рисовать стратегические карты
Total votes 1: ↑1 and ↓0+1
Comments8

Мы же всё протестировали, или откуда берутся баги на проде (часть 1)

Level of difficultyEasy
Reading time12 min
Views16K

“Критичный баг на проде!”

Это сообщение в рабочем мессенджере, пожалуй, самый страшный сон тестировщика/QA-специалиста.

Я в тестировании уже больше 10 лет, попробовала себя в разных ролях на 40+ проектах.

И в этой статье рассмотрю ТОП-5 наиболее распространенных причин появления багов на проде, которые НЕ зависят напрямую от тестировщиков. С примерами и анализом, как этих багов избежать.

Статья написана на основе реального опыта: моего и моих коллег-тестировщиков.

Читать далее
Total votes 14: ↑12 and ↓2+13
Comments25

Как на самом деле работает Async/Await в C# (Часть 7)

Level of difficultyHard
Reading time13 min
Views12K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Disclaimer: Я не являюсь профессиональным переводчиком, перевод подготовлен скорее для себя и коллег. Я буду благодарен за любые исправления и помощь в переводе, статья очень интересная давайте сделаем её доступной на русском языке.

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

Обеспечение безопасности Frontend приложений

Level of difficultyEasy
Reading time13 min
Views15K

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

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

Читать далее
Total votes 11: ↑10 and ↓1+14
Comments6
1
23 ...

Information

Rating
Does not participate
Registered
Activity

Specialization

Software Architect, Database Developer