前言
在工作过程中,有时候会涉及对不同项目进行上位机的开发,从难度比较低的单机上位机平台开发到难度比较高的高并发上位机平台开发.如何在做项目过程中游刃有余,难易通吃?解决办法就是设计一个扩展性好的通用平台,无论项目复杂程度如何皆可通吃!
哪该如何设计才能达到这样的效果呢?
我认为设计好以下两个核心功能,则该平台就具备了通用的基石了!
一.界面可扩展
即可以根据设计者需求能够不受限制(在硬件能够支持的情况下)的扩展用户界面!
设计上位机基本上离不开人机界面,这是必备的,而且对于大部分开发环境而言都是比较容易做到界面的扩展自由的,但其难点在于不同界面如何更好的相互通讯!不过对于Qt而言这不是问题,因为Qt有其独有的信号槽机制,这就轻松解决了界面之间相互通讯的问题了,从而也轻松做到了界面扩展的要求了.
二.线程扩展
有些大项目需求比较多,这个时候仅在一个主线程中去处理任务就显得臃肿而费力了,实时性大大降低,扩展性及功能升级维护都不方便!
这个时候就需要把项目需求分类成不同的任务,每一类任务都采用独立的线程进行处理,这不仅提高了平台运行效率,提高了实时性,也降低了不同任务之间的耦合性,设计者可以按照项目需求的多少自由扩展线程的数量,从而使平台的扩展性得到非常大的提高!所以多线程必需掌握且能够灵活应用!
线程还得与界面进行通讯,对qt而言用信号槽机制就解决了!
总结
1.无论你用什么开发环境开发上位机平台,以上两方面做好了基本上可以不用担心软件整体方面出什么大问题了,用专业术语来说就是不用担心软件架构问题了,即便不懂架构设计,毕竟咱们只是处理工程项目,还没有上升到系统级项目的设计,因此没必要考虑使用大型的软件框架(这是大神才能玩的啊!)!
2.剩下的就是添砖加瓦的事情了,比如扩展类库,文件操作,控件的使用等局部功能的实现!