2016年Web前端开发技术总结

2016年Web前端开发技术总结
2016年Web前端开发技术总结

2016年Web前端开发技术总结

前言

2016 年马上过去了,像过去六年中的每一年一样,Web前端领域又产生了“面目全非”而又“耳目一新”的变化,不但旧事物持续不断地被淘汰,新事物也难保坐久江山,大有岌岌可危之势。开源界如群雄逐鹿,不断生产新的概念、新的框架、新的工具,去年中一些流行的技术今年大多得到了进一步的演进和升级,活跃度非常高,却仍然不能保证前端的未来属于它们。在今年整体资本市场冷却的大环境下,to B的创业公司显现出了较强的生命力,这种类型的业务也给Web前端的工作带来了明显的差异性,工程师整体技能方向也展露出一丝不一样的分支。

一、更新的网络与软件环境

1.1 HTTP/2 的持续普及

今年中,几乎所有的现代桌面浏览器都已经支持了HTTP/2协议,移动端依靠降级为SPDY依旧可以覆盖几乎所有平台,这样使得从协议上优化页面的性能成为了可能。

同时,前端静态资源打包的必要性成为了一定程度上的争论焦点,打包合并作为传统的前端性能优化方案,它的存留对前端工程化影响极大,Facebook公司著名的静态资源动态打包方案的优越性也会被弱化。社区上多篇文章纷纷发表对HTTP/2的性能实验数据,却不尽相同。

在2017年,我相信所有大型站点都会切换HTTP/2,但依旧不会放弃对静态资源打包合并的依赖。而且,对于Server Push等高级特性,也不会有太多的应用。

1.2 Internet Explorer 8

三年前还在考虑兼容IE6的前端技术社区,在前不久天猫宣布不再支持IE8后又引起了一股躁动。IE8是Windows XP操作系统支持的最高IE版本,放弃IE8意味着放弃了使用IE的所有XP用户。

其实在2016年的今天,前端社区中框架、工具的发展早已不允许IE8的存在,Angular 早在1.3版本就果断放弃了IE8,React 也在年初的v15版本上宣布放弃。在PC领域,你依旧可以使用像Backbone.js一样的其他框架继续对IE进行支持,但无论是从研发效率上还是从运行时效率上,放弃它都是更好的选择。

由于对HTML5兼容性不佳,在2017年,相信IE9也会逐渐被社区放弃,以取得更好的性能、更少的代码体积。

二、如何编写(Java)Script

2.1 ES2016?ES2017?Babel!

去年定稿的ES2015(亦称ES6)带来了大量令人激动的新语言特性,并快速被V8和SpiderMonkey所实现。但由于浏览器版本碎片化问题,目前编写生产环境代码仍然以ES5为主。今年年中发布的ES2017带来的新特性数量少的可怜,但这正好给了浏览器厂商消化ES2015的时间,在ES2017到来之前喘口气——是的,明年的ES2017势必又会带来一大波新特性。

JS解释引擎对新特性的支持程度并不能阻碍狂热的开发者使用他们,在接下来的很长时间,业界对Babel的依赖必然有增无减。Babel生态对下一代ECMAScript的影响会进一步加大,人们通过先增加新的Babel-plugin,后向ECMA提案的方式成为了ECMAScript进化的常态。开发者编写的代码能直接运行在浏览器上的会越来越少。

但使用Babel导致的编译后代码体积增大的问题并没有被特别关注,由于polyfill可能被重复引入,部署到生产环境的代码带有相当一部分冗余。

2.2 TypeScript

作为ECMAScript语言的超集,TypeScript在今年取得了优异的成绩,Angular 2放弃了传说中的AtScript,成为了TypeScript的最大客户。人们可以像编写Java一样编写JavaScript,有效提升了代码的表述性和类型安全性。

但凡事有两面,TypeScript的特性也在不断升级,在生产环境中,你可能需要一套规范来约束开发者,防止滥用导致的不兼容,这反而增加了学习成本、应用复杂性和升级安全性。个中优劣,仍需有大量的工程实践去积累经验。

此外,TypeScript也可以看做一种转译器,与Babel有着类似的新特性支持。在2017年,我们期待TypeScript与Babel会发展成怎样的一种微妙关系。

2.3 promise、generator 与 async/await

在回调地狱问题上,近两年我们不断被新的方案乱花了眼。过去我们会利用async来简化异步流的设计,直到“正房”Promise的到来。但它们只是callback模式的语法糖,并没有完全消除callback的使用。

ES2015带来的generator/yield似乎成为了解决异步编程的一大法宝,虽然它并非为解决异步编程所设计的。但generaor的运行是十分繁琐的,因此另一个工具co又成为了使用generator的必备之选。Node.js社区的Koa框架初始就设计为使用generator编写洋葱皮一样的控制流。

但昙花一现,转眼间async/await的语法,配合Promise编写异步代码的方式立即席卷整个前端社区,虽然async/await仍然在ES2017的草案中,但在今天,不写async/await立刻显得你的设计落后社区平均水平一大截。

在Node.js上,v7已经支持在harmony参数下的async/await直接解释,在明年4月份的v8中,将会正式支持,届时,Koa 2的正式版也会发布,几乎完全摒弃了generator。

2.4 fetch

polyfill如whatwg-fetch、node-fetch、isomorphic-fetch在npm上的每日下载量都非常大,即便对于兼容性不好的移动端,开发者也不愿使用繁琐的AJAX。借助async/await的语法,使用fetch API能让代码更简洁。

三、Node.js服务与工具

Koa 2

Koa与流行的Express属于“同根生”的关系,它们由同一团队打造。相比Express,新的Koa 框架更轻量、更灵活。但Koa的设计在短时间内曾经出现了较大的变动,这主要受到了async/await语法对异步编程的影响。在v2版本中,Koa的middleware抛弃generator转而支持async,所有第三方middleware实现,要么自行升级,要么使用Koa-convert进行包装转换。

目前Koa在Node.js社区的HTTP服务端框架中受到关注度比较高,不过其在npm上latest 目前仍处于1.x阶段,预计在2017年4月份发布Node.js v8后,就会升级到2.x。

Koa的轻量级设计意味着你需要大量第三方中间件去实现一个完整的Web应用,目前鲜有看到对Koa的大规模重度使用,因此也就对其无从评价。相信在明年,越来越多的产品应该会尝试部署Koa 2,届时,对第三方资源的依赖冲突也会尖锐起来,这需要一个过程才能让Koa的生态完备起来。预计在2018年,我们会得到一个足够健壮的Koa技术栈。这会促进Node.js在服务端领域的扩展,轻量级的Web服务将会逐渐成为市场上的主流。

四、框架纷争

4.1 jQuery已死?

今年六月份jQuery发布了3.0版本,距离2.0发布已经有三年多的时间,但重大的更新几乎没有。由于老旧浏览器的逐渐放弃和升级,jQuery需要处理的浏览器兼容性问题越来越少,专注于API易用性和效率越来越多。

随着如Angular、React、Ember、Vue.js等大量具备视图数据单双向绑定能力的框架被普及,使用jQuery编写指令式的代码操作DOM的人越来越少。早在2015年便有人声称jQuery已死,社区中也进行了大量雷同的讨论,今天我们看到确实jQuery的地位已大不如前,著名的sizzle 选择器在今天已完全可由querySelector原生方法替代,操作DOM也可以由框架根据数据的变动自动完成。

明年jQuery在构建大型前端产品的过程中的依赖会被持续弱化,但其对浏览器特性的理解和积淀将对现有的和未来的类Angular的MVVM框架的开发依旧具有很大的借鉴意义。

