«single-responsibility» 태그된 질문

단일 책임 원칙 (Single Responsibility Principle)은 시스템의 각 모듈이 단일 특징 또는 기능, 또는 응집 기능의 집합을 책임 져야한다고 명시하고 있습니다. 그것을 넣는 또 다른 일반적인 방법은 각 모듈을 변경해야 할 이유가 하나만 있어야한다는 것입니다.

6
구현 옆에 로깅이 SRP 위반입니까?
민첩한 소프트웨어 개발과 모든 원칙 (SRP, OCP 등)을 생각할 때 로깅 처리 방법을 스스로에게 묻습니다. 구현 옆에 로깅이 SRP 위반입니까? yes로깅없이 구현을 실행할 수도 있기 때문에 말할 것 입니다. 어떻게 로깅을 더 나은 방법으로 구현할 수 있습니까? 몇 가지 패턴을 확인하고 사용자 정의 방식으로 원칙을 위반하지 않는 가장 좋은 방법은 …

6
다중 상속이 단일 책임 원칙을 위반합니까?
두 개의 별개의 클래스에서 상속받은 클래스가 있다고해서 하위 클래스가 각 슈퍼 클래스에서 하나씩 적어도 2 가지를 자동으로 수행한다는 의미는 아닙니까? 인터페이스 상속이 여러 개인 경우 차이가 없다고 생각합니다. 편집 : 분명히, 여러 클래스를 서브 클래스 화하는 것이 SRP를 위반하면 여러 (마커 또는 기본 인터페이스 (예 : Comparable)) 인터페이스를 구현하면 SRP도 …

4
단일 책임 원칙이 기능에 적용 가능합니까?
Robert C. Martin에 따르면 SRP는 다음과 같이 말합니다. 수업 이 바뀌어야 하는 이유는 하나 이상이어야 합니다. 그러나 그의 책 Clean Code , 3 장 : Functions에서 다음 코드 블록을 보여줍니다. public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); case SALARIED: …

5
SRP (Single Responsibility Principle)가 목표입니까?
"사용자에게 매력적인"디자인을 디자인하려는 두 명의 UI 디자이너를 고려하십시오. "사용자 매력"은 객관적이지 않으며 디자이너의 마음에만있는 개념입니다. 따라서 디자이너 A는 예를 들어 빨간색을 선택할 수 있지만 디자이너 B는 파란색을 선택할 수 있습니다. 디자이너 A는 디자이너 B와 완전히 다른 레이아웃을 만듭니다. 나는 SRP (Single Responsibility Principle)에 대해 읽었으며 내가 이해 한 것은 일종의 …

5
MVC : 컨트롤러가 단일 책임 원칙을 위반합니까?
단일 책임 원칙에 따르면 "클래스에는 변화가 한 가지 이유가 있어야합니다". MVC 패턴에서 컨트롤러의 작업은 뷰와 모델 사이를 중재하는 것입니다. 그것은 (예를 들어 통화에보기를 허용 GUI에서 사용자가 만든 보고서 작업을보기위한 인터페이스를 제공합니다 controller.specificButtonPressed()(예를 들어)를, 그리고 그것의 데이터를 조작하기 위해 또는 그것의 작업을 호출하는 모델의 해당 메소드를 호출 할 수 있습니다 model.doSomething()) …

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

4
수업에 대한 단일 책임 패턴은 얼마나 구체적이어야합니까?
예를 들어, 콘솔 게임 프로그램에 콘솔에 대한 모든 종류의 입력 / 출력 방법이 있다고 가정하십시오. 하나에 모두 유지하는 스마트겠습니까 inputOutput클래스 또는 같은보다 구체적인 클래스로 분해 startMenuIO, inGameIO, playerIO, gameBoardIO, 각 클래스 1-5 방법에 대해이 등 있도록? 같은 메모에서 그것들을 분류하는 것이 낫다면 IO네임 스페이스 에 배치하는 것이 현명 할 것입니다 …

5
도메인 엔터티가 단일 책임 원칙을 위반합니까?
실체의 단일 책임 (변경 이유)은 자신을 고유하게 식별해야하며, 다시 말해서 책임을 찾을 수 있어야한다. 에릭 에반의 DDD 서적, 페이지. 93 : 엔티티의 가장 기본적인 책임은 행동을 명확하고 예측할 수 있도록 연속성을 설정하는 것입니다. 그들은 여분을 유지하면 최선을 다합니다. 속성이나 동작에 중점을 두지 않고 Entity 오브젝트의 정의를 가장 본질적인 특성, 특히이를 …

4
단일 책임을 가진 큰 클래스
2500 라인 Character클래스가 있습니다. 게임에서 캐릭터의 내부 상태를 추적합니다. 해당 상태를로드하고 유지합니다. ~ 30 개의 들어오는 명령을 처리합니다 (보통 =는 명령을 전달 Game하지만 일부 읽기 전용 명령은 즉시 응답합니다). Game취한 조치 및 타인의 관련 조치와 관련하여 ~ 80 개의 전화를받습니다 . Character캐릭터의 상태를 관리하고 들어오는 명령과 게임을 중재하는 것은 하나의 …


3
호출이 비쌀 때 파이썬에서 단일 책임 원칙 (SRP)을 통해 작업
몇 가지 기본 사항 : 파이썬 메소드 호출은 해석되는 본질 때문에 "비싸다" . 이론적으로 코드가 충분히 단순하다면 파이썬 코드를 분해하면 가독성과 재사용 외에도 부정적인 영향을 미칩니다 ( 이는 개발자에게는 큰 이익이 될 수 있습니다 ). 단일 책임 원칙 (SRP)은 코드를 읽기 쉽게 유지하고 테스트 및 유지 관리가 더 쉽습니다. 이 …

5
품질을 향상시키기 위해 코드를 미니 리팩터링하는 것이 유용한가요? 아니면 큰 이점없이 "이동하는 코드"입니까?
예 한 곳에서 "모든 것"을 수행하는 모 놀리 식 코드를 발견했습니다. 데이터베이스에서 데이터를로드하고 HTML 마크 업을 표시하며 라우터 / 컨트롤러 / 액션으로 작동합니다. SRP 이동 데이터베이스 코드를 자체 파일에 적용하기 시작하여 더 나은 이름 지정 기능을 제공했지만 모두 좋아 보였지만 왜 내가 이것을하는지에 대한 의문이 생겼습니다. 왜 리팩터링해야합니까? 목적은 무엇입니까? …

5
캐싱을 관리하기 위해 클래스에서 SRP를 위반하지 않는 방법은 무엇입니까?
참고 : 코드 샘플은 C #으로 작성되었지만 중요하지 않습니다. 더 적합한 태그를 찾을 수 없기 때문에 C #을 태그로 넣었습니다. 이것은 코드 구조에 관한 것입니다. Clean Code를 읽고 더 나은 프로그래머가 되려고 노력하고 있습니다. 나는 종종 특히 기능에서 단일 책임 원칙 (클래스와 함수가 한 가지만 수행해야 함)을 따르는 데 어려움을 …

3
IValidatableObject 대 단일 책임
뷰 모델이 IValidatableObject를 구현하고 사용자 지정 유효성 검사를 추가 할 수있는 MVC의 확장 성 지점이 마음에 듭니다. 이 코드가 유일한 유효성 검사 논리가되도록 컨트롤러를 간결하게 유지하려고합니다. if (!ModelState.IsValid) return View(loginViewModel); 예를 들어, 로그인 뷰 모델은 IValidatableObject를 구현하고 생성자 삽입을 통해 ILoginValidator 객체를 가져옵니다. public interface ILoginValidator { bool UserExists(string email); …

5
코드 반복과 다중 책임 방법
SRP (Single Responsibility Principle)를 따르고 코드 반복을 생략하려고합니다. 그러나 종종 코드 반복이 적어도 의미있는 명명 된 메소드로 추출하기 어려운 호출 코드 블록에 불과한 곳이 종종 있습니다. DoAction1(); DoAction2(); if (value) DoAction3(); DoAction4(); 그러한 코드를 메소드로 추출하는 가장 좋은 방법은 무엇이며 어떻게 이름을 지정합니까?

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