白季飞龙的个人主页

个人简历

个人简介

求职意向

Java/Kotlin开发。可接受全栈开发。薪资税后20K+。

如果薪资到位,可接受任何语言,可接受架构师岗

技能评价

对MySQL分库分表的见解: https://baijifeilong.github.io/2018/11/27/mysql-sharding/

自我描述

StackOverflow主页

Stackoverflow

个人作品

1. 安提自由聊(Android非ROOT加密聊天外挂)

利用Android提供的辅助功能,实现微信、短信、QQ等消息的密文传输,方便快捷,确保除通讯双方外,没有第三方可以获取明文信息,保障用户隐私。

链接:https://baijifeilong.github.io/2017/09/23/antea-free-chat/

Antea

2. Yber(可以灵活切换参数的HTTP接口测试工具)

测试Web接口时,有时需要切换请求方法,或者各个参数的格式。如果使用命令行的话,不太方便。因此,我开发了 Yber Interface Tester 这个接口测试工具,可以灵活调整参数。返回的数据格式化后高亮显示。

App基于TornadoFX(基于Kotlin的JavaFX的MVC开发框架)开发,通过WebView与JavaScript来高亮请求结果。

链接:https://baijifeilong.github.io/2017/09/24/yber/

Yber

3. RawsteelMusicPlayer(跨平台的桌面端单机音乐播放器)

由于Linux平台上没有我满意的音乐播放器,因此自行开发了一个。

播放器使用Qt5开发,支持LRC歌词同步滚动显示。

使用HashMap存储播放历史,在随机播放模式下,上一首和下一首都优先从播放历史中找。

播放列表和其他配置通过JSON格式存储在配置文件中。

数千个音乐文件可以在几秒内加入播放列表。

实现了点击歌词跳到相应位置播放。

链接:https://baijifeilong.github.io/2019/02/25/rawsteel/

RawsteelMusicPlayer

4. JustPingIt(网络延迟检测工具)

通过向固定的服务器不断发送Ping请求,将响应时间绘制成折线图,检测网络延迟

链接:https://baijifeilong.github.io/2019/02/25/justpingit/

JustPingIt

5. IceSpring(冰泉音乐播放器)

使用Electron实现的单机音乐播放器,支持歌词同步,支持灵活布局

链接: https://baijifeilong.github.io/2019/02/22/ice-spring/

6. 麦多文档转换器

跨平台常用文档转换工具,支持多种常见文档格式

链接: https://baijifeilong.github.io/2019/02/22/my-doctor/

7. 谷国搜索

中英文谷歌分栏搜索,用于同时查看权威的英文搜索结果与简明的中文搜索结果

链接(2019年2月,谷歌封闭相关功能,工具已失效): http://baijifeilong.github.io/nav.html

8. LandLive 安卓电视直播

安卓电视直播app,支持中央电视台与各大省级卫视

链接: https://github.com/baijifeilong/LandLive

9. MySQL透视器

大型MySQL数据库透视工具。用于快速上手复杂项目

链接: https://baijifeilong.github.io/2019/02/22/mysql-inspector/

工作经历

1. 北京点点未来教育科技有限公司

主要工作内容:

2. 北京璞谷塘网络科技有限公司

2.1 璞谷塘生鲜商城

在璞谷塘商城的后台接口项目中,我主要负责系统的扩展维护和新功能的开发。商城 接口采用Spring Cloud微服务架构,用Zuul做负载均衡,Apollo做配置中心。

针对当前项目Bug定位困难的问题,我添加了自定义的Servlet过滤器,在指定的日志 级别下详细记录请求与响应。自定义了Feign的日志处理器,将Feign的请求与响应也 详细记录在日志中,方便排查错误。

针对业务逻辑繁琐,过度处理异常的问题,我去掉永真或永假的无用判断,可空参数 使用@Nullable注解,删除不可能跳入的分支,对于非法状态直接抛出异常,减少了 代码的嵌套,使代码结构更简洁,逻辑更清晰,Bug更容易追踪。

针对数据库缺乏约束导致畸形数据储存在数据库的问题,我适当添加了部分数据库约 束,提前暴露部分逻辑错误。

针对营销活动改版的需求,我仔细梳理了营销活动需求,将常见的营销活动进行抽象 和归类,设计出相对灵活而又便于检索的数据库结构,规范化算价逻辑。在算价算法中, 充分利用Lambda表达式的优势,写出简短清晰、不易出错而又便于维护的代码。

3 北京音悦荚网络科技有限公司

3.1 《爱玩音乐》互动音乐教学系统

《爱玩音乐》是一款可以通过乐音识别进行互动音乐教学的手机App。教师可以通过此系统制作与发布课程,学生可以购买与学习课程。

