雾隐楼台

牛顺顺

Java后端工程师

个人信息information

    籍贯:河南
    生日:1995.02
    性别:男
    Java开发:2018.04-至今

教育经历Education

  • 黑龙江大学
    信息管理与信息系统(全日制本科)

项目与工作经验Experience

  • 广州瑞云网络科技有限公司深圳分公司(所有项目均为淘宝商家软件)

    掌中宝交易-订单中心(本人是从0到1最初的开发者)
    项目说明:订单中心是一个利用Dubbo开放其接口,供其他微服务调用的后端项目,是为了解决商家查询订单接口慢的问题(速度慢是由于淘宝接口没有提供丰富的入参,而用户又需要各种定制查询,需要调多次淘宝接口导致)
    具体实现:整体项目使用SpringBoot2.0,通过Mongodb存储从淘宝 api 拉取全量字段订单数据,保存用户查询时间至redis,并加Redis锁,以保证分布式运行不会出错,下次用户进入查询,再根据查询时间增量查询数据,把查询的数据跟mongodb中数据进行对比,替换过期数据,即完成更新,通过特定的搜索条件添加Mongodb索引的检索速度
    掌中宝交易-短信模块(后续维护和开发)
    项目说明:提供公司所有项目短信的发送,使用Kafka和数据库同步两种方法发送短信
    具体实现:其他项目可以通过Kafka发送消息或者插入数据表的方式来通知短信项目发送对应短信,短信项目发送之后会对结果进行同步,具有很强的可扩展性,可以对接多个短信运营商,可以随时添加新的项目的短信发送类型
    多买宝(后续维护和开发)
    项目说明:买家购买商品之后,可以使用该软件发送各种定制化卡片,包含定制化海报,优惠券,优惠金额,促销游戏等等。
    具体实现:是利用淘宝的奇门接口,经过一系列商家设计的复杂逻辑来判断推送需要推送的卡片,并发送给买家,项目中有使用quartz来作为分布式定时器,使用Mongodb存储用户统计数据,使用Redis保存缓存信息
  • 个人项目 源代码 插件地址

    nzook:一个zookeeper可视化Intellij IDEA工具插件
    可以在插件市场直接搜索到,工作的时候使用Dubbo时需查看zookeeper节点,使用插件就非常方便了
    以树的形式提供显示zookeeper的znode结构
    可以新建、编辑、删除和拷贝节点
    可以查看和编辑节点数据、节点元数据和控制信息
    之后看情况还会加个测试Dubbo接口的功能

  • 个人项目源代码

    NclassReader:Java类文件结构查看器
    写这个的原因主要是因为要熟悉class文件结构
    使用vue开发前端页面,用electron来构建的一个桌面应用程序
    功能跟Classpy 类似
    遵循Java8Jvm规范解析,Java8以后的暂时没有添加
    左边是树形的class文件结构,对应右边的二进制字符,选择左边的分支,右边会对应高亮
    参考了《Java虚拟机规范(Java SE 8版)》《深入理解Java虚拟机(第3版)》

  • 个人项目源代码

    NReader:epub格式图书的桌面级阅读器
    个人学习前端时基于兴趣做的一个阅读器
    使用vue开发前端页面,也是用electron来构建的一个桌面应用程序
    支持绝大多数epub图书的阅读
    可以调节字体大小,背景颜色,进度条等常用设置
    使用了ant-design UI组件库
    使用了轻量级数据库lowDB来保存图书信息和进度信息

技能Skills

  • Java后端

    Java基础
    熟悉Java基础知识,对于泛型,接口,异常,容器,注解,以及各种Java语言基础都有很深了解
    熟悉Java高并发及多线程业务处理,对于多线程及JUC都能熟练使用
    了解一定的Jvm基础知识,对于Jvm底层运行逻辑非常感兴趣,目前想要利用Java实现一个简单的Jvm
    Spring Boot
    能够独立搭建spring boot项目,熟悉web应用场景开发
    熟悉数据库整合,项目中使用过mybatis、mybatis-plus,了解过分库分表解决方案 sharding-jdbc
    能够整合各种中间件 redis、rabbitMQ、Dubbo
    数据库(mySql/redis/mongodb)
    熟悉mysql的使用、优化,了解一部分底层原理,能够对索引和查询性能进行优化
    熟悉redis,项目中使用过redis做缓存和分布式锁
    了解mongodb,使用过mongodb,熟悉springboot中的mongodb操作
    RPC框架(Dubbo)和 springCloud
    熟悉Dubbo框架使用,能够使用springboot-Dubbo构建微服务
    了解springCloud和springCloudAlibaba,能够快速上手学习开发
    消息中间件(kafka/RabbitMQ)
    熟悉kafka,项目中选择使用了kafka作为短信项目的消息队列
    了解RabbitMQ的使用、做过springboot相关的项目
  • Web 前端

    html/js/css/vue(不深入)
    了解 html/js/css 一些基础知识
    能够写出简单的网页,使用vue和各种组件可以开发一些简单的前端项目
    有个人项目 NReader 和 NClassReader 是使用vue开发
    electron(不深入)
    能够和vue一起开发一些桌面应用
    有个人项目 NReader 和 NClassReader 是使用electron开发
  • 其他

    • 具有一定的 数据结构 / 计算机网络 / 前端 相关知识
    • 熟悉大部分的设计模式,对于代码的优化有很深的洁癖,着重于编写易懂具有扩展性的代码
    • 了解docker的简单使用,自己有台云端服务器,常常使用docker来搭建各种环境
    • 开发使用IDEA
    • 个人缺点:涉猎很多但是不算精通,未来能够找到一个方向,进行深入