Skip to content

Instantly share code, notes, and snippets.

@mapleincode
Last active September 30, 2019 18:57
Show Gist options
  • Save mapleincode/dd8fd98e7057014ad7e2 to your computer and use it in GitHub Desktop.
Save mapleincode/dd8fd98e7057014ad7e2 to your computer and use it in GitHub Desktop.
resume

简历

个人信息

  • 姓名: 许波
  • 性别:
  • 出生: 1992/03/02
  • 邮箱: llkj13579@126.com
  • 电话: 18815287479
  • 博客: https://blog.mpae.cc
  • 目前居住地: 杭州市余杭区天目山路 15 号宏丰公寓

应聘职位

  • Node.js 研发工程师

工作经历

  • 杭州大搜车汽车服务有限公司
    • Node 研发工程师
    • 2014.12 -- 至今

教育经历

  • 宁波工程学院
    • 计算机科学与技术专业
    • 2011.09 -- 2015.06

项目经历

  • 车牛 (cheniu) 后端 server

    • Node.js & Express.js
    • MySQL, Redis, Mongo, RocketMQ, RabbitMQ
    • 最早接触的 Node 项目,基于 Express.js 框架并对其进行一定的改进。主要提供车牛 APP 早期基本所有的 API。后期也对整个业务线起着很重要的作用。
    • 大部分开发都围绕了 APP 的功能的 API。除此之外,还在项目开发过爬虫服务,模拟登录操作,简单小游戏等功能。
    • 整个项目因为比较早期,技术核心并不复杂,但通过对项目的开发和维护,也从中得到了很多的锻炼和启发,对我而言,无论是语言技巧,还是服务架构,都起了重要的启蒙作用。
  • 帕秋莉网关服务 - 心跳检测服务

    • OpenResty, Lua & lua-resty-checkups
    • 基于 UPYUNlua-resty-checkups 进行定制功能性开发,整个项目采用 Lua 语言,并以 OpenResty 做为项目平台。功能是作为整个网关服务中,心跳检测的模块。
    • 项目功能并非复杂,但整个项目采用的 Lua 语言完全从零开始。但从接触到学习到编写项目,从中学到了很多的语言学习和使用技巧。
  • izayoi-coffee

    • Node.js & Akyuu.js
    • 作为功能性的服务,功能是作为出口数据的聚合。从项目的发展过程中,从完全手动编写 API 到可配置 API,把功能逐渐模块化,以便于功能性扩展和模块化支持。
    • 目前除了现有的功能之外,还设计了一套完全基于模块化的项目方案。通过模块化的支持,来实现非对称接口部署,即不同权重的 API 完全可以独立分隔,以免效能较差的请求影响对实时性高的请求。如果配合网关服务(目前未实现),还可以实现横向实例选择性扩展,API 负载均衡等功能。
    • 从在项目中学到的技巧之外,由于 Akyuu.js 框架本身也刚开始使用,所以在项目开发过程中,会遇到 BUG,或者功能点不够完善。这些问题也通过阅读框架源码,修改代码得到了解决。也间接学习了一个框架的相关知识点。
  • izayoi-hotel & izayoi-portal

    • Node.js & Egg.js & Antd & React.js & Dva.js & Muji.js
    • 对外合作方支持平台,只要作用于对外部提供信息查看、文档查看、BUG 调试等功能。前期 izayoi-hotel 项目主要提供文档服务和信息查看。后期业务调整,重新基于 izayoi-hotel 为后端开发了新的一套前端页面。hotel 后端采用 Egg.js 框架进行编写,hotel 前端则是基于 Dva.js 框架进行开发。后期的 izayoi-portal 使用了公司前端团队研发的 React 框架,Muji 进行开发。
    • 服务端功能相对比较简单,对我而言,最大的挑战是如何在后端开发的基础上,进行前端项目的编写。庆幸 React.js 的优秀理念,在代码编写上入门基本比较轻松,而对于前端的类似 CSS 等难点,也通过查阅 Google 、资料的方式进行解决。开发效率也从最开始一天一个页面,到一天完成若干个页面的转变。
  • izayoi-message

    • Node.js & Egg.js

    • MySQL & Redis

    • 基于 MySQL 为存储,Redis 为缓存的简单消息消费服务。用于对公司业务消息的跨域消费。业务方通过 http 或者 socket 连接服务,进行数据消费。从功能上,支持以下功能

      • 消息消费功能
      • 消息超时消费功能
      • 顺序消费功能

      通过 Redis 作为数据的缓存和部分数据的存储,使得接口消费有着不错的负载度。而 MySQL 部分设计为按月分表。所以即使历史数据一直保存,也并不会影响服务消息的消费。而通过对数据的多重标识,即使服务被强制关机或者消费过程中发生意外,都能保证数据不会丢失。

    • 偏功能性的一个服务,也是纯自己设计的一套技术方案。长期存储基于 MySQL,短期存储基于 Redis。即使 Redis 遭到破坏,也能保证原始数据不被消费。也支持一个队列的消息被两个业务方以不同的维度进行消费,支持多段消费。也可以选择单端顺序消费。从功能上来说,单机服务基本可以满足目前每小时万级别消息消费。当然对专业的 MQ 来说,这已经是性能很低下的表现,所以目前也极力通过优化逻辑的方式来提高消费的性能。

自我介绍

我出生于 92 年,平日看,就是个十足的二次元宅,喜欢吃喜欢宅喜欢二次元,当然也喜欢计算机和编程。

和大部分同学不一样,我接触电脑的时间比较晚,直到高一才拥有自己的电脑。然而高中是寄宿制,所以除了过年过节,也很少有机会接触电脑。但我从小就通过各类学习杂志或者计算机杂志进行学习,也对计算机产生了浓厚的星期。

大学如愿进入了计算专业,早期选了 .NET 作为专业,当时也学写过不少 .NET 的代码。后来接触了 Node.js ,对其间接的代码风格所吸引,加上脚本语言便捷的方式,我很快把 Node.js 作为我批量处理,简单脚本的语言。

作为一个快跨入 30 岁的老男人,我从事 Node.js 开发已经有差不多五年了。经历了人生的风风雨雨,也经历了 Node.js 的风风雨雨。从最早的 callback hell 到后来的 Promise 和最后现在用的最多 Async/Await。除了语法,前端框架也逐渐从 Express.js ,到 Koa.js,到现在的 Egg.js。除此之外,连编程语言,也正从 JavaScript 转变为 TypeScript。

除了对 Node.js 和前端的学习之外,业余时间也对其他东西有着浓厚的兴趣。例如 Linux 相关操作命令,文件服务器搭建等等。在公司同事的帮助下,编写整个项目组第一份 Dockerfile,开启了项目 docker 化的部署的进程。最近也慢慢开始学习 Python 语言作为自己的第二语言,来弥补 JavaScript 所不足的一些地方。

技能信息

  • 语言

    • JavaScript & TypeScript
    • Lua(主要是在 OpenResty 环境上进行开发)
    • React.js
    • Python (入门)
  • 数据库

    • MySQL
    • MongoDB
  • 缓存

    • Redis
    • Memcache
  • 其他技能点

    • Docker

个人特点

  • 性格开朗,待人友好,
  • 为人诚实谦虚,能吃苦耐劳,
  • 乐于接受新事物,学习能力 & 理解能力强。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment