문제

방금 배송 된 응용 프로그램이 있습니다. 내가 쓴 이후, 나는 AMFPHP와 Propel에 대해 배웠습니다. 둘 다 응용 프로그램에서 사용되는 '좋은'일지 모르지만이 시점에서 필요하다고 말할 수는 없습니다.

리팩터 코드 전에 어떤 유형의 물건을 고려합니까?

도움이 되었습니까?

해결책

내가해야합니까?

그냥 원인이 되십시오 ~할 수 있다 Refactor 코드가 i를 의미하지는 않습니다 ~해야 한다 코드를 리팩토링하십시오. 많은 경우에, 훨씬 더 중요한 일이 있어야합니다. 결함을 고정하는 것과 같습니다.

이제 우리가 이미 특정 코드 블록에 있고 결함 해상도 또는 코드 유지 보수의 일부로 작업하고 있기 때문에 코드 리팩토링에 대해 이야기하고 있다면 이는 다른 이야기입니다. 그러나 리팩토링을 위해 리팩토링? 지루함에서 태어난 바쁜 일처럼 들립니다. 분명히 빈 결함 목록이 없습니다.

다른 팁

리팩토링 후 코드를 확인하는 단위 테스트가 있습니다.

노력이 필요하고 혜택을 받고 다른 작업에 우선적으로 적합한 곳.

리팩토링 된 코드가 얼마나 유지 가능한지. 후시는 20/20이지만 배송 된 제품을 사용하면 우아하지만 비밀스러운 디자인은 유지하기위한 악몽이 될 수 있습니다. 또한 기능 향상을 위해 리팩토링 된 설계의 유연성이 매우 중요합니다.

기존 기능을 깨뜨릴 가능성은 얼마나됩니까? 단위 테스트는 자동화 된 리팩토링 도구와 마찬가지로 훌륭한 안전망입니다.

코드가 실제로 이해하고 유지하기가 더 쉽습니까? 이것은 대답하기 어려운 질문이 될 수 있으며 대답에 더 나은 경험이 필요합니다.

소스 컨트롤에서 현재 생산 코드베이스에 대한 포크를 만들고 소스 컨트롤의 실험 분기에서 모든 리팩토링을 수행하십시오.

단위 테스트는 매우 좋지만 코드가 단위 테스트로 덮여 있지 않으면 코드를 중단하지 않도록 다른 수단이 있어야합니다. 생산 데이터베이스 사본, 아마도 일부 라이브 제품 입력 사본을 손에 넣을 수 있다면 공정한 기회가 있어야합니다.

개인 프로젝트에서 우리는 실제로 14 일 동안 모든 잉거 데이터를 기록하고 14 일의 시작과 끝에 Prod DB의 스냅 샷을 저장 한 다음 이전 코드와 새 코드를 사용하여 DB의 상태를 비교할 수있었습니다. . 그러나 단위 테스트는 확실히 일부 두려움을 제거 할 것입니다 :-)

나는 코드를 스니핑한다. 내가 냄새가 마음에 들지 않으면 (다시 말해, 그것은 나처럼 냄새가 나지 않습니다), 나는 그것을 좋아할 때까지 온통 소변을 보게됩니다.

소프트웨어 기술에는 애자일 또는 디자인 패턴과 같은 멋진 이름이 필요하기 때문에이 송곳니 리팩토링이라고합니다.

코드를 다시 작성한 후 나는 내 자신의 개 푸드를 먹고 잠시 동안 사용합니다.

Drejc에 +1을 주어야합니다. 리팩터를 리팩터하지 않는 가장 큰 이유는 단위 테스트가없는 경우입니다. 그러나 그것이 심지어 당신이 리팩터를 리팩터링해서는 안된다는 것을 의미하지는 않습니다. 나는 modus operandus가 먼저 코드 기능이라고 말한 다음 항상 디자인에 의BT를 다루기 위해 리팩토링합니다. ad-nauseaum을 반복하십시오.

"충분히 좋은"패턴은 아마도 지구상에서 가장 많이 사용되는 프로그래밍 방법론 일 것입니다. 이것이 바로 우리 소프트웨어가 버그적이고 지저분한 이유 중 하나입니다. 최소한의 에너지 "경로"를 쫓는 대신 항상 최소한의 에너지 "단계"를 선택합니다.

그러나주의하십시오! 적절한 도구가없는 리팩토링 (그리고 이것은 언어와 IDE에 따라 다릅니다)은 나사를 망치는 것과 같습니다. 거기에 도착할 수는 있지만 효과적이지는 않습니다 (그리고 곤경에 처할 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top