Architecture Decision Record

Active theme: Light

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

Rekord ta' deċiżjoni arkitettonika: sett ta' għodod ta' librerija ta' graffs għall-viżwalizzazzjoni tad-data bl-użu ta' TypeScript u JSON

Għan Primarju:
Li jintgħażel sett ta' għodod avvanzat ta' graffs għall-ħolqien ta' viżwalizzazzjonijiet interattivi, b'fokus fuq data finanzjarja, data xjentifika, u data governattiva bl-użu ta' TypeScript u JSON. Il-librerija għandha tipprovdi karatteristiċi robusti, flessibbiltà, u tkun open-source.

Kuntest u Rekwiżiti:

  1. Żvilupp agile (Prijorità għolja): Bħala startup, l-iterazzjoni mgħaġġla, il-prototipar, u l-flessibbiltà fl-iżvilupp huma essenzjali. Il-librerija tal-graffs trid tippermetti ċikli ta' żvilupp mgħaġġla.

  2. Tipi ta' graffs (Prijorità għolja):

    • Chart Doughnut
    • Chart Radar
    • Chart tal-Proċess ta' Clustering
    • Area Chart b'Assi taż-Żmien
    • Chart Candlestick
    • Chart Nightingale
    • Mappa Geo SVG

    Dawn it-tipi ta' graffs huma speċifikament importanti għall-viżwalizzazzjoni ta' settijiet kumplessi tad-data, bħal xejriet finanzjarji, metriċi xjentifiċi, u informazzjoni ġeografika.

  3. B'xejn u Open Source (Prijorità għolja): Is-sett ta' għodod għandu jkun open-source biex jiġu evitati spejjeż ta' liċenzjar, jipprovdi trasparenza, u joffri flessibbiltà għall-personalizzazzjoni.

  4. Kriterji ta' Importanza Baxxa:

    • Veloċità tar-runtime: Għalkemm il-prestazzjoni hija importanti, mhijiex prijorità ewlenija għal din id-deċiżjoni.
    • Skalabbiltà: Għalkemm l-iskalabbiltà ġeneralment hija importanti, il-ħtieġa immedjata hija li jinbena MVP li jista' jikber maż-żmien. It-tħassib dwar l-iskalabbiltà jista' jiġi indirizzat aktar tard.
    • Kompatibbiltà lura: Mhijiex tħassib primarju għall-bini inizjali, sakemm il-librerija tkun moderna u miżmuma b'mod attiv.

Librerijiet evalwati:

  1. Apache ECharts
  2. Chart.js
  3. ApexCharts
  4. AG Charts
  5. Highcharts
  6. Carbon Charts
  7. Layer Cake
  8. D3.js

1. Apache ECharts

Ħarsa ġenerali:
Apache ECharts hija librerija qawwija u flessibbli ta' graffs għal viżwalizzazzjonijiet interattivi u personalizzabbli. Tipprovdi appoġġ għal varjetà wiesgħa ta' graffs u hija partikolarment b'saħħitha fi viżwalizzazzjonijiet kumplessi u dinamiċi.

Saħħiet:

  • Interattività avvanzata: ECharts teċċella fl-għoti ta' graffs interattivi, u toffri karatteristiċi bħaż-zooming, il-panning, u aġġornamenti dinamiċi tad-data.
  • Doughnut, Radar, Candlestick, Mapep Geo SVG: ECharts tappoġġa ħafna mit-tipi ta' graffs meħtieġa, inklużi viżwalizzazzjonijiet doughnut, radar, candlestick, u ta' mapep ġeografiċi.
  • B'xejn u Open Source: ECharts hija librerija open-source, li taqbel man-natura ta' startup attenta għall-baġit u tipprovdi l-libertà li jiġi mmodifikat il-kodiċi.
  • Flessibbiltà u estensibbiltà: Personalizzabbli ħafna, b'appoġġ estensiv għall-animazzjonijiet, viżwalizzazzjonijiet personalizzati, u tekniki avvanzati ta' graffs.

Dgħufijiet:

  • Kurva tat-tagħlim: ECharts, għalkemm qawwija, tista' jkollha kurva tat-tagħlim aktar wieqfa minħabba l-flessibbiltà u l-API estensiva tagħha.
  • Kumplessità tad-dokumentazzjoni: Id-dokumentazzjoni hija komprensiva iżda tista' tkun tbeżża' lill-iżviluppaturi li jkunu għadhom qed jibdew bha.

