软件如何流畅

    软件的流畅性是个十分重要的问题,不论是什么软件,重要的,一般的;运行在关系国计民生的地方,或者普通的用户使用。首先要让用户用的舒坦,也就是用户体验要好,如何体现这些呢,流畅性无疑是最直观的了。与流畅相对应的就是卡、反应迟钝、慢…试想,开发出的软件或者系统,既卡又慢,还反映迟钝,我想无论是多么重要的软件系统都不会得到用户认可的,而且如今都是市场经济了,不好的东西肯定是被淘汰掉的对象。
    因为程序的运行是需要一个过程的,一般主要有:数据获取( 络,本地;获取的数据源无非是数据库和配置文件)、数据加载(指加载至某种控件上,以供显示)、操作数据(也表现在对控件的操作)、数据包装,数据运算,数据转换等,还有逻辑处理,包括操作步骤,方法的调用,对象的实例化等等。
    对数据方面,需要良好的数据库设计,使数据的读取和写入不要有太复杂的逻辑,以减少运行时间。尽量写高性能的sql语句。一般这方面优化空间比较小。
随着现在所谓“云”的概念的出现,从 络读取数据的方式用的越来越多了,其实这块是比较耗时的。将数据从 络读取下来,或者从本地上传至 络总是需要时间的。在C#中表现为webservice、WCF等服务的使用。这方面除了要优化好数据库和sql语句外,还应该首先要减少在服务端对数据的操作,比如读取的数据一般为datatable什么的,我们可能在服务端就定义了类,然后用类将datatable数据进行封装,此时肯定要花费不少时间尤其是大量数据时。如果对速度要求高,可以去掉这一步,在客户端完成这些封装。其次就是在服务端对数据的运算,比如string要转为int,要进行加减乘除的运算,要转换为某种格式…因为服务端总是有多个客户端去访问的,如此多的操作肯定对读取时间造成影响。其次,传输的问题,读取出来的数据总是要传给客户端的,可以对数据进行处理,比如压缩。最后,当然是对 络的要求了,这个无非就是提高带宽,使用多服务器等,分布的服务器。
    逻辑处理方面,最大的法宝就是异步操作了,因为无论性能如何高,总是有必要的运行时间。这时就需要异步处理,使用线程Thread,4.0后的BackgroundWorker等,这样避免在处理子业务的时候,造成主流程卡住。一般常用的方法就是使用提示语或等待框,让用户知道正在进行某项处理,同时用户可以随时取消当前的操作,从而转入另外的操作步骤。也可以适量使用一些缓存,存储一些常用数据,避免重复读取某些数据。可以将过长的操作逻辑分布进行,避免需要用户长时间的等待。
当然了在这些过程中,算法是很重要的,利用算法提高性能。
    总之,一款使用流畅的软件,总能给用户带来更好的满意程度。毕竟软件的价值只有在用户手里才能体现出来的。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年4月22日
下一篇 2013年4月22日

相关推荐