Pull to refresh
17
0
Дмитриев Дмитрий @dmitriev_dmitry

Enterprise Architect

Send message

Шпаргалка по шаблонам проектирования

Reading time 2 min
Views 1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13 +166
Comments 66

Книга: проектирование API

Reading time 1 min
Views 22K

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

Пока что написал первую часть — о принципах проектирования API «сверху вниз»

PDF-версию можно скачать отсюда

Вопросы, пожелания и предложения принимаются. Книга распространяется бесплатно на условиях CC-BY-NC. You're welcome!

Читать далее
Total votes 49: ↑48 and ↓1 +47
Comments 27
Привет, Хабр! Я Павел Наумов, лидер стрима «Мобильный банк» в ВТБ. Полтора года назад мы собрали команду, чтобы доработать банковские приложения для iOS и Android. Первоначально речь шла об их «перекраске», но в итоге пришлось переписать половину унаследованного кода и сделать новые приложения с новым микросервисным бэкендом. Попутно мы сократили сроки релизов с 1,5 месяцев до 2 недель. С чем нам пришлось столкнуться, как мы решали проблемы и какие уроки из этого вынесли, мы с ребятами из команды рассказываем под катом.
Читать далее
Total votes 28: ↑22 and ↓6 +16
Comments 86

Паттерн: Сага

Reading time 2 min
Views 129K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Pattern: Saga" автора Chris Richardson.


Ситуация


Есть приложение, к которому применялся паттерн Database per Service. Теперь у каждого сервиса приложения есть своя собственная база данных. Некоторые бизнес транзакции охватывают сразу несколько сервисов, так что нужен механизм, обеспечивающий согласованность данных между этими сервисами.


Например: давайте представим, что мы разрабатываем интернет магазин, где у клиента есть кредитный лимит. Приложение должно гарантировать, что новый заказ не превышает кредитный лимит клиента. Так как Заказы и Клиенты — различные базы данных, то приложение не может использовать локальные ACID транзакции.


Проблема


Как обеспечить согласованность данных между сервисами?


Решение


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


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


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

Apache Kafka – мой конспект

Reading time 9 min
Views 325K
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 10

Синдром самозванца

Reading time 19 min
Views 80K

«Как часто вы ощущаете синдром самозванца?
Ежедневно / Каждую неделю / Раз в месяц / Никогда»

В апреле 2016 года Джессика Баркер провела в Твиттере опрос на тему, часто ли специалисты по информационной безопасности сталкиваются с «синдромом самозванца». Результаты этого опроса легли в основу доклада Джессики на SteelCon 2016.

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

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

Попробуем разобраться в проблематике под катом.
Читать дальше →
Total votes 43: ↑40 and ↓3 +37
Comments 75

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 3. Kafka

Reading time 20 min
Views 89K
Продолжение перевода небольшой книги:
«Understanding Message Brokers»,
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Предыдущая часть: Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 2. ActiveMQ
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 6

Выбор между лёгким и правильным

Reading time 6 min
Views 31K
Людям из мира IT грех жаловаться на оплату труда. Она выше, чем средняя по всем отраслям экономики во всех странах мира, в России тоже. Однако если переходить от рассмотрения в среднем по больнице к деталям, то нельзя не заметить некоторые странности, которые переживают одно десятилетие и переходят в другое. Мир IT тоже сегментирован, как и другие виды человеческой деятельности. Но существует ли под этим какая-то объективная основа и нужно ли разработчику сознательно ориентироваться на заработки из придонного слоя?

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

image
Читать дальше →
Total votes 84: ↑76 and ↓8 +68
Comments 155

Работа не волк, часть 3. Новичок — вырасти или выжить?

Reading time 10 min
Views 25K
Первое время на новой работе — это жизнь на иголках. Непонятно, куда вы попали, как устроена компания, что ценится в работе. Иногда даже после испытательного срока хочется сбежать от нового коллектива и не до конца понятных задач. Но ведь вы осознанно выбрали эту компанию, вы пришли в неё, потому что вас что-то привлекло. А значит, время бороться за возможности и авторитет — иногда даже матёрым профи. Готовы?



Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 7

