最近因为公司在薪资制度方面的改革,导致现行薪资系统也遇到很大的变动。故思考了一下关于薪资系统模块化的问题。
如果需要将一个系统模块化,我认为其功能必须具有通用性,就是说这个功能必须适应现行的普遍需求。那么,具体到薪资也就是要求这个模块化后的系统必须能够满足现在正规企业,或者说再强大点儿,能够满足现行的基本所有企业的薪酬计算要求。
那么这里面就涉及到几个问题:
第一,薪酬组成规则。薪酬组成决定薪资的计算规则。如何设计薪酬组成,才能使薪酬计算达到通用。
第二,计算公式的实现方法。这是薪酬计算的核心部分。如果实现计算,才能保证计算方法的变更与系统代码相互独立,以实现系统的强大扩展及兼容性。
第三,计算规则的存储。

对于第一个问题,我觉得应当统一薪酬组成,所有薪酬组成部分都视为最后薪资的一个组件,即SalaryComponent。这样,系统只需要去识别现在系统中实现的SalaryComponent,利用SalaryComponent自己的计算公式得出各自的结果,最后再进行一个累加和(当然也可以是其他更复杂的处理,只不过我觉得既然已经封装了,那么最后在封装的时候就考虑好这些处理),便能得到我们需要的薪酬。
第二个问题,计算公式的实现。在对第一问题的处理中,提到了一个SalaryComponent自己的计算公式,我们的第二个问题实际上主要针对的便是这个问题。如何通过计算公式的通用性来达到我们SalaryComponent的通用。简单的举一个例子来说,比如有一个叫“福利工资”的SalaryComponent他以前的计算公式不适用了,现在需要另用一套计算公式,但公司又不想重新开发一系统,只要业务人员改变一些设置原来的系统又能继续跑了。另外,变化比较大的情况下,公司上市了,员工的整套薪酬制度都要重新规划,但又不想换系统,因为一套人力系统从需求调研到最终的上使用一般都需要9个月以上的时间。这段期间公司如果还用以前的系统的或者直接不用系统的话肯定会弄得一团糟。
所以,我觉得在第二个问题的解决上,可以实现计算方法[b]DIY[/b]化,即让管理员自己设置计算公式。整个“DIY”界面就像一个强大的计算器(这个肯定比一般的计算器要强大,因为它还得实现各种复杂的函数功能,比如分段函数,递归函数,循环函数等等)。那么,这种计算就必须要一个强大的函数计算库来支持,就像Java.util.Math一样,只不过这里需要实现的比这个更具体,逻辑更接近业务。这里,我们可以有一个Arithmetic接口,统一所有的薪资计算。Arithmetic.calculate()实现所有的计算功能;一个Function虚拟基类,储存计算需要的环境,如参数。每一个具体的计算函数类需要继承Function,并实现Arithmetic接口。每一个计算类都应该在页面上找到对应的表示,并且通过管理员的赋值实现不同的实例化。
对于管理员设计的计算方法的存储成为这个薪资计算的最后一道工序。前面我们提到我们是通过SalaryComponent调用自己的计算公式来实现计算。最后对SalaryComponent再进行Operate,那么我们进行存储的时候第一级便是SalaryComponent及SalaryComponent之间的Operate,第二级是Function及Function之间的Operator。
这样系统在每次进行薪酬计算的时候首先进行运算组装。然后再进行计算。
但我觉得在最后的调用过程中还会涉及到一个性能瓶颈问题,如果,我们可以将存储的计算固化,也就是直接形成一个计算公式,在新计算形成之前不做改变。这样就可以大大的提交性能问题了,因为它减少了N次查询。当然用池化管理也可以解决这个问题。但这个可控性实在是不强。

