소프트웨어 공학

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

5
새로운 언어 구조를 사용하도록 이전 코드를 업데이트해야합니까, 아니면 오래된 구조를 고수해야합니까?
프로그래밍 언어로 기능이 향상되기 전에 오래 전에 작성된 일부 기능적 코드를 개선하고 싶습니다. 이론적으로 전체 프로젝트는 최신 버전의 언어를 사용합니다. 그러나이 특정 모듈 (및 실제로 다른 많은 모듈)은 여전히 ​​오래된 방언으로 작성되었습니다. 내가해야합니까: 코드의 일부를 건드릴 필요는 없지만 패치를 작성하기는 쉽지만 모듈의 다른 곳에서는 유사한 상황에서 사용되지 않는 새로운 언어 …

5
조건부 인 경우 set.add ()의 부울 반환?
set 클래스의 add 연산자는 추가 할 요소가없는 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. 기록하고있다 if (set.add(entry)) { //do some more stuff } 깨끗한 코드 작성 측면에서 좋은 스타일로 간주됩니까? 한 번에 두 가지 일을했기 때문에 궁금합니다. 1) 요소 추가 및 2) 요소 존재 여부 확인

6
단일 실행 파일을 개발할 때 다른 C ++ 컴파일러 및 언어 버전 사용
우리 회사는 위성 통신을 위해 크고 복잡한 소스 코드를 구매할 것입니다. 이 코드는 C ++로 코딩되어 있으며 코드를 구매 한 코드와 단일 실행 단위로 연결하여 C ++로 코드를 추가합니다. 구매 한 코드를 개발하는 데 사용한 것과 동일한 컴파일러 및 동일한 컴파일러 버전을 사용해야합니까? 구매 한 코드와 동일한 버전의 C ++를 …
15 c++ 

5
다수의 구조화 된 구성 / 속성 파일 처리를위한 모범 사례
많은 서버가있는 시스템을 상상해보십시오. 각각에는 여러 가지 설정이 있습니다. 서버에 특정한 것 지역에 따라 일부 그들 모두에게 공통적 인 것 이 서버 그룹은 읽기 전용이므로 일부 사용자 지정 그룹을 가질 수 있습니다. 기타 내가 생각하는 현재 관행은 재정의 능력을 가진 간단한 속성 구조입니다. 예제 목적으로 Google 서버를 사용할 수 있습니다. …

1
RESTful API 및 i18n : 응답 디자인 방법
우리는 주로 단일 클라이언트의 요구를 충족시키기위한 RESTful API를 설계하고 있습니다. 매우 특정한 상황으로 인해이 클라이언트는 가능한 적은 요청을해야합니다. API는 요청의 Accept-Language 헤더를 통해 i18n을 처리합니다. 이는 클라이언트가 사용 가능한 모든 로케일에서 단일 엔드 포인트에 대한 요청 응답을 저장해야하는 하나의 기능을 제외하고 클라이언트가 수행해야하는 모든 작업에 적용됩니다. 클라이언트가 일관되고 체계적인 RESTful …
15 rest  api  api-design  http 

4
Java에서 null 검사없이 값을 가져 오는 중
오류가 발생하기 쉽고 많은 상용구가 필요한 NullPointerExceptions을 피하기 위해 일부 데이터 계층에서 값을 가져올 때 null 검사를하는 경우가 많습니다. 객체를 가져올 때 null 검사를 건너 뛸 수있는 매우 간단한 루틴을 작성했습니다 ... public final class NoNPE { public static <T> T get(NoNPEInterface<T> in) { try { return in.get(); } catch …
15 java  null 

3
Mocking은 생산 코드에서 처리를 소개합니다
IReader 인터페이스, IReader 인터페이스 ReaderImplementation의 구현 및 리더에서 데이터를 소비하고 처리하는 클래스 ReaderConsumer를 가정합니다. public interface IReader { object Read() } 이행 public class ReaderImplementation { ... public object Read() { ... } } 소비자: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { ... } // …

5
작은 기능 대 종속 기능을 동일한 기능으로 유지
노드 배열을 설정하고 그래프와 같은 구조로 서로 연결하는 클래스가 있습니다. 가장 좋은 방법은 다음과 같습니다. 하나의 기능으로 노드를 초기화하고 연결하는 기능 유지 두 가지 다른 기능으로 초기화 및 연결 기능을 사용하십시오 (이 기능은 개인용이지만 명심해야합니다). 방법 1 : (하나의 기능이 두 가지 일을한다는 점에서 나쁘지만 종속 기능을 그룹화하여 유지합니다. 노드를 …

3
Redux는 삭제 된 신 개체 패턴을 사용합니까?
Redux에 대해 배우는 동안 God-object 패턴 (또는 안티 패턴)이 떠 올랐습니다. 모두 하나의 큰 객체가 있으며 모든 앱 데이터와 조작 방법을 보유하고 있습니다. 그러나 Redux는 엄격한 서명을 유지하면서 객체를 불변으로 만들고 이벤트를 순수하게 만드는 것과 같은 제약을가했습니다. 그래서 Redux는 위생 처리 된 버전의 신 객체를 사용하고 있습니까? 아니면 고전적인 강력한 …
15 redux 

3
마이크로 서비스간에 DTO 객체 공유
TL; DR-서비스간에 POJO 라이브러리를 공유해도 되나요? 일반적으로 우리는 가능한 경우 서비스 간 공유를 없음으로 엄격하게 제한하고 싶습니다. 데이터를 공유하는 서비스가 클라이언트가 사용할 클라이언트 라이브러리를 제공해야하는지에 대한 논쟁이있었습니다. client-lib는 일반적으로 서비스 클라이언트가 선택적으로 사용할 수 있으며 client-lib를 사용하든 대체 언어를 사용하든 라이브러리 등의 일반적인 측면을 사용하든 API를 사용할 수 있습니다. 필자의 …

4
차원, 색인 등의 경우 size_t 또는 int
C ++에서는 size_t(또는 더 정확하게 T::size_type"보통" size_t; 즉 unsigned유형 인)가에 대한 반환 값 size(),에 대한 인수 operator[]등으로 사용됩니다 (등 참조 std::vector). 반면에 .NET 언어 는 같은 목적 int으로 (그리고 선택적으로 long)를 사용합니다. 실제로 CLS 호환 언어는 서명되지 않은 형식을 지원할 필요 가 없습니다 . .NET이 C ++보다 최신이라는 점을 고려 …
15 c#  c++  array 

7
교차 테이블을 작성하는 대신 널 입력 가능 외래 키를 사용하는 단점
다음과 같은 응급실 다이어그램이 있다고 가정 해보십시오. 이제 Schoolin 의 외래 키를 사용하여 관계를 나타내는 경우 a 가 a 에 속할 필요가 없기 때문에 값을 Student가질 수 있습니다 .NULLStudentSchool 따라서 올바른 방법은 (내가 읽은 내용을 기반으로) 관계를 나타내는 교차 테이블을 만드는 것입니다. 이런 식으로 NULL테이블에 값을 표시 할 수 없습니다 …

6
자율 마이크로 서비스, 이벤트 대기열 및 서비스 검색
나는 최근에 마이크로 서비스에 대해 많은 것을 읽었으며 여기까지 내가 얻은 결론 중 일부가 있습니다 (어쨌든 틀렸다면 정정하십시오). 마이크로 서비스 아키텍처는 도메인 중심 디자인과 잘 어울립니다. 일반적으로 하나의 MS는 하나의 경계 컨텍스트를 나타냅니다. 마이크로 서비스 A 가 마이크로 서비스 B에 상주하는 기능을 필요로 하는 경우 , 내 모델이 잘못되었을 수 …

1
std :: vector <bool>은 어떻게 생겼습니까?
오늘날 거의 모든 C ++ 개발자 std::vector&lt;bool&gt;는 컨테이너가 아니라고 생각하기 때문에 실수 였다는 것에 동의 std::bitset합니다. 표준에 어떻게 투표 했습니까? 당시 논란이 있었습니까? 주요지지 주장은 무엇입니까?
15 c++  history  stl 

3
클라이언트 / 서버 실시간 비디오 게임에서 더 빠른 컴퓨터를 처리하는 방법
socket.io를 사용하여 첫 온라인 게임을 만들고 있는데 agar.io 또는 diep.io와 같은 실시간 멀티 플레이어 게임이되고 싶습니다. 그러나 모든 컴퓨터를 같은 속도로 작동시키는 방법을 알아 내려는 문제가 발생했습니다. 모델에 대한 세 가지 아이디어가 있지만 그중 어느 것도 옳지 않은 것처럼 보이며 일반적인 비디오 게임이 어떻게 작동하는지 궁금합니다. (당신은 내 아이디어를 읽는 …

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