‘DevOps’是如何伤害一个开发者的OSCHINA

最近有两个趋势我真的很讨厌:DevOps及“全栈”开发者的概念。随着DevOps运动越来越受欢迎我越发讨厌x86架构和单内核。但确实如此:我受不了。是什么引发我的痛苦呢?这是原因:不是每一个公司都刚起步,那怎么还要每个公司都必须表现得像它们的经历一样。

“DevOps”用来表示密切地协作,将之前纯粹的开发者、纯粹的操作者以及纯粹的QA的角色内容进行穿插。因为软件需要以不断加快的速度释放出来,老的开发-测试-发布的“瀑布”型周期被打破了。开发者还必须为测试及发布环境的质量责任。

“开发者”(这个词是否适当有待商榷)越来越广的责任范围导致了对联合体求职者的需求:“全栈”开发者。这样的开发者能够做开发工作,是QA团队的成员,能够进行业务分析,做系统管理员和DBA。在你指责我夸张前回头再看下这个列表。列表中有你不希望“全栈”开发者精通的吗?

这些概念是从哪来的呢?初创公司,对(以及敏捷方法)。初创公司初起时奇形怪状,需要以一种艰苦的方式撑过最初的几年。对此我不否认。但不幸的是,初创公司的工程师承担了多种技术角色,被迫在缺乏一系列最基本能力的情况下承担“开发者”的角色。

想象你在一家初创公司,开发团队共有7人。你已经开发了一年某个web应用,现在看起来像模像样,一切顺利,但是在保持正常运转这方面却往往是令人抓狂的混乱。如果有一个特别麻烦的问题,需要深度研究数据库,你可没有权力说“这不是我的专长”,然后交给DBA团队处理。条件所限,你不得不承担起DBA的工作,自己解决这个问题。

现在把这个情景扩展到之前列出的所有职位吧。一个初创公司的开发者可能同时担任开发,QA,部署/操作分析员,系统管理员,还有DBA。初创公司天然如此,而有些人会特别适合这种环境。然而,不知从什么时候起,我们开始自欺欺人说自己适合;因为在任何时候,一个初创公司的开发者不得不身兼多职,他/她还必须一下子担任所有这些角色。

好的开发者都是聪明人。我知道我这么说肯定会被拍,但一个组织里的技术人员还是有一个重要程度的层次区别的。最顶层是开发,接下来是系统管理员和DBA。QA团队,“操作员”之类,发布管理员等等角色处于阶级的最底层。为什么是这么个顺序呢?

因为每个角色有能力做比它低的层次的所有工作。

初创公司教会我们这个道理。如果需要,好的开发者也能当合格的DBA。他们也能当不错的测试,“部署工程师”,或者其他什么形形色色的职位。他们的工作需要他们对更低层工作的领域也了如指掌。但这其中有一个问题,希望说到这里你也能看出来:

反过来却行不通。

QA无法凑合当开发用,构建(build)工程师也做不了DBA的工作。他们不具备担任这些角色所必须的专业知识。这也没关系。无论你喜欢与否,每个组织里都有这种阶级层次,而成员的能力层次、技术水平也有所不同。尽管如此,你让开发去做其他工作,没有人能来替他做开发的工作!

但是其他人做不了他的工作,即使全加起来也不行。

如果诊所要这么运转,牵涉到的所有人都会受到损害,(当然)除了雇员们。这场本意是希望提高软件质量的实验演变成了一场闹剧,最有才华的员工疲惫不堪(并且有价值的工作产出远远减少),而低层次的职位根本不存在。

如果你是一个有点规模的软件的开发者,你会需要一个能用的部署系统。考考你,马上说出以下系统各自的好处和坏处:Puppet,Chef,Salt,Ansible,Vagrant,Docker。现在实现你的部署解决方案吧!你恐怕都没有注意到,上面列出那些系统里有一项是完全无关的吧?

