利用脚本将java回归到面向函数式编程

  这一年来一直在思考一个问题,就是如何降低Java开发的复杂度,有时候真的是感觉“面向对象一声炮响,将所有人都震晕了“,做了这么多年Java,越做越累,原因在于始终找不到一个很好途经有效降低项目开发的成本,让刚刚走出校门的学弟、学妹能够快速的创造价值。
 
   其实公司也有很好的培训制度,从基础开发到高级应用,面面俱到,但是这种培训真正给项目带来的价值并不是很大,每个在客户现场的项目经理都会深切认同”远离战场的人都是军事家“这句话。
 
   可能是自己太懒惰了,对新的JAVA框架都不太爱去看,总是感觉到了现在这个时候,还沉浸在掌握了几个框架的YY中,实在悲催,浪费青春,终究尘归尘,土归土,而且框架设计者解决的是大众问题,说白了,解决了80%的问题,而要把一个公司的产品做的有生命力,应该考虑的是20%,这才是真正的核心竞争力。
 
   废话太多了,说一下自己的想法,特此声明:此想法是个人意见,不具有任何普世价值,喜欢拍砖的可以随意拍,但是不要恶意,喜欢捧场的,可以随意捧,但是不要崇拜
 
   目标:联机交易系统
 
   思路:消息驱动模式,全流程式分支处理,节点服务为面向服务式,基于业务字典进行接口定义托福答案
 
   技术要求:核心稳定,支持7x24,高度容错,快速开发
 
   其实看到这些,我相信大家都知道这种系统的应用场景了,好吧,相信很多人都做过这种系统,这种系统我做了4年多,自己走了很多弯路,前面的blog里面也有简单的说明,这里我说一下这次做的方式吧
 
   1、首先分析隐含的需求,系统部署模式是什么?系统的运行环境是什么?性能要求是多少?其实这些挺关键的,做Java的很少会考虑这些,除非你是高手,因为充分利用系统环境,可以降低您的开发量,并可以将Java的性能发挥出来。
 
   这种系统我个人的想法是Application系统,运行环境就是Unix/Linux和JRE,OK,我可以利用sh来完成太多的事情了,性能不用说,300TPS以上才可以达标托福改分
 
   2、显示的需求(绕过业务,这里不用多说)
 
   核心稳定,支持7x24,这个说实话,要实现真正的7x24挺难的,怎么办,一是核心要经过简单,越简单越稳定,我不相信hello world崩溃了,除非您人品有问题,好吧,消息模式,线程管理,这个没有问题,如果线程确实有问题怎么办,用守护进程吧,做心跳,重启进程。
 
   高度容错,这个是异常处理和超时处理,内部心跳检测,内部消息管理方式实现雅思答案
 
   3、快速开发
 
   这个是应该我想说的重点了,现在Java的开发基本是基于开源框架搭建,其实不管框架多么完善,开发人员始终要面对的是类的设计,对象的创建,当然也看到很优秀的框架能够自动生成这些,但是还是避免不了去修正,其实这种方式对开发人员的要求是很高的,我相信99.9%的框架是不会设置访问限制的,即使最初级的开发者也能够在自己的类中把您的DataSource shutdown了,想想就崩溃,还好做IT的人品都不错(嘿嘿)
 
   其实联机交易系统要做的事情都是数值计算(看清楚哦,不是数学运算,是数值计算),数值计算需要三个元素:操作符,参与者,结果,那好吧,我们把这些都封装成为接口,提供给开发者,让开发者做数值计算吧,即使写错了,也把限定到一个区间里面。
 
   实现这种方式最好的方式是提供函数,即使最差的毕业生也知道函数怎么使用吧,这个门槛都过不了,那真的是无语了,那作为产品的设计者就要考虑的是如何将面向对象的Java转移成为函数提供给这些开发者,好吧,我们有脚本,OK!
 
   思路是这样的【Java基础类(对象)】====》【脚本基础包】====> 【开发函数脚本片度开发】====》【编译脚本】====》【业务流程节点】
 
   形成业务流程节点后,那我们就可以利用核心流程调度器调度节点,形成业务流程,并由消息驱动来实现业务流程的驱动,是不是挺简单北美托福答案
 
   要做好感觉不简单,为了达到这种模式,整个框架要完全自己来编写才能够适应这种模式
 
   其实今天写这个blog是有点遗憾,自己只是部分实现了这种方式,还有很多不足,但是效果还是不错的,给自己留在Java领域的时间不多了,应该说还有2天,希望各位大牛能够加以改进这种模式,利用7的内存直接管理功能,做好联机交易系统。
 

posted on 2013-04-15 20:36  haosola  阅读(121)  评论(0编辑  收藏  举报

toeflacttoeflieltstoefltoeflact