소프트웨어 공학

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

4
다운 스트림 및 업스트림 서비스는 어떤 방법입니까?
서로를 호출하는 여러 서비스 (예 : 프론트 엔드-> 백엔드-> 스토리지)로 구성된 시스템의 경우 "다운 ​​스트림"또는 "업스트림"서비스와 같은 용어를 사용하는 사람들이 종종 들었습니다. 이것이 어떤 방향인지는 확실하지 않습니다. 데이터는 양방향으로 흐릅니다. 요청은 더 많은 사용자 대면에서 더 많은 백엔드 서비스로 흐르지 만 응답은 반대 방향으로 흐르므로 어느 쪽이든 논쟁의 여지가 있습니다.

8
OOP 이전에는 데이터 구조 멤버가 공개 상태로 유지 되었습니까?
데이터 구조 (예 : 큐)가 OOP 언어를 사용하여 구현되는 경우 데이터 구조의 일부 멤버는 개인용 (예 : 큐의 항목 수)이어야합니다. 대기열은에서 struct작동 하는 및 함수 집합을 사용하여 절차 언어로 구현할 수도 있습니다 struct. 그러나 절차 적 언어에서는 struct개인 회원을 만들 수 없습니다 . 절차 적 언어로 구현 된 데이터 구조의 …

7
헤더 지옥을 어떻게 방지 할 수 있습니까?
우리는 처음부터 새로운 프로젝트를 시작하고 있습니다. 각각 4 개 또는 5 개의 소스 파일이있는 약 8 개의 개발자, 12 개 정도의 서브 시스템. "헤더 지옥", 일명 "스파게티 헤더"를 방지하기 위해 무엇을 할 수 있습니까? 소스 파일 당 하나의 헤더? 서브 시스템 당 하나 더하기? 함수 프로토 타입에서 typdef, stucts 및 …
44 c++  headers  include 

4
예외 전파 : 언제 예외를 포착해야합니까?
MethodA는 MethodB를 호출하여 MethodC를 호출합니다. MethodB 또는 MethodC에는 예외 처리가 없습니다. 그러나 MethodA에는 예외 처리가 있습니다. MethodC에서는 예외가 발생합니다. 이제 예외는 MethodA까지 버블 링되어 적절하게 처리됩니다. 이것에 무슨 문제가 있습니까? 내 마음에, 어떤 시점에서 호출자는 MethodB 또는 MethodC를 실행할 것이고, 그 메소드에서 예외가 발생하면 해당 메소드 내에서 예외를 처리하여 얻을 …

2
역할 및 권한 기반 액세스 제어
액세스 제어 (권한 부여)와 관련하여 역할과 권한의 본질적인 상충 관계를 이해하려고합니다. 시스템에서 Permission 은 세분화 된 액세스 단위 ( " 리소스 X 편집 ", " 대시 보드 페이지 액세스 "등)가됩니다. 역할 1+ 권한의 집합이 될 것입니다. 사용자 1+ 역할을 할 수 있습니다. 이러한 모든 관계 (사용자, 역할, 권한)는 모두 데이터베이스에 …

3
하위 클래스와 하위 유형의 차이점은 무엇입니까?
Liskov 대체 원리에 대한 이 질문 에 대한 최고 등급의 답변 은 하위 유형 과 하위 클래스 라는 용어를 구별하기 위해 고통을받습니다 . 또한 일부 언어는 두 언어를 혼동하는 반면 다른 언어는 그렇지 않다는 점을 지적합니다. 내가 가장 친숙한 객체 지향 언어 (Python, C ++)에서 "유형"과 "클래스"는 동의어 개념입니다. C …

9
각 열에 대해 사전 정의 된 데이터 유형을 설정하여 관계형 데이터베이스는 무엇을 얻습니까?
나는 지금 SQL 데이터베이스를 사용하고 있는데, 이것이 항상 호기심을 불러 일으켰지 만 Google 검색은 많이 나오지 않습니다. 왜 엄격한 데이터 유형입니까? 이진 데이터와 일반 텍스트 데이터를 구별하는 방법과 같이 몇 가지 다른 데이터 유형을 갖는 이유를 이해 합니다 . 1과 0의 이진 데이터를 일반 텍스트로 저장하는 대신 이진 데이터를 자체 …