专业化是有原因的:人类能运用的知识有限。在任务之间切换,无疑是代价昂贵的。强迫开发者去承担其他专业人员的角色,意味着他们将:

并非每个公司都是初创公司。出于选择,初创公司没有让开发人员参与多种职能,他们这样做是因为必要。你的公司很可能在你没有创造出一些资源之前有着极大的制约。请不要混淆“精简”与“以最少雇员运营”的区别。看在上帝的面上,让开发人员写代码吧!

全栈工程师就是跳槽时拿不出有力的简历去说服下一家公司给你期望的薪水。每个公司都希望自己的员工是超人是全栈工程师,每个公司在招聘新员工时又极力排斥全栈工程师,认为他们不精通。悲哀啊~

DevOps!=FullStackDeveloper,DevOPS不是让你去做运维,DBA的工作,作者根本不清楚什么是devops

同意

初创公司的技术合伙人可以去作全栈开发者,但不能因此要求后继的员工也一样。而问题是妄想以低廉薪酬找一些全栈开发者并且不给一点股权的弱智BOSS也不少。要解决很多问题,首先应从清扫不合格的公司开始做起。而这又牵涉到政府是否负责和有能力。

同感

我是个运维人员,路线也是devops,从我的角度上,作者并未完全了解devops的作用和应用场景,的确有时候强调开发人员兼顾其他的确伤害了他们,但是devops更多的是为了应对出现越来越复杂的运维工作场景,更多的责任也是再更规范化,自动化以及模块化的处理好运维的工作,释放传统运维工作重复的劳动去专注更应该专注和有价值的问题,而不是让一个人做两个职责范围的事情,devops可以说是特定性比较强

storyboard

如果你是一个有点规模的软件的开发者,你会需要一个能用的部署系统。考考你,马上说出以下系统各自的好处和坏处:Puppet,Chef,Salt,Ansible,Vagrant,Docker。现在实现你的部署解决方案吧!你恐怕都没有注意到,上面列出那些系统里有一项是完全无关的吧?=====================================================这一段是什么意思?到底哪一项完全无关?

应该是Vagrant吧,不能用个系统镜像去部署吧。

我觉得不是,说批量部署的话这几个都能做到。vagrant可以将需要的环境制作好,部署的时候只需要分发启动就可以了,批量部署开发和测试环境都没问题。

