«refactoring» 태그된 질문

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

7
유창한 코더가 좋은 관행을 무시한다면, 유창한 사람이 그를 상대하지 않습니까? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 나는 상당히 크고 버그가 많은 응용 프로그램을 작성 중입니다. 작성 방법으로 인해 (세부 사항을 아끼지 만 생각할 …

9
생성자 또는 setter 메소드를 사용 하시겠습니까?
Action클래스 가있는 UI 코드를 작성하고 있습니다. public class MyAction extends Action { public MyAction() { setText("My Action Text"); setToolTip("My Action Tool tip"); setImage("Some Image"); } } 이 Action 클래스를 만들 때 Action클래스를 사용자 정의 할 수없는 것으로 가정했습니다 (어떤 의미에서 텍스트, 툴팁 또는 이미지는 코드의 어느 곳에서도 변경되지 않습니다). 이제 …

10
복사 / 붙여 넣기 패턴을 수정하는 방법?
내가 일하는 곳에서 사람들 (컨설턴트)은 가능한 빨리 기능을 릴리스하라는 압박감을 느낍니다. 따라서 올바른 방식으로 작업을 수행하는 방법에 대해 생각하는 데 너무 많은 시간을 소비하거나 무언가를 중단하고 싶지 않기 때문에 코드가 다른 모듈에서 복사되어 수정됩니다. 코드 기반이 회사 전체에 공개되어 있으므로이를 방지하기가 쉽지 않습니다. 많은 사람들이이 일을합니다. 이제 엉망이 이미 존재하므로, …

5
리팩토링 할 코드에 대한 테스트를 작성해야하는 이유는 무엇입니까?
거대한 레거시 코드 클래스를 리팩토링하고 있습니다. 리팩토링 (나는 추정한다)은 이것을 옹호한다 : 레거시 클래스에 대한 테스트 작성 수업에서 도덕을 리팩터링하다 문제 : 클래스를 리팩터링하면 1 단계의 테스트를 변경해야합니다. 예를 들어, 레거시 메서드에 있던 것이 이제는 별도의 클래스가 될 수 있습니다. 한 가지 방법은 여러 가지 방법 일 수 있습니다. 레거시 …

7
주로 하나의 정규 표현식으로 구성된 큰 함수를 리팩터링해야합니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 방금 약 100 줄에 걸친 함수를 작성했습니다. 그 말을 듣고, 당신은 아마 하나의 책임에 대해 말하고 리팩토링을 촉구하는 …

2
생성자 대신 팩토리 메소드를 사용해야했습니다. 변경할 수 있고 여전히 이전 버전과 호환됩니까?
문제 파일 에서 데이터를 읽는 방법 DataSource을 제공 하는 클래스를 가지고 있다고 가정 해 봅시다 .ReadData.mdb var source = new DataSource("myFile.mdb"); var data = source.ReadData(); 몇 년 후, 나는 .xml파일 외에도 .mdb데이터 소스 로 파일 을 지원할 수 있기를 원합니다 . "데이터 읽기"구현은 파일 .xml과 .mdb파일 마다 상당히 다릅니다 . …

6
"코드 개선"의 우선 순위와 심각도를 결정하는 방법은 무엇입니까?
버그 추적 시스템에는 "우선 순위"및 "심각도"필드가 있습니다. 우리는 심각도를 "사용자에게 미치는 영향"으로 정의하고 우선 순위를 "제품에 미치는 영향"으로 정의합니다. 내 질문은 "코드 개선"작업을 심각도와 우선 순위로 분류하는 방법에 관한 것입니다. 개선 사항이 동작을 변경하지 않고 "더 나은 코드"로 만든다고 가정합니다. 전체적으로 장기적인 유지 보수 개선이 예상되지만 수량화하기는 어렵습니다. 우선 순위와 …

10
큰 변화를 제안 / 인턴으로 다시 쓰기 [닫기]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 질문을 업데이트Software Engineering Stack Exchange에 대한 주제가 되도록 . 휴일 3 년 전 . 문맥: 내부 프로젝트입니다 (많은 사람들이 사용하지 않는다고 생각합니다) 오래 되었군요 우리는 그것을 업데이트하고 있습니다 문제 : 그것은 mvc 프레임 워크를 남용합니다 (모델의 …

11
다른 작업을하는 동안 기존 결함을 수정해야합니까?
수수께끼 : 새로운 기능을 사용하거나 결함을 수정하는 과정에서 코드에 레거시 문제가 있습니다. 어떻게해야합니까? 이를 수정하고 코드의 동작을 변경시킬 위험이 있습니다. 지금까지 약간의 문제가 발생했거나 결함이 발견되지 않았거나 다른 사람이보고 할만한 가치가 없었습니다. 혼자 남겨두고 문제로 인해 나중에 코드를 다루기가 더 어려워 지도록해야합니까? 문제를 해결하면 원래 작업 시간 만 추가되고 회귀 …

3
하나의 구현을 구성하는 수많은 사람들. DI 희망이 없습니까? 서비스 로케이터를 사용 하시겠습니까?
주사를 받아들이지 않고 직접 의존성을 구성하는 1001 명의 고객이 있다고 가정 해보십시오. 보스에 따르면 1001을 리팩토링하는 것은 옵션이 아닙니다. 실제로는 소스 파일뿐만 아니라 클래스 파일에도 액세스 할 수 없습니다. 우리가해야 할 일은이 1001 클라이언트가 통과하는 시스템을 "현대화"하는 것입니다. 우리가 좋아하는 모든 것을 리팩터링 할 수 있습니다. 종속성은 해당 시스템의 일부입니다. …

7
상용구에 대한 방어?
나에게, 상용구 코드는 분명히 나쁘다. 그러나 나는 상용구를 줄이기 위해 저항을 표시하는 개발자를 만났습니다. 나는 시간이 지남에 따라 내가 개발 한 혐오에 대한 논쟁을 생각하면서 쉽게 형성되지 않았다는 것을 깨달았다. 덜 상용구를 선호한다는 설득력있는 주장을 할 수 있도록 몇 가지 반론은 무엇입니까? 다시 말해서, 상용구에 찬성하는 주장은 무엇입니까? (저는 일반적으로 …

10
알려진 버그가 해결 될 때 다른 곳에 새로운 버그가 나타나는 원인은 무엇입니까?
토론 중 동료 중 한 명이 버그를 해결하려고 시도하는 동안 현재 프로젝트에 어려움이 있다고 말했습니다. "내가 하나의 버그를 해결하면 다른 곳에서는 작동하지 않는다"고 말했다. 나는 이것이 어떻게 일어날 수 있는지에 대해 생각하기 시작했지만 그것을 이해할 수는 없습니다. 너무 피곤하거나 졸려서 작업을 올바르게 하고 작업중 인 코드 부분을 전체적으로 볼 수 …

3
동적 언어로 작성된 코드를 어떻게 탐색하고 리팩터링합니까?
저는 Python, Ruby 또는 Javascript를 작성하는 데 보일러 플레이트가 거의 필요하지 않습니다. 나는 간단한 기능적 구성을 좋아합니다. 나는 깨끗하고 간단한 구문을 좋아합니다. 그러나 동적 언어로 큰 소프트웨어를 개발할 때 내가 정말 나쁜 세 가지가 있습니다. 코드 탐색 내가 사용하는 객체의 인터페이스 식별 효율적으로 리팩토링 IDE (Eclipse + PyDev)뿐만 아니라 간단한 …

4
명백한 추상화가없는 코드 복제
코드 라인을 살펴볼 때 논리에서의 역할을 충실하게 설명하는 주제별 추상화를 적용 할 수없는 코드 복제 사례를 본 적이 있습니까? 그리고 그것을 해결하기 위해 무엇을 했습니까? 코드 복제이므로 이상적으로 자체 기능을 만드는 것과 같이 굴절을 수행해야합니다. 그러나 코드에는 코드를 설명하기에 좋은 추상화가 없기 때문에 결과는 우리가 알 수없는 이상한 기능이 될 …

3
다이나믹 스코프를 가진 언어로 어떻게 리팩토링합니까?
다이나믹 스코프를 가진 언어로 일하지 않는 행운을 가진 사람들을 위해, 그것이 어떻게 작동하는지 조금 알려 드리겠습니다. "RUBELLA"라는 의사 언어가 다음과 같이 작동한다고 가정 해보십시오. function foo() { print(x); // not defined locally => uses whatever value `x` has in the calling context y = "tetanus"; } function bar() { x …

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