it-swarm-ko.com

Progressive Enhancement와 Graceful Degradation의 차이점은 무엇입니까?

Progressive Enhancement 란 무엇입니까? 이 개념을 이해할 수 없습니다. 작동 방식 및 모델이 Graceful Degradation과 다른/더 나은 (?) 방법은 무엇입니까?

7
pramodc84

Motolix의 답변은 매우 광범위하므로 웹 개발과 관련된 답변을 추가하겠습니다.

프로그레시브 향상 은 모든 사람이 사용할 수있는 웹 사이트를 생성 한 다음 액세스 할 수있는 사용자의 경험을 향상시키는 고급 기능을 레이어에 추가 할 때입니다. . 예를 들어, 기본 텍스트 웹 사이트는 디자인 (스타일 시트), 대화 형 기능 (자바 스크립트) 및 비디오 (플래시)를 포함하도록 업그레이드 할 수 있습니다. 그러나 웹 사이트는 계속 텍스트 기반 웹 사이트처럼 작동합니다. wikipedia의 점진적 향상 정의 에서 자세히 읽어보십시오.

대폭적인 저하 내결함성 시스템 설계의 특정 지점이 작동하지 않습니다. Wikipedia 기사는 HTML을 좋은 예로 제시합니다. HTML5는 인식 할 수없는 태그가있는 경우 HTML 파서 자체가 중단되지 않기 때문에 모든 브라우저에서 작동합니다. 그러나 구형 브라우저는 이러한 태그를 인식하지 못하므로 이와 관련된 기능 (예 : 범위, 숫자, 날짜, 시간, 색상 등과 같은 다양한 새로운 입력 유형)을 제공 할 수 없습니다. 또 다른 예는 CSS에서 색상과 배경색을 함께 설정하지만 이미지로 색상을 재정의하는 것입니다. 이미지가로드되지 않으면 텍스트를 여전히 읽을 수 있지만 배경색이 텍스트를 읽을 수있는 색상인지 확인하지 않는 경우에는 해당되지 않을 수 있습니다.

이 둘의 차이점은 시작하는 곳입니다. 프로그레시브 향상은 견고한 기반으로 시작하여 그로부터 향상시키는 한편 개선이 지원되지 않는 경우 지속적인 작동을 보장합니다. 정상적인 성능 저하는 고급 응용 프로그램으로 시작하지만 특정 요소가 지원되지 않으면 계속 작동합니다. 분명히 이것은 어느 시점에서 두 개념 사이에 교차점이 있음을 의미합니다.

9
Rahul

점진적 향상은 견고한 기본 제품으로 시작하여 거기서부터 확장하는 프로세스입니다. 예를 들어, 정말 좋은 비디오 플레이어로 시작한 다음 재생 목록을 추가 한 다음 비디오 변환기를 추가합니다. 기본적으로 단일 지점에서 시작하여 필요에 따라 바깥쪽으로 확장됩니다 (일반적으로 사용자 피드백)

예를 들어, 너무 많은 기능을 가진 웹 사이트를 구축했다고 가정하면, 우아한 성능 저하는 반대입니다. 우아한 성능 저하 프로세스를 사용하여 불필요한 기능을 천천히 제거하고 중요한 기능을 강화할 수 있습니다. 편집 : 그것을 그물처럼 생각하십시오 ... 당신은 가능한 한 많이 잡기를 원한 다음 실제로 잡는 것에 대해 계약합니다.

나는 진보적 인 향상이 대개 대부분의 프로젝트에서 더 나은 "모델"이라고 생각합니다. 끊임없는 아이디어 나 "기능적 크리프 (feature-creep)"프로세스에 빠지기가 매우 쉽기 때문입니다. 프로그레시브 모델을 따르면 사용자 피드백에 직접 응답하고 필요에 따라 확장하여이를 피할 수 있습니다. 그러나 최종 목표에 대한 비전을 세우기가 더 어렵 기 때문에보다 유연한 접근 방식이 필요합니다 ... (종종 두 모델이 같은 장소에 있기 때문에 소규모로 시작하는 것이 좋습니다.).

그것이 도움이되기를 바랍니다. 길이가 미안합니다.

2
Motolix