Modelio pasirinkimo meno atvejo studija
Neseniai klientas paprašė man pridėti naują funkciją įmonės Drupal svetainėje: rodyti PDF failus naršyklėje. Kai peržiūrėjau drupal.org pasirinkimus, supratau, kad tai buvo puiki galimybė dokumentuoti mano faktinį sprendimų priėmimo procesą, nes pasirinko naują modulį . Aš visada sakau, kad išmintingai pasirinkti modulius , bet dabar jūs galite pamatyti, kaip manau, kad tai veikia realiame gyvenime.
Apibrėžkite tai, ko norite
Pirmasis žingsnis yra apibrėžti tai, ko norite. Mano atveju norėjau:
- Galimybė peržiūrėti PDF failus žiniatinklio naršyklėje, panašus į šį pavyzdį. Klientas įkelia įmonės informacinio biuletenio PDF rinkmenas, o lankytojai galėtų juos lengvai perskaityti.
- Svetainė yra Drupal 7 , todėl moduliui reikės suderinti tą pagrindinę versiją . (Drupal 7 jau buvo šiek tiek užtruko, taigi, jei modulio kūrėjas dar nepateikė drupal 7 versijos, jie greičiausiai nebus.)
- Nors klientas to nenurodė, aš taip pat norėjau nenorėti pasikliauti trečiosios šalies paslauga. Dėl vaizdo įrašų malonu paskelbti turinį į "YouTube" arba "Vimeo", o vėliau įterpti jį į Drupal svetainę, tačiau manau, kad galimas papildomas poveikis neapsunkins galimų sunkumų, trūkumų ir išlaidų. Tačiau man buvo atvira trečiosios šalies paslaugai, jei tai buvo vienintelė galimybė.
- Nepaisant to, kad norėjau išvengti trečiosios šalies paslaugos, žinau, kad pasirinkus tikriausiai reikės trečiosios šalies "Javascript" bibliotekos . Nors tai papildytų papildomą žingsnį būsimiems naujinimams, paprastai manau, kad geriau naudotis savo bibliotekos kopija, o ne pasikliauti trečiosios šalies paslauga.
- Aš norėjau išlaikyti modulį kaip lengvą ir specifinį. Aš nenorėjau įsitraukti į radikaliai naują būdą tvarkyti ar organizuoti medijos failus. Aš norėjau kažko panašaus į "Colorbox", kuris išplečia vaizdus, kad juos būtų lengviau peržiūrėti, tačiau lieka visiškai nepriklausomas nuo to, kaip pasirenkate tvarkyti vaizdo failus. Turėjau prielinksnį, kad ši biblioteka būtų pdf.js, bet aš galėčiau naudotis kitomis galimybėmis.
- Kaip įprasta, norėjau laikytis bendrųjų Drupal modulio pasirinkimo gairių. Iš esmės, pasirinkite modulį, kurį jau keletą tūkstančių žmonių (jei įmanoma) jau naudojosi tam tikru metu, su mažiausiai priklausomybėmis, kurį, atrodo, palaiko aktyvus kūrėjas, kuris ketina toliau remti projektą ateityje ir neturi " t reikia licencijos mokesčio.
Ieškoti Drupal.org
Atsižvelgiant į šiuos tikslus, kitas žingsnis buvo paprasta Drupal.org paieška. Laikas įšokti į Modulio gilumà.
& # 34; Palyginimas & # 34; PDF modulių puslapis
Mano pirmasis sustojimas buvo (arba turėjo būti), šis puslapis: "PDF" žiūryklės modulių palyginimas. "Drupal.org" turi puikią dokumentacijos puslapių tradiciją, kurioje aprašomi skirtingų modulių privalumai ir trūkumai toje pačioje vietoje. Yra centrinis palyginimo puslapių sąrašas, tačiau jie taip pat yra apibarstyti visoje svetainėje.
PDF palyginimo puslapyje buvo keturi PDF žiūryklės moduliai. Aš apims juos čia, taip pat pora kitų, kuriuos radau ieškant. Pradėsiu nuo kandidatų, kuriuos nusprendžiau praleisti.
Dabar leiskite išsiaiškinti, kodėl šie moduliai (arba daugiausia ne) dirbo šiame projekte.
Failų peržiūros programa
Failų peržiūros programa naudoja internetinį archyvą "BookReader", kuris mane intriguoja, nes aš esu interneto archyvo mėgėjas. Kiekvieną kartą, kai aš einu ten, aš jaučiuosi baimės spąstais ir priblokšta knygų kalnuose, kuriuos galiu ištraukti iš eterio.
Tai sakant, demonstravimo vieta atrodė šiek tiek negraži. Galėčiau gyventi su juo, bet aš abejoju mano klientui, kai pdf.js atrodo kur kas stipresnis.
Be to, antrą kartą pažvelgus į projekto puslapį, mačiau didžiulį staigią skelbimą viršuje: šis modulis buvo oficialiai perkeltas į PDF modulį . Pakankamai teisingas. Su mažiau nei 400 diegimų, sujungusį su labiau populiariuoju PDF moduliu (kurį vienu metu apimsime), atrodo, yra geras žingsnis. Niekada atsisiųskite modulį, kuris buvo susijungęs / perkeltas / atsisakytas.
"Google" žiūryklės failų formatas
"Google" žiūrovų failų formatavimas yra tai, ką jis skamba kaip būdas naudoti "Google" dokumentus, norint įterpti failų rodymus jūsų tinklalapyje. Nors man patiko "Google" dokumentų universalumas, vienas iš mano tikslų buvo likti nepriklausomas nuo bet kokios trečiosios šalies paslaugos.
Be to, šiame modulyje buvo mažiau nei 100 diegimų.
Ajax dokumentų peržiūros programa
Nors "AJAX" yra bendras "Javascript" terminas, "Ajax" dokumentų peržiūros programa pasirodė priklausoma nuo konkrečios trečiosios šalies paslaugos. Tik apie 100 įdiegia. Perėjimas ...
Skald PDF
"Scald PDF" turėjo tik 40 įdiegimų, tačiau turėjau atrodyti, nes tai buvo dalis didesnio projekto, vadinamo "yes", "Scald". Kaip paaiškino " Scald " projekto puslapis: " Skaldas yra novatoriškas būdas" Drupal "valdyti" Media Atoms ".
Šiame sakinyje iškilo dvi didžiulės raudonos vėliavos: "novatoriškas" ir žodis "Media" suporuotas su "Atom". "Atomas", be abejo, buvo išreikštas žodis "dalykui", kuris pavertė ją raudona vėliava. "Drupal" turi šioms tuščioms langelėms būdingą žodžių tipą: mazgas , objektas , funkcija ... Kuo bendresnis žodis, tuo daugiau pakeitimų gali būti.
Kai aš važiuoju, mano įtarimai buvo patvirtinti. Aš perskaičiau malonius teiginius apie tai, kaip Scald iš esmės sugalvojo, kaip tvarkiau žiniasklaidą mano svetainėje.
Dabar tiesa yra tai, kad Drupal "Media" tvarkymas gali panaudoti kai kuriuos išradimus. Skaldas nėra vienintelis plataus užmojo projektas šioje erdvėje. Vis dėlto iki šiol įdiegiau mažiau nei 1000, nenorėjau patekti į pirmąjį aukštą.
Žinoma, iki šiol kitais metais "Scald" gali būti ir kiti vaizdai . Tai būtų roko. Bet tai taip pat gali būti be abandonware, kai (maža) trasa skaldytų svetainių paliekama verkti.
Šiuo metu norėjau laikytis kur kas mažiau ambicingo ir pavojingo sprendimo. Prašome rodyti PDF failus. Tai viskas, ko paklausiau.
Shadowbox
"Shadowbox" mane nustebino: jis teigė esantis vienintelis būdas rodyti visų rūšių žiniasklaidą, nuo PDF į vaizdus į vaizdo įrašą. Tai nebuvo tokia šlavinanti, kaip "Scald", nes ji būtų orientuota tik į žiniasklaidos rodymą, neįvedant visiškai naujų sąvokų kaip "Media Atoms". Bet aš jau kaip Colorbox, kaip minėjau. Aš nenorėjau persvarstyti šio sprendimo.
Tačiau aš pastebėjau (su vidiniu groanu), kad su daugiau nei 16 000 įdiegimų, "Shadowbox" gali būti galingesnė alternatyva toje pačioje vietoje. Turėjau atrodyti.
"Shadowbox" "Drupal" modulis iš esmės yra tiltas į "Javascript" biblioteką Shadowbox.js, todėl aš užsiregistravau bibliotekos tinklalapyje. Ten radau dvi priežastis:
- Biblioteka reikalauja licencijos mokesčio už komercinį naudojimą. Mokestis buvo pakankamai pagrįstas, bet stengiuosi išvengti atvirojo kodo nemokamos programinės įrangos .
- Kruopščiai ieškodami DUK paaiškėjo, kad, priešingai nei Drupal modulio puslapyje pateiktame apraše, "Shadowbox" bibliotekos PDF failai nėra 100%. Oi! Geras dalykas, kurį aš patikriniau.
Du konkurentai: & # 34; PDF & # 34; ir "PDF Reader" & # 34;
Pašalinus likusius, aš atėjau prie dviejų akivaizdžių kandidatų: PDF ir PDF Reader
Šie du projektai turėjo esminių panašumų:
- Abiejuose buvo beveik 3000 instaliacijų, daug daugiau nei alternatyvos (išskyrus "Shadowbox").
- Abu naudojo tą pačią išorinę "Javascript" biblioteką, pdf.js.
Ką apie skirtumus?
"PDF Reader" taip pat galėjo integruoti "Google" dokumentus. Šiuo konkrečiu atveju maniau, kad mano klientas gali tai patikti, taigi man patiko galimybė.
Tuo tarpu PDF buvo pažymėtas kaip "Ieškau bendradarbio (-ų)". Tai gali būti ženklas, kad kūrėjas netrukus atsisakytų projekto, tačiau, kita vertus, naujausias įsipareigojimas buvo prieš savaitę, taigi bent jau kūrėjas vis dar aktyvus.
Kita vertus, " PDF Reader" buvo pažymėtas kaip "Aktyviai palaikoma", tačiau naujausias įsipareigojimas buvo prieš metus.
Be aiškios nugalėtojos, nusprendžiau juos išbandyti.
Konkurentų testavimas
Aš išbandžiau abu modulius savo tiesioginės svetainės kopijoje. (Nesvarbu, koks yra tvirtas ir nekenksmingas modulis, niekada išbandykite jį tiesioginėje svetainėje. Galite pertraukti visą svetainę.)
Aš buvau linkęs link PDF Reader , nes atrodė, kad turi daugiau galimybių (pvz., "Google Docs") nei PDF . Taigi pirmiausia nusprendžiau išbandyti PDF failą, kad būtų išvengta jo.
PDF failas: reikalingas rinkinys?
Tačiau kai aš įdiegiau PDF ir skaityti README.txt, radau problemą, kurią pamaniau, tačiau ignoravau projekto puslapyje. Dėl tam tikrų priežasčių šis modulis, atrodo, reikalauja, kad jūs pervadintumėte pdf.js rankiniu būdu. Nors projekto puslapyje teigiama, kad to nebūtinai reikia, README.txt pasiūlė, kad tai buvo.
Kadangi " PDF Reader " naudoja tą pačią biblioteką, nereikalaudama šio žingsnio, nusprendžiau pabandyti iš pradžių. Jei jis neveikia, visada galėjau grįžti į PDF ir bandyti rankiniu būdu kompiliuoti pdf.js.
PDF Reader: sėkmė! Kaip ir.
Taigi, galų gale, aš bandžiau " PDF Reader" . Šis modulis pateikia naują valdiklį rodyti lauką Failas. Jūs įtraukiate failo lauką į norimą turinio tipą ir nustatote valdiklio tipą į PDF skaitytuvą. Tada sukuriate šio tipo mazgą ir įkeliate savo PDF. PDF formatas yra įterptas į "dėžutę" puslapyje.
Galite išbandyti kitas parinktis, dar kartą redaguodami turinio tipą ir pakeisdami lauko rodymo parametrus.
Radau, kad kiekvienai rodymo parinkčiai buvo privalumų ir trūkumų:
- " Google" dokumentų skaitytuvas gerai veikė kaip įterptas, bet kai spustelėjau jį visą ekraną, aš atsidūriau "Google" dokumentų puslapyje, kuris atsiprašė, kad viršyta mano riba. Oi! Galbūt tai būtų patikimesnė, jei aš užsikabinęs modulį prie mokamos "Google Apps" paskyros, bet nesidžiaugiau išsiaiškinti, nes buvau įsitikinęs, kad mano klientas nepatinka ekrano.
- Pdf.js galimybė puikiai veikė ... "Firefox" ir "Chrome". Tačiau kai aš suaktyvinau "Internet Explorer", langelis pasirodė tuščias. Matyt, tai yra pdf.js problema, o ne PDF Reader modulis. Manau, kad turėjau tai tikėtis, nes "pdf.js" yra sukurtas "Mozilla", o "Internet Explorer" yra ... pati. Vis dėlto buvau nusivylęs tuo, kad nemaniau, kad patvirtinu, kad pdf.js patikimai veikė visose naršyklėse.
- Įterpimo parinktis buvo patikimiausia. Tai iš tikrųjų prasidėjo "Adobe Reader" dėžutėje tinklalapyje. Mano "Firefox" vis tiek norėjo paleisti pdf.js, bet manau, kad tai buvo naršyklės nustatymas. Bet kuriuo atveju, jei lankytojas turėjo arba "Firefox", arba PDF peržiūros priemonę kaip "Adobe Reader", rodomas PDF.
Taigi, galų gale, mano sprendimas buvo naudoti " PDF Reader" su " Embedding" parinktimi. Ši parinktis leistų pridėti PDF prie Drupal mazgo ir patikimai rodyti jį Drupal tinklalapyje.
Deja, kartais "patikima" nepakanka. Po to, kai ieškojau, turėjau apsvarstyti trečiosios šalies tarnybą.