重庆快乐十分走势图时时彩
知识改变命运 学习成就未来!

北京博雅环球教育科技有限公司|大学生就业创业培训|云计算|大数据|人工智能|java|Python人工智能|H5全栈|安卓开发|青少年人工智能编程|学历提升

010-53652048

全栈开发,你值得拥有

文章来源:博雅环球教育      浏?#26469;?#25968;:次      更新时间:2018-04-24 10:55:13
摘要:这些年来,对于招聘团?#25317;睦习?#20204;,和身为技术从业人员我们自己有两种不同职业规划路线: 前端工程师和后端工程师。但是通常会忘记了其实还是第三个选项:全栈 Full-stack。

这些年来,对于招聘团?#25317;睦习?#20204;,和身为技术从业人员我们自己有两种不同职业规划路线: 前端工程师和后端工程师。但是通常会忘记了其实还是第三个选项:全栈 Full-stack

全栈开发其实已经出现了相当一段时间, 这在过去也许就只称为“开发” (词乏……)

全栈开发,你值得拥有

由于现在越来越复?#25317;?#29992;户交互和终端设备支持,带着复杂逻辑的前端开发已经被单独分离出来,最终成为了两个世界: 前端和后端开发。

全栈开发

让我们来谈一谈全栈开发的概念是什么,看一下挑战全栈开发有哪些挑战,以及是否值得规划这样一条职业路线。

笔者曾经有过一个有意思的Title: Half backend and half frontend engineer, 嗯,那时还没有full-stack这个名字 ... 也经历过招聘和搭建一个正式的全栈工程师的团队,明确地要求Web团队,Mobile App团?#26377;?#35201;愿意同时涉猎前后端,还要编写自动测试!不同的公司文化对全栈开发注入各有特色的理解,要求是不同的。

但是相似之处都是:在必要的时刻,希望团?#25317;?#27599;个人都能够在后段和前端开发角色中来回切换,这取决于具体项目的需要。

1什么是全栈?

全栈不是特定地限于Web开发或者其他任何形式的软件开发。

全栈意味着你在一个系统每一层的开发中都参与其中。 不管现有的子系统间的隔离或分层做的有多出色,你都能从一个更高的位置看清和理解整个蓝图。

这好比今天,你也许在开发一个花哨的下拉菜单。 明天,您可能需要调整一下那个菜单的API接口。 后天,您可能需要进一步到数据库层以改进那些API用到的SQL查询语句,最后也许你还代替传统的测试团队在你刚完成的用例开发几个用于回归测试的自动化测?#36234;?#26412;。

对于这样的工作理念和风格,也有很多反对的看法,有很多人也认为你应该在某一个领域变得非常专家,让你的擅长的技能更多有关联性。

我不太同意这种观点,或者说我觉得大多数技术层都有相关性。

不同的技术层互相之间正在以一种越来越来简单的方式关联到一起,并向前发展,只要我们从?#23454;?#30340;技术开始入手, 全栈开发本身会是一种很好职业成长路线。

2拥有一支全栈开发团队有些怎样的优势?

做为一个全栈工程师,你可以?#29615;?#24456;大力气从一?#23376;?#29992;系统的一头开发工作跳到另一头的开发工作?#26657;?#36825;对做项目计划和新功能的设计带来巨大的?#20040;Γ?因为你懂的多!

全栈开发,你值得拥有

真正的价值在于因为你是全栈,你能从头到尾预先理解整个业务需求,所以可以担当整个业务功能的开发的责任人full ownership。那是正式你?#20064;?#26368;?#19981;叮?quot;全栈你来,这锅你扛最合适了, 我不想听出了问题时那些前后端之间的推卸,我要的就是你当这个债主

全栈开发,你值得拥有

对于?#20064;?#26469;说,拥有一支技能繁多的人才组成的团队,意味着你可以快速的适应变化,当新的市场机遇来临时,可?#38498;?#23481;易的调整团队抓取机会,还降低了成本。

此外这还帮助在团队里产生一些有益的化学成分,团队内的人可以更长时间的一起合作,甚至对于那些从一开始还只是搭建API开发,之后才慢慢进行到移动和web端实?#20540;某?#26102;间项目,同一拨熟悉的同事们可以从头合作到尾,配合度和生产?#35782;己?#36807;其他类型搭配的团队。

3怎样可以有时间去接触熟悉那么多技术栈和系统框架?

