دراسة حالة في فن اختيار الوحدة
في الآونة الأخيرة ، طلب مني أحد العملاء إضافة ميزة جديدة إلى موقع دروبال الخاص بالشركة: عرض ملفات PDF في المتصفح. عندما كنت أتصفح الخيارات على drupal.org ، أدركت أن هذه كانت فرصة مثالية لتوثيق عملي الفعلي في عملية صنع القرار عندما اخترت وحدة نمطية جديدة. أنا دائما أقول لاختيار وحدات بحكمة ، ولكن الآن يمكنك أن ترى كيف أعتقد أن هذا يعمل في الحياة الحقيقية.
حدد ما تريد
الخطوة الأولى هي تحديد ما تريد. في حالتي ، أردت:
- القدرة على عرض ملفات PDF في متصفح الويب ، على غرار هذا المثال. سيقوم العميل بتحميل ملفات PDF من النشرة الإخبارية للشركة ، وسيكون الزوار قادرين على قراءتها بسهولة.
- الموقع هو دروبال 7 ، لذلك تحتاج الوحدة إلى مطابقة الإصدار الرئيسي . (لقد كان دروبال 7 منذ فترة حتى الآن ، لذلك إذا لم يخرج مطور برامج ما بنسخة 7 دروبال بعد ، فربما لن يفعل ذلك).
- على الرغم من أن العميل لم يحدد هذا ، إلا أنني أردت أيضًا تجنب الاعتماد على خدمة تابعة لجهة خارجية. بالنسبة إلى مقاطع الفيديو ، يسعدني نشر المحتوى على YouTube أو Vimeo ثم تضمينه في موقع Drupal ، ولكن بالنسبة إلى ملفات PDF ، لم أكن أعتقد أن التعرض الإضافي المحتمل قد يفوق احتمال حدوث مشكلات وكسر ونفقات. ومع ذلك ، كنت منفتحة على خدمة طرف ثالث إذا كان هو الخيار الوحيد.
- على الرغم من رغبتي في تجنب خدمة طرف ثالث ، كنت أعرف أن اختياري قد يتطلب مكتبة جافا سكريبت تابعة لجهة خارجية. على الرغم من أن ذلك سيضيف خطوة إضافية على الترقيات المستقبلية ، إلا أنني أشعر بشكل عام بشكل أفضل حول تشغيل نسخة خاصة بي من مكتبة بدلاً من الاعتماد على خدمة طرف ثالث.
- كنت أرغب في الحفاظ على الوحدة خفيفة الوزن ومحددة قدر الإمكان. لم أكن أرغب في الانخراط في طريقة جديدة جذريًا للتعامل مع ملفات الوسائط أو تنظيمها. كنت أرغب في شيء أكثر مثل Colorbox ، الذي يكبر الصور لمشاهدة أفضل ، ولكن يبقى مستقلة تماما عن الطريقة التي تختارها لإدارة ملفات الصور. كان لدي حدس أن هذه المكتبة ستكون pdf.js ، لكني كنت منفتحة على الاحتمالات الأخرى.
- كالعادة ، أردت اتباع الإرشادات العامة لاختيار وحدة دروبال. باختصار ، اختر وحدة نمطية تم استخدامها بالفعل من قبل بضعة آلاف من الأشخاص (إن أمكن) لفترة قصيرة ، مع حد أدنى من التبعيات ، يبدو أنه يتم الحفاظ عليه بواسطة مطور نشط يخطط للاستمرار في دعم المشروع في المستقبل ولا يفعل ذلك. ر تتطلب رسوم الترخيص.
ابحث على Drupal.org
مع وضع هذه الأهداف في الاعتبار ، كانت الخطوة التالية عبارة عن بحث بسيط على Drupal.org. حان الوقت للقفز في حفرة الكرة من وحدة الخير.
& # 34؛ & # مقارنة 34؛ صفحة لوحدات PDF
كانت محطتي الأولى (أو كان يجب أن تكون) ، هذه الصفحة: مقارنة بين وحدات عارض PDF. يمتلك Drupal.org تقليدًا ممتازًا لصفحات التوثيق التي تحدد إيجابيات وسلبيات الوحدات المختلفة في نفس المكان. توجد قائمة مركزية لصفحات المقارنة ، ولكنها أيضًا يتم رشها في جميع أنحاء الموقع.
تضمنت صفحة مقارنة PDF أربع وحدات عارض PDF. سأغطيهم هنا ، بالإضافة إلى زوجين آخرين عثرت عليهما من البحث. سأبدأ مع المرشحين قررت تخطي.
الآن دعونا نتعمق في تفاصيل لماذا هذه الوحدات (أو في الغالب لم تكن) تعمل لهذا المشروع.
عارض الملفات
يستخدم عارض الملفات Internet BookReader ، الذي أثار اهتمامي لأنني مدمن على الإنترنت. في كل مرة أذهب فيها إلى هناك ، أشعر بدغد خوف وسحق في جبال الكتب التي يمكن أن أتقطها من الأثير.
ومع ذلك ، بدا موقع المظاهرة قبيحًا بالنسبة لي. قد أعيش معها ، لكنني شككت في أن موكلي سيبدو عندما تبدو pdf.js أكثر أناقة.
أيضا ، في نظرة ثانية على صفحة المشروع ، رأيت الإعلان الجريء الكبير في الأعلى: تم نقل هذه الوحدة إلى وحدة PDF رسميًا . عادل بما يكفي. مع أقل من 400 عملية تثبيت ، فإن الاندماج مع وحدة PDF الأكثر شيوعًا (والتي سنغطيها في لحظة) ، يبدو كحركة جيدة. لا تقم أبدًا بتنزيل وحدة تم دمجها / نقلها / تركها.
منسق ملفات Google Viewer
إن Google Former File Formatter هو ما يبدو: طريقة لاستخدام مستندات Google لتضمين عروض الملفات في صفحة الويب الخاصة بك. على الرغم من أنني أعجبت براعة محرّر مستندات Google ، فإن أحد أهدافي هو البقاء مستقلاً عن أي خدمة تابعة لجهة خارجية.
أيضا ، هذه الوحدة لديها أقل من 100 التثبيت.
أجاكس عارض الوثيقة
على الرغم من أن "AJAX" هو مصطلح عام لـ Javascript ، فإن Ajax Document Viewer تبين أنه يعتمد على خدمة معينة تابعة لجهة خارجية. فقط حوالي 100 تثبيت. يتحرك ...
تحرق قوات الدفاع الشعبي
كان Scald PDF فقط 40 تثبيت ، ولكن كان لا بد من إلقاء نظرة ، حيث كان من الواضح جزء من مشروع أكبر يسمى (نعم) تحرق. كما أوضحت صفحة مشروع Scald: " Scald هي طريقة مبتكرة في كيفية التعامل مع Atoms Atoms في دروبال."
رفعت تلك الجملة اثنين من الأعلام الحمراء الضخمة: "اتخاذ مبتكرة" وكلمة "وسائل الإعلام" مقترنة "أتوم". من الواضح أن كلمة "أتوم" كانت عبارة عن كلمة "أغراض" ، والتي جعلت منها علامة حمراء في حد ذاتها. دروبال لديه ميل لهذا النوع الفارغ من الكلمات: عقدة ، كيان ، ميزة ... كلما كانت الكلمة أكثر عمومية ، كلما كانت التغييرات أكبر.
أثناء التمرير لأسفل ، تأكدت شكوكي. قرأت مطالبات مثيرة عن كيف أن السكالد سيعيد اختراع طريقة تعامل الوسائط على موقعي.
الآن ، الحقيقة هي أن معالجة دروبال لوسائل الإعلام يمكن أن تستخدم بعض التجديد. Scald ليس المشروع الطموح الوحيد في هذا الفضاء. ومع ذلك ، مع أقل من 1000 تثبيت حتى الآن ، لم أكن أرغب في الدخول إلى الطابق الأرضي.
بالتأكيد ، بحلول هذا الوقت من العام المقبل ، قد يكون Scald وجهات النظر القادمة. من شأنه أن الصخرة. ولكنها قد تكون أيضا مهجورة ، مع وجود درب (صغير) من المواقع المكسورة التي تركت للبكاء.
في الوقت الحالي ، أردت أن ألتزم بحل أقل خطورة وطموح بكثير. فقط عرض ملفات PDF ، من فضلك. هذا كل ما كنت أسأل.
Shadowbox
فاجأني Shadowbox: فقد ادعى أنه حل واحد لعرض جميع أنواع الوسائط ، من ملفات PDF إلى الصور إلى الفيديو. هذا لم يكن كاسحة مثل Scald ، لأنها سوف تركز فقط على عرض وسائل الإعلام دون إدخال مفاهيم جديدة كاملة مثل "وسائل الإعلام الذرات". لكنني بالفعل أحب Colorbox ، كما ذكرت. لم أكن أرغب في إعادة التفكير في هذا القرار.
ومع ذلك ، لاحظت (مع تأوه داخلي) أنه مع أكثر من 16000 عملية تثبيت ، يمكن أن يكون Shadowbox بديلاً أكثر قوة في نفس المكان. اضطررت لإلقاء نظرة.
إن وحدة Shadowbox Drupal هي في الأساس جسر إلى مكتبة Javascript ، Shadowbox.js ، لذا قمت بفحص موقع المكتبة. هناك ، اكتشفت سببين للانتقال إلى:
- تطلب المكتبة رسوم ترخيص للاستخدام التجاري. كانت الرسوم معقولة بما فيه الكفاية ، لكني أحاول تجنب البرامج مفتوحة المصدر غير المجانية .
- كشف بحث دقيق عن الأسئلة الشائعة أنه ، خلافاً للوصف الموجود في صفحة وحدة دروبال ، فإن ملفات PDF لا تدعمها مكتبة Shadowbox بنسبة 100٪. وجه الفتاة. شيء جيد راجعت.
المتنافسان: & # 34؛ PDF & # 34؛ و & # 34؛ PDF Reader & # 34؛
بعد أن أقصت البقية ، جئت الآن إلى المنافسين الواضحين: PDF و PDF Reader
كان لهذين المشروعين أوجه تشابه رئيسية:
- كان لكل منهما ما يقرب من 3000 تثبيت ، أكثر بكثير من البدائل (باستثناء Shadowbox).
- كلاهما يستخدم نفس مكتبة Javascript الخارجية ، pdf.js.
ماذا عن الاختلافات؟
كان PDF Reader أيضا خيارًا لتكامل مستندات Google. في هذه الحالة بالذات ، اعتقدت أن موكلي قد يعجبك ذلك ، لذا أحببت الخيار.
وفي الوقت نفسه ، تم وضع علامة PDF كمحافظ على المشاركة (ق). قد يكون ذلك علامة على أن المطور سيتخلى عن المشروع قريبًا ، ولكن من ناحية أخرى ، كان الالتزام الأخير هو قبل أسبوع ، لذلك على الأقل كان المطور لا يزال نشطًا.
من ناحية أخرى ، تم وضع علامة على برنامج PDF Reader على أنه تم الحفاظ عليه بشكل نشط ، ولكن الالتزام الأخير كان قبل عام.
بدون فائز واضح ، قررت اختبار كل منهما.
اختبار المتنافسين
اختبرت كلتا الوحدتين على نسخة من موقعي المباشر. (بغض النظر عن مدى وحدة نمطية وغير حميدة ، لا تحاول ذلك أولاً على موقع مباشر. يمكنك كسر موقعك بالكامل.)
لقد انحازت إلى PDF Reader ، لأنه يبدو أن لديها المزيد من الخيارات (مثل محرّر مستندات Google) من PDF . لذلك قررت أن أحاول إنشاء ملف PDF أولاً لإبعاده عن الطريق.
فشل PDF: التجميع مطلوب؟
ومع ذلك ، عندما قمت بتثبيت PDF وقراءة README.txt ، اكتشفت مشكلة رأيتها ولكن تم تجاهلها في صفحة المشروع. لسبب ما ، يبدو أن هذه الوحدة تتطلب منك تجميع pdf.js يدويًا. على الرغم من أن صفحة المشروع تشير إلى أن هذا لم يكن بالضرورة مطلوبًا ، فإن README.txt اقترح أنها كانت.
منذ استخدام قارئ PDF نفس المكتبة بالضبط دون الحاجة إلى هذه الخطوة ، فقد قررت تجربتها أولاً بعد كل شيء. إذا لم تنجح ، يمكنني دائمًا الرجوع إلى PDF ومحاولة تجميع pdf.js يدويًا.
قوات الدفاع الشعبي القارئ: النجاح! نوعا ما.
لذا ، بعد طول انتظار ، جربت قارئ PDF . توفر هذه الوحدة عنصرًا جديدًا لعرض حقل ملف. يمكنك إضافة حقل ملف إلى نوع المحتوى المطلوب وتعيين نوع عنصر واجهة المستخدم على قارئ PDF. بعد ذلك ، يمكنك إنشاء عقدة من هذا النوع وتحميل ملف PDF الخاص بك. يظهر ملف PDF مضمنًا في "مربع" في الصفحة.
يمكنك تجربة خيارات عرض مختلفة عن طريق تحرير نوع المحتوى مرة أخرى وتغيير إعدادات العرض للحقل.
لقد وجدت أن كل خيار من خيارات العرض كان له مزايا وعيوب:
- نجح قارئ مستندات Google في العمل بشكل جيد ، ولكن عندما نقرت عليه للانتقال إلى وضع ملء الشاشة ، انتهى بي الأمر إلى صفحة محرّر مستندات Google التي اعتذرت عن تجاوز حد سعري. وجه الفتاة. ربما يكون هذا أكثر موثوقية إذا قمت بتوصيل الوحدة إلى حساب مدفوع في Google Apps ، ولكن لم أكن أزعجني لمعرفة ذلك ، لأنني كنت على يقين من أن موكلي لن يعجبه.
- عمل الخيار pdf.js بشكل رائع ... على Firefox و Chrome. ولكن عندما أطلقت Internet Explorer ، ظهر المربع فارغًا. على ما يبدو ، هذه مشكلة في pdf.js نفسها ، وليس وحدة PDF Reader . أفترض أنني كنت أتوقع هذا ، بالنظر إلى أن pdf.js تم تطويره بواسطة Mozilla و Internet Explorer هو نفسه. ومع ذلك ، شعرت بخيبة أمل لأنني لم أفكر في تأكيد أن pdf.js عملت بشكل موثوق في جميع المتصفحات في المقام الأول.
- كان خيار التضمين هو الأكثر موثوقية. هذا في الواقع ركض Adobe Reader في صندوق على صفحة الويب. ما زال فايرفوكس يفضل تشغيل pdf.js ، لكني أعتقد أن هذا كان إعدادًا للمتصفح. في كلتا الحالتين ، طالما كان لدى أحد الزوار فايرفوكس أو عارض PDF مثل Adobe Reader ، فإن ملف PDF سيعرض.
وهكذا ، في النهاية ، كان الحل الخاص بي هو استخدام قارئ PDF مع خيار عرض Embed . يتيح لي هذا الخيار إرفاق ملف PDF بعقدة دروبال ، وعرضه على صفحة الويب دروبال.
لسوء الحظ ، في بعض الأحيان "غير موثوق بها" لا يكفي. بعد كل هذا البحث ، كان علي أن أفكر في خدمة طرف ثالث بعد كل شيء.