소프트웨어 공학

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


4
인증되지 않은 * 요청 * 요청 속도 제한
속도 제한을 수행하는로드 밸런서가 있다고 가정하십시오. 로그인 한 사용자에게는 속도 제한이 매우 간단 해 보입니다. JWT를보고 메모리 내 데이터 저장소를 사용하여 해당 사용자에 대한 지난 10 초 동안의 요청 수를 확인하십시오. 그러나 로그인하지 않은 (인증되지 않은) 사용자는 어떻습니까? 우리는 그들이 누구인지 또는 어디에서 요청이 어디에서 왔는지 확실하지 않으므로 요청을 쉽게 …

4
낙관적 잠금이 작동하지 않으면 어떻게해야합니까?
이 시나리오는 다음과 같습니다. 사용자는 GET 요청을 /projects/1하고 ETag를 받습니다 . 사용자는 1 단계부터 ETag 로 PUT 요청을 /projects/1합니다. 사용자는 /projects/11 단계에서 ETag 로 다른 PUT 요청을 합니다. 일반적으로 ETag가 오래되었으므로 두 번째 PUT 요청은 412 응답을 수신합니다. 첫 번째 PUT 요청이 자원을 수정 했으므로 ETag가 더 이상 일치하지 않습니다. …

5
RealNumber 및 ComplexNumber 상속을 구현하는 방법은 무엇입니까?
학문적이지 않기를 바랍니다. SW 라이브러리에 실수와 복소수가 필요하다고 가정 해 봅시다. 에 기초하는 것이다-A (또는 여기 ) 관계, 실제 번호는 A는 복소수의 허수 부분 B는 단순히 0 복소수. 반면에 내 구현은 자식이 부모를 확장하므로 부모 RealNumber에는 실제 부분이 있고 자식 ComplexNumber는 가상의 예술을 추가합니다. 또한 상속은 악하다 는 의견 이 …