4.2 Angular 2

好事多磨,Angular 2的正式版终于在今年下半年发布,相比于1.x,新的版本几乎是完全重新开发的框架,已经很难从设计中找到1.x的影子。陡峭的学习曲线也随之而来,npm、ES2015 Modules、Decorator、TypeScript、Zone.js、RxJS、JIT/AOT、E2E Test,几乎都是业界这两年中的最新概念,这着实给初学者带来了不小的困难。

Angular 2也更面向于开发单页应用(SPA),这是对ES2015 Modules语法描述的模块进行打包(bundle)的必然结果,因此Angular 2也更依赖于Webpack等“bundler”工具。

虽然Angular 声称支持TypeScript、ECMAScript和Dart三种语言,不过显然业界对Dart没什么太大兴趣,而对于ECMAScript和TypeScript,两种语言模式下Angular 2在API和构建流程上都有着隐式的(文档标注不明的)差异化,这必然会给开发者以困扰。加上业界第三方工具和组件的支持有限,TypeScript几乎是现在开发者唯一的选择。

此外,Angular团队已声明并没有完全放弃对1.x组件的支持,通过特有的兼容API,你可以在2.x中使用针对1.x开发的组件。鉴于不明确的风险,相信很少有团队愿意这样折腾。

现在在产品中使用Angular 2,在架构上,你需要考虑生产环境和开发环境下两种完全不同的构建模式,也就是JIT和AOT,这需要你有两套不一样的编译流程和配置文件。在不同环境下模块是否符合期望,可以用E2E、spec等方式来进行自动化测试,好的,那么Angular 2的测

试API又可能成了技术壁垒,它的复杂度可能更甚Angular本身。可以确信,在业务压力的迫使下,绝大部分团队都会放弃编写测试。

总之,Angular 2是一个非常具有竞争力的框架,其设计非常具有前瞻性,但也由于太过复杂,很多特性都会成为鸡肋,被开发者所无视。由于React和Vue.js的竞争,Angular 2对社区的影响肯定不如其前辈1.x版本,且其更高级的特性如Server Render还没有被工程化实践,因此相信业界还会持续观望,甚至要等到下一个4.x版本的发布。

4.3 Vue.js 2.0

Vue.js 绝对是类MVVM框架中的一匹黑马,由作者一人打造,更可贵的是作者还是华人。Vue.js 在社区内的影响非常之大,特别是2.0的发布,社区快速生产出了无数基于Vue.js的解决方案,这主要还是受益于其简单的接口API和友好的文档。可见作为提供商,产品的简单易用性显得尤为重要。在性能上,Vue.js基于ES5 Setter,得到了比Angular 1.x脏检查机制成倍的性能提升。而2.0在模块化上又更进一步,开发难度更低,维护性更好。可以说Vue.js准确地戳中了普通Web开发者的痛点。在国内,Vue.js与Weex达成了合作,期待能给社区带来怎样的惊喜。

4.4 React

目前看来,React似乎仍是今年最流行的数据视图层解决方案,并且几乎已经成为了每名前端工程师的标配技能。今年React除了版本从0.14直接跃升至15,放弃了IE8以外,并没有更多爆发式的发展。人们对于使用JSX语法编写Web应用已经习以为常,就像过去十年间写jQuery一样。

React的代码在维护性能上显而易见,如果JSX编写得当,在重渲染性能上也具备优势,但如果只部署在浏览器环境中,那么首屏性能将会受到负面影响,毕竟在现阶段,纯前端渲染仍然快不过后端渲染,况且后端具备天生的chunked分段输出优势。我们在业界中可以看到一些负面的案例,比如某新闻应用利用React全部改写的case,就是对React的一种误用,完全不顾其场景劣势。

围绕着React发展的替代品和配套工具依旧很活跃,preact以完全兼容的API和小巧的体积为卖点,inferno以更快的速度为卖点,等等。每个框架都想在Virtual DOM上有所创新,但它们的提升都不是革命性的,由此而带来的第三方插件不兼容性,这种风险是开发者不愿承担的,笔者认为它们最大的意义在于能为React的内部实现提供另外的思路。就像在自然界,生物多样性是十分必要的,杂交能带来珍贵的进化优势。

4.5 React-Native

今年是React-Native(以下简称RN)支持双端开发的第一年,不断有团队分享了自己在RN

上的实践成果,似乎前途一片大好,RN确实有效解决了传统客户端受限于发版周期、H5受限于性能的难题,做到了鱼和熊掌兼得的理想目标。

但我们仍然需要质疑:

首先,RN目前以两周为周期发布新版本,没有LTS,每个版本向前不兼容。也就是说,你使用0.39.0的版本编写bundle代码,想运行在0.35.0的runtime上,这几乎会100%出问题。在这种情况下,如何制定客户端上RN的升级策略?如果升级,那么业务上如何针对一个以上的runtime版本编写代码?如果不升级,那么这意味着你需要自己维护一个LTS。要知道目前每个RN的版本都会有针对前版本的bug fix,相信没有团队有精力可以在一个老版本上同步这些,如果不能,那业务端面对的将是一个始终存在bug的runtime,其开发心理压力可想而知。

其次,虽然RN声称支持Android与iOS双端,但在实践中却存在了极多系统差异性。有些体现在了RN文档中,有一些则体现在了issue中,包括其他一些问题,GitHub上RN的近700个issue足以让人望而却步。如果不能高效处理开发中遇到的各种匪夷所思的问题,那么工期就会出现严重风险。此外,RN在Android和iOS上的性能也不尽相同,Android上更差一些,即便你完成了整个业务功能,却还要在性能优化上消耗精力。并且无论如何优化,单线程模型既要实现流畅的转场动画,又要操作一系列数据,需要很高的技巧才能保证可观的性能表现。在具体的实践中,对于H5,往往由于时间关系,业务上先会上一个还算过得去的版本,过后再启动性能优化。然而对于RN,很有可能达到“过得去”的标准都需要大量的重构工作。

再次,RN虽然以Native渲染元素,但毕竟是运行在JavaScript Core内核之上,依旧是单线程,相对于H5这并没有对性能有革命性质的提升。Animated动画、大ListView滚动都是老生常谈的性能瓶颈,为了解决一些复杂组件所引起的性能和兼容性问题,诸多团队纷纷发挥主动能动性,自己建设基于Native的高性能组件,这有两方面问题,一是不利于分发共享,因为它严重依赖特定的客户端环境,二是它仍依赖客户端发版,仍需要客户端的开发,违背了RN最最重要的初衷。可以想象,在大量频繁引用Native组件后,RN又退化成了H5+Hybrid

模式,其UI的高性能优势将会在设备性能不断升级下被削弱,同时其无stable版本反而给开发带来了更多不可预测的风险变量。

最后,RN仍然难以调试和测试。特别是依赖了特定端上组件之后,本地的自动化测试几乎成为了不可能,而绝大多数客户端根本不支持自动化测试。而调试只能利用remote debugger

有限的能力,在性能分析上都十分不便。

可以说RN的出现带给了移动开发以独特的新视角,使得利用JavaScript开发Native成为了可能,NativeScript、Weex等类似的解决方案也发展开来。显然RN目前最大的问题仍然是不够成熟和稳定,利用RN替代Native依然存在着诸多风险,这对于重量级的、长期维护的客户端产品可能并不是特别适合,比如Facebook自己。RN的优势显而易见,但其问题也是严重的,需要决策者对个方面利弊都有所了解,毕竟这种试错的成本不算小。

