Как 7 студентов и филолог делали сложный проект

Preview:

Citation preview

HWdTech, LLC

Или как 7 студентов и филолог делали сложный проект

Карты Шухарта

Постановка задачи

Текущая ситуация, проблемы и задачи по их решению

02

За 5 лет полностью сменилось 3

команды разработчиков, плохая

коммуникация между программистами и

системными администраторами, задачи на

разработку ставятся хаотично, скорость

важнее качества.

4,5 с – время отклика страницы

70 тыс. ошибок на 1 млн. страниц

30 с - время поиска по тексту объявления

БД более 200 таблиц

Сайт бесплатных объявлений 03

Сделать редизайн сайта

Использовать только Microsoft

технологии

Команда разработки 7 студентов +

девушка филолог в качестве аналитика

<1 с – время отклика страницы

< 1 ош. на 10 тыс. страниц

Полнотекстовый поиск должен стать

основным

Что нужно получить 04

Человек, который изменил все

Как сделать проект при таких исходных данных?

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

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

05

Решения

База данных, время выполнения запроса, ошибки

06

1973 г. A Universal Modular ACTOR

Formalism for Artificial Intelligence

Актор – вычислительная сущность

• Отправить конечное число сообщений другим акторам

• Создать конечное число акторов

• Выбрать поведение для приема следующего сообщения

Модель акторов

Карл Хьюит

07

В ч

ем о

тли

чие

от

“об

ычн

ой

”м

од

ели

вы

числ

ени

йМодель акторов vs Синхронизация

08

Аси

нхр

он

ная

об

раб

отк

а вс

ех

зап

ро

сов

Библиотека HWdTech.DSРеализация модели акторов. Среднее время отклика страницы 400-800 мс.

3 сервера вместо 15.

Каждый обработчик – job – выполняет маленькое небольшое действие. Job’ы выполняются параллельно.

09

Вся параллельность свелась к вызову

MessageBus.Send(message);

10

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

Документо-ориентированное хранилищеВся работа с данными сводится к ~5 запросам. Среднее время выполнения запроса 200 мс!

{"firstName": "Иван","lastName": "Иванов","address": {

"streetAddress": "Московское ш., 101, кв.101","city": "Ленинград","postalCode": 101101

},"phoneNumbers": [

"812 123-1234","916 123-4567"

]}

Вся информации о сущности хранится в виде одной записи в формате json.

11

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

The Search Request{

“FullTextSearch": “Mazda 3",“Ranges": {

“Price": {“left“: 200000, right: 700000}},“Filters”: {

“Type”: “Продажа”},Order:[

{Field: “PublishDate”, Reverse: true}],“Count”: 20,“Page”: 2

}

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

12

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

Коллекция документов хранилища

Имя поляSearchableFilterableRangeable

Каждый документ должен быть описан структурой следующего формата

13

Бы

стр

ая к

он

фи

гур

аци

я о

пер

аци

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

Каждое действие пользователя представляет собой последовательность вызовов job’ов, которая описывается в виде json и хранится в конфигурации сервера.

Job1 Job2 … JobN

14

Ош

иб

ки с

кры

ты о

т п

ол

ьзо

вате

ля

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

Когда сервер получает сообщение, то первое, что происходит – сообщение сохраняется в контрольной точке и тут же отправляется ответ клиенту.

CP1 Job … CPN

Ответ на входящий

запрос

15

Пр

ощ

е п

ри

спо

соб

ить

ся, ч

ем ж

дат

ь ко

гда

исп

рав

ят в

се о

ши

бки

Версионирование сообщенийЕсть задержка между изменением интерфейсов и их реализацией сторонними разработчиками.Документация неидеальная – проще самим приспособиться, чем добиваться полного соотвествия

Когда сервер получает сообщение, то это сообщение можно модифицировать так , чтобы его можно было дальше обрабатывать.

CP1 Job … CPN

Трансформация сообщения на основе адресата и

версии сообщения

16

1923 г. AT&T

Ламповые усилители сигнала

Количество аварийных бригад и транспорта?

Применяются в различных сферах производства как средство постоянного улучшения качества выпускаемой продукции

Карты Шухарта

Уолтер Шухарт

17

Как

об

нар

ужи

вать

ош

иб

ки? Карты Шухарта

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

ГОСТ Р 50779.42-99 (ISO 8258-91)

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

18

Исп

ол

ьзо

вать

кар

ты о

чен

ь п

ро

сто

Карты средних и размаха

Множество измерений разбивается на подгруппы. Способ формирования подгрупп влияет на результат!

ГОСТ Р 50779.42-99 (ISO 8258-91)

Для построения карт достаточно простых арифметических действий

19

Инструмент больше эмпирический, чем математический

Отношение к картам Шухартанеоднозначное

Применяется на японских предприятиях, например, Toyota

Чтобы применять карты, надо сначала добиться “статистической стабильности”

Карты работают?

Дональд Уиллер

20

Как

узн

ать,

что

изм

енен

ия

дал

ип

ол

ож

ите

льн

ый

эф

фек

т?Карта количества сообщений в контрольной точкеРост числа сообщений говорит о возникновении систематической ошибки, резкий спад – о том, что ошибка была устранена.

21

Пр

ичи

на

в ко

де

ил

и в

и

нф

рас

трук

тур

е?Где искать проблему?

Один из источников проблем – база данных.

• На старой системе – 1 серьезная авария в неделю!• Сис. администраторы не дают полной информации• Причина в коде или в инфраструктуре?

Карта, которая измеряет среднюю скорость запросов к базе данных – если время запросов статистически стабильно, то проблема не в коде!

22

Карты Шухарта позволяют удерживать показатель

1 ошибка на 10 тыс. операций.

23

Все

ли

по

льз

ова

тел

и

од

ин

ако

во п

ол

езн

ы?

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

24

Не

все

кол

лег

и в

едут

себ

я ко

рр

ектн

оАргумент при общении со сторонними разработчикамиОдин из клиентов предъявлял претензии, потому что его разработчики (компания-аутсорсер) говорили, что проблема в нас.

25

Акт

ивн

ост

ь п

ол

ьзо

вате

лей

м

ож

но

со

здав

ать

Грамотный троллинг увеличивает рейтингиПостоянные посетители готовы общаться – им нужно только немного помочь. Стоит ли эффект вложенных средств?

26

Не

все

зави

сит

от

техн

ол

оги

й

Эффективность рекламыРекламная компания в СМИ имела незначительный краткосрочный эффект.

27

Дел

о н

е в

кол

иче

стве

п

арам

етр

ов

Увеличение количества параметровГипотеза: пользователям рубрики Авто нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.

28

Дел

о н

е в

кол

иче

стве

п

арам

етр

ов

Увеличение количества параметровГипотеза: пользователям рубрики Недвижимость нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.

29

Человек, который изменил все

Послесловие

В титрах к фильму говорится, что герой Бреда Пита так до сих пор и не смог выиграть чемпионский титул со своей командой.

У каждой технологии есть свой предел!

30

Пишите: eytumentcev@hwdtech.ru

Звоните: +7 913 150 22 04

http://hwdtech.ru

Тюменцев Евгений Александрович

Recommended