Verdett:
ECharts hija adattata ħafna għall-proġett minħabba l-appoġġ tagħha għal graffs interattivi, inklużi t-tipi kollha meħtieġa bħall-graffs candlestick, il-graffs radar, u l-mapep ġeografiċi. In-natura open-source tagħha taqbel mal-ħtieġa tal-proġett għal flessibbiltà u kosteffettività.


2. Chart.js

Ħarsa ġenerali:
Chart.js hija librerija sempliċi u faċli biex tintuża għall-bini ta' tipi komuni ta' graffs. Hija magħrufa għas-sempliċità u l-faċilità tal-integrazzjoni tagħha.

Saħħiet:

  • Faċilità ta' użu: Chart.js hija sempliċi ħafna biex tiġi stabbilita u użata, b'kurva tat-tagħlim minima.
  • Open Source: Chart.js hija b'xejn u open-source, li huwa kritiku biex jitnaqqsu l-ispejjeż.
  • Tipi komuni ta' graffs: Tappoġġa graffs bażiċi bħal doughnut, area, radar, u graffs tal-linji, li jkopru l-biċċa l-kbira tal-ħtiġijiet primarji.

Dgħufijiet:

  • Graffs avvanzati limitati: Chart.js ma tappoġġax nattivament tipi kumplessi ta' graffs bħall-graffs candlestick, il-mapep geo SVG, jew il-graffs tal-proċess ta' clustering. Għalkemm dawn il-karatteristiċi jistgħu jiżdiedu permezz ta' plugins jew personalizzazzjoni, ma jkunx daqshekk dirett bħal ma' librerijiet oħra.
  • Interattività: Għalkemm Chart.js tappoġġa interattività bażika (eż., tooltips u effetti hover), ma toffrix karatteristiċi daqstant avvanzati bħal ECharts jew D3.js.

Verdett:
Chart.js hija kbira għal proġetti sempliċi u mgħaġġla, iżda n-nuqqas ta' appoġġ għal tipi kumplessi ta' graffs jagħmilha mhux adattata għal applikazzjoni li tiddependi ħafna fuq id-data b'ħtiġijiet avvanzati bħal graffs candlestick u mapep ġeografiċi. Hija għażla tajba għall-prototipar, iżda għat-tipi ta' graffs meħtieġa, jiġu rakkomandati għodod aktar avvanzati.


3. ApexCharts

Ħarsa ġenerali:
ApexCharts hija librerija moderna ta' graffs li tipprovdi varjetà ta' tipi ta' graffs u tiffoka fuq viżwalizzazzjonijiet interattivi b'API faċli biex tintuża.

Saħħiet:

  • Karatteristiċi interattivi: ApexCharts toffri graffs interattivi b'tooltips, zooming, panning, u aġġornamenti.
  • Appoġġ għal graffs finanzjarji u xjentifiċi: Tappoġġa varjetà wiesgħa ta' tipi ta' graffs, inklużi graffs candlestick, graffs radar, u area charts.
  • Faċilità ta' użu: Għandha API sempliċi u hija faċli biex tiġi integrata f'proġett.
  • B'xejn u Open Source: ApexCharts toffri verżjoni open-source b'xejn li hija adattata għal ħafna każijiet ta' użu.

Dgħufijiet:

  • Personalizzazzjoni kumplessa: Għalkemm tipprovdi ħafna karatteristiċi, l-għażliet ta' personalizzazzjoni mhumiex flessibbli daqs ECharts jew D3.js għal ħtiġijiet kumplessi ħafna jew personalizzati ta' graffs.
  • Mapep Geo: ApexCharts ma tappoġġax nattivament mapep geo jew graffs tal-proċess ta' clustering, li huma meħtieġa għal dan il-proġett.

Verdett:
ApexCharts hija kandidata b'saħħitha minħabba l-faċilità ta' użu u l-interattività tagħha, iżda tonqos f'ċerti tipi avvanzati ta' graffs, partikolarment il-ħtieġa għal mapep geo u graffs ta' clustering. Hija għażla tajba għal graffs aktar sempliċi iżda jonqsuha xi karatteristiċi meħtieġa.


4. AG Charts

Ħarsa ġenerali:
AG Charts hija librerija ta' graffs ta' grad kummerċjali ddisinjata għall-prestazzjoni u l-preċiżjoni. Hija adattata ħafna għall-ħolqien ta' dashboards finanzjarji, xjentifiċi, u tan-negozju.