关于模块化薪资系统设计方案的讨论相关推荐

  1. 停车场服务器系统,停车场系统设计方案.doc

    停车场系统设计方案 PAGE 4 目 录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc221704954" 目 录 PAGE ...

  2. 服务器机房新风系统,某机房新风系统设计方案参考

    <某机房新风系统设计方案参考>由会员分享,可在线阅读,更多相关<某机房新风系统设计方案参考(3页珍藏版)>请在人人文库网上搜索. 1.某机房新风系统设计方案参考根据以上要求并结 ...

  3. 校园录html源码,校园录播系统设计方案(20页)-原创力文档

    PAGE 1 PAGE 2 校园录播系统设计方案 1.1.盖诺逸影全自动智能录播系统设计思想 完整性:形式的便捷不是意味着功能的缺失,不能因为系统的集成性更高,而缺失原有的功能,移动的方便不能牺牲性能 ...

  4. 幼儿园视频监控系统设计方案

    幼儿园视频监控系统设计方案 随着监控技术的不断发展,已经有越来越多的幼儿园开始采用监控系统作为学校的辅助设备.采用监控系统已成为许多幼儿园智能化管理的新趋势.通过认真分析幼儿园视频监控需求,我们在幼儿 ...

  5. 现代化多媒体教室的计算机系统,多媒体电教室系统设计方案 现代化学校电教平台设计...

    多媒体电教室系统设计方案 现代化学校电教平台设计 一.系统概述 随着现代化教学系统在各学校的不断推进,传统的方式已经不适应现代化的需要,集多功能教室系统.多媒体教学系统.演播系统于一体的新型现代化教育 ...

  6. 电量监测程序 c语言,基于单片机的电量检测系统设计方案.doc

    基于单片机的电量检测系统设计方案 1绪论 自第一个微处理器问世以来,以微处理器为核心构成的计算机以各种各样的形式,无孔不入的渗入到人们的生产.生活.科研等各个领域,为人类带来了渗透到各个领域的&quo ...

  7. 数字同步网络时钟系统设计方案

    数字同步网络时钟系统设计方案 本文按照YTD 5089-2000数字同步网工程设计规范,对数字同步网的基准时钟建设进行了简单说明,并对其时钟系统的三级结构组成以及可用设备进行了简单的说明. 数字同步网 ...

  8. 一种基于嵌入式的多重识别门禁系统设计方案

    一种基于嵌入式的多重识别门禁系统设计方案 1. 前言 门禁系统已广泛的应用在各行各业,随着社会经济的发展,人们对门禁系统的要求越来越高,设计更加安全.更加方便的门禁系统势在必行.由于不同企业对于门禁系 ...

  9. 新超重车辆高速动态称重系统设计方案

    2021年最新超重车辆高速动态称重系统设计方案(专业完整版).pdf-Actionscript文档类资源-CSDN下载

最新文章

  1. 刀片服务器在现有数据中心的应用策略
  2. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)
  3. jQuery常用的方法
  4. C++尽量在operater=中处理“自我赋值”
  5. 3 当某个应用的CPU使用达到100%,该怎么办?
  6. 18. 4Sum 四数之和
  7. CSS分别设置Input样式(按input类型)
  8. 微信小程序 AppID和AppSecret的获取方式
  9. 【华为云技术分享】基于Atlas 200 DK的原版YOLOv3(基于Darknet-53)实现(Python版本)
  10. oracle导入导出还原,Oracle 备份 还原 数据库 导入导出
  11. Redis小记——数据结构
  12. 【ElasticSearch】(七)浅析search_after 及 fromsize,scroll,search_after性能分析
  13. python好用的内置库_python内置的高效好用各种库
  14. 在使用renderTo中遇到的Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null
  15. RegExp-2 【正则量词、属性、方法、使用技巧】
  16. 和计算机相关的英文名字女孩,最好听的英文名字女孩
  17. 关于VS运行时出现错误cannot decrement string iterator before begin
  18. 华为云数据转发与分析
  19. 半导体——本征半导体、杂质半导体、PN结
  20. Windows上CLion配置和使用教程

热门文章

  1. 学习资源分享——GitHub排行榜
  2. 跳伞人跳转网页HTML源码
  3. 使用matlab 仿真洛伦兹方程
  4. radmin 3.4 绿色版
  5. webpack-spritesmith 精灵图合成及使用
  6. Python网络爬虫之数据存储
  7. 苹果电脑 删除已安装的node
  8. 2017年腾讯移动客户端面试总结-失败经验
  9. 什么是“五险一金”?
  10. JS实现快速排序(代码+讲解)