Skip to content

基础框架uif

易用性

评估一个框架的易用性通常涉及多个方面和步骤,下面是一些关键点


文档质量

框架是否有详尽、清晰且最新的官方文档,包括快速入门指南、API参考手册以及示例代码。 文档是否容易搜索,结构是否合理,语言表达是否简洁明了。

现状

  1. uif前后端无详尽、最新的官方文档
  2. 无入门指南
  3. 无API参考手册、示例代码

学习曲线

新用户能否在短时间内理解并开始使用框架的基本功能。 是否提供了教程或逐步引导来帮助新用户快速上手。

现状

  1. 基础框架的学习成本很高、无固定文档,导致很多问题需要口述跟长时间积累
  2. 无教程或者指引

设计一致性

框架的设计原则和模式是否一致,避免用户需要不断适应新的编程模型或接口风格。 API命名规则、错误处理机制、配置文件格式等是否统一。

现状

  1. 基础框架的接口设计与公司一致,构建方法与vue、webpack等通用构建存在差异
  2. 命名规则无
  3. 错误处理机制无
  4. 配置文件格式统一

灵活性

是否支持自定义扩展,允许开发者根据项目需求调整框架行为。

现状

  1. 目前项目上无法对框架进行任何修改
  2. 框架层面的扩展需要框架库代码支撑与发布

工具链集成

框架是否易于与其他开发工具、IDE、构建系统及版本控制系统集成。

现状

  1. 框架目前建议使用vscode开发,但未支撑插件配置
  2. 构建系统大部分项目走的是本地打包,ftp手动上传到服务器
  3. 版本控制以开发者手动git管理,最后交由运控中心统管

支持与反馈

框架背后是否有独立团队支撑,问题解答,问题反馈管理等。 框架是否存在配套的插件库或组件,可降低开发成本。

现状

  1. 框架目前的迭代由架构师张晶做支撑
  2. 问题反馈、解答没有统一的管理渠道、目前整个研发部会从微信、钉钉、小道园子等渠道接受问题再移交给架构师做问题排查与处理
  3. 架构目前存在工具库、mti-ui组件库,组件库可单独使用,工具库是集成在框架内,尚未对外开放

实例与案例研究

查看已有的项目案例,了解实际应用中的表现以及开发者的真实反馈。 分析开源项目的源码,检验其内部架构的合理性与可维护性。

现状

  1. 目前框架在很多项目上都在用、实际上也有很多的反馈、但目前都没有归档跟汇总
  2. 框架内部代码的迭代是在张晶一个人控制,没有对架构的合理性、可维护性等做检验

性能测试与基准

虽然易用性和性能不是同一概念,但高性能往往能提升整体的使用体验。

现状

  1. 缺少性能测试规范,没有统一的性能测试标准与流程,大部分都是开发者本地电脑手动点点
  2. 缺少性能基准条例,
  3. 框架内部代码的迭代是在张晶一个人控制,没有对架构的合理性、可维护性等做检验

用户体验

如果是用户界面相关的框架,评估其界面布局、交互设计、响应速度等方面是否符合人体工程学和认知习惯。

现状

  1. 目前由交互设计部主导

易调试性

当出现错误时,框架是否提供有用的错误信息和日志记录,以及方便的调试工具和手段。 通过以上这些维度的考察,可以较为全面地评估一个框架的易用性。实际操作时,可能还需要结合具体的使用场景和团队技术水平进行针对性测试。

现状

  1. 目前框架层面的调试还是基于vue-toolschrome-tools

部署

安装与配置

框架是否提供一键安装脚本或者便捷的包管理器支持(如npm、pip、Composer等)。配置过程是否简洁明了,是否有清晰详细的配置文档,并且对必须和可选配置项有明确说明。

依赖兼容性

检查框架对操作系统、服务器环境、编程语言版本、数据库以及其他第三方库的依赖要求是否明确,以及这些依赖是否容易获取和安装。