由于时间关系,市场上并没有一个产品在RN的应用上有着足够久的实践经验,大部分依然属于“我们把RN部署到客户端了”的阶段,我们也无法预测这门技术的长久表现,现在评价RN 的最终价值还为时尚早。在2017年,期待RN团队能做出更长足的进步,但不要太乐观,以目前的状态来看,想达到stable状态还是有着相当大的难度。

4.6 Redux 与 Mobx

Redux成功成为了 React 技术栈中的最重要成员之一。与Vue.js一样,Redux也是凭借着比其他Flux框架更简单易懂的API才能脱颖而出。不过已经很快有人开始厌烦它每写一个应用都要定义action、reducer、store以及一大堆函数式调用的繁琐做法了。

Mobx也是基于ES5 setter,让开发者可以不用主动调用action函数就可以触发视图刷新,它只需要一个store对象以及几个decorator就能完成配置,确实比Redux简单得多。

在数据到视图同步上,无论使用什么样的框架,都有一个至关重要的问题是需要开发者自己操心,那就是在众多数据变动的情形下,如何保证视图以最少的但合理的频率去刷新,以节省极其敏感的性能消耗。在Redux或Mobx上都会出现这个问题,而Mobx尤甚。为了配合提升视图的性能,你依然需要引入action、transaction等高级概念。在控制流与视图分离的架构中,这是开发者无可避免的关注点,而对于Angular、Vue.js,框架会帮你做很多事情,开发者需要考虑的自然少了许多。

4.7 Bootstrap

BootstrapBootstrap 4处于alpha阶段已经非常久了,即使现在3.x已经停止了维护,它似乎受到了Twitter公司业务不景气的影响,GitHub上的issue还非常多。Bootstrap是建设内部平台最佳的CSS框架,特别是对于那些对前端不甚了解的后端工程师。我们不清楚Bootstrap 还能坚持多久,如果Twitter不得不放弃它,最好的归宿可能是把它交给第三方开源社区去维护

五、工程化与架构

5.1 Rollup 与 Webpack 2

Rollup是近一年兴起的又一打包工具,其最大卖点是可以对ES2015 Modules的模块直接打包,以及引入了Tree-Shaking算法。通过引入Babel-loader,Webpack一样可以对ES2015 Modules 进行打包,于是Rollup的亮点仅在于Tree-Shaking,这是一种能够去除冗余,减少代码体积的技术。通过分析AST(抽象语法树),Rollup可以发现那些不会被使用的代码,并去除它。

不过Tree-Shaking即将不是Rollup的专利了,Webpack 2也将支持,并也原生支持ES6 Modules。这可以说是“旁门左道”对主流派系进行贡献的一个典型案例。

Webpack是去年大热的打包工具,俨然已经成为了替代grunt/gulp的最新构建工具,但显然并不是这样。笔者一直认为Webpack作为一个module bundler,做了太多与其无关的事情,从而表象上看来这就是一个工程构建工具。经典的构建需要有任务的概念,然后控制任务的执行顺序,这正是Ant、Grunt、Gulp做的事情。Webpack不是这样,它最重要的概念是entry,一个或者多个,它必须是类JavaScript语言编写的磁盘文件,所有其他如CSS、HTML都是围绕着entry被处理的。估计你很难一眼从配置文件中看出Webpack对当前项目进行了怎样的“构建”,不过似乎社区中并没有人提出过异议,一切都运行得很好。

题外话:如何使用Webpack构建一个没有任何JavaScript代码的工程?

新的Angular 2使用Webpack 2编译效果更加,不过,已经提了一年的Webpack 2,至今仍处于beta阶段,好在现在已经rc,相信离release不远了。

5.2 npm、jspm、Bower与Yarn

主要用来管理运行在Node上的模块,但现在却托管了大量只能运行在浏览器上的模块。造成这种现象的几个原因:

●Webpack的大量使用,使得前端也可以并习惯于使用CommonJS类型的模块;

●没有更合适的替代者,Bower以前不是,以后更不会是。

前端的模块化规范过去一直处于战国纷争的年代。在Node上CommonJS没什么意见。在浏览器上,虽然现在有了ES2015 Modules,却缺少了模块加载器,未来可能是SystemJS,但现在仍处于草案阶段。无论哪种,都仍处于JavaScript语言层面,而完整的前端模块化还要包括CSS 与HTML,以及一些二进制资源。目前最贴近的方案也就只能是JSX+CSS in JS的模式了,这在Webpack环境下大行其道。这种现象甚至影响了Angular 2、Ember 2等框架的设计。从这点看来,jspm只是一个加了层包装的壳子,完全没有任何优势。

npm本身也存在着各种问题,这在实践中总会影响效率、安全以及一致性,Facebook果断地出品了Yarn——npm的替代升级版,支持离线模式、严格的依赖版本管理等在工程中非常实用的特性。

至于前端模块化,JavaScript有CommonJS和ES2015 Modules就够了,但工程中的组件,可能还需要在不同的框架环境中重复被开发,它们依旧不兼容。未来的话,WebComponents可能是一个比较优越的方案。

5.3 同构

同构的设计在软件行业早就被提出,不过在Web前端,还是在Node.js、特别是React的出现后,才真正成为了可能,因为React内核的运行并不依赖于浏览器DOM环境。

React的同构是一个比较低成本的方案,只要注意代码的执行环境,前后端确实可以共享很大一部分代码,随之带来的一大收益是有效克服了SPA这种前端渲染的页面在首屏性能上的瓶颈,这是所有具备视图能力的框架Angular、Vue.js、React等的共性问题,而现在,它们都在一种程度上支持server render。

可以想到的做前后端同构面临的几个问题:

●静态资源如何引入,CSS in JS模式需要考虑在Node.js上的兼容性;

●数据接口如何fetch,在浏览器上是AJAX,在Node.js上是什么;

●如何做路由同构,浏览器无刷新切换页面,新路由在服务端可用;

●大量DOM渲染如何避免阻塞Node.js的执行进程。

目前GitHub上star较多的同构框架包括Vue.js的nuxt和React的next.js,以及数据存储全包的meteor。可以肯定的是,不论它们是否能部署在生产环境中,都不可能满足你的所有需求,适当的重新架构是必要的,在这个新的领域,没有太多的经验可以借鉴。

六、未来技术与职业培养

6.1 大数据方向

越来越多做toB业务的公司对前端的需求都是在数据可视化上,或者更通俗一些——报表。这个部分在从前通常都是前端工程师嗤之以鼻的方向,认为无聊、没技术。不过在移动端时代,特别是大数据时代,对此类技能的需求增多,技术的含金量也持续提升。根据“面向工资编程”的原则,一定会有大量工程师加入进来。

对这个方向的技术技能要求是Canvas、WebGL,但其实绝大多数需求都不需要你直接与底层API打交道,已经有大量第三方工具帮你做到了,不乏非常优秀的框架。如百度的ECharts,国外的Chart.js、Highcharts、D3.js等等,特别是D3.js,几乎是大数据前端方向的神器,非常值得学习。

话说回来,作为工程师,心存忧患意识,一定不能以学会这几款工具就满足,在实际的业务场景中,更多的需要你扩展框架,生产自己的组件,这需要你具备一定的数学、图形和OpenGL 底层知识,可以说是非常大的技术壁垒和入门门槛。

6.2 WebVR

今年可以说是VR技术爆发式的一年,市场上推出了多款VR游戏设备,而淘宝更是开发出了平民的buy+购物体验,等普及开来,几乎可以颠覆传统的网上购物方式。

VR的开发离不开对3D环境的构建,WebVR标准还在草案阶段,A-Frame可以用来体验,另一个three.js框架是一个比较成熟的构建3D场景的工具,除了能在未来的VR应用中大显身手,同样也在构建极大丰富的3D交互移动端页面中显得必不可少,淘宝就是国内这方面的先驱。

6.3 WebAssembly

asm.js已发展成WebAssembly,由谷歌、微软、苹果和Mozilla四家共同推动,似乎是非常喜人乐见的事情,毕竟主要浏览器内核厂商都在这里了。不过合作的一大问题就是低效,今年终于有了可以演示的demo,允许编写C++代码来运行在浏览器上了,你需要下载一大堆依赖库,以及一次非常耗时的编译,不过好歹是个进步。

短时间内,我们都不太可能改变使用JavaScript编写前端代码的现状,Dart失败了,只能期望于未来的WebAssembly。有了它,前端在运行时效率、安全性都会上一个台阶,其他随之而来的问题,就只能等到那一天再说了。

6.4 WebComponents

WebComponents能带给我们什么呢?HTML Template、Shadow DOM、Custom Element和HTML Import?是的,非常完美的组件化系统。Angular、React的组件化系统中,都是以Custom Element的方式组合HTML,但这都是假象,它们最终都会被编译成JavaScript才会执行。但WebComponents不一样,Custom Element原生就可以被浏览器解析,DOM元素本身的方法都可以自定义,而且元素内部的子元素、样式,由于Shadow DOM的存在,不会污染全局空间,真正成为了一个沙箱,组件化就应该是这个样子,外部只关心接口,不关心也不能操纵内部的实现。

当前的组件化,无不依赖于某一特定的框架环境,或者是Angular,或者是React,想移植就需要翻盘推倒重来,也就是说他们是不兼容的。有了WebComponents,作为浏览器厂商共同遵循和支持的标准,这一现状将极有可能被改写。

未来的前端组件化分发将不会是npm那么简单,可能只是引用一个HTML文件,更有可能的是包含CSS、HTML、JavaScript和其他二进制资源的一个目录。

目前只有最新的Chrome完全支持WebComponents的所有特性,所以距离真正应用它还尚需时日。由于技术上的限制,WebComponents polyfill的能力都非常受限,Shadow DOM不可能实现,而其他三者则更多需要离线编译实现,可以参考Vue.js 2的实现,非常类似于WebComponents。

6.5 关于微信小程序

微信小程序对于今年不得不说,但笔者却也无话可说。依托于庞大的用户量,微信官方出品了自有的一套开发技术栈,只能说给繁杂的前端开发又填了一个角色——微信前端工程师。

七、总结

最后还有几点需要说明。

7.1 工程化

首先,现在业界都在大谈前端工程化,人人学构建,个个会打包。鄙人认为,工程化的要点在于“平衡诸方案利弊,取各指标的加权收益最大化”。仅仅加入了项目构建是远远不够的,在实践中,我们经常需要考虑的方向大可以分为两种:一是研发效率,这直接应该响应业务需求的能力;二是运行时性能,这直接影响用户的使用体验,同时也是产品经理所关心的。这两点都直接影响了公司的收入和业绩。

具体到细节的问题上来,比如说:

静态资源如果组织和打包,对于具备众多页面的产品,考虑到不断的迭代更新,如何打包能让用户的代码下载量最少(性能)?不要说使用Webpack打成一个包,也不要说编译common chunk 就万事大吉了,难道还需要不断地调整编译脚本(效率)?改错了怎么办?有测试方案么?

利用Angular特别是React构建纯前端渲染页面,首屏性能如何保证(性能)?引入服务端同构渲染,好的,那么服务端由谁来编写?想来必是由前端工程师来编写,那么服务端的数据层架构是怎么样的?运维角度看,前端如何保证服务的稳定(效率)?

组件化方案如何制定(效率)?如果保证组件的分发和引用的便捷性?如何保证组件在用户端的即插即用(性能)?

对于工程师来说,首先需要量化每个指标的权重,然后对于备选方案,逐个计算加权值,取最大值者,这才是科学的技术选型方法论。

然而在业界,很少能看到针对工程化的更深入分享和讨论,大多停留在“哪个框架好”,“使用XXX实现XXX”的阶段,往往是某一特定方向的优与劣,很少有科学的全局观。甚至只看到了某一方案的优势,对其弊端和可持续性避而不谈。造成这种现状的原因是多方面的,一是技术上,工程师能力的原因并没有考虑得到,二是政治上,工程师需要快速实现某一目标,以取得可见的KPI收益,完成团队的绩效目标,但更多的可能是,国内绝大多数产品的复杂性都还不够高,根本无需考虑长久的可持续发展和大规模的团队合作对于技术方案的影响。

因此,你必须接受的现状是,无论你是否使用CSS预处理器、使用Webpack还是Grunt、使用React还是Angular,使用RN还是Hybrid,对于产品极有可能都不是那么地敏感和重要,往往更取决于决策者的个人喜好。

7.2 角色定位

确实,近两年,Web前端工程师开始不够老实,要么用Node.js插手服务端开发,要么用RN 插手客户端开发。如何看待这些行为呢?

鄙人以为,涉足服务端开发是没问题的,因为只涉及到渲染层面,还是属于“前端”的范畴的。况且,在实际的工程实践中,已经可以证明,优秀的前端研发体系确实离不开服务端的参与,想想Facebook的BigPipe。不过,这需要服务端良好的分层架构,数据与渲染完全解耦分离,后端工程师只负责业务数据的CRUD,并提供接口,前端工程师从接口中获取数据,并推送到浏览器上。数据解耦是比接口解耦更加优越的方案。因此现在只要你的服务端架构允许,Node.js作为Web服务已经比较成熟,前端负责服务端渲染是完全没有问题的。

前端涉足客户端开发也是合理的,毕竟都运行在用户端,也属于前端的范畴。抛开阿里系的Weex鄙人不甚了解,NativeScript、RN都还缺乏大规模持续使用的先例,这是与涉足服务端领域的不同,客户端上的方案都还不够成熟,工具的限制阻碍了前端向客户端的转型,仍然需要时间的考验。不过时间可能不会很多,未来的Web技术依托高性能硬件以及普及的WebGL、WebRTC、Payment API等能力,在性能和功能上都会挑战Native的地位。最差的情况,还可以基于Hybrid,利用Native适当扩展能力,这就是合作而非竞争关系了。

总之前端工程师的本仍然在浏览器上,就这一点,范围就足够广使得没人有敢言自己真正“精通”前端。如果条件允许的话,特别是技术成熟之后,涉猎其他领域也是鼓励的。

7.3 写在最后

在各种研发角色中,前端注定是一个比较心累的一个。每一年的年末,我们都能看到几乎完全不一样的世界,这背后是无数前端人烧脑思考、激情迸发的结果。无论最终产品的流行与否,都推动着前端技术领域的高速更新换代。正是印证了那一句“唯有变化为不变”。作为业务线的研发工程师,我们的职责是甄选最佳组合方案,取得公司利益最大化。这个“最佳”的涉猎面非常广,取决于设计者的技术视野广度,也有关于决策者的管理经验,从来都不是一件简单的事。

未来的Web前端开发体验一定是更丰富的,依托WebComponents的标准化组件体系,基于WebAssembly的高性能运行时代码,以及背靠HTTP/2协议的高速资源加载,前端工程师不必在性能上、兼容性上分散太多精力,从而可以专注于开发具备丰富式交互体验的下一代Web APP,可能是VR,也可能是游戏。

在迎接2017的同时,我们仍然要做好心理准备,新的概念、新的框架和工具以及新的语法依旧会源源不断的生产出来,不完美的现状也依旧会持续。

前端开发工作总结

前端开发工作总结 Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。下面是整理的前端开发工作总结范文,欢迎参考。 前端开发工作总结(1) 光阴似箭,日月如梭,辉煌的XX年即将结束,将迎来充满希望的XX。回望即将过去的XX,展现在我们面前的是一年中深浅不一的脚印,在这幅巨大的画面上,留下的是优美的、还是些许凌乱的印记呢?不管怎样,我们都要骄傲地说,我们已经走过来了。在过去的一年里,我们经历了许多,也成长了许多,我们要不断提升自己的实力,迎接新的更大的挑战,现将XX年的工作总结如下: 1. 项目方面 在过去一年里,主要担负交通银行前端项目组的开发工作,如开发台北存取款系统、开发离岸存取款系统、开发动态下拉框任务、维护澳门存取款系统、维护澳门太平洋卡系统等工作。因工作需要,现调至浦发项目组,担负对公回单自助打印系统的开发工作。在做这些项目的工作中,不仅学习到了业务知识、技术知识,还学会了很多做人的道理。不管做什么事情,解决问题的唯一办法是沟通。只要有沟通能力,一切困难都能够迎刃而解。跟业务加强沟通、交流,认真、细心的分析需求,面对问题及时解决处理,这样才能把项目很好的向前推进。

2. 团队协作 从上面的主要工作内容来看,所有项目不是一个人所能完成的,正所谓一切事务离不开团队,个人是无法逞英雄的。在公司领导的英明领导下,团队建设有了很大的进步,跟同事在一起工作感觉非常的开心,没有什么其他的杂念,跟大家在一起工作,能够相互尊重、相互关心、相互帮助,这就像是一个家庭,一个大家庭,平时大家开开玩笑、说说笑笑,能够缓解一下紧绷的精神状态,而工作中又能严于律己,认真对待工作,这就是我们需要的团队。同时,公司领导也经常跟大家一起谈心论事,放下领导的架子,融入到同事当中,拉近了与同事之间的距离,这样更能够体现出领导对同事们的关心,更能够体现出领导的亲切感,也更能够让同事们接受。 在每个项目开始之前,同事们都能好好的交流,加强理解,对问题的共识、解决问题的方法能够很好的统一起来,在解决问题的过程中,虽然都不是风平浪静,但事后都能够客观的分析,从不参杂个人的感情,每个人都能很好的融入到这个团队,共同做好每一个项目。这正所谓团结就是力量。 3. 工作态度

web前端年度工作总结

web前端年度工作总结 web前端年度工作总结(1) 从入职到现在,我在XXX导师的指导下走上了前端之路。在这段时间的学习和项目中使我对前端业务需求和项目开发流程有一定的了解和认识,对前端也有自己的理解。前端是建立在以产品为核心,用户体验为基础的一门技术(其实我个人更喜欢用艺术来形容前端),每一个细微的视觉效果、交互体验都能给用户带去不同的感受,舒适、简单、不失高雅的前端产品更能获得用户的好评。 项目中我参与讨论产品实现的技术方案,例如:移动端中webview空页面加载方式和有内容页面加载方式是采用进度条还是蒙层加载,对比分析那种加载方式对用户更加友好;PC端中置顶小动画按钮应该在什么情况下出现,是在出现滚动条的情况下马上出现,还是滚动到一定距离的时候再出现会对用户更加友好。前端开发中“细心”极为重要,任何一个页面的行为,它都可能关系着产品的成败,更是对用户的责任。作为一名前端,在项目上需要熟悉整个业务才能更好的开发,例如:花币领取项目中,由于对需求了解的不够透彻,在完成开发后发现有很多场景未考虑完全而大大的延迟了迭代周期,如果一开始就熟悉业务,了解需求,考虑到所有的场景,那么可以大大的减少开发的时间。

学习中在我导师的指导下了解到前端基础的重要性,了解结构和表现在前端技能中的分量。前端基础就好比大楼的地基,只有拥有坚固的地基,才能搭建起一座摩天大厦。结构和表现是区分后端的重要凭证,前端注重视觉效果,后端着重功能实现,作为一名合格的前端,在结构和表现的技能上必须具备自己的专业优势。 前端是整个项目的桥梁,沟通产品、后台、和设计。整个项目中不仅需要对自己技术肯定,更需要了解业务,才能更有效率的开发和维护产品。 十年磨一剑,我怀揣着梦想站在巨人的肩膀上,紧跟着的脚步希望能越走越快,有朝一日,晚霞落幕,回望过往,那片片云彩皆在欢笑。 web前端年度工作总结(2) 大三下学期开始自学的前端,断断续续半年多,开始找前端相关的工作;到现在,走过了毕业期的十字路口,已经工作一年了;好吧,严重掉底子了,我是个比较懒的人。。。既然起步较晚,那么就只有马不停蹄的追赶了,奔跑吧,小前端! 写这个201X的年终总结,没什么经验之谈,只是继往开来,

前端年度工作总结

XX前端年度工作总结 导语:把自己所有的精力都投入进去,技术工作都不可能做到完美程度,毕竟技术工作太繁杂,项目多而人手少,但多付出一些,工作就会优化一些,这就需要认认真真沉下心去做事情,职业做事,诚信待人。 时光飞快,自八月份转前端以来,已经过去了半年时间。这期间经历了第一次真正意义上的项目前后端分离的开发模式。对于之前从事了三年后端java开发的我来说,一切都很新鲜与刺激。当然,收获颇丰。下面,就具体从这个项目中学习的东西进行一次总结。 1.技术方面 首先,这次项目的开发环境是基于, 引入了npm包管理工具来对各种js插件进行管理。 这种方式避免了以前引入js插件时分别到各自的官网网站去下载,用了npm后只需要在终端进行全局安装或者局部安装,后续只需要在js文件中require就能进行调用。这种统一管理的方式不仅使开发变的更加简单,减少了很多无谓的操作,也分离了一些开发人员不需要关注的关注点。 其次,项目引用了gulp + webpack,基于构建工具的开发更接近现代web开发,一套流程走下来,自动打包,自动对html,css,js,图片文件进行压缩,合并和版本号管理以

及对文件的改动进行自动监控。这样不仅仅是方便了开发人员,更重要的是极大地提升了客户端页面性能。与以前需要分别手动的对文件进行压缩,合并,混淆处理相比,这种自动构建工具效率更高,减少出错率。 最后,项目引入了coala框架,使我更加清晰的明白基于web component的开发,页面上每一个功能块,都可以化为一个组件,每个组件有它自己的生命周期与初始的属性。在不同的交互方式上绑定不同的事件用以来响应用户的行为,具体体现在个体的组件数据变化不会影响到页面上其他组件,这样就做到了页面性能的提升和用户体验的双赢。 另外,在页面布局和html,css实现页面的时候,如何能够绘制出更规范,更有结构化的页面也是一个考验。从前期的id,class命名不规范,html结构混乱到现在一点点的提升,终于也领会到了前端开发的细致活。 2.团队协作 这次的前后端分离和后端开发人员进行了接口联调。不得不承认前期花费了很多时间在沟通上面。 基于QQ工具的一问一答低效率的沟通和问题表述不清都会花费时间和打断工作中的思维,使人不能专注很长一段时间。另外,接口文档编写不规范,格式不美观等都是不能忽视的问题。当然,这些沟通技巧和提升效率的工具需要花费时间去慢慢的提升,包括我,包括团队里面所有的人员,

程序员-web前端-个人年度工作总结

2016个人年度工作总结 工作回顾 在我进入公司的这七个月里,我陆续接触了公司的软件开发平台,一些已经完成的项目,b2b,收银等。在工作之余,我也在努力的学习,和同事及客户友商进行交流,学习先进的开发技术,请教别人相关开发技术问题。 存在问题 1.由于开始对公司开发平台不是很熟悉,所以在了解客户所要开发的功能及表单过程中多次出现因为需求的原因,而不断修改的情况。在与客户交流的时候,这个问题多次困扰着我,对方的需求不明,每次交流的过程中都在变更需求,从而导致了效率比较低的问题。 2.在工作过程中,用到很多我所不知道或很多我知道但不太熟悉的领域,在这个领域内,我需要不断的学习。 3.学习的知识不够广泛。对专业知识技能方面还需要努力的加强,这方面也是目前最欠缺,希望高总能给予指导和培养。一个项目中,涉及的技术往往有多种,知识多了,就会灵活变通,所以我会加强这方面的学习。 工作心得 1. 每一个项目在开始着手的第一步,一定要和客户把需求沟通清楚,只有了解了项目的需求,才有可能真正做好一个项目。 2. 工作中,有一个无论是技术,还是经验都比较让人肯定的前辈带领,将任务详细化,详细到,每个页面、甚至是一个页面中的图片什么时候做好,做到什么程度,这样把工作进度有计划有方向的赞定下来,做事很有效率。所以希望高总多给予我们一些指导。 3. 每周的工作小结真的很重要,这让我们每天都有计划的知道自己干了什么,不是漫无目的的工作,所以我们应该养成,周记、月记、年记的工作习惯。

4. 工作并不是一成不变的,也许有一天你要去其他岗位帮忙,所以同事之间的技术要互相学习,也许有一天,公司需要你发挥其他的技能帮忙,所以互相学习也是很重要的。自己的工作不能仅仅局限于自己的业务范畴。 工作计划 1. 要提高工作的主动性,做事干脆果断,不拖泥带水。 2.工作要注重实效、注重结果,一切工作围绕着目标的完成。 3. 要提高大局观,是否能让其他人的工作更顺畅作为衡量工作的标尺。 4. 精细化工作方式的思考和实践。 5. 虚心请教比我做的优秀的其他同事,向他们学习技术或经验。其实作为一个新员工,所有的地方都是需要学习的,多听、多看、多想、多做、多沟通,向每一个员工学习他们身上的优秀工作习惯,丰富的专业技能,配合着实际工作不断的进步,不论在什么环境下,我都相信这两点:一是三人行必有我师,二是天道酬勤。 在参加工作的这短短的七个月中,我深刻的体会到,把自己所有的精力都投入进去,技术工作都不可能做到完美程度,毕竟技术工作太繁杂,项目多而人手少,但多付出一些,工作就会优化一些,这就需要认认真真沉下心去做事情,职业做事,诚信待人。

web前端试用期工作总结

web前端试用期工作总结 试用期工作总结2020-05-23 web前端试用期工作总结 时间是箭,去来迅疾,一段时间的工作已经告一段落,回顾这段时间以来的工作成果,你有什么感悟呢?想必我们需要写好工作总结了。为了让您在写工作总结时更加简单方便,下面是小编为大家整理的web前端试用期工作总结,希望对大家有所帮助。 时间飞逝,转眼间,做为一名Web前端开发的正式员工已经有两个月之久。在这个难忘而又夸姣的日子里,我深入体会到了公司的积极氛围和各个部门的巨大魅力,目睹了公司一步步走向成熟,看到了公司网络的不断健全和系统不断完善,并日渐不乱,同时,也看到了运维中心给于系统管理职员带下世人向往的学习平台和和无穷的机遇与挑战,所以,我在此对于过去的工作做下总结。 在运维中心工作期间,我工作认真,具有较强的责任心和进取心,极富工作热情,确实完成上级交付的工作,善于与他人沟通,和公司部门同事之间能够通力合作,关系相处融洽而辑穆,配合各部分负责人成功的完成各项工作,具有很强的团队合作精神。注重自己的个人发展,不断努力学习系统、网站架构知识。所以我现在已经能够纯熟维护公司的系统服务和监控网站架构,包括前段节点,源站各个站点服务的流量信息等,能及时查看并报警所引起的网络服务相关故障,

能注重公司的种种流程细节,拥有了一名系统管理维护员的基本工作技能。 九月份,是我成为公司正式员工最幼嫩的时期,一直都处在学习阶段,学习公司网站的架构分布情况,以及在系统中各种常见网络服务的搭建,包括学习系统基本的操作,pure-ftp的搭建,php网站的发布,对后台数据库的管理,通过各种熟练的基本操作之后,在此之上,我为迎合公司的发展需求,在网络服务监控方面我准备了各种实战经验;在上级的指挥下,我独自一人自主搭建了新版本软件nagios 监控服务器,并通过测试,可以和公司现阶段运行的服务器媲美,在此基础上,为了更好方便的管理,我又研究了nagvis,通过实现对监控设备的3d效果使之管理人员能第一时间更清晰的了解网站后台服务器的负载情况。 通过我们部门定期的进行小组的学习,使我对linux自身的学习有了更大的兴趣和憧憬,为此我研究基于各种网站类型的发布,包括对apache,varnish,lighttpd,等各种平台网站服务器的发布,样使我今后在监控,事件处理方面做好了充分的准备;为此,我特地独立创建我们部门的bbs论坛,并且发布于外网,使部门员工不仅在公司,而且还可以在家里进行访问与交流,以方便我们公司部门员工的共同学习和交流。十月份,我有幸的见证我们公司sns2.5新版本的`新上线,同时我也参与了公司内部测试,配合公司对新版本的bug,并及时提出问题。由于公司正处于现阶段发展之中,所以我必须迎合而上,配合其他部门积极工作,争取能为公司的发展出一己之力。

web前端工作总结

XXweb前端工作总结 web前端XX年最火的职业,你是否也想学前端呢,那快来看看吧,下面是小编整理的几篇XXweb前端工作总结范文,希望能够给你带来不一样的体会。 XXweb前端工作总结范文篇一工作回顾 在我进入公司的这七个月里,我陆续接触了公司的软件开发平台,一些已经完成的项目,b2b,收银等。在工作之余,我也在努力的学习,和同事及客户友商进行交流,学习先进的开发技术,请教别人相关开发技术问题。 存在问题 1.由于开始对公司开发平台不是很熟悉,所以在了解客户所要开发的功能及表单过程中多次出现因为需求的原因,而不断修改的情况。在与客户交流的时候,这个问题多次困扰着我,对方的需求不明,每次交流的过程中都在变更需求,从而导致了效率比较低的问题。 2.在工作过程中,用到很多我所不知道或很多我知道但不太熟悉的领域,在这个领域内,我需要不断的学习。 3.学习的知识不够广泛。对专业知识技能方面还需要努力的加强,这方面也是目前最欠缺,希望高总能给予指导和培养。一个项目中,涉及的技术往往有多种,知识多了,就会灵活变通,所以我会加强这方面的学习。

工作心得 1. 每一个项目在开始着手的第一步,一定要和客户把需求沟通清楚,只有了解了项目的需求,才有可能真正做好一个项目。 2. 工作中,有一个无论是技术,还是经验都比较让人肯定的前辈带领,将任务详细化,详细到,每个页面、甚至是一个页面中的图片什么时候做好,做到什么程度,这样把工作进度有计划有方向的赞定下来,做事很有效率。所以希望高总多给予我们一些指导。 3. 每周的工作小结真的很重要,这让我们每天都有计划的知道自己干了什么,不是漫无目的的工作,所以我们应该养成,周记、月记、年记的工作习惯。 4. 工作并不是一成不变的,也许有一天你要去其他岗位帮忙,所以同事之间的技术要互相学习,也许有一天,公司需要你发挥其他的技能帮忙,所以互相学习也是很重要的。自己的工作不能仅仅局限于自己的业务范畴。 工作计划 1. 要提高工作的主动性,做事干脆果断,不拖泥带水。 2.工作要注重实效、注重结果,一切工作围绕着目标的完成。 3. 要提高大局观,是否能让其他人的工作更顺畅作为衡量工作的标尺。

Web前端基础总结 三篇

Web前端基础总结三篇 前端工作总结篇一:前端开发心得 从事前端开发工作1年多了,从最初的DIV+CSS学起,到现在学到html5、css3、javascript,jquery等等,我觉得前端要学的技术太多了,很多人认为前端开发要掌握的技能简单,就是网页制作,其实不然,前端开发是网站的前台代码实现,包括基本的HTML和CSS 以及JavaScript/ajax,现在最新的高级版本是HTML5、CSS3,以及SVG等。JavaScript作为最难的语言之一,许多编程高手也不敢妄自菲薄、自封精通。 关于兼容性的问题我相信对于每个做前端开发的人来讲是一个很头疼的问题,互联网目前主流浏览器有IE6789,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯TT,360等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera 的,这些都是大家常见的。所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,用户用什么浏览器来查看同一网站,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSShack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员必备的技能。

前端的开发工具很多,比较常见的有Dreamweaver,Notepad,webstrom,SublimeText等等,我现在在使用webstorm,强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,检查错误等。调试代码的工具我使用的Firebug。Firebug是网页浏览器Mozillafirefox 下的一款开发类插件,它集HTML查看和、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web 页面内部的细节层面,给Web开发者带来很大的便利。Firebug也是一个除错工具。用户可以利用它除错、、甚至删改任何网站的CSS、HTML、Dom以及Javascript代码。 以上是自己做前端开发的一点心得,它所涵盖的知识面远远不止这些,我也在不断的学习,不断地丰富自己,希望自己能在前端这个职位上开阔自己的一片天地! 前端工作总结篇二:WEB前端开发经验总结 这里跟大家谈谈个人对WEB前端开发的一些经验(当然都是个人的一些理解,有什么地方说的欠妥或不对的地方还请包含和指正),这里我就从WEB标准开始吧。 WEB标准是什么? 说是WEB标准,不过我这里主要是对XHTML1.1和CSS2.1的一些经验总结。因为WEB含盖的内容实在是太多了,“WEB标准”是一系列标准的总称,包括HTML4.0、XHTML1.1、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以这里要跟大家指出来一下,WEB

2019年前端试用期个人总结

前端试用期个人总结 对于刚刚走出大学校门参加工作的人来说,首要任务就是要努力学习、熟练掌握专业知识,踏踏实实地做好本职工作,戒骄戒躁,争取在自我的工作岗位上做出优异的成绩,出国了“前端试用期个人总结”仅供参考!希望能帮助到大家! 时间飞逝,转眼间,做为一名Web前端开发的正式员工已经有两个月之久。在这个难忘而又夸姣的日子里,我深入体会到了公司的积极氛围和各个部门的巨大魅力,目睹了公司一步步走向成熟,看到了公司网络的不断健全和系统不断完善,并日渐不乱,同时,也看到了运维中心给于系统管理职员带下世人向往的学习平台和和无穷的 机遇与挑战,所以,我在此对于过去的工作做下总结。 在运维中心工作期间,我工作认真,具有较强的责任心和进取心,极富工作热情,确实完成上级交付的工作,善于与他人沟通,和公司部门同事之间能够通力合作,关系相处融洽而辑穆,配合各部分负责人成功的完成各项工作,具有很强的团队合作精神。注重自己的个人发展,不断努力学习系统、网站架构知识。所以我现在已经能够纯熟维护公司的系统服务和监控网站架构,包括前段节点,源站各个站点服务的流量信息等,能及时查看并报警所引起的网络服务相关故障,能注重公司的种种流程细节,拥有了一名系统管理维护员的基本工作技能。 九月份,是我成为公司正式员工最幼嫩的时期,一直都处在学习阶段,学习公司网站的架构分布情况,以及在系统中各种常见网络

服务的搭建,包括学习系统基本的操作,pure-ftp的搭建,php网站的发布,对后台数据库的管理,通过各种熟练的基本操作之后,在此之上,我为迎合公司的发展需求,在网络服务监控方面我准备了各种实战经验;在上级的指挥下,我独自一人自主搭建了新版本软件nagios监控服务器,并通过测试,可以和公司现阶段运行的服务器媲美,在此基础上,为了更好方便的管理,我又研究了nagvis,通过实现对监控设备的3d效果使之管理人员能第一时间更清晰的了解网站后台服务器的负载情况。 通过我们部门定期的进行小组的学习,使我对linux自身的学习有了更大的兴趣和憧憬,为此我研究基于各种网站类型的发布,包括对apache,varnish,ligd,等各种平台网站服务器的发布,样使我今后在监控,事件处理方面做好了充分的准备;为此,我特地独立创建我们部门的bbs论坛,并且发布于外网,使部门员工不仅在公司,而且还可以在家里进行访问与交流,以方便我们公司部门员工的共同学习和交流。十月份,我有幸的见证我们公司sns2.5新版本的新上线,同时我也参与了公司内部测试,配合公司对新版本的bug,并及时提出问题。由于公司正处于现阶段发展之中,所以我必须迎合而上,配合其他部门积极工作,争取能为公司的发展出一己之力。 瞻望未来在今后的工作过程中,我会更加严格要求自己,同时也有几个大方向是我需要努力。nagios监控系统拥有极其多的复杂服务,它是我的核心工作,它的完成情况反映着我的工作是否尽职。我会努力做好本职工作。

前端试用期个人总结

前端试用期个人总结 时间飞逝,转眼间,做为一名Web前端开发的正式员工已经有两个月之久。在这个难忘而又夸姣的日子里,我深入体会到了公司的 积极氛围和各个部门的巨大魅力,目睹了公司一步步走向成熟,看 到了公司网络的不断健全和系统不断完善,并日渐不乱,同时,也 看到了运维中心给于系统管理职员带下世人向往的学习平台和和无 穷的机遇与挑战,所以,我在此对于过去的工作做下总结。 在运维中心工作期间,我工作认真,具有较强的责任心和进取心,极富工作热情,确实完成上级交付的工作,善于与他人沟通,和公 司部门同事之间能够通力合作,关系相处融洽而辑穆,配合各部分 负责人成功的完成各项工作,具有很强的团队合作精神。注重自己 的个人发展,不断努力学习系统、网站架构知识。所以我现在已经 能够纯熟维护公司的系统服务和监控网站架构,包括前段节点,源 站各个站点服务的流量信息等,能及时查看并报警所引起的网络服 务相关故障,能注重公司的种种流程细节,拥有了一名系统管理维 护员的基本工作技能。 九月份,是我成为公司正式员工最幼嫩的时期,一直都处在学习阶段,学习公司网站的架构分布情况,以及在系统中各种常见网络 服务的搭建,包括学习系统基本的操作,pure-ftp的搭建,php网站 的发布,对后台数据库的管理,通过各种熟练的基本操作之后,在 此之上,我为迎合公司的发展需求,在网络服务监控方面我准备了 各种实战经验;在上级的指挥下,我独自一人自主搭建了新版本软件nagios监控服务器,并通过测试,可以和公司现阶段运行的服务器 媲美,在此基础上,为了更好方便的管理,我又研究了nagvis,通 过实现对监控设备的3d效果使之管理人员能第一时间更清晰的了解 网站后台服务器的负载情况。 通过我们部门定期的进行小组的学习,使我对linux自身的学习有了更大的兴趣和憧憬,为此我研究基于各种网站类型的发布,包 括对apache,varnish,lighttpd,等各种平台网站服务器的发布,样

web前端转正工作总结

竭诚为您提供优质文档/双击可除web前端转正工作总结 篇一:web前端学习总结(精华版) web总结 一.名词解释 1.横切 在固定页面的宽度(按栅格化进行)并且对高度没有限制的容器称为一个标准横切 2.留白 两个容器或碎片之间的上、下、左、右的空白距离 3.继承 元素可以从其父级元素中获得一些可为自己使用的属性或值。 4.图片定位 把图片元素放置到一个静态的、相对的、绝对的、或固定的位置中,利用css中对图片进行遮罩属性,多用于页面中的修饰图 5.底图

页面中在标签中使用的背景图 6.齐底(图)线 用于区分横切或碎片结束的线或图 7.页面结构 页面的基础框架,由横切、布局元素组成8.焦点区(图) 最易注意的区域 9.导航 在页面中具有导向性的链接集合 10.头图 页面主题图片 11.间距 碎片或文字间的距离 12.行高 文字段落中行与行之间的距离 13.首行缩进 文字段落首行缩进 14.浮动 使被定义的区域脱离正常的页面文档流15.碎片 由文字、图片组合成的内容区域 16.通栏广告

与页面内容区同宽的广告区域 17.功能按钮 具有交互属性的按钮 18.私有样式 当前页面独立使用的样式,不具备公用性 19.水平(垂直)居中 在页面中的某个元素处于父级的上下或左右的相同距离 20.标准头(尾) 定义相同的页面头或尾元素集合 二.文本格式化 1.段落:p 2.斜体:address(联系信息)em(强调)i(突出不同)cite(引用)dfn(首次定义术语) 3.粗体:strong(重要)b(提醒) 4.图片块:figure 5.引述文段,段落缩进:blockquote 6.背景颜色:mark 7.虚线下划线:abbr 8.上标下标:sub/sup 9.下划线:ins 10.删除线:del(标记已删除内容)s(标记不准确内

web前端每月工作总结

web前端每月工作总结 (文章一):web前端学习总结(精华版) Web总结 (一)、名词解释 1. 横切在固定页面的宽度(按栅格化进行)并且对高度没有限制的容器称为一个标准横切 2. 留白两个容器或碎片之间的上、下、左、右的空白距离 3. 继承元素可以从其父级元素中获得一些可为自己使用的属性或值。 4. 图片定位把图片元素放置到一个静态的、相对的、绝对的、或固定的位置中,利用CSS中对图片进行遮罩属性,多用于页面中的修饰图 5. 底图页面中在标签中使用的背景图 6. 齐底(图)线用于区分横切或碎片结束的线或图 7. 页面结构页面的基础框架,由横切、布局元素组成 8. 焦点区(图) 最易注意的区域 9. 导航在页面中具有导向性的链接集合10. 头图页面主题图片1 1. 间距碎片或文字间的距离1 2. 行高文字段落中行与行之间的距离1 3. 首行缩进文字段落首行缩进1 4. 浮动使被定义的区域脱离正常的页面文档流1 5. 碎片由文字、图片组合成的内容区域1

6. 通栏广告与页面内容区同宽的广告区域1 7. 功能按钮具有交互属性的按钮1 8. 私有样式当前页面独立使用的样式,不具备公用性1 9. 水平(垂直)居中在页面中的某个元素处于父级的上下或左右的相同距离20. 标准头(尾) 定义相同的页面头或尾元素集合 (二)、文本格式化 1. 段落:p 2. 斜体:address(联系信息)em(强调)i(突出不同)cite(引用)dfn(首次定义术语) 3. 粗体:strong(重要)b(提醒) 4. 图片块:figure 5. 引述文段,段落缩进:blocke 6. 背景颜色:mark 7. 虚线下划线:abbr 8. 上标下标:sub/sup 9. 下划线:xx 10. 删除线:del(标记已删除内容)s(标记不准确内容)1 1. 等宽字体:code 1 2. 预格式化:pre 1 3. 字号减小,表注释:small 1 4. 时间:time 1 5. 换行:br 1 6. 5定义区块:header nav article section aside footer div span (三)、表单表格 1. t;form method=post action=show.php enctype=multipart/form-data...t;/form

web前端学习总结1

Web总结 一.名词解释 1.横切 在固定页面的宽度(按栅格化进行)并且对高度没有限制的容器称为一个标准横切 2.留白 两个容器或碎片之间的上、下、左、右的空白距离 3.继承 元素可以从其父级元素中获得一些可为自己使用的属性或值。 4.图片定位 把图片元素放置到一个静态的、相对的、绝对的、或固定的位置中,利用CSS中对图片进行遮罩属性,多用于页面中的修饰图 5.底图 页面中在标签中使用的背景图 6.齐底(图)线 用于区分横切或碎片结束的线或图 7.页面结构 页面的基础框架,由横切、布局元素组成 8.焦点区(图) 最易注意的区域 9.导航 在页面中具有导向性的链接集合 10.头图 页面主题图片 11.间距 碎片或文字间的距离 12.行高 文字段落中行与行之间的距离 13.首行缩进 文字段落首行缩进 14.浮动 使被定义的区域脱离正常的页面文档流 15.碎片 由文字、图片组合成的内容区域 16.通栏广告 与页面内容区同宽的广告区域 17.功能按钮 具有交互属性的按钮 18.私有样式 当前页面独立使用的样式,不具备公用性 19.水平(垂直)居中 在页面中的某个元素处于父级的上下或左右的相同距离

20.标准头(尾) 定义相同的页面头或尾元素集合 二.文本格式化 1. 段落:p 2. 斜体:address(联系信息)em(强调)i(突出不同)cite(引用)dfn(首次定义术语) 3. 粗体:strong(重要)b(提醒) 4. 图片块:figure 5. 引述文段,段落缩进:blockquote 6. 背景颜色:mark 7. 虚线下划线:abbr 8. 上标下标:sub/sup 9. 下划线:ins 10. 删除线:del(标记已删除内容)s(标记不准确内容) 11. 等宽字体:code 12. 预格式化:pre 13. 字号减小,表注释:small 14. 时间:time 15. 换行:br 16. html5定义区块:header nav article section aside footer div span 三.表单表格 1.

...
2. 表单元素的组织:
...
...
3. 创建各种框: 注:text→password/url/tel/email Id:为了让对应的标签识别,添加CSS Name:为了让服务器和脚本识别,通常与id设为一样 Size:文本框大小 Maxlength:能输入的最大字符数 Pattern:正则表达式 4. 添加标签: 5. 单(多)选按钮: 注:id各自唯一,name必须相同。checked:默认选择 6. 下拉框: