청결 구조와 MVP에 대한 생각
약 3개월 전, 나는 안드로이드 개발자 직위의 구직 과정을 겪고 있으며, 각종 면접 절차를 겪었다.한 잠재적 고용주가 나에게 다음과 같은 상황에 대한 구조 제안을 제출하라는 임무를 주었다.
You are an experienced developer. Can you design 1-page architecture of an app
for a financial product with 50k users base (3k daily), that can work in a
modern setup of development, e.g. Spotify squads? Once you come onboard you may have to design for 10-100x userbase. The architecture can be a generic view.
나는 나의 개인적인 생각을 연구하고 문서로 정리했다.오늘 나는 그것들을 블로그로 발표하기로 결정했다.
Disclaimer: Detailed explanations of Clean Architecture or MVP are not provided in this post as it is only highlighting the proposed solution and outlining my reasoning behind it.
한편, 2017년은 제가 Clean Architecture에 흥미를 느낀 해입니다. Model-View-Presenter (MVP)의 안드로이드 응용 프로그램에서 응용Freeletics 구조 모델을 활용하여 실천 경험을 얻었습니다.전반적으로 말하자면 소프트웨어 구조는 줄곧 내가 흥미를 느끼는 분야이다. 불행하게도 나는 과거의 어떤 안드로이드 프로젝트에서도 그것을 실현할 기회가 없었다.안드로이드 개발자들은 신뢰할 수 있는 구조가 없는 상황에서 건장하고 질이 높으며 유지보수가 가능한 응용 프로그램을 구축하는 어려움을 이해한다.
흥미로운 것은 2017년 구글officially이 처음으로 안드로이드 앱 사용app architecture을 추천하면서 사람들은 이 한 해를 영원히 기억할 것이다.이것은 기본적으로 하나의 라이브러리의 집합으로 간단하고 유연하며 실용적인 방법을 제공하여 개발자들이 흔히 볼 수 있는 문제에서 해방되도록 한다. 그러면 그들은 더욱 적은 샘플 코드로 모듈화된 응용 프로그램을 작성하고 좋은 체험을 구축할 수 있다.
아키텍처(Architecture) 구성 요소 우리는 현대 응용 프로그램 구조에서 무엇을 기대해야 합니까?
내가 보기에 그것은 건장하고 안정적이며 확장하기 쉬우며 작업량이 가장 적고 민첩한 수요에 따라 변경할 수 있으며 새로운 플랫폼 기능에 신속하게 융합되고 테스트 가능성을 지원하며 서로 다른 단계의 개발자에게 이해를 하여 유지보수성을 확보해야 한다.
나는 깨끗한 건물이 답이라고 믿는다.
깨끗한 건물
자료 출처: 8페이지.일반 도메인 이름 형식
에서 코드는 양파 모양의 층으로 나뉘는데 그 중 하나는 의존 규칙이 있다. 내부는 외부의 어떤 정보도 알지 말아야 한다.내부는 업무 논리를 포함하고 외부는 실현을 포함하며 중간층은 인터페이스 어댑터를 포함한다.각 루프는 추상적인 레이어를 나타냅니다.
Some key technical benefits achieved in this way are:
> Abstraction over Implementation
> Single Responsibility Principle
> Separation of Concern
> Decoupled Code
깨끗한 건물 서로 다른 층, 구성 요소 및 그것들 간의 통신 방식
자료 출처: 5.기구
데모 / 사용자 인터페이스 레이어
수동 뷰 도메인 계층
데이터 레이어(데이터베이스 및 API)
데이터 원본의 추상을 만들고 그 중에서 데이터를 가져와 조작한다.모든 숨겨진 지속성은 여기에 있어야 한다: DAOs, ORM, 개조(또는 인터넷과 관련된 다른 것들) 서비스, JSON 해석 등
저장소 모드 장치 레이어
의안 구조의 분석
단검 다기능 팀 및 아키텍처
위에서 공유한 문제 진술도 언급했다 . 이것은 매우 재미있는 개념으로 Spotify 공학 문화에서 나온 것이다.제품 팀은 강대하고 지식이 풍부한 개발 팀을 세우는 좋은 방법인 것 같다.문외한으로 말하자면, Squad는 소형의 크로스 기능 자체로 scrum팀을 조직한다.그들은 끝까지 책임을 지고 장기적인 사명을 실현하기 위해 공동으로 노력한다.팀에서 관건적인 동력은 자율성이다.
고용주에게 민첩성은 관건적인 요구이기 때문에 민첩성을 지지하는 구조에 대한 기대이기도 하다.더 중요한 민첩성 원칙 중 하나는
“The best architectures, requirements, and designs emerge from self-organizing teams.”
Spotify Squads 팀의 프로그래머가 필요하지 않다고 생각한다.이것은 팀의 책임이다.이상적인 팀에서 모든 구성원들은 중첩되고 보완되는 문제를 생각한다.
MVP 계약 한층 더 읽다
Reference
이 문제에 관하여(청결 구조와 MVP에 대한 생각), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wahibhaq/a-brief-summary-of-thoughts-on-clean-architecture-and-mvp-48h9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)