面对新技术,这才是软件工程师的正确打开方式
点击上方 "编程技术圈"关注, 星标或置顶一起成长
后台回复“大礼包”有惊喜礼包!
每日英文
Empty heart, is the best gift; alone the way, is the most beautiful scenery.
放空的心,是最好的礼物;独走的路,是最美的风景。
每日掏心话
生活有进有退输什么也不能输了心情。心情好,什么都好,心情不好,一切都乱了。
责编:乐乐 | 来自:架构头条
编程技术圈(ID:study_tech)第 1283次推文
往日回顾: 大专学历造假改成了 211 拿到了抖音 Offer
正文
作者 | Karl Hughes
译者 | 王强
策划 | 万佳
为什么颇有经验的软件工程师也会像飞蛾扑火一样追捧闪亮的新技术?我得到的深刻教训是:你必须在好奇心和业务目标之间取得平衡。
2015 年,我带领一支工程团队为大学生构建了一个 Web 应用程序。由于录取工作已于 5 月结束,因此我们只有 3 个月的时间为每年 8 月的流量暴涨做好准备。
第一年我们只有几千个用户,所以没有人担心扩展问题。我们使用了 Angular 前端和 MySQL 数据库,在 PHP 中构建了这款应用。
第一年结束时,我们的应用程序架构
当我们准备在第二年将用户规模增加到三倍时,我们开始怀疑现有的应用程序能否良好地扩展。我开始学习所有最新的工具,聘请了一位经验丰富的 DevOps 工程师,然后制定了一项负载测试计划。
经过两个半月的混乱,研究了 Docker、Azure Service Mesh 和其他一些最新工具后,我们意识到无法赶上 8 月的截止日期。我们退后一步,重新考虑了所面对的问题。我开始向一些导师寻求建议,记得那天,其中一位叫我出去,对我说:
“你不需要那么多复杂的工具!”他告诉我。“在系统上再扔一台服务器就行了。”
1为什么新技术如此吸引人?
像许多工程师一样,我会抓住机会利用所有最酷的新工具。经过几个月的无谓尝试,我终于意识到解决方案本来很简单,并且我们手头已经有了所需的工具。我们水平扩展了 API,垂直扩展了数据库,这花了大约两周时间。
第二年开始时,我们的应用程序架构
事后看来这显然是正确的选择,但是为什么一开始它就不那么明显呢?为什么甚至颇有经验的软件工程师也会像飞蛾扑火一般被闪亮的新技术所吸引?
新技术承诺解决老问题
管理大量服务器非常困难,一直以来都是一个难题。当我们迁移到云后,这个问题终于变简单了,现在 Kubernetes 承诺可以让这件事情变得更轻松。与所有“烦人的旧东西”相比,新技术有望更快、更高效或更灵活地解决问题。如果你只看那些宣传资料,你可能会认为它们甚至没有任何代价可言。
我们会因为用上了“最新和最棒的技术”而受到关注
我在 2015 年读到的所有文章都在说 Docker 将会有多伟大。他们坚持认为它将在短短几年内取代 VPS。早期采用的公司因此得到了很多正面的报道。我也想要这种关注。
求职者涌向新技术
不幸的是,由 Hacker News 推动的炒作周期使工程师认为他们必须采用最新技术才能跟上时代。对于新手开发人员来说尤其如此。你想不到最近有多少培训班毕业生问我是否在使用新出的 X 或 Y 框架。甚至有人试着劝我将我们的整个关系数据库转移到区块链上。
搜索公众号Linux中文社区后台回复“命令行”,获取一份惊喜礼包。
我们也想变得很酷
“深入其中并对所有事物做现代化改进是很有趣的事情——当然,你可以在此过程中学到很多东西(也许会以牺牲业务为代价)。”——David LeBlanc
我对丰富简历内容没什么兴趣,但我记得那时候我会想:“这将成为一次会议演讲上的精彩故事。”我现在可不敢这么说,因为在 2015 年的早期创业阶段尝试部署 Docker,结果以失败告终的经历,可能是我迄今为止最大的管理败绩。
2过早采用新技术的风险
几年前,我发现技术炒作周期是这么一回事:
“炒作周期中,市场先是对某种很棒的新事物有一段时期的夸大宣传,鼓励人们采用——直到技术逐渐真的普及开来,人们才发现新事物并没有广告中所描述的那么神奇。然后这种新事物便会失宠,乃至被完全丢弃或遗忘,直到它的成功所需的知识基础成型为止。”——Dick Dowdell
技术炒作周期
许多工程师在新技术诞生伊始的高峰期(也就是关注和讨论最多的时期)错误地采用了它们。问题在于,不成熟的技术会有全新和未知的故障机制,而现有的解决方案并不会如此。
软件工程团队需要浪费大量时间寻找不那么明显的错误、查找文档里没有的边缘案例并重写代码来适应新技术。这就是六年前我们尝试采用 Docker 时发生的事情。我们没有足够的资源来遍历所有没有文档支持的特性和选项,而且 API 会随着版本升级而不断变化。
就算这些问题并没有令你困扰,但早期采用者仍会承担技术开发公司倒闭的风险。我记得有几个朋友很早就用上了 RethinkDB,但到了开发它的公司于 2016 年关闭时他们大失所望。尽管它后来作为一个社区维护项目又回来了,但让你的应用程序数据库陷入困境从来都不是什么好事情。
3技术采用技巧
既然如此,如果新技术增加了太多不必要的风险,为什么我们都没有停留在 1990 年代的 Java 版本上呢?我们如何才能避免落后太多,以至于连升级途径都找不到呢?当我们开始一个新项目时,我们不应该使用最新的技术工具吗?
针对这些有趣的问题,答案都是“取决于具体情况”。
我已经开始为在软件工程团队中采用新技术的策略制定一些经验法则。请随意使用这些内容,也可以根据你的组织情况做出调整或建立自己的规则集。
给人们时间进行实验
我坚信可以给员工一些时间来在工作中学习新事物。这为他们提供了一种创造力的源泉,使他们保持领先,并能让你尝试一些业务永远不会优先考虑的事情。如果一位工程师使用他的学习时间来证明我们的应用程序中可以使用某些新技术工具,那么我会认真考虑此事。
“在将新技术用于产品之前,需要对新技术进行验证……你必须做出结果。如果不这样做,就是把产品推向了死亡之路。”——Andrew Orsich
保持一个默认技术栈
微服务的罪行之一是,它们鼓励公司使用不同的编程语言来构建应用程序的不同部分。虽然经验丰富的工程师可能会喜欢每周更换语言,但这会增加认知负担,并让新开发人员难以接受。当程序员选择的语言不一样时,团队还会出现一些技术孤岛。选择一个技术栈作为默认选项,仅在真正需要时才做扩展。
保持核心的可靠性
当你选择尝试新技术时,请先考虑将赌注限制在不太重要的功能上。当你基于 SQL 构建平台时,很难采用某种新的、先进的数据库,但是在临时营销站点上尝试新的 UI 库并不难。一旦在非关键任务中验证了这项新技术后,你就可以决定在整个核心应用程序中采用它。
在整个应用程序中采用新技术的风险级别
记住业务目标
与我合作过的最优秀的那些工程师始终会牢记“为什么”这一要点。他们在业务价值较低的应用程序部分中节约资源,而会花几周时间来完善核心数据模型。作为经理或团队负责人,你必须随时问自己为什么企业需要这种技术。如果某种新工具进入市场,你就必须判断它会增加多少业务价值以及采用的成本。
4结论
新技术并不坏。我喜欢尝试使用新的框架和编程语言,但是作为领导者,你必须在好奇心和业务目标之间取得平衡。人们很容易陷入未经验证的新工具的泡沫中,因此,你应该制定标准来帮助你决定应该何时尝试新的工具。
原文链接:
https://www.telerik.com/blogs/right-way-to-adopt-new-technology?fileGuid=RCrXjGYg9dpww3CK
你还有什么想要补充的吗?PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
欢迎加入后端架构师交流群,在后台回复“学习”即可。
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。别找了,想获取史上最简单的Java大厂面试题学习资料扫下方二维码回复「面试」就好了猜你还想看阿里、腾讯、百度、华为、京东最新面试题汇集SpringBoot+webSocket实现扫码登录功能
全球最大成人网站,Pornhub将于年底关停!
自从在 IDEA 中用了热部署神器 JRebel,开发效率提升了 10 倍!
嘿,你在看吗?
面对新技术,这才是软件工程师的正确打开方式相关推荐
- 拜托!这才是分布式系统CAP的正确打开方式!
"纸面"上的CAP 相信很多同学都听过CAP这个理论,为了避免我们认知不同,我们先来统一下知识起点. CAP理论在1999年一经提出就成为了分布式系统领域的顶级教义.并表明分布式服 ...
- 这才是大数据的正确打开方式
最近,随着健康码的流行,大数据又重回大众的视野.作为新基建产业的原油,数据逐步迈向信息产业的核心.不过随着数据量级的不断扩大,从数据仓库到数据湖再到仓湖一体,如何将各种大数据技术栈整合在一起,发挥出大 ...
- 所有ICO项目100%都会归零!STO证券型代币才是区块链融资正确打开方式
文章首发于微信号,2100BIT区块链 作者:星辰 导读: 中国工信部电子标准院区块链研究室主任李鸣: ICO让一群与技术无关的人参与到区块链技术和交易中,给政府监管带来了很多挑战. 所谓入场有风险, ...
- 这才是B站的正确打开方式!
关注+星标,每天学习C语言新技能 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源:网络 每天都在用B站刷杂七杂八的视频,有没有考虑 ...
- 手机飞行模式“飞不动”?!这才是飞行模式的正确打开方式
在中国,飞行模式是一个不能"飞"的功能.到了飞机上,该关机还是得关机,那这个飞行模式到底有什么用呢? 其实还是有的,跟着小编瞧一瞧. 1.重置蜂窝移动 以前我的手机有时候会信号不好 ...
- 苹果手机语音备忘录在哪_苹果手机录音功能在哪?这才是iPhone录音功能的正确打开方式...
很多人都说苹果手机没有录音功能,其实大部分人都没有找到,今天就来教大家正确打开苹果自带的录音功能. 如何使用录音: 1.打开苹果手机桌面,找到[语音备忘录]: 2.进入后点击红色按钮,就可以开始录音了 ...
- 为什么说vivo S7才是5G轻薄旗舰的正确打开方式
8月3日,vivo发布了最新的5G旗舰机型S7.S7 170g的整机重量和7.39mm的机身厚度,瞬间让其成为年轻用户追捧的热点. 一.厚重的5G手机 众所周知,5G手机由于在信号处理的技术要求上比4 ...
- 这才是目前百度统计接口的正确打开方式20180322
这才是目前百度统计接口的正确打开方式20180322 关于百度统计接口的说明 1.登陆接口网站找到的有2种方式 第一种调用(不能用) https://api.baidu.com/sem/common/ ...
- 彭于晏牵手英得尔T20,这才是品质自驾游正确打开方式
国家旅游局数据中心数据显示,2018年春节期间,全国共接待游客3.86亿人次,同比增长12.1%,旅游收入达到4750亿元,同比增长12.6%.而在活跃的旅游市场中,自驾游占比接近85%,成为国内家庭 ...
最新文章
- 漫画:程序员相亲图鉴,笑屎我了~
- 转帖:RIA(Rich Internet Application,富互联网应用系统)
- 031_mysql事务的安全隐患
- 前端学习(2963):element-ui介绍
- 如何在 Mac 上的网站上使用 Touch ID 作为密码?
- js 中通过 var 在声明的变量中写方法
- hosts管理工具:SwitchHosts的下载与使用教程
- 90后游戏开发大神毛星云跳楼自杀!8年执着国产3A梦碎
- 云骞开源即时通讯软件 WEBIM
- Python实例---抽屉热搜榜前端代码分析
- 百分点大数据技术团队:互联网舆情系统的架构实践
- 激光条纹中心提取——ZhangSuen法python
- 计算机主机散热器,如何自制计算机散热器
- 墨珩科技入选工业和信息化重点领域产业人才培训项目评审合格名单
- ubuntu不小心忘记开机密码
- Leetcode——153. Find Minimum in Rotated Sorted Array
- 泰克示波器查眼图_如何用泰克示波器测量眼图
- Laravel4.1数据库 数据库填充(六)
- 四川大学网络空间安全学院计算机专硕怎么样,四川大学网络空间安全考研难吗...
- feign.FeignException$Forbidden: status 403 reading BaseUserFeignServiceApi#querySecurityUserDtoByOne
热门文章
- html5点击梅花,梅花什么时候开?最早在2月,最晚可到5月
- android 6.0运行时权限应用之图库图片选取
- 3990x性能和超级计算机,AMD太超前!Win10将64核128线程撕裂者3990X CPU识别为双路
- 05 数据分析 - 诊断性分析方法
- C++:error C4996解决方法
- Android设计模式之观察者模式在项目中的实际使用总结
- Toast, CheckBox, RadioButton
- Swift语言学习(一)
- 小笑话_休闲娱乐_1
- c#之MVC ---初始