Search
Write a publication
Pull to refresh
19
0
Vladimir @mvs

Creator, founder, developer

Send message

План самостоятельного обучения DDD, CQRS, EventSourcing

Reading time7 min
Views55K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD

Меняем стек на продакшене в сжатые сроки

Reading time13 min
Views4.4K

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

Но давайте по порядку. Меня зовут Александр Клюшкин. Я работаю в Самокате и на нашем примере расскажу о сложностях перехода на новый стек. Зачем и кому это может понадобиться?

Читать далее

Инвестиции в IPO: научно доказанный способ зарабатывать 18% в день, или как акулы Уолл-стрит наживаются на Цукербергах

Reading time11 min
Views16K

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

Читать далее

Как сделать ваши GitLab CI пайплайны быстрее

Reading time8 min
Views40K

Привет, меня зовут Владимир. Я работаю в компании GitLab Архитектором Решений и время от времени я отвечаю на вопросы, которые, как мне кажется, могли бы быть интересны широкому сообществу. Сегодня я поделюсь рекомендациями о несколько способах ускорения выполнения CI/CD задачи в конвейерах GitLab.

Читать далее

QA, из команды в тимлиды — как выжить между двух огней

Reading time8 min
Views6.9K

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

Сейчас я занимаюсь Альфа-Мобайлом, нашим мобильным приложением для физических лиц. Работа в команде состояла из обычного взаимодействия с нашими IOS- и Android-разработчиками, с аналитиком, с бэкенд-разработчиком и с product owner’ом. В моей командной работе были обычные спринты, обычная приемка, обычное написание автотестов к различным компонентам архитектуры, конечно же, дедлайны и еженедельный всеобщий Мобайловский регресс. Помимо работы в команде, есть еще наставничество.

Архитектура довольно нетипичная: помимо обычного front’a и back’a есть еще и middle, и не каждый въезжает сразу, на это тратится много времени. На тот момент, когда со мной поговорил мой руководитель и рассказал, что пора переходить в лиды, у меня было два начинающих падавана. В общем, состоялся разговор о том, что пора расти, пора уже переходить дальше, я ответила, что хоть и очень загружена, но готова. 

Читать далее

Гайд по User Stories для Junior BA / PO / PM

Reading time14 min
Views181K

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

Читать далее

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

Reading time6 min
Views9.3K

Привет! Меня зовут Катя, я руководитель команды технических писателей в Ozon.

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

Разбираемся в вопросе

5 лет в Toptal, плюсы и минусы

Reading time10 min
Views28K

В августе 2021 исполнилось 5 лет с того момента, как я ушел работать в Toptal на удаленный фриланс. Хочу поделиться с вами зарисовками некоторых историй, которые иллюстрируют субъективные плюсы и минусы такой работы. Данная статья может оказаться полезна тем, кто думает поменять работу по ТК с оплачиваемыми больничными и отпусками на фриланс.  

Почему вообще я решил написать и выложить эту статью, если на хабре уже есть много рассказов на эту тему? Дело в том, что именно обсуждение Toptal на хабре и тостере позволило мне решиться уйти из офиса 5 лет назад (отдельное спасибо Дмитрию Павлову), а также мне хочется поделиться живыми историями из своего опыта, которые наглядно демонстрируют важность сухих советов типа «имейте подушку безопасности» и «вкладывайте в домашний офис». 

Читать далее

Грядущие изменения в сертификатах TLS: удаление поля OU, сокращение сроков, ротация центров, автоматизация

Reading time4 min
Views9.1K
Как мы помним, в 2018 году максимальный срок действия публичных сертификатов SSL/TLS уменьшили до 825 дней, а в 2020 году — до 398 дней (13 месяцев). Соответствующие решения в 2018−2020 годы принял Форум CA/B (CA/Browser Forum) — добровольный консорциум удостоверяющих центров, разработчиков браузеров, ОС и других приложений с поддержкой PKI. Хотя многие участники голосовали против такого предложения, но впоследствии им пришлось пересмотреть своё решение с учётом общественного мнения. Даже опрос GlobalSign на Хабре показал, что 72,7% респондентов «скорее поддерживают» сокращение срока действия сертификатов.

Это не единственная новация в порядке обращения сертификатов. В 2021−2022 гг нас ожидает ещё несколько изменений.
Читать дальше →

Иммутабельная архитектура

Reading time6 min
Views11K

Эта статья является переводом материала «Immutable architecture».

В этом посте автор оригинала хотел бы показать общий подход к внедрению иммутабельности в кодовую базу на архитектурном уровне.

Прежде всего, термин «Иммутабельность», применяемый к структуре данных, такой как класс, означает, что объекты этого класса не могут изменяться в течение их жизненного цикла. Существует несколько типов иммутабельности со своими нюансами, но это не являются для нас существенным. По большей части мы можем сказать, что класс является либо изменяемым, что означает, что его экземпляры могут изменяться тем или иным образом, либо иммутабельным (неизменяемым), что означает, что как только мы создадим экземпляр этого класса, мы не сможем изменить его позже.

Читать далее

Автоматическая документация по коду для API в Laravel

Reading time6 min
Views20K

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

Ждать долго не пришлось, при обновлении на сервере PHP c 7.2 до 7.4 - мы получили страницу с описанием ошибки, вместо документации. Ошибка найдена в библиотеке, которую мы использовали для рендеринга UI документации. ПР на гитхабе был создан быстро, но провисел в статусе open почти неделю. После этого, тикет насчет документации пошел в работу.