我主要负责后台接口与管理系统的开发、维护。后台接口开发采用python的tornado开发,数据存储采用mongo,管理系统采用React.js。

工作重点是课程结构与管理系统的设计。由于是互动课程,需要与课件、和弦、示范弹奏等多种素材进行关联交互。数据库采用mongo,以方便结构拓展。管理系统采用React开发,便于前后台解耦与组件复用。

4 北京国翼恒达导航科技有限公司

4.1 北斗物联网平台

北斗物联网平台是整合了北斗技术的物联网平台,基本单位是传感器。主要用于物联网应用的开发、接入、服务与统计分析。

项目用到的功能与技术:

  1. 服务端使用Scala与Java语言,搭配Play Framework,利用Scala的优势提高并行处理能力
  2. 整合并汉化了Kaa开源物联网平台,用于底层数据服务和后期分布式扩展
  3. Kaa平台搭建在Docker之上,方便部署与拓展
  4. 前端使用Highcharts显示与分析数据
  5. 使用Websocket技术实时更新前台数据和消息推送

4.2 油田北斗卫星巡检系统

本项目借助北斗卫星通讯在野外作业的优势,辅助油田勘探开发。我主要负责Web端与Android端的后期开发与维护,修复旧bug,添加新功能。

项目使用的功能与技术:

  1. 管理系统用Java开发,主要用到了Struts、Spring和MyBatis开发框架,服务器使用Tomcat。
  2. 地图平台使用现成php框架,整合国内地图并进行纠偏。
  3. Android端用Java开发,整合OpenStreetMap,集成地形图、离线卫星图等多种地图。
  4. 服务端和Android端都使用串口技术与北斗芯片通讯
  5. 使用GIS地理信息技术,辅助石油开采与管控

5 淄博来马网络科技有限公司

5.1 虚拟币交易系统

公司原有的交易系统使用ThinkPHP开发,由于代码质量问题,出现多次充值交易错误。因此我使用Laravel重构了整个系统,包括重新设计更合理的数据库、迁移数据库,合并交易数据、重新设计交易逻辑,同时将网站修改为响应式布局,适应移动端使用。整合网站前后台系统,减少不必要的耦合,加快部署速度。

项目用到的功能与技术:

  1. Web框架从ThinkPHP重构到Laravel
  2. 数据库使用MySQL
  3. 服务器从Apache httpd转移到Nginx
  4. 网站前端主要使用Bootstrap和jQuery
  5. K线图使用Highstocks绘制,并实时更新行情
  6. 统计图使用Highcharts绘制
  7. 集成汇潮、快银、支付宝的支付接口
  8. 集成短信验证接口

联系方式

其他

希望也能鉴赏到贵公司的开源项目,互相学习提高。

如果让我出面试题

  1. 使用一行代码读取一个本地文件的内容到一个字符串,不得使用第三方库
  2. 碰到一个不想try也不想throws的受检异常,怎么处理
  3. 使用一行代码获取一个Stream的最后一个元素
  4. JOOQ与QueryDSL各有什么优缺点
  5. 在虚拟终端下,如何快速使用文件浏览器打开当前目录,Windows、Linux与macOS各有什么方案
  6. LocalDateTime最大的坑在哪里
  7. 如何优雅地安装与切换多个JDK版本
  8. 翻译HTML、CSS、ISO、ANSI、TCP、UDP、IP、HTTP
  9. 对于SpringBoot项目配置文件中自定义的配置,如何让IntelliJ IDEA提供代码提示
  10. 如何随机生成一个一周内的时间点(Date)
  11. 如何优雅地进行数据库迁移与数据库播种
  12. 对于同一个用户对象,不同的接口需要对用户自己、用户的好友、系统游客呈现不同的字段,如何优雅地设计接口
  13. 给定一个URL,如何用正则表达式提取其域名
  14. 如何优雅地设计API接口的成功响应格式、失败响应格式和分页格式
  15. MySQL枚举类型有哪些优点与缺点,枚举类型在MySQL中怎么存储最合理
  16. 怎么看待RESTful的接口设计
  17. 接口设计中,分页的索引应该从0开始还是从1开始
  18. 用户的密码在数据库中如何存储最合理
  19. 在MySQL中,如何命名用户表中的这些字段: 用户名、密码、昵称、邮箱、手机号、真实姓名、禁止登录状态、实名认证状态、上次登录IP、上次登录时间、注册时间、注册IP
  20. 编码时如何尽可能规避空指针异常
  21. 如何看待Java中的断言
  22. 不使用XML,将Logback的默认日志级别修改为debug
  23. 如何让命令行程序的网络连接走指定的代理服务器
  24. 使用一行代码,阻塞当前线程
  25. 如何在控制台中打印彩色字符与彩色背景

文章首发: https://baijifeilong.github.io


漫漫路,莫论逍遥;潜心修,只为悟道