마이크로 프론트 엔드로 파이프에 전송 된 중복 코드


12

마이크로 프론트 엔드에 대한 나의 이해는 그들이 해결해야 할 주요 문제는 기업이 여러 개의 서로 다른 이종 팀을 구성하고 대규모 웹 애플리케이션을 구성하는 데 사용될 개별 구성 요소 / 작은 응용 프로그램에서 작업하도록 돕는 것입니다.

여기서 해결해야 할 주요 문제 는 여러 팀이 독립적으로 작업 하면서도 여전히 대규모 컴포지트를 구축 할 수 있는 능력입니다 . 문제는 최종 사용자를위한 린 릴리스 번들 이 아닙니다 . 이해가 정확합니까?

큰 웹 응용 프로그램을 작성하는 데 사용되는 여러 개의 작은 응용 프로그램이있는 경우 동일한 Javascript 라이브러리 ( 예 : Lodash )를 최종 사용자의 브라우저로 전달하는 여러 개의 작은 응용 프로그램이있을 수 있다는 사실이 사실입니까? 어느 정도의 중복 / 중복 코드가 사용자에게 전송되도록하는 개별 벤더 번들?

프론트 엔드 애플리케이션을 설계 할 때 걱정해야 할 문제가 아닌가?


2
나는 그것이 당신이 고려해야 할 절대적인 문제 라고 생각합니다 . 불행히도, 나는 사람들이 이것에 대해 어떻게 가고 있는지 전혀 모른다. 좋은 질문!
— RubberDuck

답변:


12

여기에 관련된 상충 관계가 있다는 것이 옳습니다. 사용자 경험의 일부 측면에서 거래하여 더 나은 개발자 경험을 얻습니다 (다양한 방식으로 사용자 경험을 향상시킬 수 있음). 이것이 가치가 있습니까? 때에 따라 다르지.

예를 들어 Spotify는이 방법을 사용하여 UI를 격리 된 구성 요소 ( source ) 로 분할합니다 . 각 위젯은 iframe에 존재하므로 자체 라이브러리 세트 등을 가질 수 있습니다. 이들은 자율 분대 (교차 팀)가 수행하는 고유 한 조직적 제약 조건을 가지고 있습니다. 이로 인해 회사 전체 표준에 동의하고 나중에 이러한 표준을 변경하기가 더 어려워집니다. 따라서 마이크로 프런트 엔드는 유연성을 유지하는 데 도움이됩니다. 그러나이 방법이 없으면 데스크톱 앱의 메모리가 부족할 수 있습니다.

HTTP 캐싱은별로 도움이되지 않습니다. 각 마이크로 프론트 엔드가 서로 다른 프레임 워크 버전을 사용할 수 있습니다 . 또한 복제 비용은 데이터 전송뿐만 아니라 라이브러리를 다시 컴파일하고 중복 된 데이터 구조를 저장하는 클라이언트 측 비용입니다.

개인적으로, 그러한 마이크로 프론트 엔드는 유효한 아키텍처 일 수 있지만 아마도 바람직하지 않은 경우

  • 자율적 인 팀이있는 매우 큰 조직으로, 모두 사용자 인터페이스에서 작업하며 매우 빈번한 릴리스 (예 : 매일)를 수행해야합니다.
  • UX 성능 예산에 이러한 중복의 여지가 있거나 제품이 너무 좋아 UX가 중요하지 않습니다. 성능은 개발 시스템이 아닌 저가형 장치에서 테스트해야합니다.

조직 규모가 크지 않거나 팀이 좀 더 전문화 된 경우 관련된 모든 사람 (관리자, 개발자 및 최종 사용자)이 불필요한 복제를 피하는 공통 빌드 및 배포 프로세스를 갖는 것이 더 쉬울 수 있습니다. 예를 들어 UI에서 작업하는 팀이 4 명인 경우 공통 라이브러리 세트에 대해 합의하기 위해 서로 대화 할 수 있으며 작업을 응집력있는 아키텍처로 통합하는 방법에 대해 이야기 할 수 있습니다.

마이크로 프론트 엔드는 정말 멋지지만 규모에 맞게 운영 할 때까지 필요하지 않은 것 중 하나 인 것처럼 보입니다.


3
응용 프로그램 전체에서 단일 프레임 워크 버전으로 설정하는 것이 노력의 가치가 있다고 생각합니다.
— Robert Harvey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.