首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript图表库的设计

javascript图表库的设计
EN

Software Engineering用户
提问于 2014-05-11 11:54:35
回答 1查看 276关注 0票数 3

我开始在d3js:我的图表库之上编写图表库。我读过Javascript可重用走向可重用的图表。然而,我并没有真正听从这些建议,因为我并不是真的相信这些建议。

这就是我的库可以用来创建一个气泡图的方法:

代码语言:javascript
复制
    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();

以下是我的问题:

  1. 它不使用链子。这是个大问题吗?
  2. 每个属性和功能都是公开的。(例如:宽度、高度在Chart.js中暴露)。OOP是关于抽象和隐藏的,但我现在不太明白。我认为,公开所有内容可以灵活地更改子类和对象中的属性和功能,而无需编写大量代码。这种暴露的陷阱是什么?
  3. 我已经实现了这样的功能:缩放,“显示信息框时,数据点被点击”为“能力”。(例如:XYZoomingAbility.js)。基本上,这样的“能力”接受“图表”对象,围绕“图表”的公共变量添加功能。这让我可以通过写作来增加一种能力: activateZoomAbility(chartObject);我的目标是将“可视化”和“交互性”分开。我希望“交互性”,比如:放大插入图表,而不是内置在图表中。就像,我不想让我的泡泡图知道任何关于“缩放”的事情。然而,我确实想要可缩放的泡泡图。做这件事最好的方法是什么?
  4. 怎样测试,测试什么?我编写了混合测试: jasmine和实际html文件,这样我就可以在浏览器上手动测试了。
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-06-03 03:30:20

我的意见:

  1. 它不使用链子。这是个大问题吗?

这不是一个大问题,但它确实使其他人更难使用。一旦一种风格被实现,人们就会开始期待它,当它不起作用时,一些人就会把你的作品当成是“坏的”。人们不看文件。

每个属性和功能都是公开的。(例如:宽度、高度在Chart.js中暴露)。

隐藏细节的最大好处之一是,一旦您公开了某个内容,您就必须在重写代码以使其更好时支持它。另一个优点是,如果让所有功能都发挥作用,您就可以在变量更改值时做出反应,而不必让用户更改变量,然后调用函数。

我已经实现了这样的功能:缩放,“显示信息框时,数据点被点击”为“能力”。(例如: XYZoomingAbility.js)。基本上,这样的“能力”接受“图表”对象,围绕“图表”的公共变量添加功能。这让我可以通过写作来增加一种能力: activateZoomAbility(chartObject);

我们在这里试图避免的一个概念是全局命名空间中有相互冲突的函数名。看看有插件但只公开一个全局变量的库(jQuery是一个,但到目前为止并不是唯一的一个,尽管它可能有关于如何正确生成插件的文档最多)。

怎样测试,测试什么?我编写了混合测试: jasmine和实际html文件,这样我就可以在浏览器上手动测试了。

看看其他人是如何测试的,以及他们是如何做到的。老实说,有很多坏的库,所以越好的测试,你就有更好的机会得到正确的,不破坏任何更新。

感谢您提供代码供其他人使用。共同努力,我们所有人都能建立一个更好的网络。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/238714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档