mrfangzheng

Hope and fear are useless. Be confident, and always be prepared for the worst.
  首页  :: 新随笔  :: 联系 :: 管理

每个软件都应该考虑的问题

Posted on 2009-07-29 22:37  mrfangzheng  阅读(242)  评论(0编辑  收藏  举报
  1. 产品发行. 尽量减少对其他组件的依赖.
  2. 报告bug
  3. 非正常关闭, 数据文件或配置文件损毁
  4. 自身版本. 每个软件都会打补丁和升级, 自然就会面临版本问题.
    1. 提供API返回当前运行程序的版本以及每个组件的版本, 以及打过的补丁列表
    2. 列出当前计算机上的所有本软件的版本以及每个版本的补丁
    3. 补丁的安装,卸载, 冲突
    4. 是否允许多个版本共存?
    5. 兼容旧版本的文件格式
    6. 升级时备份旧版本产生的数据, 比如配置文件
    7. 持久数据(文件, 通讯协议)必须有版本
  5. 平台或者第三方组件的版本.
    1. 必须获得运行平台极其第三方组件的版本.
  6. 跨平台支持: PC/手机, Windows/Mac/Linux, 各种数据库, 各种浏览器
  7. 字符编码. 存储/传输文本时必须指定字符编码, 以便下次或者其他程序识别.
  8. 日志. 如何快速地找到客户环境下产生的bug的位置和原因? 日志必不可少.
    1. 记录运行环境信息: OS版本, CLR版本, 程序版本, 每个组件的版本, System Directory, Application Installation Directory, User, Working Directory...
    2. 记录当前使用地配置文件路径, 以及配置参数
    3. 可设置成debug模式, 记录详细的运行信息
  9. 备份. 包括: 修改之前的配置文件, 正在编辑的数据文件...
  10. 自动更新. 通过网络自动更新, 包括补丁, 最新版本等.
  11. 绝大多数参数可在配置文件中配置. 比如: 字体, 颜色等
  12. 命令行. 用户可以在批处理程序中调用.
  13. 成为COM组件. 让其他程序能直接调用自己的功能.
  14. 安全
    1. 本机用户密码的保存, 登录时"保存密码"功能
  15. UI
    1. Theme, 自定义字体, 颜色
    2. 屏幕分辨率, DPI
    3. Globalization
    4. Tab order
    5. Auto complete
    6. Keyboard shortcuts
    7. Dashboard以及功能的快捷方式
    8. Copy&paste
    9. Undo
    10. Recent objects : words/urls/files/pages...
  16. 多线程
    1. 后台线程和UI线程交互
  17. 打印(到纸张, PDF等)