前端架构

未来的前端工程师

送分小仙女□ 提交于 2019-12-03 04:51:50
本文转载于: 猿2048 网站➪ https://www.mk2048.com/blog/blog.php?id=h1i102hh0j 作者简介:aoto 蚂蚁金服·数据体验技术团队 以下我说的都是个人观点,比较宏观粗浅,主要针对的是前端工程师本身,没有深入技术和业务细节,请谨慎参考。 职能概览 前端工程师首先是个 程序员 ,其次也是个 软件工程师 ,他们工作在离用户最近的地方,负责人机交互和用户体验,虽然叫“前端”,但其实他们的工作边界其实已经很宽了。展望未来,我想前端的工作会继续分化,也会继续融合,分工是工业革命以来社会高效协作的主要推动力,以后很长一段时间应该也会维持这种形态,融合的原始推动力也是提高效率。分化和融合是不断的演化和互吸收转化的,不过核心的东西我想还是不会有太大变化。 观点 继续分化(领域、行业、技术栈) 继续融合(端技术、Web全栈技术、人工智能与端技术) 核心不变(计算机科学本质、软件工程思想与实践、程序员职业素养) 1. 继续分化 领域 前端领域会继续分化,例如阿里内部的前端就已经有中后台、图形、端技术、泛Node、开发者服务5个大方向了,每个大方向也会细分,举一些例子: 中后台:有云控制台、信息&资产管理平台、内部研发&项目管理平台、人工智能&机器学习平台、数据研发分析平台,企业内部信息平台等。具体产品如阿里云控制台、ERP、PAI

【前端笔试题】汇总

核能气质少年 提交于 2019-12-03 04:22:02
前端笔试 从输入网址到显示网页的过程分析 1、 应用层DNS解析域名 :客户端先检查本地是否有对应的IP地址,若找到则返回响应的IP地址。若没找到则请求上级DNS服务器,直至找到或到根节点。 2、 浏览器与服务器建立TCP连接 (默认端口80)(详细点可以说下三次握手的过程) 3、 应用层客户端发送HTTP请求 。 4、 服务器响应请求 :查找客户端请求的资源,并返回响应报文,响应报文中包括一个重要的信息——状态码(200-300,成功;304使用缓存)。 5、 服务器返回相应文件给浏览器 。 6、 Tcp连接释放 (可以说下四次挥手的过程)。 7、 浏览器 对HTML文件进行**解析构建**DOM树 ,构建渲染树 ,js根据DomAPI操作执行绑定事件等,页面显示完成。 TCP TCP协议简介 以太网协议:子网内部点对点通信 IP协议:局域网互通,路由功能 TCP协议:保证数据通信的完整性和可靠性,防止丢包 三次握手(TCP连接建立): 1. C向S发出连接请求 ,进入同步已发送状态,S在监听状态 2. S向C发出确认报文 ,进入同步接受状态 3. C向S发出确认报文 ,进入建立连接状态,S收到也进入建立连接状态 四次挥手(TCP连接释放) 1. C向S发出连接释放报文 ,进入终止等待1状态 2.S接收, S向C发出确认报文 ,进入关闭等待状态 3.C接收,进入终止等待2状态 4

Picasso:开启大前端的未来

匿名 (未验证) 提交于 2019-12-03 00:34:01
“道生一,一生二,二生三,三生万物。” ―― 《道德经》 Picasso是大众点评移动研发团队自研的高性能跨平台动态化框架,经过两年多的孕育和发展,目前在美团多个事业群已经实现了大规模的应用。 Picasso源自我们对大前端实践的重新思考,以简洁高效的架构达成高性能的页面渲染目标。在实践中,甚至可以把Native技术向Picasso技术的迁移当做一种性能优化手段;与此同时,Picasso在跨越小程序端和Web端方面的工作已经取得了突破性进展,有望在四端(Android、iOS、H5、微信小程序)统一大前端实践的基础之上,达成高性能大前端实践,同时配合Picasso布局DSL强表达能力和Picasso代码生成技术,可以进一步提升生产力。 2007年,苹果公司第一代iPhone发布,它的出现“重新定义了手机”,并开启了移动互联网蓬勃发展的序幕。Android、iOS等移动技术,打破了Web应用开发技术即将一统江湖的局面,之后海量的应用如雨后春笋般涌现出来。移动开发技术给用户提供了更好的移动端使用和交互体验,但其“静态”的开发模式却给需要快速迭代的互联网团队带来了沉重的负担。 客户端开发技术与Web端开发技术相比,天生带有“静态”的特性,我们可以从空间和时间两个维度来看。 从空间上看需要集成发布 ,美团App承载业务众多,是跨业务合流,横向涉及开发人员最多的公司