Saħħiet:

  • Tipi avvanzati ta' graffs: AG Charts tappoġġa ħafna tipi avvanzati ta' graffs, inklużi graffs candlestick, area charts, graffs radar, u aktar. Toffri wkoll integrazzjoni profonda ma' prodotti oħra ta' AG-Grid.
  • Prestazzjoni għolja: Toffri prestazzjoni eċċellenti, speċjalment meta tittratta settijiet kbar tad-data.
  • Interattività: AG Charts tappoġġa varjetà ta' karatteristiċi interattivi bħaż-zooming, it-tooltips, u aġġornamenti dinamiċi.

Dgħufijiet:

  • Mhijiex għal kollox b'xejn: Għalkemm AG Charts toffri verżjoni b'xejn, il-verżjoni b'karatteristiċi sħaħ hija bi ħlas, u dan jista' jkun ostaklu għal startups li jfittxu jnaqqsu l-ispejjeż.
  • Kumplessità: Għalkemm il-librerija hija rikka fil-karatteristiċi, tista' tkun eċċessiva għal proġetti aktar sempliċi u tista' teħtieġ aktar setup u konfigurazzjoni meta mqabbla ma' għażliet oħra.

Verdett:
AG Charts hija qawwija u rikka fil-karatteristiċi iżda tista' ma tkunx l-aħjar għażla minħabba n-natura kummerċjali u l-istruttura tal-ispejjeż tagħha. L-adattabbiltà tagħha tiddependi minn jekk il-baġit jistax jakkomoda verżjonijiet bi ħlas jew jekk jiġux ippreferuti alternattivi open-source.


5. Highcharts

Ħarsa ġenerali:
Highcharts hija librerija popolari ta' graffs magħrufa għall-firxa wiesgħa tagħha ta' tipi ta' graffs u għall-għażliet qawwija ta' personalizzazzjoni.

Saħħiet:

  • Tipi komprensivi ta' graffs: Highcharts tappoġġa varjetà wiesgħa ta' graffs, inklużi candlestick, radar, area, u mapep geo.
  • Interattiva u dinamika: Highcharts tipprovdi karatteristiċi interattivi rikki, inklużi drill-downs, zooming, u panning.
  • Faċilità ta' użu: Għandha API faċli għall-utent u dokumentazzjoni tajba, u dan jagħmilha faċli biex tibda.

Dgħufijiet:

  • Liċenzja kummerċjali: Għalkemm Highcharts toffri verżjoni b'xejn għal użu mhux kummerċjali, il-liċenzja kummerċjali hija għalja, u dan jista' jkun żvantaġġ sinifikanti għal startups.
  • Kurva tat-tagħlim: Għalkemm mhijiex wieqfa daqs ECharts, il-kurva tat-tagħlim ta' Highcharts xorta tista' tkun sfida għall-bidu.

Verdett:
Highcharts hija librerija rikka fil-karatteristiċi, iżda l-liċenzjar kummerċjali tagħha jagħmilha anqas adattata għal proġetti open-source u sensittivi għall-ispejjeż. L-għażliet komprensivi ta' graffs tagħha huma vantaġġ, iżda l-kwistjoni tal-liċenzjar tillimita l-attrazzjoni tagħha għal dan il-każ ta' użu.


6. Carbon Charts

Ħarsa ġenerali:
Carbon Charts hija librerija ta' graffs żviluppata minn IBM, ddisinjata għall-ħolqien ta' graffs attraenti viżwalment u personalizzabbli ħafna.

Saħħiet:

  • Personalizzabbiltà: Carbon Charts tippermetti personalizzazzjoni estensiva tad-dehra u l-mgħiba tal-graffs.
  • Open Source: Hija b'xejn u open-source, li taqbel mar-rekwiżit tal-proġett għal soluzzjonijiet favorevoli għall-baġit.
  • Appoġġ għal graffs komuni: Tappoġġa tipi komuni ta' graffs bħal doughnut, radar, u area charts, għalkemm ma tappoġġax tipi aktar avvanzati bħal mapep geo jew graffs candlestick.

Dgħufijiet:

  • Tipi avvanzati ta' graffs limitati: Ma tappoġġax mapep geo, graffs tal-proċess ta' clustering, jew graffs candlestick, li huma essenzjali għall-proġett.
  • Ekosistema iżgħar: Carbon Charts għandha komunità u ekosistema iżgħar meta mqabbla ma' librerijiet akbar ta' graffs bħal ECharts jew Highcharts.

