欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > IT风暴 > IT热点 > Web全栈架构师如何做,这几个关键点非常重要

Web全栈架构师如何做,这几个关键点非常重要

2018-08-20 404 收藏 0 赞一个 0 真差劲 0 去评论

现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。

Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。

所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。

特别是对于一些创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。

20f412d5e2a34e02a8097ca1177f9b9c.jpeg

要成为传说中的“全栈工程师”,并顺利进阶BATJ,掌握扎实的技术是必要基础,与此同时,你还需要一些面试的技术,还需要掌握以下5个关键点(非常重要!):

【1】:全栈工程师的职业现状和前景是什么,主流技术有哪些?

【2】:1-3年工作经验,如何顺利跳槽到BATJ等一线大公司?

【3】:BATJ一线互联网公司在面试环节最看重哪几点?

【4】:那些前端大牛们都是如何做好自己职业规划的?

【5】:不同背景的前端工程师应如何提升自己,如何深入全栈开发的核心原理?

全栈web开发者是能够同时承担前端开发和后台开发工作的人。做为一个全栈开发者并不意味着你已经掌握了从事前端开发和后台开发所需的所有技能,只是表明你能够在这两部分工作并且知道开发一个应用该做哪些事。

如果你在2017年成为一个全栈Web开发者并且谋求到你的第一份职业,下面列出的就是你应该学到的参考指南。

1. HTML/CSS语义HTML

能够解释CSS盒模型

CSS预处理器的用处(你不必明白如何深度使用它,你只需要了解它们的用途以及如何帮助开发)

面向不同装置的CSS媒体查询以及写响应CSS

Boot

trap(是一个框架,用于设计和页面上内容的布局,很多在线培训或者学校把重心放在教授Bootstrap上,实际上深入理解CSS的基础知识比特定的Bootstrap特征及方法更重要)

2. Java理解如何使用DOM,了解JSON是什么以及如何使用它。

重要的语言特点,例如功能组成,原型继承,闭包,事件委托,范围,高阶函数。

异步控制流,承诺(promises),和回调。

学习如何正确构造你的代码以及将其模块化,可以借助webpack,browseify,或者类似gulp的构造工具来理解。

知道如何使用至少一种常用框架(很多培训重点培训一种库或者如React或者AngularJS这样的框架,但是在现实中,深刻理解Java语言更重要,而不必将精力过多的放在特定框架的特点上。一旦你充分熟悉了Java,掌握一种框架也不会有问题。)

尽管有人会说jQuery代码用的少而且会逐渐淘汰,但是在大多数应用中仍然在使用它,牢固地掌握它还是有帮助的。

一些测试框架的知识以及为什么这些知识重要(一些人甚至声称这个主题不是必须的)

学习一些重要的新的ES6特点(可选的)

3. 后台语言一旦你感觉已经掌握了HTML/CSS和Java,你会想继续学习后台语言,用于处理数据库操作,用户鉴别和应用逻辑。所有的在线培训和代码训练营通常会专注于某个特定的后台语言,实际上你学哪一种(后台语言)并不重要,只要你明白其如何工作并且你了解所选择语言的细小差别。如果你问别人哪一种后台语言最值得学习,你会收到大量不同的答复,所以在下面我已列出一些常用的组合。一个重要的提示:无论你准备学哪一种,只需坚持学下去,并且尽可能深入-下列所列的语言都有大量的工作机会。

Node.js:这是一个很棒的选择,因为Node.js本身就是Java环境,这意味着你不必学习新的语言。这也是为什么很多在线或者现场培训选择教授Node.js的原因。最流行的也是你最可能学到辅助你进行web开发的框架是Express

Ruby:Ruby中的常用框架有Rails 和 Sinatra。许多培训

都是以Ruby作为第一个教学的后台语言。

Python:在Python中常用的开发框架是 Django 和 Flask。

Java:在全栈式web开发培训中,以Java为学习内容的并不多,但是一些公司确实是使用Java作为他们的后台语言,Java依然是非常受欢迎的语言(见上面的图)

PHP:虽然现在很少教授PHP了,但是正如Javas,PHP依然很受欢迎,并且PHP是web的基石。

4. 数据库与数据存储理解关系型数据的用处,如SQL。

学习NoSQL数据库,如MongoDB。

理解在特定场合哪一种更合适。

