소프트웨어 공학

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

1
포트에서 관용구를 사용하여 API 유지
Python에서 Rust까지의 포트에서 작업 중이며 Python 에서처럼 Rust에서 자연스럽게 표현할 수없는 코드가 발생했습니다. 한 가지 경우는 기본 매개 변수를 사용하는 것입니다. class Foo: def __init__(self, a="Hello"): self._a = a Rust에서는 빌더를 사용하여이를 구현할 수 있습니다. struct FooBuilder { a: &'static str, } struct Foo { _a: &'static str } impl …

3
[] 연산자 대신 포인터 산술을 통해 배열 요소에 액세스하는 것을 참조하는 것이 좋지 않습니까?
방금 C로 프로그래밍을 배우고 포인터와 배열에 대한 이해를 높이기 위해 포인터를 전혀 만들지 않고 배열의 요소를 참조하려고했습니다. for(k1 = 0; k1 < ROW; k1++){ for(k2 = 0; k2 < COLUMN; k2++){ array[k1][k2] = k1*COLUMN + k2 + 1; printf("[%d][%d] = %d\n", k1, k2, *(array[k1] + k2)); } } 전체 코드는 …

2
gitignore를 사용한 지속적인 배포
Git으로 연속 배포를 수행 할 때 gitignore에서 무시 된 파일을 어떻게 처리합니까? 이러한 파일은 개인 정보 보호를 위해 무시되지만 (예 : GitHub와 같은 다른 원격 저장소로 푸시하지 않기를 원 하지만) 무시 된 파일이 연속 배포 저장소로 푸시되지 않으면 응용 프로그램이 실행되지 않습니다 (무시 된 파일이 소프트웨어가 올바르게 작동하는 데 필요합니다). …

