mrfangzheng

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

对编程的思考

Posted on 2008-07-05 15:01  mrfangzheng  阅读(209)  评论(0编辑  收藏  举报

编程, 就是用计算机来解决实际业务问题. 这里就有两个问题空间: 计算机空间和业务空间.

在业务空间里, 我们使用计算机语言, 算法来对业务问题进行建模.

在计算机空间里, 我们使用计算机资源(硬件设备, 操作系统, 数据库, 其他库等)让用户能够通过鼠标键盘等来操纵业务空间中的对象. 在计算机空间中有一个重要问题, 就是计算机资源是有限的, 而业务空间是无限的,  显然, 在某一时刻, 计算机空间只能展现业务空间的一部分, 我们的一个重要问题就是用这有限的资源来模拟无限的业务空间. 比如: 在一个3D程序中有大量3D物体, 用户认为所有的屏幕之外的3D物体都是随时存在的, 而在计算机空间中, 显存不可能把所有3D物体都加载进来, 只可能加载一部分.

计算机空间是View, 业务空间是Model, 中间需要Model和View转换的映射ModelViewMapping

关于Model和View的关系:

  1. 1个Model对应n个View
  2. Model发出事件, View根据事件进行更新
  3. ModelViewMapping和View一一对应
  4. ModelViewMapping负责将View空间数据Model空间数据之间的相互转换
  5. View展现Model的全部或者一部分
  6. View和用户交互, 用户通过View操作Model
  7. View负责管理和释放计算机资源

集合与个体的关系

容器与元素的关系

海量数据

计算机的3个重要指标是频率,带宽和容量, 频率代表速度, 带宽代表传输, 容量则代表存储. 同样软件中的对象也大致可分为:

  1. 数据处理型 : 算法是关键, 生命周期短, 短暂持有临时数据, 不共享
  2. 数据传输型 : 标准和兼容是关键
  3. 数据存储型 : 数据结构是关键, 长时间存储, 可以共享当要注意同步