Pereiti prie turinio

Literatura apie centralizuotai paskirstytas sistemas, moduliarizacija


Rekomenduojami pranešimai

Sveiki,

 

Kuriam CMS, kuria naudosim daugybei tinklapiu, taciau truksta ziniu kaip padaryt, ko norime. Net nezinau kaip pavadint tokius dalykus, tai sunku labai susirast literaturos, dizaino pavyzdziu ir pns. tokiai sistemai, gal kas susidurete.

 

Pati sistema bus sudeta is moduliu, ir kiekvienam tinklapiui bus irasyti tam tikras kiekis "core" moduliu ir papildomu pagal pasirinkima. Ko norime, tai kad visas core kodas ir moduliai butu vienoj centrinei vietoje, is kurios galimetu bet kada atnaujinti visas deploy'intas sistemas. Taip pat, kiekvienas modelis gali tureti pakeitimu individualiuose tinklapiuose, taciau irgi reikia kad atnaujinti lengvai butu galima. Kaip keisti "core" funkcionaluma, paliekant galimybe atsinaujinti naujas funkcijas is master repositorijos, ir pns niuancai.

 

Konkretaus kodo nereikia, taciau jei kas su bet kuo panasiu susidure, labai praverstu bet kokia literatura apie kaip moduliarizacijos ir skirstytos sistemos rasomos, kad kiekviena sistema galetu but tam tikru kiekiu custom taciau palaikyti ir atnaujinti is pagrindines sistemos.

 

Dekui

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jūsų požvilgis į šį dalyką keistas. Kokie dizaino pavyzdžiai... Neegzistuoja ieškoma literatūra, visa tais elementari logika. Sukurpiate izoliaciją, core failai - ne naudotojo reikalas. Laikykitės architektūrinio paskirstymo principo, kad ir to paties MVC. Visa paslaptis - viena ar kelios architektūrinės dalys yra neredaguotinas branduolys, iš kurio išplaukia kiti principai. Sėkmės...

 

Žinoma nesitikiu pavyzdžių būtent tokios sistemos, tačiau bet kokių dalių, susijusių principų, pattern'ų ir pnš.

 

Kolkas radau šį atsakymą, kur yra gerų link'ų tolimesniam skaitymui:

http://stackoverflow.com/questions/10763006/plugin-architecture-in-web-apps-examples-or-code-snippets

 

Taip, yra core failai, tačiau tinklapis gali būt toks custom, jo reikia ir kažkokio interface'o pakeisti tas funkcijas. Taip pat, daugelis tinklapiu pavyzdžiui turės Blog modulį, tačiau jis nebus core. Ieškom sprendimo, jog visi (tiek core tiek ne core) moduliai būtų kuo daugiau atnaujinti su master sistema, tačiau tuo pačiu metu paliekant visas custom funkcijas idėtas būtent tam tiklapiui.

 

Kolkas mąstau kažkiek įterpti Wordpress'o pluginų logiką, t.y. naudoti actions ir filters, kad įterpti funkcijas į kitus modulius ar core funkcionalumą. Dėl VCS, galvoju kiekvienam projektui fork'inti pagrindinę repo, ir kopijoje daryti visus pakeitimus. Tokiu atveju, teoriškai galimėtų gan lengvai bet kokius atnaujinimus iš master repo siųsti į tą fork, taip pat bet kokius custom funkcionalumus siųsti iš to fork atgal į master arba kitiem klientam.

 

Taip pat, sistema nebus kaip Wordpress ar pnš., kad klientas pats ieškosis ir siųsis modulius. Visi moduliai bus kurti in-house ir mes patys juos instaliuosime ir konfiguruosime. Viso šito esmė, padaryti greitą deploy'inimo procesą, kaip galimai daugiausiai išnaudojant faktą, jog didelis procentas visų tinklapių naudoją tas pačias funkcijas, tuo pačiu metu leidžiant greitai įdėti custom funkcijas ir jas kelti iš kliento į klientą.

Redagavo GPC
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kodel nepanaudoju composer'io?

Galesi apsirasyti atskirus modulius, valdyti ju versijas ir atnaujinimus.

 

Galvojam ir tą. Tačiau kiekviena sistema gali norėt pasikeisti konfiguraciją moduliam, gal net kiek pakeisti funkcionalumą. Šiuo atveju, reikės atskiro fork kiekvienai modulio versijai, nežinau ar tai geriau nei turėtų vieną fork'ą kiekvienam saitui?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galvojam ir tą. Tačiau kiekviena sistema gali norėt pasikeisti konfiguraciją moduliam, gal net kiek pakeisti funkcionalumą. Šiuo atveju, reikės atskiro fork kiekvienai modulio versijai, nežinau ar tai geriau nei turėtų vieną fork'ą kiekvienam saitui?

 

 

Jei normaliai parašyti moduliai juos visada galima extend'inti, o ir config'ai jiems gali būti individualūs. Taip kad pasidarai vieną modulį composer'yje, o atskirose sistemose jį extendini ir pasirašai savo reikiamą funkcionalumą. Tokiu atveju nenukenčia modulis ir jis visą laiką tures naujausius updeitus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei normaliai parašyti moduliai juos visada galima extend'inti, o ir config'ai jiems gali būti individualūs. Taip kad pasidarai vieną modulį composer'yje, o atskirose sistemose jį extendini ir pasirašai savo reikiamą funkcionalumą. Tokiu atveju nenukenčia modulis ir jis visą laiką tures naujausius updeitus.

 

Hmm, paprastai extendinti butu geras variantas, taciau modulis turi ne tik savo klases, taciau ir asset'us (css/js/img), db migracijas, html template'us ir pns., ir juos norint pakeisti vistiek reikes modulio kopijos atskiros?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Sukurti naują...