Advertisement
Pro_Unit

Заметки по Рефакторигу

Feb 17th, 2022
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. 1) Написать тесты на логику поведения, которая будет рефакториться, чтобы проверить что ничего не сломалось в процессе рефакторинга
  2. * Тесты должны выражать требования Геймдизайнера
  3. 2) Переименовать все переменный по конвенции именования
  4. * Не использовать сокращения (Буквы не очень платные :-) )
  5. 3) Разделить на маленькие методы большие методы, которые не влазят в экран
  6. * Можно позволить себе добавлять And в названии методов - это временный этап, потом появиться ситуация когда от этого можно избавиться
  7. * Удалять комментарии и регионы (#region), и по сути заложить их содержание в названия методов
  8. * комментарии могут быть если там математика или какие-то сложные алгоритмы
  9. 4) Поиски в циклах лучше заменить FirstOrDefault или аналогичное(у List<T> это Find(); )
  10. * Вместо лямбд можно сделать локальные методы с понятым названием
  11. 5) Выделяем свойства для простых проверок
  12. * в свойства удобнее ещё выделять у используемых классах, внутрь их поместить свойство, которое лезет через +100500 точек у вложенных зависимостей
  13. 6) Инвертировать if, которые растянуты на весь метод.
  14. * Лучше сразу сделать return если условие обратное условие на выполняется.
  15. * Тем самым уменьшается вложенность и читаемость кода становится лучше
  16. 7) Запускать тесты когда произошли не автоматические изменения в коде (изменения за счет встроенных функций рефакторинга IDE)
  17. * чтобы понят что тестировать, как раз такие моменты помогут определиться, тестировать надо на абстрактном уровне, на уровне бизнес логики кода(по сути публичный API)
  18. 8) 3 и более вложенных if Это уже плохо
  19. 9) Избавиться от bool переменных которые неявно управляют потоком управления (Здесь надо порой очень хорошо подумать и запустить тесты чтобы проверить что всё работает как и прежде)
  20. 10) Разделить методы с And в названии
  21. 11) Разбиваем сначала большие методы на маленькие, а потом когда будут видны все ответственности, нужно выделить эти ответственности в отдельные классы
  22. * Также можно выделить какие-нибудь паттерны если они четко просматриваются после рефакторинга
  23.  
  24. 12) Использовать методы расширения, когда надо часто повторять какой-то простой кода в разных местах
  25. * Иногда можно написать расширения (локальное) на спецефичскую бизнес логику
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement