소프트웨어 공학

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

4
도메인 대 데이터 지속성 계층의 클린 아키텍처 검증?
저는 깨끗하게 공부하고 있으며 결과적으로 소프트웨어를 디자인하고 작성하는 방법을 상당히 많이 재고하고 있습니다. 그래도 여전히 씨름하고있는 것은 "일부 항목에 대한 업데이트 저장시 먼저로드 /보기 / 수정 권한이있는 모든 항목 목록 등의 비즈니스 규칙에 대한 것입니다.이 항목이 목록에 있는지 확인하십시오. 항목 카테고리가 현재 사용 (및 기타 규칙 등)에서 잠기지 않았습니다. ".. …

1
MongoDB 데이터베이스의 스키마 다이어그램을 어떻게 표현합니까?
스키마 디자인을 올바르게 문서화하려는 MongoDB 데이터베이스가 있습니다. MongoDB는 NoSQL 데이터베이스이며 본질적으로 스키마가 없다는 것을 알고 있지만 응용 프로그램을 통해 스키마를 적용하고 findOne()결과 인쇄보다 더 나은 방식으로 표현하고 싶습니다 . 많은 사람들이 ER 또는 UML을 사용하는 것을 보았지만 개념적으로 내 NoSQL 데이터베이스를 관계형 DB로 나타내는 것이 옳지 않다고 생각하거나 적어도 이상하게 …


4
통합 테스트를위한 이름 선택
단위 테스트를 사용하면 도메인이 매우 작으므로 쉽습니다. 나는 Osherove의 methodName_conditions_result()계획을 사용했으며 매우 분명했습니다. 그러나 통합 테스트를 통해 매우 긴 이름을 갖게 될 것으로 생각되며 대신 무엇을 배치 methodName해야합니까? 통합 테스트 클래스의 이름을 어떻게 지정합니까? 통합 테스트 이름의 실제 예는 매우 환영합니다. 답변이 이러한 테스트를 더 잘 이해하는 데 도움이되기를 바랍니다.


4
Null 병합 연산자를 사용하여 Null 개체 인스턴스화
다음과 같은 일반적인 시나리오를 고려하십시오. if(myObject == null) { myObject = new myClass(); } null-coalescing 연산자를 사용하여 다음 교체에 대해 어떻게 생각하는지 궁금합니다. myObject = myObject ?? new myClass(); 두 번째 양식을 사용해야하는지 잘 모르겠습니다. 좋은 속기 myObject = myObject처럼 보이지만 처음 에는 구문이 약간 코드 냄새가 나는 것처럼 보입니다. …
12 c#  operators 

4
sizeof가 컴파일 타임 연산자라고하는 이유는 무엇입니까?
원래 이것은 다른 질문 의 일부입니다 . sizeof컴파일 타임 연산자라고하는 이유는 무엇 입니까? 그것을하지 않습니다 실제로 런타임 연산자? 그리고 실제로 컴파일 타임 연산자라면 다른 컴퓨터에서 동일하게 실행되는 휴대용 코드를 만드는 데 어떻게 도움이됩니까? 자세하게 설명하십시오.
12 c++ 

2
스트림 조작기 (endl) 또는 개행 이스케이프 문자 (\ n)를 사용합니까?
나는 질문을하는 특정 컨텍스트가 없지만 C ++에 대한 초보자 책을 읽는 동안 스트림 객체를 처리 할 때 endl 스트림 조작자와 개행 이스케이프 문자가 모두 사용되는 것을 알았습니다. 예는 다음과 같습니다. cout << "Hello World" << endl; cout << "Hello World\n"; 내 질문은 : 특정 상황에서 스트림 조작기 (endl)를 사용하고 다른 …

6
기본값-좋고 나쁘니?
일반적으로 기본값에 대한 질문-기본 반환 함수 값, 기본 매개 변수 값, 누락 된 경우의 기본 논리, 예외 처리를위한 기본 논리, 에지 조건을 처리하기위한 기본 논리 등 오랫동안 나는 기본값을 "순수한 악의", "재앙을 은폐"하고 버그를 찾기가 매우 어려운 것으로 생각했습니다. 그러나 최근에 나는 기본값을 일종의 기술 부채로 생각하기 시작했습니다 ... 이것은 …

11
“인간 판독 가능”이란 무엇입니까? 잘못된 이름입니까?
두 가지 예가 떠 오릅니다. .Net 프로그래머가 Windows 레지스트리 대신 .config 파일을 사용하도록 권장하는 이유 중 하나는 .config 파일이 XML이므로 사람이 읽을 수 있기 때문입니다. 마찬가지로 JSON은 독점 형식과 비교하여 사람이 읽을 수있는 것으로 간주되는 경우가 있습니다. 사람이 읽을 수있는 형식은 실제로 사람이 읽을 수 있습니까? 구성 데이터의 예에서 : …

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

4
계층화 된 소프트웨어 아키텍처에서 동일한 계층의 개체간에 종속성을 갖는 것이 문제가됩니까?
n- 계층 아키텍처와 의존성 주입을 가진 중간 규모의 소프트웨어를 고려할 때, 계층에 속하는 객체는 하위 계층의 객체에 의존 할 수 있지만 상위 계층의 객체에는 의존하지 않을 수 있습니다. 그러나 같은 레이어의 다른 객체에 의존하는 객체에 대해 어떻게 생각 해야할지 모르겠습니다. 예를 들어, 3 개의 레이어와 이미지의 레이어와 같은 여러 객체가있는 …

5
우리 팀은 외래 키 관계를 가진 관계형 데이터베이스 엔터티가 무서워서 왜 그런지 모르겠습니다.
나는 대학에서 비교적 신선하지 않기 때문에 관계형 데이터베이스에 대한 대부분의 친숙 함은 BCNF 또는 3NF에없는 것이 비극적 인 데이터베이스 과정에서 나온 것입니다. 확실히 그것은 극단적 인 것의 한 끝이지만, 직장에서 우리 팀은 그것을 완전히 반대쪽 끝으로 가져가는 것 같습니다. 마이크로 서비스 db 스키마에서 엔티티는 하나 이상의 테이블을 갖는 경우가 거의 …

2
파생 클래스가 원시 동적 메모리를 할당하지 않는 경우 기본 클래스에 가상 소멸자가 필요한 이유는 무엇입니까?
다음 코드는 메모리 누수를 유발합니다. #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < 1000000; i++) { …

6
DDD가 OOP : 객체 지향 저장소를 구현하는 방법을 충족합니까?
DDD 저장소의 일반적인 구현은 예를 들어 save()메소드와 같이 OO처럼 보이지 않습니다 . package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } 인프라 부분 : package com.example.infrastructure; // imports... public class JdbcProductRepo implements …

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