为什么要前后端分离?各有什么优缺点?

匿名 (未验证) 提交于 2019-12-03 00:27:02
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器 :一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器 :一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 以前的JavaWeb项目大多数都是java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。 1、对于后端java工程师: 把精力放在java基础,设计模式,jvm原理,spring

前端---初印象

匿名 (未验证) 提交于 2019-12-03 00:25:02
   前端到底要不要学后台  前端到底要不要学后台,这个问题估计困扰了很多个要入行的小哥,而且各大招聘信息上很多都写着需要了解一到两门后台语言优先。这一点让很多小伙伴很方啊。   那么要不要学了,我的观点的是需要了解,不需要深入学。   为什么这样讲了?首先,从逻辑上来讲。如果你一个做前端的去公司还要做后台的工作,那么不直接招一个更加专业的后台人员了?讲道理,现在市场上的后台技术人员是比前端要多的,就你的那点前端技术刚好可以混个工作,凭啥你可以去抢后台的工作了。所以,各位小伙伴们,不要想当然了,公司招你去是不会要你去做后端的事情的。如果是这个道理,那么写上那些要求干嘛了?这不是在有事没事制造招人障碍,让人知难而退?   有过工作经验的小伙伴应该都知道,除了程序员跟讨厌的产品经理之间的矛盾外,最大的矛盾就是前后台的矛盾了。我之前有过好几个做后台的学员,我问他你为什么要学前端,他告诉我,迫于无奈,前端写的代码实在是太恶心了,太不规范了,每次拿到前端模板要改一半的代码,弄的我现在天天加班。我跟他说,要我的话就直接怼过去了,他说怼不得啊,基本都是妹纸,骂也骂不得,没办法,赶紧来学个前端,不然以后会猝死的。我相信有做后台的小伙伴看到这个故事肯定感同身受吧。所以,为了前后台开发效率更加高,更和谐,W3C和各大公司做了一系列的努力,什么前后端分离,基于MV*的前端架构等等。这也就是为什么

转《浅谈架构之路:前后端分离模式》

匿名 (未验证) 提交于 2019-12-03 00:18:01
原文链接: https://www.cnblogs.com/shanrengo/p/6397734.html 前言:分离模式   对前后端分离研究了一段时间,恰逢公司有一个大项目决定尝试使用前后端分离模式进行,便参与其中。该项目从2016年初立项至今,平平稳稳得度过,但也涌现出越来越多的问题,绝对不是说前后端分离模式不好,而是很多公司在尝试前后端分离的时候没有做好充分得准备。   网上对前后端分离介绍的文章已经屡见不鲜,接下来本人用一点粗浅的言语也谈谈这块,献丑了。 为什么要分离?   如果只问“前后端分离的意义大么?”这是废话,因为从软件架构的角度 Web 的前后端从一开始不就一直是分离的么,而且 browser、server 可能将永远分离下去。   为了了解这个问题,我们有必要先了解一下 Web的研发模式演变,关于这个题材,下面这篇博文说得不错,这边就不做搬运工了。    https://github.com/lifesinger/blog/issues/184   我们不能“为了分离而分离”,而应该“为了真正理解web开发、为了更好完成需求而分离”。 前后端分离的误区?    1、前端人员配备是否充足?   由于所在公司以往项目采用传统开发风格,即以后端MVC为主的开发模式,前端人员仅仅提供静态html页面,其余工作皆由后端开发人员完成。 采用前后端分离模式可以减 后

写给前端的区块链开发入门指南:零基础开发基于以太坊智能合约的 ICO DApp

