소프트웨어 공학

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

1
리팩토링은 GitFlow 지점 이름 지정 모델에서 어디에 속합니까?
최근 비트 버킷으로 구현 된 GitFlow 모델 작업을 시작했습니다. 그리고 나에게 완전히 분명하지 않은 것이 있습니다. 리팩토링 작업을 백 로그, 계획 및 구현하여 기술 부채를 정기적으로 해결하려고합니다. 이러한 리팩토링 브랜치는에 병합 된 풀 요청으로 끝납니다 develop. 내 질문은 리팩토링 브랜치가 GitFlow에서 어디에 속합니까 ? feature접두사를 사용 하는 것이 가장 논리적으로 …


2
원래 통역사와 독립적으로 "부트 스트랩"통역사를 만들 수 있습니까?
Wikipedia 에 따르면 컴파일러 작성과 관련하여 "부트 스트래핑"이라는 용어는 다음을 의미합니다 . 컴퓨터 과학에서 부트 스트랩은 컴파일하려는 소스 프로그래밍 언어로 컴파일러 (또는 어셈블러)를 작성하는 프로세스입니다. 이 기술을 적용하면 자체 호스팅 컴파일러가 생성됩니다. 그리고 그것이 어떻게 작동하는지 이해할 수 있습니다. 그러나 그 이야기는 통역사들에게는 약간 다르게 보입니다. 물론, 자체 호스팅 인터프리터를 …

3
C # 에서이 명백한 자체 참조의 목적은 무엇입니까?
내 프로젝트 중 하나에서 사용하기 위해 Piranha ( http://piranhacms.org/ ) 라는 오픈 소스 CMS를 평가하고 있습니다. 나는 적어도 나에게 다음 코드가 흥미롭고 약간 혼란 스럽다는 것을 알았다. 클래스가 같은 유형의 기본에서 상속받는 이유를 이해하는 데 도움이 될 수 있습니까? public abstract class BasePage<T> : Page<T> where T : BasePage<T> { …
21 c#  architecture  .net  cms 

6
코드를 주석 처리 한 다음 점진적으로 제거하여 이미 수행 한 작업과 수행 할 작업을 추적하는 것이 왜 잘못 되었습니까?
코드가 잘못되었거나 다른 이유로 인해 필요한 주요 아키텍처 변경 사항에 맞게 조정되어야하므로 코드의 많은 부분을 변경해야 할 때마다 이것이 일반적으로 수행하는 작업입니다. 변경해야 할 것으로 의심되는 모든 코드를 주석 처리합니다. 주석 처리 된 코드를 일종의 TODO 목록으로 취급합니다. 주석 처리 된 코드를 검토 하고이 코드의 주석 처리를 제거하거나 다른 곳에서 …

4
C #에서 추상 클래스를 정의로 사용
C ++ 개발자는 C ++ 헤더 파일에 익숙하며 코드 내에 일종의 "문서화"를하는 것이 유리합니다. 나는 보통 그 때문에 C # 코드를 읽어야 할 때 나쁜 시간을 보낸다. 내가 작업하는 클래스에 대한 그런 정신지도가 없다. 소프트웨어 엔지니어로서 프로그램의 프레임 워크를 설계한다고 가정 해 봅시다. C ++ 헤더로하는 것과 비슷하게 모든 클래스를 …

4
C # 7에서 "Try"메소드를 작성하는 가장 우아한 방법은 무엇입니까?
TryDequeue다양한 .NET TryParse메소드 와 유사한 패턴을 사용 하는 메소드 가있는 큐 구현 유형을 작성 중입니다. 여기서 조치가 성공하면 부울 값 out을 리턴하고 매개 변수를 사용 하여 실제 큐에 넣은 값을 리턴하십시오. public bool TryDequeue(out Message message) => _innerQueue.TryDequeue(out message); 이제 out가능할 때마다 매개 변수 를 피하고 싶습니다 . C # …
21 c# 

5
목록 테스트… 각 조건에 대해 동일한 테스트 또는 하나의 테스트에 모두 있습니까?
함수가 목록에서 예상 한 작업을 수행하는지 테스트하고 있습니다. 테스트하고 싶습니다 f(null) -> null f(empty) -> empty f(list with one element) -> list with one element f(list with 2+ elements) -> list with the same number of elements, doing what expected 그렇게하기 위해 가장 좋은 방법은 무엇입니까? "WorksAsExpected"라는 이름으로 동일한 (방법) …
21 unit-testing  tdd 

3
백엔드와 프론트 엔드 웹 애플리케이션을 완전히 분리하여 (JSON) REST API와 통신 할 수 있도록하는 것이 정상적인 설계입니까?
새로운 비즈니스 웹 응용 프로그램을 만들고 있는데 다음을 달성하고 싶습니다. 각 영역에서 최고의 기술을 사용하십시오. 견고한 ORM을 갖춘 안정적인 백엔드 프레임 워크를 원합니다. 그리고 프론트 엔드 애플리케이션에 최신 HTML 및 자바 스크립트 기능을 사용하는 최신 SPA (단일 페이지 애플리케이션) 프레임 워크를 원합니다. 웹 애플리케이션, 모바일 (Android) 및 기타 유형 (스마트 …

5
구현을 작성한 후 테스트에서 실수를 수정하는 방법
로직을 올바르게 구현 한 후에도 테스트에 여전히 실패한 경우 (테스트에 실수가 있기 때문에) TDD에서 가장 좋은 조치는 무엇입니까? 예를 들어, 다음 기능을 개발하려고한다고 가정하십시오. int add(int a, int b) { return a + b; } 다음 단계에서 개발한다고 가정하십시오. 쓰기 테스트 (아직 기능 없음) : // test1 Assert.assertEquals(5, add(2, 3)); …
21 tdd  mistakes 

5
사소한 조건문이 루프의 초기화 섹션으로 이동해야합니까?
stackoverflow.com 의이 질문 에서이 아이디어를 얻었습니다. 다음과 같은 패턴이 일반적입니다. final x = 10;//whatever constant value for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) { //...do something } 내가 만들려고하는 요점은 조건문이 복잡하고 변경되지 않는다는 것입니다. 루프의 초기화 섹션에서 선언하는 것이 더 낫습니까? final x = 10;//whatever constant …

3
C ++ 클래스 생성자에서 실패 사례를 처리하는 방법은 무엇입니까?
생성자가 일부 작업을 수행하는 CPP 클래스가 있습니다. 이러한 작업 중 일부가 실패 할 수 있습니다. 생성자가 아무것도 반환하지 않는다는 것을 알고 있습니다. 내 질문은 생성자에서 멤버를 초기화하는 것 외에 다른 작업을 수행 할 수 있습니까? 생성자에서 일부 작업이 실패했음을 호출 함수에 알릴 수 있습니까? new ClassName()생성자에서 오류가 발생하면 NULL 을 …

2
큰 바이너리 파일을 포함하는 git repo 최적화
우리 프로젝트는 약 11GB이며 그중 10 개는 이진 데이터 (.png 이미지)입니다. 결과적으로 a git diff또는 git status작업이 1 분 이상 소요됩니다. 다행히 모든 데이터 파일은 멋진 이름을 가진 폴더로 분리됩니다 data. "이진 파일에 대한 압축, 확산 및 기타 비용이 많이 드는 작업은 피하십시오." 프로젝트를 두 개의 저장소로 나누는 것이 고려되었습니다. …
21 git  binary 

3
렉서가 파서에 반환하는 토큰의 데이터 유형은 무엇입니까?
제목에서 말했듯이, 어휘 분석기는 어떤 데이터 타입을 파서에 반환 / 주어야합니까? Wikipedia 의 어휘 분석 기사를 읽을 때 다음과 같이 진술했습니다. 컴퓨터 과학에서 어휘 분석은 일련의 문자 (예 : 컴퓨터 프로그램 또는 웹 페이지)를 일련의 토큰 ( 식별 된 "의미"가있는 문자열 )으로 변환하는 프로세스입니다 . 그러나 위의 진술과 완전히 모순되어 …
21 data-types  lexer  flex 

4
의존성 주입을 위해 특별히 설계된 프로그래밍 언어가 있습니까?
많은 일반 프로그래밍 언어는 의존성 주입을 지원할 수있을 정도로 유연합니다. 라이브러리 또는 프레임 워크 지원이 없어도. 그러나 언어가 프로그래밍 문제를 해결하기에 충분할 정도로 튜링 (Turing)이라하더라도 언어는 쉽고 쉬운 것에 영향을주는 선택을합니다. 의존성 주입을 쉽게하고 반대로 숨겨진 의존성을 만들기 위해 특별히 고안된 언어가 있습니까? 설명: Java를 보는 일부 언어의 제한으로 인해 …

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