소프트웨어 공학

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

1
Free monad와 Reactive Extensions는 어떤 관련이 있습니까?
나는 LINQ가 Rx.NET으로 발전한 C # 배경에서 왔지만 항상 FP에 관심이있었습니다. F #에서 모나드와 사이드 프로젝트에 대한 소개를 한 후 다음 단계로 넘어갈 준비가되었습니다. 이제 스칼라 사람들의 무료 모나드에 대한 몇 가지 대화와 Haskell 또는 F #에서 여러 번의 글을 읽은 후, 이해력이있는 문법이 IObservable체인 과 매우 유사하다는 것을 알았습니다 …

3
구형 OS 개발 지원
C로 작성된 레거시 코드의 많은 부분을 유지 관리하고 있습니다.이 코드는 처음에 Windows 3 for Workgroups에 대해 컴파일되도록 작성되었으며 나중에 NT 버전이 만들어졌습니다. 이 레거시 응용 프로그램은 오늘날에도 여전히 사용되고 있으며 90 년대 초반부터 3.11 및 NT 워크 스테이션에서 실행됩니다. 그것은 작동하고 그것이해야 할 일을하고 여전히 그들이 살아가는 이유는 솔루션에 속하는 …
14 c  windows  legacy 

4
필요할 때 솔루션에 도달하는 방법에 대한 설명을 출력하는 알고리즘 패턴
다음 시나리오는 여러 번 발생했습니다. 특정 문제를 해결하는 알고리즘을 프로그래밍했습니다. 제대로 작동하고 올바른 솔루션을 찾습니다. 이제 알고리즘에 "솔루션을 얻는 방법에 대한 자세한 설명을 작성하십시오"라고 알리는 옵션이 필요합니다. 내 목표는 온라인 데모, 자습서 클래스 등에서 알고리즘을 사용할 수 있도록하는 것입니다. 설명 없이도 실시간으로 알고리즘을 실행할 수있는 옵션이 필요합니다. 좋은 디자인 패턴은 …

4
수업에 대한 단일 책임 패턴은 얼마나 구체적이어야합니까?
예를 들어, 콘솔 게임 프로그램에 콘솔에 대한 모든 종류의 입력 / 출력 방법이 있다고 가정하십시오. 하나에 모두 유지하는 스마트겠습니까 inputOutput클래스 또는 같은보다 구체적인 클래스로 분해 startMenuIO, inGameIO, playerIO, gameBoardIO, 각 클래스 1-5 방법에 대해이 등 있도록? 같은 메모에서 그것들을 분류하는 것이 낫다면 IO네임 스페이스 에 배치하는 것이 현명 할 것입니다 …

4
GitHub에서 "다시 시작"하는 방법?
다른 프레임 워크 등을 사용하여 프로젝트를 완전히 다시 작성하려고합니다. 히스토리를 포함한 이전 코드를 참조 용으로 유지하는 것이 좋습니다. 위험, 혼란 및 놀라움을 피하기 위해 가장 좋은 방법은 무엇입니까? 내 생각은 새 분기를 만들고 모든 것을 바꾸고 기본 "새"버전을 실행하고 마지막 "이전"마스터에 태그를 지정한 다음 분기를 마스터에 병합하는 것입니다. 이것이 합리적으로 …
14 git  github 

