-
2019年Web前端系统学习路线
今天小编要跟大家分享的文章是关于2019年Web前端的学习路线有哪些?随着互联网的深入发展,前端开发工程师已成为市场上极具竞争力的人才。因此越来越多的人想要学习Web前端技术。那么前端开发到底需要学习些什么呢?Web前端的学习路线是什么?下面我们一起来看一看吧!一、引进前端开发在介绍阶段,您必须首先学习最基本的技能:基于UI设计草案的HTML静态页面生成。这要求您掌握HTML的技巧、CSS页面的布局、样式的风格等。在这个阶段,你需要学习:1,HTML+CSS基础掌握HTML的标签使用、排版、CSS布局、样式美化和浏览器兼容性。2,Java的基础掌握js的基本语法、条件、语句和循环,并学习增强逻辑的常用算法。3,常见的前端工具如Webstrom、Sublimetext3、Dreamweaver等。掌握快速键设置等技术,可以快速提高开发和调试的效率。这个阶段的学习相对比较困难,学习完这些之后,我们就可以完成静态页面的制作了。当然,这只是一个介绍,如果你想使用这些技能,很难找到工作。在学习过程中有什么不懂得可以加我的WEB前端学习交流扣扣qun,前面是133,中间868,后面是702。群里有不错的学习教程与开发工具、项目源码分享,专业的老师解答问题。与你分享web前端企业当下人才需求及怎么从零基础学习好web前端,和学习什么内容。二、前端开发在下一阶段,我们的目标是满足前端发展行业的基本要求,让我们有勇气出去找一份月薪超过8000元的工作。现阶段应注意这两方面的能力:1,使用jQuery、引导等框架开发复杂的交互功能和效果。2,使用HTML5,CSS3,画布上开发移动终端。考虑到第一方面的能力,你需要学习:1,java的基本特效它实现了木马、拖放、放大镜等常见的网络特效。2,jQuery的基础掌握一般的API使用jQuery,并能够熟悉jQuery的插件开发机制。3、引导响应掌握机器响应的机理,在引导过程中使用网格布局和响应布局,开发复杂的页面布局。4、ajax基础充分理解Ajax原理,掌握Ajax原生和jQuery的ajax用法。5、UI流行框架掌握JQueryUI的使用,网页的作用是实现快速有效的。学习这些技能,可以独立创建业务和业务网站,实现普通JS的动态效果,在jQuery的指导下实现酷效和复杂的功能。对于移动端开发的第二个方面,您需要学习:1,Java的新功能,还有HTML5和CSS3在移动端,掌握HTML5和CSS3的使用技巧。2,油画的基础掌握画布的基本绘图API,在应用程序报表和广告中显示画布,实现显示效果。3,移动Web框架它可以由JS在移动终端上基于jQuery移动/Zepto框架。有了这两项主要技能,你就可以满足市场前端工程师的基本要求。根据市场反馈数据,工资一般在八千至一万三千澳元/月之间。三、前端开发步骤我知道你是一个理想的人,不会对主要的前端开发感到满意。下一步,走先进的发展道路,提高自己的能力。工资也会涨一级!但是,如果您是一个新的前端,您可能没有使用或听到在下一篇文章中的一些知识。别担心,你可以先收集文章,然后慢慢理解。那么,在这个阶段,我们应该集中精力掌握以下两个方面的能力:1,我们要考虑代码的优雅性,并注意代码的性能和可重用性。2,深刻理解前端框架实现的原则和开发和重新配置前端的一般终端组件的能力。在这个阶段,您需要学习以下内容:1,关于面向对象开发的思考2,面向对象的Java3,java闭包、范围链、原型链等高级功能4,常用的设计模式5,使用本机Java原理实现框架封装6,jQuery框架封装原理7,实现原理,jQuery插件掌握jQuery插件的实现原理,深入理解插件实现机制的两个扩展。8,基于组件和模块化的发展:SeaJS、RequireJS如果你掌握了这些技能,你就有能力解决复杂的问题和技术问题,并能够独立设计和开发复杂的功能模块。如果你达到了这个水平,祝贺你,你已经满足了前端工业的中间需求。根据市场反馈的数据,平均工资是每月13000-20000元。四、先进的前端开发在下一阶段,我们的目标是进入整个堆栈开发工程师!整个堆栈开发工程师不仅是前端,而且是后端,可以快速解决问题和快速解决问题。根据统计数据的收集,在20k-50k工资开发工程师北京组高达60%,而这样的人才是很短缺的!为了改进一堆开发工程师,我们必须在现阶段做到这一点:1,我们可以从前端的全局角度理解流行框架的原理和实现模式;2,深刻理解移动应用的发展模式和技术选择;3,熟悉全栈Node.js解;4,了解主流背景技术和协作方法,从全局的角度来理解项目的整个生命周期。因此,您需要学习以下内容:1,网站开发所需的各种工作流框架。2,MVC/MVVM框架:AngularJS等掌握前端MVC/MVVM框架的实现机制,了解AngularJS的MVC开发模式的实践,并了解双向数据绑定的相关概念。3,HTML5响应框架4,UI流行框架:JQueryUI、EasyUI、ExtJS等掌握通用的UI框架打包原理,通过对源代码的分析,深入理解基于组件开发的概念。5,离子,角度我们应该掌握移动终端的混合开发模式,结合离子和角的理解整个过程和HTML5和CSS3的JS实现机制。6、对自然的反应掌握移动终端的开发模式。7,HTML5Plus8,所有堆栈Node.js的发展掌握Node.js全栈的解决方案和在服务器端JS高效开发。如果你能掌握上述四个阶段的知识技能,就能满足前端和移动发展行业的先进需求。以上就是小编今天为大家分析的关于2019年web前端的学习路线。
-
前端开发与后端开发有什么区别?
有些人对前端开发和后端开发还存在着疑惑,其实顾名思义,前端开发就是用户看得见摸得着的东西,而后端更多的是与数据库进行交互以及处理相应的业务逻辑。其实主要区别体现在以下两个方面:知识结构与实现和工作职责。知识结构与实现前端开发涉及到的内容包括Html、CSS、Java、Android开发(采用Java或者kotlin)、iOS开发(采用OC或者Swift)、各种小程序开发技术。前端开发用到的技术包括但不限于html5、css3、java、jquery、Bootstrap、Node.js、AngularJs等技术。后端开发以java为例,主要用到的是包括但不限于Struts、spring、springmvc、Hibernate、Http协议、ServletTomcat服务器等技术。通常需要根据业务场景进行不同语言的选择,另外后端开发的重点在于算法设计、数据结构、性能优化等方面,在具体的功能实现部分可以采用Java、Python或者PHP等编程语言来实现。总而言之,前端是需要考虑页面的结构,外观视觉表现以及交互实现;后端需要考虑的则是如何实现功能、数据的存取、平台的稳定性与性能等。工作职责前端工程师主要的工作职责包括:1)传统的Web前端开发2)移动端开发3)大数据呈现端开发Web前端开发主要针对的是PC端开发任务;而Android开发、iOS开发和各种小程序开发主要针对的是移动端开发。后端工程师的主要职责也集中在三大部分,分别是:1)平台设计2)接口设计3)功能实现平台设计主要是搭建后端的支撑服务容器;接口设计主要针对于不同行业进行相应的功能接口设计,通常一个平台有多套接口;功能实现则是完成具体的业务逻辑实现。并且在一般的中小型企业,后端开发基本上都是开源的。其实前端开发跟后端开发是相辅相成的。web前端开发工程师是负责交互设计的,需要和后端开发人员进行交互设计的配合才能完整的呈现一个项目。
-
10大必备的前端开发工具
前端开发占据了web很大一部分,而且也成为了一种职业路径。如果你正在学习或者准备学习前端,那么你需要为学习前端找到合适的工具。网络技术发展迅速,每年都有新的工具出现,这同时也意味着许多旧的工具倒在了新技术的发展之路上。小编整理了十大必备的前端开发工具。都是免费的,希望可以帮助到大家1.GridGuide特性:快速生成栅格首先我要介绍的是Grid.Guide,一款免费的网页应用,能让你在线生成栅格。这个小巧的应用能让你通过自定义间距和列数建立你自己的栅格方案。首先输入你的网站的首选宽度和列数总数,然后GridGuide就会生成一些选项供你选择。你甚至可以将每种栅格方案的下载为PNG图片,用于导入Photoshop或Illustrator。这使你能更加轻松的创建栅格,而不必手动计算或者依赖栅格库。十大必备的前端开发工具2.Foundation特性:一款类似Bootstrap的框架我不得不承认大多数前端开发者更喜欢使用Bootstrap框架。但是在ButZurb的Foundation(http://foundation.zurb.com/)最近全面更新之后,我认为它值得受到大家的关注。Foundation框架跟Bootstrap一样,有为栅格、排版、按钮和其它动态元素的预定义CSS类。但是它的设计更加简单,所以它不像一般的框架一样,更加容易去自定义布局。而且新的Foundation还有一个姐妹框架叫做FoundationforEmail。这是一个专门为电子邮件界面开发而使用的框架。这两种Foundation框架都十分棒而且它们由Zurb的团队进行维护更新。十大必备的前端开发工具3.CodePen特性:实现新创意代码大多数开发者都知道使用cloudIDEs做前端开发十分轻便。通过它你可以在任何电脑上写代码,保存你的项目到云端上且分享。但即使有这么多种选择,我不得不说CodePen是最棒的。它启动迅速,十分可靠,易于启动且当你改动代码时会自动更新。更不用说它还能支持几乎所有你能想到的库。你可以通过预置HTML模板语言例如Haml或Slim,使用LESS或SASS编译代码。而且CodePen允许你添加外部资源,因此你可以使用像cdnjs的网站去载入其他相关的库。无疑地这是最棒的专为写代码和实现新想法的开发工具。虽说也有一些类似的工具,但在我看来没有比CodePen更好的了。十大必备的前端开发工具4.Unheap特性:最新的jQuery插件库去寻找一个在策划列表中的最新JS插件是很困难的。大多数情况下你只能浏览Github上比较热门的插件或在Twitter上查看一些热门项目。但是,有了例如Unheap等这类网站,你可以轻松快速的找到最新的jQuery插件。它们有导航、表单、网页媒体和其他分类等各种类型的插件。它基本上是一个拥有着网络上所有最佳的jQuery插件的存储库,而且它经常更新,所以你总能找到各种新的插件。十大必备的前端开发工具5.LivePage特性:自动刷新浏览器一些浏览器插件是你用于开发的最佳工具。LivePage就是一种免费的谷歌扩展插件,能在你对本地文件做出修改后自动刷新你的页面。这意味着你可以在本地编辑你的HTML/CSS/JS文件,而浏览器会在你每次保件时自动刷新。通常你需要花费一秒钟去刷新,但这样子操作许多次后你将会发现这有多么烦人。LivePage在火狐上也有相同的插件叫做LiveReload。十大必备的前端开发工具6.FullpageScreenCapture特性:捕获全屏我一直使用这个扩展插件而且它是我设计布局时最喜欢用的工具之一。FullpageScreenCapture可以让你截取整个网页并存为PNG图片。你只需简单的点击Chrome扩展面板中的按钮,它就会自动创建整个网页的完整快照,并将其拼接成一幅图像。你可以用它来研究整体设计,这对你设计网站很有帮助。十大必备的前端开发工具7.WhatFont特性:在网络上找到最棒的字体排版对网页设计而言是一个巨大的挑战,而且并不是一件很容易的事。要找到合适的字体是很累人的,但是使用例如WhatFont的扩展插件,可以减轻你在搜索时的痛苦。你只需添加WhatFont到你的谷歌浏览器,每当你看到网页上某一种字体时,点击它并悬停,就会给你所有的包括字体样式、大小等方案,甚至在可服务时给出下载地址(例如TypeKit或Webfonts)。十大必备的前端开发工具8.Node/npm特性:命令行Node很显然改变了web开发的面貌。它将Java传递给后台,并返回给我们npm,一种发展最迅速的包管理器。这几乎是必然的,并且是有着充分的理由。在当前,所有的前端开发者都应该学习命令行,因为现在这是一种在前端工作流中必要的工具。而且npm也是这个过程的一部分,它也完全由命令行管理。你可以使用新的包,或升级旧的包。通过npms你也能了解到你还可以做什么。如果你之前从未尝试过npm,那么我强烈建议你开始涉足这一块,看看它哪里令人惊叹。十大必备的前端开发工具9.MobileSpeedTester特性:手机监测谷歌懂得提供优质的用户体验,他们总是尝试帮助站长们建立更好的网站。谷歌的一个最佳的工具叫MobileSpeedTester,能测试任何网站在电脑和手机上的响应速度。它同时衡量访问速度和用户体验,以此来判定该网站是否对手机友好。它不会生成详细的报告,也不足以成为usabilitytesting的替代品。但这样的一个免费工具能给你好的反馈,让你选择更加正确的方法。十大必备的前端开发工具10.ResponsiveTest特性:测试站点响应速度最后但肯定同样重要的是一个叫ResponsiveTest的网页应用。这是一个发布在GitHub上的开源项目,可以让你测试任何网站的在你的浏览器上的响应是否正常。
-
web前端开发怎么入门?10个零基础web前端开发学习教程
一、2016年,菜鸟该如何学习WEB前端开发?很多人过来咨询如何才能有效地进行前端学习,下面是小编整理的一些WEB前端开发经验,我们将从Web前端的学习误区,Web前端的学习路线,Web前端的学习建议三个部分,来解答诸位WEB前端学习路线的问题。多学习多调整,路自然就平了。更多详情,请浏览http://gonglue.epwk.com/186608.html二、零基础怎么快速学习web前端开发?网站开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。建议可以按如下思路学习系统学习:更多详情,请浏览http://gonglue.epwk.com/205928.html三、选择Web前端开发培训,如何高效率学习随着互联网的迅猛发展和普及,一个新型的行业和新兴的职位正在上升到技术层面:web前端开发工程师,Web前端开发工程师,除了主要职责外,还要为网站上提供的产品和服务实现一流的Web界面,优化代码并保持良好兼容性。那么WEB前端开发培训都需要做什么?该掌握哪些技能呢?更多详情,请浏览http://gonglue.epwk.com/213494.html四、基于nodeJS的前端开发到底啥意思?今天在回来的班车上突然顿悟了‘基于node的前端开发’这句话的奥义!更多详情,请浏览http://gonglue.epwk.com/213497.html五、前端开发设计师必须知道的这8款软件DragDis、Muzli、Invision这几款软件,对于前端及设计师来说,想必不会太陌生。这几款软件在前端及设计师工作的时候极其适用,它们能有效地帮助保存设计师的灵感,画面简约又不失精致,可以有效地提高设计师的工作效率。除了这几款软件以外,还有其他几款软件非常值得前端及设计师使用。接下来编告诉您前端及设计师必须知道的8款实用软件,你有在用吗?更多详情,请浏览http://gonglue.epwk.com/214743.html六、前端开发的领域包括哪些方面?开发工具目前比较流行的是Dreamweaver,其曾经风靡一时,到现在也没有退出历史舞台,证明DW还是有很大优势的,尤其是针对初学者,其强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,但现在更提倡的是纯手写代码,既体现技能方面的卓越,也可有效避免使用DW等工具产生的冗余代码。此外再掌握一些photoshop技能,即使没有美工,也能简单处理一些图像。更多详情,请浏览http://gonglue.epwk.com/214745.html七、常用的web前端开发的词汇我们都知道现在大部分的正版工具都是英文操作,在做web前端开发时,必要的、经常用到的英文单词我们也必须掌握,这样才能在操作时更熟练,提高自己的工作效率。本文主要介绍在基本的web前端开发词汇。更多详情,请浏览http://gonglue.epwk.com/214744.html八、神器|web前端开发调试的神器3件套前端开发者很重要的一个工作就是调试了。线上出问题了,赶紧看看;服务器是别人开发的,想在自己电脑调用测试或正式接口;手机访问开发环境(自己电脑)的页面;此文讲述笔者日常工作中常用的三个工具————Fidller、SwitchHost、Nginx更多详情,请浏览http://gonglue.epwk.com/213498.html九、浅谈web前端开发有部分同学和朋友问到过我相关问题,利用周末我就浅浅地谈谈我对web前端开发的理解和体会,只能浅浅谈谈,高手请自动跳过本篇文章。毕竟我现在经验并不是很足,连工程师都算不上,更不用说大牛了。今天也不谈技术,技术很多人比我掌握得更好,也大同小异,但是每个人的理解体会是不一样的。更多详情,请浏览http://gonglue.epwk.com/213496.html十、零基础参加web前端开发培训后有好就业吗?参加web前端开发培训前途好吗?这是很多想参加培训机构的人关心的话题,毕竟现在培训机构众多,参加培训的人也是前仆后继的,这么多人都去参加培训了,那么出来还好找工作就业吗?更多详情,请浏览http://gonglue.epwk.com/213495.html以上就是本文的全部内容,更多精彩文章,请浏览http://www.epwk.com/special/qdkaifa/
-
前端开发的领域包括哪些方面?
2、开发工具目前比较流行的是Dreamweaver,其曾经风靡一时,到现在也没有退出历史舞台,证明DW还是有很大优势的,尤其是针对初学者,其强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,但现在更提倡的是纯手写代码,既体现技能方面的卓越,也可有效避免使用DW等工具产生的冗余代码。此外再掌握一些photoshop技能,即使没有美工,也能简单处理一些图像。3、hack技术由于不同的浏览器对CSS的解析认识不一样,因此会导致生成的页面效果不一样,这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSShack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员必备的技能。4、浏览器兼容性互联网目前主流浏览器有IE6789,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯TT,360,theWorld等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera的,这些都是大家常见的,如果你身边有老网虫喜欢收藏浏览器,你翻翻他的硬盘,相信几十款肯定是有的。每种内核对代码的解析是不完全一样的,即使同样内核也可能存在很大差异,如IE和遨游版的IE。不说非主流的浏览器,就主流的浏览器要做到完全兼容,也并非易事,需要长时间的积累和测试,需要前端开发工程师对前端开发的热爱和**。把握以上技术,可以说你是一个合格的前端开发人员,可以参与到一个大的项目中,或许自己独立写出一个页面。尽管这看起来和页面制造规划差不多,从作用上来看,都是制造页面的,但实际上,技术上所超出的已经是好几个档次的东西了。前端开发领域包含的内容就是这些了,小编的介绍希望能对您有帮助。
-
常用的web前端开发的词汇
我们都知道现在大部分的正版工具都是英文操作,在做web前端开发时,必要的、经常用到的英文单词我们也必须掌握,这样才能在操作时更熟练,提高自己的工作效率。本文主要介绍在基本的web前端开发词汇。一、web前端开发词汇之页面布局(layout)header头部/页眉;index首页/索引;logo标志;nav/sub_nav导航/子导航;banner横幅广告;main/content主体/内容;container/con容器;wrapper/wrap包裹(类似于container);menu菜单;sub_menu/second_menu子菜单/二级菜单;list列表;section分区/分块(类似于div);article文章;aside侧边栏/广告;footer页脚/底部;title/sub_title标题/副标题;news新闻;hot热点;pro产品(product);company公司;msg/info信息(message)/消息;ads广告(advertisements);icon小图标;img图片(image);copyright版权;contact_us联系我们;friend_link友情链接;tel联系电话(telephone);address地址。二、web前端开发词汇之CSS样式(style)CSS层叠样式表(CascadingStyleSheets);background背景;position位置/定位;relative/absolute/fixed相对定位/绝对定位/固定定位;float浮动;clear清除;vertical-align:middle/top/bottom;垂直居中/上/下;line-height行高;margin外边距;padding内边距;border边框;solid/dashed/dotted实线/线虚线/点虚线;border-radius圆角;shadow阴影;display展示;hidden隐藏;block/inline-block块元素/行内块;overflow溢出;cursor光标;animation动画;csssprites雪碧图/图片精灵;column分列;flex弹性(布局)。三、web前端开发词汇之表单(form)与表格(table)form表单;action行为;method方式/方法;input输入框;label标签;password密码;radio单选框;checkbox复选框;btn按钮(button);submit/reset提交/重置;textarea文本域;select/option选择框/选择项;placeholder占位符(起提示作用);search搜索;icon小图标;autofocus自动聚焦;disabled禁用;checked选中(单选框/复选框);selected默认选择项(下拉选择框);required必填项;readonly只读;table表格;thead/tbody/tfoot表格标题/主体/底部;colspan跨列;rowspan跨行;cellspacing单元格间距(类似于margin);cellpadding单元格边距(类似于padding);border-collapse:collapse;边框合并(用于table上)。
-
前端开发设计师必须知道的这8款软件
DragDis、Muzli、Invision这几款软件,对于前端及设计师来说,想必不会太陌生。这几款软件在前端及设计师工作的时候极其适用,它们能有效地帮助保存设计师的灵感,画面简约又不失精致,可以有效地提高设计师的工作效率。除了这几款软件以外,还有其他几款软件非常值得前端及设计师使用。接下来编告诉您前端及设计师必须知道的8款实用软件,你有在用吗?1、DragDis设计师总是在寻找灵感,而DragDis就是这样一个帮助设计师保存灵感的工具,这是一个chrome插件,非常容易使用。当我们找到好看的图片可以轻松地拖动到云上。原作者每周新建一个文件夹,他介绍这是一个很好地审视自己设计品味成长的方式。DragDis也有一个全页网格视图。用着非常舒心。2、Muzli这是一个Chrome插件,汇集来自Designer新闻,Dribbble,Behance等来源的设计相关内容。设计师都喜欢看那些设计精美的案例,从中汲取灵感,一个合格的设计师必须要了解国外最新和最热门的设计作品,这样你就可以把握设计方向和理念,这样你的设计作品就会与国际接轨,一个好的工具可以帮助你节省大量的时间,Muzli其实就是取代了谷歌浏览器默认的标签,只要你安装了就会成为浏览器的主页(可选设置),这样你每天打开浏览器就会获取到来自于各大设计网站的最新作品。值得一提的是这个插件是有专门的人去负责维护运营的,这就像你有一个个人助理帮你挑选最好的前端和设计相关的文章。3、InvisionInvision是一个原型设计和工作流平台,非常适合前端和设计师之间的协作。设计师可以把做好的设计稿上传到项目中。然后他们将屏幕彼此热连接。蓝色部分是热链接区域。如果点击它们,会带您到下一个屏幕。这是设计师通过流程来引导客户和开发人员的好方法。当与用户进行一些初步的定性测试时,它也很有用。官方说法Airbnb、Evernote、Adobe、Oracle、Yahoo、Zappos等均为InVision的用户,超过35万名设计师在使用InVision的服务。4、WhattheFont字体是设计中相当重要的组成部分,而这个工具就是能帮你找到,当前网站用的什么字体。这是个chrome插件,只需要简单的点击一下即可出现字体的详情。5、Postman前端开发人员工作时,经常需要查询或调用API。Postman是一个方便的工具,可以帮助你向API发出请求。当开发人员需要调试一个网页是否运行正常,并不是简简单单地调试网页的HTML、CSS、脚本等信息是否运行正常,更加重要的是网页能够正确是处理各种HTTP请求,毕竟网页的HTTP请求是网站与用户之间进行交互的非常重要的一种方式,在动态网站中,用户的大部分数据都需要通过HTTP请求来与服务器进行交互。Postman插件就充当着这种交互方式的“桥梁”,它可以把各种模拟用户HTTP请求的数据发送到服务器,以便开发人员能够及时地作出正确的响应,或者是对产品发布之前的错误信息提前处理,进而保证产品上线之后的稳定性和安全性。6、WappalyzerWappalyzer是一个用于识别网站使用的库和框架的工具。它也是一个Chrome插件,是目前为前端开发人员最有用的工具之一。下一次你想知道一个网站使用什么库,来创建一个特定的可视化功能,Wappalyzer帮你搞定。上面工作向的生产力工具介绍完了,下面在介绍两个娱乐向的生产力工具。舒适的工作环境有助于提升效率。7、Boom2BoomforMac,可以有效地提高苹果操作系统的音质,具有各种音效增强工具,比如提高系统的音量,改善语音聊天或者音乐播放的音效等,同时BoomMac还具有加大音频文件音量的功能。比如下载的音乐音量太小,可以使用BoomMac处理后再同步到苹果设备中。8、Noiz.io很多创意工作者喜欢咖啡店的氛围,(有Mac和iOS版本)可以让你的拥有这种氛围,可以调节出咖啡店,雨天,雷电和海浪的感觉。
-
一个web前端开发的自我成长,这是一个关于成长的话题。
今天给大家分享的主题是前端的自我成长,这是一个关于成长的话题。一个web前端开发的自我成长,这是一个关于成长的话题。很多人都有这样的感觉:听了很多技术圈子的分享,有的有深度,有的循循善诱,深入浅出,但是呢,几年下来,到底哪些用上了,哪些对自己真的有帮助了?反而有些模糊。2016年我在不同的场合分享了很多内容:有移动端的性能、有适配、有WebvsNative,也有hybrid,但是其实我一直比较担心,真正有深度的内容,其实面向的是比较小众的群体,比如说Hybrid,其实它在大部分公司里面,是只能用现成的。所以我这一次尝试分享一个我认为可以帮助到所有前端的话题,关于前端的成长,如果说这个分享的内容,听众里面有那么几十个人拿到BAT的offer,或者升职加薪,那么我觉得我就认为我取得了成功。前端其实是个特别苦逼的职业,因为前端技术一直革命的特别快,新技术、新技巧在不断地被发明出来。之前我有一个朋友,他讲说他对自己的认知是了解前端、熟悉前端、精通前端、熟悉前端、不懂前端。为什么呢,他说当他觉得自己对前端所有的东西觉得无所不知,无所不能的时候,忽然看到了一段代码,他完全无法理解,于是整个世界就崩塌了,从此再也不敢说自己会前端。我就跟他说,这里,缺少的是一种正确的方法,你觉得无所不知、无所不能的标准是什么,是工作中很久没遇到解决不了的问题么?他说还真是这样。我就又问他,那你系统学过前端么?他想了想,还真没学过,大学里不开这个课。的确如此,到目前为止,还没有任何一个大学会教前端,倒是有些培训班,会讲网页开发三剑客。我这里讲的内容,希望带给大家的,就是该如何学习前端,实现自身成长。关于成长,首先我得发一个免责声明,不是我对我讲的内容没有信心,而是成长是自己的事,英文有句话,在外企工作的人会经常听到,叫做:Youaretheownerofyourcareer.你是你职业发展的责任人。这句话潜台词是,你(不是你老板,也不是你爸妈,也不是你女朋友)是你职业发展的责任人。这句话我在我职业生涯的起点听说,一直指导我的职业发展,甚至在我带团队,培养团队的时候,也是中心的指导思想,之前我带的团队的同学,他们有不少人也在带团队,其实他们也在实践这句话,所以我这里,也把这句话、把这个道理分享给给大家。我们讲前端成长,我认为,主要在两个方面,一部分是”能力”,一部分是”知识”。我个人的观点,能力占百分之八十,知识占百分之二十。其实我们认为变化快的东西,最新出来的Angular、React、ES2015,其实都在知识里面,知识又分成两部分,一部分我把它叫做标准,它是相对而言比较稳定的,很少会出现一个标准被推翻的事情。另一部分则是技术,像是jQ、React这些框架啦,像是MVC、FLUX这些架构的东西,这些东西是由各个公司主导的,变化就非常快,你看Grunt发展了没多久,Gulp就来挑战他了,然后又有browserify、webpack这些东西。而我认为占重点的能力,则是非常稳定的,我认为能力是三大块:编程能力、架构能力、工程能力。编程能力,就是用代码解决问题的能力,你编程能力越强,就能解决越复杂的问题,细分又有调试、算法、数据结构、OS原理等这些的支撑,你才能解决各种麻烦的问题。架构能力,则是解决代码规模的问题,当一个系统足够复杂,你会写每一块,能解决每一个问题,你能搞定整个系统,这就需要架构能力,架构能力包含了一些意识,比如解耦、接口隔离,也包含认识业务建立抽象模型,也有一些常见的模式,比如经典的MVC,还有设计层面,面向对象、设计模式等等。最后工程能力,则是解决协作的问题,当系统规模更大,光靠一个人,是没办法完成的,如何保证几个高手互相能够配合好?如何保证项目里面水平最差的人不拖后腿?这个工程化建设,往往会跨越多个业务,以汇报关系上的团队为单位来做。包括前后端解耦,模块化,质量保证,代码风格,等等。其实不难看出来,这三项,其实是有顺序的,低等级、小团队,编程能力一项就能应付,越资深的前端,越大的公司和团队,越是需要后面的技能,但是这里我要强调一点,其实资深前端,大团队,对能力的需求,是既要还要——不是说资深的前端,编程能力就可以变差。社区总会有一些声音,对工程能力,对架构能力持有一种抵触的态度,觉得比较虚,觉得不需要。实际上以某些人所在的岗位来说,也没错,毕竟公司、团队的状态确实可能用不到,但是以个人成长的角度来看,就是大错特错。下面我们来具体讲讲,关于知识的学习对知识,我一直有个观点,叫做宁缺毋滥,这个图片上写了一句好前端才分对错,是的,其实很多人,他学习东西的时候就喜欢挑,挑简单的学,书选择最”深入浅出”的,在这种心态下,没有任何一丝学好的可能性,所以我对知识学习的目标,理解为亮点,一曰准确,二曰全面。当年学习一部分知识,如果你能做到这两点,那你将来在业务上做技术决策的时候,你面对面试官技术问题的时候,信心跟你只看过皮毛是完全不一样的。怎么做到这两点呢?我想路子肯定有很多,而我的答案,我这里要分享的,是“建立自己的知识体系”。如何建立自己的知识体系呢?我个人总结的经验,是下面几个步骤:第一步,寻找线索。你要了解一个知识,比如我想学Web平台的API了,当然可以先找一本书,看看别人都写了什么,但是我不喜欢这么干。我大学里,学前端的东西,为了找个id和name的区别,曾经要借十几本书来,对比着看,那个时候,是真的没人告诉我,什么书比较好。所以我对别人总结好的知识,第一反应是质疑,不信。所以我比较推荐,找一些比较准确的,你可以确定它真的足够全面的资料当作线索。对Web平台的API,我就用反射:浏览器里给出来的这个属性列表是不会骗人的,用这个东西作为线索,我就很有信心。同样可能比较适合做的资料,还有一些标准文档的附录,和源代码里的结构定义。第二步,是建立联系。比如说,看下面几个DOM属性:这里,左边一列是操作Node的,右边一列是操作Element的,它就存在一定的对应关系。一般来说,我们找对应关系的方式有以下几个依据:美感完备性操作同一组数据特别提一下,操作同一组数据,正是面向对象的核心概念,对前端而言,有点不一样的是,所有的API,根都是window,所以,其实大部分的API,可以依据面向对象的数据和操作的观点进行划分。第三步,是分类。这里我给出一个实际一些的例子,下图是我对zepto(移动简化版jQuery),的API分类建立联系以后,我们依据知识之间的联系,进行分类,就可以得到一张图谱,在这个图里面,你就可以非常清楚地知道,哪些知识,是非常重要的,哪些,其实是可以互相替代的。而一旦有你之前没见过的东西,你又能通过把它放到图谱里,来快速理解它,或者找出一些很好的替代方案。比如说面试的时候,如果面试官问你bind和unbind怎么用,你还不会,这时候,如果你心里有这张图,你就不至于一脸懵了,你可以说,虽然我不知道bind和unbind,但是我知道live和die啊,我又知道on和off啊。这张图里我们就可以看出,collection里面的东西,多半没什么用,而节点操作里,肯定就都很有用。第四步,是追本溯源。当我对一个知识体系的全貌,有了概念以后,需要确认它的准确性,很多知识,在社区,会有很多的争议,该相信谁呢,这是个问题。而我的答案,就是追本溯源,去找它最初的讨论和定义。有一个真实的案例,就是闭包这个概念,曾经我们很多人的理解都是错的,把闭包和scope的概念给混淆起来,认为闭包是函数的执行环境上下文,但是有一个叫做hax的(很多人应该都认识他,哈哈),他就对此提出了质疑,认为闭包就是函数。于是我就去查证闭包的概念。大家都知道,wiki其实是不准确的,但是其中有一段,基本不会太有问题,就是历史。下图是closure这个词条的历史部分:从这段历史里,我找到了一个名字,PeterJLandin,他是提出者,那么,我就去看看他到底是怎么说的,于是我去google学术搜索,找他的文章果然找到了,于是我们看看原始的文件这个定义,对应到我们今天JS里的闭包,是稍微有点区别的,但是它毫无疑问,是包含了两个部分环境部分和控制(代码)部分,所以其实,闭包就是对应着JS的函数,而之前,普遍的观点是认为闭包只包含环境。所以这个追溯的过程,能够帮我们真正搞清楚对错。除了wiki-google学术搜索的组合,还有一些邮件列表和github提交历史,也是非常适合去查证一些概念和技术的历史的。最后说,我讲的这个建立知识体系的过程,是不断接受新知识,挑战、质疑原有的体系,推翻再重建,每一次循环,你的知识体系都变得更加坚固,更加强大。下面分享的一部分,是关于能力培养。能力培养其实重要性很高,但是其实说起来,内容却很少。只有两点:教材、训练。对知识学习,我是主张建立自己的体系,不要去相信书,但是对能力培养,我的观点就刚好相反,我觉得能力的体系,恰恰是难以自己建立的,需要教材去指导。这是由两者的复杂程度和变化速度决定的。想培养能力,就要找经典的教材来学习,像算法导论,TheC++ProgrammingLanguage这些经典,几十年都没有过时。注意这里我用了教材,而不是书。教材和书最大的区别,就是有没有习题。在我看来,内容再难的书可以一星期读两本,但是教材一定不行,教材一定得花几个月的时间,一边读一边做习题。于是谈到训练。其实有个事实是,工作以后,只有极少数人仍然能够做到训练,比如我自己的编程能力,我自觉工作7、8年,几乎没有过进步。训练应该是系统的(需要教材)、主动的,这两个特点不可或缺,有人会觉得,我真的工作很辛苦,每天都要加班,但是其实,任何被动的痛苦,都没法给人带来进步,你的痛苦倒是可能给老板带来更多收入。如果面临困境,可以选择系统训练来提升自己,但是对大部分人来说,可能更乐于选择一个一个变通的办法:养成习惯,让工作变得更有挑战。这个事情其实有不少理论,比较有名的是NoelTichy提出的心理舒适区、学习区和恐慌区。选择一份对自己来说具有挑战性的工作,正面解决问题。技术圈里流行一个笑话,说的是一个人,工作了三年,却只有一年的经验,因为后面两年都在重复第一年的工作。所以我们要做的事,就是永远不重复劳动,当你觉得现在的工作,越来越舒适,越来越缺少风险的时候,就应该引起警惕了。而虽然训练是个很困难的事情,其实大家也不必过于担忧,虽然到处都是“一万小时训练”的言论,现在各大公司的招聘门槛,在我看来应该都卡在几百小时训练的程度。所以我想说,一万小时太久,只争朝夕。希望看到大家成为更好的前端,做更好的自己。以上是我分享的所有内容。本文节选至简书文章:《前端的自我成长,这是一个关于成长的话题。以及Q&A实录》作者:前端那些事情
-
进阶| 95.99%的前端开发工程师对AMP都有这十个误解
1.AMP是一个新的渲染引擎/编程语言进阶|95.99%的前端开发工程师对AMP都有这十个误解AMP是一套开源的web组件格式和类库。与其它类库或者框架相比,AMP最大的区别在于,它采用了白名单策略,来约定你可以做什么。为什么要限制一些东西的使用呢?这是因为一些看起来很无辜的小代码很容易拖慢网站的性能。而且一段时间后回来排查这些性能问题会是一件非常困难的事情。这就像你在德国的Autobahn快速路上开车,却只在右道行走,不知道最左边的道路才是更快的。AMP就是这样一种技术,强迫你走到最左边的快速道路,并且保证你前方的道路是没有障碍的。AMP带来的并不只有限制,它还提供了很多的自定义标签,这些标签都有各自内置的功能。当你使用这些自定义标签,并遵守一些其它的规则,那么AMP将通过一些手段保证你的网站速度是非常快的。这些手段主要包括强制静态布局、高效率资源加载和一些其它的优化。AMP有一份文档,规定了什么样的标签是兼容的,什么样的标签是不兼容的。它还发布了一个内置的验证工具,可以让你看到当前页面的是否符合AMP文档的要求。需要强调的是,从技术上来说,即使不遵守所有的规定,AMP页面也能运行得很好,只是你的页面无法通过AMP验证(从性能上来说,不遵守AMP规定到一定程度的时候,AMP做的性能改进也会全部失效,另外如果有一些东西是要求与AMP页面协作的,那么你的页面可能无法正常显示)。但同时,这也意味着AMP所强调的一些特性全部没有了。还有更多解释吗?真的没有了。AMP只是一套web组件生态系统而已。但是,因为可以很容易通过编程的方式来确定一个页面是合法的AMP,就可以做更多炫酷的事情了。比如:合法的AMP可以使用免费、高速的缓存(例如GoogleAMPCache)基本可以确认合法的AMP页面速度很快,且对用户友好AMP页面是“自包含”(self-contained)的(译注:指页面是完整、独立的),所以可以被嵌入第三方平台这也允许第三方平台做一些很炫酷的事情:出现在Google搜索的TopStories轮播上从Pinterest上链接到AMP页面在PWA中使用AMP页面2.AMP是Google的项目AMP最早是由出版行业和Google在2015年提出来的(当然,一些促使AMP诞生的体验问题,比如移动端web页面加载慢等,属于明显的行业内共性问题)。从一开始,它就是由出版行业、广告行业、技术提供者和平台提供方一起携手开发的,除了Google以外,参与者还包括Twitter、Linkedin和Pinterest。AMP从提出来的第一天起就是一个通过Github进行开放协作的开源项目。到现在为止,AMP接受了来自超过200名贡献者的PullRequest,这些贡献者绝大部分不是Google的员工。Google确实有一支团队在全职为AMP项目工作,AMP项目的大部分贡献也来自这个团队,但这个团队也是通过和其它人一样的Intenttoimplement流程来工作。Google团队也会将它们的周会纪要以及其它的文档发布出来,尽量保证外部贡献者都可以参与进来。更新:针对这一点,外界有一些疑问和评论。上面这两段话仍然有效,但是我补充一个更精简的结论:AMP项目当前的核心贡献者都是Google员工,所以AMP可以称作是Google领导(Google-led)的项目。但是它是被当作一个独立的开源项目来看待的,我们正在邀请开发者和社区参与进来一起贡献,让他们也变成核心贡献者,使AMP项目更加独立。3.AMP需要Chrome才能运行绝对不是这样!AMP是一个跨平台、跨浏览器的类库,支持所有流行的移动浏览器和桌面浏览器的最新两个版本:4.AMP限制了我的布局和设计你肯定会被AMP能做的事情惊讶到。AMP确实限制了一些标签和对性能影响很大的CSS属性的使用,但是整体来看,在为站点编写样式时,受到的限制非常小。想写一个疯狂的5层flexbox嵌套布局?那就写吧。想基于伪元素写一个疯狂的UI?也OK。下图中可以看到AMP页面被完美的嵌入到另一页面的元素中:5.AMP只适合轻量级页面有几分道理,但也有误导性。这主要取决于你如何理解“轻量”。严格来说,AMP的目标是静态内容。但我们所说的静态内容同样可以包含具有艺术气息的动画、侧边栏、灯箱广告、手风琴导航、轮播等等。你可以查看AMPByExample中的一些高级例子:https://ampbyexample.com/#advanced6.AMP只适用于移动端诚然,AMP(AcceleratedMobilePages)中的“Mobile”无助于澄清这个问题,但是这个说法还是跟事实完全不符。AMP是一个非常强大的跨平台解决方案,它希望出版行业和开发者将工程资源从细碎的多平台兼容支持中解放出来,将焦点放到创建伟大的新产品特性上,而这些产品特性可以被任何设备上的所有用户轻易访问到。AMP本身是在响应式设计的概念支持下被创造出来的。目前有与AMP集成的平台大部分是聚焦移动端的,但是在桌面端,你也可以从AMP中获取得很多好处。想知道如何使用AMP来处理不同分辨率和不同设备的话,可以看我的另一篇文章“AMP中的’mobile’”:https://paulbakaus.com/2016/07/01/about-that-mobile-in-accelerated-mobile-pages/7.我现有的网站上无法使用AMP我们已经澄清过第4点,并没有什么特别的理由让你现在的网站无法使用AMP,因为当你读完第一个问题后,就知道了AMP只是一个web组件类库而已。事实上,AMP项目主页就是完全使用的AMP:当然,和其它类库一样,AMP并不适合每一个人。在动手前想一想在AMP的强制限制(同时也带来好处)下,你的网站是否能正常运行。如果答案是肯定的,那么就切换到AMP吧。有一个基本的原则,如果你的网站没有静态内容,并且页面并不是最深层次的页面(译注:原文leafpages,leaf指树状结构中的叶子节点,对应到网站一般指最深层次的页面,例如文章页),例如入口页,也就是用户从搜索中点进来的页面,那么AMP可能不适合你。8.如果我自己做优化,那AMP就没什么用AMP的优化是“无脑优化”,即使你身边没有web开发大师,它也能帮助你。我们对将网站性能优化到极致这件事情感到自信和骄傲。事实上,因为AMP是一个通用库,它可能会漏掉一些针对你的网站特殊场景下的优化策略,这意味着你自己的手工优化工作很可能会带来更好的性能。但到今天为止,浏览器和一些大的平台例如Google搜索,仍然没有办法来确认你的网站是非常快速且对用户友好的。所以如果你选择自己做优化工作,你可能能得到一个非常快的网站,但是没有办法让其它人确信。而AMP的验证使得它对于第三方平台非常有吸引力。9.AMP只对出版发行行业有好处没错,如果你将你的新闻站点变成AMP,就有机会出现在Google的TopStories轮播上,并且Google会在移动端搜索结果中使用一个内联的查看器来加速AMP页面。但是eBay也创建了AMP页面(示例),尽管它们并不是新闻网站。为什么eBay要选择AMP?它们自己是这么说的:AMP的好处之一在于,它是一套构建移动端web页面的最佳实践的集合。我们之前已经在遵守这些最佳实践中的一部分,但是这些不同的做法分散在各个团队中,而且每个团队都有自己的偏好。AMP的出现让我们可以更好地整理加固这个最佳实践的清单,并将它们作为常规开发周期中的一部分。10.我得在AMP和PWA中做出选择AMP和PWA是互补的技术,它们的使用场景完全不一样。如果将它们结合在一起使用,你就能使用它们创建出我认为目前最完美的内容站点:•用户发现了你的内容的链接,点进来了•内容被瞬间加载完毕,并且看起来很舒服•阅读完之后,用户被邀请阅读更多内容,或者邀请用户使用一个更好体验的版本,它们由快速导航、通知推送、离线支持等技术支持•当用户接受了你的邀请后,他们将被引导到一个可以安装到桌面的版本,这个版本的使用体验就像App一样听起来非常棒对吧?你需要做的只是下面这些(或许有稍许变化):•最深层面的页面(有内容的页面,而不是概览页面)使用AMP发布,以获得瞬间加载的体验•当用户浏览你的内容的时候,在这些AMP页面中使用初始化缓存和PWA应用外壳(PWAappshell)•当用户点击网站上的其它链接的时候(例如,在类似App的体验中,点击底部的按钮),ServiceWorker接管请求,然后加载PWA应用外壳•最后,已经加载好的PWA应用外壳可以将AMP作为数据源嵌入到页面,这将使得你只需要为相同内容创建一个后台(既可以作为单独的AMP浏览,也可以作为PWA的数据源)如果同时谈到AMP和PWA的话,还有更多话题可以说,所以请期待在这个主题上的后续深度文章吧。总结现在你有答案了。针对10个误解,我们给了10个澄清的答案,希望能给你一个对AMP更大更清晰的印象,也让你想清楚AMP对你来说是否适合。
-
神器 | web前端开发调试的神器3件套
本文提供者是腾讯工程师——樊东东。神器|web前端开发调试的神器3件套前端开发者很重要的一个工作就是调试了。线上出问题了,赶紧看看;服务器是别人开发的,想在自己电脑调用测试或正式接口;手机访问开发环境(自己电脑)的页面;此文讲述笔者日常工作中常用的三个工具————Fidller、SwitchHost、NginxFiddler+Willow插件Fiddler是客户端和服务器之间的代理,网上很多文章把它描述为抓包神器。结合Willow插件我们在日常工作中可以用它来将静态文件请求代理到本地文件,手机设置代理访问本地机器的页面。Fiddler的其他功能可自行在网上查找,这里介绍Fiddler结合Willow的使用说明本地资源代理打个比方,线上页面出问题了,本地不好复现,那么可以在本地浏览器打开线上页面,将指定js、css等资源代理到本地资源,修改本地资源刷新浏览器就可以看到修改后的效果。单文件代理单个文件代理,Fiddler本身也有这个功能,但Willow更好用些,Willow还可以代理整个目录。目录代理目录代理经过本人踩坑,这里需要注意的是url最后需要加/,目录后面需要加。手机请求代理移动web开发在谷歌手机调试器上调试好后还需要用真机验证,往往会有各种手机兼容性问题。Fiddler设置如图:代理设置需要注意的是Allowremotecomputerstoconnect选项一定要勾上,不然手机设置代理后连不到网,手机和PC需要在同一个局域网中。在作者公司中台式电脑和无线网不是一个局域网,那么就需要台式机插上无线网卡跟手机连同一个wifi。手机的wifi设置中可以添加代理:手机代理服务器主机名为电脑的ip,端口填Fidller监听的端口,上面图片有标出7777把电脑浏览器的地址复制下,传到手机,就可以在手机浏览器打开本地页面了。在Fiddler的使用过程中经常会代理无效,需要时不时的开启它的代理,如下图标注,无效的时候是白的,点击一下就行。生效作者用Fiddler做本地资源代理,借助另外要讲的两个工具也能完成,但Fiddler经常失效,,所以作者除非调试手机页面,一般不用Fiddler。SwitchHost网上这类工具很多,自行搜索下载。作用是切换域名和ip的绑定关系。打个比方,在本地机器起了个Node服务,监听8080端口,用SwitchHost工具将folger.test.com域名绑定到127.0.0.1(本地机器ip等同localhost)。那么访问folger.test.com:8080等同于访问localhost:8080。Fiddler上也有这个功能,但作者更常用这类切换Host专用的工具配合Nginx做开发调试的工作。NginxNginx是一个高性能的HTTP和反向代理软件作为前端开发者,如果你不能掌控服务器的话,那么最好要学会用Nginx配置代理。接口转发作者以前做JavaWeb开发,自己机器起服务,在浏览器可直接访问本地服务。现在转前端,后台服务往往是其他人负责,自己电脑不一定能搭建起一套开发环境后台服务。那么就需要利用Nginx将接口调用转发到测试、生产环境。总不能每次写完上传到测试环境服务器调试吧。举个例子,后台服务在1.1.1.1服务器端口8080上,有一个接口叫/test。域名是folger.test.com。那么正常情况下调用这个接口是folger.test.com/test那么我们可以切host,将folger.test.com指向本地ip127.0.0.1,启动Nginx,将/test的请求全部转发到1.1.1.1。详细点的nginx可以网上搜索。本地文件代理Nginx还可以将请求代理到本地,很多服务器的静态文件服务就是用的Nginx做反向代理,这也是Nginx的强项。借助Nginx和SwitchHost,域名下静态资源可以代理到本地,接口可以代理到测试、正式环境接口,极大方便了开发阶段的开发调试工作。踩坑作者windows电脑上Nginx的启动命令nginx.exe,直接点击是无效的,需要进入命令行模式启动。为了方便操作,作者在Nginx目录下自己写了两个bat文件,启动和重启Nginx:start.batstartnginx.exerestart.batnginx-sreload作者的Windows下Nginx偶尔出现修改配置文件,怎么重启都没效果,本人对Nginx不算精通,一般都是重启电脑。用的时候双击这两个bat文件就可以完成Nginx的启动、重启。