了解如何使用你选择的后台语言(如Node.js + MongoDB)连接一个数据库。

理解诸如Redis和memcached等内存数据存储的长处。

web存储保存sessions, cookies和浏览器中缓存的数据。

可伸缩数据库,ACID和ORM(都是可选的)。

5.HTTP和RESTHTTP是一种无状态的互联网应用层协议-它允许客户端与不同的服务器进行通信(例如你的Java代码能够通过HTTP协议,向运行在服务器上的后台代码提交AJAX请求)。

REST是什么,为什么它对于HTTP协议和web应用很重要。

设计REST风格API的最佳实践。POST/GET请求。

学习如何使用Chrome DevTools会非常有用。

SSL证书是什么。

HTTP/2 & SPDY (optional).HTTP2和SPDY(可选的)。

WebSockets, Web Workers, Service WorkersService Workers(都是可选的)

6. Web应用架构当你觉得已经掌握了HTML/CSS,Java后台开发,数据库和HTTP/REST,就到了这个稍难的部分。在这里如果你想创建稍微复杂的web应用,你需要知道如何组织你的代码,如何划分你的文件,哪里存放你的大媒体文件,如何组织数据库中的数据,哪里去执行确定的计算任务(客户端对服务器端),等等。

网上可以找到很多最佳实践,但是真正学习到应用架构的最好方法是你本人参与一个大型应用,这个应用包含多个有效的部分-甚至更好,在一个团队里工作并且一起开发过有一定规模和复杂度的应用。

这就是为什么有些人有7年多的经验,对于CSS或者Java的理解还不如那些只有两年经验的人,但是,在这些年里假定他们参与了所有类型不同应用和网站的开发,并且已经学习了如何架构和设计让应用最有效率(还学习了其他重要的事),在开发中也可以看到重点。下面你可以读到一些内容,有助于你学习如何有效率的架构你的web应用。

学习普通的平台即服务,如Heroku和 AWS。Heroku能使你轻松上传你的代码,以非常少的配置或者服务器维护就可以让应用启动运行,AWS提供大量的产品和服务有助于存储、视频处理、负载均衡等等。

为应用和现代浏览器进行性能优化。

一些观点关于一个web应用架构应该包括哪些

微软设计的web应用。

MVC。

最为重要的是,你努力应该与他人在项目中分工协作,多学习GitHub上流行项目的代码库,并且尽可能多向高水平开发者请教。

7. GitGit是一个版本控制系统,能够协助开发者团队合作,跟踪开发过程中的所有更改,并将这些更改记录在代码库中。了解与Git相关的重点很重要,这样有助于你如何获得丢失的最新代码,代码的更新部分,进行修改,修改别人的代码而不会破坏别人的工作。你确实应该学习Git背后的概念并且自己能玩转它。

 8. 基本算法和数据结构这个主题在开发世界里有点极端,因为在web开发中,有些开发者认为不应该将注意力放在诸如树遍历、排序、算法分析、矩阵操作等计算机科学主题上。然而,很多如谷歌那样的公司,喜欢在面试中问这些类型的问题。一些人谈论的的谷歌前台工程面试。

也就是说,如Ryan McGrath提到那样:我们的前端(FE)工程师,应该像我们所有工程师那样,具有坚实的计算机科学背景。

尽管有一些公司在现实中要求求职者具有计算机科学学位或者同等学力,如果求职者不具备这些技术资格,却能证明他们知道如何开发应用,并且展示其对于整个领域的理解,仍会大量的公司会雇用他们。但是,成为一个合格开发者的一部分,不写低效率的代码或者不使用错误的工具,都是对于基本算法和数据结构的理解,能够分析均衡。所以这有一些你应该学习的内容:

学习各种哈希表并尝试深层次理解它们。这个数据结构构成Java对象的基础(在Python中是字典,Ruby中是哈希数)

理解树和图作为数据结构带来的益处。

理解Big-O分析的基础,以便于你不会编写实际上并不需要的三层嵌套循环。

知道何时使用对象还是数组,并且理解均衡。

学习在处理大规模数据缓存的重要性。也要学习内存数据库与磁盘存储的各自优缺点。

学习队列和堆栈之间的差异。

以上文章由雨中漫步网络转载与编译,如需转载请注明出处!专家介绍说:学习这些所有的内容是项辛苦的工作,但是最终会收获颇丰并且全栈开发本身也很有趣!

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论