소프트웨어 공학

시스템 개발 수명주기 내에서 작업하는 전문가, 학자 및 학생을위한 Q & A

1
DDD 개념을 실제 코드에 적용하는 방법은 무엇입니까? 내부 특정 질문
나는 DDD를 공부하고 있으며 현재 실제 코드에 개념을 적용하는 방법을 찾기 위해 고심하고 있습니다. 나는 N-tier에 대해 약 10 년의 경험을 가지고 있기 때문에, 어려움을 겪고있는 이유는 나의 정신 모델이 그 디자인과 너무 연관되어 있기 때문일 가능성이 높습니다. Asp.NET 웹 응용 프로그램을 만들었으며 웹 모니터링 응용 프로그램이라는 간단한 도메인부터 시작합니다. …

2
dynamic_cast를 사용하지 않는 적절한 디자인?
몇 가지 연구를 한 후에 자주 발생하는 문제를 해결하는 간단한 예를 찾지 못하는 것 같습니다. Squares, Circles 및 기타 모양을 만들고 화면에 표시하고 선택한 후 속성을 수정 한 다음 모든 둘레를 계산할 수있는 작은 응용 프로그램을 만들고 싶다고 가정 해 봅시다 . 다음과 같이 모델 클래스를 수행합니다. class AbstractShape { …

4
'수율'과 같은 생성기 언어 기능이 좋은 생각입니까?
PHP, C #, Python 및 다른 일부 언어에는 yield생성기 함수를 만드는 데 사용되는 키워드가 있습니다. PHP에서 : http://php.net/manual/en/language.generators.syntax.php 파이썬에서 : https://www.pythoncentral.io/python-generators-and-yield-keyword/ C #에서 : https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield 언어 기능 / 시설로 인해 yield일부 규칙이 위반 될 수 있습니다. 그중 하나는 "확실성"입니다. 호출 할 때마다 다른 결과를 반환하는 메서드입니다. 일반 비 생성기 함수를 …

2
클레임으로 어떤 데이터를 저장해야합니까?
ASP.Net Core에서 Claims권한 부여가 매우 정확 하지 않은 방법 이라는 것을 알았습니다 . 우리는 무엇이든 추가 ClaimType하고 ClaimValue짝을 지을 수 있습니다 . 그룹, 이름, 성, brithdate, canAccessThisURI, isEditor 등입니다. 그러나이 방법 (클레임으로 저장할 수있는 모든 것을 저장)은 내 응용 프로그램 데이터의 50 %를 포함하는 거대한 클레임 테이블을 만듭니다. 모범 사례로서 …

1
패턴은 빌딩 블록이 아니므로 MVC / MVP 패턴에서 앱을 빌드하지 않아야합니까?
디자인 패턴에 대한 이 페이지와 코드를 작성할 때 어떻게 처리해야하는지 읽었습니다 . 링크의 제목은 다음과 같습니다. 패턴은 빌딩 블록이 아닙니다. 올바르게 이해하면 디자인 패턴이 적절할 때까지 디자인 패턴을 사용하지 않는 것입니다. 맞습니까? 전략 패턴을 사용할 것이라고 말하지 말고 코드를 작성할 때까지 기다렸다가 전략 패턴을 사용하는 것이 디자인에 적합하다면 사용하십시오. 나는 …

7
마법사와 전사의 규칙 우회
에서 블로그 게시물이 시리즈 , 에릭 Lippert의이 마법사와 예제로 전사를 사용하여 객체 지향 설계에서 문제를 설명 : abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon Weapon { get; set; } } sealed class …

7
수업을 너무 세분화하고 있습니까? 단일 책임 원칙을 어떻게 적용해야합니까?
세 가지 기본 단계를 포함하는 많은 코드를 작성합니다. 어딘가에서 데이터를 가져옵니다. 그 데이터를 변환하십시오. 그 데이터를 어딘가에 두십시오. 나는 일반적으로 각각의 디자인 패턴에서 영감을 얻은 세 가지 유형의 클래스를 사용합니다. 공장-일부 리소스에서 개체를 작성합니다. 중재자-공장을 사용하고 변형을 수행 한 다음 지휘관을 사용하십시오. 지휘관-그 데이터를 다른 곳에 두십시오. 제 수업은 매우 …

3
도우미 스타일의 "유틸리티 백"정적 클래스를 피하면서 "자유 ​​기능"을 깨끗하게 처리하는 C # 패턴
나는 최근에 내가 작업하는 큰 C # 코드베이스 주위에 떠있는 몇 가지 도우미 스타일의 "유틸리티 백"정적 클래스를 검토하고 있었다. // Helpers.cs public static class Helpers { public static void DoSomething() {} public static void DoSomethingElse() {} } 내가 검토 한 특정 방법은 대부분 서로 관련이없고 호출에서 명시적인 상태가 지속되지 않으면 …

6
단위 테스트는 '기능적'소프트웨어 만 포함해야합니다
우리는 새로운 소프트웨어 개발 프로젝트에서 StructureMap 을 사용하고 있습니다. 팀 구성원 중 하나가 기본적으로 StructureMap 컨테이너 구성을 테스트하는 단위 테스트를 구현했습니다 . 다음을 수행하여이를 수행합니다. 응용 프로그램 네임 스페이스의 클래스에 대해 구성된 어셈블리 인스턴스 수를 계산합니다. 클래스 수준에서 예상 인스턴스를 정의합니다 예상 인스턴스가 발견 된 총 인스턴스와 일치하는지 확인합니다. 예상 …

3
파일의 시작 부분에서 끝에서만 알고있는 것을 쓰는 것
배경 : EBML 파일을 작성하기 위해 마이크로 컨트롤러 C 코드를 작성하고 있습니다. EBML은 중첩 된 요소가있는 이진 XML과 유사하지만 시작 및 끝 태그 대신 시작 ID, 길이 및 데이터가 있습니다. 저전력 응용 프로그램에서 외부 플래시에 이것을 쓰고 있으므로 플래시 액세스를 최소로 유지하고 싶습니다. 쉬운 일이 없기 때문에 메모리도 제한됩니다. 전체 …

4
복잡한 도메인 중심 애플리케이션에서 기본 CRUD 작업에 대한 DDD 접근
우리 회사는 웹 애플리케이션을 처음부터 다시 작성하고 있습니다. 금융 업계에서 복잡한 도메인을 가진 대기업 수준의 응용 프로그램입니다. 지속성을 위해 ORM (Entity Framework)을 사용하고 있습니다. 본질적으로 응용 프로그램의 절반은 사용자로부터 원시 데이터를 수집하고 저장하는 데 중점을 둔 다음 실제 도메인 논리를 대부분 포함하는 응용 프로그램의 나머지 절반은 원시 데이터를 사용하여 원본과 …

3
자연어가 모호 할 때 행동 주도 개발은 어떻게 명확성을 개선합니까?
나는 현재 오이와 같은 BDD 테스트 프레임 워크를 탐색 하고 있으며 사람들이 말할 때 궁금해합니다. 기능 파일은 단순한 자연 언어이므로 명확성을 향상시키고 명확한 비전을 제공합니다. 그러나 자연어가 우리가 소프트웨어 엔지니어링에서 겪고있는 대부분의 문제의 원인이 아닙니까? 자연어는 모호하며 고객 요구 사항의 잘못된 해석과 개발자의 이해로 인해 많은 소프트웨어 프로젝트가 실패하는 이유입니다. …
9 bdd  cucumber 


5
계산을 나타내는 긴 코드를 더 쉽게 읽을 수 있습니까?
긴 메소드는 일반적으로 나쁜 것으로 간주되지만 내 코드에는 이해하기 어려운 긴 메소드 (50 줄 이상)가 있습니다. 내부의 단일 문 길이가 이미 50 줄 이상이고 읽기 어려운 단일 문은 ORM을 사용하여 데이터베이스 쿼리를 작성하여 작업이 수행되는 특정 작업을 수행하기 때문에 이러한 메서드를 읽기가 쉽지 않습니다. 메소드 이름에 명확하게 표시됩니다. 명령문이 여러 …

1
프로젝트에서 비 단위 테스트를 관리하는 방법은 무엇입니까?
프로젝트에 tests단위 테스트가 아닌 코드가 있습니다. 그것들은 실행되어야하고 결과는 인간에 의해 평가되어야합니다. 나는 물리 엔진을 만들고 있기 때문에이 작업을 수행했으며 개발 과정에서 내가하고있는 일을 볼 필요가있었습니다. simulation테스트 모듈에 패키지를 만들었습니다 . 시뮬레이션이 단위 테스트 라이브러리를 사용하기 때문에 기술적으로 단위 테스트이지만 실제 단위 테스트처럼 모두 실행한다는 의미는 아닙니다. 내가하고 싶은 것은 …

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