«architecture» 태그된 질문

소프트웨어 시스템의 고급 설계 및 설명 건축 설계는 구현, 알고리즘 및 데이터 표현의 세부 사항을 제거하여 "블랙 박스"구성 요소의 상호 작용에 집중합니다.

30
내 프로그래밍 언어와 그에 대한 컴파일러를 어떻게 만들 수 있습니까?
나는 프로그래밍을 철저히하고 BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C ++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembly 등의 언어를 접했습니다. 사람들이 프로그래밍 언어를 만들고 컴파일러를 고안하는 방법을 이해할 수 없습니다. 또한 사람들이 Windows, Mac, UNIX, DOS 등과 같은 OS를 만드는 방법을 이해할 수 없었습니다. 나에게 신비로운 다른 것은 …

17
조기 최적화는 실제로 모든 악의 근원입니까?
내 동료가 오늘이라는 클래스를 커밋했습니다.이 클래스는 ThreadLocalFormat기본적으로 Java 형식 클래스 인스턴스를 스레드 로컬로 이동했습니다. 스레드 안전하지 않고 "상대적으로 비싸지 않기"때문입니다. 나는 빠른 테스트를 작성하고 초당 200,000 개의 인스턴스를 생성 할 수 있다고 계산했으며, 그가 그 수를 많이 만들 었는지 물었다. 그는 훌륭한 프로그래머이며 팀의 모든 사람은 매우 숙련되어 결과 코드를 …

16
단일 책임 원칙을 사용할 때 "책임"은 무엇입니까?
"단일 책임 원칙"이 "한 가지 일만"을 의미하는 것은 아님이 분명합니다. 그것이 방법에 대한 것입니다. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } 밥 마틴은 "수업은 변화해야 할 단 하나의 이유가 있어야한다"고 말했다. 그러나 SOLID를 처음 사용하는 프로그래머라면 …


17
반환 값이없는 함수 / 메소드에서 NULL 또는 빈 값을 반환하는 것이 더 낫습니까?
나는 여기에 추천을 찾고 있습니다. 반환 값이 없거나 확인할 수없는 경우 NULL 또는 빈 값을 메서드에서 반환하는 것이 더 나은지 여부에 어려움을 겪고 있습니다. 다음 두 가지 방법을 예로 들어 보겠습니다. string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person with a …

9
다중 상속을 싫어하는“실제”이유가 있습니까?
나는 언어에서 다중 상속을 지원한다는 아이디어를 항상 좋아했습니다. 대부분의 경우 의도적으로 무시되었지만 "교체"라고 생각되는 것은 인터페이스입니다. 인터페이스는 단순히 다중 상속이 수행하는 모든 동일한 접지를 다루지 않으며, 이러한 제한으로 인해 더 많은 상용구 코드가 생길 수 있습니다. 내가 들어 본 유일한 기본 이유는 기본 클래스 의 다이아몬드 문제 입니다. 나는 그것을 …

8
의존성 주입의 비판과 단점
의존성 주입 (DI)은 잘 알려져 있고 세련된 패턴입니다. 대부분의 엔지니어는 다음과 같은 장점을 알고 있습니다. 단위 테스트에서 분리 가능 / 쉬움 클래스의 종속성을 명시 적으로 정의 우수한 설계 촉진 (예 : 단일 책임 원칙 (SRP)) 빠른 구현 구현 ( 예 : DbLogger대신 ConsoleLogger) 저는 DI가 훌륭하고 유용한 패턴이라는 업계 전반의 …

10
C #에서 "정적"을 사용하지 않습니까?
코드 검토를 위해 다른 건축가에게 작성한 신청서를 제출했습니다. 그들 중 하나가 거의 즉시 저에게 답장을 보내면서 "정적"을 사용하지 마십시오. 정적 클래스와 메소드로 자동화 된 테스트를 작성할 수 없습니다. "정적"은 피해야합니다. " 수업을 확인한 후 1/4 정도의 수업이 "정적"으로 표시되어 있습니다. 클래스는 코드 전체에서 사용되는 단일 전역 클래스이므로 클래스의 인스턴스를 만들지 …

