Pull to refresh
18
0

веб-разработчик

Send message

Уровни изоляции транзакций в БД

Level of difficultyMedium
Reading time9 min
Views9.6K

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

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments8

Практическая работа с BPMN

Reading time5 min
Views2.4K

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

Нотация BPMN (Business Process Model and Notation) это система условных обозначений и их описания средствами языка разметки XML для моделирования бизнес-процессов. Разработана Business Process Management Initiative (BPMN.org) и поддерживается Object Management Group, после слияния обеих организаций в 2005 году. Последней версией BPMN на текущий момент является 2.0 (2.0.2).

Читать далее
Total votes 9: ↑5 and ↓4+4
Comments5

Пробы на роль Архитектора. Акт III: выступление

Level of difficultyHard
Reading time10 min
Views4.9K

Выборы архитектора происходят всегда по‑разному. Это только политиков одинаково выбирают — по принципу лишь бы не этот… А вот с архитекторами везде свой сценарий. Где‑то в половине мест сидят эстеты и предлагают что‑то изобразить да обсудить. Четверть мест явно химики с мензурками в сейфе — спрашивают про правильный код или просят пузырьковую сортировку. Ещё реже циркачи просят пожонглировать стеклянными шариками на башне или погонять трамваи. Остальные просто хотят обсуждения с залом. Как бы намекая, что нельзя вот так просто прийти в училище имени Гнесиных с фамилией Иванов. Кто‑то из гильдии таки должен сказать, что в мальчике что‑то есть.

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

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

Как seo-оптимизировать сайт: основы поисковой оптимизации и проверка эффективности сайтов

Reading time6 min
Views4.8K

Всем привет, это adlook!

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

Недавно написали лонгрид про монетизацию сайтов для начинающих пабов. Бегло пробежались по SEO, но не сказали главного — чтобы интернет-проекты приносили деньги, нужна грамотная seo-оптимизация веб-ресурса. Сегодня речь пойдет о базовых основах SEO, которые помогут разобраться в некоторых тонкостях продвижения и монетизации сайтов. Давайте разбираться с самого начала. 

Как подготовиться к созданию seo-сайта?

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

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

Прооптимизируем? :)
Total votes 8: ↑0 and ↓8-8
Comments10

Моделирование микросервисов. Часть 1

Level of difficultyMedium
Reading time5 min
Views15K

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

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

Мы пилили монолит — много нас, а он один. Полезные советы от команды Яндекс Еды

Level of difficultyEasy
Reading time14 min
Views19K

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

Распилить
Total votes 31: ↑28 and ↓3+36
Comments36

История импортозамещения: от BluePrism к SaluteRPA

Level of difficultyMedium
Reading time7 min
Views1.5K

Привет, Хабр! Я Смолин Максим, разработчик и администратор баз данных в продуктах RPA BluePrism и SaluteRPA в Блоке Технологий Сбербанка, руководитель ИТ-направления. Мы с командой развиваем продукт SaluteRPA — роботизированная автоматизация процессов Сбербанка. Я расскажу, почему нас не устраивала платформа от зарубежного вендора, и почему мы решились на создание собственной платформы роботизации.

В 2017 году в банке начали использовать систему RPA BluePrism. На этапе MVP всё было великолепно, но потом началось много вопросов. ЦПУ (центральное процессорное устройство) сервера БД зашкаливали за 95 %, процессы тормозили и не успевали отрабатывать в нужное время, инциденты сыпались как из рога изобилия. С этого момента началась наша работа по превращению софта, рассчитанного на малый бизнес, в софт уровня предприятия с тысячами роботов. В итоге она привела к написанию собственного продукта SaluteRPA.

Архитектура RPA BluePrism достаточно проработана. Но вот реализация на уровне БД имела много замечаний с нашей стороны. Что-то мы отправляли на переделку вендору, что-то дорабатывали сами, а что-то смогли реализовать только в своём продукте.

Забегая вперёд, скажу, что внедренные нами изменения позволили преодолеть ограничение RPA BluePrism в 100 роботов на одну БД и уверенно держать нагрузку до 500 роботов на одну БД.

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

Правильный подход к модульной архитектуре

Level of difficultyMedium
Reading time8 min
Views7.8K

Эта статья строится на двух простых идеях:

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

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

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

Паттерн Aggregate Outside

Level of difficultyMedium
Reading time5 min
Views7K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

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

Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя

Level of difficultyMedium
Reading time10 min
Views9K

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

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

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments95

Разбираемся с RabbitMQ: High Availability и High Load

Reading time8 min
Views17K