Читать далее

Развертывание приложения Symfony в AWS Lambda

Reading time4 min
Views3.6K

Сначала давайте разберемся, что такое бессерверная архитектура и когда она нужна.

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

AWS Lambda обеспечивает высокую доступность, причем плата взимается только за фактически затрачиваемое время вычислений. Этот сервис может быть весьма полезен для таких задач, как запуск cron-заданий, отправка уведомлений в режиме реального времени, предоставление доступа к API, обработка каких-нибудь событий при выполнении различных операций и т. д. В сети можно найти массу примеров использования сервиса.

Читать далее

Модульный PHP монолит: рецепт приготовления

Reading time10 min
Views23K

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

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

Читать далее

Чистим пхпшный код с помощью DTO

Reading time4 min
Views40K

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

Я постоянно встречаю код, где если у метода больше двух входных аргументов, добавляется условный (array $args), что влечет за собой реализацию проверки наличия ключа, либо она отсутствует и тогда увеличивается вероятность того, что метод может закрашиться в рантайме.

Возможно, такой подход в PHP сложился исторически, из-за отсутствия строгой типизации и такого себе ООП. Ведь как по мне, то только с 7 версии можно было более-менее реализовать типизацию+ООП, используя strict_types и type hinting.

Читать далее

Абсолютная приватность сервиса в I2P: зашифрованный лизсет

Reading time4 min
Views8.6K

Чтобы связаться с любым скрытым сервисом, необходимо получить его лизсет (LeaseSet), который содержит информацию о входных туннелях и криптографических ключах. Для этого все серверные конечные точки, ожидающие подключение, публикуют свои лизсеты на флудфилах (Floodfill) – роутерах, выступающих в роли справочной книги или доски объявлений. Несмотря на то, что флудфил получает лишь информацию о первых узлах входных туннелей и криптографические ключи, т.е. никакой компрометирующей информации в лизсете нет, архитектура I2P предусматривает использование зашифрованных лизсетов. Это позволяет скрыть наличие конечной точки (она же «скрытый сервис» и «destination») от возможного мониторинга на флудфилах.

Идентификатор незашифрованного лизсета – обычный внутрисетевой адрес скрытого ресурса, только без окончания «.b32.i2p». Это позволяет держателям флудфилов видеть в открытом виде адреса ресурсов, которые у них опубликовались. Если вы подняли в I2P личный ресурс и не хотите, чтобы о нем случайно узнал кто-то еще, зашифрованный лизсет – специально для вас!

Читать далее

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

Reading time3 min
Views39K

Все, что понадобится — подтвержденная учетная запись на Госуслугах и небольшая плата за сведения

СМИ время от времени сотрясают скандалы связанные с тем, что у того или иного государственного служащего находят дома, квартиры, участки и другую недвижимость. Их сменяют другие скандалы о том, что имя  чиновника в государственных реестрах зашифровывается.

Как удается узнавать собственников недвижимости? Неужели любой может узнать кто владеет тем или иным участком, домом или квартирой?

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

Все что Вам нужно для этого - подтвержденная учетная запись на госуслугах. С помощью нее заходим на официальный сайт Росреестра.

Сколько это стоит?

Официальная плата Росреестра от 1 до 5 рублей за одну выписку. Доступ к выпискам оплачивается по УИН на сайте Росреестра пакетами от 100 шт. до 500 000 шт.

Читать далее

Как мы тестировали корпоративный портал «1С‑Битрикс24: Enterprise»: 30 тысяч пользователей одновременно

Reading time6 min
Views8.9K

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

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

Недавно мы вместе с Selectel провели нагрузочное тестирование корпоративного интранет-портала «1С-Битрикс24» в редакции Энтерпрайз. Хотим рассказать, как мы это делали и какие получили результаты.

Читать далее

Где работать в ИТ в 2021: EPAM

Reading time12 min
Views20K

Герой нашего тридцатого (ура, юбилей!) выпуска «Где работать в ИТ» — компания EPAM, которая разрабатывает ПО для международных финансовых, торговых, медицинских и медиа-компаний. Причем проекты есть самые разные: от онлайн-магазинов до VR-игр.

В подготовке участвовала целая команда! Об условиях работы в компании нам рассказали Анна Левина (Head of People Management Team) и Анна Васильева (People Partner Manager). Про найм — менеджеры Talent Acquisition Василий Комолов и Виктория Семенова. Про команду EPAM и технологии дали комментарии Алексей Харюков (менеджер проектов и руководитель тренинг-центра в Санкт-Петербурге), Антон Зеленский, (лид разработки) и Николай Буланов (директор Самарского филиала EPAM).

Читать далее

Слабая связность

Reading time19 min
Views12K

NB: это черновик двух новых глав моей книги, посвященной дизайну API. В тексте встречаются отсылки к предыдущим главам.


Сильная связность и сопутствующие проблемы


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


Поэтому в этом разделе мы поступим следующим образом: возьмём наше модельное API из предыдущего раздела, и проверим его на устойчивость в каждой возможной точке — проведём некоторый «вариационный анализ» наших интерфейсов. Ещё более конкретно — к каждой сущности мы подойдём с вопросом «что, если?» — что, если нам потребуется предоставить партнерам возможность написать свою независимую реализацию этого фрагмента логики.

Читать дальше →

Как создают и поддерживают веб-страницы tinkoff.ru

Reading time9 min
Views21K

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

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity