我认任职XX公司XX部门,该部门后台系统主要由API模块,APP后台模块,算法模块以及数据模块组成。
后台的所有任务通过分布式任务系统进行任务管理。
整套系统部署在公司的私有服务器上,主要基于公司的Mysql集群和Redis集群做数据存储,使用MQ集群做消息队列,
基于ZK集群搭建高可用系统,前期我们服务之前的调用方式都是基于HTTP的方式,服务耦合性较高,后期我们基于Motan框架做了整个系统的微服务化。
1、参与Vision项目开发,该项目基于reactjs,es6,scss,nodejs等技术;
2、参与SMS项目的开发,负责编写工具栏组件、弹窗组件和下拉菜单组件,基于Angularjs框架,requirejs模块加载器,Velocity作为服务端模版引擎,BaiduTemplate作为客户端模版引擎;
3、参与迁移统计项目的开发,主要基于Echarts,使用ES6进行开发。
SMS(主机迁移服务)
(
中软国际科技服务有限公司
)
2017.10-2018.01
-项目介绍:
主机迁移服务(Server Migration Service)是一种P2V/V2V迁移服务,可以帮您把X86物理服务器,或者私有云、公有云平台上的虚拟机迁移到华为云弹性云服务器(ECS)上,从而帮助您轻松地把服务器上的应用和数据迁移到华为云。
-负责模块:登录,任务管理,云平台管理,创建任务,任务详情,磁盘分区调整
-开发环境: Windows 7, WebStorm, XAMPP
开发环境: 操作系统 Windows 7, 编辑器 WebStorm, 服务器 Apache
-技术栈:angular1.2.7, ui-router, requirejs,
-工作流程:
1.前期充分理解产品需求,辅助界面的设计及接口文档的编写
2.设计图出来后,搭好前端开发环境,搭好项目架子,分好模块,
3.div+css定位实现页面布局
4.写好静态页面和样式
5.接口文档出来后,开始写业务逻辑js,页面交互
-工作内容:
1.充分理解产品需求,辅助界面的设计及接口文档的编写
1.angular指令,双向数据绑定,服务,依赖注入,自定义,自定义组件,自定义服务,
2.单页面应用,页面路由,路由的使用,路由的原理
使用ui-router配置页面路由, 编写单页面应用
3.获取数据ajax,fetch api
4.安全
4.1 鉴权:确保指定的用户只能访问指定的数据
4.2 采用https:在传输的过程中保证数据是加密的
4.3 cookie
5.组件化:对于一些需要重用的元素,抽取为一个通用的组件,参数变化和状态变化
6.交互
用户交互:事件,用户交互只是改变状态的值,即对状态进行操作
组件交互:状态管理
值存在内存里,适当的时机调出这些值
service管理应用的状态,getter,setter来存储状态的值
使用service很难跟踪状态的变化情况
或全局变量(不推荐)
数据存储:本地,内存
前端开发233333333333333333333333
编辑
删除
Vision(华为云一站式管理服务平台)
(
中软国际科技服务有限公司
)
2017.08-2018.01
华为云业务的一站式全生命周期管理服务平台,提供“需求->开发->测试->发布->运维->运营”的端到端协同服务。
前端开发
项目链接: https://wa.vision.huawei.com
对编程有兴趣,有热忱,喜欢挑战高难度任务,不满足于复制粘贴
注重代码的复用性,维护性,易读性,有良好的编程规范
工作上认真负责,有抗压力,注重效率与质量,追求最优解
生活中积极乐观,善解人意,容易相处,不传递负能量
有上进心,主动学习新技术,努力完善自己,一点点进步
使用angularjs处理业务逻辑,状态管理,模块化开发
编写ui组件,实现复用性
angular 双向数据绑定,依赖注入,
自我评价:
理性, 逻辑思维, 注重代码的规范与整洁, 热爱工作, 热爱生活
熟悉MV*开发,深谙自动化,模块化开发之道
自我描述:
个人虽然不是处女座,却有一点处女座的毛病,非常注重代码的格式与规范,命名规范,无法接受乱七八糟的代码
就像生活中,会尽量保持生活环境的整洁,
作为一名程序员,非常注重代码的整洁, 维护, 优化
个人是一个不太喜欢给人带来麻烦的人, 所以写代码的时候也会换位思考, 尽量不留坑
对自己高要求...
本人热爱前端开发这份工作, 不仅是因为性格比较契合, 更是喜欢遇到问题, 解决问题所带来的成就感.还有工作环境的单纯
本人不怕遇到问题, 因为我喜欢迎难而上.
座右铭: 乘风破浪会有时,直挂云帆济沧海 时时激励自己
new:
基本信息+简单几个字的个人特色+围绕个人特色展开30秒讲述+成果。
写自我评价是自我总结和反思的过程,你的的确确需要总结一下,比如某HR只写了三点“新思路、写作能力、统计知识”,让别人看到时,耳目一新。
应该这样写:"创新思维,在绩效管理中采用统计学知识,进行人才管理梳理,搭建起可跨部门比较的历史绩效数据库" 。
你看,这样有总结,有实例举证,就很容易让人信服。还会勾起HR的思考:他/她是怎么搞出来的,约来面试聊聊。
SMS项目:
我在此项目负责了哪些工作,
分别在哪些地方做得出色/和别人不一样/成长快,
这个项目中,我最困难的问题是什么,
我采取了什么措施,
最后结果如何。
这个项目中,我最自豪的技术细节是什么,为什么,
实施前和实施后的数据对比如何,同事和领导对此的反应如何。
SMS项目:
2018年3月至10月,我参与了SMS项目的开发, 我在此项目负责界面开发工作,主要使用的是Angularjs框架(SMS是华为云上的一个服务,为了保持风格统一,规定使用angular), 结合requirejs技术实现模块化开发,
工作内容主要包括: 静态页面编写(html+css),数据获取(ajax), 业务逻辑编写(javascript), 部分ui组件编写(angularjs), 浏览器兼容性处理(ie9以上), 前端性能优化, 前后端联调及bug修改.
在开发过程中, 我遇到很多问题, 以及一些难点: 比如磁盘分区调整,数据请求异步(), 涉及到很多联动, 还有一些奇奇怪怪的显示问题,
但是我通过查看报错信息,断点调试,查看网络请求,抓包分析(fiddler) 等方式定位问题,分析问题,充分发挥主观能动性解决问题, 最后通过谷歌,stackoverflow,参考技术博客,查阅书籍,请教同事等方式,
充分发挥主观能动性, 调动一切主客观条件, 找到解决方法, 最后按时完成了界面开发, 保证了项目顺利上线.
总结: 通过这个项目,我熟悉了angularjs的用法,更深刻的理解JavaScript, 包括JavaScript异步机制, 浏览器运行原理, JavaScript底层原理等, 了解http请求的过程,
为学习其他框架打下了基础.
vision项目:
2017年7月至12月, 我参与了vision项目的开发, 主要负责界面开发工作, 由于这个项目是公司内部项目, 没有规定技术, 所以我和同事结合项目和我们自身情况,选择了比较热门的react,redux,es6,webpack等技术,
工作内容主要包括: 开发环境搭建
(软件安装,编辑器安装,IDE配置,配置npm的全局路径, nodejs安装,git安装,webpack安装以及各种loader,plugin安装, webpack配置,babel配置,gitignore, 热加载,代理,mock server搭建,http静态服务器),
辅助界面设计及接口文档的编写, 界面开发(编写react组件,redux状态管理,),es6模块化, 路由分块,解决首屏加载慢的问题,,,,,,,服务端渲染在一定程度上能够减少首页白屏的时间,同时对于SEO也具有很重要的作用
错误调试,改bug,
问题: 在此项目中,我们比较完整的使用目前比较流行的前端工程化开发, 开发过程中, 遇到各种配置问题, 各种坑, 最后经过努力, 都解决了.
总结: 通过这个项目, 我更加深刻的理解了react全家桶的用法, 并且通过与此前angular技术的对比,对状态管理, 设计模式,继承,闭包,原型等有了更深入的了解...对异步编程有了更深的理解,深刻体会函数式编程思想
js 缺乏类型系统,导致我们无法通过工具来在开发的过程中检测到那些可能会发生的错误,也无法通过具体的类型定义来约束别人如何调用自己写的代码库。数据驱动视图的开发方式
用了企业中常用的一些性能优化,比如使用React官方提供的库 **react-addons-pure-render-mixin** ,
打包、构建、编程工具、debug等等前端环境,以及前后端分离、Nodejs中间层使用伸展面。
node工具链(打包构建), 中间层, 服务端开发
目前是所有的web页面都是Node作为中间层,替换了php的渲染,中间自然有很多的困难要克服,但整体上来说开发的效率还是大大提升,
不需要在配置php的环境,也不用在关心各种环境的依赖,整体上自己的一个独立的服务,使用接口的形式和服务端通信。
那么三板斧为何会用到,主要是目前国内最常见的mobile的web页面,基本在微信里面流传,然后这些页面还需要一定的数据交互,而且这种页面的特点就是短平快,不需要那么严谨,
这种页面特别适合前端自己一撸到底,前后端通吃,接上 MongoDB当做数据库,
基本两三天之内就能开发一个活动页面出来,不需要对其他服务有任何依赖,包括微信授权都可以自己搞定,工作量其实比对接其他语言服务大不了多少,某些方面,我个人认为还减少了很多的沟通成本。
Webpack dev server 是一个轻量的node.js express服务器,实现了 webpack 编译代码实时输出更新。webpack的HMR功能集成
分别在哪些地方做得出色/和别人不一样/成长快,
这个项目中,我最困难的问题是什么,
我采取了什么措施,
最后结果如何。
这个项目中,我最自豪的技术细节是什么,为什么,
实施前和实施后的数据对比如何,同事和领导对此的反应如何。
博客园讲师管理系统:
2016年3月至12月, 我参与了博客园讲师管理系统的开发, 主要负责界面开发工作,工作内容主要包括:
总结: 通过这个项目,我首次大量使用JavaScript开发, 熟悉了jQuery库, 以及一系列jQuery插件,包括富文本编辑器,图片上传等等插件,熟悉了js模板引擎,js模块化开发,
了解了部分php的使用,更加熟悉前后端分离开发模式,
每一角落网上商城:
2015年9月至2016年2月, 我参与了每一角落项目网上商城项目的开发, 主要负责前端开发工作, 这是我正式参与的首个项目,主要使用了HTML,css等技术,
工作内容包括: 这是我正式参与的首个项目, 主要负责静态页面的开发, 页面交互动态效果, 比如: 轮播图,导航栏菜单等等, 响应式布局
总结: 通过这个项目, 我熟悉了HTML,css的用法, JavaScript dom操作,
针对校园APP的后台管理系统,包括人员架构,信息统计,权限设置,H5生产机,数据交换平台,各个模块的数据管理,反馈设置等等,为高校提供基于互联网运营的移动校园整体解决方案。
一站式、全生命周期的校园官方移动服务平台,涵盖PC、安卓、IOS、微信平台,上线学校包括中央财经大学,北京交通大学,中国戏曲学院,辽宁大学,西南财经大学等等,下载量数十万,深受学生老师喜爱。
加载及渲染速度
CodeMirror 这个轮子(我在它上面封装了七八个模块),然而这个轮子的文档写得并不好,很多时候我们会遇到
CodeMirror 这个轮子(我在它上面封装了七八个模块),然而这个轮子的文档写得并不好,很多时候我们会遇到
可以啊,这就是一个问题,但是你的描述思路要更清晰一些。比如遇到问题-》之前不知道-》查询很多资料(用啥?是否看英文资料?是否溯本追源去查找文档?)-》学习了解了(理解了物理像素和 CSS 像素的区别)-》得到了 XX 的解决方案-》是否沉淀下来(是否写成了博客?或者把实现的代码做了抽象并贡献出来?)如果这个过程描述下来,面试官会比较满意。
意义就是产品上线了啊. 写代码的意义从来都是满足实际需求而不是为了解决编程难题啊. 难道开公司招码农的意义是创造并解决编程难题? 你这样反问面试官就好了啊.
看过哪些书?
为什么要问http/浏览器呢?前端开发离不开浏览器;和后台通信离不开HTTP。
如果一个前端技术人员,连200/300/400/500系列状态码都搞不清楚,能算是一个合格的前端工程师吗?
JSONP实现方式,如何解决跨域,HTTP常用的请求方式有哪些,浏览器如何渲染页面
这些问题,都应该是前端人考虑和必须重视的。如果回答的好,自然非常加分。
当然,如果有框架经验,比如react, angular或者vue之类,自然也加分。
只是,一旦面试同学说,很精通某个框架,那么,我会问该框架某些特性的原理,注意,是原理,不是如何使用。
比如,angular1脏检查机制,vue生命周期等等。考察一个人对框架的掌握程度,不是做过多少项目,而是,你对它理解的深度!
工作描述:
2017年7月至12月,我参与了Vision项目的开发,主要负责界面开发工作,由于这个项目是公司内部项目,没有规定技术,所以我和同事结合项目和我们自身情况,选择了比较热门的React,Redux,ES6,Webpack等技术。
工作内容主要包括: 开发环境搭建(软件安装,编辑器安装,IDE配置,配置npm的全局路径, nodejs安装,git安装,webpack安装以及各种loader,plugin安装, webpack配置,babel配置,gitignore, 热加载,代理,mock server搭建,http静态服务器),
辅助界面设计及接口文档的编写, 界面开发(编写react组件,redux状态管理,),es6模块化, 路由分块,解决首屏加载慢的问题,,,,,,,服务端渲染在一定程度上能够减少首页白屏的时间,同时对于SEO也具有很重要的作用
错误调试,改bug,
问题: 在此项目中,我们比较完整的使用目前比较流行的前端工程化开发, 开发过程中, 遇到各种配置问题, 各种坑, 最后经过努力, 都解决了.
总结: 通过这个项目, 我更加深刻的理解了react全家桶的用法, 并且通过与此前angular技术的对比,对状态管理, 设计模式,继承,闭包,原型等有了更深入的了解...对异步编程有了更深的理解,
js 缺乏类型系统,导致我们无法通过工具来在开发的过程中检测到那些可能会发生的错误,也无法通过具体的类型定义来约束别人如何调用自己写的代码库。
打包、构建、编程工具、debug等等前端环境,以及前后端分离、Nodejs中间层使用伸展面。
node工具链(打包构建), 中间层, 服务端开发
目前是所有的web页面都是Node作为中间层,替换了php的渲染,中间自然有很多的困难要克服,但整体上来说开发的效率还是大大提升,
不需要在配置php的环境,也不用在关心各种环境的依赖,整体上自己的一个独立的服务,使用接口的形式和服务端通信。
那么三板斧为何会用到,主要是目前国内最常见的mobile的web页面,基本在微信里面流传,然后这些页面还需要一定的数据交互,而且这种页面的特点就是短平快,不需要那么严谨,
这种页面特别适合前端自己一撸到底,前后端通吃,接上 MongoDB当做数据库,
基本两三天之内就能开发一个活动页面出来,不需要对其他服务有任何依赖,包括微信授权都可以自己搞定,工作量其实比对接其他语言服务大不了多少,某些方面,我个人认为还减少了很多的沟通成本。
Webpack dev server 是一个轻量的node.js express服务器,实现了 webpack 编译代码实时输出更新。webpack的HMR功能集成
项目经验流水和废话太多。(基于div+css布局,html5语义化+css3)我认为用「XX + XX 语言 配合 XX 框架 ,利用XX技术完成该项目/模块」来解释你的项目开发过程更好,然后用一小段话总结你的项目所得。
所以,请慎重填写技术名词,最好每个技术名词附加一个更加详细的使用点。比如你说你懂Redis,
那么请这样写:熟悉Redis的常规操作,对Redis五种数据类型、pub\sub模式有较深入的理解,并将Redis应用在系统的缓存层以及秒杀系统中
(如果你这样写,多半面试官会问你关于秒杀的细节,你就可以提前准备这方面的知识了);
你需要挑选有代表性的项目,每个公司1到2个项目为佳。项目经验、描述把握一个原则,求质不求量。
深度描述你在每个项目里的职责。推荐大家重点描述项目遇到了什么问题,你是如何解决的,或者是从业务、设计上巧妙规避或者是用什么技术来解决这个问题的。
比如使用任务队列异步解耦订单的处理;使用Redis的pub\sub来做定时器,避免长连接轮询;前端使用事件注册机制传递参数避免类与类之间的耦合等。
一个项目里技术点太多了,选择你认为最重要或者你最得意的技术点来描述项目是非常好的做法。
SMS项目
项目描述:
工作内容:
1.HTML结合css完成静态页面编写,页面布局,高度还原设计图;
2.JavaScript语言配合angularjs框架,添加交互效果,数据渲染(数据绑定),完成业务逻辑开发;
3.ajax+json($http服务)与后台进行数据交互;
4.requirejs实现模块化开发,按功能划分模块;
5.grunt打包编译;
6.ng-router路由系统,单页面应用;
总结:这个项目是首次使用框架,对以下知识点有了很多的理解, 体会到了相对于jQuery, dom操作的便利,数据渲染的便利,
对双向数据绑定,自定义服务,依赖注入,控制器,MVC设计模式,前端路由,指令系统,事件委托机制,
对于如何把数据与视图的转换有了更多的经验;
http请求,
angularjs:
1.自定义指令, 使用AngularJS扩展HTML的功能
2.$q与promise object异步编程,$apply,$digest,$watch,
3.双向数据绑定(观察者模式,数据的监视实现,监听队列$watch,脏检查(Dirty Checking)机制$digest, 会遍历所有的 $watch。从而更新DOM), 取代dom操作
4.脏检查机制
5.依赖注入
6.service,Controller,scope,template(HTML),DependencyInjection(依赖注入)
其强大之处主要是可以把静态页面与动态数据绑定起来,来更新数据
你只需要专注你的数据和模板就够了,他们之间怎么填充,angular把这些做好了,也就是剥离了view层对contorller,mdoel层的影响,下面就是angular官方给出的区别
可以更专注于业务逻辑的开发
js工作原理, angular工作原理
总结:
jq操作DOM结构,从而进行更新页面
通过js改写DOM,更新view
分层架构: 逻辑层, 工具层, 服务
发布过程: 环境配置,代码部署,nginx配置,域名解析
Angular 基于HTML的大而全的MVC框架,MVVM
React:
基于js的视图层框架,只关注页面的显示
视图层框架
组件化
JSX表达式
虚拟DOM,只有在需要的时候,才去操作dom
视图层框架:
一个构建用户界面的框架
声明式框架(只要声明就行了,只要定义好数据和dom之间的对应关系就好了,相对的是命令式框架,需要手动指挥怎么渲染,怎么调用, 函数式编程)
数据驱动dom,再用事件反馈给数据
组件化开发:
组件组合而不是继承(不是传统的面对对象的方式,通过组件继承实现代码的封装)
state$$props
生命周期
JSX:
一种JS扩展的表达式
带有逻辑的标记语法,有别于HTML模板
对样式,逻辑表达式和事件的支持
虚拟DOM:
对DOM进行模拟(虚拟dom保存在内存中)
比较操作前后的数据差异
如有数据差异,统一操作dom
减少重复渲染
React在减少重复渲染方面确实是有一套独特的处理办法,那就是virtual DOM,但显示在首次渲染的时候React绝无可能超越原生的速度。因此,我们在做优化的时候,接下来可以做的事情就是:
首屏时间可能会比较原生的慢一些,但可以尝试用React Server Render (又称Isomorphic)去提高效率
通过学习react:
高阶组件,函数式编程,flux架构
虚拟dom, diff算法
数据逻辑与业务逻辑解耦
Vue 基于hmtl的视图层框架
目前更加追求代码的优雅性, 性能优化, 高度愉悦的体验性
致力于追求更加赏心悦目的代码,从面向过程到面向对象,到函数式编程,最近在看
希望能够有机会与大神共事
Vision项目:
项目描述:
一站式全生命周期管理服务平台,提供“需求->开发->测试->发布->运维->运营”的端到端协同服务。
工作描述:
1.
总结: react, redux,react-router,webpack,中间件,高阶组件,flux架构,函数式编程,虚拟dom,diff算法