全栈工程师修炼手册【澳门金莎娱乐场网址】,

2019-09-18 02:52栏目:娱乐资讯
TAG:

问题:我写了个一千行的打飞机游戏在简历里,貌似没用?

花了一周时间读完了这本书,总体来说收获还是不小的,个人认为,这本书最重要的还是作者介绍的全栈思维,是思想意识层面的东西。

作者的很多观点与我自身的价值观是一致的,读完本书,其实知识层面对我的帮助并不是很大,首先作者介绍的比较广泛,总共两百多页的书,知识面谈的宽泛了,必然不会很详尽;其次,作者谈到的这些知识点,其实之前都有过或多或少的接触,并不算特别新鲜了,尤其是在发展变化速度堪比做火箭的前端领域。这本书对我最大的影响,还是通过了解作者的思考方式、做事风格,印证了我之前自己的思考方式,并帮助我将思路整理的更加清晰;

下面还是对该书的每一章节进行下总结;

你常常听说“全栈工程师”这个叫法吧,不过这到底表示什么意思呢,你觉得自己应该成为一名全栈工程师么?下面我们就来探讨一下这个话题。

前面的话

  在拿到交互原型或视觉稿以后,前端工程师要能够灵活应用前端知识技能,完成相应的功能。在实际的企业环境中,不只是有前端工程师,更多的场景和项目是通过团队多人协作完成的。作为前端工程师如何与团队中其他角色进行协作呢?本文将详细介绍前端工程师协作流程

 

回答:我在找程序员的时候啊,前端开发的话,主要看你,能不能去完成相关一些东西?我们现在在招前端的话,基本上要包含的是三段,也就是PC端和移动端,那么在PC端和移动端的过程当中的话,你要能够去完成原型的制作,就说,你在这个过程当中你的原型制作的越多,逻辑清楚,那么在这个时候,录取你的几率会越高。

什么是全栈工程师

对于研发工程师来说,就是在项目开发中所用到的技能,针对不同的项目,所用到的也是不尽相同的,例如移动端,Web端,PC客户端等,所使用的技能栈就会有所区别,移动端又分为原生应用开发(Android && iOS)和基于WebView的Web App,当然还有Hybrid,这些又需要不同的技能栈来提供支持;

我们一般说的全栈,一般也是指在某个开发领域,能够独立完成整个项目的设计,研发,部署,当然,如果您能完全Hold住多个开发领域,能跨多域解决问题,那在大多数公司,已经可以封神了;

例如Web栈,对于之前来说,可能掌握数据库(关系型或NoSQL),服务器(Linux),一或多种服务端编程语言(Java,Python,C ,PHP等),再掌握前端的一系列开发语言(HTML,CSS,JS等),那就可以自己做出一个独立的Web应用了,对于之前来说,我觉得也可以称作全栈了;但对现在来说,个人认为,这些知识还真的不够,全栈工程师应该有对整个项目的整体把控能力,技术架构设计能力,以及如今快速变化的前端工程化能力等;

澳门金莎娱乐场网址 1

Web系统

  在介绍协作流程之前,首先简单地了解Web系统的结构

  从宏观上来说,Web系统是部署在服务器上用于为web客户端提供服务的系统。不同的Web客户端根据不同的需求,发送请求到服务器上部署的Web系统上。Web系统根据需求,返回相应的结果,最后,通过Web客户端展示给用户

澳门金莎娱乐场网址 2

  Web系统在服务器上的组织结构一般为MVC架构,MVC分别代表数据层、视图层和控制层

澳门金莎娱乐场网址 3

  数据层(Model):封装数据管理操作(如数据的CRUD)

  视图层(View):展示数据模型,提供人机交互

  控制层(Controller):处理用户请求,委托数据层进行数据相关操作,并选择合适的视图层返回给用户

  当Web客户端向服务器发起请求时,服务器的Web系统要做如下处理

  1、客户端发送请求,服务器Web系统的控制层接受到请求,并进行解析

  2、控制层请求数据层进行数据的相关操作

  3、数据层根据需求筛选出相关的数据模型,并返回给控制层

  4、控制层将收集的数据模型转交给合适的视图层进行模板整合

  5、视图层将数据模型和模板整合之后生成页面代码,返回给控制层

  6、控制层将结果返回给Web客户端进行展示

