문제

그들은 서로 모순?

분리가 뭔가 큰을 달성했다.그러나 대부분의 응용 프로그램 우리가 정말 필요 없다,그래서 나는 디자인할 수 있는 고도로 결합된 응용 프로그램과 그것은 거의 아무것도 변경하지 않습니다 다른 보다는 명백한 부작용과 같은"당신은 수 있지 별도의 요소를 사용","유닛 테스트는 골칫거리"등입니다.

당신은 무엇을 생각하십니까?당신은 항상 시도를 분리하고 거래과 오버헤드?

도움이 되었습니까?

해결책

그것은 나를 디커플링 및 YAGNI 는 매우 많은 보물들을 한 자리에 모이게 한다.(게 털의 대답이다,그것은 보인다처럼 우리는 동일한 페이지를 여기에.) 이 질문은 얼마나 많은 분리를 어떻게 해야 하는 YAGNI 좋은 원칙을 결정하는 데 도움이 대답합니다.(사람들을 위해 말하는 단위의 테스트--필요하신 경우에는 분리하는 단위 테스트,다음 YAGNI 분명히 적용되지 않습니다.)

내가 정말 진심으로 말하는 사람들은 그들이"항상"분리.어쩌면 그들은 항상 그렇게 때마다 그들은 생각합니다.그러나 나는 본 적이 없는 프로그램 추가적인 추상화 계층이 추가할 수 없이 어딘가에,그리고 진심으로가 아닌 사소한의 예는 같은 프로그램이있다.모든 사람 선을 그립니다

내 경험에서 나는 deoupled 코드고 그 결코 이용의 추가적인 유연성에 대한 자주 나는 코드를 왼쪽으로 결합하고 그런 다음 다시 가야했고 나중에 변경.나는 확실하지 않다는 것을 의미하는 경우 나는 균형 잡힌 또는 동등하게 깨인들에게 강한 인상을 주었습니다.

다른 팁

YAGNI 은 엄지손가락의 규칙(종교가 아닙).디커플링은 더 많거나 적은 기술에 의하여(또한 종교가 아닙).그래서 그들은 정말 관련 않으며,그들이 서로 상반되는 내용입니다.

YAGNI 에 대해 실용.다고 가정하지 않는 무언가가 필요할 때까지는 않습니다.

일반적으로 가정 YAGNI 에서 결과 분리.을 적용하지 않는 경우는 칼에서,당신은 결국 당신은 필요가 있는 클래스에 대한 모든 것을 알고 각각의 다른 동작을 하기 전에 당신이 입증됩니다.

"분리"(또는"느슨하게 몇")는 동사,그래서 작업이 필요합니다.YAGNI 가정을 위해,당신을 조정할 때는 더 이상 사실이다.

나는(거의)항상 분리.시간이 나는 그것을 발견 유용,(거의)모든 시간이 나지 않았다 나는 그것을 해야 했다.나 또한 그것을 발견하는 좋은 방법을 줄일 수 있습니다.

나는 그들은하지 않습니다.분리가 감소에 대한 불필요한 의존성 내 코드와 강화에 액세스를 통해 깨끗하고 잘 정의된 인터페이스가 있습니다."당신이진 못할 거야"그것은 필요한 유용한 원리는 일반적으로 조언에 대하여 확장하고 너무 광범위한 건축의 솔루션은 없습니다 분명하고 현재를 사용한 경우.

실질적인 결과 이들의가 있는 시스템이 어디 그것은 훨씬 쉽게 리팩터링 및 유지해 개별 구성 요소 없는 실수를 일으키는 파급 효과에 걸쳐 전체 응용 프로그램이 없는 불필요하게 복잡한 측면은 디자인-그것은 간단이를 충족시키기 위해 필요한 현재의 요구 사항입니다.

디커플링의 이익을 위해 분리 나쁜 될 수 있습니다.건물이 가능한 구성 요소를 매우 중요 하지만입니다.

어려운 부분의 이야기를 알 때 얼마나 많은 분리를 필요합니다.

는 경우에"단위 테스트는 골칫거리"그리하면 내가 말할 것 당신 필요합니다.대부분의 시간이 분리 달성될 수 있으로 거의 제로 비용 뿐만 아니라,그런데 왜할까요?

또한,하나의 가장 큰 잠에서 작업할 때 새 코드 베이스가 분리하기 위해 코드를 시작하기 전에 쓰기위한 경우 테스트를 소개하는 인터페이스 어딘가 사용하거나의 종속성을 주입할 수 없습 저장 시간을 많

으로 태그를 말한다,그것은 매우 주관적이다.그것이 달려있는 전적으로 귀하의 자신의 엔지니어링 지혜를 무엇을 결정"지 않는 거야".필요할 수 있는 연결을 한 경우에,하지만 당신은지 않습니다.사람을 말합니까? 당신, 은 물론이다.

결정을 위해서 주관적인,다이 있을 수 없는 지침을 처방하는.

론,YAGNI 보다는 조금 더 많은 것이 가짜는 단순한 문구를 사람들이 주위에 던져.디커플링,그러나,매우 잘 이해하고 개념입니다.YAGNI 음을 의미하는 것으로 보인다는 일종의 심령.그것은 단지 프로그램으로 진부는 결코 좋은 생각입니다.솔직히 말해서,는 경우가 있을 만들 수 있는 YAGNI 은 아마도 관련되지 않을 분리하다.커플링은 일반적으로"빨리"와"누가 알고 있는 경우에 당신은 당신을 필요로 분리된 솔루션;지 않을 거 X 변경 구성 요소입니다!!"

YAGNI 혼잡:)...정말 우리가 필요하지 않는 모든 코드를 혼합하는 가서"빠른".

단위 테스트는 정말 도움을 느끼면 그것은 결합(주어진 하나의 잘 이해하는 것이 무엇입 유닛 테스트 대다른 유형의 테스트).당신이 대신으로 그렇게"당신이 할 수 없는 별도의 구성 요소는"사고,당신은 쉽게 얻을 수 있습니다 추가 물건을지 못하겠다:)

내가 말할 것 YAGNI 에 시작할 때 왜곡하고 변화하는 논리 주위의 모든 넘어서는 실제 사용 시나리오에는 현재 구현이다.말할 수 있는 코드를 사용하는 커플이 외부 지불하는 공급자는 모두 작업으로 리디렉션하는 외부 사이트입니다.그것은 확인 하도록 설계되었습니다 모든 것을 깨끗하지만,저는 그렇게 생각하지 않을 시작 확인을 생각하고 공급자는지 우리는 알지 못한 경우이 지원되는 많은 다른 방법으로 처리하는 통합과 관련된 워크플로우.

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