소프트웨어 공학

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

1
Groovy는 Tennent의 통신 원칙을 준수합니까?
다음은 Tennent 's Correspondence Principle에 대한 흥미로운 토론 과 Neal Gafter 의 간략한 설명입니다 . 원칙에 따르면 클로저에 싸인 후 즉시 호출 할 때 표현식이나 명령문은 클로저에 싸인 전에와 동일한 의미를 가져야합니다. 클로저에 코드를 래핑 할 때 의미의 변화는 언어의 결함 일 수 있습니다. 그루비 언어가이 원칙을 따르고 있습니까?

2
objective-c의 메소드 오버 헤드로 인해 '다수의 작은 메소드'설계 방식이 바람직하지 않습니까?
나는 일반적으로 Clean Code의 Bob Martin이 권장하는 작은 방법을 선호 합니다. 또한 메시지 디스패치 작동 방식에 대한 최소한의 아이디어를 가질 수 있도록 Objective-C 내부에 대해 충분히 읽었습니다 ( 범프 시리즈 는 특히 유익합니다). 조기 최적화 문제에도 불구하고 Objective-c가 objc_msgSend로 수행하는 모든 작업이 실질적으로 Objective-C 프로젝트에 '다수의 작은 방법'접근법을 사용할 수 …

5
언제 '새'키워드를 사용해야합니까?
Misko Hevery가 제공 한 단위 테스팅에 대한 Google Tech Talk 프레젠테이션을 보고 new비즈니스 로직 코드에서 키워드를 사용하지 말라고 말했습니다 . 프로그램을 작성했는데 new여기저기서 키워드 를 사용 했지만 데이터를 보유한 객체를 인스턴스화하는 데 주로 사용되었습니다 (즉, 함수 나 메소드가 없었습니다). 프로그램에 새 키워드를 사용할 때 문제가 발생했는지 궁금합니다. 그리고 우리는 그 …

16
디버깅에 더 적은 시간을 소비하는 방법? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 파레토 규칙에 따르면, 프로그래머는 자신의 시간의 20 % 만 실제로 유용한 것들에 소비합니다. 나는 80 %의 시간을 디버깅하면서 …

2
솔리드 스테이트 드라이브의 등장으로 B- 트리 및 기타 데이터 구조가 더 이상 사용되지 않습니까?
오늘날 많은 (아마도?) 데이터베이스 응용 프로그램은 B-Tree 및 변형을 사용하여 데이터를 저장합니다.이 데이터 구조는 하드 디스크의 읽기, 쓰기 및 검색 작업을 최적화하고 이러한 작업은 전반적인 효율성에서 중요한 역할을하기 때문입니다. 데이터베이스). 그러나 SSD (Solid State Drive)가 기존의 하드 디스크 (HDD)를 완전히 대체해야한다면 B- 트리 및 변형이 더 이상 사용되지 않아 직접 …

6
"언제나"해결하기 위해 점점 늘어나는 문제 더미를 어떻게 처리합니까?
우리는 소프트웨어 프로젝트의 문제를 추적하기 위해 JIRA를 사용하고 있습니다. 우리가 알아 차린 한 가지 효과는 종종 새로운 문제를 만들지 만 문제가 해결 될시기가 언제인지는 아직 알 수 없다는 것입니다. 그래서 우리는 그러한 이슈가 할당 된 가짜 '먼 미래'이정표를 발명했습니다. 이와 같이이 이정표에 할당 된 문제는 계속 증가하고 있으므로 이것이 좋은 …

5
순열이 많은 항목에 대해 TDD를 수행하는 방법은 무엇입니까?
AI와 같은 시스템을 만들 때 매우 다양한 경로를 매우 빠르게 사용할 수 있거나 실제로 여러 입력이있는 알고리즘을 사용할 경우 가능한 결과 집합에 많은 수의 순열이 포함될 수 있습니다. 많은 수의 다양한 순열 결과를 출력하는 시스템을 만들 때 TDD를 사용하려면 어떤 방법을 사용해야합니까?

2
가명을 통해 귀속이 이루어지면 누가 코드에 대한 권리를 소유합니까? [닫은]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Software Engineering Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 나는 코더가 실명 대신 가명을 사용하는 가명을 알고 있습니다. 예를 들면 다음과 같습니다. 나카 모토 사토시 (비트 코인) 왜 (루비) 내가 …