澳门金莎娱乐场网址 4

  在Web系统的各个分层结构中,与前端密切相关的是视图层。接下来,从技术栈角度,来介绍视图层的内容

  下面是用于完成视图层需要掌握的知识技能图,每个知识技能都具备了完成视图层某一部分的能力

澳门金莎娱乐场网址 5

photoshop:切图
html css:页面制作
javascript:前端交互逻辑
template:结构与数据分离和整合
java/php/Node:后端业务逻辑

  前端工程师职位出现之前,是一个美工的职位,需要使用photoshop、html和CSS来进行切图和页面制作

澳门金莎娱乐场网址 6

  随着ajax的出现,产品的用户体验有了更高的要求,web系统也变得越来越复杂,这种协作方式的弊端就越来越明显

  首先,从工作方式来看,美工输出的静态页面交给后端之后,转换成模板。这样,一个相同的内容以两种不同的形式存在,并且由两个技能差距较大的角色维护,这样就为复杂系统的后期维护带来了隐患

  其次,为了提升用户的体验,系统的人机交互变得越来越复杂。因此,前端所需的专业化技能也越来越高,这时再由后端来兼做前端的工作显然已经无法满足需求

  最后,Web产品的一个重要特性就是更新非常快。因此,需要分工协作方式快速响应需求的变更。而在这种分工模式下,一个需求必须由视觉和后端共同来完成,很大程序降低了需求的响应速度

  因此,在整个技术环境的推动和项目实际需求的驱动下,前端工程师的职位就出现了。有了前端工程师之后,分工模式发生了变化

澳门金莎娱乐场网址 7

  视觉工程师完成视觉稿,输出视觉稿给前端;后端工程师完成后端的主要业务逻辑,给前端提供数据和接口;剩下的工作都由前端工程师来完成,包括切图、页面制作、前端交互逻辑、模板转换等工作

  在这种模式下,各个角色输出的内容完整,且相互独立,互相之间没有耦合性,各个角色专注的也是自己领域内的技能,产品的各个部分都可以做到极致,也更容易产出高质量的产品

  随着Web技术的进一步发展,如Nodejs的出现,使得javascript脚本也可以运行在服务器上。既然控制层是为视图层服务的,控制层的业务逻辑很大程度也取决于视图层的交互需求。这样,控制层也可以由前端工程师来负责。这样的话,前端也会涉及到部分后端相关的业务逻辑

  这样使前端工程师可以在后期转换成全栈工程师(Fullstack Developer)。当然,这种分工模式还处于探索实践的阶段

 

我们在这个过程当中的话,一个前端他所需要的最简单的一个功能的话,也就是,关于俄网页都不熟,关于这一个cs的运作等等,这些是属于最基本的,那我做一些基本的做完之后的话,也觉得要懂得一些前端的框架,能够比较好的,知道怎么去和后端的功能区完成对接,这是我们所需要去知道的。

Web开发流程

中大型公司,现在一般都是流水线开发流程,例如我所在的公司,目前开发流程基本是这样的:

  1. 产品经理根据需求设计好项目原型,经过产品组内评审之后,一般会找到相关RD与UED,进行需求讲解与分析;
  2. UED团队的用研(用户研究)团队,会去做实际的用户调研,一方面确定需求的准确性,了解一线用户实际的需求点,另一方面,确定较优的交互方式,供交互设计师参考;
  3. 之后,交互设计师,便开始做产品的交互,主要目标是优化用户界面的分布以及用户的操作流程,在我们团队,交互和用研是一个人;
  4. 交互设计师会把设计的交互流程图,包括了界面的线框图,交给视觉设计师,视觉设计师完成视觉稿的交付;
  5. 如果开发周期较紧张,一般在设计师还没交付视觉稿之前,前端工程师和后端工程师都已经对需求有了一个初步的了解,后端工程师已经开始根据产品原型设计数据库表结构,进行项目技术选型,整体服务架构设计了,前端工程师,也根据产品原型,快速确定前端技术选型,主要是前端框架的选定,前端工程目录结构生成,自动化构建task编写(目前我们使用的自动化工具有,git yo gulp bower npm)等,开发,调试,打包,压缩,混淆等都非常方便,除此之外,前端工程师还会根据此次的需求,考虑性能监控,埋点统计,SEO,兼容性等多方面知识;
  6. 目前我们使用的都是前后端分离的方案,所以开发过程中,前后端只需约定好API,便可独立开发,互不影响进度;
  7. 开发完成后,便是前后端联调,交由QA测试,修改bug,交由产品验收,交由UED进行视觉交互验收,通过后,便可部署到生产环境,发布上线;

