lijun401338.github.io

**姓名**: 李俊 **出生**: 1990年1月 **籍贯**: 重庆市 **学历**: 重庆理工大学(本科) **工作经验**: 6年\(2014.7毕业) **联系电话**: 13146065900 **邮箱**: 8427003@qq.com ** 技术blog**:www.css3.io # 工作/教育经历 | 工作经历 | 教育经历/荣誉 | | :--- | :--- | | 比特星光(2018.7-至今) | 2013年中国大学生计算机设计大赛二等奖\(市级) | | 借贷宝(2016.10-2018.7\) | 2次校级丙等奖学金 | | 百度贴吧(2015.9-2016.9) | 加入重庆理工大学“鹰眼实验室” 2012年6月| | 去哪儿网(2014.7-2015.9) | 重庆理工大学2010年9月~2014年7月| # 技术/工作特长 **我擅长前端构建**。搭建过各种前端、服务端项目架子。在服务端渲染有一定学习,在技术选型,简单项目架构等有一定经验 **具有一定跨平台能力**。接触使用过java,实践过nodejs项目,接触过小型订单系统,能简单使用linux系统,实践过容器技术。喜好了解v8,node c++扩展等较底层技术 **我擅长基础平台搭建**。我对单点登录,持续集成系统,容器技术,前端apm系统,有所了解和实践。 # 主要项目经历 ## now(比特星光) ####1. 独立设计并实现基于react服务端渲染整体方案 **背景**:由于通常的SPA应用资源加载上存在index.html,main.js,对应页面分包资源,xhr 4个资源串行加载。加上手持设备网络环境,业务迭代快miss缓存率高,导致白屏时间久。需要一种有效方案降低白屏时间。 **技术栈**:webpack,服务端渲染,同构,babel插件,umd, react-loadable **难点**: **1.服务端**:主要在设计上需要考虑与服务端解耦。2. 前端:需要减少现有**业务侵入**,降低迁移成本。**3.构建**:上需要简化构建流程,开发流程。需要精确提取页面对应资源。 **过程**:**1.使用单页面架构**。单页面架构能使产物作为更单一的依赖与后端服务集成,还能兼容全局状态管理。通过中间件+构建产物灵活集成到nodejs现有后端服务框架中。 **2.在业务层**,前后端**使用相同http客户端**,保持一致数据请求方式。其它前后端差异逻辑在入口或路由层完成。避免对业务层侵入。 **3.简化差异化编译流程**。构建产物需要同时在前后端环境运行,通常需要差异化build。而差异化build的原因是,服务端异步模块装载和一些loader依赖全局环境api。装载我们可以提前载入解决,loader评估受影响的范围后逐个针对解决。增加babel插件,帮助精确提取页面对应资源。 **结果/收益**: 最终通过中间件与服务端解偶,做到**保留SPA原有开发模式**,较少的业务侵入。并可以实现服务端渲染与前端渲染**灵活降级**等特性。运用到1次h5项目中,**提升约50%**因缓存miss带来的白屏性能。 从长远看,解决了信息流类应用强依赖seo,从**传统模板编程转为现代化框架编程**,具有里程碑意义。 ###2. 独立设计并实现基于角色权限单点登录平台 **背景**:公司内部有很多系统,它们都依赖通用的登录,权限管理等功能。因此可以抽象为一个独立的系统,避免重复开发相同业务。 **技术栈**:nodejs、mysql、react、antd,jwt **难点**:登录验证需要考虑分布式验证,考虑外部与内部账户区别。能够接入多个业务系统。 **过程**:**1.接入钉钉扫码登录,实现账号密码登录**。以便同时满足内部用户和外部用户(外包人员)单点登录需求。 ** 2.引入jwt** 解决分布式验证。**3.设计为开放平台**,为每个应用分配appid和密钥,提供独立的资源角色管理模块,支持http、node_sdk接口方式快速获取平台资源角色信息,员工信息,登录验证等。 **结果/收益**: 支撑了4个运营后台项目,1个测试发布平台,1个盯盯授权登录模块lib_sdk。 ###3. 独立设计并实现基于docker swarm 项目测试及代码发布平台 **背景**:为了支撑项目快速持续集成,以及节约硬件服务器资源成本,同时为公司项目整体容器化探索。为了屏蔽开发人员对容器技术的学习成本,设计并实现了概念更简单的UI交互系统。 **技术栈**:docker、docker swarm、k8s、nodejs、mysql **难点**:需要考虑权限以及安全问题。需要简化部署流程。需要屏蔽容器概念。 **过程**:**1.设计并实现了项目模板**,增加clone特性,以便于新项目的复用。**2.资源权限管理**,资源可以自由分配给相关人员,集成了在线日志功能且严格受控于权限策略。**3.提供额外的代码分发可选策略。**避免构建镜像文件,以简化构建流程。**4.将容器实例对应到项目概念**,同时提供更简单的项目UI编辑交互设计,仅暴露项目基本核心属性。屏蔽容器概念,减少用户对容器的学习成本。**5.简化底层api交互逻辑。**使系统更简单稳定。 **结果/收益**: 前后支撑了5+个运营后台项目,4+小程序项目,5+端内h5项目。对比验证了k8s与swarm编排系统可行性。 ## 2018-06(借贷宝) ####**h5诉讼系统** 背景:诉讼系统是一个用户侧项目,用户可以在系统上发布诉讼请求,律师可接单。我这次的职责带领4个人**作为项目leader**推进项目。我面临的**挑战是**:1.如何分配任务。2.确保任务按时完成。 第一个问题我从两方面入手。1充分了解业务细节,评估业务重难点。**拆解成多个模块。并划分模块边界**。2.对人员的能力和近期稳定性以及其它工作安排充分了解。有一个心里排名。所以我把难点部分安排了给能力较强的人且相对稳定的人。自己也领了小部分业务模块但不是核心业务。主要考虑到自己不能光口头上与大家努力,如果过程中出现人员不稳定(比如请假)自己可以顶上。作为**机动调配**。 第二个问题,当模块分配下去后收集来自组员的排期时间。与大家约定每2天(整个周期7天)大家交换一下进度。并对外保留一天buffer时间。 最后在大家的努力下,顺利完成任务。**随后启动代码review**,帮助大家提升代码能力。 除此外,我还负责其它系统比如:客服系统,在线客服重构等工作。对**客服工单相关业务系统有一定了解**。 ## 2016-09(百度贴吧) ####**pc端bigpipe迁移** **背景**是贴吧内部代码分商业化吧(赚钱的)和非商业化吧(不赚钱的)。一些新的技术实现会先在非商业吧实践以降低风险。bigpipe就是已经在非商业化吧实现的性能优化技术。现在的目的是把商业化吧也引入这种技术。 我的**职责**是迁移部分页面区域范围内组件。主要挑战是需要从业务上找出页面的某个区域涉及到哪些组件,并且确认这些组件有没废弃(废弃的不用迁移)。主要的解决办法是通过代码依赖找出所有的组件。组件有没废弃需要和业务leader或产品商量。总之可以多迁移,不可漏迁。 主要**收获是**:新技术推行我们**首要考虑屏蔽风险**,找一些影响不大模块试行。 大规模工程项目,我们需要**提前预估工作量,投入人力计算**。可以**阶段性review**调度人力以保证整体进度。注意迁移过程中同步更新需要有效管理。 另外深入理解了bigpipe具体实现。 ####**hybrid高级抽奖帖** **背景**是在手机端魅族吧里定制一种抽奖贴子。 我的**职责**是用h5实现一个老虎机,让端嵌入到他们的native应用中。主要的挑战是: **手机端动画性能**,**hybrid如何调试**,与**native部门的合作**上。第一个问题做了一些调研分析,和demo效果对比。后两个问题都没有做好。后来总结如下: 1.因为没有调试机制导致联调周期变长(**一定要先排出项目难点,确保周期准确性**)。 2.跨部门合作时需要**先了解对方的开发流程**。比如native部门是先进行ui走查,再提测。我们是先提测再ui走查。导致ui走查bug算在业务bug中,bug率高。 3.手机动画性能上,由于手机本身cpu性能不高,即使是canvas也没有css3动画表现得流畅。所以动画**能用css3时尽量用css3而非js**。 ## 2015-09(去哪儿网) ####**电影票后台系统** 是一个全新的系统,包括活动,排片管理,影院管理,报价等重要模块。技术栈是:**vue**,**bootstrap**。涉及到一些**技术选型**跟前端同学交流。另外主动了解后端系统关键实现,跟后端同学请教,**深入到数据库结构设计**。了解电影票整体业务(包括有意思的制片人,导演,发行商,影院,院线等收益分成)。以电影业务为主题作**团队内部分享1次**。 在去哪儿还获得了其它荣誉:**荣获去哪儿网首届Hackathon 一等奖。**我们参赛需要解决的主题是“**如何实现全站链路追踪**",必须在2天内完成需求分析到系统实现。我充当的角色是**提供一些前端埋点思路,以及最后的链路图表展示**。最后我们4个小伙伴获得了一等奖,每人1500 jd卡奖励。是一段很记忆深刻的经历。 ## 2014-07(起点)