«refactoring» 태그된 질문

리팩토링은 기존 코드를 재구성하여 외부 동작을 변경하지 않고 내부 구조를 변경하는 훈련 된 기술입니다.

16
상사는 작은 함수 작성을 중단하고 동일한 루프에서 모든 작업을 수행하도록 요청합니다.
Clean Code 라는 책을 읽었습니다.Robert C. Martin의 . 이 책에서는 작은 함수 작성, 이름 선택 등의 코드를 정리하는 많은 방법을 보았습니다. 필자가 읽은 깨끗한 코드에 관해 가장 흥미로운 책으로 보입니다. 그러나 오늘 상사는이 책을 읽은 후 코드를 작성하는 방식을 좋아하지 않았습니다. 그의 주장은 작은 함수를 작성하면 코드가 무엇을하는지보기 위해 각각의 …

21
내 코드의 대부분에는 주요 디자인 결함이 있습니다. 끝내거나 지금 고치세요? [닫은]
저는 저와 같은 기술 수준을 가진 제 친구와 함께 C # 프로젝트를 진행하는 고등학생입니다. 지금까지 100 개의 커밋 범위에서 약 3,000 줄의 코드와 250 줄의 테스트 코드를 작성했습니다. 학교 때문에 몇 달 동안 프로젝트를 연기했으며 최근에 다시 프로젝트를 다시 시작할 수있었습니다. 내가 그것을 백업 할 때, 내가 작성한 코드는 렌더러에 …

9
직접 객체 생성 대신 팩토리 클래스를 사용해야하는 이유는 무엇입니까?
GitHub 및 CodePlex에서 여러 С # 및 Java 클래스 라이브러리 프로젝트의 역사를 보았으며 직접 객체 인스턴스화와는 반대로 팩토리 클래스로 전환하는 경향을 봅니다. 왜 팩토리 클래스를 광범위하게 사용해야합니까? 클래스의 공용 생성자를 호출하여 객체가 구식 방식으로 만들어지는 꽤 좋은 라이브러리가 있습니다. 마지막 커밋에서 저자는 수천 개의 클래스의 모든 공용 생성자를 내부로 신속하게 …

13
"변경하지 않음"으로 표시된 코드를 리팩터링해야합니까?
나는 꽤 큰 코드베이스를 다루고 있으며 기존 코드를 리팩토링하는 데 몇 달이 걸렸습니다. 리 팩터 프로세스는 곧 제품에 많은 새로운 기능을 추가해야하므로 이제는 더 이상 다른 기능을 중단하지 않고 기능을 추가 할 수 없기 때문에 리팩터링 프로세스가 필요합니다. 요컨대, 많은 사람들이 그들의 경력에서 본 지저분한, 거대하고 버그가 많은 코드. 리팩토링 …


16
참조되지 않은 코드를 제거해야합니까?
나는 중간 크기 (100k 라인) 코드베이스에서 일하고 있는데, 모두 비교적 최근 코드 (1 년 미만)이며 단위 테스트 적용 범위가 좋습니다. 더 이상 어디서나 사용되지 않거나 특정 방법 만 테스트하는 단위 테스트에서만 참조되는 방법을 계속 사용합니다. 더 이상 필요하지 않은 경우이 코드를 제거해야합니까? 제거 이유 : 적은 코드, 적은 버그 적은 …

12
인스턴스 변수보다 로컬 변수를 선호하는 이유는 무엇입니까?
내가 작업하고있는 코드베이스는 인스턴스 변수를 자주 사용하여 다양한 사소한 메소드간에 데이터를 공유합니다. 원래 개발자는 이것이 Bob / Robert Martin 삼촌 의 Clean Code book에 언급 된 모범 사례를 준수한다는 것을 강력하게 인정합니다 . "기능의 첫 번째 규칙은 작을 것입니다." 그리고 "함수에 대한 이상적인 인수의 수는 0입니다 (나일론). (...) 인수는 어렵습니다. …
109 java  refactoring 

15
TDD Red-Green-Refactor 및 사적인 방법을 테스트하는 경우 / 방법
내가 이해하는 한, 대부분의 사람들은 개인 메소드를 직접 테스트하지 말고 공개 메소드가 호출하는 방식을 통해 테스트해야한다는 데 동의하는 것 같습니다. 나는 그들의 요점을 볼 수 있지만 "TDD의 3 가지 법칙"을 따르고 "적색-녹색-리 팩터"주기를 사용할 때 이것에 약간의 문제가 있습니다. 예를 들어 설명하는 것이 가장 좋습니다. 지금은 탭으로 구분 된 데이터가 …

20
최적화 된 코드를 읽을 수있는 코드로 교체해도 괜찮습니까?
때로는 기존 코드를 확장 / 개선 해야하는 상황이 발생할 수 있습니다. 이전 코드는 매우 간결하지만 확장하기가 어렵고 읽는 데 시간이 걸립니다. 현대 코드로 바꾸는 것이 좋은 생각입니까? 얼마 전 저는 린 접근법을 좋아했지만 이제는 더 높은 추상화, 더 나은 인터페이스 및 더 읽기 쉽고 확장 가능한 코드를 선호하여 많은 최적화를 …

11
테스트 목적으로 코드를 엄격하게 수정하는 것은 나쁜 습관입니까?
프로그래머 동료와 토론하여 작업 코드를 수정하여 테스트 할 수 있도록 (예 : 단위 테스트를 통해) 좋은지 나쁜지에 대한 토론이 있습니다. 제 생각에는 좋은 객체 지향 및 소프트웨어 엔지니어링 관행 ( "모든 것을 공개하는 것"등)을 유지하는 한도 내에서 괜찮다는 것입니다. 내 동료의 의견은 테스트 목적으로 만 코드를 수정하는 것이 잘못되었다는 것입니다. …

10
Java에서 클래스 당 몇 줄이 너무 많은가? [닫은]
경험상 Java의 한 클래스에 너무 많은 코드 줄이 너무 많은 경우 유용한 규칙은 무엇입니까? 분명히, 나는 줄의 수가 특정 클래스에 있어야하는 것과 그렇지 않아야하는 것에 사용하기 위해 실제 표준에 가깝지 않다는 것을 알고 있습니다. 수업은 적절한 OOP 철학 (캡슐화 등)을 고려하여 설계해야합니다. 즉, 경험상 규칙은 리팩토링 고려 사항을위한 유용한 시작점을 …

6
메소드 이름에서 철자 오류 수정
우리의 코드베이스에서 일반적으로 사용하는 방법 중 하나는 철자가 잘못되었습니다. 이것은 단순히 철자가 틀리기 때문에 단순히 나를 자극하지는 않지만 더 중요하게는 처음 입력 할 때 항상 이름이 잘못되도록합니다 (그리고 나서 "오, 맞습니다. 원래 방법을 약간 변경하고 있습니다. 난 그냥 괴물 방법의 이름을 바꿀 수 있습니까?

10
완전한 리팩토링 시간이 없을 때 레거시 코드에 대한 테스트를 작성하는 것이 합리적입니까?
나는 보통 레거시 코드 e로 효과적으로 작업하기 책의 조언을 따르려고 노력합니다 . 의존성을 깨고 코드의 일부를 @VisibleForTesting public static메소드와 새로운 클래스로 옮겨서 코드 (또는 적어도 일부)를 테스트 할 수있게 만듭니다. 그리고 새 기능을 수정하거나 추가 할 때 아무 것도 깨지지 않도록 테스트를 작성합니다. 동료는 내가 그렇게해서는 안된다고 말합니다. 그의 추론 …

7
동료가 예고없이 불필요한 개선을 할 때 코드에 대한 책임은 어떻게합니까?
내 팀원 중 하나는 IT 상점의 모든 거래의 잭이며 그의 통찰력을 존중합니다. 그러나 때때로 그는 내 코드를 검토합니다 (그는 팀 리더에게 두 번째 명령이므로 예상치 않습니다). 때때로 그는 최종 목표를 달성하기 전에 내 변경 사항을 검토하고 즉시 변경을 수행합니다. 심지어 내 작업을 한 번 중단했습니다. 다른 경우에는 3 개월 이상 …

2
내가 이해하지 못하는 코드에 대한 테스트 작성
최근에 블랙 박스 리팩토링을 완료했습니다. 테스트 방법을 알아볼 수 없으므로 체크인 할 수 없습니다. 높은 수준에서 초기화에 클래스 B의 값을 가져 오는 클래스가 있습니다. 클래스 B가 "빈"인 경우 합리적인 기본값을 생성합니다. 이 부분을 클래스 B를 동일한 기본값으로 초기화하는 메소드로 추출했습니다. 나는 어느 수업의 목적이나 맥락이나 그것들의 사용법을 아직 해결하지 못했다. …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.