【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
? ? ? ? 前面我们陆续学了qt的一些技术,这里面包括各个控件的使用,有定时器,有数据库,有图形的绘制等等。总体上说,截止到目前我们的确可以编写一些软件了。但仅仅是这样还是不够的,因为上位机本身还是为业务服务的,因此我们首先得知道这个上位机解决的是什么问题,业务的主要流程是什么,这才是最为关键和重要的。大部分搞技术的朋友,很容易沉迷到技术当中,却忽略了技术其实是为产品和项目服务的,产品卖不出去,再好的技术也白搭。
? ? ? ? 回答这个问题其实非常关键,甚至于说比怎么做上位机更为重要。当我们决定做一个上位机的时候,肯定是因为市场有这个需求,把上位机做出来可以满足这个需求。而且这个需求是切实存在的,并不是自己拍脑袋随便想出来的。很多时候,做什么、项目是不是要立项,这都是需要很长时间调研和博弈的。
? ? ? ? 当我们开始编写软件的时候,或者说发现市场上存在某种需求,接下来就会面对一个问题,我来做件事情,自己的优势是什么。发现需求这件事情,一般很多人都能观察到、注意到。但是找出现有市场上的供给有哪些不足,如何结合自己的优势,去进一步挖掘和提高,这才是最重要的。如果只是简单的重复和拷贝,虽然很多时候也能挣到钱,但是本质上只是红海里面多了一个参与者而已。
? ? ? ? 对于主流程的处理,很多时候并不是一步到位的。比如说,我们干一件事情,肯定是先做什么,再做什么,最后做什么有一个基本流程的。但这样的流程,是不是适合大多数的客户,这就两说了。所以,对于不同客户那些共性的部分要尽可能抽象出来,对于不同的部分,千万不能做成硬编码,这样就失去了软件的灵活性了。所以,对于业务主流程的抽象,肯定是一个不断提炼和优化的过程,很多时候没有办法一蹴而就的。
? ? ? ? 一个软件要想增加功能,没有什么复杂的。但是增加的功能,是不是仅仅围绕着主流程,这却非常重要。开发软件的时候,一个大忌就是为了适配某个特定客户的业务,强制修改了主流程逻辑,这就很麻烦了。不光是开发的时候难以保证质量,在后期版本更新和迭代的时候,也极容易出问题。所以我们开发的新功能,要尽可能围绕着主流程来实现,用插件、配置文件或、动态加载、抽象类的形式来完成,而不是一个一个的hard code,把自己的工作变成了体力活。
? ? ? ? 软件业务主流程也不是一成不变的。技术在变,场景在变,所以软件业务主流程这一部分肯定也会随之在改变。某些老的流程可能要去掉,某些新的功能可能要加上,所以应该尽可能用软件迭代的方法来完成。仅仅抓住市场、满足客户需求,这才是上位机最终的生存之道。遇到问题也不要慌,不要怕麻烦,每一次迭代和更新都是重新认识市场、了解客户需求的机会。这个过程是痛苦的,但是对开发者来说,是必须要经历和走一遍的,甚至于说可能要反复走很多遍的。