2
DDD의 예외
DDD를 배우고 있으며 특정 상황에서 예외를 던지는 것에 대해 생각하고 있습니다. 객체가 나쁜 상태로 들어갈 수 없으므로 예외는 괜찮지 만 많은 예에서 데이터베이스에 전자 메일이있는 새 사용자를 추가하려고하면 예를 들어 예외가 발생합니다. public function doIt(UserData $userData) { $user = $this->userRepository->byEmail($userData->email()); if ($user) { throw new UserAlreadyExistsException(); } $this->userRepository->add( new User( …

4
더 간단하게 서비스를 포장하는 방법
우리는 3 가지 방법 만 필요한 거대한 인터페이스를 제공하는 타사 서비스에 의존합니다. 또한 인터페이스가 자주 변경됩니다 ... 프로젝트의 클래스에서 인터페이스를 포장하기로 결정하고 필요한 메소드 만 공개하기로 결정했습니다. 그러나 반환 값을 어떻게 처리 해야하는지 잘 모르겠습니다 ... 인터페이스는 유형의 객체를 반환합니다 Storage. 우리는 내부적 StorageModel으로 우리의 내부 표현 인 타입 을 …

6
엔티티 메소드 호출에 대한 DDD 인젝션 서비스
질문의 짧은 형식 엔티티 메소드 호출에 서비스를 삽입하는 것이 DDD 및 OOP의 우수 사례 내에 있습니까? 긴 형식 예 DDD에 고전적인 Order-LineItems 사례가 있다고 가정합니다. 여기에서 Order라는 도메인 엔터티가 있으며,이 루트는 또한 Root Root 역할을하며 엔터티는 Value Objects뿐만 아니라 Line Item의 컬렉션으로 구성됩니다. 엔티티. 응용 프로그램에서 유창한 구문을 원한다고 가정하면 …

6
풀은 주니어 훈련 장소를 요청합니까
마스터로의 Pull Request의 모든 코드는 프로덕션 준비가되어야한다는 개념이 있습니다. 이것은 의미가 있으며 내 의견으로는 공정한 진술입니다. 여기서 PR을 만들면이를 마스터에 넣었을 것이라는 의견이 있지만 일부 검토자가 단순히 '동의'하고 누락 된 부분을 발견하기를 원합니다. 우리는 인간이기 때문에 실수를 저지르고 다른 검토자가 단위 테스트에서 찾을 수없는 항목 (맞춤법 오류, 잘못된 javadoc 등)을 …

3
파이썬 3.4 이상에서 dict를 사용하지 않을 때 SimpleNamespace보다 namedtuple을 사용해야하는 이유는 매우 비슷합니다.
어느 시점에서 당신은 많은 논증을 가진 함수들을 보게 될 것입니다. 때로는 일부 주장을 수퍼 인수로 결합하는 것이 합리적입니다. 나는 종종 dicts 로이 작업을 수행했지만 이제는 더 나은 방법을 찾고 있습니다. 설정하고 싶습니다 ... def do_something(ax, ay, az, bu, bv, c): # Do something ...에 ... def do_something(a, b, c): # …

2
bluesky / prototype 프로젝트에서 단위 테스트 또는 통합 테스트를 먼저 작성할지 평가
내가 최근에 발견 한 것은 다음 유형의 프로젝트를 수행 할 때입니다. 프로젝트를 시작할 때 MVP / 프로토 타입 작업 완전히 정의되지 않은 기능 추가 소규모 프로젝트에서 작업 참고로, 현재 주석과 모든 공백을 포함하여 ~ 1k 줄의 코드가있는 Python 프로젝트를 작성 중입니다. 먼저 통합 테스트를 작성하고 코드 작업 을 한 다음 …

4
리플렉션을 통해 호출되는 메소드를 표시하는 가장 좋은 방법?
우리 소프트웨어에는 리플렉션을 통해 동적으로 찾아야하는 몇 가지 클래스가 있습니다. 클래스에는 모두 리플렉션 코드가 객체를 인스턴스화하는 특정 서명이있는 생성자가 있습니다. 그러나 누군가가 메서드가 참조되는지 (예 : Visual Studio Code Lens를 통해) 확인하면 리플렉션을 통한 참조는 계산되지 않습니다. 사람들은 자신의 참조를 그리워하고 명백하게 사용되지 않는 방법을 제거 (또는 변경) 할 수 …

3
여전히 단위 테스트라고하는 함수를 테스트하여 함수를 테스트하는 테스트 방법입니까?
함수 B를 테스트하는 경우 함수 B를 호출하는 함수 C를 테스트하여, 즉 함수 B를 호출하는 함수 C를 테스트하기위한 테스트 프로그램을 작성하여 테스트 방법을 여전히 단위 테스트라고합니까? 대상 함수를 호출하는 함수에서 간접 테스트를 선호하는 경우는 언제이며 함수를 직접 테스트하는 것이 선호되는 경우는 언제입니까?

1
좋은 문제 성명서 작성
<백 스토리> 요 전에는 중고 서점에서 코드 컴플리트 (Code Complete)라는 책을 들고 큰 책이라고 들었고 책을 읽기 시작했습니다. 약 10 페이지를 읽은 후 최근에 작업 한 프로젝트에 대해 어리 석다는 것을 깨달았습니다. 이 시점에서 내가 설명해야 할 약간의 설명이 있습니다. 저는 직장에 있지 않으며 학교를위한 것이 아닙니다. 그것은 비공식적입니다. (나는 …

2
C / C ++ 프로젝트의 종속성을 올바르게 관리하는 방법은 무엇입니까?
3-4 개의 다른 오픈 소스 C / C ++ 라이브러리를 사용하는 프로젝트가 있습니다. 여러 플랫폼에 대해 이러한 라이브러리를 빌드하고 내 프로젝트에서 다른 플랫폼에 대한 포함 파일 및 정적 라이브러리를 체크인했습니다. 그러나 몇 가지 문제로 어려움을 겪고 있습니다. 이러한 모든 프로젝트는 종속성 관리에 관한 것입니다. 그리고 모범 사례 조언을 찾고 있습니다. …

2
응용 프로그램 서비스 계층 호출 데이터베이스 기능. 나쁜 건축?
대본: 스택 : Java, Spring, Hibernate. 모델 : 클라이언트 서버 응용 프로그램 패턴 : MVC (Model-View-Controller). 서비스 계층 클래스에는 세 가지 동작이 있습니다. 일부 서비스는 메소드 내에 비즈니스 규칙이 있으며 지속성을 애플리케이션에 위임합니다. 처럼: EntityManager.save (entity); 일부 서비스는 단순히 데이터베이스 함수를 호출합니다 (매개 변수 전달). CallableStatement cls = con.prepareCall ( …

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