年轻开发者的哪些事,里面有你吗?
Bernard 2019-11-12 来源 : 阅读 1014 评论 0

摘要:这是关于一位有激情的年轻开发者的、几乎真实的故事。

这是关于一位有激情的年轻开发者的、几乎真实的故事。


年轻开发者的哪些事,里面有你吗?


1


在2004年年末,他开始在一家小公司上班,这家公司有他想要的一切:丰厚的薪水、使用他钟情的编程语言,处理复杂性和搭建架构。


这并不是该年轻开发者的首次工作经历。但是他的第一个项目已经被证明是有问题的。当时,他认为功能从来不会改变。但是他错了,每次修改功能都需要一次彻底的重构,引发了bug以及大量时间的浪费。他甚至尝试过编写测试之类的、有效的方式。不过他的测试需要维护、编写所需时间、甚至更多执行的时间。


对于每个年轻的开发者,他在成长过程中总是听到有经验的开发者说到的“当心!过早优化是万恶之源!”、“编写测试!测试!测试!”。或许他只是在重构一个微小的实用程序方法,而这时有经验的开发者将走过来、以严厉的表情警告说“你没有做过早优化,对吧?”、或“你在写测试,是吗?”。


但是所有这些警告都被忽视了。因为年轻开发者不理解过早优化为什么是万恶之源、也不理解测试应该是正确的。根据他自己的经验,他知道下面的需求从长期看是不合理的(因为它们可能有修改),编写测试就是在浪费时间。



“我究竟为什么每次都必须重写我的代码?我究竟为什么必须在当下编写代码、随后再重构,我什么时候能够编写世界上最好的代码?还有,我究竟为什么不得不用我所有的时间来编写没用的测试?”这就是年轻开发者的疑惑。


一天,年轻开发者开始着手一个新项目。他决定无视有经验开发者的警告;为了应对每次需求变化,他期望每块代码是快速的、可配置的和健壮的。需求清晰了,不过他要做得更好。比如,当有个功能,生成以大写‘S’结尾的产品代码时,他创建一个配置对象,这样结尾的字母就可以通过配置来修改,通过配置还可以决定这个字母应该是大写还是小写。当需求说明需要一些校验时,他就创建一个庞大的校验器,不仅包含需求要求的,还有很多没要求的。


在编写了项目的核心之后,一种完美的感觉充满了年轻开发者的全身。“那个有经验的开发者是错误的!”年轻开发者看着自己的杰作得意地说。他夜以继日地工作,认为数周后就可以发布产品了。


2


一天,客户告知他们一个bug。有经验的开发者看到这个bug,对显示器上出现的情况保留着厌恶:年轻开发者看到了大教堂,而有经验开发者看到的是贫民窟;年轻开发者看到了模式,而有经验开发者看到的是一个充斥着class的复杂网络;


年轻开发者看到了比光速还快的代码,而有经验开发者看到的是不必要的复杂算法。他不想碰这些代码,因此他让这个年轻的开发者去修复自己的bug。


其他人不认为年轻开发者的代码是优美的,只有这个想法让他感到失望。他充满愤怒地打开了项目……才发现代码对于他来说,也是费解的!代码背后没有清晰的意义。“这就是我不打算再使用这门语言的原因,语法太糟糕了”,往往是年轻开发者的第一反应。但是他在内心深处知道,这不是真正的问题。真正的问题是他。



一天结束的时候,bug修复好了,却产生了另一个bug,这是那一天之后发现的。每次修复都在影响着项目内部的瘦弱的平衡,就像亮白色衣服上的一小块黑色补丁。


此时这个年轻的开发者绝望了,他的大教堂开始摇晃,他感到离崩塌不远了。年轻开发者自问,“或许我不是这份工作的合适人选。为什么我不能编写恰当的代码呢?”带着沮丧和愤怒的交织心情,年轻的开发者打开了有经验开发者维护的项目。


他看到的代码让他感到吃惊:代码有注释和测试,易于阅读。和他最初开始写的代码没有太多区别,有一些清晰的例外:没有可扩展的配置,每行代码都被测试了,每个方法都取着有意义的名字、且简短(最多10行代码),只做必要的,每个文件只包含了能够严格做本质工作的方法。


在这个忧郁的时刻,有经验开发者来到了年轻开发者身边,和他挨得很近,开始重构引起所有bug的代码。


3


他们一起工作了数天,有时候,有经验开发者写代码,而年轻开发者观看有经验开发者如何解决问题;另些场合,年轻开发者写代码,而有经验开发者在旁边监督。


数天后,一次新的部署标志着bug已被修复。引起bug的小部分代码,现在可以被测试了、易于阅读了,也很稳定。有经验开发者看着年轻开发者说:“你现在明白了吗?”


年轻开发者点了点头,他现在明白了。完美的关键不是预测将来,而是编写容易修改、测试(这样修改就不会引发其它bug了)以及只需满足当前需求的代码。当他意识到这一点时,他注意到他正在变化,正在变成差不多有经验的开发者。



年轻开发者问,“我们现在能够重构整个项目吗?”
有经验开发者干脆地答道,“当然不可以!没有预算”
年轻开发者问,“但是,如果其它bug出现了,该怎么办?”
有经验开发者答道,“我们将找个 freelancer 来修复”


然后,这个差不多有经验的开发者开始编写优秀的代码,准备学习另外的经验。不过这是另外一个故事了。


启示

看完这个故事后,你对年轻人和有经验者都什么启示吗?以下是小职的启示。

年轻开发者的启示:回头看看你过去写的代码,如果你的代码看起来还不够优美,不要感到失望。

有经验开发者的启示:当周围有年轻开发者时,你将不得不给他擦屁股。你最好的机会就是他将学习如何编写得体的代码,越快越好。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

招聘推动商业,招聘成就人生,资深猎头合伙人欢迎合作。

  • 1
    推荐岗位
  • 2405
    人气
  • 0%
    受欢迎度

已有0人表明态度,0%喜欢该职业规划老师!

进入TA的空间
资讯动态 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
毕业之后先就业还是先择业?
面试技巧 100% 的用户喜欢
5G来临改变手机市场竞争格局 ,苹果已不敌华为?
就业趋势 0% 的用户喜欢
PHP25岁啦!那些PHP大佬的感言
就业趋势 0% 的用户喜欢
百度艾菲达成深度合作,AI的春天来了
就业趋势 0% 的用户喜欢
程序员其实也不富?微软、苹果职员也喊穷!
就业趋势 0% 的用户喜欢

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程