Architecture Decision Record

Active theme: Light

← Eżempji ta' rekords ta' deċiżjoni

Rekord ta' deċiżjoni arkitettonika: qafas CSS

Werrej:

Sommarju

Kwistjoni

Irridu nużaw qafas CSS biex noħolqu l-applikazzjonijiet tal-web tagħna:

  • Irridu li l-esperjenza tal-utent tkun mgħaġġla u affidabbli, fuq il-browsers popolari kollha u d-daqsijiet kollha tal-iskrin.

  • Irridu iterazzjoni mgħaġġla fuq id-disinn, il-layout, l-UI/UX, eċċ.

  • Irridu applikazzjonijiet responsivi, speċjalment għal skrins iżgħar bħal fuq apparati mobile, skrins akbar bħal fuq widescreens 4K, u skrins dinamiċi bħal displays li jduru.

Deċiżjoni

Iddeċidejna fuq Bulma.

Stat

Iddeċidejna fuq Bulma. Miftuħin għal għażliet ġodda ta' qafas CSS hekk kif jaslu.

Dettalji

Suppożizzjonijiet

Irridu noħolqu web apps li huma moderni, mgħaġġla, affidabbli, responsivi, eċċ.

Web apps moderni tipiċi qed inaqqsu/jeliminaw l-użu ta' jQuery għal diversi raġunijiet:

  • JavaScript modern qed iżid gradwalment ħafna kapaċitajiet li jQuery kien jipprovdi, għalhekk jQuery huwa inqas meħtieġ, u hemm moduli aħjar/aktar mgħaġġla/iżgħar li jipprovdu implimentazzjonijiet speċifiċi

  • L-approċċ wiesa' ta' jQuery huwa li jimmanipula direttament id-DOM, li huwa anti-pattern għal frameworks moderni ta' JavaScript (eż. React, Vue, Svelte)

  • jQuery jinterferixxi miegħu nnifsu jekk jiġi mgħobbi darbtejn, eċċ.

Restrizzjonijiet

Jekk nagħżlu qafas CSS li juża jQuery, allura nkunu mġiegħla nimportaw jQuery. Pereżempju, Semantic UI juża jQuery, u Tachyons le.

Jekk nagħżlu qafas CSS li huwa minimu, allura nirrinunzjaw għal komponenti tal-qafas li nistgħu rridu issa jew dalwaqt. Pereżempju, Semantic UI jipprovdi carousel tal-immaġini, u Tachyons le.

Pożizzjonijiet

Ikkunsidrajna li ma nużawx qafas. Dan xorta jidher vijabbli, speċjalment għax is-CSS grid jipprovdi ħafna minn dak li neħtieġu għall-proġett tagħna..

Ikkunsidrajna ħafna framework CSS billi użajna triage mgħaġġel b'lista qasira: Bootstrap, Bulma, Foundation, Materialize, Semantic UI, Tachyons, eċċ. It-tnejn li għażilna għal reviżjoni aktar fil-fond huma Semantic UI (għax għandu l-aktar approċċ semantiku) u Bulma (għax għandu l-aktar approċċ ħafif li jipprovdi l-komponenti li rridu issa).

Ikkunsidrajna Semantic UI. Dan jipprovdi ħafna komponenti, inklużi dawk li rridu għall-proġett tagħna: tabs, grids, buttons, eċċ. Għamilna pilota b'Semantic UI b'żewġ modi: bl-użu ta' fajls CDN tipiċi, u bl-użu ta' repos NPM. Kellna suċċess b'Semantic UI f'paġna HTML statika, iżda ma kellniex suċċess fil-limitu taż-żmien tagħna biex nibnu SPA ta' JavaScript (primarjament minħabba kwistjonijiet ta' tagħbija ta' jQuery). Skoprejna li programmaturi oħra kienu qed jitolbu lill-iżviluppaturi ta' Semantic UI joħolqu verżjoni mingħajr jQuery, għall-istess raġunijiet li għandna aħna. Programmaturi oħra kienu qed jitolbu verżjoni mingħajr jQuery għal ħafna snin, iżda l-iżviluppaturi qalu le, u ddikjaraw li kwalunkwe verżjoni mingħajr jQuery tkun diffiċli wisq biex tinkiteb eż. ~"il-proġett Semantic UI għandu aktar minn 22,000 punt ta' kuntatt li jużaw jQuery".

Eżempju b'Semantic:

<div class="ui top attached tabular menu">
  <a class="item">Alpha</a>
  <a class="item">Bravo</a>
</div>

Ikkunsidrajna Bulma. Bulma għandha ħafna kapaċitajiet simili għal Semantic UI, għalkemm mhux daqstant komponenti sofistikati. Bulma hija mibnija b'tekniki moderni, bħal li ma tużax jQuery. Bulma għandha xi komponenti ta' partijiet terzi, li wħud minnhom nistgħu rridu nużaw.

Eżempju b'Bulma:

<div class="tabs">
  <ul>
    <li><a>Alpha</a></li>
    <li><a>Bravo</a></li>
  </ul>
</div>

Argument

Kif hawn fuq.

B'mod speċifiku, Semantic UI jidher li għandu bandiera ta' twissija kemm f'termini ta' teknoloġija (jiġifieri tant punti ta' kuntatt ma' jQuery) kif ukoll f'termini ta' tmexxija (jiġifieri li verżjoni mingħajr jQuery kienet le sod, minflok ma ppruvaw ippjanaw roadmap, jew titjib kontinwu, jew ġbir ta' donazzjonijiet, eċċ.).

Implikazzjonijiet

Jekk insibu qafas CSS tajjeb mingħajr jQuery, dan ġeneralment huwa ta' għajnuna u tajjeb b'mod ġenerali.

Relatati

Deċiżjonijiet relatati

Il-qafas CSS li nagħżlu jista' jaffettwa l-ittestjabbiltà.

Rekwiżiti relatati

Irridu nwasslu app purament moderna malajr.

Ma rridux nonfqu ħin naħdmu fuq frameworks eqdem (speċjalment Semantic UI) li jużaw dipendenzi eqdem (speċjalment jQuery).

Artefatti relatati

Taffettwa l-HTML tipiku kollu li se juża s-CSS.

Prinċipji relatati

Faċilment riversibbli.

Il-ħtieġa tal-veloċità.

Noti

Kwalunkwe noti hawn.