Skip to content

早期版本的反思

TechUI 目前所有框架的前身,源于早期的 TechUI-Vue2 付费框架。而这个框架的开发,其实源自于一系列的技术验证。

所以在这个框架发布之初,有着太多的槽点和痛点,也最终导致了早期框架推广的彻底失败。现在回看,那个经历过数次大更新的 TechUI-Vue2,充其量只能算是一个 Alpha (内部测试) 版本。

复杂的许可证体系

早期的版本为了所谓的“商业保护”,设计了一套极其复杂的许可证分类。 设计初衷是为了提高用户黏性,但后来反思,这些设定(如开发环境有效期)简直是灾难性的。

许可证类型有效期 (开发/生产)核心限制评价 (反思)
高级许可证
(未上线)
永久 / 永久主系统名称锁定;
支持二级子系统名自定义
构思中的理想状态,
但未曾落地。
正式许可证1年 / 永久开发环境强制 1 年过期
到期需联系客服免费更新;
生产环境不受限;
系统名称锁定
最愚蠢的设定之一。
虽然免费更新,
但人为制造了维护障碍。
临时许可证3个月 / 3个月无法打包部署
无法使用调试工具
极差的体验。
为了防破解而牺牲了
开发者的基本工具。
注意:以上的设定为早期Techui-Vue2版本中的设定,当时的版本,更多是为了做技术验证,尝试结合Wasm模块,可以做到对前端库能做到什么程度的限制。

现在已经全面整改,请放心使用。

早期版本推广失败原因

核心原因可以归结为:盲目的自信脱离市场的定价

盲目自信

在 DataV 等成熟竞品普及前,市面上缺乏好用的可视化组件库。早期的市场空白让我们产生了盲目的自信,认为“只要做出来就是降维打击”,而忽视了用户体验。

过高的定价

TechUI-Vue2 的定价策略完全是“拍脑门”决定的——简单参考了单个外包项目的费用。这导致价格高得离谱,最终不得不将绝大多数许可免费赠送给友好企业使用,商业化名存实亡。

程序员式思维

思维方式过于直白和线性,从未做过真正的市场调研。 (坦白说,直到现在我也没完全改变,推出新版 TechUI 更多是为了完成“未竟之事”的情怀,而非纯粹的商业计算。)

极端的防御手段

为了验证技术,我们构思并实现了大量基于前端的“防御手段”。这些手段中的绝大部分,严重牺牲了开发者的使用体验(例如禁止调试)。

单一的授权方式

虽然名义上有四种许可证,但核心逻辑只有一种:绑定项目名称。虽然曾计划开发“公司级通用授权”,但随着项目的推广失败,这一功能也胎死腹中。

不合理的开发包

这是导致用户流失的技术硬伤。

  • 配置繁琐:为了解决配置难的问题,我们推出了“免配置开发包”,结果反而加重了开发者的心智负担。
  • 现状:新版 TechUI 已彻底模块化,支持按需引入,不再通过“全家桶”方式强行植入。

防御手段技术复盘

早期的 TechUI-Vue2 简直是一个前端攻防技术的试验场。 初衷是追求 “极致的安全(限制)”,结果导致了 “极致的糟糕体验”。以下是具体的复盘与新版改进:

终止服务弹框

  • 🔴 早期机制:一旦侦测到标题篡改、许可证过期等违规行为,直接清空 DOM 元素并弹出全屏警告,导致系统瘫痪。
  • 🟢 新版改进:移除了暴力的清空逻辑,改为温和的控制台提示或水印。

系统标题验证

  • 🔴 早期机制:为了防止用户修改授权的项目名称,我们对浏览器标签、Loading 界面、系统标题组件、控制面板进行了全方位的 DOM 监听。任何 JS 或 CSS层面的修改都会触发 Kill Switch。
  • 🟢 新版改进:仅在浏览器标签页 (Title) 上保留了防篡改监测,不再限制 UI 组件的自由度。

禁止调试

  • 🔴 早期机制:基于 devtools-detector.js 实现。临时许可证完全禁止调试;正式许可证打包后禁止调试(需输入隐藏代码绕过)。这导致线上排查问题极其痛苦,甚至需要反编译许可证才能拿到调试码。这也是一个极其死板且愚蠢的限制。
  • 🟢 新版改进彻底移除强制限制。该功能被重构为独立的 PanicAlert 组件,把“是否禁止调试”的权力交还给开发者。

有效期验证

  • 🔴 早期机制:不仅侦测临时许可证,甚至连正式许可证也会侦测“开发状态”是否过期(即上文提到的 1 年限制)。
  • 🟢 新版改进:除了开发许可证外,所有许可证均为永久有效

版本锁死

  • 🔴 早期机制:许可证与组件库版本强绑定。如果版本不匹配(如许可证限制为0.1.1,当前组件库为0.2.1),系统拒绝运行。这是因为 Alpha 阶段破坏性更新太多,为了防止兼容性问题出的下策。
  • 🟢 新版改进暂时保留。因为目前的 TechUI 3.0 仍处于 Beta 阶段,可能存在破坏性更新。待进入 Stable 阶段后将移除此限制。(目前的版本限制很宽泛,在版本差异大于0.5之内都可以使用,后续会直接移除此功能)

环境指纹

  • 🔴 早期机制:主动侦测运行环境(IP/域名),用于限制打包部署。
  • 🟢 新版改进:新版许可证(包括免费版)不再主动侦测环境参数。原有的环境监测能力被封装进 PanicAlert 组件,仅供用户按需调用。

道歉声明

我谨代表 TechUI 团队,对所有使用过 TechUI 早期版本(Vue2 / Lite)的用户,为此前的诸多不合理限制和糟糕的开发体验,致以最诚挚的歉意!

正是你们的包容与反馈,催生了今天更开放、更合理的 TechUI 3.0。