02. 目标定位/原则

目标定位

TCharts源于对图表开发的好奇心。
与百度ECharts相比,其目标定位:

  1. 简明的结构
  2. 清晰的调用流程
  3. 易于完全掌握
  4. 易于从零开发,自定义灵活


原则

  1. 避免”类的深度继承”
    类继承是把双刃剑,对底层父类的改动,”牵一发而动全身”。
    这是优点,也是缺点。
    评价因素是应用场景、继承的深度。

    TCharts中没有”类的深度继承”,大大降低了类之间的关联,提高了自定义开发图表的自由度。
    *参看【06. 类继承关系/静态类/单例/常量】

    用适度的代码冗余(重复)换取”自由”,是TCharts的设计策略。

  2. 保持文件结构、代码结构的一致性
    “一致性”带来了标准化,标准化减少了多样性。
    用相同的思路和方法(标准化)满足不同的需求。

  3. 避免功能过度设计
    需求是无底洞。
    不存在能够满足所有需求的图表库。
    容易自定义、扩展功能的基础结构设计是最重要的。

  4. 避免钻进技术的牛角尖
    与Java、C#之类相比,js在面向对象的语法上存在先天”不严谨”的缺陷。
    比如:

    • 没有”private”的语法
      通过js技巧,可以模拟出具有”private”性质的变量。
      但是没有必要。
      TCharts中,在成员变量名称前,加下划线”_”,来标志私有。
    • “private”变量”可以像”public”成员变量那样使用
      没有必要忌讳这点,善加利用,反而带来灵活。

      *TCharts中,Prainter类从Chart类中获取 “private”变量”和”public”变量。

  5. 关于js打包
    图表种类非常多,如果将所有图表都打包在一起,打包后的文件体积会很大。
    然而,现实中,大多数应用场景中,使用的图表种类非常有限,不超过三种。
    “供过于求”,造成网络下载时间增加等副作用。
    因此,按需打包是非常有必要的。