Saturs[Paslēpt][Rādīt]
Mikropakalpojumu ideja pēdējā laikā ir ieguvusi lielu uzmanību, un daudzi uzņēmumi to izmanto, lai likvidētu lielas, monolītas aizmugursistēmas.
Iet vienu un to pašu ceļu ar priekšgalu joprojām ir izaicinājums daudziem uzņēmumiem, pat ja šis izplatītais tīmekļa lietotņu servera puses izveides veids ir vairāk vai mazāk uzticams izpētes un izpildes ziņā.
Tā ciešās atkarības dēļ klienta puses monolīts parasti apgrūtina jaunu funkciju integrāciju, jaunu tehnoloģiju ieviešanu un atsevišķu komponentu mērogošanu.
Šīs un citas problēmas ir mudinājušas priekšgala izstrādātājus izpētīt mikropakalpojumu izmantošanu.
Rezultātā vietņu un tīmekļa lietojumprogrammu priekšgala slāņa izveidei tika izstrādāta pavisam jauna arhitektūras stratēģija, kas pazīstama kā mikro frontend.
Šis termins pirmo reizi tika izmantots 2016. gadā, un kopš tā laika tas ir piesaistījis lielu uzmanību laba mērķa labā.
Šis raksts sniegs vispārīgu izpratni par to, kas ir mikropriekšgaldi un ar tiem saistītās problēmas. tas darbojas, kā arī plusi un mīnusi.
Ievads mikro priekšgala arhitektūrā
Mūsdienīga priekšgala izstrādes metode, ko sauc par mikropriekšgala arhitektūru, sadala a tīmekļa lietojumprogramma mazās, neatkarīgās daļās.
Galalietotājam šķiet, ka šīs daļas ir viena vienība, pat ja tās ir konstruētas neatkarīgi un pēc tam saliktas kopā.
Ar atšķirību, ka tiešsaistes risinājumu mikropriekšgaldi attiecas uz klienta, nevis servera pusi, to pamatojums ir identisks mikropakalpojumu pamatojumam.
Izsmalcinātu tīmekļa produktu izveide ir vissaprātīgākā, ja tiek izmantota mikro frontend pieeja.
Pretstatā tradicionālajam priekšgala monolītam mikro frontends ļauj daudzām komandām sadarboties atsevišķi dažādos programmatūras projektos.
Programmētāji var izveidot tīmekļa lietotnes ātrāk un ar lielāku mērogojamību un apkopi, izmantojot šo arhitektūras dizainu.
Vienkārši sakot, katra mikro saskarne ir tikai atsevišķas tīmekļa lapas sastāvdaļas koda fragments.
Šīs funkcijas kontrolē atsevišķas komandas, no kurām katra specializējas noteiktā nozarē vai mērķī.
Monolītā vs mikropakalpojumi vs mikro priekšgala arhitektūra
Padomājiet par pārvietošanu. Vai jums būs vienkāršāk visu sakārtot vairākās mazās, prasmīgi marķētās kastēs un pārvietot katru atsevišķi vai salikt visu personālu vienā milzīgā kastē un transportēt uz jaunu vietu?
Ir skaidrs risinājums.
Šī analoģija salīdzina divas atšķirīgas tīmekļa lietotņu arhitektūras — monolītus un mikropakalpojumus (pazīstami arī kā mikro frontends).
Monolītā arhitektūra
Iespējams, varēsiet atcerēties “vecos labos laikus”, kad tika izveidota pilnīga lietojumprogramma kā vienota, vienota vienība. Šādu metodi sauc par monolītu, kas ir vecs liela akmens bloka apzīmējums.
Tam ir jēga.
Monolītām sistēmām ir savstarpēji atkarīgi elementi. Tāpēc, ja vēlaties kaut ko mainīt vai pievienot jaunu līdzekli, iespējams, ka visa sistēma var sabojāt.
Lai gan tas ir novecojis, tas dažreiz joprojām pastāv. Jā, mēs zinām jūsu pašreizējo izteiksmi.
Koda bāzes konceptuāla sadalīšana divos dažādos komponentos — priekšgalā (klienta pusē) un aizmugursistēmā (servera pusē) — kļuva neizbēgama, jo tika izstrādātas jaunas tehnoloģijas un programmatūras produkti kļuva sarežģītāki.
Populārākā darbības metode tagad ir problēmu nošķiršana starp prezentācijas slāni, ar kuru mijiedarbojas gala lietotājs, un visu, kas notiek fonā.
Tam ir vajadzīgas divas programmatūras inženieru komandas, kur priekšgala komanda veido vizuālos komponentus un aizmugures komanda veido tīmekļa pakalpojumus, biznesa loģiku, piekļuvi datiem, integrācijas utt.
Tomēr, neskatoties uz šo atdalīšanu, šī stratēģija pēc būtības joprojām ir monolīta.
Galvenās izmaiņas ir tādas, ka mums tagad ir divi apjomīgi koda bloki — priekšgals un aizmugure — vienas milzīgas lietojumprogrammas vietā. Monolītām arhitektūrām nav jābūt briesmīgām; tiem ir dažas priekšrocības, tostarp
- Vienkārša un ātra izstrāde sīkām lietojumprogrammām ar vienu pirmkoda bāzi un ļoti vienkāršu dizainu;
- Testēšana un atkļūdošana ir ļoti vienkārša, jo viss kods atrodas vienā vietā, tādējādi komandai ir vieglāk izsekot pieprasījuma plūsmai un identificēt kļūdas;
- Lietojumprogrammas izstrādes sākumā izdevumi ir lētāki, jo līdz brīdim, kad tiek pievienotas jaunas funkcijas, nerodas ne infrastruktūras izmaksas, ne izstrādes izmaksas.
Šīs stratēģijas trūkumi ir atspoguļoti
- Ierobežota izvietošanas elastība — komandām jāgaida, ja pie projekta strādā tikai dažas no tām, un ir nepieciešama jauna izvietošana katru reizi, kad atjaunināt kodu;
- Jaunu tehnoloģiju pieņemšana ir sarežģīta, jo, lai to izdarītu, ir jāpārraksta ievērojama daļa, ja ne viss projekts.
- Palielinoties izstrādātāju skaitam, koda sistēma kļūst cieši saistīta, sarežģīta un grūti pārvaldāma un saprotama.
- Organizatoriskas problēmas – katram komandas dalībniekam ir jāizmanto viena un tā pati bibliotēku versija un jāziņo par izmaiņām, ja pie monolīta projekta strādā daudzas komandas.
- Bažas par mērogojamību – tā kā projekta komponenti ir savstarpēji saistīti, to mērogošana atsevišķi rada grūtības, kas rada ievērojamu dīkstāvi un lielākus izdevumus.
- Jaunajiem komandas locekļiem var būt grūti saprast projekta sarežģīto loģiku, it īpaši, ja inženieri, kas sākotnēji strādāja pie tā, vairs netiek nodarbināti.
Mikropakalpojumu un to tuvāko radinieku un mikro frontendu izstrāde risināja galvenās problēmas ar monolītajām sistēmām.
Mikropakalpojumu arhitektūra
Arhitektūras metode, kas pazīstama kā mikropakalpojumi, ļauj izveidot daudzus brīvi saistītus un neatkarīgi izvietojamus mazākus komponentus vai pakalpojumus, kas veido lietojumprogrammas aizmugursistēmu.
Katram pakalpojumam ir sava kodu bāze, CI/CD konveijeri, DevOps procedūras un procesi to palaišanai.
Varat redzēt, ka monolīta aizmugures komanda ir sadalīta atsevišķās komandās, aplūkojot attēlu augstāk.
Katrs atsevišķi koncentrējas uz atšķirīgu lietojumprogrammas aspektu (piemēram, produkta pakalpojumu, meklēšanas pakalpojumu un maksājumu pakalpojumu).
Saziņa starp pakalpojumiem notiek, izmantojot izveidotos protokolus, kas pazīstami kā API, piemēram, vieglo REST API protokolu, kas izmanto sinhronus pieprasījumu-atbildes modeļus.
Vēl viena iespēja ir izmantot asinhrono saziņu, izmantojot tādu programmatūru kā Kafka, kas piedāvā publicēšanas/abonēšanas komunikācijas struktūras un notikumus.
Mikropakalpojumi tiek integrēti ar priekšgalu, izmantojot priekšgala (BFF) pakalpojuma aizmugursistēmu vai API vārteju tīklā. BFF piedāvā pielāgotu API katram klientam, savukārt API vārtejas nodrošina vienu piekļuves punktu mikropakalpojumu kolekcijai.
Bet pat ar autonomiem aizmugursistēmas komponentiem un visām to sniegtajām priekšrocībām priekšgals joprojām ir monolīts.
Tāpēc šeit ir noderīgas mikro saskarnes.
Mikro frontends arhitektūra
Līdzīgi kā mikropakalpojumos, kur brīvi saistītus komponentus pārvalda vairākas komandas, mikro priekšgala arhitektūra šo koncepciju piemēro pārlūkprogrammai.
Šīs tīmekļa lietojumprogrammu lietotāja saskarnes atbilst šai struktūrai, kas sastāv no zināmā mērā autonomiem komponentiem.
Komandas tiek izveidotas arī pēc klientu vajadzībām vai lietošanas gadījumiem, nevis uz īpašām zināšanām vai tehnoloģijām.
Līdz ar to komandas ir iesaistītas mikropakalpojumu un mikro frontend projektos.
- vertikāli sagriezti — tā kā pie viena projekta strādā arī priekšgala izstrādātāji, datu eksperti, aizmugursistēmas inženieri, kvalitātes nodrošināšanas inženieri utt., viņi izveido savas funkcijas, izmantojot lietotāja interfeiss uz datu bāzēm; un
- starpfunkcionāls – katrs komandas dalībnieks sniedz savu pieredzi grupā.
Komandas var arī izvēlēties tehnoloģiju kopumu, kas vislabāk atbilst viņu konkrētajam biznesa virzienam.
Viena komanda var izmantot React, lai ieprogrammētu savu fragmentu. Cita komanda izveido jaunu Angular versiju. Vue.js ir viens no šādiem piemēriem.
Mikropriekšgaldi tiek izmantoti kopā ar saistītajiem mikropakalpojumiem, lai risinātu problēmas, kas izstrādes komandām parasti rodas ar monolītiem. Stratēģija piedāvā šādas priekšrocības.
- Tehnoloģiju brīvība: Frontend inženieri var izvēlēties alternatīvus JavaScript ietvarus, izpildlaika vides un visas tehnoloģiju kopas atkarībā no uzņēmuma vajadzībām. Papildus novecojušajai arhitektūrai var tikt piemērota jauna sistēma.
- Ir iespējama lielāka elastības pakāpe, jo katra mikro priekšgals ir autonoma un to var izstrādāt, testēt, izvietot un jaunināt atsevišķi. Rezultātā, ja viena komanda strādā pie funkcijas un ir nolikusi kļūdas labojumu, bet citai komandai ir jāpievieno savs līdzeklis, tai nav jāgaida, līdz pirmā komanda pabeigs savu uzdevumu.
- Autonomās komandas un sistēmas: katra produktu komanda un līdz ar to katra funkcija var darboties ar nelielu atkarību no citiem, kas ļauj tai turpināt darboties pat tad, ja tuvumā esošie komponenti nav pieejami.
- Vairākas, mazākas kodu bāzes: katrai no mikropriekšgaldām būs sava, vieglāk pārvaldāma, mazāka kodu bāze. Mazāk cilvēku pievērsīsies konkrētam lietotāja interfeisa komponentam, vienkāršos kodu pārskatīšanu un uzlabos vispārējo organizāciju.
- Vienkārša lietotņu mērogošana: vēl viena mikropriekšgaldu priekšrocība ir iespēja mērogot katru funkciju atsevišķi. Atšķirībā no monolītiem, kur visa programma ir jāmēro katru reizi, kad tiek pievienota jauna funkcija, tas padara visu procesu efektīvāku gan laika, gan naudas ziņā.
Kā darbojas mikro frontend?
Kā jau iepriekš minējām, komandas ir vertikāli organizētas mikro priekšgala arhitektūrā, kas nozīmē, ka tās ir atdalītas pēc domēna zināšanām vai mērķa un ir atbildīgas par konkrētu produktu no sākuma līdz beigām.
Tam var būt viens vai divi aizmugures mikropakalpojumi, kā arī neliels priekšgals. Sīkāk apskatīsim šī vizuālā elementa īpašības, mijiedarbību ar citiem lietotāja interfeisa komponentiem un iekļaušanu mājaslapā.
Mikro frontend var būt
- vesela lapa (piemēram, produkta informācijas lapa) vai
- lapas sadaļas, kuras var izmantot citas komandas, piemēram, galvenes, kājenes un meklēšanas joslas.
Lielu vietni varat sadalīt vairākos lapu veidos un katru veidu piešķirt konkrētam personālam darbam.
Tomēr daudzās lapās bieži sastopami vairāki komponenti, piemēram, galvenes, kājenes, ieteikumu bloki utt. Ieteikumu bloku, piemēram, var iekļaut mājaslapā, produkta informācijas lapā vai pat izrakstīšanās lapā.
Būtībā komandas var izveidot gabalus, ko citas komandas var izmantot savās lapās.
Tomēr mikropriekšgaldi var tikt izvietoti atsevišķi kā dažādi projekti, nevis atkārtoti lietojami komponenti.
Tas viss izklausās fantastiski, bet, lai izveidotu vienotu interfeisu, lapas un fragmenti ir kaut kā jāapvieno.
Tam nepieciešama frontend integrācija, ko var veikt, izmantojot dažādas stratēģijas, tostarp maršrutēšanu, kompozīciju un komunikāciju (skatiet attēlu iepriekš).
Maršrutēšanas
Ja pakalpojums no lapas, kuru kontrolē viena komanda, ir nepieciešams, lai piekļūtu lapai, kas pieder citai komandai, maršrutēšana ir noderīga lapas līmeņa integrācijai.
Katrs mikropriekšgals tiek apstrādāts kā vienas lapas lietojumprogramma. Maršrutēšanas nodrošināšanai var izmantot vienkāršas HTML saites.
Lietotājs var likt pārlūkprogrammai lejupielādēt mērķa marķējumu no servera un aizstāt pašreizējo lapu ar jaunu, noklikšķinot uz hipersaitēm.
Lietotnes apvalks ir HTML, CSS un JavaScript minimums, kas nodrošina lietotāja interfeisa darbību. Pat ja no servera pieprasītie satura dati joprojām gaida, lietotājs uzreiz saņem statisku parādītu lapu. Centrālais lietotņu apvalks kalpo kā vecāklietojumprogramma vienas lapas lietotnēm, ko izveidojušas dažādas komandas.
Neatkarīgi no izmantotās bibliotēkas vai sistēmas, meta-ietvari ļauj apvienot dažādas lapas vienā.
Sastāvs
Kompozīcija ir detaļu sakārtošanas process, lai tie ietilptu attiecīgajās lapas vietās. Vairumā gadījumu komanda, kas izvieto lapu, nekavējoties neizgūst fragmenta saturu.
Tā vietā tas novieto vietturi vai marķieri, kur fragmentam ir jāatrodas iezīmējumā.
Izmantojot citu komponēšanas procesu, tiek veikta galīgā montāža. Sastāvu var iedalīt divās pamatkategorijās: klienta pusē un servera pusē.
Klienta puses sastāvs: tīmekļa pārlūkprogramma tiek izmantota, lai izveidotu un rediģētu HTML marķējumu. Katrai mikropriekšsistēmai ir iespēja mainīt un parādīt tās marķējumu atsevišķi no pārējās lapas.
Piemēram, tīmekļa komponenti ļauj veikt šāda veida konstrukciju.
Plāns ir pārvērst katru fragmentu par tīmekļa komponentu, ko var neatkarīgi instalēt kā a.js failu, pēc kura lietotnes var ielādēt un renderēt tās motīva izkārtojumā tām paredzētajās vietās.
Tīmekļa komponenti ir atkarīgi no HTML un DOM API, ko var izmantot citas frontend sistēmas, kā arī no standarta metodes datu sūtīšanai un saņemšanai, izmantojot rekvizītus un notikumus.
Servera puses sastāvs: Izmantojot šo dizainu, UI daļas tiek apvienotas serverī, kā rezultātā pilnībā izveidota lapa tiek nosūtīta uz klienta pusi, paātrinot ielādi.
Montāžu bieži veic atsevišķs pakalpojums, kas atrodas starp tīmekļa pārlūkprogrammu un tīmekļa serveriem. CDN ir viens pakalpojuma gadījums (satura piegādes tīkls).
Atkarībā no jūsu vajadzībām varat izvēlēties vienu vai abu kombināciju.
Mikro frontend komunikācijas modeļi
Mikropriekšgala arhitektūra vislabāk darbojas, ja starp dažādiem komponentiem ir maz mijiedarbības vai tās nav vispār. Mikropriekšgaldiem laiku pa laikam ir jārunā vienam ar otru un jādalās ar informāciju. Šeit ir daži iespējamie modeļi, kas to varētu izraisīt.
- Tīmekļa darbinieki: tiešsaistes darbinieks ir mehānisms, kas ļauj tīmekļa saturam palaist JavaScript fonā neatkarīgi no citiem skriptiem un neietekmējot lapas ātrumu. Katrai mikrolietotnei tiks nodrošināta unikāla darbinieka API. Šī priekšrocība ir tāda, ka laikietilpīgu darbu var veikt citā pavedienā, ļaujot lietotāja interfeisa pavedienam turpināt darbību, nepalēninot vai neapturot.
- Notikumu izstarotājs: Šajā gadījumā daudzi komponenti sazinās viens ar otru, klausoties un iedarbojoties uz jebkādām stāvokļa izmaiņām komponentos, kuriem tie ir abonēti. Citas mikropriekšgaldas, kas ir abonējušas šo konkrēto notikumu, reaģē, kad mikropriekšprogramma aktivizē šo notikumu. Notikumu emitētājs, kas ir ieviests katrā mikropriekšgalā, padara to iespējamu.
- Atzvani un rekvizīti: šajā sadaļā jūs definējat vecākkomponentu un pakārtotos komponentus. Komunikācija tiek organizēta kokam līdzīgā struktūrā. Vecāki komponenti izmanto rekvizītus, lai datus kā funkcijas nodotu komponentu kokā pakārtotajiem komponentiem. Savukārt bērns var efektīvi brīdināt vecāku, ja kaut kas notiek viņu stāvoklī, reaģējot uz atzvaniem. React izmanto šo režīmu.
Micro frontend plusi
Attīstība strauji autonomās komandās
Neatkarīga komanda var izveidot katru tīmekļa lietotnes vai vietnes daļu, izmantojot mikropriekšgala metodi.
Katra komanda ir pilnīgi autonoma, kas nozīmē, ka tā ir atbildīga par visu komponentu izstrādes ciklu, sākot no koncepcijas līdz izlaišanai un pēcapstrādei.
Turklāt tas nozīmē, ka dažādas komandas var nevainojami sadarboties, vienlaikus strādājot pie viena projekta.
Tāpēc atbrīvošanas cikli ir ievērojami ātrāki, nekā tie būtu ar priekšgala monolītiem.
Mazākas atsevišķu mikropriekšprogrammu kodu bāzes nodrošina tīrāku kodu
Monolītajām priekšējām daļām ir lielas, smagnējas kodu bāzes, kuras laika gaitā kļūst arvien haotiskākas un grūtāk pārvaldāmas.
Mikro frontends risina šo problēmu. Katra mikro frontend avota kods ir vieglāk pārvaldāms, jo tas ir mazāks, vienkāršāks un kompaktāks.
Tādējādi kopējais tīmekļa risinājums gūst labumu no tīrāka koda.
Uzlabota lietotnes stabilitāte vaļīgas savienojuma dēļ
Tīmekļa risinājumu reti kad var sadalīt pilnīgi neatkarīgos gabalos. Līdz ar to mikro frontends runā viens ar otru.
Tomēr katra saikne starp komponentiem ir nozīmīga, neskatoties uz brīvo savienojumu.
Viena komponenta kļūme maz vai nemaz neietekmē visu pārējo komponentu darbību, kas nodrošina uzlabotu tīmekļa risinājuma stabilitāti.
Atsevišķu funkciju testēšana ir padarīta vienkāršāka
Šis ieguvums izriet no mikro priekšgalu īpašībām. Pamatojoties uz šo arhitektūras dizainu, tīmekļa risinājuma klienta puse ir modulāra, un katrs modulis ir autonoms.
Tā rezultātā komandai ir vieglāk novērtēt nelielu lietotāja interfeisa daļu, nevis pārbaudīt masīvu monolītu.
Samazināts komplekta lielums nodrošina ātrāku lapas ielādi
Viens no galvenajiem aizkavētās ielādes cēloņiem ar funkcijām bagātās monolītās tīmekļa sistēmās ir JavaScript komplekta lielums. No otras puses, mikropriekšgala pieeja atvieglo lapas ielādes laika saīsināšanu.
Pārlūkprogrammai nav atkārtoti jālejupielādē nevajadzīgs kods, jo tīmekļa lapa sastāv no vairākiem sīkiem komplektiem. Tā rezultātā palielinās lapas veiktspēja un ielādes laiks.
Tehnoloģiju neatkarība
Multiple priekšgala ietvari izstrādātāji var izmantot, lai izveidotu vienotu tiešsaistes risinājumu ar mikropriekšgala arhitektūru.
Tā kā katrs komponents ir autonoms, to var konstruēt, izmantojot to tehnoloģiju, kas vislabāk atbilst komandas uzdevumiem.
Protams, programmētājiem jāievēro piesardzība, izvēloties ietvarus programmatūras projektam, par kuru viņi ir atbildīgi, un joprojām ir ļoti ieteicams konsultēties ar citām komandām.
Tomēr pastāv nulle iespēja, ka visas lietotnes darbības laikā būsiet spiests izmantot mantoto sistēmu.
Micro Frontend mīnusi
Kompleksa tīmekļa risinājumu pārbaude kopumā
Tīmekļa risinājuma dažādu moduļu testēšana ir vienkārša, ja tajā tiek izmantota mikropriekšgala arhitektūra. Tomēr tas atšķiras no tīmekļa lietojumprogrammas kopumā novērtēšanas.
Pirms turpināt, pārbaudiet, vai visas daļas darbojas, kā paredzēts. Tas var būt sarežģīti, jo mikro frontends darbojas neatkarīgi un tiem ir atsevišķi piegādes procesi.
Dārgi sākotnējie ieguldījumi
Mikro frontend izstrādei parasti ir nepieciešami ievērojami finanšu izdevumi. Daudzu priekšgala komandu komplektēšana un uzturēšana ir dārga.
Turklāt jums būs nepieciešams vadības personāls, lai organizētu darbu, pārliecinātos, ka viss ir saskaņots un garantētu lielisku komandas komunikāciju.
Izstrādes un ieviešanas sarežģītība
Mikropriekšgala dizaina rezultātā izstrādes un izvietošanas procedūras var kļūt sarežģītākas.
Piemēram, neatkarīgas izstrādes komandas, kas strādā pie viena projekta, risinājumu varētu pārblīvēt ar pārāk daudziem komponentiem, kas var radīt problēmas izvietošanas posmā.
Pareiza visu moduļu montāža un vienmērīga integrācija kopējā shēmā arī ne vienmēr ir vienkārša; šim darbam parasti ir nepieciešama rūpīga visu atkarību izpratne.
Problēmas ar lietotāja pieredzes saskaņotības uzturēšanu
Konsekventa lietotāja interfeisa uzturēšana ir sarežģīta, ja komandas strādā atsevišķi pie vairākām programmatūras daļām.
Tīmekļa risinājums ir jādala visiem projekta izstrādātājiem. Pretējā gadījumā ceļā var rasties daudz pretrunu.
Secinājumi
Mūsdienīgs arhitektoniskais dizains mikro frontends var ievērojami uzlabot liela mēroga uz mikropakalpojumiem balstītu tīmekļa izstrādes projektu veiktspēju.
Tas ļauj programmētājiem sadalīt visu risinājumu atsevišķās daļās, kuras var izveidot vairākas autonomas komandas. No tā izriet daudz priekšrocību, tostarp ātrāka funkciju ieviešana, vieglāka atsevišķu moduļu pārbaude un vienkāršāki jauninājumi.
Taču arī ar mikropriekšgaldiem ir dažas grūtības.
Piemēram, lietojumprogrammas visaptverošā pārbaude varētu būt sarežģīta.
Turklāt, tā kā ir nepieciešama liela inženieru un administratoru komanda, mikro frontend projekti ir ļoti dārgi.
Līdz ar to, pirms pieņemat lēmumu, jums ir jāņem vērā visas jūsu biznesa lietas sastāvdaļas.
Vladimirs Čamajs
Kaut kā nesapratu, pēc kāda principa darbojas komunikācija starp atsevišķiem komponentiem frontendā. Es nesaprotu, kā jūs vēlaties savienot komponentus, kas ir izveidoti dažādos rāmjos. Rakstā par to nekas nav minēts. Notikumu sistēma un klausītāji man izskatās pēc elles uz zemes. Kā mums to vajadzētu iedomāties?