생산성

리펙토링

개요

 리팩터링(refactoring)은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. - 위키백과

변수명 한방에 바꾸기

 now라는 변수명이 의미 전달이 잘 안되어 맘에 안들어! 다음 코드에서 now 변수명을 current_datetime으로 변경하고 싶어!

from django.shortcuts import render


# Create your views here.

def index(request):
    from datetime import datetime
    now = datetime.now()
    now = now.strftime('%Y년 %m월 %d일'.encode('unicode-escape').decode()).encode().decode('unicode-escape')
    now += datetime.now().strftime(' %H시 %M분 %S초 %f'.encode('unicode-escape').decode()).encode().decode('unicode-escape')
    now += datetime.now().strftime(' %p')
    return render(request, 'www/index.html', {'time_now': now})

 now에 커서를 두고 Shift F6 키를 누릅니다. 또는 아래 이미지처럼 Rename... 메뉴를 선택합니다.

 새 변수명을 입력합니다. Enter 키를 눌러 변경을 확정합니다.

파일명 한방에 바꾸기

 index.html 파일명을 current-time.html로 변경하려고 하면, index 함수에서 render의 인수로 전달한 'www/index.html' 문자열도 수정해야 합니다. 예제에서는 2가지 작업만 하면 되지만, 위에서 변수명 한방에 바꾸기도 그렇고 참조되는 횟수가 많아지고, 여러 파일(views.py, model.py 등등)에서 다양하게 참조되면 이를 모두 찾아서 바꾸기란 너무 힘들고, 실수할 가능성도 아주 높아집니다. PyCharm에서는 이런 참조 관계가 있는 것들을 모두 찾아서 바꿔줍니다. 원하는 파일명을 선택하고 Shift F6을 누릅니다.

 되돌리려면 Ctrl Z 키를 누르시면 됩니다.

댓글

댓글 본문