ID:349367

巴别塔

java全栈开发

  • 公司信息:
  • 深圳数聚能源科技有限公司
  • 工作经验:
  • 3年
  • 兼职日薪:
  • 500元/8小时
  • 兼职时间:
  • 可工作日远程
  • 可工作日驻场(离职原因)
  • 可工作日驻场(自由职业原因)
  • 所在区域:
  • 深圳
  • 南山

技术能力

前端技术栈:
精通Vue 2和3的使用及其原理,熟悉react、react native、nextjs的使用。熟练使用html5、css3、typescript、scss和less。使用tailwind原子化css构建工具。能够熟练应用Nuxt预渲染构建工具进行前端开发,并理解与运用XHR、fetch、ws、webRPC等多种通讯协议,理解前端工程化工具webpack的原理。此外,能够熟练使用Element-UI、echarts和Mint-UI组件库,显著提升开发效率和界面美观。了解openlayer、mapbox等webgis工具。了解并使用过wasm。了解无界微前端框架。

后端技术栈:
熟悉Java基础,深入理解GC原理和JVM优化。具备SpringCache、Redis和Caffeine多重缓存架构的知识,能够有效地进行消息中间件的选择和使用,包括RocketMQ和Kafka。了解PostgreSQL的实现原理,并能够进行存储优化。熟悉Spring Cloud的各个组件,能够灵活地应用领域驱动设计架构模式。了解hadoop、hive、flink、clickhouse、starRocker、elasticsearch等大数据工具的基本使用以及OLAP数据库原理,具备Linux基本命令和Shell编程技能,能够熟练地进行大型多团队合作开发,遵循CI/CD流程。

项目经验

项目概述:
个人项目,是一个数字化定制商品买卖平台,主要的提供有3D、2D模型、定制软件等商品的交易服务,平台负责对接有定制需求的甲方和有定制开发意愿的乙方进行交易。
由于项目内包含个人OSS密钥,所以项目地址是个私有仓库而未公开。
关于前端:由于页面功能有很多需要高度定制,所以没有使用低代码平台,而是选择手写,
1.为了使搜索引擎能够爬取并免费推广网站,使用Nuxt3架构进行5SSR服务端首页渲染,并在各个页面安插keyord、title,以及站内跳转链接,方便百度蜘蛛爬取以达到搜索引擎引流效果。
2.使用nuxt自带的composablel以及第三方全局事件库mit使公共变量全局可见,公共方法全局可触发,公共事件全局可触发,
3.使用element-plusnuxt+sc+tailvinds+gsapjs组合和样式方案做到少量代码实现复杂样式、自适应布局以及动画效果。
4.使用loadsh的debound防抖与throttle节流功能,让减少用户重复触发请求后端的次数,减轻后端服务器压力。
5.使用trejs+pixi.js实现3D、2D模型在网页上的渲染,并使用对应库的webgpu api做到GPU加速渲染。
6.使用socketio实现实时类QQ聊天功能,且配合rxjs异步数据流库和自旋锁逻辑,做到处理复杂且异步的聊天信息如初始化聊天记录时的分页有序且去重的接收,多人同时向己发送信息时根据时间《将无序的异步信息变得分类有序且同步,并且使用DEXIE.js配合浏览器内置的indexedDB数据库,实现聊天记录本地化存储,大大减轻后端服务器访问压力和读数据库压力。另外服务器端使用RTC国际化标准时间以及客户端使用本地化标准时间,解决异地时间不一致,以及时钟回拨时从服务器获取的聊天记录重复问题。
7vite-pwa实现浏览器端、手机app端、桌面端跨平台引用,并使用cache storage+ servie-wrker将页面缓存在本地,从而可以在手机app端、桌面端离线使用部分功能。
8.在用户影视频通话时,使用socketio实现各个客户端通过信令服务器交换各方信息,交换完成后使用浏览器原生webRTC的ap进行通信,并且可以随时切换或开关各个音视频轨道
9.在软件页面,为了让用户软件(如wasm)或用户个人网站能够在浏览器端运行时不会造成xss攻击,使用wuie微前端组件将用户软件进行js和样式隔离,并且也实现了多个前端架构兼容(如react、selvet等)。
10.在3D、2D模型这种大文件上传到OSS服务器时,使用us-js-clien工具进行切片发送到后端,并且把上传进度以回调的方式在页面进度条上显示。
关于后端:对比了java和go的生态之后,选择生态更完善工具库更多的springboot3。
1.由于传统分层架构service层承担过多逻辑代码,导致项目后期维护困难。为了解决这个问题,后端使用了DDD充血六边形架构,按业务需求划分各个领域,实现了业务代码和领域代码分层、存储代码和领域代码分层,即能使架构各个层级职责分明,又使各个领域解耦,还使单体架构向微服务架构的转型更加容易。使提升项目代码可维护性的同时,业务逻辑也简化到了不懂代码开发的其他人员也能根据业务代码和代码注释,,清晰了解业务执行流程,降低了业务人员和技术人员的沟通成本。
2.基于springsecurity+JW实现用户身份验证,并将身份缓存在服务器内存(cffeine)以及缓存redis服务器上加速身份验证流程,减轻读取数据库的压力。用户每次请求时只需将JWT放在http请求头部,服务器接收时就能校验,另外使用Oauth2配合github、gitee提供的api实现github、gitee网站的第三方授权登录,
3.使用免费且数据库类型更加丰富的postgresql数据库替换掉现已收费的mysql数据库,在后端服务器通过ybatis-plus
mybatis-plus-jin +mybati-plus-ext+mbatis-plus-max与数据库进行沟通,其中mybatis-plus-jim用于在处理模型分类
分页查询时三表连接以及子查询操作,mybatis-plus-ext通过在DO实体类上以及实体类内各个属性上进行注释,可以轻松实现类似Hibernate那样关联查询、数据库表的定义、普通索引和联合索引创建等,mybats-plu-max内置了redissin客户端,实现了分布式锁,确保一条记录同一时间最多只有一个写操作。
4.使用caffeine+eis实现双层缓存,减轻访问数据库的压力,并使用了redis内置的消息队列,在缓存未命中时以广播形式同步其他服务器的caffine的缓存数据,解决在后端集

案例展示

  • 南方电网项目信息化全景概览移动端

    南方电网项目信息化全景概览移动端

    负责将南方电网投资计划-非规划项目信息化全景概览页面,从pc端迁移到移动端。使用vue2+less+js+rem+viewpoint移动端技术栈。

  • 南方电网-办公资产域首页重写

    南方电网-办公资产域首页重写

    原南方电网-办公资产域首页首页并非tab页切换格式,而是像微信-我的-服务 那样分上下栏滚动式,项目经理觉得以前的首页不美观于是指派我重构这个页面。 使用vue2+less+js+rem-viewpoint技术栈。实现tab页切换动画和关键字搜索并高亮显示的功能。

  • 南方电网-办公资产域首页重写

    南方电网-办公资产域首页重写

    原南方电网-办公资产域首页首页并非tab页切换格式,而是像微信-我的-服务 那样分上下栏滚动式,项目经理觉得以前的首页不美观于是指派我重构这个页面。 使用vue2+less+js+rem-viewpoint技术栈。实现tab页切换动画和关键字搜索并高亮显示的功能。

查看案例列表(含更多 0 个案例)

信用行为

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

发布任务

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

微信接收人才推送

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

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