移动端等浏览器上展示给用户浏览的页面,利用完美的动态设计,能够给用户带来极高的用户体验。
前端前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站上面的视觉设计,前端开发则是网站的前台代码实现。
前端开发又最基本的三个核心,这也是必须掌握的三个重要的核心,分别是HTML、CSS、JavaScript这三个,在日常的生活中我们接触到的也很多,掌握了这三个,在前端开发应付也会很轻松。
Web前端和后端要做什么?
前端开发和后端开发是软件开发的重要组成部分。
前端开发主要做的是用户所能看到的前端展示界面。
后端开发主要做的是逻辑功能等模块。
什么是 Web 前端?
Web前端,顾名思义是来做web的前端页面的。这里所说的前端泛指web前端,也就是在web应用中用户可以看得见碰得着的东西。包括web页面的结构、web的外观视觉表现以及web层面的交互实现。web前端分为网页设计师、网页美工、web前端开发工程师。首先网页设计师是对网页的架构、色彩以及网站的整体页面代码,负责网页美工只针对UI这块儿的东西,比如网站是否做的漂亮。如果你想要学好web前端最好加入一个好的学习环境,可以来这个Q群,首先是132,中间是667,最后是127,这样大家学习的话就比较方便,还能够共同交流和分享资料。web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。
什么是 Web 后端?
Web后端更多的是负责产品的服务技术实现,包括业务逻辑,数据存储和处理,消息队列处理等。以及产品服务端接口实现,包括与前端的接口,第三方的接口,服务体系内部接口等。后端开发主要是对数据库进行交互以处理相应的业务逻辑。web后端的话可供开发的语言有 java、php、python、jsp、.NET 这些后端开发语言,并且要掌握几个常用后端框架。
Web前端开发需要掌握的技术:
1.熟练掌握前端开发技术(HTML5、JS、JSON、XHTML、CSS3),了解各项技术的相关标准
2.掌握Ajax异步编程,能够写出高性能、可复用的前端组件;
3.对OO、MVC、MVVM等编程思想、前端框架有深刻理解,熟练掌握一个前端框架(常用前端框架 Vuejs,AngularJS,React,Bootstrap,QUICK UI,移动端有:Frozen UI,weUI ,SUI,MUI,AUI)了解其原理(框架有很多,选择两三个主流的框架,熟练,深度了解才可以);
4.善于Web性能优化,可访问性、对SEO等有良好的体验;理解表现层与数据层分离的概念、 Web语义化(这些也是在找工作中,很有用的加分项);
5.了解前端安全机制,熟悉HTTP协议以及浏览器缓存策略;
6.熟悉常见JS开发框架源码实现,(如:prototype、jQuery、Mootools,Ext, Dojo,underscore、YUI、Kissy),至少熟练一种(当然也不要去选一些用的人很少的框架,要明白大项目都是团队做,不能自己搞一套);
7.拥有良好的代码编写,设计文档撰写的经验,熟练使用Git等版本控制工具;
8.对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案;如IE6/7/8/9、 Firefox、Safari、Chrome;
9.具有较高的审美(这个很重要,多去见识一些模板,高端的项目,就能感觉到有多大的差距)
Web后端开发需要掌握的技术:
1.目前多数企业要求对服务器端高并发,大数据量处理经验(简单的说就是优化服务器处理高并发事务的能力)
2.精通 java,php,jsp,servlet,java bean,JMS,EJB,Jdbc,Flex,python 开发,对相关的工具、类库以及框架非常熟悉,常用后端框架如 SSM(Spring+SpringMVC+MyBatis)框架集,Velocity,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解(至少熟练掌握一套后端框架);
3.至少熟悉一种关系型数据库,如:mysql,oracle等。熟练使用oracle、sqlserver、SQL Develpoer,PLSQL,MySQL Workbench等常用的数据库管理工具,对数据库有较强的设计能力
4.熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑
5.精通面向对象分析和设计技术,包括设计模式、UML建模等
6.熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
7.熟悉部分前端知识
前端工程师的职业发展和就业前景
前端是一个相对比较新的行业,互联网发展早期(1995年~2005年)是没有专业的前端工程师的。随着互联网的发展,大约从2005年开始,正式的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想、设计模式、工具和平台都快速发展,对前端工程师的技能要求也越来越高。前端领域发展很快,各种新技术新思想不断涌现,这是一个好现象。但是前端发展太快也带来一些问题,其实还是那句话,前端工程师首先是软件工程师,基础是最重要的,如果基础不扎实,一切应用技能就都是“浮云”
后端工程师的职业发展和就业前景
后端工程师主要负责数据逻辑存储和复杂逻辑的设计。学习能力对于后端开发来说来说的确是一个比较重要的能力,即使做了5年以上的开发,每年都还是要学习新的技术,因为好多技术都是要更新换代的,不学习就是在退步。后端开发总体来说,只要有了过硬的技术,走到哪都是企业争抢的人才。
身处万物互联网时代,无论从事Web前端还是后端开发,都需要具备与时俱进的开拓者精神,与时代共奋进,实现人生价值。
HTML简单理解,他就是一个网页文件
详细一点:
HTML是用来描述网页的一种语言。
HTML指的是超文本标记语言 (Hyper Text Markup Language)
HTML不是一种编程语言,而是一种标记语言 (markup language),标记语言是一套标记标签 (markup tag)
HTML使用标记标签来描述网页
HTML文档 = 网页
HTML文档描述网页
HTML文档包含 HTML 标签和纯文本
HTML文档也被称为网页
Web浏览器的作用是读取 HTML文档,并以网页的形式显示出它们。浏览器不会显示 HTML标签,而是使用标签来解释页面的内容:
<html><body>
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
</body>
</html>
这个就是一个简单的网页,是HTML做的网页,所以HTML就是网页!
上述代码解释:
<html>与 </html>之间的文本描述网页
<body>与 </body>之间的文本是可见的页面内容
<h1>与 </h1>之间的文本被显示为标题
<p>与 </p>之间的文本被显示为段落
HTML标签是由尖括号包围的关键词,比如 <html>
HTML标签通常是成对出现的,比如 <b>和 </b>
标签对中的第一个标签是开始标签,第二个标签是结束标签,开始和结束标签也被称为开放标签和闭合标签!
HTML是web前端工程师必须要学的
HTML和CSS还有JavaScript都是前端必学的,学完这三个还要学框架,例如:vue.js、jQuery、react、node、es6、mysql、backbone、angular.js等等框架都是做前端工程师需要学习的!
web前端的发展方向及前景
web前端的发展方向就是做网页,不管是电脑看到的网页,还是手机浏览的网页都是前端做的,现在是互联网高速发展的时间,很多企业都在线下转线上,那么他想在线上有一个好的平台就需要前端为他搭建一个平台,2016年前端被称呼为最有发展的程序工程师的行业!
web前端的学习路线:
学好前端不容易,前端一开始需要学HTML和CSS做为基础,掌握了HTML和CSS,会写静态页面后就是继续学JavaScript,有了HTML和CSS为基础,学JavaScript是快速的,当然自学肯定会遇到问题,自己学得自己自学速度慢,效率不高,自控能力不强等等问题,那可以的报班学,系统学习比自学快更加容易快速掌握前端技术,那么这个班在哪里找呢? 我给大伙退键一个学习的新手叩群,号一开始是66壹,然后就是473,最后面的也就是一零八,加起来一起就可以了,前端学习不易,不是真心的就不要来了!前端学完前面的HTML和CSS还有JavaScript,就到前面我刚刚说的前端框架,ue.js、jQuery、react、node、es6、mysql、backbone、angular.js等等框架都是做前端工程师需要学习的!
入门
在我理解下的基础知识,就是我们可以写一些基本的样式,并能对页面的元素进行操作。举例来说,就是我们用Spring和JSP写了一个博客,然后我们可以用jQuery来对页面进行一些简单的操作,并可以调用一些API。因此,我们需要基本的HTML / CSS知识。只是要写好CSS并不是一件简单的事,这需要很多实战经验。随后,我们还需要有JavaScript的经验,要不怎么做前端呢?
同时,我们还需要对DOM有一些基础的了解,才能做一些基本的操作,如修改颜色等等。在这种情况下,最简单的方案就是使用jQuery这样的工具。不过,如果可以自己操作DOM是再好不过的了。
中级篇
中级篇就更有意思了,现在我们就需要对页面进行更复杂的操作。Ajax和JSON这两个技能是必须的,当我们要动态的改变页面的元素时,我们就需要从远程获取最新的数据结果。并且我们也需要提交表单到服务器,RESTful就是必须要学会的技能。未来我们还需要Fetch API,ReactiveX这些技能。
除此我们还需要掌握好HTML的语义化,像DIV / CSS这也会必须会的技能,我们应该还会使用模板引擎和SCSS / SASS。而这个层面来说,我们开始使用Node.js来完成前端的构建等等的一系列动作,这时候必须学会使用命令行这类工具。并且,在这时候我们已经开始构建单页面应用了。
高级篇
JavaScript是一门易上手的语言,也充满了相当多的糟粕的用法。几年前人们使用CoffeeScript编成成JavaScript来编写更好的前端代码,现在人们有了ES6、TypeScript和WebPack来做这些事。尽管现在浏览器支持不完善,但是他们是未来。同样的还有某些CSS3的特性,其对于某些浏览器来说也是不支持的。而这些都是基于语言本来说的,要写好代码,我们还需要掌握面向对象编程、函数式编程、MVC / MVVM / MV*这些概念。作为一合格的工程师,我们还需要把握好安全性(如跨域),做好 授权(如HTTP Basic、JWT等等)。
工程化
这个标题好像是放错了,这部分的内容主要都是自动构建的内容。首先,我们需要有基本的构建工具,无论你是使用gulp、grunt,还是只使用npm,这都不重要。重要的是,你可以自动化的完成构建的工具,编译、静态代码分析(JSLint、CSS Lint、TSLint)、对代码质量进行分析(如Code Climate,可以帮你检测出代码中的Bad Smell)、运行代码中的测试,并生成测试覆盖率的报告等等。这一切都需要你有一个自动构建的工作流。
兼容性
虽然我们离兼容IE6的时代已越来越远了,但是我们仍然有相当多的兼容性工作要做。基本的兼容性测试就是跨浏览器的测试,即Chrome,IE,Firefox,Safari等等。除此还有在不同的操作系统上对同一浏览器的测试,某些情况下可能表现不一致。如不同操作系统的字体大小,可能会导致一些细微的问题。
而随着移动设备的流行,我们还需要考虑下不同Android版本下的浏览器内核的表现不致,有时候还要一下不成器的Windows Phone。除此,还有同一个浏览器的不同版本问题,常见于IE。
前端特定
除了正常的编码之外,前端还有一些比较有意思的东西,如CSS3和JavaScript动画。使用Web字体,可惜这个不太适合汉字使用。还有Icon字体,毕竟这种字体是矢量的。不过Icon字体还有一些问题,如浏览器对其的抗锯齿优化,还有一个痛是你得准备四种不同类型的字体文件。因此,产生了一种东西SVG Sprite,在以前这就是CSS Sprite,只是CSS Sprite不能缩放。最后,我们还需要掌握一些基本的图形和图表框架的使用。
软件工程
这一点上和大部分语言的项目一样,我们需要使用版本管理软件,如git、svn,又或者是一些内部的工具。总之你肯定要有一个,而不是zip这种文件。然后,你还需要一些依赖管理工具,对于那些使用Webpack、Browserify来将代码编写成前端代码的项目来说,npm还是挺好用的。不过就个人来说,对于传统的项目来说我总觉得bower有些难用。我们还需要模块化我们的源码文件,才能使其他人更容易开始项目。
调试
作为一个工程师来说,调试是必备的技能。大部分浏览器都自带有调试工具,他们都不错——如果你使用过的话。在调试的过程中,直接用Console就可以输出值、计算值等等。如果你的项目在构建的过程中有一些问题,你就需要debugger这一行代码了。
在一些调用远程API的项目里,我们还需要一些更复杂的工具,即抓包工具。在调试移动设备时,像Wireshark、Charles这一类的工具,就可以让我们看到是否有一些异常的请求。当然在这个时候,还有一个不错的工具就是像Chrome自带的远程设备调试。对于移动网站来说,还要有Responsive视图。
测试
我遇到的很多前端工程师都是不写测试的,于是我便把它单独地抽了出现。对于一个前端项目来说,正常情况下,我们要有单元测试、功能测试,还有要一些UI测试来验证页面间是否可以跳转。对于依赖于第三方服务的应用来说,还要有一个Mock的服务来方便我们测试。如果是前后端分离的项目,我们还需要有集成测试。
性能与优化
要对Web应用进行性能优化,可能不是一件容易的事,有时候我们还知道哪些地方可以优化。这时候人们就可以使用Yahoo的YSlow,或者我最喜欢的Google PageSpeed来检测页面的一些问题,如有没有开启GZip、有没有压缩、合并、Minify JS代码等等。
我们还应该借助于NetWork这一类的工具,查看页面加载时,一些比较漫的资源文件,并对其进行优化。在一些情况下,我们还需要借助如Chrome的Timline、Profiel等工具来查看可以优化的地方。
设计
前端工程师还需要具备基本的UI技能。多数情况下拿到的只是一张图,如果是一个完整的页面,我们就需要快速分割页面布局。而依赖于不同的页面布局,如响应式、网格、FlexBox布局也会有不同的设计。而有些时候,我们就需要自己规划,制作一个基本的线框图(Wireframe)等等。
SEO
如果以搜索引擎作为流量来源,我们还需要考虑页面的内容,除非你用的是竞争排名。像Sitemap可能就不是我们考虑的内容,而我们还要考虑很多点。首先,我们需要保证页面的内容是对于搜索引擎是可见的,并且对应的页面还要有基本的Title、Description和Keyword。然后在一些关键的字体,如栏目标题等等可以用H2之类的大字的地方就不要放过。同时在页面设计的过程中,我们还需要考虑一些内部链接的建设。
它即可以提供页面的可见度,又可以提高排名。最后,如果你是面向的是Google等支持结构化数据的搜索引擎,你还需要考虑一下MicroData / MicroFormat这一类东西。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)