早期版本的反思
TechUI 目前所有框架的前身,源于早期的 TechUI-Vue2 付费框架。而这个框架的开发,其实源自于一系列的技术验证。
所以在这个框架发布之初,有着太多的槽点和痛点,也最终导致了早期框架推广的彻底失败。现在回看,那个经历过数次大更新的 TechUI-Vue2,充其量只能算是一个 Alpha (内部测试) 版本。
复杂的许可证体系
早期的版本为了所谓的“商业保护”,设计了一套极其复杂的许可证分类。 设计初衷是为了提高用户黏性,但后来反思,这些设定(如开发环境有效期)简直是灾难性的。
| 许可证类型 | 有效期 (开发/生产) | 核心限制 | 评价 (反思) |
|---|---|---|---|
| 高级许可证 (未上线) | 永久 / 永久 | 主系统名称锁定; 支持二级子系统名自定义 | 构思中的理想状态, 但未曾落地。 |
| 正式许可证 | 1年 / 永久 | 开发环境强制 1 年过期; 到期需联系客服免费更新; 生产环境不受限; 系统名称锁定 | 最愚蠢的设定之一。 虽然免费更新, 但人为制造了维护障碍。 |
| 临时许可证 | 3个月 / 3个月 | 无法打包部署; 无法使用调试工具 | 极差的体验。 为了防破解而牺牲了 开发者的基本工具。 |
现在已经全面整改,请放心使用。
早期版本推广失败原因
核心原因可以归结为:盲目的自信 与 脱离市场的定价。
盲目自信
在 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。