Разработка REST API — что такое Code First подход?

Reading time 3 min
Views 53K
Это четвертая статья в серии статей по REST API:


В этой статье мы продолжим знакомство с разработкой REST API и рассмотрим подход Code-First.

Разработка хорошего REST API важна для того, чтобы иметь хорошие микросервисы. Подход Code-First фокусируется на генерации контракта из кода. Это наилучший из возможных подходов?


Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 2

Backyards — автоматизированный service mesh поверх многооблачной и гибридной инфраструктуры

Reading time 6 min
Views 1.8K


Потестируйте Backyards на собственных кластерах: curl https://getbackyards.sh | sh && backyards install -a --run-demo. Если интересно, см. детали последнего релиза.

В июне мы представили Backyards, автоматизированную «сервисную сетку» (service mesh) поверх нашего оператора Istio. Она сильно упрощает управление service mesh в многооблачной и гибридной инфраструктуре. Backyards интегрирован в платформу управления контейнерами Pipeline на Banzai Cloud, но также доступен как отдельный продукт. Конечно, интеграция с Pipeline даёт множество конкретных преимуществ (как управление приложениями на нескольких облаках), но Backyards работает на любой установке Kubernetes.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 1

1С — Добро и зло. Расстановка точек в холиварах вокруг 1С

Reading time 20 min
Views 88K

image


Друзья и коллеги, в последнее время на Хабре участились статьи с хейтом в адрес 1С, как платформы для разработки, и выступлениями ее защитников. Эти статьи обозначили одну серьезную проблему: чаще всего, критики 1С критикуют ее с позиции "не осиливших", ругая проблемы, которые де-факто, легко решаются, и, напротив, не задевая проблемы, которые действительно важны, стоят обсуждения и не решаются вендором. Полагаю, что имеет смысл провести трезвый и взвешенный обзор платформы 1С. Того, что она умеет, того что она не умеет, того что она должна бы делать, но не делает и, на сладкое — то, что она делает на ура, а ваши разработчики на %technology_name% будут делать стопицот лет, выкинув на ветер не один годовой бюджет.


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


Под катом — масса толстых набросов на 1С, на критиков 1С, на Java, .NET и вообще… Вентилятор заправлен, добро пожаловать!

Читать дальше →
Total votes 80: ↑66 and ↓14 +52
Comments 799

Особенности национального распознавания образов

Reading time 4 min
Views 34K

«Когда я слышу про распознавание образов, я никогда не спрашиваю, хорошие там алгоритмы или плохие. Я спрашиваю только, отличают ли они мотоцикл от трактора.» ©
Читать дальше →
Total votes 125: ↑119 and ↓6 +113
Comments 196

Знакомство с GraphQL на вечеринке

Reading time 5 min
Views 5.5K
GraphQL и REST — это две парадигмы, используемые при создании API для веб-приложений.

REST — набор уникальных идентификаторов (URL), которые приложения используют для запроса и отправки данных.

GraphQL — язык запросов, который позволяет клиентским приложениям точно задавать данные, которые им нужны, из одного эндпоинта.

Это связанные технологии, они используются в основном для одних и тех же вещей (а могут и сосуществовать), но при этом они весьма разные.

Звучит немного пресно, да? Давайте объясним их различия более интересным способом, который может помочь вам лучше понять GraphQL, а, возможно, и просто позабавит.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 7

Управление API и SOA

Reading time 9 min
Views 17K
Достижение начального успеха для Сервис-ориентированной Архитектуры (Service Oriented Architecture, SOA) определяется:
  • созданием слабосвязанных соединений «потребитель-поставщик»,
  • соблюдение принципа разделения ответственностей между потребителем и поставщиком,
  • публикация набора повторно используемых, общих сервисов
  • и обеспечение того, чтобы потребители приняли и стали использовать сервис.