匿名 (未验证) 提交于 2019-12-03 00:16:01
本文转载于: Գ2048 https://www.mk2048.com/blog/blog.php?id=h22h20jbjb 张泉灵说,时代抛弃我们的时候连声再见都不会说,马云说对于新兴事物,绝大多数人是看不见、看不起、看不懂、来不及。自从学完 Coursera 上的 Crypto Currency 课程,搞懂区块链技术的本质后,对区块链的的所谓信仰变成了强有力的逻辑支撑,不管你看没看见,区块链正在吞噬整个世界!不甘平庸的工程师肯定会问,怎么在区块链技术和行业崛起的时候参与进去获取更大的成长?如果你选择参与,而不是旁观,真诚的邀请你在成为区块链应用研发工程师的路上和我同行。 前端工程师学习区块链应用开发的 WHY、HOW、WHAT 可以用下图来概括,如果你同意我的观点,还犹豫什么?赶紧动手吧! 为什么要选择区块链开发? 未来已来,只是尚未流行!区块链技术的爆炸式发展引起了很多人的注意,相信看到这篇小册的你早就听说过比特币、ICO,甚至购买过区块链资产。 区块链是个天然和钱离得很近的领域,离钱越近就越容易赚到钱 ,尽早开始准备并在区块链领域站稳脚跟的人将能享受到行业崛起的巨大红利,就像四年前的微信公众号,两年前的知识付费,一年前的微信小程序。 然而,从对身边同学的观察来看,前端工程师很容易产生区块链是底层技术、离前端很远的错觉

web前端和后端有哪些区别?哪个更好就业

匿名 (未验证) 提交于 2019-12-03 00:15:02
web前端分为网页设计师、网页美工、web前端开发工程师。 首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责。 网页美工只针对UI这块儿的东西,比如网站是否做的漂亮。 web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。 web前端需要掌握的有脚本技术javascript DIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。 后端的话可供开发的语言有asp、php、jsp、.NET 这些后端开发语言的话搭建环境都不一样,具体如果你想学的话看是想从事前端部分还是后端程序部分。后端开发如果有一定的条件的话可以转为软件开发。不过要有一定的语言基础,类似java语言、C++等。关键是看你的兴趣爱好。 这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是。 在实际的开发过程中,我们当前这样定位前端、后端开发人员。 1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。 2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。 现在来看,对前后端的要求还是蛮低的,尤其是后端,新员工经过实习之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式

前端面试题-http和https区别

匿名 (未验证) 提交于 2019-12-03 00:10:02
https的SSL加密是在传输层实现的。 (1)http和https的基本概念 http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 https协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。 (2)http和https的区别? http传输的数据都是未加密的,也就是明文的,网景公司设置了SSL协议来对http协议传输的数据进行加密处理,简单来说https协议是由http和ssl协议构建的可进行加密传输和身份认证的网络协议,比http协议的安全性更高。 主要的区别如下: Https协议需要ca证书,费用较高。 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为443 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 (3

前后端分离概念入门

匿名 (未验证) 提交于 2019-12-02 23:49:02
前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx+Tomcat的方式(也可以中间加一个NodeJS)有效地对前端和后端的开发进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(各种客户端,比如浏览器、车载终端、安卓、IOS等)打下坚实的基础。前后端分离的核心思想就是前端HTML页面通过AJAX调用后端的RESTFUL API接口,并通过JSON数据进行交互。 前端的开发与后端的开发分离 以前的JavaWeb项目,大多数都是Java程序员又搞前端,又搞后端。而随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分得越来越明确,即前端工程师只管前端的开发,后端工程师只管后端的开发。大中型公司需要专业的人才,小公司需要全才(省钱)。但是对于个人职业发展来说,还是分开比较好,因为当生涯发展到后期的时候,企业往往要的是在某一方面上的专家,而不是熟练工。如果一个人前端后端都会一点,那也可以说什么都不会。 前端追求的是页面的表现、速度的流畅、兼容性和用户的体验等。因此对于前端开发工程师来说,需要把精力放在HTML5、CSS3、JavaScript、jQuery、AngularJS、BootStrap、ReactJS、VueJS、Webpack、Less/Sass、Gulp、NodeJS、Google V8引擎、JS多线程、JS模块化