소프트웨어 공학

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


3
관련 속성 집합을 자체 구조체 / 클래스로 래핑하는 것이 좋습니다.
내 질문은 강력한 형식의 언어와 관련이 있지만 Swift에서 User 객체를 작성합니다. 사용자는 많은 링크 (FacebookProfile, InstagramProfile 등)를 가질 수 있습니다. 이것에 관한 몇 가지 질문. 링크를 자체 객체로 감싸는 것이 좋습니다? struct 사용자 { var firstName : 문자열 var lastName : 문자열 var 이메일 : 문자열 var 링크 : 링크 …

4
컴파일러는 정확히 유형 오류를 어떻게 복구합니까?
필자는 컴파일러의 기본 원리, 기술 및 도구 (제 2 판) ( 제 2 판)의 여러 문서, 기사 및 4.1.4 절 (제 2 판) (일명 "드래곤 북 (Dragon Book)")을 읽었으며 구문 컴파일러 오류 복구 주제에 대해 설명했다. 그러나 현대의 여러 컴파일러를 실험 한 결과 시맨틱 오류뿐만 아니라 구문 오류 도 복구 …

4
고유 색인을 추가 할 수없는 경우 중복을 피할 수있는 방법은 무엇입니까
동시성 문제가 발생했습니다. 사용자가 2 o 3 트랜잭션을 전송하여 DB에 복제해서는 안되는 일부 데이터를 유지하는 일반적인 문제입니다. 중복 레코드의 경우 오류를 반환해야합니다. 이 문제는 해시를 저장하는 열에 인덱스 (고유)를 추가 할 수있을 때 쉽습니다. 그러나이 경우 거대한 테이블 (아마도 수백만 개의 레코드)이 있으며 테이블을 수정할 수 없습니다. 실제로 중복되지 않아야하지만 …

1
Null 안전 연산자 (예 : "Elvis 연산자")가 Java 7의 "프로젝트 코인"의 일부로 거부 된 이유는 무엇입니까?
Java 7의 "Project Coin"에 제안 된 기능 중 하나는 "Elvis operator"입니다. 2009 자바 원 프리젠 테이션의 보고서 프로젝트 동전에 같은 묘사 : 이 프레젠테이션에서 다루는 "작은 기능"중 하나는 소위 "엘비스 연산자"인데, 이는보다 간결한 3 진 연산자 버전입니다. 전통적인 Java를 사용할 때 Groovy의 일부 기능이 누락되어 있으며 두 언어 모두 추가 …
10 java  api-design 

5
내 C ++ 코드에서 클래스 상호 의존성을 해결하는 방법은 무엇입니까?
내 C ++ 프로젝트에서 나는 두 개의 클래스를 가지고 Particle와 Contact. 에서 Particle클래스 I는 멤버 변수가 std::vector<Contact> contacts(A)의 모든 접점 포함 Particle개체를 대응하는 멤버 함수 getContacts()와 addContact(Contact cont). 따라서 "Particle.h"에는 "Contact.h"가 포함됩니다. 에서 Contact클래스, 나는 생성자에 코드를 추가 할 Contact그 호출 Particle::addContact(Contact cont)이이 때문에, contacts모두 업데이트됩니다 Particle하는 사이에 개체 Contact개체가 …

2
집계 경계를 설계하는 방법은 무엇입니까?
전자 상거래와 같은 애플리케이션을 작성하고 싶습니다. 또한 유사한 응용 프로그램에서 제품의 속성과 기능이 다를 수 있음을 알고 있습니다. 이러한 기회를 시뮬레이션하기 위해 다음 도메인 모델 엔터티를 만들었습니다. 카테고리 - "전자 제품> 옴마 터"와 같은 유형, 즉 제품 유형. 범주에는 속성 목록이 있습니다 (List <Property>). 속성 -이름, 측정 단위, 데이터 유형을 …

2
서버리스 아키텍처는 데이터베이스 연결을 어떻게 관리합니까?
서버리스 아키텍처의 주요 장점은 이러한 프로그램에 전용 서버가 필요하지 않다는 것입니다. 그런 다음 요청시 호출되고 함수 종료시 중지됩니다. 이는 서버리스 프로그램이 신속하게 시작되어야 응답 할 수 있음을 의미합니다. 그러면 데이터베이스 연결과 같은 시간이 많이 걸리는 작업을 어떻게 처리합니까? 서버 응용 프로그램에서와 같이 함수 호출을 위해 매번 데이터베이스에 연결하거나 데이터베이스 연결을 …

5
LSP를 위반해도 괜찮습니까?
이 질문 에 후속 조치를 취하고 있지만 코드에서 원칙으로 초점을 전환하고 있습니다. 의 나의 이해에서 Liskov 대체 원칙 방법은 내 기본 클래스에있는 어떤 (LSP), 그들은 내 서브 클래스에서 구현되어야하며,에 따라 이 페이지는 기본 클래스의 메소드를 오버라이드 (override)하는 경우 그것은 아무것도하지 않는다 또는를 던졌습니다 예외, 당신은 원칙을 위반합니다. 이제 내 문제는 …

1
의존성 버전 충돌을 피 하시겠습니까?
내 항아리를 사용하는 모든 Java 프로젝트는 거의 확실하게 다른 항아리에 대한 추가 종속성을 가지고 있으며 내 항아리에는 종속성으로도 포함됩니다. 문제는 다른 jar에 여러 버전이 있다는 것입니다. 프로젝트의 두 번째 항아리 버전이 내 항아리의 두 번째 항아리 버전과 다른 경우 발생할 수있는 문제를 어떻게 피할 수 있습니까? 사용자가 항아리를 추가하기 위해 …

1
실생활에서 깨끗한 코드가 어떻게 보이는지 파악하는 데 어려움
저는 현재 Robert C. Martin의 "Clean Code : A Agile Software Craftsmanship 핸드북"을 읽고 작업하고 있습니다. 저자는 함수가 어떻게 한 가지만 수행해야하는지에 대해 이야기하므로 상대적으로 짧습니다. 특히 Martin은 다음과 같이 씁니다. 이는 if 문, else 문, while 문 등의 블록이 한 줄 길이 여야 함을 의미합니다. 아마도 그 라인은 함수 …
10 clean-code 

7
내부 애플리케이션을위한 내부 라이브러리를 개발해야하는 이유
내부 응용 프로그램 개발 전용으로 사용할 내부 라이브러리를 개발해야하는 이유를 이해하는 데 어려움이 있습니다. 조직 외부의 누군가가 작성한 소프트웨어를 사용하려면 헤더 파일과 .a 또는 .so 파일을 보내서 프로젝트에 링크 할 수 있습니다 (동일한 환경에서 컴파일되었다고 가정). . 그러나 헤더 및 구현 파일에 액세스 할 수 있고 소스 트리에 포함시키고 모두 …
10 libraries 

4
오류 메시지에 관련 문서에 대한 링크를 포함 하시겠습니까?
외부 개발자가 사용하는 상용 라이브러리 및 코드 예제를 만듭니다. 라이브러리 사용 방법을 광범위하게 설명하는 문서 (등록 된 사용자에게 제공)가 있습니다. 많은 개발자가 처음 사용자이므로 많은 기본적인 오류가 발생합니다. 오류 로그에 문서에 대한 링크를 포함시키는 것이 적절합니까? 가능한 단점은 무엇입니까? 몇 가지 예견 할 수 있지만 다음을 극복하는 것이 가능해 보입니다. …

4
다양한 상태를 나타내는 정수 코드를 반환하는 함수 재 작업
아래 샘플을 포함시킨 끔찍한 코드를 물려 받았습니다. 이 특정 안티 패턴의 이름이 있습니까? 리팩토링에 대한 몇 가지 권장 사항은 무엇입니까? // 0=Need to log in / present username and password // 2=Already logged in // 3=Inactive User found // 4=Valid User found-establish their session // 5=Valid User found with password …

2
이진 함수 assertEquals (예상, 실제)와 함께 발생하는 문제 해결
몇 년 동안 카우보이 코딩을 한 후 좋은 품질의 코드를 작성하는 방법에 대한 책을 집어 들기로 결정했습니다. Robert Cecil Martin의 Clean Code를 읽고 있습니다. 3 장 (기능)에는 이항 기능에 대한 섹션이 있습니다. 다음은이 책에서 발췌 한 것입니다. 명백한 2 차원 함수조차 assertEquals(expected, actual)문제가 있습니다. 실제 위치를 몇 번이나 실제 위치에 …
10 functions 

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