Ho iniziato a codificare una libreria di grafici su d3js: La mia libreria di grafici . Ho letto la riusabilità dell'API JavaScript e Campetti riutilizzabili di Towards . Tuttavia, NON sto seguendo realmente i suggerimenti perché non ne sono veramente convinto.
Ecco come è possibile utilizzare la mia libreria per creare un grafico a bolle:
var chart = new XYBubbleChart();
chart.data = [{"xValue":200,"yValue":300},{"xValue":400,"yValue":200},{"xValue":100,"yValue":310}]; //set data
chart.dataKey.x = "xValue";
chart.dataKey.y = "yValue";
chart.elementId = "#chart";
chart.createChart();
Ecco le mie domande:
-
Non usa il concatenamento. È un grosso problema?
-
Ogni proprietà e funzione sono esposte pubblicamente. (Esempio: larghezza, altezza sono esposti in Chart.js ). L'OOP è tutto basato sull'astrazione e il nascondimento, ma io non vedo proprio il punto in questo momento. Penso che esporre tutto dia la flessibilità di cambiare proprietà e funzionalità all'interno di sottoclassi e oggetti senza scrivere molto codice. Quali potrebbero essere le insidie di tale esposizione?
-
Ho implementato funzioni come: zoomare, "mostrare box informazioni quando il punto dati è cliccato" come "abilità". (esempio: XYZoomingAbility.js ). Fondamentalmente, tali "abilità" accettano l'oggetto "grafico", giocano con le variabili pubbliche di "grafico" per aggiungere funzionalità. Ciò che questo mi permette di fare è aggiungere un'abilità scrivendo:
activateZoomAbility(chartObject);
Il mio obiettivo è separare la "visualizzazione" da "interattività". Voglio "interattività" come: zoom per essere inserito nel grafico piuttosto che costruito all'interno del grafico. Ad esempio, non voglio che il mio grafico a bolle sappia qualcosa sullo "zoom". Tuttavia, voglio grafico a bolle zoomabile. Qual è il modo migliore per farlo?
-
Come testare e cosa testare? Ho scritto test misti: jasmine e file html effettivi per poterli testare manualmente sul browser.