내 (오픈 소스) 취미 프로젝트 중 하나는 GitHub, Bitbucket 등에서 리포지토리의 오프라인 백업을 수행하는 백업 도구입니다. 리포지토리 목록을 가져 오기 위해 호스팅 업체의 API를 호출 한 다음 Git / Mercurial / 무엇을 사용하여 복제 / 리포지토리를 로컬 컴퓨터로 가져옵니다. 그래서 인증을 통해 GitHub API를 호출하는 통합 테스트가 있습니다. (그리고 복제 …
Java 및 C #에서는 매개 변수를 사용하여 생성자를 정의하거나, 오브젝트를 구성한 후 각 특성을 정의하거나, 빌더 / 유체 인터페이스 패턴을 사용하여 초기화시 설정할 수있는 특성으로 오브젝트를 작성할 수 있습니다. 그러나 C # 3에는 객체 및 컬렉션 이니셜 라이저가 도입되어 빌더 패턴이 크게 쓸모가 없었습니다. 이니셜 라이저가없는 언어에서는 빌더를 구현 한 …
C #에 대한 일반적인 지침은 항상 공개 필드를 통해 속성을 사용하는 것입니다. 필드를 노출하면 구현 세부 사항을 많이 노출하게됩니다. 속성을 사용하면 해당 세부 정보를 캡슐화하여 코드를 사용하지 못하도록 숨기고 구현 변경 내용은 인터페이스 변경 내용과 분리됩니다. 그러나 readonly키워드를 다룰 때이 규칙에 유효한 예외가 있는지 궁금합니다 . 이 키워드를 퍼블릭 필드에 …
임베디드 장치의 상태 패턴으로 코딩하고 있습니다. State라는 기본 / 추상 클래스가 있으며 각 개별 (콘크리트) 상태 클래스는 추상 상태 클래스를 구현합니다. 주 클래스에는 여러 가지 추상 메소드가 있습니다. discrete (concrete) 클래스에서 추상 메서드를 구현하지 않으면 Visual Studio에서 다음과 같은 오류가 발생합니다. ... 오류 1 'myConcreteState'가 상속 된 추상 멤버 'myAbstractState'를 …
외부 API에서 영화 데이터를 검색합니다. 첫 번째 단계에서는 각 영화를 긁어 내 데이터베이스에 삽입합니다. 두 번째 단계에서는 API의 "변경 사항"API를 사용하여 정기적으로 데이터베이스를 업데이트하여 정보를 변경 한 영화를 확인할 수 있습니다. 내 ORM 레이어는 엔터티 프레임 워크입니다. Movie 클래스는 다음과 같습니다. class Movie { public virtual ICollection<Language> SpokenLanguages { get; …
C #에서 이벤트를 프로그래밍 할 때는 다음 과 같은 형식으로 대리자를 만드는 것이 좋습니다 . delegate XEventHandler(object sender, XEventArgs e); 내 질문은 대리인의 첫 번째 주장에 object sender있습니다. 항상 일반이어야 object합니까? 발신자 유형이 있으면 object항상 이와 비슷한 코드가 생성됩니다. val = ((ConcreteType)sender).Property; 또는 훨씬 더 장황한 ConcreteType obj = sender …
최근 에 C # 5.0 의 놀라운 비동기 대기 패턴을 충분히 얻을 수없는 것 같습니다 . 여기서 당신은 내 인생되었습니다? 나는 간단한 구문에 완전히 흥분하지만 작은 어려움이 있습니다. 내 문제는 비동기 함수에는 일반 함수와 완전히 다른 선언이 있다는 것입니다. 비동기 함수 만 다른 비동기 함수를 기다릴 수 있기 때문에 오래된 …
자동 배포 / 지속적인 통합을 실험 중이며 팀장과 대화했습니다. PowerShell에서 빌드 / 배포 스크립트 생성을 조사하고 있다고 말하면서 GUI를 사용하여 TFS에서 자동 배포를 설정하는 것이 매우 쉽다고 대신 조사해야합니다. VS의 소스 제어를 커밋하는 것을 제외하고는 TFS에 대한 경험이 없습니다. 어떤 상황에서 TFS가 실패하고 자동 배포를 위해 PowerShell을 사용하는 것이 더 …
나는 들었다 사람들이 말하는 변수는 가능한 한 자신의 사용 가까이로 선언되어야한다. 나는 이것을 이해하지 못한다. 예를 들어,이 정책은 이렇게해야한다고 제안합니다. foreach (var item in veryLongList) { int whereShouldIBeDeclared = item.Id; //... } 그러나 이것은 반드시 새 int반복마다 오버 헤드 가 발생 한다는 것을 의미합니다 . 사용하는 것이 낫지 않습니까? int …
대부분의 최신 컴퓨터는 동일한 부동 소수점 표준을 따릅니다. 입력이 동일하면 주어진 수학 연산에 대해 모두 동일한 부동 소수점 응답을 얻습니까? 나는 네트워크에서 RTS 게임을 연구하고 수백 개의 유닛 위치를 동기화하는 것이 나쁜 길처럼 들리기 때문에 묻습니다. 따라서 입력 만 보내면 모든 클라이언트가 해당 입력에서 시뮬레이션을 실행하여 동일한 결과를 얻도록 보장해야합니다. …
내 함수가 두 가지 요구 사항을 충족하면 Sum 주어진 조건에서 항목이 true로 평가되는 목록에서 항목의 합계를 반환하는 함수가 순수한 함수라고 할 수 있다고 생각합니까? 1) 주어진 i / p 세트에 대해 함수가 호출 될 때 시간에 상관없이 동일한 o / p가 리턴됩니다. 2) 부작용이 없습니다. public int Sum(Func<int,bool> predicate, IEnumerable<int> …
이 블로그 게시물 에서 For -if 안티 패턴에 대해 읽고 있었는데 왜 안티 패턴인지 이해하지 못했습니다. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } 질문 1: return new StreamReader(filename);내부 때문 for loop입니까? 또는 for이 경우 루프가 필요하지 않다는 사실 ? 블로그 작성자가 덜 …
불변 객체와 같은 불변 객체와 불변 객체의 이점은 공유 및 쓰기 가능한 상태로 인해 다중 스레드 프로그래밍 문제를 해결하는 데 많은 어려움을 겪는 것을 볼 수 있습니다. 반대로, 가변 객체는 매번 새로운 사본을 생성하지 않고 객체의 신원을 처리하는 데 도움이되므로 특히 큰 객체의 성능 및 메모리 사용량을 향상시킵니다. 내가 이해하려고하는 …