前端知识体系整理
学习并工作已经有两年的时间了,一直没对自己的知识体系进行过整理。
通过面试就能发现不知道自己会什么,不清楚自己不会什么,所以是时候整理一下自己的知识体系。
我们既然是做前端开发的如果不了解前端是什么就说不不过去了。
注:前端开发最基础的html,css,javascript是必须会的而且一定要达到熟练使用甚至精通。(其实我们应该更加注重基础知识,不能只是完成项目而是做的更好)
这一章我先整理一下前端发展史:
一、什么是前端:
维基百科是这样说的:前端Front-end和后端back-end是描述进程开始和结束的通用词汇。前端作用于采集输入信息,后端进行处理。计算机程序的界面样式,视觉呈现属于前端。
这种说法给人一种很模糊的感觉,但是他说得又很对,前端负责视觉展示。在MVC结构或MVP中,负责视觉显示的部分只有view层,而今天大多数所谓的View层已经超越了View层。前端是一个很神奇的概念,但是而今的前端已经发生了很大的变化。
你引入了Backbone、Angular,你的架构变成了MVP、MVVM。尽管发生了一些架构上的比变化,但是项目的开发并没有因此而变化。这其中涉及到一些职责的问题,如果某一个层级中有太多的职责,那么它是不是加重了一些人的负担?
总结:目前的前端工作包括页面搭建视觉展示,数据交互。
前端:针对浏览器的开发,代码在浏览器运行
后端:针对服务器的开发,代码在服务器运行
二、从静态走向动态
1994年前端历史的起点,这一年10月13日网景推出了第一版Navigator;这一年,Tim Berners-Lee创建了w3c;这一年,Tim发布了css。还是这一年为动态web网页设计的服务端脚本PHP以及笔者本人诞生。
1994年一个叫Rasmus Lerdorf的加拿大人为了维护个人网站而创建了PHP。PHP原意是Personal Home Page,宣传语是Hypertext Preprocessor(超文本处理者)。PHP实现了与数据库的交互以及用于生产动态页面的模板引擎,是web领域中最主流的服务端语言。(PHP是世界最好的语言也不为过)
1995年网景推出了javascript,实现了客户端的计算任务(如表单验证)。
1996年微软推出了iframe标签,实现了异步的局部加载。
1999年w3c发布了第四代HTML标准 ,同年微软推出用于异步数据传输的ActiveX,随着各大浏览器厂商模仿实现了XMLHTTPRequest。这标识着Ajax的诞生,但是Ajax这个词在六年后问世的,特别是在谷歌使用Ajax技术打造了Gmail和谷歌地图后,Ajax获得了巨大的关注。Ajax是web页面迈向web应用的关键技术,它标识着web2.0的到来。
2006年XMLHTTPRequest被w3c正式纳入标准。
2006年John Resig发布了jQuery,
2008年谷歌V8引擎问世,终结了微软的垄断时代,
2009年w3c发布了第五代javascript,前端迎来了改革开放的新时代。
2009年AngularJs诞生,随后被谷歌收购。
2010年backbone.js诞生。
2011年React和Ember诞生。
2014年Vue.js诞生
前后端分离大势所趋:
后端只负责数据,前端负责其余工作,这种分工模式一定更清晰也更高效。随着基础设置的不断完善以及代码封装层级的不断提高,使得前端一个人能够完成的事越来越多,这是技术积累的必然结果。
2014年,第五代HTML标准发布,也就是我们现在说的HTML5。H5是由浏览器厂商主导,与w3c合作制定的一整套web应用规范,至今仍在不断不重新的草案。
三、从前端走向全端
2009年Ryan Dahl发布了node,node是一个基于V8引擎的服务端javascript运行环境,类似于一个虚拟机,也就是说js在服务端语言中有了一席之地。如果说ajax是前端的第一次飞跃,那么node可算作前端的第二次飞跃。它意味着javaScript走出了浏览器的藩篱,迈出了全端化的第一步。
一种流行的组合就是利用Express和Mongo搭建服务端程序(虽然我现在也不了解,既然想发展,就要去了解学习)
web开疆拓土的步伐并不止于此。
2007年第一代iphone发布,2008年第一台安卓手机发布。互联网就进入了移动时代。移动端的发展进程和PC的历史如出一辙,一开始是Native App的天下。但是浏览器试图取代操作系统的篡位之心从未削减。相比于原生应用,web APP有太多好处:无须开发两套系统版本、无须安装、无须手动升级、无须审核········我认为最大的好处以及驱动软件形态转向的主要原因在于降低成本,记得13年的时候韩寒说做一个app大概需要五十万,今天网上比较靠谱的分析评估半年时间从零做出一个稍微像样的App至少100万,而开发Web App花的钱一定少得多。
制约Web App的因素有很多,但我们可以看到Web App一直在不断地修复缺陷、突破局限。你说网页有tab bar,好吧,给你个fullpage API,你说网页不能调取系统功能,好吧Geolocation API、Vibration API、Luminosity API、Orientation API·······你说网页不像APP有图标,IOS早就支持在桌面添加网页链接的快捷图标,还是乔帮主远见;你说网页必须联网,现在离线的方案也有很多啊;你说Web App性能差,性能和Native App的性能不能比,但是目前的Hybrid、nw.js、Electron、react native、weex等都可以看作Web App向Native靠近的尝试。更何况现在还有微信小程序。
阮一峰说:未来只有两种软件工程师
1、端工程师
手机端
PC端
Tv端
VR端
........
2、云工程师
参考:
哔哔肾博客:http://www.cnblogs.com/kidney/p/6079530.html