새로운 질서 위키

가역성

가역성(Reversibility)은 변경하거나 선택한 뒤 이전 상태로 돌아가거나 다른 선택으로 옮길 수 있는 성질이다. 소프트웨어 작업에서는 처음의 결정을 영구적인 것으로 고정하지 않고, 바꿀 길을 설계하는 기준이 된다. YAGNI로 아직 필요하지 않은 기능을 미루면서도 이후의 변경 경로는 살펴볼 수 있다. (실용주의 프로그래머, 조언 18)

돌아갈 길을 만들기

  • 버전 관리로 원고와 코드를 기록하고, 변환 전 파일을 남겨두는 방법부터 적용할 수 있다. 백업이 있다면 실제로 복원할 수 있는지도 확인하자.
  • 웹사이트 도구를 고를 때는 작성한 글과 첨부 파일을 꺼낼 수 있는지 살펴보자. 이 문서에서는 도구를 떠나는 연습을 제안한다. 자료 몇 개를 다른 프로그램으로 옮겨 열어보면 이동에 필요한 조건을 알 수 있다.
  • 되돌리기 버튼이 모든 행동을 취소해주지는 않는다. 이미 다른 사람이 내려받은 파일이나 출력한 종이까지 회수할 수 있다고 가정하면 안 된다. 어떤 상태를 어디까지 복원하는지 밝혀야 한다.

기타 등등

  • 『실용주의 프로그래머』의 조언 18은 결정을 돌에 새긴 글 대신 해변의 모래에 적은 글로 생각하자고 제안한다. 처음부터 바뀔 가능성을 고려하라는 비유다. 출처
  • 같은 조언 목록은 버전 관리를 작업의 타임머신으로 표현한다. 결정을 재고하는 태도와 이전 상태를 보존하는 도구가 함께 등장한다. 출처

#원칙 #프로그래밍 #유지보수

검색