About
联系方式
- 手机号:15797293570
- Email:nick_zzhao@outlook.com
- 微信号:_1uciuszzz
个人信息
- 赵力行/男/2000
- 本科/武汉工程大学邮电与信息工程学院/软件工程
- 期望薪资:¥ 13000/月以上(现¥ 9800/月)
- 工作年限:2 年
- 技术博客:https://1uciuszzz.github.io/
- Github:https://github.com/1uciuszzz/
- 希望远程办公
工作经历
武汉地大坤迪科技有限公司 ( 2022 年 8 月 ~ 至今 )
地质大数据管理平台项目
我在此项目中负责前端项目搭建、通用组件开发、工具链封装、三维可视化渲染功能研发、前端性能优化、技术选型和前端代码规范制定等工作。这个项目中,有两处对于我当时来说比较有挑战性的功能,一是不限制文件大小的文件上传功能,二是三维可视化渲染功能。对于第一个功能,我采用了分片上传的方式,将文件分片后上传,后端接收到分片后的文件后,将分片文件合并成完整文件。对于第二个功能,我采用了 three.js 库,将客户端平台产出的二进制模型文件解析为 three.js 可识别的数据格式,然后渲染出三维可视化效果,具体功能包括相机位置自适应、场景快照、图例管理、包围盒预览和模型剖面切割等。
地质资料馆项目
此项目中,我主要负责前端项目搭建、项目整体结构设计和首页的动画效果开发。
砂岩测井岩性识别项目
该项目为研究型项目,持续迭代接近两年。我在一年的时候接手了部分工作,包括:使用 Python 框架 FastAPI 开发 REST API、前端客户端开发集成到地质大数据管理平台、使用 Pyside6 开发桌面端版本。项目中的功能包括:使用随机森林分类器训练 xlsx 文件中的数据,识别未知测井数据的岩性(正确率仅达到 67%左右),前端客户端中使用虚拟列表技术渲染万条数据。
数字矿山大数据平台项目
该项目期限三年,我主要负责的工作是:参加前期矿山实地需求调研和座谈会、撰写三维可视化管控系统的详细设计文档和 Web 前端开发工作。平台功能围绕数字矿山建设形成的各类数据,通过对矿山相关数据的标准对数据进行整理,以此建立矿山大数据中心。通过数据采集模块功能将各类数据进行集成并统一管理,并围绕各类数据制定数据管控的功能,实现对矿山数据的全生命周期进行管理。最后开发数据接入、转换、查询、分析与备份等功能,为三维数字采矿、矿产资源管理、企业运营计划等应用场景提供数据支撑。项目中采用主流的 React.js 视图库,使用 Material UI 组件库,使用 Vite 构建工具,使用 TypeScript 语言,使用 Git 进行版本管理,使用 Caddy Server 进行部署。
某煤矿公司的地质保障系统项目
该项目周期为 6 个月,在此项目中,我担任前端开发的所有工作,于我而言,这是一个很好的锻炼机会,我在这个项目中学到了很多东西,比如:转换 tif 文件为 tms,使用 cesium.js 渲染矿业公司的实景模型,使用 three.js 渲染地下场景中的地层、断层、巷道和钻孔模型等。钻孔模型的渲染中使用了微分法计算钻孔的采样点;地层模型支持纹理贴图、网格简化和剖面分析等功能。
模型查看器
前几个版本为基于 tauri 的桌面端应用,后续添加 HTTP 交互后转为 Web 项目。使用@react-three/fiber、@react-three/drei 等实现模型渲染;状态管理使用了 jotai;仍然是 MUI 作为 UI 库;实现了模型顶底面采样投影、模型包围网格、光线投射对模型各部分的高度采集、渐变色和映射两种图例、指定若干图层高亮显示等功能。与同事合作,完成对其设计的体素化模型格式进行解析、属性筛选渲染、抽壳等功能的实现。
三维可视化管控系统项目
该项目作为数字矿山的子项目,我负责前端开发的所有工作;首次在三维场景中引入物理引擎(@react-three/rapier),并加入了人物模型骨骼动画和键盘控制人物的移动和跳跃(ecctrl),支持人物在地图中自由探索。另外,解决了动态计算模型 UV 贴图属性,完成了卫星地图材质的模型显示。
ChinaVis 可视化大赛项目
24 年 6 月,与 CUG 高校队伍一起参加了今年的 ChinaVis 可视化大赛,赛道为教育数据挖掘、分析、可视化;我负责前端的可视化部分,主要使用 Echarts 绘制图表;7 月初得知获该赛道提名奖。
模型文件 IO 库
为了打通公司桌面端产品和 Web 端的模型显示,与研发部同事合作开发了三种环境下的解析库:浏览器运行时、Nodejs 运行时和 Rust 语言下的实现。文件类型有四种:三种为二进制数据、一种为明文数据。发布在自己部署的 Verdaccio 私有 npm 存储库中,仅局域网可访问。该库已投入多个项目使用。
个人项目
模型可视化剪切应用
基于 three-mesh-bvh 库,实现了模型的密封性布尔运算。
打牌记账移动端适配 Web App
开发动机是 24 年初,朋友搬回来一台二手麻将机,微信上的打牌记账小程序广告太多,响应不及时等原因,遂开发了此应用;基于 React、MUI、@tanstack/react-query、Nest.js、Prisma、PostgreSQL 等;Docker Compose 部署;已经投入使用半年有余。
记账移动端适配 Web App
女朋友喜欢督促我记账,问我每个月的钱都花在哪了;基于 React、MUI、@tanstack/react-query、Nest.js、Prisma、PostgreSQL 等;Docker Compose 部署;Minio 存储大文件;已经使用 3 个月,感受不错。
食堂点菜安卓 App
该项目来源于某地区中建三局,基于 Ionic、Ionic capacitor 等框架,耗时 5 天完成;基本功能有菜品管理、点菜、订单记录、拍照上传菜品图等,所有数据皆存储在手机文件系统中。
Minecraft 1.19 自定义武器合成插件
和朋友一起玩 Minecraft Java 版,苦于武器少,游戏节奏慢等问题,基于 Spigot,开发了此插件,有许多跟作弊一样的合成配方。
命令行工具
包括功能阉割版的 grep 工具、中英文标点符号转换工具等。第一个是学习 Rust 的时候写的;第二个是自己写博客,中英文切换很烦,索性随便写,写完把博文文件夹路径扔进去,全部转为英文标点。
其他
包括人脸识别,飞机大战小游戏等
发表论文
- 基于多源数据集成与 WebGIS 的三维矿山空间数据管理系统关键技术及应用, 2023.07.14 收稿, DOI:10.11907/rjdk.231777
技术文章
技能清单
以下均为我熟练使用的技能
- Web 开发:Node.js/Python/Rust/Javascript/Typescript
- Web 框架:Nest.js/FastAPI/Express.js/Next.js
- 前端库:Material UI/React.js/Vue.js/HTML5/Three.js/Cesium.js 等等
- 前端工具:Vite/Tailwind CSS
- 数据库相关:PostgreSQL/MySQL/SQLite/MongoDB
- 版本管理、文档和自动化部署工具:Git/Open API/Docker/Docker Compose