소프트웨어 공학

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


5
빌드 도구가 기본 프로그래밍 언어와 다른 스크립팅 언어를 사용하는 이유는 무엇입니까?
최근에 대부분의 언어의 기본 빌드 도구 / 시스템이 기본 프로그래밍 언어 자체와 다른 언어를 사용한다는 것을 깨달았을 때 직장에서 Nodejs 프로젝트에 일부 빌드 도구를 사용하고 있습니다. 예를 들어, make 는 스크립트를 작성하기 위해 C 또는 C ++를 사용하지 않으며 Ant (또는 Maven)는 스크립트를위한 언어로 Java를 사용하지 않습니다. Ruby와 같은 최신 …

3
C #에서 부호없는 int를 사용하지 않아야합니까?
최근에 C #에서 부호없는 정수 사용에 대해 생각했습니다 (그리고 다른 "고급 언어"에 대해서는 비슷한 주장이 있다고 생각합니다) 정수가 필요한 경우 일반적으로 정수 크기의 딜레마에 직면하지 않는 경우 Person 클래스의 age 속성을 예로들 수 있습니다 (그러나 질문은 properties로 제한되지 않습니다). 그것을 염두에두고, 내가 알 수있는 한 부호없는 정수 ( "int")에 비해 …

2
Groovy에서 def를 언제 사용해야합니까?
나는 Groovy에서 잠시 동안 개발 해 왔으며 동적 캐스팅을 얼마나 자주 사용 해야하는지 궁금합니다 def. 내 동료는 내가 이해하지 못하는 방식으로 Groovy에 도움을주기 때문에 항상 사용해야한다고 생각합니다. 현재 메소드 반환 유형과 인수를 선언 할 때 어떤 객체를 가져 와서 뱉어 낼 것인지 의도적으로 진술하고 싶습니다 (코드 가독성을 위해 Java 배경에서 …


5
자식으로 이동할 때 큰 svn 기록에 대해 어떻게해야합니까?
편집 : 다중 GB SVN 저장소를 Git 또는 /programming/540535/managing-large-binary-files-with-git 로 이동하는 것과 같은 유사한 질문과 달리 내 시나리오에는 여러 하위 프로젝트가 포함되지 않습니다. git submoduels 또는 git-annex에 적합한 매우 큰 바이너리 파일로 쉽게 변환 할 수 있습니다. 바이너리가 테스트 스위트 인 단일 리포지토리이며, 그래픽과 같은 컴파일 타임 자산과 마찬가지로 동일한 …
23 git  svn 

2
루프 (while / for)를 재귀로 또는 재귀에서 루프로 변환하는 일반적인 방법은 무엇입니까?
이 문제는 주로 알고리즘에 초점을 맞추고 있습니다. 이 예는 생각을 제공하고 있습니다. 일반적인 방법을 원합니다. 따라서 예는 단지 당신의 생각에 대해 더 명확하게하기 위해 사용됩니다. 일반적으로 루프는 재귀로 변환 될 수 있습니다. 예 : for(int i=1;i<=100;++i){sum+=i;} 관련 재귀는 다음과 같습니다. int GetTotal(int number) { if (number==1) return 1; //The end …

2
명명 규칙 : 최종 필드 (정적 아님)
오늘 저는 finalJava 클래스 의 필드 이름 지정에 대해 동료와 토론했습니다 . 그의 opionion final필드에서도 인스턴스 생성 후에는 값이 변경되지 않으므로 상수로 간주해야합니다. 이로 인해 다음과 같은 final필드 명명 규칙이 적용 됩니다. public class Foo { private static final String BLA_BLA = "bla"; private final String BAR_BATZ; ... } 필자의 …
23 java  naming  final 

2
REST API에서 컬렉션에 기존 항목을 추가하는 가장 좋은 패턴은 무엇입니까?
실용적인 REST API를 디자인하고 있으며 기존 엔터티를 컬렉션에 추가하는 가장 좋은 방법을 고집했습니다. 내 도메인 모델에는 사이트 모음이있는 프로젝트가 포함되어 있습니다. 이것은 엄밀한 다 대다 관계이며 관계를 명시 적으로 모델링하는 엔티티 (예 : ProjectSite)를 만들 필요가 없습니다. 내 API를 통해 소비자는 기존 사이트를 프로젝트에 추가 할 수 있습니다. 내가 끊어지고있는 …
23 rest  api-design 

5
Java / Java EE에서와 유사한 복잡성을 관리하면서 다른 인기있는 언어가 팩토리 패턴을 사용하지 않아도되는 방법은 무엇입니까?
팩토리 패턴 (또는 적어도의 사용 FactoryFactory..)은 here 과 같은 많은 농담의 엉덩이입니다 . RequestProcessorFactoryFactory.RequestProcessorFactory 와 같이 상세하고 "창의적인"이름을 갖는 것 외에도 Java / C ++로 프로그래밍해야하고 Abstract_factory_pattern 의 사용 사례가 있다면 팩토리 패턴에 근본적으로 잘못된 것이 있습니까? 다른 유명한 언어 (예 : Ruby 또는 Scala )가 유사한 복잡성을 관리하면서 언어 …

7
C 및 C ++에서 부호없는 정수 사용
나는 오랫동안 나를 방해하는 매우 간단한 질문이 있습니다. 나는 네트워크와 데이터베이스를 다루고 있으므로 처리중인 많은 데이터는 32 비트 및 64 비트 카운터 (서명되지 않음), 32 비트 및 64 비트 식별 ID (서명에 대한 의미있는 매핑이 없음)입니다. 나는 실제로 음수로 표현 될 수있는 실제 단어 문제를 다루지 않습니다. 나와 내 동료들은 …
23 c  coding-style 

3
복사 명령이 보통 MOV라는 이유는 무엇입니까?
많은 어셈블러에서 값 복사 명령어는 일반적으로 "MOV"로 이름 지정되며 매뉴얼에 설명에는 일반적으로 "move"도 포함됩니다 (그러나 "load", "store", "extract"등과 같은 다른 단어를 사용할 수 있음). 이 규칙을 따르지 않는 ISA 를 찾는 것은 드문 일 입니다. 반면에 다른 상황에서 "move"는 소스가 파괴된다는 점에서 "copy"와 다릅니다 (예 : Unix의 "mv"대 "cp", Norton …
23 history  assembly 

5
버전 번호는 언제 증가시켜야합니까?
나는 학교에서 프로그래밍을 배우지 못했고 (전문) 개발자로 일하지 않기 때문에 많은 기본 사항이 명확하지 않습니다. 이 질문은 그들 중 하나를 명확히하려고합니다. 이제 내가 문제가 있다고 가정하자 #1, #2및 #3버전에 대한 개선 / 수정되도록 설정되어 내 문제 추적기에서 1.0.0마지막 (안정적) 버전입니다 0.9.0. 언제 버전으로 증분해야 1.0.0합니까? a) 위에 나열된 문제 중 …

5
순전히 기능적인 언어는 모듈성을 어떻게 처리합니까?
나는 객체 지향 배경에서 왔으며 클래스는 클래스를 추상화하여 레이어를 추상화하여 코드를 쉽게 재활용 할 수있게하여 객체를 만들거나 상속하는 데 사용할 수 있다는 것을 알게되었습니다. 예를 들어 동물 클래스를 가질 수 있고 그로부터 고양이와 개를 물려받으며 모두 동일한 특성을 상속받습니다. 그러한 하위 클래스에서 동물의 품종이나 이름을 지정할 수있는 객체를 만들 수 …

5
포맷 및 버전 관리
코드 형식이 중요합니다. 심지어 들여 쓰기 문제 . 그리고 약간의 개선보다 일관성이 중요합니다. 그러나 프로젝트는 일반적으로 1 일부터 명확하고, 완전하며, 검증 가능 하고 시행되는 스타일 가이드 가 없으며 , 주요 개선 사항은 언제든지 도착할 수 있습니다. 어쩌면 당신은 그것을 발견 SELECT id, name, address FROM persons JOIN addresses ON persons.id …

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