我不想成为一个完整的全栈开发者

/ JAVA / 0 条评论 / 550浏览

我是Ruby开发人员。我是一个fullstack web dev。我厌倦了成为一个人。我也厌倦了成为商业分析师和手工质量保证。随着时间的推移,行业正在越来越深入地开发出以开发人员为中心的工程流程,开发人员继续在单个颅骨表面下结合越来越多的职责。

很久以前在史前的互联网上 很久以前就有DBA,现在你很难在小隔间的阴影里找到像这样的野兽。Indeed.com 搜索产量7K结果对长期fullstack Web开发人员和40K只是Web开发人员。UX工程师和前端开发人员的独立角色也在基本相同的前提下慢慢融合在一起。越来越多的代理商正在寻找能够同时实现前端和后端的人员,同时参与业务需求开发,编写单元和集成测试,无处不在,无所不能。

削减成本,休息 这一开始似乎是一个好主意,一个人知道并完成从头到尾所需的一切功能,控制整个过程。这对企业来说更容易:您需要与一个人核实并且开发过程不会因为“谁做什么”问题而变得过于复杂,它还会降低成本,从而在质量和开发时间上进行一些权衡。沟通和上下文切换也不会影响人们,因为他们经历了整个过程,而不是从他们的链中的继任者离开的地方捡起它。这似乎是一个很好的增强......如果你不知道你挤进一个人的那些专业人员是如何工作的。

复杂性反击 后端开发是一个复杂的领域,包括对网络层的理解,服务器整体工作的方式,部署,AWS / Google / Azure服务(它们对现代Web应用程序至关重要),服务器应用程序语言和框架的细节,使用的协议,身份验证,数据库连接和设置以及许多其他事情。前端包括扎实的Web标准知识,特定浏览器的怪癖和怪异,ES5,ES6,CSS,HTML,框架,预处理器,转换器,构建工具,UX,UI,从浏览器角度看的网络,浏览器存储,有时甚至是移动设备的细节具有Flutter,Ionic和React Native的应用程序。甚至不要让我开始从事商业分析师和QA角色,因为他们是完全不同的碗或米饭。

每个角色都有自己的学习曲线和掌握的基本技能。你不能只指望一个人阅读一些文章或一本书,编写一个示例应用程序并开始带来好结果。结果总会有些不合标准。如果你雇用一个完整的网络开发人员,你不会同时雇用相当于两个半职专家,你雇用一个正常和一个受损(在最好的情况下,你可能会得到相当于两个一半左右的一半-time devs)。它需要投入和动力,即使在一个领域内保持跟踪并保持相关性和辉煌,将两个或更多个放在一边。时间是有限的。除非你没有个人生活和时间,否则你不可能成功。

更广泛还是更深? 不要误解我的意思,我认为扩大知识领域并利用对周围部分的理解以便在您的部分做得更好是件好事,但让开发人员成为所有行业的杰克直接影响代码质量,选择解决方案和项目的未来发展。我们头脑中的空间是有限的。我们可以用更深入和更好的一个或几个领域的知识来填补它,或者开始在众多领域中咀嚼信息,从而导致对一切事物的肤浅知识。这种知识创造了一种信心泡沫,遗憾的是它不能证明自己的合理性,导致更糟糕的解决方案,重新发明轮子/采用错误的技术/用显微镜敲打指甲。

并非所有削减都同样健康 Fullstack很有趣,因为它似乎几乎是软件工程领域的独特之处。其他领域大多有分工,你不希望牙医治愈你的心脏和神经外科医生来修复你的痔疮。它被用于软件工程的原因似乎是该领域的虚拟和故障安全性质的事实。您的代码质量不会直接影响用户可见的结果,因此您可以在事情崩溃之前足够长时间地处理不完整的解决方案(并且经常在您不在的时候这样做)。此外,这个想法似乎在直观的资金支出水平上有吸引力,雇用具有更广泛技能(无论质量)的人可能看起来像是以相同的成本做更多事情。

我们得到的平庸解决方案是由那些在特定领域没有足够专业知识的人创建的,可以看到更好的方式,其中包含Stackoverflow答案和复制粘贴的粗略知识。我们让那些在改进中保持陈旧的人,不得不跟上太多的主题。我们得到的专业人士并没有创造出令人惊叹的东西,因为他们没有时间挖掘足够的时间来真正为这个领域创造一些价值。由于项目以这种方式开发时不可避免地遇到的问题,我们得到了不合格的产品,这些产品的价格随着开发价格的下降而逐渐消失。从短期经济角度来看,Fullstack可能是值得的,但它对整个行业和我们建立的项目都是有害的。

来源:https://artur-martsinkovskyi.github.io//2019/i-dont-want-to-be-fullstack/