在项目开发中,一般都使用一些敏捷管理工具,例如我们使用过Jira的看板和scrum,目前在使用Tapd,比较轻量级,能够满足业务快速迭代的需要;

模块化的Web开发流程,流水线式的职业化分和流程管理,提高了项目的可靠性,可用性,以及团队的可管理性;也造成了一些问题,任务分配后,一些工程师就只考虑自己手头上的工作,认为把自己“分内”的事做完,做好,就算完事了,其他人工作出了问题,跟自己没关系,我所在的大团队也确实有这样的人,其实这是对产品整体缺乏责任感的一种表现,没有理解清楚自己最终的目标是什么,我们的目标一定是让自己负责的产品更好,而不仅仅是自己负责的模块,工程师一定要对产品整体有自己的理解和贡献,从全局视角考虑问题,大的目标理解透彻了,任务模块才能做得更优;

在Web与软件开发的世界中有3个基本的关注点:前端、后端与全栈。我们先来看一下他们的含义。

角色定义

  由前面的Web系统得知,完成一个Web系统,至少需要三种角色的相互协作:视觉工程师、前端工程师、后端工程师

  视觉工程师需要精通视觉相关的技术,主要负责交互原型到视觉稿的转化

  前端工程师需要精通Web开发技术,主要负责系统前端交互逻辑

  后端工程师需要精通后端开发技术,主要负责系统后端业务逻辑,为前端提供数据和接口服务的支持

  作为前端工程师需要完成系统前端交互逻辑,需要具备PHOTOSHOP、HTML、CSS、JAVASCRIPT、TEMPLATE、Node等技能

澳门金莎娱乐场网址 8

  如果每个技能都进行深入研究,需要大量的精力和相关的经验。考虑到不同角色的协作效率,前端部分根据其偏重方向的差异再做切分

  前端又可再细分为页面工程师和前端工程师。前者偏重于视觉稿的还原和页面的制作,更注重和视觉工程师的协作;后者则偏重于前端交互逻辑的实现,更多的与后端工程师进行协作

澳门金莎娱乐场网址 9

  页面工程师技能要求如下

精通切图技术 (Photoshop)
精通页面制作 (CSS,HTML)
熟悉前端开发技术 (JavaScript,Template)
了解后端开发技术 (Java,Node...)

  前端工程师技能要求如下

精通页面制作 (CSS,HTML)
精通前端开发技术 (JavaScript,Template)
熟悉切图技术 (Photoshop)
熟悉后端开发技术 (Java,Node...)

【项目开发时间】

  以一个单角色开发一个项目的时间为20天为例,则各个角色时间分工可能如下所示

页面制作:15%(3天)
前端逻辑:35%(7天)
后端逻辑:50%(20天)

  而如果采用多角色开发,页面开始制作时,后端工程师可以开始梳理后端的业务逻辑。当页面有输出时,前端工程师可以开始进行前端的业务逻辑。整个项目大概缩短了50%的开发时间

澳门金莎娱乐场网址 10

  采用多角色开发,大大提高了项目的开发效率。要注意的是,多角色开发会比单人开发增加了沟通成本。这时,就需要按照一定的协作流程来减少沟通成本

 

