Рефакторинг кода: когда и зачем Наталья Белозёрова веб-разработчик Natalya.Belozerova@softline.ru.

Презентация:



Advertisements
Похожие презентации
Kanban Константин Попандопуло веб-разработчик
Advertisements

TagGonf: Гид по Гиту Алексей Феофанов веб-разработчик
Как сделать свой сайт лучше? Принципы юзабилити веб-интерфейсов в примерах Олеся Чумаченко системный аналитик
Корпоративный портал: специфика продвижения, возможности и сложности. В погоне за покупателем. Екатерина Типкова,
ИТ - инфраструктура ЛПУ - фундамент информатизации здравоохранения Владимир Соловьев, Руководитель направления консалтинга Сибирь и Дальний Восток Москва.
Учебный центр Константин Зобнин Руководитель представительства Softline в г. Челябинске.
Ряд стран, куда белорусы могут въезжать без виз: Азербайджан Армения Венесуэла Казахстан Кыргызстан Таджикистан Россия Китай Куба Сербия Черногория Грузия.
Allsoft – электронная дистрибуция ПО в интернет. SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан,
От виртуальной PBX к UC: формирование рынка объединённых коммуникаций Антон Салов Заместитель директора по новым технологиям.
флаги стран Азии Азербайджан Армения Афганистан.
Learn Lean: Технология управления от самураев – теория и практика Светлана Федянина, Product Owner, allsoft.ru
ЛИЦЕНЗИРОВАНИЕ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина,
РЕЗЮМЕ ВКЛАДА ПАРТНЕРОВ В ОТЧЕТ О МОНИТОРИНГЕ прогресса, достигнутого ЕС и странами-партнерами INOGATE в достижении целей Энергетической дорожной карты,
Приемы фотошопа для верстальщика Георгий Михайлов верстальщик
Миграционные процессы в современной России. 1. Ускорительная 2. Перераспределительная 3. Селективная 4. Экономическая 5. Социальная 6. «Сигнальная»
10 – 11 КЛАССЫ Классный час, посвященный союзу независимых государств.
Рефакторинг Забота о коде Андрей Скляревский.NET Developer, Murano Software
Softline Venture Partners ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан,
IT-образование в Кыргызстане: ситуация, проблемы, решения Дмитрий Ким,
ПРИРОСТЫ НАСЕЛЕНИЯ INCREASES OF POPULATION Азербайджан/Azerbaijan Естественный прирост Natural increase (человек/persons) Миграционный прирост Net migration.
Транксрипт:

Рефакторинг кода: когда и зачем Наталья Белозёрова веб-разработчик

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Определение Рефакторинг – процесс такого изменения программной системы, при котором не меняется внешнее поведение кода, но улучшается его внутренняя структура. Это способ систематического приведения кода в порядок, при котором шансы появления новых ошибок минимальны. Цель рефакторинга – упростить понимание и модификацию ПО.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Применение Приступая к рефакторингу, необходимо построить набор тестов для перерабатываемой части кода. Применение рефакторинга в разработке ПО подразумевает переключение между двумя видами работы: рефакторинг и добавление нового функционала.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Зачем нужно проводить рефакторинг? Р. улучшает композицию ПО Чем сложнее разобраться во внутреннем устройстве кода, тем труднее его сохранить и тем быстрее происходит его распад. Р. облегчает понимание ПО Код адресован не только компьютеру. Спустя некоторое время кому-то придётся его читать. Р. помогает найти ошибки После прояснения структуры программы некоторые ошибки становятся очевидными. Р. позволяет быстрее писать программы Без хорошего дизайна системы время тратится не на добавление функционала, а на поиск ошибок.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Когда следует проводить рефакторинг? Надо не решать проводить рефакторинг, а проводить его! Правило трёх ударов Применяйте рефакторинг при добавлении новой функции Применяйте рефакторинг, если требуется исправить ошибку Применяйте рефакторинг при разборе кода

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Как объяснить необходимость рефакторинга руководству? Руководитель действительно ориентирован на качество? Подчёркивайте Никак аспекты качества ДА! НЕТ

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Проблемные области для проведения рефакторинга Базы данных Изменение интерфейсов Проблема с опубликованными интерфейсами. Не публикуйте интерфейсы раньше срока.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Когда рефакторинг не нужен? Когда нужно переписывать программу с нуля Явный признак: неработоспособность кода. Близость даты завершения проекта. Рост производительности, достигаемый благодаря рефакторингу, проявит себя слишком поздно.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Bad Smells Дублирование кода Длинный метод Большой класс Длинный список параметров Расходящиеся модификации «Стрельба дробью» Завистливые функции Группы данных Одержимость элементарными типами

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Bad Smells (продолжение) Операторы типа switch Параллельные иерархии наследования Ленивый класс Теоретическая общность Временное поле Цепочки сообщений Посредник Неуместная близость

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Материалы, использованные при подготовке презентации Мартин Фаулер. Рефакторинг: улучшение существующего кода.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕРВИСЫ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Иран, Египет Спасибо за внимание! Вопросы а