«architecture» 태그된 질문

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

2
Google 검색을 어떻게 구현 하시겠습니까? [닫은]
인터뷰에서 "Google 검색을 어떻게 구현 하시겠습니까?" 그런 질문에 어떻게 대답 하시겠습니까? Google의 일부 부분 (BigTable, MapReduce, PageRank 등)을 구현하는 방법을 설명하는 리소스가있을 수 있지만 인터뷰에는 맞지 않습니다. 어떤 전체 아키텍처를 사용하고 15-30 분 동안이를 설명 할 수 있습니까? ~ 100k 문서를 처리하는 검색 엔진을 구축하는 방법을 설명하고 샤딩을 통해 약 …

5
Clean Architecture : 발표자를 포함하거나 데이터를 반환하는 사용 사례?
청소 아키텍처는 응답 / 디스플레이를 처리합니다 (DIP 다음, 주입) 발표자의 실제 구현을 호출 인터랙 사용 사례를 수 있도록 제안합니다. 그러나 사람들 이이 아키텍처를 구현하고 상호 작용기의 출력 데이터를 반환 한 다음 컨트롤러 (어댑터 계층)에서 처리 방법을 결정하게합니다. 두 번째 솔루션은 인터랙 터에 대한 입력 및 출력 포트를 명확하게 정의하지 않고 …

6
애자일 팀에서 수석 개발자의 역할은 무엇입니까?
민첩하지 않은 개발 팀에서 수석 개발자는 일반적으로 다음과 같습니다. 표준 설정 (코딩 등) 팀을위한 새로운 기술 연구 팀의 기술 방향을 설정합니다 문제에 대한 최종 발언 시스템의 아키텍처를 설계 그러나 민첩한 팀은 다르게 작동합니다. 애자일 팀은 선구적인 것이 아니라 새로운 디자인에 의존합니다 한 사람이 디자인 한 것이 아니라 애자일 팀이 함께 …

7
팀장이 제안한대로이 프로젝트의 설계를 중단하고 설계를 시작하려면 어떻게해야합니까? [닫은]
저는 주니어 개발자 (~ 3 년)이며 업무를 수행하면서 새로운 시스템을 설계하고 있습니다. 저의 수석 개발자는 수석 아키텍트가되지만 시스템을 직접 설계 해 보도록 요청했습니다. 아이디어를 브레인 스토밍하고 아키텍처 제안으로 본 것을 제안하는 몇 가지 반복 과정에서 내 리드는 내가 수행 한 대부분의 작업이 "설계"가 아니라 "설계"라는 피드백을 받았습니다. 그는 아키텍처가 구현에 …

