ݺߣ

ݺߣShare a Scribd company logo
Осознанность
рефакторинга


Евгений Кривошеев,
Цели доклада
•  Участники смогут принимать
   осознанные инженерные решения
•  Участники смогут обеспечить
   высокое качество дизайна
•  Участники решат как минимум
   одну нерешенную практическую
   проблему
Сценарий
Понятие качества
       Scope, Defects


           Quality
    Time             Resources
Сценарий
Обоснование через качество
     Не уверен, что делаю в коде
       так, потому что надо…




       …или потому что так
        написано в книжке
Кейсы рефакторингов
// extract method
Кейсы рефакторингов
// move method
Кейсы рефакторингов
// extract class
Кейсы рефакторингов
// creator pattern → factory pattern
Кейсы участников
•  Напишите на листочке последнюю
   сложную или нерешенную
   проблему
•  Последний holy war
•  Проблема любая, но желательно в
   контексте дизайна / рефакторинга
•  В конце Вы попробуем решить её
Сценарий
Задача рефакторинга
      Привести дизайн
к желаемым характеристикам
    Какие характеристики
        желаемые?*

   *→быть фабрике или
      создателю?
Сценарий
Место QA в требованиях
Важность простоты
Простота vs Понятность*
Влияние D.M. на QA


            Дизайн должен
             реализовать
             требования
Рефакторинги и QA
                Меняя дизайн, меняем и QA

Рефакторинг         Гибкость    Простота   Понимаемость Тестабельность
extract method
extract class
move method
introduce factory

                               ↑ или ↓ или ?
Сценарий
Корреляции требований
Корреляции требований
Корреляции требований

   Требования зачастую
       конфликтуют.
 Дизайн – это компромисс.*


 *За все приходится платить
Конфликты требований
                    интеллект



специальные
                                    готовка
   навыки
                                              Ирка Петрова
                                              Саша Грей



              TCO               уборка
Design is a tradeoff
  Factory        Cache
  Pattern        Pattern
Design is a tradeoff

Нет «хорошего» и «плохого»
         дизайна.
    Есть подходящий и
      неподходящий.
Так быть или не быть?
        Factory
        Pattern
Сценарий
Минутка матана

<матан>	
     	
<a>Вторая теорема Гёделя о неполноте</a>	
</матан>
Метамодель дизайна
Дизайн через требования
          Функционал            Функционал
          вариабелен            стабилен
          (ось вариативности)


          Гибкость              Простота



          Инкапсулируем         Инлайнируем
          ответственность в     ответственность
          класс
Полнота требований
          Функционал
          вариабелен
          (ось вариативности)
                                ?	
    Функционал
                                        стабилен
Метамодель требований
           BDUF   YAGNI
Метамодель требований
           BDUF   ?	
 YAGNI
Метамодель процесса
Сценарий
Обоснованный дизайн
               ?
               ?      BDUF     YAGNI




               ?
         Функционал
         вариабелен
         (ось вариативности)
                               Функционал
                               стабилен



         Гибкость              Простота



         Инкапсулируем         Инлайнируем
         ответственность в     ответственность
         класс
Обоснованный дизайн




Наличие java i
              nterface в к
    в итоге обосно         оде
                   вывается
 бизнес-модель
               ю компании
Сценарий
Отлить в граните
•  Рефакторинг – направленное
   обоснованное изменение дизайна.
•  Дизайн – это компромисс. За все
   нужно платить.
•  Необходимо выявить конфликт
   ожиданий.
•  Для принятия решения следует
   подняться выше на уровень
   абстракции.
•  Решения локальны и специфичны.
Персональный кейс

 Получилось ли решить Ваш
          кейс?*




 *Если нет, продолжим за
Контакты
Евгений Кривошеев, ekrivosheyev@scrumtrek.ru
Никита Филиппов, nfilippov@scrumtrek.ru
Асхат Уразбаев, askhat@scrumtrek.ru



             «Тяжело в учении – легко в бою»
               SkillTrek – это дистанционный центр
               компетенций, где специалисты получают
               востребованные на рынке знания и навыки в
               условиях реальных проектов с выбором
               удобной им загрузки
Ad

Recommended