2
현재 작업에없는 작업 흐름, 편집
일반적으로 프로그램을 작성할 때는 명확한 작업이 있지만 계속 진행할 때 정리하고 싶은 성가신 것을 찾으십시오. 여기에 세 가지 옵션이 있습니다. 나중에 수행하십시오 (티켓을 추가하는 데 시간을 소비하거나 잊었을 수 있음) 지금하고 내 현재 작업과 함께 커밋하십시오 (불분명) 지금하고 별도로 커밋하십시오 (찾아야 실수하고 실수로 옵션 # 2로 이동) 이것은 아마도 기본적이지만 …

5
마지막으로 소멸자와의 개념적 차이점은 무엇입니까?
첫째, C ++에 '최종'구문이없는 이유는 무엇입니까? 그러나 다른 질문에 대한 오랜 의견의 토론은 별도의 질문을 보증하는 것으로 보입니다. finallyC # 및 Java에서 기본적으로 범위 당 한 번만 (== 1) 존재할 수 있고 단일 범위에 여러 (== n) C ++ 소멸자가있을 수 있는 문제 외에도 본질적으로 동일한 것으로 생각합니다. (기술적 인 …

2
Java 8 Stream 인스턴스는 항상 close ()해야합니까?
Javadoc Quoth : 스트림에는 BaseStream.close () 메소드가 있으며 AutoCloseable을 구현하지만, 거의 모든 스트림 인스턴스를 실제로 사용한 후 닫을 필요는 없습니다. 일반적으로 소스가 IO 채널 인 스트림 (예 : Files.lines (Path, Charset)에 의해 반환 된 스트림) 만 닫아야합니다. 대부분의 스트림은 컬렉션, 배열 또는 생성 기능에 의해 지원되며 특별한 리소스 관리가 필요하지 …
12 java  resources  java8 

5
캐싱을 관리하기 위해 클래스에서 SRP를 위반하지 않는 방법은 무엇입니까?
참고 : 코드 샘플은 C #으로 작성되었지만 중요하지 않습니다. 더 적합한 태그를 찾을 수 없기 때문에 C #을 태그로 넣었습니다. 이것은 코드 구조에 관한 것입니다. Clean Code를 읽고 더 나은 프로그래머가 되려고 노력하고 있습니다. 나는 종종 특히 기능에서 단일 책임 원칙 (클래스와 함수가 한 가지만 수행해야 함)을 따르는 데 어려움을 …

1
GitHub 풀 요청에서 피어 리뷰를 수행하는 방법은 무엇입니까?
우리는 Bitbucket에서 GitHub로 전환하고 있으며 우리가 어려움을 겪고있는 한 가지는 다음과 같이 Bitbucket에서 매우 원활하게 작동하는 피어 코드 검토입니다. 작성자가 풀 요청을 열었습니다 (GitHub : 동일) 작성자가 동료를 검토 자로 추가했습니다 (GitHub : ?? 여러 담당자 와 함께 어려움을 겪고 있습니다 ). 검토 자 : 초록색 확인 표시가있는 PR 승인 …


3
C ++의 비 선택적 포인터와 비 콘스탄트 참조
에서 다른 C ++ 특징, 참조 인수 의 구글 C ++ 스타일 가이드는 , 그 const가 아닌 참조는 사용할 수 없습니다 읽어 보시기 바랍니다. 참조로 전달 된 모든 매개 변수에는 const 레이블이 있어야합니다. 참조를 인수로 사용하는 함수 호출을 보는 것이 C 프로그래머에게는 혼란 스럽지만 현재 C와 C ++는 다른 언어입니다. …

3
플럭스 패턴 이해
나는 실제로 플럭스 패턴을 연구하고 있으며 상점 과 관련하여 이해할 수없는 것이 있습니다 . 그들은 정확히 무엇입니까? 많은 기사를 읽었으며 도메인과 관련이있는 것 같습니다. 이것이 API 호출 또는 백엔드 호출과 관련된 "추상적 인"부분임을 의미합니까? 나에게는 분명하지 않습니다. 편집 : 각도 공장과 동일한 것일 수 있습니까? 원격 데이터를 가져 와서 비즈니스 …

2
다중 데이터베이스 유형을 지원하기 위해 추상 데이터베이스 인터페이스는 어떻게 작성됩니까?
MySQL, SQLLite, MSSQL 등과 같은 여러 유형의 데이터베이스와 인터페이스 할 수있는 더 큰 애플리케이션에서 추상 클래스를 설계하기 시작하는 방법은 무엇입니까? 이 디자인 패턴은 무엇이며 어디서 시작합니까? 다음과 같은 메소드가있는 클래스를 작성해야한다고 가정 해 봅시다. public class Database { public DatabaseType databaseType; public Database (DatabaseType databaseType){ this.databaseType = databaseType; } public …
12 c#  database 

2
JRE 라이브러리의 클래스가 외부 / JRE 이외의 어셈블리에서 관찰 가능 및 / 또는 비동기 읽기를 지원합니까?
다른 플랫폼의 네이티브 프론트 엔드가 객체를 관찰하고 Observable 패턴을 활용할 수 있도록 객체 플랫폼에서 스레드 안전 방식으로 작동하도록 크로스 플랫폼 라이브러리 (예 : JRE)를 어떻게 구현할 수 있습니까? 약간의 배경 지식-대부분의 프론트 엔드 프레임 워크에 사용되는 데이터 바인딩 개념이 있습니다. C # 및 Java에서 이는 여러 컨트롤 또는 "관찰자"가 구독 …

2
단위 테스트 속성에 일반적으로 공개 메소드가 필요한 이유는 무엇입니까?
최근에 .NET 어셈블리의 보호 된 메소드에 [TestInitialize]를 추가하는 것은 존중되지 않지만, 메소드를 공개하면 유닛 테스트 러너 (이 경우 Resharper)가 호출했습니다. 테스트 방법으로 과거에 여러 번 나타났습니다. 기술적으로 말하자면, 공개 방법만큼 사적인 방법에 쉽게 반영 할 수 있습니다. 사실상 리플렉션은 개인 메소드를 단위 테스트하는 데 사용되는 메소드입니다. 그렇다면 왜 모든 단위 …

3
알려진 문제를 소프트웨어에 직접 넣는 것이 적절합니까?
Android 앱의 유지 관리를 담당했으며 다소 수정 된 몇 가지 잔류 문제가 있지만 Android OS 버전이 다르기 때문에 여전히 문제가 있습니다. 예를 들어 MediaPlayer 클래스를 사용하여 웹 요청을 보내면 요청이 전송되기 전에 OS에 의해 사용자 정의 HTTP 헤더가 제거되지만 Android 4.X (완전히 테스트 됨)에서만이 특정 기능이 실패하기 때문에 실패합니다. 그 …

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