在这个过程当中的话,其实一般都不会去单纯的去招一个前端工程师,我们一般都是招的是全栈工程师,因为一个前端的工程师,他就懂得互传的功能,那么他才能更好的去完成前端的开发,如果是你都不知道这个功能是怎么实现的,那么你怎么去完成一个前端功能开发,所以说在这个时候你最需要去懂得的是关于,最基本的mc的架构,在这个过程当中的话,你只有懂得这个价格之后,那么在一起涉及到没有的前端的话才能做的比较好。

全栈工程师的发展前景

在此章节中,作者阐述了全栈工程师的能力以及对应的发展,例如,一专多长,首先专精一个方向,在这个方向上有足够的积累,足够的深度之后,以此为突破点,去学习更多的知识,“多长”是在不断解决问题的过程中逐步积累下来的,而不是一蹴而就的过程;工程师最重要的能力是发现问题,解决问题的能力,而不只是醉心技术;

虽然现在公司级产品的复杂度已经远超出一个工程师的能力范围,一般都是通过团队协作来完成,但全栈工程师仍然是公司招聘的首选目标,全栈工程师对整个开发流程都有着深入的理解,相对地,会从全局考虑,选择更合适的技术,更合适的方案来实现自己负责的模块,而且往往让上下游同事配合起来更加轻松,因为上下游的工作,自己了然于心,更清楚知道别人需要什么,团队需要什么。

何为全栈工程师?

协作流程

  按照一定的流程和规范可以明确各个角色和其对应的职责,以及结果输出的时间,这样可以大大减少角色间的沟通成本 

澳门金莎娱乐场网址 11

  Web系统至少需要视觉工程师、前端工程师、后端工程师这三个角色的分工协作。当得到交互原型和视觉稿时,首先,前端工程师和后端工程师进行沟通,确定页面入口规范、同步数据规范和异步接口规范。而与此同时,页面工程师根据视觉稿进行相关的页面制作;接下来,前端工程师和后端工程师并行开发。后端工程师根据同步数据规范实现一些配置、控制层相关的业务逻辑,根据异步接口规范,实现接口服务。前端工程师根据页面入口规范和同步数据规范实现系统架构,当页面工程师有页面输出时,实现模板层的业务逻辑,根据异步接口规范进行具体的一些业务逻辑的实现;当前后端功能开发完成之后,进行联调操作;最后测试并上线

  根据上面的说明,有3个规范的输出,包括页面入口规范、同步数据规范和异步接口规范

  页面入口规范定义系统对外可访问入口和配置信息

  同步数据规范定义系统对模板文件的预填数据信息

  异步接口规范定义前后端异步数据交互的接口信息

【维护流程】

澳门金莎娱乐场网址,  项目除了需要前期的开发之外,还需要后期的维护。在维护的过程中,需要遵循以下流程

澳门金莎娱乐场网址 12

  当得到需求变更后,前、后端工程师都要进行需求分析,如果该需求仅仅需要前端的简单实现,则前端工程师进行需求实现;如果需求涉及到规范上的改动,就需要更新规范,然后遵循协作流程,来完成项目的需求变更

  项目进行稳定期后,大部分需求变更都仅仅需要前端工程师的需求实现。所以,可以快速的响应需求变更

 

所以基于这样一个维度来考虑问题的话,你就应该去做的事情了,就是在县里打造产品的能力,然后来尽可能的多做一些原型,能够再给他上面有相关的展示,在这个时候的话就会做得比较好,同时的话,前端的工资要求的话不要要求的太高,因为当你没有完全产生你的价值的时候,当你摇的要求太高之后的话,就不会给你面试的机会。

如何成为全栈工程师

