모듈 선택 기술에 대한 사례 연구
최근에 고객이 회사의 Drupal 사이트에 새로운 기능을 추가하라고 요청했습니다. 브라우저에 PDF 파일을 표시합니다. drupal.org의 옵션을 탐색하면서 새로운 모듈을 선택하면서 이것이 내 의사 결정 프로세스를 문서화 할 수있는 완벽한 기회임을 깨달았습니다. 나는 모듈을 현명하게 선택 한다고 항상 말하고 있지만, 이제는 이것이 실제 생활에서 어떻게 작동 하는지를 볼 수 있습니다.
원하는 것을 정의하십시오.
첫 번째 단계는 원하는 것을 정의하는 것입니다. 내 경우에는, 나는 원했다.
- 이 예제와 마찬가지로 웹 브라우저에서 PDF 파일을 볼 수있는 기능. 고객은 회사 뉴스 레터의 PDF를 업로드하고 방문자는 쉽게 읽을 수 있습니다.
- 사이트는 드루팔 (Drupal) 7 이므로 모듈은 주요 버전 과 일치해야합니다. (드루팔 (Drupal 7)은 잠시 나갔다. 모듈 개발자가 아직 드루팔 (Drupal 7) 버전을 발표하지 않았다면 아마 그렇지 않을 것이다.
- 클라이언트가 이것을 지정하지 않았지만 제 3 자 서비스에 의존하지 않으려했습니다. 동영상의 경우 YouTube 또는 Vimeo에 콘텐츠를 게시 한 다음 Drupal 사이트에 삽입하는 것이 좋지만 PDF의 경우 잠재적 인 번거 로움, 파손 및 비용을 초과하는 노출 가능성은 없을 것이라고 생각했습니다. 그러나 유일한 옵션 인 경우 제 3 자 서비스를받을 수있었습니다.
- 제 3 자 서비스를 피하려는 제 소원에도 불구하고 제 선택에 제 3 자 자바 스크립트 라이브러리가 필요할 것임을 알고있었습니다. 이렇게하면 향후 업그레이드에 추가 단계가 추가되지만 일반적으로 제 3 자 서비스에 의존하는 대신 내 자신의 라이브러리 복사본을 실행하는 것이 좋습니다.
- 모듈을 최대한 가볍고 특수하게 유지하려고했습니다. 나는 미디어 파일을 다루거나 조직하는 근본적으로 새로운 방식에 개입하고 싶지 않았습니다. 나는 더 나은보기를 위해 이미지를 확대하는 Colorbox와 비슷한 것을 원했지만 이미지 파일을 관리하는 방법과 완전히 독립적으로 남아 있습니다. 나는이 라이브러리가 pdf.js가 될 것이라는 직감을 가지고 있었지만 다른 가능성을 열어 보았습니다.
- 평소처럼 Drupal 모듈을 선택하기위한 일반적인 지침을 따르기를 원했습니다. 기본적으로 수천 명의 사람들이 이미 사용하고있는 모듈을 선택하십시오. 가능한 한 의존성을 최소화하고 잠시 동안 프로젝트를 계속 지원할 계획 인 활성 개발자가 유지 관리하는 것으로 보이는 모듈을 선택하십시오. 라이센스 비용이 필요합니다.
Drupal.org에서 검색
이러한 목표를 염두에두고 다음 단계는 Drupal.org에서 간단한 검색이었습니다. 시간을 모듈 공의 구덩이에 뛰어들.
& # 34; 비교 & # 34; PDF 모듈 용 페이지
내 첫 번째 중지 (또는 했어야했다),이 페이지 : PDF 뷰어 모듈의 비교. Drupal.org는 동일한 공간에서 다양한 모듈의 장점과 단점을 설명하는 문서 페이지의 훌륭한 전통을 가지고 있습니다. 비교 페이지의 목록이 중앙에 있지만 사이트 전체에 뿌려져 있습니다.
PDF 비교 페이지에는 4 개의 PDF 뷰어 모듈이 포함되어 있습니다. 나는 그들을 여기에서 다룰 것이고, 내가 찾은 것으로서 발견 한 몇 사람을 포함시킬 것이다. 제가 건너 뛰기로 결정한 후보자들부터 시작하겠습니다.
이제이 모듈이이 프로젝트에서 왜 작동했는지 (또는 대부분 그렇지 않은) 구체적인 내용을 살펴 보겠습니다.
파일 뷰어
파일 뷰어는 Internet Archive BookReader를 사용하는데, 나는 인터넷 아카이브 중독자이기 때문에 저를 흥미롭게했습니다. 내가 갈 때마다, 나는 두려움의 간질을 느끼고 에테르에서 뽑아 낼 수있는 책의 산을 압도한다.
즉, 데모 사이트는 나에게보기 흉한 듯 보였습니다. 나는 그걸로 살아갈지도 모르지만 pdf.js가 훨씬 세련된 것처럼 보일 때 내 고객이 의심했다.
또한 프로젝트 페이지를 두 번째로 보았을 때 맨 위에 큰 대담한 발표를 보았습니다. 이 모듈은 공식적으로 PDF 모듈로 옮겨졌습니다 . 공정하다. 400 개 이하의 설치로 더 인기있는 PDF 모듈 (잠시 후에 다룰 예정)과 병합하는 것이 좋은 방법입니다. 병합 / 이동 / 취소 된 모듈을 다운로드하지 마십시오.
Google 뷰어 파일 포맷터
Google Viewer File Formatter는 Google 문서 도구를 사용하여 웹 페이지에 파일 표시를 삽입하는 방법입니다. Google 문서 도구의 다양성을 좋아했지만 제 목표 중 하나는 제 3 자 서비스와 독립적으로 유지하는 것이 었습니다.
또한이 모듈의 설치 횟수는 100 개 미만입니다.
Ajax 문서 뷰어
"AJAX"는 일반적인 자바 용어이지만 Ajax 문서 뷰어는 특정 타사 서비스에 의존하는 것으로 나타났습니다. 약 100 개의 설치 만. 계속 전진 ...
Scald PDF
Scald PDF에는 40 개의 설치 만 있었지만 분명히 Scald라고 불리는 더 큰 프로젝트의 일부 였기 때문에 살펴보아야했습니다. Scald 프로젝트 페이지에서 " Scald는 Drupal에서 Media Atoms 를 다루는 혁신적인 방법입니다."
그 문장은 "혁신적인 테이크"와 "미디어"라는 단어가 "아톰"과 짝을 이루는 두 개의 거대한 붉은 깃발을 일으켰습니다. "Atom"은 분명히 "물건"에 대한 용도 변경된 단어였습니다. 드루팔 (Drupal은 노드 , 엔티티 , 피쳐) 라는 빈 상자 유형의 단어에 더 많은 관심을 가지고 있습니다. 더 일반적인 단어 일수록 변경 사항이 광범위 할 수 있습니다.
내가 아래로 스크롤 할 때, 나의 의혹이 확인되었다. Scald가 어떻게 내 사이트에서 Media를 어떻게 처리했는지에 대한 흥미로운 주장을 읽습니다.
이제 진실은 드루팔 (Drupal)의 미디어 처리가 재발 명을 사용할 수 있다는 것입니다. Scald는이 분야에서 야심 찬 프로젝트는 아닙니다. 그러나 지금까지 설치가 1000 개 미만 이었지만 1 층에 들기를 원하지 않았습니다.
물론, 내년에이 시간까지, Scald가 다음 Views 일지도 모릅니다. 그렇게 될 것입니다. 그러나 깨지기 쉬운 사이트의 작은 흔적을 남기고 포기할 수도 있습니다.
지금 당장은 덜 야심 차고 위험한 해결책을 고수하고 싶었습니다. PDF 만 표시하십시오. 그게 내가 묻는 전부 야.
그림자 상자
Shadowbox는 저를 놀라게했습니다. PDF에서 이미지, 비디오까지 모든 종류의 미디어를 표시하는 단일 솔루션이라고 주장했습니다. Scald만큼이나 휩쓸 리지 않았습니다. 왜냐하면 "Media Atoms"와 같은 완전히 새로운 개념을 도입하지 않고 미디어를 표시하는 데에만 집중할 것이기 때문입니다. 하지만 이미 언급 한 것처럼 Colorbox를 좋아합니다. 나는 그 결정을 다시 생각할 필요가 없다.
그러나, 16,000 가지가 넘는 설치로 Shadowbox가 같은 공간에서 더 강력한 대안이 될 수 있다는 사실을 알았습니다. 나는 한 번 봐야했다.
Shadowbox Drupal 모듈은 기본적으로 Javascript 라이브러리 Shadowbox.js에 대한 다리이므로 라이브러리 웹 사이트를 체크 아웃했습니다. 거기에서 나는 계속 나아갈 두 가지 이유를 발견했다 :
- 도서관은 상업적 사용을위한 라이센스 비용이 필요합니다. 수수료는 충분히 합리적 이었지만 무료가 아닌 오픈 소스 소프트웨어를 피하려고했습니다 .
- FAQ를주의 깊게 살펴보면 Drupal 모듈 페이지의 설명과 달리 PDF가 Shadowbox 라이브러리에서 100 % 지원 되지 않는다는 사실이 드러났습니다. 죄송합니다. 내가 확인해 줬어.
2 명의 경쟁자 : & # 34; PDF & # 34; & # 34; PDF 리더 & # 34;
나머지를 없애고 필자는 두 가지 명백한 경쟁자 인 PDF 및 PDF Reader
이 두 프로젝트는 주요 유사점을 가지고있었습니다 :
- 둘 다 대체품보다 훨씬 많은 3 천 건이 설치되었습니다 (Shadowbox 제외).
- 둘 다 동일한 외부 자바 스크립트 라이브러리 pdf.js를 사용했습니다.
차이점은 무엇입니까?
PDF 리더 에는 Google 문서 도구 통합 옵션도있었습니다. 이 특별한 경우에는 내 고객이 좋아할 것이라고 생각했기 때문에 옵션을 선호했습니다.
한편 PDF 는 공동 관리자를 찾는 것으로 표시되었습니다. 이는 개발자가 곧 프로젝트를 포기할 것이라는 신호 일 수 있지만, 다른 한편으로는 가장 최근의 커밋은 일주일 전 이었으므로 적어도 개발자는 여전히 활동적이었습니다.
한편, PDF Reader 는 적극적으로 유지 관리 된 것으로 표시되었지만 가장 최근 커밋은 1 년 전이었습니다.
분명한 승자가 없으면 두 가지를 모두 테스트하기로 결정했습니다.
경쟁자 테스트
나는 살아있는 사이트의 복사본에 두 모듈을 모두 테스트했다. (모듈이 얼마나 탄탄하고 무해한 지간에 라이브 사이트에서 처음 시도하지 마십시오. 전체 사이트가 손상 될 수 있습니다.)
나는 PDF 보다 더 많은 옵션 (예 : Google 문서 도구)을 갖고있는 것처럼 보였으므로 PDF Reader 에 편향되었습니다. 그래서 PDF를 먼저 사용하기로 결정했습니다.
PDF 실패 : 편집 필요?
그러나 PDF를 설치하고 README.txt를 읽을 때 프로젝트 페이지에서 본 적이 있지만 무시 된 문제점을 발견했습니다. 어떤 이유로이 모듈은 pdf.js를 수동으로 컴파일해야 할 필요가있는 것처럼 보입니다. 프로젝트 페이지에서 이것이 반드시 필요한 것은 아니지만 README.txt가 제안했습니다.
PDF Reader 는이 단계를 거치지 않고도 똑같은 라이브러리를 사용할 것이기 때문에 먼저 시도해보기로 결정했습니다. 작동하지 않으면 PDF 로 돌아가서 pdf.js를 수동으로 컴파일 할 수 있습니다.
PDF 리더 : 성공! 일종의.
그래서, 마침내 필자는 PDF Reader를 사용해 보았습니다. 이 모듈은 File 필드를 표시하기위한 새로운 위젯을 제공합니다. 원하는 내용 유형에 파일 필드를 추가하고 위젯 유형을 PDF Reader로 설정합니다. 그런 다음이 유형의 노드를 만들고 PDF를 업로드합니다. PDF가 페이지의 "상자"에 포함 된 것처럼 보입니다.
콘텐츠 형식을 다시 편집하고 필드의 표시 설정을 변경하여 다른 표시 옵션을 시도해 볼 수 있습니다.
각 디스플레이 옵션마다 장단점이 있음을 발견했습니다.
- Google 문서 리더는 퍼가기 기능을하는 데는 문제가 없었지만 전체 화면으로 이동하려면 클릭 한 후 Google 문서 도구 페이지에서 필자의 속도 제한이 초과되었음을 사과했습니다. 죄송합니다. 아마도이 모듈을 유료 Google Apps 계정에 연결하면 더 신뢰할 수 있지만 고객이 디스플레이가 마음에 들지 않을 것이라고 확신했기 때문에 걱정하지 않아도됩니다.
- pdf.js 옵션은 Firefox와 Chrome에서 멋지게 작동했습니다. 하지만 Internet Explorer를 실행하면 상자가 비어있는 것처럼 보였습니다. 분명히 이것은 PDF 리더 모듈이 아니라 pdf.js 자체의 문제입니다. 나는 pdf.js가 Mozilla와 Internet Explorer에 의해 개발되었다는 것을 감안할 때, 필자가 예상 했어야한다고 생각합니다. 그래도 나는 pdf.js가 처음부터 모든 브라우저에서 안정적으로 작동했는지는 생각하지 못했습니다.
- 퍼가기 옵션이 가장 안정적이었습니다. 이것은 실제로 Adobe Reader를 웹 페이지의 상자에서 실행했습니다. 필자의 파이어 폭스는 여전히 pdf.js를 사용하기를 원했지만 이것이 브라우저 설정이라고 생각합니다. 어쨌든 방문자가 Firefox 나 Adobe Reader와 같은 PDF 뷰어를 사용하는 한 PDF가 표시됩니다.
결국, 필자의 해결책은 Embed display 옵션을 사용하여 PDF Reader 를 사용하는 것이 었습니다. 이 옵션을 사용하면 Drupal 노드에 PDF를 첨부하고 Drupal 웹 페이지에이를 안정적으로 표시 할 수 있습니다.
불행히도, 때로는 "신뢰할 수있는"충분하지 않습니다. 이 모든 검색을 마친 후에는 결국 제 3 자 서비스를 고려해야했습니다.