소프트웨어 공학

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

2
구조체에 typedef를 사용하는 이유는 무엇입니까?
C (ANSI, C99 등)에서 구조체는 자체 네임 스페이스에 존재합니다. 링크 된리스트를위한 구조체는 다음과 같습니다 : struct my_buffer_type { struct my_buffer_type * next; struct my_buffer_type * prev; void * data; }; 그러나 대부분의 C 프로그래머는 다음과 같은 구조체를 자동으로 입력하는 것이 당연합니다. typedef struct tag_buffer_type { struct tag_buffer_type * next; struct …

2
Clojure의 대괄호와 중괄호는 여전히 S- 표현입니까?
나는 Lisp를 배우려고 노력하고 있으며 거기의 모든 Lisp와 그 차이점을보고 있습니다. Scheme의 일부 구현에서 가독성을 위해 대괄호와 대괄호를 상호 교환하여 사용할 수 있다는 것을 알았습니다. 따라서 동일하게 취급되기 때문에 여전히 다른 모든 것과 마찬가지로 S- 표현이라고 가정합니다. 그러나 Clojure에서 대괄호와 중괄호는 벡터 등과 같은 다른 데이터 유형을 나타내는 데 사용됩니다. …
12 lisp  clojure 

6
불변 유형의 단점은 무엇입니까?
클래스의 인스턴스가 변경 될 것으로 예상되지 않을 때 더 많은 불변 유형을 사용 하고 있습니다 . 더 많은 작업이 필요하지만 (아래 예 참조) 멀티 스레드 환경에서 유형을보다 쉽게 ​​사용할 수 있습니다. 동시에 변경 가능성이 다른 사람에게 도움이되지 않더라도 다른 응용 프로그램에서는 변경 불가능한 유형을 거의 볼 수 없습니다. 질문 : …
12 c#  immutability 

2
밑줄로 변수 / 멤버를 시작하면 컴파일러가 퍼즐을 풀 수 있습니까?
고등학교 이후부터 다음과 같은 변수를 정의하는 법을 배웠습니다. int _a; 또는 int __a; 결과적으로 밑줄로 시작하는 변수를 사용하여 임시 변수의 이름을 지정하는 컴파일러를 혼란스럽게하므로 나쁜 습관을 고려해야합니다. 내가 아는 한 일부 사람들은 이름 끝에서 밑줄을 다음과 같이 이동하는 이유입니다. int a_; 그러나 밑줄 시작 변수를 사용하는 많은 코드가 있습니다. 그리고이 …

4
웹 애플리케이션에서 전송 된 자동 이메일을 관리하는 방법
웹 응용 프로그램을 설계하고 있으며 자동화 된 전자 메일 전송을 관리하기 위해 아키텍처를 설계하는 방법이 궁금합니다. 현재이 기능을 내 웹 응용 프로그램에 빌드했으며 전자 메일은 사용자 입력 / 상호 작용 (예 : 새 사용자 만들기)을 기반으로 전송됩니다. 문제는 메일 서버에 직접 연결하는 데 몇 초가 걸린다는 것입니다. 내 응용 프로그램을 …


5
Java 애플리케이션에서 런타임 예외 발생
저는 고객을 위해 기술 책임자 역할을하는 엔터프라이즈 Java 응용 프로그램을 설계하는 계약자로 일하고 있습니다. 응용 프로그램은 최종 사용자가 사용하며 우리가 떠날 때 응용 프로그램을 지원할 지원 팀이 있습니다. 내가 일하고있는 다른 기술 담당자는 예외 처리로 인해 코드가 더러워 질 것이라는 인상을 받고 있습니다. 시스템은 서비스 계층에서만 확인 된 예외를 처리하고 …

5
내 컴퓨터가 하버드 또는 폰 노이만 아키텍처인지 어떻게 알 수 있습니까?
두 아키텍처의 차이점은 하버드 아키텍처의 데이터와 명령어를 분리하는 것입니다. 그러나 어떤 유형의 시스템을 사용 중인지 어떻게 알 수 있습니까? 프로그램이 시스템이 폰 노이만인지 하버드인지를 결정하도록 프로그램을 작성할 수 있습니까? 다른 아키텍처가 있거나 이러한 아키텍처가 유일하게 알려진 아키텍처 일 수 있습니까?

8
하나의 파일에 모든 열거 형을 포함시키고 여러 클래스에서 사용하는 것은 나쁜 습관입니까?
나는 야심 찬 게임 개발자이고, 가끔 인디 게임을하고 있으며, 처음에는 나쁜 연습처럼 보였던 일을하고 있지만, 경험이 풍부한 프로그래머로부터 답변을 얻고 싶습니다. enumList.h게임에서 사용하려는 모든 열거 형을 선언 하는 파일이 있다고 가정 해 보겠습니다 . // enumList.h enum materials_t { WOOD, STONE, ETC }; enum entity_t { PLAYER, MONSTER }; enum …

2
왜 오류 코드가 무시됩니까?
C 코드에서 반환 된 오류 코드를 무시하는 경우가 종종 있습니다 (예 : return -EINVAL대신) return EINVAL. 왜 부정을 사용 했습니까?
12 c 

3
ORM 레이어 위에 추상화 레이어 만들기
리포지토리가 있으면 데이터베이스에서 이미 추상화 된 ORM을 사용한다고 생각합니다. 그러나 내가 지금 일하고있는 곳에서 누군가 ORM을 나중에 변경하고 싶다면 ORM을 추상화하는 레이어가 있어야한다고 생각합니다. 많은 ORM에서 작동하는 레이어를 만드는 것이 정말로 필요합니까 아니면 단순히 오버 헤드입니까? 편집하다 더 자세히 설명하면 다음과 같습니다. AutoMapper로 매핑 된 POCO 클래스와 엔티티 클래스가 있습니다. …
12 database  orm 

7
리팩토링 및 개방 / 폐쇄 원칙
최근에 깨끗한 코드 개발에 관한 웹 사이트를 읽고 있습니다 (영어가 아니기 때문에 여기에 링크를 두지 않습니다). 이 사이트에서 광고하는 원칙 중 하나는 공개 폐쇄 원칙입니다 . 각 소프트웨어 구성 요소는 확장을 위해 개방되고 수정을 위해 폐쇄되어야합니다. 예를 들어, 클래스를 구현하고 테스트 한 경우 버그를 수정하거나 새로운 기능 (예 : 기존 …

9
복사하여 붙여 넣은 테스트 코드 : 이것이 얼마나 나쁩니 까?
내 현재 직업은 주로 우리가 작업하는 다양한 응용 프로그램에 대한 GUI 테스트 코드를 작성하는 것입니다. 그러나 테스트 내에서 많은 코드를 복사하여 붙여 넣는 경향이 있습니다. 그 이유는 테스트하는 영역이 반복이 필요할 정도로 비슷하지만 코드를 메소드 또는 객체로 캡슐화 하기에는 충분히 유사하지 않기 때문 입니다. 클래스 나 메소드를 더 광범위하게 사용하려고 …

2
컴파일 된 C ++ 11 라이브러리 (lib, dll 등)를 이전 C ++ 컴파일러에서 연결할 수 있습니까?
구형 C ++ 컴파일러 (예 : VS2008 및 gcc3.4)가 C ++ 11로 작성된 외부 라이브러리와 연결할 수 있습니까? 내 생각에 C ++ 11 .lib 파일은이 단계에서 바이트 코드 일 뿐이며 어떻게 든 해석 가능하고 호출 가능한 한 이전 컴파일러가 생성 된 방식을 귀찮게해서는 안됩니다. API가 여전히 C ++ 03 사용자를 …
12 c++  c++11 


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