这不是一个容易回答的问题,同时要在前端和后段都要保持技术的熟悉度听上去不太可能!让我们把这个问题?#30830;?#19968;下,先关注一下你实际能做些什么。

一个好的全栈工程师,应该从一套好的核心技术栈开始入手,所谓全栈的入门,比如:写一个能读写浏览器cookie的脚本, 然后完成一个访问RESTful API的请求调用, 再学写一下数据库查询语句等?#21462;?#28982;后再这些核心或基础之?#24076;?#24930;慢增加使用一些新的工具和抽象之后的框架,这需要随着时间慢慢增加。

全栈开发,你值得拥有

总是想要保持熟悉那些不断冒出来的时?#20540;?#26368;新技术,并不是一个性价比高的时间分配方案,真正好的能力其实是当需求来临时,能够快速的拾起一门恰当的新技术,然后使用上。

这些快速的学习能力来自对那些"old fashion"核心技术的精通,知道what happens behind the scenes的人不会担?#21738;?#20123;新玩意儿能有多么?#35759;?/p>

4如何分配一半一半的前端和后段开发工作?

应该按?#31449;?#20307;工作和项目需要来分配,而不是五五平均分配,并且可能需要case by case的变化。按照现在流行的敏捷开发方法,需要拥抱变化,也许这一个项目里需要担当90%以上的某一段的开发工作。

当项目进行到另一个时候时,需要帮忙去做另一端的开发,这完全符合敏捷团?#25317;?#38656;要。

5那么"单栈"可以吗,我是不是可以只?#19981;?#20570;其中一端的工作?

这当然是可以的,正像点融网一样,绝大多数公司在经历成长后,有能力维持更有专业方向和技能专长的团队,一些业务通过更专业的技术在深度上提供更好的发展。

个人也是一样,经过长时间后,很多人会慢慢倾向于对一端技术的偏爱,在某个时刻,你会开始真正专注与其中一个技术栈,彻底精通熟悉它的整个生态环?#24120;?#20294;是同时也不是完全把其他技术赶出视野?#27573;В?#36825;好像,你也可以在闲暇时划一下微信,看一看黑帮来自DevOps同学的文章,虽然你可能是一个前端工程师,那?#29615;?#30861;你了解一下你的代码会被DevOps用哪些新名词的流程或工具最终部署在AWS上。

所以这只是个人的选择,也没有?#27809;?#20043;分。

就跟你玩的那些角色游戏一样,一开始选什么角色赤身裸体,没有几颗技能点,?#30475;文?#21040;?#21496;?#39564;值,需要稍微平均点分配给几个技能,等到成长到一定时候了,你可以只多给某个技能加多点,你决定是?#19981;?#21464;的力气巨大无比,还是跑起来飞快。

6不要仅仅是码代码

我们总是倾向与把我们的技术能力归结为不同的编程语言和我们擅长使用的工具。但是更好的理解这些技能的应该是问自己我们在工作中能够承担的责任是什么。

试一下问自己能不能够创建一些基本的用户交互界面,还有配置一下基础框架, 还有尝?#24895;?#19968;下数据分析?能否参与到产品其他开发流程的环节?#26657;?/p>

对于?#20064;?#26469;说,如果能够让团队和用户或者PO离更近一些,你会有机会发现,如果让工程师们参与到业务环节,一旦工程师理解了用户的问题,他们会开始为他们出各种主意。这样可以让团队工程师有更多的责任?#26657;?#21487;?#28304;?#26469;很多超越代码的价值,这是也敏捷开发中所提倡的。

帮助项目组从更高的层次?#21019;?#38656;求,从原先仅仅是寻找一个答案,转变为思考究竟问题是什么,到开始能够定位问题本质,而不是解决表面的技术问题和肤浅的症状,这样更容易?#19994;?#32456;极的方案来满足需求。

写在最后

全栈是为了整个产品的成功,有时候很有必要能走出你熟悉和觉得容易的领域。

当然不是说所有的场景和产品都绝对适合走一条全栈的路线,有很多超级复?#25317;?#20135;品和系?#24120;?#35201;完全理解各个层次是不可能的,也做不好,比如Google的那2亿行的代码量,一定是需要多个不同领域的专长团队来合作。

 

本周精华

重庆快乐十分走势图时时彩 网球比分第一比分网 体彩排列三万能四码 大乐透投注停售时间 天游公司 北京pk10计划怎么看 牛牛抢庄棋牌赢的技巧 小鱼儿3肖六码 新疆时时开奖的结果 pk10官网下载 北京pk10官网视频直播