点击上方“罗晓胜”,马上关注,您的支持对我帮助很大
/ 今日科技快讯 /
GitHub去年宣布了一项代码存档项目(GitHub Archive Program),他们计划将GitHub上面托管的代码保存到一个很安全的位置,这个“代码保险库”的位置定在北极。昨天他们宣布该项目已经于今年7月8日正式完成,共保存了21TB的数据,GitHub还为所有为北极代码保险库中贡献代码了的用户颁发了一枚勋章,看了下,我也有。。
这是一项异常浪漫的人类计划里
也是身处 2020 年的人类,留给未来历史学家们的礼物。
/ 正文 /
很多人都说学全栈没有必要,是的,如果你去大公司,做一枚螺丝钉,确实不需要全栈,因为你只需要懂你会的那部分就行了,如果你会后台,前端自然有FE或者APP的同学去配合处理,再也不用像以前那样又要写后台功能逻辑,又要写界面布局。
▊ 不过,只专精一门技术真的好吗?
这个问题暂时我不去回答,好或者不好最终可能还是因人而异,关键我们自己到底是怎样看待软件开发这个流程,以及你到底想处在一个什么样的位置。
比方说,我就想每天写写接口,调一调数据,这个还用得着会前端么,这当然用不着,可是我们从一个正常项目立项开始,一般话的项目都是由后端处理提供数据,前端UI界面展示这两个模块,纯后端的不是没有,但是少,哪怕你不对用户开放,那你至少也需要一个后台管理系统去支持你的所有功能。
这个时候问题就很明显了,你把一个完整的项目拆分成多人,自然是可以的,我连我自己后台模块都可以拆成多人开发,前端当然可以拆。
▊ 可是,拆能解决所有问题吗?
后台如果你熟悉,你只要知道最基础的技术架构就可以接手,可是如果你不熟悉前端,那一旦拆出去了,你拿什么接手。
你可能想到找人,可是这一来二去,业务,流程,数据等等沟通起来都是需要成本的,程序员大厂为什么效率低,大部分时间都花在了扯皮,讨论,各种会上面了。你以为上班大部分时间是写代码吗,不,你错了,白天开会,晚上你加班写代码。
再说说这个代码review,熟悉前人代码也是不少程序员开发的噩梦,能找到一个对项目设计每个地方都清楚的人几乎没有(注意是几乎),特别是大型项目,根本就没法改,也不敢改,改的成本都不如重写一个,而且大家也心照不宣,没人会想去主动收拾别人的烂摊子。
▊ 大前端
现在前端日益复杂,大前端模型口号喊得震天响,各种模块化,工程化,可视化发展,再加上node的推送,前端都可以替代后端的部分工作,甚至不要传统后台。
终有一天,所见即所得,什么web,app,flutter,通通靠边站。
看到这里,你还觉得后端真的比前端要厉害吗,只会一个开发就能稳吃这碗饭了吗。
你品,你细品。
我个人认为不能简单的把前端和后端区别对待,这两个方向本身就是一个项目的组成部分,你想掌控项目甚至去主导项目,这个两个方向你都得去熟悉,了解。
或者说直白,在现有软件开发的潮流中,你想要赢得一席之地,这种多能力要求是未来业务所必备的。
知乎上有人拿谷歌来举例子:
Travis Addair, 曾于 2013 年至 2015 年在 Google 担任软件工程师一职。答道
谷歌几乎只招「全栈」工程师。
如果你在谷歌的职位是「软件工程师」,那么我们默认你有能力写出一个将杂乱的数据整理进数据库的 MapReduce 任务、有能力搭建一个读写数据库的服务器,也有能力开发出一套前端界面。
实际上,你在工作的前两周就会接触到上面所有任务,因为这是新员工的必修课程。
Mo Lam, 目前在 Google 工作,答道
是的。
我是我团队里唯一的一名「前端」工程师。这里大部分工程师都是全栈的,我只是更聚焦于前端的全栈工程师而已。
这里确实有人只写 JavaScript,但是这样的人在谷歌占的比例很小很小。
不过呢,确实有一些团队在招聘前端工程师。整个行业都非常需要优秀的前端,但是优秀的前端真的很少。
话虽如此,只要你是一名优秀的工程师,不管你是全栈、前端还是后端我们都需要。语言和框架学起来一点也不难,如果你技术过硬,写代码会是你工作中最容易的一部分。
P.S: 如果你对后端没有整体的了解,你不可能成为一个优秀的前端。
这就跟我们会了数据库,还要会缓存,缓存会了还有文件存储,NoSql等等,然后还有大数据在前面等着各位。
还有,更别忘了,还有AI这个即将颠覆行业的要命的东西正在高速发展,所以,固步自封,那就必然被时代抛弃。
▊ 专精 or 多能
我认为并不对立,关键是你怎么看他。
如果你想成为一名技术大牛,那你肯定需要一门拿手绝活,当然也要触类旁通,知道软件开发中的每个犄角旮旯。
作为一名合格的程序员,不断的学习那是本职要求,所有不要纠结专精或多能了,技术迭代的速度远超我们当下所掌握的这些,每天多学一点,今天比昨天要好,争取每一天的进步。
我在这里跟大家分享两个思维模型
-
能力圈模型要求我们专注
-
多元思维模型要求我们发散
这两者看似冲突,而真正的高手就是能把这些特质合二为一
/ 总结 /
本文主要讲了我对全栈开发的一些看法,二者并不对立,对初学者和软件从业者给予我自己的一些看法。
欢迎关注我的公众号
学习技术或投稿
长按上图,识别图中二维码即可关注