«design» 태그된 질문

소프트웨어 설계를 통한 솔루션의 문제 해결 및 계획에 대한 질문.

3
순환 의존성을 해결하는 방법?
서로 순환 의존하는 세 가지 클래스가 있습니다. TestExecuter는 TestScenario의 요청을 실행하고 ReportGenerator 클래스를 사용하여 보고서 파일을 저장합니다. 그래서: TestExecuter는 ReportGenerator를 사용하여 보고서를 생성합니다. ReportGenerator는 TestScenario 및 TestExecuter에서 설정 한 매개 변수에 따라 다릅니다. TestScenario는 TestExecuter에 따라 다릅니다. 해당 종속성을 제거하는 방법을 알 수 없습니다. public class TestExecuter { ReportGenerator reportGenerator; …

7
기능을 구현할 좋은 아이디어가 없으면 어떻게합니까? [닫은]
나는 내 자신의 응용 프로그램에서 일하고 있고 붙어 있습니다. 기능을 구현해야하지만이 기능을 구현하기위한 좋은 방법을 찾을 수 없습니다. 나는 며칠 동안 그것에 대해 생각하고 있었고 좋은 생각은 없었습니다. 인터넷을 검색해도 영감을 얻지 못했습니다. 계속 진행해야하지만 가장 좋은 것이 무엇인지 알고 싶습니다. 더 많이 생각하고 더 기다린 후 최선의 방법을 계속 …
32 design 

3
가장 놀라운 원리는 무엇입니까?
프로그래밍에서 Least Astonishment의 원리는 무엇입니까? 이 개념은 좋은 API 디자인과 어떤 관련이 있습니까? 이것이 객체 지향 프로그래밍에만 적용 가능한가? 아니면 다른 프로그래밍 기술에도 스며 들어 있는가? 이것은 "방법에서 하나의 일을하고 잘하는 것"의 원칙과 관련이 있습니까?

2
확장 가능한 알림 시스템을 설계하는 방법은 무엇입니까? [닫은]
알림 시스템 관리자를 작성해야합니다. 내 요구 사항은 다음과 같습니다. 완전히 다른 플랫폼에서 알림을 보낼 수 있어야합니다 (예를 들어 SMS 또는 전자 메일을 보낼 수 있어야 함). 때때로 알림은 특정 플랫폼의 모든 수신자에게 동일 할 수 있지만 때로는 플랫폼 당 수신자 (또는 여러 명) 당 알림 일 수 있습니다. 각 알림에는 …

18
개발자가 불필요하거나 유해한 기능에 반대해야합니까?
새로운 기능, 즉 중요하지 않은 / 질문이 아닌 기능을 논의 할 때 개발자의 좋은 태도는 무엇입니까? 언어와 같은 일종의 Java를 개발하고 있다고 상사가 말한다. "우리는 개발자가 객체 메모리를 직접 조작 할 수 있도록 포인터가 필요합니다!" 개발자가 상상할 수없는 복잡성과 보안 취약점을 추가하여 아이디어를 중단해야합니까? 아니면 요청을해야합니까? 이것은 좋은 예는 아니지만 …
32 design 

11
잘 설계된 / 고품질 오픈 소스 소프트웨어 [닫기]
소프트웨어 디자인 관점에서 분석 할 오픈 소스 소프트웨어를 선택해야하는 소프트웨어 디자인 클래스를 사용하고 있습니다. 100,000 줄 이상의 코드와 같은 큰 프로젝트 여야합니다. 저는 훌륭한 소프트웨어 디자인에 대한 통찰력을 갖도록 매우 잘 설계되고 설계된 소프트웨어를 선택하고 싶습니다. 좋은 디자인이란 의미있는 클래스와 아키텍처, (디자인) 패턴의 좋은 사용, 추상화의 좋은 사용, 좋은 구성 …

1
“StringBuilder”는 Builder Design Pattern의 응용 프로그램입니까?
"빌더"패턴은 "텔레 스코핑 생성자"반 패턴을 다루는 것으로 제한됩니까, 아니면 불변 개체의 복잡한 생성에 대한보다 일반적인 문제를 해결한다고 할 수 있습니까? 이 StringBuilder클래스에는 이름에 "builder"라는 단어가 있지만 텔레 스코핑 생성자와는 아무런 관련이 없으며 변경 불가능한 객체의 생성자에 전달하는 데 필요한 모든 데이터를 수집하는 데 도움이됩니다. 나에게 그것은 대답이 매우 "예"인 것처럼 …

10
어떤 물리량도 오버플로나 언더 플로없이 64 비트 정수로 나타낼 수 있다고 가정하는 것이 합리적입니까?
JDK의 원래 이진 검색 알고리즘은 32 비트 정수를 사용했으며 다음과 같은 경우 오버플로 버그가 발생했습니다 (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . (부호있는) 64 비트 정수를 사용하여 동일한 이진 검색 알고리즘을 다시 작성하면 low + high실제로 10 ^ 18 바이트의 메모리를 갖는 것이 불가능하기 때문에 INT64_MAX를 초과하지 않는다고 가정 …

5
하향식 또는 상향식을 설계하는 것이 바람직합니까?
내가 알다시피, 하향식 디자인은 가장 작은 빌딩 블록이 정의 될 때까지 추상적 인 높은 수준의 개념을 더 작은 콘크리트와 이해하기 쉬운 부분으로 구체화하는 것입니다. 반면, 상향식은 저수준 부품을 정의한 다음 전체 시스템이 형성 될 때까지 점차 높은 수준의 블록을 구성합니다. 실제로 두 가지 방법을 결합하는 것이 가장 좋습니다. 높은 수준의 …
31 design  c++  lisp 

15
프로그래머는 건설 업계에서 무엇을 배울 수 있습니까? [닫은]
소프트웨어 설계 및 개발 원칙에 대해 동료들과 이야기 할 때, 유추의 가장 일반적인 소스 중 하나가 건설 산업이라는 것을 알았습니다. 우리는 소프트웨어를 구축 하고 디자인과 구조를 아키텍처 로 간주합니다 . 배우거나 가르치는 가장 좋은 방법 중 하나는 유추를 분석하는 것입니다. 건축에서 다른 유추를 이끌어 낼 수 있습니까? (소프트웨어에서 이미 사용 …

5
속성 중 하나가 필요하지 않은 경우 인터페이스 구현
꽤 직설적 인. 인터페이스를 구현하고 있지만이 클래스에 필요하지 않은 속성 중 하나는 실제로 사용해서는 안됩니다. 내 초기 아이디어는 다음과 같은 것을하는 것이 었습니다. int IFoo.Bar { get { raise new NotImplementedException(); } } 나는 이것 자체에 아무런 문제가 없다고 생각하지만, "옳다"고 느끼지 않습니다. 다른 사람이 전에 비슷한 상황을 경험 한 …

9
개별 속성이 아닌 전체 클래스를 매개 변수로 사용하도록 클래스 디자인
예를 들어, 광범위하게 공유되는 클래스가있는 응용 프로그램이 있다고 가정 해 보겠습니다 User. 이 클래스는 사용자, ID, 이름, 각 모듈에 대한 액세스 수준, 시간대 등에 대한 모든 정보를 제공합니다. 사용자 데이터는 분명히 시스템 전체에서 광범위하게 참조되지만, 어떤 이유로 든이 사용자 개체를이 클래스에 의존하는 클래스로 전달하는 대신 개별 속성 만 전달하도록 시스템이 …
30 java  c#  design  solid 

5
제품 설계 결정의 근거를 효과적으로 기록하는 방법은 무엇입니까?
우리 회사에서는 제품 디자인 문서를 사용하지 않습니다. 총 3 명의 직원이 있으므로 모든 제품 디자인 토론은 직접 또는 슬랙에서 이루어집니다. 또한 최신 메시지 만 볼 수있는 기본 Slack 패키지도 있습니다. 우리 제품은 아직 초기 단계에 있으며 종종 몇 달 전에 결정된 디자인 요소를 다시 방문합니다. 고민하면서 빈번하게 직면하는 문제는 제품 …

10
말의 무리가 주어지면 모든 유니콘의 평균 뿔 길이를 어떻게 찾을 수 있습니까?
위의 질문은 레거시 코드에서 발생하는 일반적인 문제 또는 더 정확하게는이 문제를 해결하기 위해 이전에 시도한 문제의 추상 예입니다. 방법과 같이이 문제를 해결하기위한 적어도 하나의 .NET 프레임 워크 방법을 생각할 수 있습니다 Enumerable.OfType<T>. 그러나 궁극적으로 런타임에 객체 유형을 조사한다는 사실은 나와 맞지 않습니다. 각 말에게 "유니콘인가요?" 다음과 같은 접근 방식도 떠 …

2
파이썬 팩토리 함수 모범 사례
foo.py클래스가 들어있는 파일이 있다고 가정 해보십시오 Foo. class Foo(object): def __init__(self, data): ... 이제 Foo원시 소스 데이터에서 특정 방식으로 객체 를 생성하는 함수를 추가하고 싶습니다 . Foo의 정적 메소드 또는 다른 별도의 함수로 사용해야합니까? class Foo(object): def __init__(self, data): ... # option 1: @staticmethod def fromSourceData(sourceData): return Foo(processData(sourceData)) # option …
30 design  python 

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