3
라이브러리 소스를 링크하는 대신 라이브러리 소스를 추가해야합니까?
저는 C ++을 처음 접하므로 작은 종속성 (예 : 스크립팅 언어 또는 JSON / YAML / XML 파서)을 어떻게 가장 잘 처리해야하는지 잘 모르겠습니다. 별도의 프로젝트를 만들어 정적 라이브러리로 연결해야합니까, 아니면 .h / .cpp 파일을 기본 프로젝트에 넣는 단점이 있습니까? 후자는 호환되지 않는 라이브러리 (라이브러리를 빌드 할 때 다른 컴파일러 …
14 c++  linking 

4
Monads는 어떤 프로그래밍 문제를 해결합니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 삼년 전에 . 나는 모나드가 무엇인지, 어떻게 unit그리고 bind작동 하는지 설명하는 많은 게시물을 읽었습니다. 부리 토, 상자 등. 몇 주 동안의 …

1
API 클라이언트 및 랩퍼의 단위 테스트
필자는 개발중인 API 클라이언트 라이브러리를 단위 테스트하는 가장 좋은 방법을 찾으려고 노력했습니다. 라이브러리에는 Client기본적으로 API와의 1 : 1 매핑이있는 Wrapper클래스 와 의 맨 위에보다 사용자에게 친숙한 인터페이스를 제공 하는 추가 클래스가 Client있습니다. Wrapper --> Client --> External API 내가 먼저 모두에 대해 테스트의 무리를 작성 Client하고 Wrapper효과적으로 단지 그들이 앞으로가에서 …

2
다운 타임 제로 구축-전환 Db 스키마
다운 타임 제로 구축 달성 에도 동일한 문제가 있었지만 고려중인 전략에 대한 조언이 필요합니다. 문맥 서버 측 처리를위한 Apache / PHP 및 지속성을위한 MySQL DB / 파일 시스템을 갖춘 웹 기반 애플리케이션. 우리는 현재 인프라를 구축하고 있습니다. 모든 네트워킹 하드웨어에는 중복성이 있으며 모든 기본 네트워크 케이블은 내결함성을 위해 본드 쌍으로 …

5
객체 지향 C를 작성하는 것이 좋지 않습니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 나는 항상 객체 지향적 인 코드를 C로 작성하는 것처럼 보이므로 소스 파일이나 구조체를 만들 것이라고 말한 다음이 …
14 c 

1
유비쿼터스 언어를 문서화하는 방법?
우리 회사는 많은 수동 비즈니스 프로세스 (및 관련 기관 지식)를 새로운 엔터프라이즈 소프트웨어로 변환하고 있습니다. 프로젝트는 잘 진행되고 있지만, 진행하면서 비즈니스와 개발 측면에서 용어와 정의에 대해 많은 혼란이 있음이 분명합니다. 나는 유비쿼터스 언어를 형성하는 것에 대한 Evan의 주장을 알고 있었지만, 공식적으로 문서화하는 것이 처음이었습니다. UL 용어를 어디에 / 어떻게 문서화해야하는지 …

4
고객이 사내 QA 테스트를 수행하도록 권장하는 방법은 무엇입니까?
업데이트 / 설명 내 고객 은 사내 테스트의 필요성을 이해하고 있으며 항상 "더 나은"일을한다고 맹세하지만 실제로는 그렇지 않습니다. 외부 테스트를위한 예산이 없습니다. "초기 테스트, 자주 테스트, 대상 머신의 테스트"에 무엇을 주입 할 수 있는지에 대해 묻고있는 것 같습니다 (모호하게도 인정합니다)? 질문 : 프로덕션 프로젝트에서 "테스트 할 때가 아니라"새로운 릴리스와 관련된 …

3
각 환경에있는 코드 버전을 어떻게 추적 할 수 있습니까?
우리 팀은 현재 다음과 같은 상당히 간단한 분기 / 배치 프로세스를 사용합니다. ┌────────┐ ┌────┐ ┌──────┐ Environments: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Builds: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ …

3
애플리케이션에서 정적 로깅 메소드를 사용하는 대신 로거 오브젝트를 작성하는 이유는 무엇입니까?
간단한 Ruby on Rails 애플리케이션의 예를 들어 보자. Logger애플리케이션로드 프로세스 중에 오브젝트를 작성합니다 . # in environment.rb config.logger = Logger.new(<STDOUT | file | whatever>) # and in our application we use this object logger.warn "This process is taking too long to process. Optimization needed." 제 질문은 로깅에 클래스 메소드 (또는 …

5
코드 검토가 전달 / 테스트주기보다 뒤 떨어짐
민첩한 프로세스에는 2 주 스프린트가 있습니다. 작업은 매일 제공되며 (일일 빌드) 테스트 팀은 다음 날 또는 같은 날에 테스트를 완료합니다. 또한 개발자 코드 검토가 있으며 시간이 필요하며 (1-2 시간) 일주일에 3 번, Mon-Weds-Fri로 예약됩니다. 개발자들은 함께 모여 코드를 개선 / 리팩터링하는 방법을 제안합니다. 우리의 문제는 코드 검토 후 작업 항목이 …

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