10
단일 책임 원칙의 적용
최근에는 사소한 건축 문제가 발생했습니다. 내 코드에는 다음과 같은 간단한 저장소가 있습니다 (코드는 C #입니다). var user = /* create user somehow */; _userRepository.Add(user); /* do some other stuff*/ _userRepository.SaveChanges(); SaveChanges 데이터베이스 변경 사항을 커밋하는 간단한 래퍼였습니다. void SaveChanges() { _dataContext.SaveChanges(); _logger.Log("User DB updated: " + someImportantInfo); } 그런 다음 …

4
REST-Accept 헤더와 확장을 통한 컨텐츠 협상 간의 절충
RESTful API 설계를 진행하고 있습니다. 주어진 리소스에 대해 JSON과 XML을 반환하려고합니다. 나는 우리가 다음과 같이 할 것이라고 생각했습니다. GET /api/something?param1=value1 Accept: application/xml (or application/json) 그러나 누군가 다음과 같이 확장 기능을 사용하여 던졌습니다. GET /api/something.xml?parm1=value1 (or /api/something.json?param1=value1) 이러한 접근 방식의 장단점은 무엇입니까? 확장명이 지정되지 않은 경우 accept 헤더를 사용하는 것이 가장 …

9
“예제로 인도”가 효과가 없을 때 무엇을 할 수 있습니까? [닫은]
저는 거의 2 년 동안 대기업 (8000 명 이상의 직원)을 위해 일해 왔으며 공부 과정을 마친 직후에 고용되었습니다. 여기의 모든 사람들은 종종 매우 나쁘게 설계되고 해킹으로 가득 찬 레거시 코드를 매일 처리해야합니다. 처음에, 나는 일을 너무 비판하지 않으려 고 애썼다. 그러나 상황은 상황에 따라 생활하기가 매우 어려워졌으며 우리가 사용하는 도구를 …

2
마이크로 서비스 아키텍처에서 공유 개념을 어떻게 처리합니까?
개발중인 응용 프로그램의 아키텍처 패턴을 연구 중이며 마이크로 서비스 접근 방식이 좋은 선택 인 것처럼 보이지만 서비스 간의 상호 작용을 처리하는 방법을 잘 모르겠습니다. 이 응용 프로그램은 주로 사용자, 사용자가 소유 한 프로필, 사진 및 사진에서 일대 다 프로필을 나타내는 태그를 처리합니다. 사용자가 업로드 한 사진을 반환하고 태그가 지정된 특정 …

17
소프트웨어 디자인 : 빠르게 구축하거나 제대로 구축합니까?
사소한 응용 프로그램을 작성할 때는 작업을 빠르게 수행하고 모델 논리를 뷰와 혼합하고 캡슐화를 깨는 것과 같은 코드에서 바로 가기를 취하는 것이 가장 좋습니다. 또는 더 많은 아키텍처를 빌드하고 올바르게 빌드하는 데 시간을내는 것이 더 좋지만 디자인이 유동적이기 때문에이 추가 코드를 모두 사용하지 못할 수 있으며 피드백이 발생하면이를 버려야 할 수도 …

2
의존성 주입이 너무 많습니까?
말 그대로 클래스의 종속성 인 모든 것에 대해 (Spring) Dependency Injection을 사용하는 프로젝트에서 작업합니다. 우리는 Spring 설정 파일이 약 4000 줄로 성장한 시점에 있습니다. 얼마 전 나는 YouTube에서 Bob Uncle의 대화 중 하나를 보았습니다 (불행히도 링크를 찾을 수 없었습니다). 분배된다. 이 접근법의 장점은 DI 프레임 워크를 응용 프로그램의 대부분에서 분리하는 …

7
응용 프로그램 구성을 저장하는 기본 방법은 무엇입니까?
대부분의 경우 개발 응용 프로그램 구성을 프로젝트의 루트 디렉토리에 다음과 같이 저장합니다. app |-- config.json 그러나이 구성은 버전 제어 시스템에 저장되어 사용자 이름, 암호 및 기타 민감한 정보가 유출 될 수 있으므로 최선의 방법은 아닙니다. 12 Factor App 안내서는 구성 파일을 모두 삭제하고 구성 설정에 환경 변수를 사용하도록 권장합니다. ... …

11
각 반에 하나의 책임이 있는지 확인하십시오. 왜 그렇습니까?
Microsoft 문서, Wikipedia SOLID 프린시 페 기사 또는 대부분의 IT 설계자에 따르면 각 클래스마다 하나의 책임 만 갖도록해야합니다. 모든 사람이이 규칙에 동의하는 것 같으면이 규칙의 이유에 대해 아무도 동의하지 않는 것 같아 이유를 알고 싶습니다. 어떤 사람들은 더 나은 유지 보수를 인용하고, 어떤 사람들은 쉬운 테스트를 제공하거나 클래스를보다 강력하거나 안전하게 …

11
추상 클래스 / 메소드가 더 이상 사용되지 않습니까?
나는 많은 추상 클래스 / 메소드를 만들었습니다. 그런 다음 인터페이스를 사용하기 시작했습니다. 인터페이스가 추상 클래스를 더 이상 사용하지 않는지 확실하지 않습니다. 완전히 추상적 인 수업이 필요하십니까? 대신 인터페이스를 작성하십시오. 구현이 추상 클래스가 필요하십니까? 인터페이스를 만들고 클래스를 만듭니다. 클래스를 상속하고 인터페이스를 구현하십시오. 또 다른 이점은 일부 클래스는 부모 클래스가 필요하지 않지만 …

8
건축 냄새가 있습니까?
웹에는 코드 냄새를 언급하고 나열하는 수많은 리소스가 있습니다. 그러나 건축 냄새에 대한 정보는 본 적이 없습니다 . 이것은 어딘가에 정의되어 있으며 사용 가능한 목록이 있습니까? 아키텍처 결함과 프로젝트 속도, 결함 등에 미치는 영향에 대한 공식적인 연구가 수행 되었습니까? 편집 : 나는 실제로 답변에서 목록을 찾지 않고 건축 냄새에 대한 문서 …

6
Scala를위한 시스템 설계 재발 명
많은 달이 있기 전에 나는 객체 지향 소프트웨어 엔지니어링에서 석사 학위를 받았습니다. 프로젝트 시작, 요구 사항, 분석, 설계, 아키텍처, 개발 등 모든 것을 다루었습니다. 제가 가장 좋아하는 IT 책은 객체 지향 소프트웨어 개발, 경험 기반 접근 방식 (IBM-1996)이었습니다. 당시의 진정한 전문가 그룹이 만든 책. 객체 지향 분석, 설계 및 개발 …

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