怎么样才能写出比较理想的业务代码_生活灌水_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  生活服务区 »  生活灌水 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2318 | 回复: 1   主题: 怎么样才能写出比较理想的业务代码        下一篇 
18608399680
注册用户
等级:列兵
经验:86
发帖:2
精华:0
注册:2015-8-25
状态:离线
发送短消息息给18608399680 加好友    发送短消息息给18608399680 发消息
发表于: IP:您无权察看 2015-8-25 16:51:03 | [全部帖] [楼主帖] 楼主

平时写一些代码的时候不像写一些框架涉及到具体的业务比较少,或者也不能说比较少,只是涉及到的业务感比较轻,现在一般的公司的代码都是具有很强的业务感觉。
而且一般写这些的时候还用框架,比如说比较流行的SSI或者是SSH。然后分模块开发。
当我们用这些框架开发的时候往往是一个Service提供接口给本模块或者其它模块使用。这个时候一个Service往往会包含很多各式各样的接口。这个时候往往会发生以下问题:

  • 一个Service往往是对其它Service的接口的一个组装,这里就会出现很强的过程似代码的感觉
  • 当我们用Spring来注入的时候,往往一个Service的方法里面都出出现1到2个一样的参数,当我们想把它提到类变量的时候,发现已经被框架限制了
  • 因为Service是对外提供方法服务的,所以处理异常就会放在Service,这个时候没有接口都需要附带2个信息:

    • 接口是否成功,如果失败了,那么失败的信息是什么
    • 接口提供的信息,查询接口返回一个实体

    这样子可能会出现以下几个问题:

    • 有些信息在其它模块中,是由很底层的服务提供的。这个时候这个信息需要一层一层往上 传。这就会导致这一层一层的Service在调用底下一层的时候,需要判断对底下一层的调用是否有错误信息,如果有错误信息就中断主流程,并且把错误信息继续往上传。很多true/false的判断会在一个Service方法中出现很多次。
    • 因为是分模块的,所以我们的假设是对其它模块一无所知。所以这个时候Log的记录就会变得很蛋疼。当我调用其它接口是返回给我的是false。这个信息对我很重要,所以我需要打INFO日志记录下这个信息。但是往往很凑巧的是,这哥信息在被调用方也打了一遍,这就会出现一个工程里面出现很多相同的Log。

    一些service中往往涉及的方法很多,基本上是一个Service往往有很多职责。

写了很长一段时间业务代码以后。给我的感觉是,程序员并不是在写代码,而是在搞业务,基本上不会涉及到抽象或者抽象成分很小很小。

怎么才能写出比较理想的业务代码,还是业务代码只能这么过程式的去写?




赞(0)    操作        顶端 
xpisme
注册用户
等级:少校
经验:1117
发帖:65
精华:0
注册:2015-6-29
状态:离线
发送短消息息给xpisme 加好友    发送短消息息给xpisme 发消息
发表于: IP:您无权察看 2015-8-25 16:53:41 | [全部帖] [楼主帖] 2  楼

首先任何功能的执行,说到底还是一个过程,先做什么再做什么,第一步第二步,这是肯定的,理清这个过程是实现的第一步。然后,面向对象的设计要求我们把过程中的每一步委托给合适的类来做,读文件让谁来做,排序让谁来做,解析xml让谁来做。这样职责委派的结果,就是程序内出现了模块分层,被依赖得多的模块,通常被视为底层。

当对象在模块之间进行传递时,是否每个模块都要判断其合法性?commons-lang的StringUtils是个例子,它用来处理字符串,而它的所有方法都能很好的处理null参数值,所以它发出了一个很明确的信号:不要在调用我的方法前检查参数是否为null,只管传给我好了!至于你自己写的方法,对参数有什么要求,最好在文档里说明,这样调用者也省心。

日志记录,每个模块都是在自己的角度上去理解要不要记,所以如果你觉得某个地方重复了的话,通过调整配置屏蔽掉多余的就好。



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册