6
인터페이스 메소드를 추상 메소드로 고려할 수 있습니까?
나는 그것에 대해 생각하고 있었고, 의심이 있었다. 예를 들어 인터페이스를 선언하면 public interface MyInterface { public void method1(); public void method2(); } 이러한 인터페이스 방법을 추상적 인 것으로 간주 할 수 있습니까? 내 말은 추상적 인 방법의 개념은 다음과 같습니다. 추상 메소드는 선언되었지만 구현이 포함되지 않은 메소드입니다. 그렇다면이 방법들을 추상적 …

7
도메인으로 또는 도메인으로
SQL92 및 SQL99 표준은 DDL 구성을 정의 합니다. 모든 데이터베이스가이를 지원하지 않거나 다른 이름을 가지고있는 것은 아닙니다 (예 : SQL Server에는 사용자 정의 유형이 있음 ).CREATE DOMAIN 이를 통해 데이터베이스에서 사용할 제한된 데이터 유형을 정의하여 허용 된 값과 관련된 규칙을 단순화하고 시행 할 수 있습니다. 이러한 데이터 유형은 열 선언, …
15 sql  sql-domain 

7
CPU 대신 GPU로 작업을 언제 오프로드해야합니까?
OpenCL 과 같은 최신 시스템 은 그래픽 프로세서에서 점점 더 많은 코드를 실행할 수 있도록 만들어졌습니다. 가능한 한 시스템의 많은 기능을 활용할 수 있어야하기 때문입니다. 그러나 이러한 모든 새로운 시스템에서는 마치 GPU가 모든면 에서 CPU보다 나은 것처럼 보입니다 . GPU는 병렬 계산을 수행 할 수 있기 때문에 멀티 코어 GPU는 …
15 optimization  cpu  gpu 

3
네임 스페이스 및 클래스 이름 지침
유틸리티 및 기타 도움말 클래스가 포함될 때 클래스 및 서비스 이름을 올바르게 지정하는 데 문제가 있습니다. 다음을 어떻게 구성 하시겠습니까? EventService.cs EventServiceUtils.cs EventServiceValidators.cs EventServiceCoordinator.cs 기타... 위의 서비스와 동일한 요구를 가진 여러 서비스가 있습니다. 한 가지 생각은이 모든 것을 적절한 네임 스페이스로 분리하여 다음과 같이 보이게하는 것입니다. Services.EventService.EventService.cs //(the actual service) …
15 c#  architecture 

2
별도의 작성 및 편집 조치를 사용하거나 작성 및 편집을 하나로 결합하는 것이 더 낫습니까?
우리는 비즈니스 로직 계층, 데이터 액세스 계층으로 구성된 컨트롤러 / 뷰 프리젠 테이션 계층 및 모델과 함께 ASP.NET MVC 2를 사용하고 있습니다. 비즈니스 계층 이상에서 대부분의 목적으로 Edit는 개체 생성과 개체 편집을 모두 나타낼 수있는 것으로 보입니다. 이는 "저장"방법을 정의하는 리포지토리 디자인 패턴과 잘 일치합니다. ID가 0이면 저장 프로 시저를 …

14
개발자의 자율성을 위해 코딩 스타일을 권장해야합니까, 일관성을 위해 코딩 스타일을 권장해야합니까?
개발자는 다음 if/else과 같은 한 줄 코드 문장으로 블록을 작성 합니다. if (condition) // Do this one-line code else // Do this one-line code 다른 하나는 모두 중괄호를 사용합니다. if (condition) { // Do this one-line code } else { // Do this one-line code } 개발자는 먼저 객체를 인스턴스화 …

10
큰 변화를 제안 / 인턴으로 다시 쓰기 [닫기]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 질문을 업데이트Software Engineering Stack Exchange에 대한 주제가 되도록 . 휴일 3 년 전 . 문맥: 내부 프로젝트입니다 (많은 사람들이 사용하지 않는다고 생각합니다) 오래 되었군요 우리는 그것을 업데이트하고 있습니다 문제 : 그것은 mvc 프레임 워크를 남용합니다 (모델의 …

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