THE END
1.全栈程序员网址全栈开发者官网这个资源集合为全栈开发者提供了丰富的前端、后端、工具和学习平台链接,包括前端框架Bootstrap、Vue、Vant,后端的Maven、Spring,以及交流平台GitHub和算法学习网站。此外,还涵盖了npm包管理、邮件服务、AI接口等实用工具。 摘要由CSDN通过智能技术生成 全栈程序员常用网址 https://blog.csdn.net/weixin_45952706/article/details/115771964
2.全栈开发者的成长之路:从基础到精通简介:【7月更文挑战第25天】全栈开发者的成长之路是一条既充满挑战又充满机遇的旅程。通过广泛积累基础知识、精进专业技能和积累实战经验,你可以逐步成长为一名优秀的全栈开发者。在这个过程中,保持对新技术的好奇心和学习热情是至关重要的。同时,也要注重团队合作和沟通能力的培养,因为在软件开发领域,一个人的力量https://developer.aliyun.com/article/1571744
3.什么是全栈开发者沙耶纯粹基于道德而掌握开发堆栈的每一方面的预期是合理的吗?可能不是,但Facebook这样要求。一个Facebook的员工在OSCON告诉我,Facebook只雇佣全栈开发者。那么全栈开发者是什么意思呢? 对我来说全栈开发者是对每一层都熟悉的人,如果不真正对所有的软件技术感兴趣不会对它们精通。 https://www.cnblogs.com/ShaYeBlog/p/4566680.html
4.全栈开发者Get started building your docs site with Starlight.https://www.full-stack-developer.cn/
5.李游(全栈开发工程师Adobe官方认证平面设计师国际认证项目管理专2022年1月,获得了华为开发者学堂官方认证讲师称号。2022年1月,获得了51CTO学堂|企业版 · 特聘讲师 官方认证称号。2022年4月,课程获得了国家工信部课程认证(Web全栈开发工程师),学习毕业后可以直接获得工信部技术认证证书。2022年10月,李游老师自研课程《精品|前端工程师就业方向班》课程荣登《网易云课堂》首页https://baike.baidu.com/item/%E6%9D%8E%E6%B8%B8/23687345
6.PHP实现全栈开发:DevOps实践与方法论php教程全栈开发是指开发人员能够开发从前端到后端甚至是服务器架构的各个层面的技能。这种开发方式通常需要掌握多种技术,包括但不限于HTML、CSS、JavaScript、服务器配置、数据库管理、以及后端编程语言等。相对于专注于某个领域进行开发的专家,全栈开发者需要具备更广泛的技能和知识。 https://m.php.cn/faq/561946.html
7.成为全栈开发人员最需要的技能谁是全栈开发者 让我们将开发分为两部分 – 前端和后端开发。为什么会这样?因为任何应用程序或Web开发都有这两个主要单元来处理任何项目。 前端开发人员在任何项目的线框、界面和可视部分上工作。(通常,他们负责“用户在与应用程序或Web交互时必须查看前屏幕的内容和方式”),这就是为什么他们被称为前端开发人员的原https://www.jssolo.com/note/199
8.java全栈开发和鸿蒙开发哪个好?深度解析与比较Java全栈开发以其跨平台性、稳定性和强大的生态系统而闻名。Java作为一种成熟的编程语言,具有广泛的应用场景,从后端服务器开发到前端Web开发,再到移动应用开发,都能见到Java的身影。此外,Java全栈开发者通常具备扎实的编程基础和丰富的项目经验,能够独立完成从需求分析到系统设计的全过程。 https://zhiliaotang.cn/show-1907.html
9.代码的全栈开发的综合能力培养全栈开发者在软件开发过程中能够完全独立地开发一个项目的前后端,并且具备快速学习新技术的能力。全栈开发的综合能力培养对于当前的互联网行业非常重要,因为它可以提高开发效率、减少沟通成本,同时能够更好地理解整个软件开发的生命周期,有利于团队协作和项目管理。https://www.jianshu.com/p/ea717e529927
10.开发者,你逃不过全栈调试的“艺术魅力”全栈开发通常被比作一种复杂的平衡行为,开发人员需要兼顾前端、后端、数据库等多个职责。随着全栈开发的定义不断发展,调试方法也在不断发展。 译者| 晶颜 审校| 重楼 全栈开发通常被比作一种复杂的平衡行为,开发人员需要兼顾前端、后端、数据库等多个职责。随着全栈开发的定义不断发展,调试方法也在不断发展。对于开https://www.51cto.com/article/799477.html
11.IntelliJIDEA中的工作区TheIntelliJIDEABlog1. 全栈开发者 在很多情况下,我们需要同时更新前端和后端组件,而它们可能存储在不同的仓库中。 借助工作区插件,我们可以独立签出各个仓库中的项目,将它们添加到同一个工作区中,然后像操作单个项目一样处理它们的代码。 2. 微服务开发者 假设一个单仓库中有数十项微服务,但我们只需更新其中的一部分。 我们不再需http://blog.jetbrains.com/zh-hans/idea/2024/09/workspaces-in-intellij-idea/
12.华为云携手根生态,全栈使能开发者技术创新9月21日,?华为全联接大会2024?期间,华为云开发者联盟成功举办了“华为云携手根生态,全栈使能开发者技术创新”专题演讲分论坛,吸引了众多行业专家和开发者齐聚上海世博中心,共同探讨技术创新的新趋势。 本次专题演讲邀请了华为云开发者联盟总裁王希海及其他5位杰出企业开发者代表共同分享了他们的见解与经验。演讲者https://weibo.com/ttarticle/p/show?id=2309405081087700500860
13.如何定义全栈工程师和DevOps不容否认的是:初创企业就像一种「蛰伏」的野兽,在最初的几年往往默默无名,而且过的也非常艰辛(人员配备不齐,所以急需 DevOps 和「全栈」开发者)。 但不幸的是,当下 DevOps 这个潮流正在迫使开发者在一个成熟的公司中继续扮演这些角色,迫使开发者担任由于基础资源缺乏而不得不为的「开发者」角色。 https://www.elecfans.com/d/785365.html
14.前端开发者11种类型的开发工程师(你会是哪一种?)你可能已经猜到了,全栈开发者做的是前端和后端开发者的工作。(不幸的是,这并不意味着一个典型的全栈开发工程师的工资是其他人的两倍)。 尽管如此,掌握所有级别的网络开发似乎也有其回报。StackOverflow在2022年对开发者进行的一项调查发现,当受访者被要求描述他们的角色时,”全栈开发者 “是最高的回答(近47%)。https://www.wbolt.com/types-of-developers.html
15.CabloyJS是一款自带工作流引擎的Node.js全栈框架,面向开发者的CabloyJS 是一款自带工作流引擎的Node.js 全栈框架,面向开发者的低代码开发平台。实现了真正意义的“一次开发,到处运行”的跨端跨平台理念。只需一套代码,即可同时实现B端中后台管理系统和C端前台应用。只需一套代码,即可同时跨端PC和Mobile,并且Mobile端是接近原生体验 CabloyJS 内置的每一项特性都做到精心调校,均https://github.com/Object-d/cabloy
16.小白入门全栈开发学掌门技术干货栏目专注于IT技术分享,囊括业内热门软件测试技术干货、全栈开发技术干货、Java技术干货、web前端干货、大数据开发技术干货、数据分析技术干货、人工智能技术干货、云计算运维技术干货等实用的干货内容.http://www.xuezhangmen.com/full-stack/basis
17.全栈VS。开发运维功能整合:DevOps 和全栈开发都强调跨 IT 团队或开发角色的功能集成。 简化开发:这两种方法都旨在简化开发流程,使其更加高效和有效。 多功能性:它们都鼓励采用多功能方法,使个人拥有多种技能来处理开发和运营的各个方面。 部署重点:DevOps 和全栈开发都专注于产品或应用程序的部署,确保流程的顺利和自动化。 https://fourweekmba.com/zh-CN/%E5%85%A8%E6%A0%88-vs-devops/
18.HUAWEIDeveloperGroups华为开发者联盟HUAWEI Developer Groups(HDG)是华为开发者社区全球项目,是面向在技术领域有共同兴趣的开发人员的公益性开发者社区,内容涵盖多项终端开放技术,为开发者提供深度交流、展示自我的平台。欲了解更多信息欢迎访问华为开发者联盟官网https://developer.huawei.com/consumer/cn/programs/hdg/
19.安恒信息获2022鲲鹏开发者峰会双项大奖鲲鹏开发者峰会是面向鲲鹏计算产业全栈开发者的年度旗舰活动。华为伙伴暨开发者大会期间,鲲鹏开发者峰会于6月16日在线上和线下同步举行。分享产业趋势、创新技术、行业案例,帮助开发者全面了解鲲鹏计算产业生态进展,全栈技术优势,共创数智未来,共享非凡成就。 https://china.qianlong.com/2022/0623/7336993.shtml
20.前端后端全栈都是什么?前端后端和全栈全栈开发者需要对 Web 架构的每一个层次都有足够的了解:搭建和配置 Linux 服务器,编写服务器端 API,利用客户端 Javascript 代码驱动应用,将设计层面的东西转化到实际的 CSS 代码。 全栈开发者也通常在服务器端进行编程工作,但他们熟练前端语言,能够操纵网站面向用户的部分。基本上可以形容他们是百事通。 https://www.zhiliaotang.com/technology/00041.html