소프트웨어 공학

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

3
분산 데이터 관리-데이터베이스를 마이크로 서비스로 캡슐화 [닫기]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 최근에 소프트웨어 디자인에 대한 과정을 밟았으며 서비스 구성 요소가 가능한 한 독립적 인 마이크로 서비스 하위 구성 …

8
어떤 시점에서 루프 내에 루프를 갖는 것이 금기입니까?
그냥 궁금해서 Linus Torvalds 에서 이것을 읽은 후 for 루프 내에서 for 루프가 가장 많이 사용되었습니다 . 탭은 8 자이므로 들여 쓰기도 8 자입니다. 들여 쓰기를 4 자 (또는 2 자)까지 만들려고하는 이단 운동이 있으며, PI의 값을 3으로 정의하려고하는 것과 비슷합니다. 이론적 근거 : 들여 쓰기의 기본 개념은 제어 블록이 …

4
생성자의 합법적 인 "실제 작업"?
디자인 작업을하고 있지만 계속 장애물을 치고 있습니다. XML 스키마를 구문 분석하여 생성 한 복잡한 노드 트리의 소유자 인 DOM (특정 클래스) 인 특정 클래스 (ModelDef)가 있습니다. 좋은 설계 원칙 (SOLID)을 따르고 결과 시스템을 쉽게 테스트 할 수 있는지 확인하고 싶습니다. DI를 사용하여 종속성을 ModelDef의 생성자로 전달하려는 모든 의도가 있습니다 (필요한 …

2
DDD 집계의 직렬화 우수 사례
DDD에 따르면 도메인 로직은 직렬화, 객체 관계형 매핑 등과 같은 기술적 문제로 오염되어서는 안됩니다. 그렇다면 게터와 세터를 통해 공개적으로 노출시키지 않고 어떻게 집계 상태를 직렬화하거나 매핑합니까? 예를 들어 리포지토리 구현에 대한 많은 예를 보았지만 실제로는 모두 엔터티에 대한 공용 접근 자와 매핑을위한 값 개체에 의존했습니다. 공개 접근자를 피하기 위해 리플렉션을 …

2
온라인 기능이있는 단위 테스트 클래스
온라인 기능이 필요한 개인 기능이있는 클래스의 기능을 단위 테스트 할 때. 그것을 테스트하는 방법은 무엇입니까? 예를 들면 다음과 같습니다. public class Foo { public int methodA() { int val = goOnlineToGetVal(); return val; } private int goOnlineToGetVal() { CloudService c = new CloudService(); int oval = c.getValueFromService(); return oval; } …

7
프로토 타이핑을 위해 GPL 라이브러리를 임시로 사용하고 향후 코드를 비공개로 만들 수 있습니까?
소프트웨어 시스템의 프로토 타입을 개발 중이며 적어도 시작 시점에 비공개 소스가 될 것입니다. 시간을 절약하기 위해 GPLv3 에 따라 라이센스가 부여 된 라이브러리를 사용 (정적으로 링크)하려고 하므로 디자인을 빠르게 테스트 할 수 있습니다. 이 단계에서 소프트웨어를 배포 한 경우 소스 코드도 함께 배포해야합니다. 그렇지 않은 경우 시스템이 작동한다는 사실을 스스로 …

3
서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까?
dao, 서비스 및 컨트롤러의 세 가지 계층 Spring 웹 앱이 있습니다. 컨트롤러는 dao를 직접 호출하지 않으며 서비스 계층을 통해 수행합니다. 현재 대부분의 경우 처리되지 않은 dao 예외 (런타임)가 있으면 최종 사용자에게 오류 메시지를 표시하는 JSP에 의해 포착됩니다. 서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까? try { daoInstance.someDaoMethod(); } …

4
많은 오리 유형 동적 프로그래밍 언어가 프로토 타입 기반 OOP 대신 클래스 기반 접근 방식을 사용하는 이유는 무엇입니까?
많은 동적 프로그래밍 언어가 오리 타이핑 기능을 가지고 있기 때문에 언제라도 루비 나 파이썬 과 같은 클래스 나 인스턴스 메소드를 열고 수정할 수 있습니다 . 질문 1) 역동적 인 언어로 수업이 필요합니까? 왜 언어가 클래스를 프로토 타입 방식 대신 일종의 "템플릿"으로 사용하고 객체 만 사용하도록 설계 되었습니까? 또한 JavaScript 는 …

6
TDD에서 먼저 테스트 나 인터페이스를 먼저 써야합니까?
내가 아는 한 나는까지, C #을 사용 TDD를 배우고 시험을 개발 운전해야 하고, 먼저 쓰기를 실패하는 테스트 기입 후 최소한의 다음 리팩토링 않는 테스트를 통과하는 코드를. 그러나 " 구현이 아닌 인터페이스에 대한 프로그램 "이라고 말하면 먼저 인터페이스를 작성하십시오 . 이것은 혼란이 시작되는 곳입니다. 인터페이스를 먼저 작성하면 두 가지를 위반하는 것입니다. …
23 c#  unit-testing  tdd 

6
멀티 스레딩 : 내가 잘못하고 있습니까?
음악을 재생하는 응용 프로그램을 만들고 있습니다. 재생 중에는 종종 스레드가 동시에 발생해야하기 때문에 별도의 스레드에서 발생해야합니다. 호출이 :. 예를 들어, 각자가 연주하는 자신의 스레드를 할당하도록 코드가 필요의 노트 (편집 명확히하기 위해 함께들을 수 note.play()메모가 완료 재생 될 때까지 스레드를 정지, 나는 세 가지 필요한 이유입니다 세 개의 음이 동시에 들리도록 …

7
스크럼에서 임의로 리팩토링 코드가 허용됩니까?
배경 우리 팀은 스크럼을 사용합니다 현재 할당 된 작업이 없습니다 백 로그에 더 이상 보류중인 작업이 없습니다. 오늘은 내 고객을위한 노동절 입니다. 오늘해야 할 일이 많지 않아서 현재 작업중인 프로젝트에서 계속보고있는 일부 코드를 리팩토링하기를 원했지만 현재 대규모 리팩토링을 수행하는 스프린트 작업에 할당되지 않았습니다. 내가 항상 귀찮게하지만 작성하지 않은 코드를 무작위로 …

2
내부 사용 웹 사이트 : SQLite에 대한 강력한 사례가 있습니까?
Flask 또는 Django 와 같은 많은 웹 프레임 워크 는 SQLite 를 기본 데이터베이스로 사용 합니다. 파이썬에 포함되어 있기 때문에 SQLite 는 매력적이며 관리 오버 헤드는 매우 낮습니다. 그러나 트래픽이 많은 공개 프로덕션 사이트는 mySQL, Oracle 또는 postgresql과 같은 더 무거운 데이터베이스를 사용합니다. 질문 : 취하다: 사이트 트래픽이 적당하며 데이터베이스에 …

4
이 간단한 XOR 암호화 통신은 절대적으로 안전합니까?
Alice와 Peter가 각각 4GB USB 플래시 메모리 스틱을 가지고 있다고 가정하십시오. 그들은 무작위로 생성 된 비트를 포함하는 alice_to_peter.key(2GB)와 peter_to_alice.key(2GB) 라는 두 파일을 모두 스틱에 저장하고 저장합니다 . 다시는 만나지 않지만 전자적으로 의사 소통합니다. 또한 Alice는이라는 변수를 유지 alice_pointer하고 Peter는이라는 변수를 유지 peter_pointer하며 둘 다 초기에 0으로 설정됩니다. Alice는 Peter에게 메시지를 …

2
데이터 검증을위한 디자인 패턴
이 문제에 가장 적합한 디자인 패턴은 무엇입니까? 개체 A가 있습니다. 사용자 요청에 따라 데이터베이스에서 개체 A를 등록하거나 삭제할 수 있습니다. 객체의 등록 또는 삭제 전에 데이터 유효성 검사가 수행됩니다. 객체를 등록하기 전에 확인해야 할 규칙 세트와 삭제를위한 다른 규칙 세트가 있습니다. 이러한 규칙 중 일부는 두 작업 모두에 공통입니다. 지금까지 …

4
npm의 선택적 종속성?
나는 이것 과 비슷한 질문을 가지고 있지만 똑같지는 않습니다. 내 앱 사용자가 사용하려는 방식에 필요한 모든 종속성으로 앱을 설치하고 싶습니다. 예를 들어 MongoDB에 유지하려는 경우 Mongo 관련 라이브러리 만 설치되지만 Redis에 유지하려는 경우 Redis 관련 라이브러리 만 설치됩니다. 사용하지 않을 라이브러리를 다운로드하여 설치하고 싶지 않습니다. 나는 개발 목적으로 그것을 할 …

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