5
C #에서 async / await 사용 지침이 우수한 아키텍처 및 추상화 계층 개념과 모순되지 않습니까?
이 질문은 C # 언어와 관련이 있지만 Java 또는 TypeScript와 같은 다른 언어를 다루기를 기대합니다. .NET에서 비동기 호출 사용에 대한 모범 사례 를 권장 합니다. 이러한 권장 사항 중에서 두 가지를 선택하십시오. 비동기 메소드의 서명을 변경하여 Task 또는 Task <>를 반환하십시오 (TypeScript에서는 Promise <>). xxxAsync ()로 끝나도록 비동기 메소드의 이름을 …
103 c#  architecture  async 

9
의존성 주입을 사용해야하는 이유는 무엇입니까?
종속성 주입을 사용해야하는 이유에 대한 리소스를 찾는 데 어려움을 겪고 있습니다 . 내가 보는 대부분의 리소스는 객체의 인스턴스를 객체의 다른 인스턴스로 전달한다고 설명하지만 왜 그럴까요? 이것은 깨끗한 아키텍처 / 코드만을위한 것입니까 아니면 성능 전체에 영향을 줍니까? 왜 다음을해야합니까? class Profile { public function deactivateProfile(Setting $setting) { $setting->isActive = false; } …

17
사용자 인터페이스 클래스를 명령 행 인터페이스로 대체 할 수 있다고 생각하는 아키텍처를 설계하는 것이 좋습니다.
코드 완성 페이지 25에서 일반 사용자 인터페이스 클래스를 명령 행 1로 쉽게 대체 할 수있는 것이 좋습니다. 테스트의 장점을 알고 있으면 어떤 문제가 발생할 수 있습니까? 이 추가 작업이 웹 및 모바일 프로젝트에 실제로 도움이됩니까? 중소 프로젝트는 어떻습니까? 동일한 규칙이 적용됩니까? 디자인이 더 복잡해지면 어떨까요?

10
Alan Kay가“인터넷은 잘 수행되었지만 웹은 아마추어에 의해 이루어졌다”고 말한 이유는 무엇입니까?
알았어요. 전체 인용문 : 인터넷은 너무나 잘 이루어 졌기 때문에 대부분의 사람들은 인터넷이 사람이 만든 것이 아니라 태평양과 같은 천연 자원으로 생각합니다. 그런 규모의 기술이 오류가없는 마지막 때는 언제입니까? 이에 비해 웹은 농담입니다. 웹은 아마추어에 의해 수행되었습니다. 앨런 케이 인터넷과 웹의 역사를 이해하려고하는데이 내용을 이해하기 어렵습니다. 나는 인터넷이 현재 설계된 …

9
"깨끗한 코드"사례와는 거리가 먼 코드를 사용하면서 어떻게 거대한 오픈 소스 라이브러리를 유지 관리합니까?
저는 여전히 양질의 코드를 작성하는 경험이 없어서 Robert C. Martin의 Clean Code 와 같은 문제를 다루는 책을 읽고 기술을 향상시키기 위해 잘 알려진 라이브러리의 코드를 계속 확인합니다. 많은 오픈 소스 라이브러리가 수년간 유지되어 왔지만, 올바른 경로에 있지 않을 가능성이 매우 높지만, 많은 코드가 깨끗한 코드를 작성하기 위해 해결 된 원칙과 …

7
마이크로 서비스에 가장 많이 사용되는 거래 전략은 무엇입니까
내가 본 주요 문제 중 하나는 마이크로 서비스가있는 시스템에서 발생하며 트랜잭션이 다른 서비스에 걸쳐있을 때 트랜잭션이 작동하는 방식입니다. 자체 아키텍처 내에서 분산 트랜잭션을 사용하여이 문제를 해결했지만 자체 문제가 있습니다. 특히 교착 상태는 지금까지 고통 스럽습니다. 또 다른 옵션은 시스템 내 흐름을 알고 있으며 전체 시스템에 걸친 백그라운드 프로세스로 롤백을 처리하는 …

17
"영리한"코드 작성을 피하기 위해 자신을 훈련시키는 방법? [닫은]
새로운 트릭을 보여 주거나 세 가지 다른 절차를 일반화 해야 할 때의 느낌을 알고 Expression있습니까? 이것은 아키텍처 우주 비행사 규모에있을 필요는 없으며 실제로 도움이 될 수는 있지만 다른 사람이 같은 클래스 또는 패키지를보다 명확하고 간단하고 때로는 지루한 방식으로 구현할 수는 있습니다. 나는 종종 고의적으로 그리고 때로는 지루함 에서 문제 를 …

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