PDF
business games
CBSD Thunderbird Russia
PDF
Инжиниринг требований
SQALab
PPT
Вебинар начало
catarus
PPT
Tdd Workshop Disscussions
Evgeniy Krivosheev
PDF
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest
PDF
Google GIN
Anh Quân
PDF
Введение в веб каркас Struts2
Evgeniy Krivosheev
PDF
Transactions and Concurrency Control Patterns
Vlad Mihalcea
PDF
Евгений Кривошеев, SkillTrek
Diana Dymolazova
PDF
Е. Марченков «Навыки проведения эффективной презентации»
e-Legion
PPTX
Нулевая итерация. Как cпасти котов
Askhat Urazbaev
PDF
DUMP-2012 - Управление разработкой - "Канбан: планы без планирования" Иван Да...
it-people
PDF
Канбан-победитель
UXkontur
PDF
Канбан-победитель
smolotkov
PPTX
Msf Dz
Digital Zone
PPTX
Req Labs'2011. Коммуникация нефункциональных требований
Alexander Kalouguine
PPTX
Практические аспекты разработки ПО #2
Denis Umnov
PPTX
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
CUSTIS
PPTX
Аналитик и Тестировщик в одном лице – путь к качеству
SQALab
PPTX
Управление разработкой продукта
Alexey Filimonov
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
PPTX
Управление разработкой продукта
Alexey Filimonov
PPTX
Способы создания качественного программного продукта
Ingria. Technopark St. Petersburg
PPT
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
SQADays_2009_Piter
PDF
Agile days `16 summary
Anton Zhukov
PDF
Разработка по с использованием Tfs 2012
Александр Шамрай
PPTX
Сергей Баранов, Кто она, инкрементальная и адаптивная архитектура?
ScrumTrek
PDF
Points Of View как ключ к общению QAs и инженеров – видим качество за диаграм...
Evgeniy Krivosheev
PDF
Архитектура как функция от ?. Что мы не учитываем и убиваем проекты.
Evgeniy Krivosheev

More Related Content

Similar to Осознанность рефакторинга: Модель принятия инженерных решений (20)

PDF
Евгений Кривошеев, SkillTrek
Diana Dymolazova
PDF
Е. Марченков «Навыки проведения эффективной презентации»
e-Legion
PPTX
Нулевая итерация. Как cпасти котов
Askhat Urazbaev
PDF
DUMP-2012 - Управление разработкой - "Канбан: планы без планирования" Иван Да...
it-people
PDF
Канбан-победитель
UXkontur
PDF
Канбан-победитель
smolotkov
PPTX
Msf Dz
Digital Zone
PPTX
Req Labs'2011. Коммуникация нефункциональных требований
Alexander Kalouguine
PPTX
Практические аспекты разработки ПО #2
Denis Umnov
PPTX
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
CUSTIS
PPTX
Аналитик и Тестировщик в одном лице – путь к качеству
SQALab
PPTX
Управление разработкой продукта
Alexey Filimonov
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
PPTX
Управление разработкой продукта
Alexey Filimonov
PPTX
Способы создания качественного программного продукта
Ingria. Technopark St. Petersburg
PPT
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
SQADays_2009_Piter
PDF
Agile days `16 summary
Anton Zhukov
PDF
Разработка по с использованием Tfs 2012
Александр Шамрай
PPTX
Сергей Баранов, Кто она, инкрементальная и адаптивная архитектура?
ScrumTrek
Евгений Кривошеев, SkillTrek
Diana Dymolazova
Е. Марченков «Навыки проведения эффективной презентации»
e-Legion
Нулевая итерация. Как cпасти котов
Askhat Urazbaev
DUMP-2012 - Управление разработкой - "Канбан: планы без планирования" Иван Да...
it-people
Канбан-победитель
UXkontur
Канбан-победитель
smolotkov
Req Labs'2011. Коммуникация нефункциональных требований
Alexander Kalouguine
Практические аспекты разработки ПО #2
Denis Umnov
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
CUSTIS
Аналитик и Тестировщик в одном лице – путь к качеству
SQALab
Управление разработкой продукта
Alexey Filimonov
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
Управление разработкой продукта
Alexey Filimonov
Способы создания качественного программного продукта
Ingria. Technopark St. Petersburg
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
SQADays_2009_Piter
Agile days `16 summary
Anton Zhukov
Разработка по с использованием Tfs 2012
Александр Шамрай
Сергей Баранов, Кто она, инкрементальная и адаптивная архитектура?
ScrumTrek

More from Evgeniy Krivosheev (9)

PDF
Points Of View как ключ к общению QAs и инженеров – видим качество за диаграм...
Evgeniy Krivosheev
PDF
Архитектура как функция от ?. Что мы не учитываем и убиваем проекты.
Evgeniy Krivosheev
PDF
[Skill trek] type idioms at domain analysis
Evgeniy Krivosheev
PDF
Design&Process Models
Evgeniy Krivosheev
PPTX
[SkillTrek] Бизнес-кейсы
Evgeniy Krivosheev
PPTX
[SkillTrek] Презентация
Evgeniy Krivosheev
PPTX
Вебинар "Введение в процесс разработки ПО"
Evgeniy Krivosheev
PDF
Tdd Workbook
Evgeniy Krivosheev
PPT
Design Rules And Principles
Evgeniy Krivosheev
Points Of View как ключ к общению QAs и инженеров – видим качество за диаграм...
Evgeniy Krivosheev
Архитектура как функция от ?. Что мы не учитываем и убиваем проекты.
Evgeniy Krivosheev
[Skill trek] type idioms at domain analysis
Evgeniy Krivosheev
Design&Process Models
Evgeniy Krivosheev
[SkillTrek] Бизнес-кейсы
Evgeniy Krivosheev
[SkillTrek] Презентация
Evgeniy Krivosheev
Вебинар "Введение в процесс разработки ПО"
Evgeniy Krivosheev
Tdd Workbook
Evgeniy Krivosheev
Design Rules And Principles
Evgeniy Krivosheev
Ad

Осознанность рефакторинга: Модель принятия инженерных решений