Продолжаем делиться конспектами Алексея Барабанова, IT-директора «Хлебницы». На этот раз обсудим специфику работы RabbitMQ с высокими нагрузками (High Load) и обеспечением высокой доступности (High Availability). Рассмотрим различные методы увеличения производительности и горизонтального масштабирования, разберём и настроим внутренние инструменты. Также по мере погружения постараемся изучить основные подводные камни всех подходов.

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

А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код

Level of difficultyEasy
Reading time19 min
Views6.2K

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

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

Книга «Создание микросервисов. 2-е издание»

Reading time31 min
Views16K
image Привет, Хаброжители!
А мы издали второе издание книги Сэма Ньюмена

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

Вы познакомитесь с современными решениями для моделирования, интеграции, тестирования, развертывания и мониторинга собственных автономных сервисов. Примеры из реальной жизни показывают, как получить максимальную отдачу от этих архитектур. Книга будет полезна всем: от архитекторов и разработчиков до тестировщиков и специалистов по эксплуатации.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments6

Переходы и конверсии — что вы упускаете, фокусируясь только на этих показателях в programmatic-рекламе

Reading time7 min
Views1.1K

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

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

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

Применение DDD. От моделей до EDM — поиск новых форм и архитектурные излишества

Reading time14 min
Views6.5K

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



DDD не на коленке, а за дорого ;)

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6

Рациональный подход к декомпозиции систем на модули или микросервисы. Практика

Level of difficultyHard
Reading time12 min
Views5.5K

В своём прошлом посте я рассказал теорию своего подхода к декомпозиции систем на модули. Теперь пришло время проверить её на практике.

Кэмп - реальный проект, который стоил семизначную сумму для заказчика, выполнялся командой из 12 человек (включая двух бакэндеров) и сейчас запущен в промышленную эксплуатацию. Суммарно на выполнение проекта было затрачено 5500 человеко/часов, из которых 950 - на бакенд.

Что из этого получилось?
Total votes 8: ↑5 and ↓3+6
Comments2

«Успейте за 5 месяцев создать систему онлайн обучения», — говорили они, «Успеем к 1 сентября», — сказали мы

Level of difficultyMedium
Reading time7 min
Views2.8K

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

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

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

Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках

Level of difficultyMedium
Reading time12 min
Views6.2K

Привет! Меня зовут Ваня, последние несколько лет я занимаюсь backend-разработкой в Сравни. Моя команда разрабатывает интеграции с сервисами наших партнёров, код пишем на PHP и Symfony Framework.

При работе с интеграциями мы часто имеем дело со сбоями в сторонних сервисах, и нам очень важна возможность восстановления после таких ошибок. Для решения этой задачи у Symfony есть прекрасный инструмент – нужно только правильно им воспользоваться!

В этой статье я расскажу о том, как в Messenger-компоненте Symfony устроен механизм повторной обработки сообщений при ошибках (или по-простому – механизм ретраев), а также поделюсь опытом его использования и некоторыми важными нюансами его работы.

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

Опыт эксплуатации MySQL Master-Master — как пережить аварию датацентра

Reading time6 min
Views81K
Всем привет!

Сегодня поговорим о том, для каких задач на самом деле полезна MySQL Master-Master репликация, для каких — полностью бесполезна и вредна, какие мифы и заблуждения с ней связаны и какую практическую пользу можно быстро получить от данной технологии. Приведу конкретные примеры настройки и схемы архитектур.

Говорить о MySQL Master-Master репликации — в контекстах высокой доступности и производительности — модно, но, к сожалению, многие не понимают ее сути и связанных с технологией серьезных ограничений.
Начнем с того, что в классическом MySQL «настоящей» Master-Master репликации — пока нет :-) Но если постараться, можно все таки просто и быстро настроить эффективную схему выживания при отказе одного датацентра и получить свою долю счастья.


Читать дальше →
Total votes 86: ↑73 and ↓13+60
Comments70

Мутационное тестирование в PHP: качественное измерение для code coverage

Reading time10 min
Views12K
Как оценивать качество тестов? Многие полагаются на самый популярный показатель, известный всем, — code coverage. Но это количественная, а не качественная метрика. Она показывает, какой объём вашего кода покрыт тестами, но не то, как хорошо эти тесты написаны. 

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

На Badoo PHP Meetup в марте я рассказывал, как организовать мутационное тестирование для PHP-кода и с какими проблемами можно столкнуться. Видео доступно по ссылке, а за текстовой версией добро пожаловать под кат.


Читать дальше →
Total votes 78: ↑76 and ↓2+74
Comments27
1
23 ...

Information

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