作者给出了几点建议:

  1. 先精后广,一专多长;建议先将自己工作中用到的技能栈有足够深入的研究之后,再去学习与其相关的知识点,点连成面,才能够解决更大的问题,如果各个点之间是孤立无援的,则时间久了,基本都会忘记了;
  2. 围绕商业目标;技术总是服务于商业目标的,我们对公司的价值,就是直接或间接的为公司赚钱,减少成本或增加收入;对于我们做内部企业级软件,主要先从节约成本的角度考虑,我们做客服系统,如果能够通过优化工作流程,改进产品操作体验,提高产品稳定性,让客服用着更舒心,进而提升客服的工作效率,提升用户的满意度,不仅为公司节省了人力成本,还提升了公司的服务质量,这就是我们不断优化产品的价值;所以,做事情之前,先看清楚目前有哪些问题需要去解决,永远从商业目标的角度去考虑,来决定学习那些知识,而不是纯粹为了锻炼技术而去学习;
  3. 关注用户体验;很多时候,工程师做的事情都是在优化用户体验,针对C端产品,吸引更多的用户,对于B端产品,提升效率;不同产品的用户是不一致的,关注点也不一样,所以一定要特别清楚自己产品的用户是谁,针对用户去做一系列的优化,解决用户的痛点;在该点中,作者提到了作为老板,关注的更多是项目进度和风险,而不是技术细节,沟通时,给出选择题而不是问答题;

前端工程师:

职责说明

  下面总结各个角色的职责和具体任务

【页面工程师职责】

  1、切图、图片优化

  2、规范页面格式、保证页面质量、处理浏览器兼容性问题,以及各个端的页面呈现

  3、页面制作、优化页面效果与结构

  4、具备一定的业务逻辑的相关技能,使其输出的效果和结构更加适合前端工程师做业务逻辑开发

  5、完成简单的前端业务逻辑开发,比如广告页、活动专题页等。针对包含大量的页面制作以及少量的页面特效的这类项目,页面工程师就可以直接完成

【前端工程师职责】

  1、主导制定前、后端分离规范,输出三个核心规范,包括页面入口规范、同步数据规范和异步接口规范

  2、主导前、后端联调对接测试

  3、系统前端设计架构、满足一定的非功能性需求,包括性能、可扩展性等

  4、完成系统前端的业务逻辑实现、优化实现逻辑

【后端工程师职责】

  1、协助定制前后端分离规范

  2、协作前后端联调对接测试

  3、完成后端系统架构及业务逻辑实现

  角色与人的关系?

  角色与人之间不一定需要一一对应,前端工程师和页面工程师可能是同一个人,全栈工程师则有能力包揽一切

 

所以在这个过程当中的话,如果说要让我给你面试的机会的话,那么在这个过程当中的话,首先第一个,不要太要求太高的兴致,你的薪资待遇是跟你自己得所创造的价值相关的,第二个的话是在这个过程当中的话,你要尽可能的去做出更多的有形的产品,能够表现出你能够去做一些相关的事情,同时不能局限在一个前端的开发上面,你需要有更多的后端的这一个研发的功能,能够做成一个全栈工程师,然后把力度放在前端,这样的人的话,我们才会去面试和应聘。

从学生到工程师

该章主要是写给刚毕业的应届生,包括了校招流程,如何更好地获得面试机会,实习机会的把握等;

一个好的开源项目参与者身份,确实可以为应聘者增色不少;

这里对于实习生和新入职同事,有一点可以引入到团队中,每周发邮件记录心得总结,经验教训,以及学习成长;

在打开一个网站时,屏幕上的一切都属于前端。前端工程师负责创建用户界面背后的代码。这些工程师不仅要熟悉HTML、JavaScript与CSS,还要掌握很多框架。这些框架有Foundation、Angular JS、Ember JS、Backbone及Bootstrap等等。前端工程师要与设计师和其他专家协同工作,从而将网站从模型转换为可使用的模式。

最后

  本文是蔡剑飞、郑海波老师的《产品前端架构》课程中《协作流程》章节的学习记录

回答:专家级前端,精通算法数据结构,能进行交互设计,会画原型制作产品,能歌善舞,懂java,c语言,熟悉后台操作,会写sql以及nosql数据库,熟练掌握各种可视化框架,极佳的3d,vr实际经验,最好再会点ai,能做风投。当然最后是最重要的,接受无条件无薪加班,自愿放弃年终奖,愿意共享所有技术,愿意做牛做马。

版权声明:本文由澳门金莎娱乐场网址发布于娱乐资讯,转载请注明出处:全栈工程师修炼手册【澳门金莎娱乐场网址】,