Študija primera v izboru modele umetnosti
V zadnjem času mi je naročnik prosil, da dodam novo funkcijo na družabno spletno mesto Drupal: v brskalniku prikažem datoteke PDF. Ko sem brskal o možnostih drupal.org, sem ugotovil, da je to odlična priložnost za dokumentiranje mojega dejanskega postopka odločanja, saj sem izbral nov modul . Vedno govorim, da modro izbere modele , zdaj pa lahko vidite, kako mislim, da to deluje v resničnem življenju.
Določite, kaj želite
Prvi korak je določiti, kaj hočeš. V mojem primeru sem hotel:
- Možnost ogleda datotek PDF v spletnem brskalniku, podobnem temu primeru. Stranka bi naložila PDF-je v bilten podjetja, obiskovalce pa bi jih lahko zlahka prebrali.
- Spletna stran je Drupal 7 , zato bi moral modul ustrezati tej glavni različici . (Družba Drupal 7 že nekaj časa že obstaja, zato če razvijalec modulov še ni prišel z različico Drupal 7, verjetno ne bo.)
- Čeprav stranka tega ni določila, sem se želela tudi izogibati uporabi storitve tretjih oseb. Za video posnetke z veseljem objavljam vsebino na YouTube ali Vimeo in jo nato vdelate na spletno mesto Drupal, vendar za PDF-je, nisem mislil, da bi morebitna dodatna izpostavljenost odtehtala možne težave, zlom in stroške. Vendar sem bil odprt za tretje osebe, če bi bila edina možnost.
- Kljub svoji želji, da bi se izognili tretji stranki, sem vedel, da bi moja izbira verjetno zahtevala tretje knjižnico Javascript. Čeprav bi to dodalo dodaten korak k prihodnjim nadgradnjam, se mi na splošno počutim bolje, če vodim lastno kopijo knjižnice, namesto da se zanašam na storitev tretje osebe.
- Želel sem ohraniti modul lahke in specifične, kot je mogoče. Nočem se vključiti v radikalno nov način ravnanja ali organiziranja medijskih datotek. Želel sem nekaj podobnega Colorboxu, ki povečuje slike za boljši pregled, vendar ostaja popolnoma neodvisen od tega, kako se odločate za upravljanje slikovnih datotek. Sem imel kurbo, da bi bila ta knjižnica pdf.js, vendar sem bil odprt za druge možnosti.
- Kot običajno sem želel slediti splošnim smernicam za izbiro Drupal modula. V bistvu izberi modul, ki ga že nekaj časa uporablja več tisoč ljudi (če je mogoče), z minimalnimi odvisnostmi, ki jih vzdržuje aktivni razvijalec, ki načrtuje, da bo projekt nadaljeval v prihodnosti, ne zahtevajo licenčnine.
Poiščite Drupal.org
S temi cilji je bil naslednji korak preprosto iskanje na Drupal.org. Čas, da skočite v kroglo modularne dobrine.
& # 34; Primerjava & # 34; Stran za module PDF
Moja prva postaja je bila (ali bi morala biti) ta stran: Primerjava modulov pregledovalnika PDF. Drupal.org ima odlično tradicijo dokumentiranja strani, ki opisujejo prednosti in slabosti različnih modulov v istem prostoru. Obstaja osrednji seznam primerjalnih strani, vendar jih tudi poškropi po celotni strani.
Na strani za primerjavo PDF so bili vključeni štirje moduli za pregledovanje PDF-jev. Tu jih bom pokril, pa tudi nekaj drugih, ki sem jih našel pri iskanju. Začel bom s kandidati, ki sem se odločil preskočiti.
Zdaj pa preučimo, zakaj so ti moduli delali (ali večinoma niso) za ta projekt.
Pregledovalnik datotek
File Viewer uporablja Internet Archive BookReader, ki me je zanimalo, ker sem narkomanka za internetno arhiviranje. Vsakič, ko grem tja, se čutim golobov strahu in se zaletim v gore knjig, ki jih lahko odtrgam od etra.
To je reklo, da je predstavitveno spletno mesto za mene nekoliko grdo. Lahko bi živel z njim, vendar sem dvomil, da bo moja stranka, ko bo pdf.js videti precej bolj eleganten.
Tudi na drugem pogledu na strani projekta sem videl veliko krepko sporočilo na vrhu: ta modul je bil uradno premeščen v modul PDF . Dovolj pošteno. Z manj kot 400 namestitvami se zdi, da se združi z bolj priljubljenim modulom PDF (ki ga bomo pokrili v trenutku). Nikoli ne prenesite modula, ki je bil združen / premaknjen / opuščen.
Google Former File Formatter
Google Former File Formatter je tisto, kar se sliši: način uporabe Google Dokumentov za vdelavo prikazov datotek na vaši spletni strani. Čeprav mi je bila všeč vsestranskost Google Dokumentov, je bil eden od mojih ciljev ostati neodvisen od katere koli tretje stranke.
Tudi ta modul je imel manj kot 100 namestitev.
Pregledovalnik dokumentov Ajax
Čeprav je »AJAX« splošen izraz za Javascript, se je Ajax Document Viewer izkazal kot odvisen od določene storitve tretjih oseb. Samo okoli 100 namestitev. Iti naprej...
Scald PDF
Scald PDF je imel samo 40 namestitev, vendar sem moral pogledati, saj je bil očitno del večjega projekta, imenovanega (da) Scald. Kot je razložila projektna stran Scald: " Scald je inovativen prevzem, kako ravnati z Atomi medijev v Drupalu."
Ta stavek je postavil dve veliki rdeči zastavici: "inovativni vzeti" in besedo "Mediji" v paru "Atom". "Atom" je bila očitno reagirana beseda za "stvar", zaradi katere je bila rdeča zastava samo po sebi. Družba Drupal ima nagnjenost k praznim besednim besedam: vozlišče , entiteti , funkcija ... Bolj splošna je beseda, če so morda bolj pereče spremembe.
Ko sem se pomikala navzdol, so bili sumničarji potrjeni. Prebral sem navdušene trditve o tem, kako bi Scald v osnovi znova odkril, kako sem na spletnem mestu obravnaval medije.
Resnica je, da bi Drupalovo ravnanje z mediji lahko uporabilo znova. Scald ni edini ambiciozen projekt v tem prostoru. Vendar pa z manj kot 1000 namestitvami doslej nisem hotel priti v pritličje.
Seveda, v tem času prihodnje leto bo Scald morda naslednji pogled . To bi stalo. Toda morda je tudi opustitev programske opreme, pri čemer je (majhna) sled prelomnih mest prepuščena.
Za zdaj sem se želel držati manj ambiciozne in nevarne rešitve. Prosim, samo prikazujte PDF-je. To je vse, kar sem spraševal.
Shadowbox
Shadowbox me je presenetil: trdil je, da je enotna rešitev za prikaz vseh vrst medijev, od PDF-jev do slik v video. To ni bilo čisto kot Scald, saj bi se osredotočilo samo na prikazovanje medijev brez uvedbe celih novih konceptov, kot so "Atomi medijev". Ampak jaz že všeč Colorbox, kot sem omenil. Nisem si hotel ponovno premisliti o tej odločitvi.
Vendar sem opazil (z notranjim groanom), da je z več kot 16.000 namestitvami Shadowbox lahko močnejša alternativa v istem prostoru. Moral sem pogledati.
Modul Shadowbox Drupal je v bistvu most v knjižnico Javascript, Shadowbox.js, zato sem preveril spletno stran knjižnice. Tam sem odkril dva razloga za nadaljevanje:
- Knjižnica zahteva licenčnino za komercialno uporabo. Pristojbina je bila dovolj razumna, vendar se trudim izogibati odprtokodni programski opremi, ki ni brezplačna .
- Skrbno iskanje pogosto zastavljenih vprašanj je razkrilo, da v knjižnici Shadowbox v nasprotju z opisom na strani modula Drupal PDF ni podprt 100%. Ups. Dobro sem preveril.
Dva kandidata: & # 34; PDF & # 34; in & # 34; PDF Reader & # 34;
Po tem, ko sem odpravil preostanek, sem prišel do dveh očitnih kandidatov: PDF in PDF Reader
Ti dve projekti sta imeli ključne podobnosti:
- Oba sta imela skoraj 3.000 namestitev, veliko več kot alternativ (razen Shadowbox).
- Oba sta uporabljala isto zunanjo knjižnico Javascripta, pdf.js.
Kaj pa razlike?
Možnost bralnika PDF je imela tudi možnost za integracijo Google Dokumentov. V tem konkretnem primeru sem mislil, da bi moji odjemalci to želeli, zato mi je všeč, da imam možnost.
Medtem je bil PDF označen kot Iskanje vzdrževalcev (-ov). To bi lahko bil znak, da bo razvijalec kmalu opustil projekt, na drugi strani pa najnovejša obveza pred tednom dni, zato je vsaj razvijalec še vedno aktiven.
Po drugi strani je bila bralnik PDF označena kot aktivno vzdrževana, vendar je bila najnovejša obveza pred letom dni.
Brez jasnega zmagovalca sem se odločil, da jih bom preizkusil.
Preizkušanje kandidatov
Testiral sem oba modula na kopiji mojega živega spletnega mesta. (Ne glede na to, kako trdna in neškodljiva se pojavlja modul, nikoli ne poskusite najprej na spletnem mestu v živo. Lahko bi prekinili celotno spletno stran.)
Bil sem pristranski proti programu PDF Reader , ker se je zdelo, da ima več možnosti (na primer Google Dokumenti) kot PDF . Zato sem se odločil, da najprej preizkusim PDF , da ga odstranim s poti.
PDF Fail: Compilation Required?
Vendar, ko sem namestil PDF in prebral README.txt, sem odkril težavo, ki sem jo videl, a sem prezrta na strani projekta. Iz nekega razloga se zdi, da ta modul zahteva ročno izdelavo pdf.js. Čeprav je na strani projekta predlagano, da to ni nujno potrebno, je README.txt predlagal, da je bilo.
Ker bi PDF Reader uporabil popolnoma isto knjižnico, ne da bi zahteval ta korak, sem se najprej odločil poskusiti. Če ne bi delovala, bi se lahko vedno vrnila v PDF in poskusila ročno pripraviti pdf.js.
PDF Bralec: Uspeh! Nekako.
Torej, končno sem poskušal PDF Reader . Ta modul ponuja nov pripomoček za prikaz polja datoteke. Polju datotek dodate v želeno vrsto vsebine in vrsto pripomočka nastavite v PDF Reader. Nato ustvarite to vrsto vozlišča in naložite svoj PDF. PDF je vdelan v "polje" na strani.
Različne možnosti prikaza lahko poskusite znova, tako da znova uredite vrsto vsebine in spremenite nastavitve zaslona za to polje.
Ugotovil sem, da ima vsaka možnost prikaza prednosti in slabosti:
- Bralnik Google Dokumentov je dobro delal kot vdelavo, a ko sem ga kliknil, da bi šel v celozaslonski način, sem končal na strani Google Dokumentov, ki se je opravičila, da je bila moja zgornja meja presežena. Ups. Morda bi bilo to bolj zanesljivo, če bi zasnoval modul za plačilni račun za Google Apps, vendar nisem se motil, da bi ugotovil, ker sem bil prepričan, da moji odjemalci ne želijo prikaza.
- Možnost pdf.js je odlično delovala ... v Firefoxu in Chrome-u. Toda, ko sem odprl Internet Explorer, je bilo polje prazno. Očitno je to problem s samim pdf.js, ne modulom PDF Reader . Predvidevam, da bi to moral pričakovati, saj je datoteka pdf.js razvila Mozilla in Internet Explorer je ... sam. Kljub temu sem bil razočaran, ker nisem mislil, da bi potrdil, da je pdf.js v vseh brskalnikih zanesljivo deloval.
- Možnost embed je bila najbolj zanesljiva. To je dejansko vodilo Adobe Reader v polje na spletni strani. Moj Firefox je še vedno raje zagnal pdf.js, vendar mislim, da je to nastavitev brskalnika. Kakorkoli, dokler je obiskovalec imel Firefox ali pregledovalnik PDF, kot je Adobe Reader, bi se PDF prikazal.
Tako sem na koncu rešil uporabo PDF Readerja z možnostjo prikaza Embed . Ta možnost mi bo omogočila, da priložite PDF v vozlišče Drupal in ga zanesljivo prikažete na Drupalovi spletni strani.
Na žalost včasih "zanesljiv" ni dovolj. Po vsem tem iskanju sem moral navsezadnje upoštevati tretjo stranko.