Множество команд разработчиков создают и используют сервисы, но до сих пор идет мучительный подбор архитектуры, при которой сервисы будут широко использованы, с потенциалом для повторного использования внутренними командами разработки. Вместо создания согласованной сервисной архитектуры и демонстрации множественного использования одних и тех же сервисов, разработчики вновь и вновь не нарочно создают «Просто Набор Веб Сервисов» (Just a Bunch of Web Services (JBOWS)) или «Просто Набор REST Сервисов» (Just a Bunch of REST Services (JBORS)).

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

Управление SOA, API, и приложением может стать мостом между этими концепциями и улучшить архитектурную согласованность всего решения.

Сервисы, API и архитектура


Когда вы будете решать, что использовать как лучшие практики для сервис-ориентированной архитектуры, определять дизайн RESTful сервисов, когда будете формировать план по управлению ими, четко определите, как ваши сервисы и API вместе будут укладываться в общую архитектурную картину.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 2

Я пережила выгорание, или Как остановить хомячка в колесе

Reading time 8 min
Views 60K
Привет, Хабр. Не так давно я с большим интересом прочла здесь несколько статей со здравыми рекомендациями заботиться о сотрудниках до того, как они «сгорят», перестанут выдавать ожидаемый результат и в конечном итоге приносить пользу компании. И ни одной — с «другой стороны баррикад», то есть от тех, кто действительно выгорел и главное, справился с этим. Я — справилась, получила рекомендации от бывшего работодателя и нашла работу ещё лучше.

Собственно, что делать руководителю и команде, достаточно хорошо написано в «Сгоревшие сотрудники: есть ли выход» (uyga) и «Гори, гори ясно, пока не погасло» (Lisichkina). Краткий спойлер от меня: достаточно быть внимательным руководителем и заботиться о сотрудниках, остальное — разные по степени эффективности инструменты.

Но я убеждена, что ≈80% причин выгорания лежат в личностных особенностях сотрудника. Вывод основан на моём опыте, но думаю, это справедливо и для других выгоревших. Более того, мне кажется, что более ответственные, переживающие за своё дело и внешне перспективные, покладистые работники выгорают чаще, чем остальные.

image

Аллегория с хомячком может показаться кому-то обидной, но она наиболее точно отражает всё произошедшее. Сначала хомячок радостно прыгает в колесо, потом от скорости и адреналина кружится голова, а потом в его жизни остаётся только колесо… Собственно, как я слезла с этой карусели, а также честная рефлексия и непрошеные советы, как пережить выгорание — под катом.
Читать дальше →
Total votes 122: ↑110 and ↓12 +98
Comments 301

Тяжела ли работа программиста — взгляд с точки зрения психофизиологии

Reading time 4 min
Views 65K
Во первых словах:
— Работа программистом-разработчиком — тяжелый труд, сравнимый с валкой леса топором. И проблематика данного труда сильно недооценена в общественном сознании.
Сейчас я обосную этот тезис с научной точки зрения.


Читать дальше →
Total votes 118: ↑101 and ↓17 +84
Comments 366

«Я просто хотел пошутить, но никто не понял» или как не закопать себя на презентации проекта

Reading time 4 min
Views 7.5K

Одной нашей команде на полуфинале в Новосибирске пришлось с нуля изучать принципы мобильной разработки, чтобы выполнить задание на хакатоне. На наш вопрос «Как вам такой челлендж?», они рассказали, что сложнее всего было уместить в пять минут выступления и несколько слайдов то, над чем работал 36 часов.


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


image

Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 3

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

Reading time 3 min
Views 3.5K
Проектные менеджеры регулярно сталкиваются с приемкой проектов на различных фазах от других проектных менеджеров или компаний. Как правило, время передачи ограничено: пара недель или менее. Пройдет ли этот процесс гладко зависит от фазы проекта, а также системы управления проектами, в которой он велся.


Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 0

Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен

Reading time 10 min
Views 46K
image

Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.

На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.

Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
Читать дальше →
Total votes 73: ↑66 and ↓7 +59
Comments 66
1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity