«patterns-and-practices» 태그된 질문

소프트웨어 엔지니어링의 디자인 패턴 (일반적으로 발생하는 문제에 대한 반복 가능한 솔루션) 및 모범 사례

1
도메인 이벤트를 사용하거나 응용 프로그램 계층이 모든 것을 조정하도록하는 방법
첫 번째 단계를 도메인 기반 디자인으로 설정하고 청서를 구입했으며 특정 솔루션을 구현하는 세 가지 방법을보고 있습니다. 기록을 위해 : 나는 CQRS 또는 이벤트 소싱을 사용하지 않습니다. 사용자 요청이 응용 프로그램 서비스 계층으로 들어 온다고 가정 해 봅시다. 해당 요청의 비즈니스 로직은 (어떤 이유로 든) 엔티티의 메소드와 도메인 서비스의 메소드로 구분됩니다. …

7
데이터베이스에서 비트 마스크를 사용할 때의 장단점
얼마 전 나는 동료와 이야기를 나누었으며 데이터베이스에 저장된 모든 값을 이해하기가 어렵 기 때문에 비트 마스크를 사용하는 것에 대해 확실히 반대했습니다. 내 의견으로는 항상 현재 사용자의 역할을 결정하는 데 사용하는 것이 나쁜 생각은 아닙니다. 그렇지 않으면 별도의 테이블에 저장해야 하나의 JOIN이 추가로 발생합니다. 내가 틀렸다면 알려주시겠습니까? 비트 마스크 사용의 다른 …

4
메소드 체인을 사용하여 오브젝트를 빌드하는 관용구의 이름은 무엇입니까?
필자는 메소드 체인 을 사용하여 Builder또는 Prototype패턴 과 유사한 객체를 설정 하지만 각 메소드 호출마다 새 객체를 만들지 않고 대신 원래 객체를 수정하는 패턴을 사용합니다. 예: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); 이 패턴의 이름이 있는지, 안티 패턴으로 간주되는지 궁금합니다. 더 유창하게 읽을 수 있지만 긴 메소드 체인으로 이어질 수 있기 때문입니다.

4
큰 데이터베이스에서 잘못된 데이터 업데이트를 피하기 위해 따라야하는 방법은 무엇입니까?
프로덕션 배포 전의 일반적인 조언은 먼저 DB를 백업하는 것입니다. 이런 식으로 새 업데이트에 잠재적 인 데이터 손실 또는 논리적 데이터 손상을 초래할 수있는 문제가있는 경우 여전히 이전 레코드를 비교하고 수정하기위한 백업이 있습니다. 그러나 이것은 DB 크기가 몇 GB가 될 때까지 잘 작동 할 수 있습니다. DB 크기가 크면 백업을 완료하는 …

2
새로운 System.Tuple 클래스를 사용하는 것이 좋지 않은 디자인입니까?
새 클래스를 인스턴스화하지 않고 단일 함수 호출로 여러 매개 변수를 반환 할 수 있다는 점에서 System.Tuple의 개념이 마음에 들지만 Microsoft Patterns & Practices, SOLID Principles 등과 같은 좋은 프로그래밍 방법을 무시합니다. 이 기능을 얼마나 자유롭게 사용해야하는지 또는 필요할 때 엣지 시나리오에서만 사용해야하는지 측정하려고합니다.

9
유지 관리 문제가있는 프로젝트에서 새로운 팀 리더로해야 할 일은 무엇입니까?
유지 관리 문제가있는 코드 프로젝트를 방금 맡았습니다. 프로젝트를 안정적으로 시작하려면 어떻게해야합니까? 단위 테스트, IOC, MEF, 너무 많은 정적 클래스, 순수한 데이터 세트 등과 같은 중요한 것들이 많이없는 매우 큰 멀티 티어 .NET 시스템으로 작업하고있는 곳에서 나 자신을 찾습니다. 24 살이지만 거의 3 년 동안 이곳에있었습니다 (이 앱은 5 년 동안 …

6
시도 / 캐치 / 로그 / 다시 던지기-안티 패턴입니까?
중앙 위치 또는 프로세스 경계에서 예외 처리의 중요성이 try / catch 주위의 모든 코드 블록을 흩 뜨리지 않고 모범 사례로 강조된 여러 게시물을 볼 수 있습니다. 나는 대부분의 사람들이 그것의 중요성을 이해한다고 생각하지만 사람들은 여전히 ​​예외 상황에서 문제 해결을 쉽게하기 위해 더 많은 컨텍스트 특정 정보를 기록하기를 원하기 때문에 catch-log-rethrow …

4
사용자 정의 필드를 허용하는 것은 나쁜 습관입니까?
일반적으로, 웹 응용 프로그램의 데이터베이스에서 사용자가 만든 필드를 허용하는 것은 나쁜 습관으로 간주됩니까? 예를 들어, 아내를 위해 홈 인벤토리 웹앱을 만들고 있는데, 그녀는 다른 항목에 대해 자신의 필드를 정의하려고합니다. 나는 그녀가 아이템 카테고리를 만들고 그 카테고리에 "기능"을 추가 할 수 있도록 계획하고있었습니다. 기능은 문자열로 저장된 키 / 값입니다. 예를 들어 …


5
게터와 세터 결합
jQuery와 같은 JavaScript 라이브러리는 프로그래밍 인터페이스에서 'getter'와 'setter'를 결합합니다. $('element').css({'color','blue'}); 색상을 설정하거나 $('element').css(); 요소의 CSS를 얻습니다. 이러한 패턴의 이름이 있습니까? 응용 프로그램에서 사용하는 것이 좋습니다?

4
ctor 또는 메소드별로 의존성을 주입해야합니까?
치다: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } 에 맞서: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn …

6
전략 패턴의 장점
if / thecase에서 코드를 작성할 수 있다면 전략 패턴을 사용하는 것이 왜 유리합니까? 예를 들어 : TaxPayer 클래스가 있고 해당 메소드 중 하나가 다른 알고리즘을 사용하여 세금을 계산합니다. 그렇다면 전략 패턴을 사용하는 대신 if / thecase를 사용하여 해당 방법에 어떤 알고리즘을 사용해야하는지 파악할 수없는 이유는 무엇입니까? 또한 TaxPayer 클래스의 각 …


6
게터와 세터를 정의하는 순서는 무엇입니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 칠년 전에 …

5
내 생각을 C ++에서 C #으로 마이그레이션하는 방법
저는 숙련 된 C ++ 개발자이며, 언어를 자세하게 알고 있으며 특정 기능 중 일부를 집중적으로 사용했습니다. 또한 OOD의 원칙과 디자인 패턴을 알고 있습니다. 나는 지금 C #을 배우고 있지만 C ++ 사고 방식을 제거 할 수 없다는 느낌을 멈출 수는 없습니다. 나는 C ++의 강점에 너무 열심히 묶어 일부 기능 …

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