前言:为什么要重构“YEE工资模板计算系统”

1,116 阅读3分钟

一、开源的时代背景

      会有点啰嗦,请大家跳着看。完全不影响。

      前两年,我所工作的单位是科技比较落后的单位,工资计算都是基于Excel,他们老总后来想要改变,居然上淘宝买工资管理系统,好像是花了3000块,找我去帮忙看看是否合适。我当时结合他们的需求,再仔细了解了那个系统 ,发现并不能满足需求,有些比较复杂的需求,那个系统都无法实现,因为模板十分固定,计算方式也只有加减乘除,连公式计算都没有。

      所以,后来经过一些考虑,他们请我开发这套系统,想想还是太年轻,都怪那时还没结婚,我居然答应了。但既然答应了,就只能开杠了。

     终于自己一个人,没日没夜的开杠了3个月,杠了出来。也投入试运行。运行效果还算不错,纠正了很多以前没有发现的问题,比如说,员工跟岗位挂勾,岗位设有岗位系数 ,系数关联工资系数 ,他们在基于excel计算工资的时候,时常会将一个员工调整到其它岗位,但相应的岗位系数却没有调整,导致最后工资计算错误。

    当系统上线试运行之后,发现了很多这种问题,更甚者,发现某个员工因为岗位系数没被调整,少发了一两年的岗位工资。

     最终其实我也很开心,因为系统确实得到他们的认可。

     但悲剧的事情也随着而来,人事部门领导换了,新来的领导,停用了该系统。我本以为这个系统是上任领导的政绩,所以新领导不想用了 。 后来才听说,他们部门是怕我有一天辞职走人,这个系统没人可以接手管理。oh my god,倒是也有点道理 。

     后来我明言,你们再想我继续开发,就没门了。无名也无利。

     好在我一开始就保留了代码的所有权。想想这套系统杠了这么久,没人用,好可惜。既然如此,倒不如开源出来 ,看看能不能有点什么作用。

二、因为开源,所以重构

         前期代码也是边学边写,随着API越来越多,功能越来越复杂 ,再加上这一年多,新开发的项目:  领域英语APP  是基于GraphQL的,体会到GraphQL的优点之后 ,心里想重构的心也起来越大。但是怕自己会半路放弃,所以记录在博客中,鞭策自己重构完。       

三、技术选型

原项目开源地址

hr-server : https://github.com/yeelone/hr-server

hr-admin : https://github.com/yeelone/hr-admin

原项目技术选型:

后端  : Go  + Gin+ PostgreSQL 

前端 :  Angular

原项目系统截图,前端使用Angular。

docker部署体验:

3、拉取githubroot@hrgdrc:~/project# git pull https://github.com.cnpmjs.org/yeelone/salary-docker-compose.git 
4、构建docker-composeroot@hrgdrc:~/project# docker-compose build 
root@hrgdrc:~/project# docker-compose up访问:http://localhost:8010

测试账号:admin 密码:123456

新技术选型:

后端 : GO + gqlgen + graphql + postgresql + redis 

前端 : 暂时考虑可能会采用flutter web 

可能大家会疑惑,会什么要采用flutter web ,因为我写了一年多的flutter ,慢慢熟悉了flutter ,想统一一下自己的技术栈。再来着,flutter 的平台兼容性我觉得还不错,后期我可能可以直接打包成一个desktop应用,那样更方便使用了。

但是现在前期,主要还是想重构后端 API。

这是思维脑图。

下一篇文章,我会抓紧杠出来。

目录

第一章: GraphQL 与gqlgen