4
C #에서 구조체와 클래스가 별도의 개념 인 이유는 무엇입니까?
C #으로 프로그래밍하는 동안 나는 이해할 수없는 이상한 언어 디자인 결정을 발견했습니다. 따라서 C # (및 CLR)에는 struct(스택에 저장된 값 유형, 상속 없음) 및 class(힙에 저장된 참조 유형 유형)의 두 가지 집계 데이터 유형이 있습니다 . 이 설정은 처음에는 훌륭하게 들리지만 집계 유형의 매개 변수를 사용하는 메소드를 우연히 발견하고 실제로 …

2
왜 일부 언어는 가장 가까운 EVEN 정수로 반올림합니까?
Scheme (R5RS) 및 Python ( 이 Question 참조 )과 같은 프로그래밍 언어 는 값이 주변 정수 사이에 정확히있을 때 가장 가까운 짝수로 반올림합니다. 이것에 대한 추론은 무엇입니까? 다음 계산을 쉽게 추론 할 수있는 수학적 아이디어가 있습니까? (R5RS는 IEEE 부동 소수점 표준을이 동작의 소스로 참조합니다.)


7
시스템을 100 % 데이터로 구동 할 수 있습니까?
저의 새로운 상사는 수년간이 프로젝트를 진행해 왔습니다. 나는 단지 몇 주 동안 여기에 있었지만 그것이 가능한지 확실하지 않습니다. "100 % 데이터 기반"시스템을 설계하려고합니다. 따라서 충분한 데이터를 입력하면 모든 응용 프로그램을 정의하고 생성 할 수 있습니다. 나는 적어도 그와 같이 사용자 또는 일부 앱이 미리 정의 된 값을 가져야한다고 인정했지만 시스템 …

11
오류 변수는 안티 패턴 또는 좋은 디자인입니까?
실행을 중단해서는 안되는 몇 가지 가능한 오류를 처리하기 위해 error클라이언트가 확인하고 예외를 throw하는 데 사용할 수 있는 변수가 있습니다. 안티 패턴입니까? 이것을 처리하는 더 좋은 방법이 있습니까? 이에 대한 예제는 PHP의 mysqli API를 볼 수 있습니다 . 가시성 문제 (접근 자, 공용 및 개인 범위, 클래스 또는 전역 변수)가 올바르게 …


11
도메인이 풍부한 애플리케이션에서보고 및 대시 보드의 데이터 검색을위한 모범 사례 또는 디자인 패턴
첫째, 이것이 무시 된 질문 / 영역 인 것처럼 말하고 싶습니다.이 질문을 개선 해야하는 경우이 질문을 다른 사람들에게 도움이 될 수있는 훌륭한 질문으로 만드십시오! 나는 시도 할 아이디어뿐만 아니라이 문제를 해결하는 솔루션을 구현 한 사람들의 조언과 도움을 찾고 있습니다. 필자의 경험에는 응용 프로그램의 두 가지 측면이 있습니다. "작업"측면은 주로 도메인 …

10
고급 언어 기반 OS가없는 이유는 무엇입니까? 저수준 언어가 더 효율적입니까?
뻔뻔스럽지 않게, 나는 당신이 이것의 가능성을 고려하고 싶습니다. 오늘날 대부분의 OS는 저수준 언어 (주로 C / C ++)를 기반으로합니다. Android와 같은 새로운 언어조차 JNI를 사용하고 기본 구현은 C로되어 있습니다. 실제로 (개인 관찰) C로 작성된 많은 프로그램이 높은 수준의 프로그램보다 훨씬 빠르게 실행됩니다 (예 : 전송 (Ubuntu의 bittorrent 클라이언트)는 Vuze (Java) …

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