나는 보이 스카우트 규칙 에 대한 위대한 신자입니다 .
모듈을 체크 아웃 할 때보 다 항상 깨끗하게 점검하십시오. "원래 작성자가 누구든, 모듈을 개선하기 위해 항상 작은 노력을 기울이면 어떤 결과를 얻었습니까? 결과는 어떻습니까? 우리 모두는이 단순한 규칙을 따랐고, 우리는 소프트웨어 시스템의 끊임없는 열화의 종말을 보게 될 것입니다. 대신 우리의 시스템은 진화함에 따라 점차 더 나아질 것입니다. 단지 자신의 작은 작은 부분을 돌보는 개인보다.
또한 기회 리팩토링 관련 아이디어를 잘 알고 있습니다 .
예정된 리팩토링 노력을위한 장소가 있지만, 코드를 정리할 필요가있을 때마다 언제 어디서나 수행 할 수있는 기회 활동으로 리팩토링을 권장합니다. 이것이 의미하는 바는 누군가 누군가가 명확하지 않은 코드를 볼 때마다 즉시 수정하거나 최소한 몇 분 안에 고칠 수있는 기회를 가져야한다는 것입니다
특히 리팩토링 기사에서 발췌 한 다음 내용을 참고하십시오.
기회 리팩토링에 마찰을 유발하는 개발 관행에주의를 기울입니다 ... 대부분의 팀은 리팩토링을 충분히 수행하지 않으므로 사람들이 방해하는 일에주의를 기울이는 것이 중요합니다. 작은 리팩토링을하지 않는 것이 좋다고 생각 될 때마다 1 ~ 2 분 밖에 걸리지 않는다는 사실을 알아 차리려면 도움이됩니다. 그러한 장벽은 대화를 불러 일으키는 냄새입니다. 낙담을 기록하고 팀과 함께하십시오. 최소한 다음 회고 중에 논의해야합니다.
내가 일하는 곳에서는 코드 검토 (CR) 라는 큰 마찰 을 일으키는 한 가지 개발 방법이 있습니다. "할당"범위에없는 내용을 변경할 때마다 검토자가 변경 내용을 검토하기 어렵게 만드는 것에 대해 책망하고 있습니다. 이것은 "라인 별"diff 비교를 어렵게하기 때문에 리팩토링이 관련된 경우 특히 그렇습니다. 이 접근법은 여기의 표준이며, 기회 주의적 리팩토링은 거의 수행되지 않으며 "계획된"리팩토링 (일반적으로 너무 작거나 너무 늦음) 만 발생합니다.
나는 이점이 가치가 있다고 주장하며 3 명의 검토자가 조금 더 열심히 노력할 것입니다 (줄이 바뀌는 좁은 범위를 보지 않고 실제로 전후 코드를 이해하기 위해-검토 자체만으로 인해 더 좋을 것입니다) ) 코드를 읽고 유지 관리하는 다음 100 명의 개발자에게 도움이됩니다. 이 검토 자에게 리뷰어를 제시 할 때, 동일한 CR에 있지 않는 한 리팩터링에 문제가 없다고 말합니다. 그러나 나는 이것이 신화라고 주장한다.
(1) 대부분의 경우 과제 중일 때 리팩토링하려는 항목과 방법 만 알 수 있습니다. Martin Fowler는 다음과 같이 말합니다.
기능을 추가 할 때 추가하는 일부 코드에 기존 코드와 중복되는 내용이 포함되어 있으므로 기존 코드를 리팩터링하여 정리해야합니다. 기존 클래스와의 상호 작용이 변경된 경우 더 좋습니다. 자신이 행한 것을 고려하기 전에 그 기회를 잡으십시오.
(2) 아무도 당신이하지 말아야 할 "리팩토링"CR을 공개하는 것을 좋아하지 않을 것입니다. CR에는 특정 오버 헤드가 있으며 관리자는 리팩토링에 "시간을 낭비"하기를 원하지 않습니다. 변경 사항이 번들로 묶여 있으면이 문제가 최소화됩니다.
Resharper는 변경에 추가하는 각각의 새 파일 (그리고 어떤 파일이 변경되었는지 정확히 알 수 없음) 에 오류와 제안이 흩어져 있기 때문에 Resharper에 의해 문제가 더욱 악화됩니다. 고정.
최종 결과는 끔찍한 코드를 보았을뿐입니다. 아이러니하게도, 나는 그러한 코드를 고치는 것이 나의 지위를 향상시킬뿐만 아니라 실제로 그것들을 낮추고 나를 초점을 맞추지 않은 사람으로 나를 태워서 그의 일을하는 대신에 아무도 신경 쓰지 않는 것을 고치는 시간을 낭비한다고 생각한다. 나는 실제로 나쁜 코드를 멸시하고 그것을 볼 수 없기 때문에 그것에 대해 기분이 좋지 않습니다.
이 상황을 어떻게 해결할 수 있습니까?
your manager doesn't want you to "waste your time" on refactoring