Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

1.083 visualizaciones

Publicado el

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

Publicado en: Software
  • Sé el primero en comentar

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

  1. 1. HWdTech, LLC Или как 7 студентов и филолог делали сложный проект Карты Шухарта
  2. 2. Постановка задачи Текущая ситуация, проблемы и задачи по их решению 02
  3. 3. Сайт бесплатных объявлений 03 4,5 с – время отклика страницы 70 тыс. ошибок на 1 млн. страниц 30 с - время поиска по тексту объявления БД более 200 таблиц За 5 лет полностью сменилось 3 команды разработчиков, плохая коммуникация между программистами и системными администраторами, задачи на разработку ставятся хаотично, скорость важнее качества.
  4. 4. Что нужно получить 04 <1 с – время отклика страницы < 1 ош. на 10 тыс. страниц Полнотекстовый поиск должен стать основным Сделать редизайн сайта Использовать только Microsoft технологии Команда разработки 7 студентов + девушка филолог в качестве аналитика
  5. 5. Человек, который изменил все 05 Как сделать проект при таких исходных данных? Надо исключить влияние квалификации отдельного программиста на результаты проекта То есть конечный результат в большей степени зависеть не от навыков и умений конкретных людей, а определяться в большей степени архитектурными решениями и технологиями.
  6. 6. Решения База данных, время выполнения запроса, ошибки 06
  7. 7. Модель акторов 1973 г. A Universal Modular ACTOR Formalism for Artificial Intelligence Актор – вычислительная сущность • Отправить конечное число сообщений другим акторам • Создать конечное число акторов • Выбрать поведение для приема следующего сообщения Карл Хьюит 07
  8. 8. В чем отличие от “обычной” модели вычислений Модель акторов vs Синхронизация 08
  9. 9. Асинхронная обработка всех запросов Библиотека HWdTech.DS Реализация модели акторов. Среднее время отклика страницы 400-800 мс. 3 сервера вместо 15. 09 Каждый обработчик – job – выполняет маленькое небольшое действие. Job’ы выполняются параллельно.
  10. 10. Вся параллельность свелась к вызову MessageBus.Send(message); 10
  11. 11. NoSQL обертка над SQL базой: 10 таблиц вместо 200 Документо-ориентированное хранилище Вся работа с данными сводится к ~5 запросам. Среднее время выполнения запроса 200 мс! { "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] } Вся информации о сущности хранится в виде одной записи в формате json. 11
  12. 12. NoSQL обертка над SQL базой: 10 таблиц вместо 200 The Search Request { “FullTextSearch": “Mazda 3", “Ranges": { “Price": {“left“: 200000, right: 700000} }, “Filters”: { “Type”: “Продажа” }, Order: [ {Field: “PublishDate”, Reverse: true} ], “Count”: 20, “Page”: 2 } 12 Все поисковые запросы к хранилищу документов имеют общую стркутуру
  13. 13. NoSQL обертка над SQL базой: 10 таблиц вместо 200 Коллекция документов хранилища Имя поля Searchable Filterable Rangeable 13 Каждый документ должен быть описан структурой следующего формата
  14. 14. Быстрая конфигурация операций Карты сообщений и сервер конфигураций Можно менять алгоритм обработки действий пользователя без программирования или быстро вернуть последнюю рабочую версию. Каждое действие пользователя представляет собой последовательность вызовов job’ов, которая описывается в виде json и хранится в конфигурации сервера. Job1 Job2 … JobN 14
  15. 15. Ошибки скрыты от пользователя Контрольные точки Если в момент обработки произойдет ошибка, то пользователь этого никогда не заметит, а разработчики всегда могут повторить данную операцию без участия пользователя, когда исправят ошибку. Когда сервер получает сообщение, то первое, что происходит – сообщение сохраняется в контрольной точке и тут же отправляется ответ клиенту. CP1 Job … CPN Ответ на входящий запрос 15
  16. 16. Проще приспособиться, чем ждать когда исправят все ошибки Версионирование сообщений Есть задержка между изменением интерфейсов и их реализацией сторонними разработчиками. Документация неидеальная – проще самим приспособиться, чем добиваться полного соотвествия Когда сервер получает сообщение, то это сообщение можно модифицировать так , чтобы его можно было дальше обрабатывать. CP1 Job … CPN Трансформация сообщения на основе адресата и версии сообщения 16
  17. 17. Карты Шухарта 1923 г. AT&T Ламповые усилители сигнала Количество аварийных бригад и транспорта? Применяются в различных сферах производства как средство постоянного улучшения качества выпускаемой продукции Уолтер Шухарт 17
  18. 18. Как обнаруживать ошибки? Карты Шухарта Все процессы подвержены вариабельности. Управляемое явление - используя прошлый опыт можно предсказать, каких его вариаций можно ожидать в будущем. ГОСТ Р 50779.42-99 (ISO 8258-91) 18 выявление точек выхода процесса из стабильного состояния для установления причин появившегося отклонения и их устранения.
  19. 19. Использовать карты очень просто Карты средних и размаха 19 Множество измерений разбивается на подгруппы. Способ формирования подгрупп влияет на результат! ГОСТ Р 50779.42-99 (ISO 8258-91) Для построения карт достаточно простых арифметических действий
  20. 20. Карты работают? Инструмент больше эмпирический, чем математический Отношение к картам Шухарта неоднозначное Применяется на японских предприятиях, например, Toyota Чтобы применять карты, надо сначала добиться “статистической стабильности” Дональд Уиллер 20
  21. 21. Как узнать, что изменения дали положительный эффект? Карта количества сообщений в контрольной точке Рост числа сообщений говорит о возникновении систематической ошибки, резкий спад – о том, что ошибка была устранена. 21
  22. 22. Причина в коде или в инфраструктуре? Где искать проблему? Один из источников проблем – база данных. 22 • На старой системе – 1 серьезная авария в неделю! • Сис. администраторы не дают полной информации • Причина в коде или в инфраструктуре? Карта, которая измеряет среднюю скорость запросов к базе данных – если время запросов статистически стабильно, то проблема не в коде!
  23. 23. Карты Шухарта позволяют удерживать показатель 1 ошибка на 10 тыс. операций. 23
  24. 24. Все ли пользователи одинаково полезны? 24 Обмен сообщениями между пользователями Анализ аномальной активности показал, что появился пользователь, который стал активно предлагать другим переходить на ресурс-конкурент.
  25. 25. Не все коллеги ведут себя корректно Аргумент при общении со сторонними разработчиками Один из клиентов предъявлял претензии, потому что его разработчики (компания-аутсорсер) говорили, что проблема в нас. 25
  26. 26. Активность пользователей можно создавать Грамотный троллинг увеличивает рейтинги Постоянные посетители готовы общаться – им нужно только немного помочь. Стоит ли эффект вложенных средств? 26
  27. 27. Не все зависит от технологий Эффективность рекламы Рекламная компания в СМИ имела незначительный краткосрочный эффект. 27
  28. 28. Дело не в количестве параметров 28 Увеличение количества параметров Гипотеза: пользователям рубрики Авто нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.
  29. 29. Дело не в количестве параметров 29 Увеличение количества параметров Гипотеза: пользователям рубрики Недвижимость нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.
  30. 30. Человек, который изменил все Послесловие В титрах к фильму говорится, что герой Бреда Пита так до сих пор и не смог выиграть чемпионский титул со своей командой. У каждой технологии есть свой предел! 30
  31. 31. Тюменцев Евгений Александрович Пишите: eytumentcev@hwdtech.ru Звоните: +7 913 150 22 04 http://hwdtech.ru

×