«coupling» 태그된 질문

9
하나의 메소드 서명을 변경했으며 이제 25,000 개 이상의 오류가 있습니다. 지금 무엇?
나는 최근에 매우 큰 응용 프로그램 (15M 위치)에서 작업하는 새 직장을 시작했습니다. 이전 작업에서 우리는 비슷하게 큰 응용 프로그램을 사용했지만 OSGi를 사용했습니다. 이는 응용 프로그램이 독립적으로 변경, 컴파일 및 배포 될 수있는 많은 마이크로 서비스로 분류되었음을 의미합니다. 새 응용 프로그램은 몇 개의 .dll이있는 하나의 큰 코드 기반 일뿐입니다. 그래서이 클래스의 …

11
계단식 리팩토링을 피하려면 어떻게해야합니까?
프로젝트가 있습니다. 이 프로젝트에서는 기능을 추가하기 위해 기능을 리팩터링하고 기능을 추가하기 위해 프로젝트를 리팩터링했습니다. 문제는 내가 끝났을 때 그것을 수용하기 위해 약간의 인터페이스 변경이 필요하다는 것이 밝혀졌습니다. 그래서 변경했습니다. 그런 다음 소비하는 클래스는 새로운 인터페이스 측면에서 현재 인터페이스로 구현할 수 없으므로 새로운 인터페이스도 필요합니다. 이제 3 개월 후 거의 무관 …

6
“함수와 데이터 간의 긴밀한 결합”이 나쁜 이유는 무엇입니까?
나는이 인용문을 " The Clojure의 기쁨 "에서 찾을 수있다 . 32, 그러나 누군가 지난 주 저녁에 나에게 똑같은 것을 말했고 나는 다른 곳에서도 들었습니다. [A] 객체 지향 프로그래밍의 단점은 함수와 데이터 사이의 긴밀한 연결입니다. 응용 프로그램에서 불필요한 결합이 나쁜 이유를 이해합니다. 또한 객체 지향 프로그래밍에서도 가변 상태와 상속을 피해야한다는 것이 …

5
상수를 어디에 두어야하고 왜합니까?
대부분의 대규모 응용 프로그램에서는 일반적으로 "상수"위치가 몇 군데 있습니다. GUI 및 내부 상수에 대한 하나의 클래스 (탭 페이지 제목, 그룹 상자 제목, 계산 요소, 열거) 데이터베이스 테이블 및 열에 대한 하나의 클래스 (이 부분은 코드가 생성됨)와 읽을 수있는 이름 (수동으로 할당 됨) 응용 프로그램 메시지 (로깅, 메시지 상자 등)를위한 하나의 …

3
의존성 주입은 어떻게 커플 링을 증가 시키는가?
의존성 주입 에 대한 Wikipedia 페이지 의 단점 섹션에서이를 알려줍니다. 종속성 주입은 서브 시스템 사용자가 해당 서브 시스템의 요구를 제공하도록 요구함으로써 커플 링을 증가시킵니다. 의존성 주입 에 대한 기사 링크 . 의존성 주입은 클래스가 구체적인 구현 대신 인터페이스를 사용하도록합니다. 그 결과 커플 링 이 줄어 듭니다 . 내가 무엇을 놓치고 …

3
Pyqt / Qt 앱의 UI와 UI를 올바르게 분리하는 방법은 무엇입니까?
나는 과거 에이 주제에 대해 꽤 많이 읽었으며 밥 삼촌의 이와 같은 흥미로운 이야기를 보았습니다 . 그럼에도 불구하고 항상 데스크톱 응용 프로그램을 올바르게 설계하고 UI 쪽 의 책임 과 논리 쪽 의 책임을 구분하기가 매우 어렵습니다 . 모범 사례에 대한 매우 간단한 요약은 다음과 같습니다. 어떤 종류의 백엔드 / UI …
20 design  python  mvc  gui  coupling 

5
유형이 빌더와 결합 된 이유는 무엇입니까?
최근 에 Code Review 에서 내 자바 답변을 삭제했습니다 . private Person(PersonBuilder builder) { 중지. 빨간 깃발. PersonBuilder는 Person을 빌드합니다. 그것은 사람에 대해 알고 있습니다. Person 클래스는 PersonBuilder에 대해 아무 것도 알 수 없습니다. 불변 유형입니다. 여기에 원형 커플 링을 만들었습니다. 여기서 A는 A에 의존하고 B는 A에 의존합니다. 사람은 그 …

4
이벤트 중심 프로그래밍 : 언제 가치가 있습니까?
이 질문의 제목이 이벤트 기반 프로그래밍 을 언제 사용해야합니까?와 거의 동일하다는 것을 알고 있습니다. 그러나 위의 질문에 대한 답변은 내가 직면 한 특정 사례에서 이벤트를 사용 해야하는지 여부를 결정하는 데 도움이되지 않았습니다. 작은 응용 프로그램을 개발 중입니다. 그것은 간단한 응용 프로그램이며, 대부분의 기능은 기본 CRUD입니다. 특정 이벤트 (특정 데이터를 수정할 …

3
디커플링 트럼프가 REST에서 DRY를 제거합니까?
기존 Java API의 기능을 대부분 공개하기 위해 REST API를 작성 중입니다. 두 API 모두 조직 내에서 사용하기위한 것입니다. 외부 용으로 디자인 할 필요는 없습니다. 두 API 모두에 영향을 주지만 REST API를 구현하고 있습니다. Java API는 로컬 응용 프로그램에 계속 사용되지만 ( "종료되지는 않음") REST API는 중요한 새로운 개발에 사용됩니다. Java …
19 java  api  rest  coupling  dry 

8
클래스 메서드보다 문자열이 느슨해지지 않습니까?
Swing을 사용하여 Java로 학교 그룹 프로젝트를 시작하고 있습니다. 데이터베이스 데스크톱 앱의 간단한 GUI입니다. 교수는 작년 프로젝트에서 코드를 제공하여 그가 어떻게 작동하는지 확인할 수있었습니다. 저의 첫 인상은 코드가 생각보다 훨씬 복잡하다는 것입니다. 그러나 프로그래머는 단지 그들이 작성하지 않은 코드를 볼 때 이것을 생각한다고 생각합니다. 그의 시스템이 좋은지 나쁜지를 찾는 이유가 있습니다. …
18 java  coupling 

6
객체 지향 디자인의 느슨한 결합
나는 GRASP를 배우려고 노력 중이며 로우 커플 링에 대한 설명 (이 페이지 3 )을 발견했으며 이것을 발견 했을 때 매우 놀랐습니다. 클래스 의 메소드 addTrack를 고려하십시오. Album가능한 두 가지 메소드는 다음과 같습니다. addTrack( Track t ) 과 addTrack( int no, String title, double duration ) 커플 링을 줄이는 방법은 무엇입니까? …

3
구현 세부 사항에 연결하지 않고 단위 테스트 동작
이안 쿠퍼는 TDD에서 단위 테스트에 대한 켄트 벡의 원래 의도를 강의 (특별히 클래스의 방법이 아닌 행동을 테스트하기 위해)로 강요 한 TDD의 대화 에서 테스트를 구현에 결합하지 않도록 주장한다. save X to some data source일반적인 서비스 및 리포지토리가있는 시스템과 같은 동작의 경우 테스트를 구현 세부 정보에 연결하지 않고 리포지토리를 통해 서비스 …

5
커플 링을 늘리지 않고 DRY를 적용 할 수 있습니까?
함수 F를 구현하는 소프트웨어 모듈 A가 있다고 가정합니다. 다른 모듈 B는 F '와 동일한 기능을 구현합니다. 중복 코드를 제거하는 방법에는 여러 가지가 있습니다. A가 B의 F '를 사용하게하십시오. B가 A의 F를 사용하게하십시오. F를 자체 모듈 C에 넣고 A와 B가 모두 사용하도록하십시오. 이러한 모든 옵션은 모듈간에 추가 종속성을 생성합니다. 커플 링을 …

3
DRY 및 OOD에 의한 코드 커플 링 소개
DRY와 코드 커플 링에 대한 지침을 찾고 있습니다. 코드를 복제하는 것을 좋아하지 않으며 관련없는 모듈 간의 코드 커플 링도 좋아하지 않습니다. 따라서 복제가 도입 된 후 1 년 동안 동일한 중복 코드를 찾으면 중복 코드를 리팩터링합니다. 그러나 실제 환경이 훨씬 더 예측하기 어려운 상황이 점점 더 많이 발생하고 있으며 코드를 …
14 design  dry  coupling 

5
의존성 주입을 사용하고 시간적 결합을 피하는 방법?
Service생성자를 통해 종속성을 수신하지만 사용하기 전에 사용자 정의 데이터 (컨텍스트)로 초기화해야 한다고 가정 합니다. public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private readonly object dependency3; public Service( object dependency1, object dependency2, …

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