소프트웨어 공학

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

3
상태 저장 시스템에 대한 단위 테스트 설계
배경 테스트 주도 개발 은 이미 학교와 업계에서 졸업 한 후 대중화되었습니다. 나는 그것을 배우려고 노력하고 있지만, 몇 가지 중요한 것들이 여전히 나를 피합니다. TDD 지지자들은 다음과 같은 많은 것을 말합니다 (이하 "단일 주장 원칙"또는 SAP 라고 함 ). 한동안 저는 TDD 테스트가 가능한 한 단순하고 표현력 있고 우아 할 …

4
전문 프로그래머가 아닌 사람이 사용하기 쉽고 해석하기 쉬운 코드를 작성하도록 도와줍니다.
휴무 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 저는 엘비스입니다. 아인슈타인이되기 위해 열심히 노력하고 있습니다. 저는 Mort를 위해 일합니다. 이 미친 바보가 무슨 소리 야!?!? …


2
모나드가 상속 계층에 대한 실행 가능한 대안일까요?
먼저 monoid를 설명하는 이와 같은 모나드에 대해 언어에 구애받지 않는 설명 을 사용하겠습니다 . 모노 이드는 파라미터로서 몇 가지 유형을 가지고 동일한 유형을 반환하는 함수의 (대략) 세트이다. 모나드 테이크 함수 (약) 세트이다 래퍼 인자로 타입과 동일한 타입 래퍼를 반환한다. 그것들은 정의가 아니라 설명입니다. 그 설명을 자유롭게 공격하십시오! 따라서 OO 언어에서 …

1
네임 스페이스의 장단점은 PHP에서 포함 / 필요합니까?
최근에 PHP에서 네임 스페이스를 사용하기 시작했습니다. 내가 처음 보았을 때, 나는 그들의 구문이 못 생겼다고 생각했고 결코 사용하지 않았다. 그러나 자동 로더 (spl_autoload_register)를 작성하여 include / require 문을 다시 작성할 필요가 없도록했습니다. 나는 네임 스페이스를 좋아하지만 include / require 문에 비해 객관적인 이점이 있습니까, 아니면 동일한 목표를 달성하기위한 동일한 방법입니까?
20 php  namespace 

4
Java 프로그램의 고급 구조를 문서화하는 방법은 무엇입니까?
배경 : 저의 공동 연구자와 저는 학술지에 기사를 쓰고 있습니다. 연구 과정에서 Java로 시뮬레이션 프로그램을 작성했습니다. 우리는 다른 사람들이 사용할 수있는 시뮬레이션 프로그램을 자유롭게 만들고자합니다. 우리는 GitHub 리포지토리에서 코드를 호스팅하기로 결정했습니다. 다른 사람들이 쉽게 사용할 수 있도록 다음과 같은 프로그램에 대한 훌륭한 문서를 작성하려고합니다. 각 클래스 및 메소드에 대한 Javadoc …

6
점진적 타이핑 : "정적 유형 시스템을 가진 거의 모든 언어에는 동적 유형 시스템이 있습니다"
Aleks Bromfield의 주장 은 다음과 같습니다. 정적 유형 시스템을 가진 거의 모든 언어에는 동적 유형 시스템이 있습니다. C를 제외하고는 예외를 생각할 수 없습니다. 이것이 유효한 주장입니까? 런타임에 리플렉션 또는 로딩 클래스를 사용하면 Java가 약간 비슷하다는 것을 이해하지만 '점진적 타이핑'이라는 아이디어를 많은 언어로 확장 할 수 있습니까?

7
정적 데이터를 데이터베이스 또는 다른 곳에 저장해야합니까?
현재 일부 소프트웨어를 개발 중이며 어떤 경로를 사용 해야할지 잘 모르겠습니다. 모바일 장치의 어딘가에 저장할 데이터가 있습니다. 데이터는 변경되지 않으며 계층 적 관계가 있으며 디스플레이를 채우는 데 사용됩니다. 이 데이터의 양이 합리적입니다. 다음과 같은 옵션이 있습니다. 열거 형 / 객체 세트 XML 파일 임베디드 SQLite 데이터베이스 이 특별한 경우 enums …
20 design 

6
초 고급 언어가 있습니까? [닫은]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Software Engineering Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 역사적으로 HLL은 C, Fortran 또는 Pascal과 같고 VHLL은 Ruby 나 Python과 같습니다. 나는 4GL, 5GL, DSL 및 LOP라는 용어와 익숙하지 않은 사람들은 …

5
"가장 낮은 개발자"로서 기술 부채와 싸우고 있습니까?
회사에서 일하고 있으며 회사를 위해 소프트웨어를 개발한다고 가정 해 봅시다. 당신은 큰 그림이나 어쩌면 약간의 생각이 없습니다. 당신이 가진 것은 이슈 트래킹 시스템을 통해 당신에게 할당 된 작업입니다. 작업이 주어지고 작업을 설명하는 방식으로 작동하게하고 다시 보냅니다. 2 개의 정수를 추가하는 것과 같이 : function add(a,b){return a + b;} 그러나 나중에 …

7
std :: string 매개 변수에 전달 된 0을 가장 잘 보호하는 방법은 무엇입니까?
방금 뭔가 방해가되었다는 것을 깨달았습니다. std::string매개 변수로 a 를 허용하는 메서드를 작성할 때마다 정의되지 않은 동작을 시작했습니다. 예를 들어,이 ... void myMethod(const std::string& s) { /* Do something with s. */ } ... 이렇게 부를 수 있습니다 ... char* s = 0; myMethod(s); ... 그리고 그것을 막기 위해 할 수있는 …
20 c++ 

4
예외는 언제 어떻게 사용해야합니까?
설정 예외를 언제 어떻게 사용하는지 결정하는 데 종종 어려움이 있습니다. 간단한 예를 생각해 봅시다. " http://www.abevigoda.com/ "과 같이 웹 페이지를 긁어 Abe Vigoda가 아직 살아 있는지 확인 한다고 가정 해 봅시다 . 이렇게하려면 페이지를 다운로드하고 "Abe Vigoda"라는 문구가 나타나는 시간을 찾기 만하면됩니다. Abe의 상태가 포함되어 있으므로 첫 번째 모양을 반환합니다. …

4
리포지토리 패턴을 사용하는 경우
최근에 ORM과 함께 저장소 패턴을 사용하는 것이 좋지 않다는 것을 읽었습니다. 내 이해에서 이것은 SQL 데이터베이스에 제공하는 추상화가 너무 누설되어 패턴에 포함되지 않기 때문입니다. 이것에 대해 몇 가지 질문이 있습니다. ORM을 끄려면 어떻게해야합니까? 저장소에 ORM 특정 코드가 없으면 응용 프로그램에 ORM 특정 코드가 있습니다. ORM을 사용하지 않고 데이터 액세스 및 …

5
왜 git commit에 그들이 만든 브랜치의 이름이 포함되지 않습니까?
피처 브랜치를 사용하는 팀에서 git으로 작업 할 때 종종 히스토리의 브랜치 구조를 이해하기가 어렵습니다. 예: 기능 분기 기능 / make-coffee 가 있고 기능 분기 와 병렬로 마스터 에서 버그 수정이 계속 되었다고 가정 해 봅시다 . 역사는 다음과 같습니다. * merge feature/make-coffee |\ | * small bugfix | | * …
20 git  branching 

3
TDD 및 리팩토링의 어려움 (또는 왜 이것이 더 고통 스럽습니까?)
나는 TDD 접근법을 사용하도록 가르치고 싶었고 한동안 작업하고 싶었던 프로젝트를 가지고있었습니다. 그것은 큰 프로젝트가 아니기 때문에 TDD의 좋은 후보가 될 것이라고 생각했습니다. 그러나 뭔가 잘못되었다고 생각합니다. 예를 들어 보겠습니다. 높은 수준에서 내 프로젝트는 프로젝트를보다 쉽게 ​​추적하고 관리 할 수있는 Microsoft OneNote 용 추가 기능입니다. 또한 언젠가는 나만의 맞춤형 스토리지와 백엔드를 …

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