문제

내가 과잉 해달되고 있는지 어떻게 알 수 있습니까?

나는 지난 3 일 동안 문제를 쫓고있다. 나는 많은 디자인을 겪었고 약 3 개의 수업을 사용하여 복잡한 솔루션에 도달했습니다. 동료와 논의한 후, 나는 내가 필요한 모든 것이 하나의 방법과 struct. 어떻게 피할 수 있습니까? 건축 우주 비행사?

도움이 되었습니까?

해결책

30 분 안에 좋은 깨끗한 솔루션을 만들 수 없다면 다른 사람과 논의하는 것이 가장 좋습니다.
그들이 그것을 해결하는 방법을 모르더라도 종종 더 나은 디자인이나 솔루션을 유발합니다.

그러니 누군가와 이야기하십시오.

다른 팁

개인적으로, 나는 실제로 소프트웨어를 먼저 계획하는 사람에 대해 불평 할 수 없습니다! 나는 이것을하지만, 나는 코드에 바로 뛰어 들어가는 방법 만 알고있는 많은 프로그래머들을 알고있다. 그리고 나는 종종 그러한 코드를 수정해야한다 ...

즉, 당신이 실제로 묻는 것은 문제에 대한 더 나은 해결책이있을 때를 아는 방법입니다.

내가 당신에게 가지고있는 조언은 반복적으로 스스로에게 물어 보는 것입니다. 나는 내 해결책의 세부 사항이나 실제 문제에 대해 생각하고 있습니까?

건축 우주 비행사가되는 것을 피하는 가장 좋은 방법은 바로 뛰어 올라가는 습관에 빠지는 것입니다. 바로 뛰어 올라가는 가장 좋은 방법은 구현이 완료되고 정확할 때 통과 할 몇 가지 테스트를 작성하는 것입니다. 그 힘은 처음부터 "완료"가 무엇을 의미하는지 직면합니다. 그리고 다음은 다음과 같은 코드에 대한 세력 검사를 제공합니다.

그런 다음 해결책을 찾으십시오.

이제 처음으로 도착할 수도 있지만, "완료"가 무엇을 의미하는지에 대한 아이디어로 시작하는 운동은 당신이 갈 때 더 나은 질문을하는 데 도움이 될 것이며, 미리 수락 테스트를 수행하는 데 도움이 될 것입니다. 공간을 합리적인 것으로 설계하십시오.

나는이 문제로 고통 받았다. 미래에 많은 성장을 처리 할 수있는 솔루션을 설계합니다. 위의 우려 유형을 초래하여 추상화가 좋았습니다.

그런 다음이 접근법을 버리고 모든 것을 하나의 큰 더러운 클래스 어쩌면 두 개로 쳤습니다. 그 후 나는 다른 사람이 일하기를 원하는 것과 비슷할 때까지 그것을 다시 고려했습니다.

나는 먼저 빠르고 더러운 일을하는 것을 좋아하고, 그것이 작동하면 디자인에 만족할 때까지 코드를 단계별로 리팩토링합니다.

이것은 또한 TDD 접근법입니다.

나는 '이상적인'솔루션을 찾기 위해이 세 단계를 따른다.

  1. 내가 세상에서 항상 시간과 자원을 가졌다면 어떤 식 으로든 최고의 솔루션은 무엇입니까? (기술적으로, 논리적으로, 성능 면적, 선택적으로 몇 가지 관련 문제를 해결하고, 찾은 모듈을 다시 작성하는 것이 더 좋을 수 있습니다 ...) 여기서 (과도한) 분석을 수행하고 가능한 한 멍청한 것을 알 수 있습니다. 테스트, 통계 및 생성을 실행하십시오 개념의 증거'에스.

  2. 현재 상황과 어떻게 다른가. 두 솔루션의 결과의 차이점은 무엇입니까? 동일하거나 유사한 결과를 얻는 더 빠른 방법이 있습니까? 왜 또는 그 변화가 당면한 문제를 해결합니까? 더 많은 테스트, 통계, 개념 증명을 업데이트하십시오.

  3. 필요한 변경 사항을 구현하는 방법을 찾고 필요한 변경 사항은이 변경에 필수적인 내용을 떨어 뜨립니다. 문제가없는 것을 수정하지 않는 것을 확인하십시오. 이것을 테스트하고 코드, 논리, 구조에 대한 변경 사항을 검토하십시오. 가능하다면 최소화하십시오.

이것은 매우 제한적으로 들리지만 (많은 작업), 실제로 나는 나 자신이 데이터베이스에 전체 테이블을 추가하게된다는 것을 알게됩니다. 작업의 일부 (100% 확신을 얻기위한 많은 작업이기 때문에)는 모든 기존 코드 가이 추가 테이블과 정확히 동일하게 작동하는 것을 확인하는 것입니다.

또한, 대부분의 경우 직장에서 대부분의 경우 업데이트 전부터 시스템에 남아있는 '전환 데이터'를 수용해야하므로 업데이트 후에 동일하게 생성되고 배송되어야합니다.

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