自动化工具支持

是否支持使用Docker等容器技术进行部署,使得在不同环境下的部署变得一致且易于迁移。是否有现成的CI/CD集成方案,比如与Jenkins、Travis CI、GitHub Actions等持续集成/持续部署工具的对接。

扩展性和弹性伸缩

在集群环境下,该框架是否能方便地进行横向扩展,如是否支持负载均衡、服务发现等功能。当需要增加或减少资源时,能否平滑地进行水平扩展或收缩。

更新与升级

新版本的升级过程是否简单,是否有可能导致服务中断,以及是否有详尽的升级指南。

错误处理与回滚

部署过程中出现错误时,是否有完善的错误提示及解决方案,以及在部署失败后能否快速回滚到之前稳定的状态。

日志与监控

框架是否内置或提供了良好的日志记录和分析功能,以便于排查部署问题。 是否支持集成主流的监控系统,便于实时了解部署后的运行状态。

错误处理机制

错误提示与文档

当代码出错时,框架是否能够提供清晰、准确且有意义的错误信息和堆栈跟踪。 错误信息是否易于理解,是否指向问题的具体位置以及可能的原因。 框架是否有详尽的错误码或异常类型列表,并在官方文档中对这些错误进行了解释。

日志系统

框架是否内置了强大的日志记录功能,允许开发者灵活配置日志级别(如DEBUG、INFO、WARN、ERROR等)以捕捉不同级别的调试信息。 日志输出是否结构化且便于搜索分析,是否支持对接第三方日志分析工具。

调试工具支持

框架是否提供了集成的或兼容的标准调试工具,例如IDE内的断点调试、远程调试能力等。 是否有API或接口可以方便地插入调试钩子,以便于实时监控和介入程序执行流程。

测试框架

是否有一个内建或推荐的单元测试、集成测试或端到端测试框架,可以帮助开发者编写测试用例来定位和修复问题。 测试框架是否能够提供详细的测试报告,包括失败原因和相关代码位置。

性能分析与跟踪

框架是否提供性能分析工具或者容易与其他性能分析工具结合,帮助开发者找出潜在的瓶颈或资源消耗过大的地方。

社区与资源

社区活跃度如何,是否有很多针对常见问题和错误排查的解决方案、示例代码及教程。 开发者是否能够快速从社区获取帮助,减少自行摸索的时间成本。

功能性

功能完备性

框架是否覆盖了所需领域的主要功能。例如,对于Web开发框架,应检查它是否支持路由管理、模板渲染、数据库操作、认证与授权等功能。 核心功能模块是否完善且成熟,如对于微服务框架,要考虑其对服务注册发现、负载均衡、熔断限流等机制的支持。

API与接口设计

API文档是否详尽、规范,包括函数、类和方法的参数、返回值及异常处理信息。 接口设计是否合理,易于理解和使用,遵循良好的设计原则,比如低耦合、高内聚、单一职责等。

扩展性

框架是否提供了足够的扩展点以适应未来需求变化或定制化需求。 是否支持插件系统,使得开发者可以方便地添加新的功能或替换现有功能模块。

兼容性和集成性

框架能否与其他主流技术栈良好兼容,例如不同的数据库、缓存系统、消息队列等。 是否容易集成第三方库和服务,比如是否有现成的适配器或中间件来连接其他服务。

最佳实践和案例

查看该框架是否有丰富的实例代码和项目案例,这些案例能够展示框架在实际应用中的表现和适用场景。 是否有推荐的架构模式和编码规范,以及这些模式和规范如何帮助实现高质量的应用程序。

社区支持与更新频率

社区活跃度如何,是否有大量的教程、博客、论坛讨论和GitHub issue解决记录,这间接反映了框架功能的丰富程度和实用性。 框架版本迭代是否频繁,新功能是否及时跟进,bug修复是否快速,这也体现了框架功能性方面的生命力。