Verdett:
Carbon Charts hija open-source u personalizzabbli iżda jonqosha l-appoġġ għat-tipi aktar kumplessi ta' graffs meħtieġa għal dan il-proġett. Hija aktar adattata għal ħtiġijiet aktar sempliċi ta' graffs.


7. Layer Cake

Ħarsa ġenerali:
Layer Cake hija librerija ta' viżwalizzazzjoni tad-data ddisinjata għall-ħolqien ta' viżwalizzazzjonijiet flessibbli u b'saffi.

Saħħiet:

  • Saffi personalizzabbli: Tipprovdi għażliet qawwija ta' saffi għal viżwalizzazzjonijiet kumplessi.
  • Open Source: Hija b'xejn u open-source, u dan jagħmilha għażla vijabbli għal proġetti attenti għall-baġit.

Dgħufijiet:

  • Dokumentazzjoni limitata: Layer Cake m'għandhiex dokumentazzjoni estensiva u appoġġ tal-komunità, u dan jagħmilha aktar diffiċli biex wieħed jaħdem magħha meta mqabbla ma' librerijiet aktar stabbiliti.
  • Mhijiex mibnija għall-graffs: Layer Cake hija aktar adattata għal viżwalizzazzjonijiet li mhumiex graffs, għalhekk l-għażliet tagħha ta' graffs lesti għall-użu huma limitati.

Verdett:
Għalkemm interessanti għal viżwalizzazzjonijiet uniċi, Layer Cake mhijiex ideali għal rekwiżiti tradizzjonali ta' graffs bħal graffs candlestick jew graffs radar. Hija aktar adattata għal viżwalizzazzjonijiet personalizzati barra mill-ambitu ta' graffs standard.


8. D3.js

Ħarsa ġenerali:
D3.js hija librerija qawwija ta' JavaScript għall-ħolqien ta' viżwalizzazzjonijiet immexxija mid-data permezz ta' HTML, SVG, u CSS.

Saħħiet:

  • Flessibbiltà bla paragun: D3.js tippermetti l-ħolqien ta' virtwalment kwalunkwe tip ta' viżwalizzazzjoni personalizzata, u dan jagħmilha qawwija ħafna għal graffs avvanzati u interattivi.
  • Karatteristiċi estensivi: Tappoġġa t-tipi kollha ta' graffs meħtieġa, inklużi mapep geo, graffs ta' clustering, u aktar.
  • Personalizzabbli: Il-livell ta' personalizzazzjoni f'D3.js m'għandu paragun, u jippermetti lill-iżviluppaturi jibnu viżwalizzazzjonijiet adattati ħafna.

Dgħufijiet:

  • Kurva tat-tagħlim wieqfa: D3.js għandha kurva tat-tagħlim wieqfa u hija aktar kumplessa biex tiġi integrata meta mqabbla ma' librerijiet oħra.
  • Tieħu ħafna ħin: Il-bini ta' graffs f'D3.js jista' jieħu ħafna ħin, speċjalment għal graffs komuni bħal graffs candlestick jew doughnut.

Verdett:
D3.js hija inkredibbilment qawwija għal graffs avvanzati u personalizzati iżda hija eċċessiva għal ħafna każijiet tipiċi ta' użu minħabba l-kurva tat-tagħlim wieqfa u ż-żmien tal-iżvilupp. Hija l-aħjar għal sitwazzjonijiet fejn il-librerijiet l-oħra ta' graffs ma jipprovdux il-livell meħtieġ ta' personalizzazzjoni.


Konklużjoni

Wara li evalwajna l-librerijiet abbażi tal-ħtiġijiet tal-proġett, Apache ECharts toħroġ bħala l-aħjar għażla. Tappoġġa l-firxa sħiħa ta' graffs meħtieġa, inklużi mapep geo, graffs candlestick, u graffs ta' clustering. Hija open-source, rikka fil-karatteristiċi, u interattiva ħafna, li taqbel perfettament mal-għanijiet tal-proġett. Għalkemm D3.js toffri l-akbar flessibbiltà, il-kumplessità u l-investiment ta' ħin tagħha jagħmluha anqas ideali għal startup li qed ifittex li jirripeti malajr. ApexCharts u Chart.js huma alternattivi tajbin għal proġetti aktar sempliċi iżda jonqosħom l-appoġġ għal tipi avvanzati ta' graffs.