ID:227726

戴一龙

高级java工程师

  • 公司信息:
  • 顺丰科技
  • 工作经验:
  • 5年
  • 兼职日薪:
  • 700元/8小时
  • 兼职时间:
  • 下班后
  • 周六
  • 周日
  • 所在区域:
  • 深圳
  • 龙岗

技术能力

1 需求获取与分析
2 前后端编码开发
3 数据迁移
4 编写存储过程处理数据
5 编码设计
6 提出并搭建基于数仓模式的报表输出
7 目前带领4至5人的团队进行项目推进
8 报表制作,数据库操作,前后台代码编写

项目经验

201908-202007个人职责,开发/设计/发版流程规范化
1 性能优化,系统上线后宕机频繁,原因是对大表频繁的读写操作,解决措施:部分批量操作改为晚上定时执行,对大表进行分区,建分区索引,减少dubbo重试次数和超时时间,提议对大表历史数据进行分表,相关数据导出业务移入报表,但报表基于业务表,实施需改造报表架构
2 规范管理批量任务,增加专门节点处理批量任务,封装创建批量任务的接口,方便调用,异步调用批量任务,并增加并发控制,当超过并发上限时进行排队等待。
3 为了对业务表进行分库分表,提出基于数仓的报表开发模式,主导数仓的搭建及开发,技术栈为ETL(kettle)+数据仓库+报表呈现工具(帆软),数仓基于分层的思想进行搭建,基本框架搭建完后指导开发人员进行报表开发。
4 规范迭代版本发布过程,提出非敏捷模式的开发以一个月作为开发周期(考虑各方面人员配置),增加版本控制角色,增加需求分析角色,增加禅道的使用度,规范测试时间节点,用户测试时间节点。
5 负责每次迭代需求的系统设计,包括数据表设计,接口设计以及界面设计
201901-201907:参与项目立项到项目验收的全过程
1 项目背景及功能:公司主营为银行金融风险控制业务的外包,代理银行催回欠款;一线作业人员通过催收系统进行日常催收作业,系统一方面为用户工作提高效率,另一方面记录用户作业行为,对用户实施监管,此外系统输出相关数据给银行客户,以前已经存在用.net编写的一代催收系统,随着用户增多,并发增大,一代系统十分卡顿,为了解决卡顿支持公司日常业务,公司决定开发基于Java的二代催收系统。
2 技术栈及架构:oracle+mybatis+springboot+dubbo+vue.js+redis+nginx,项目主体是dubbo rpc框架
3 个人职责:项目后端核心功能开发,部分前端功能开发。
3.1 功能一,案件查询,案件是一线员工作业的对象,案件查询相当于系统的门户,用户要进行作业,首先通过案件查询找到对应案件。但是存在若干技术难题,1 案件主表的数据量是千万级的 2 数十个查询条件组合,索引容易失效, 3 并发量较大,业务要求要查询所有时间范围内的数据,没有明显的历史数据;若要支持较高并发,就得使接口响应时间尽可能短(一代系统没有解决这个问题),因此本人的解决方案是,1 与业务方谈判,通过适当降低体验来保障系统可用性,如设置某些筛选条件必选 2 找出主表的数据热点,然后以某个关键字段对主表进行表分区,并把该关键字段作为必选条件 3 对于大权限角色,不返回页数,只显示是否存在下一页,相关统计功能移入报表
3.2 功能二,应用解释器模式实现新案导入,背景:公司的客户有上百家,每个客户基本都是通过excel模板导入新案到系统,但是模板格式因客户而异,正常情况下需要为每个客户单独写程序实现excel数据的导入,需要开发上百个程序,工期之内是不可能完成的;解决方案:通过分析不同客户的excel模板规则,找出共性及特殊,应用解释器模式实现了一套自定义语法,通过在页面输入规则,可实现对excel的各种操作,最后还实现一套通用规则,用户可在定制与通用之间选择
3.3 其他功能略过
4. 对架构的思考:对于一个小数据量的系统而言,可简单通过增加服务节点增加并发能力,但是系统性能的提高遵循木桶原理,短板决定了系统性能的上限,一代催收系统性能受制于数据库(单节点数据库,千万级甚至上亿的数据量),数据主业务表上千万,但并没有做适当的分库分表,二代催收系统设计时相关决策人员发现是数据库的问题,因此将sqlserver替换成了oracle,但并没有意识到数据量的问题,虽然主表做了分区,其他关联表依然是千万级的大表,系统成功上线后,并发量上去了,但物理资源占用大,并发上升有限

信用行为

  • 接单
    0
  • 评价
    0
  • 收藏
    0
微信扫码,建群沟通

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服