Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1234308
  • 博文数量: 1096
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 11060
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 15:17
个人简介

linux工程师,RHCE

文章分类

全部博文(1096)

文章存档

2023年(84)

2022年(314)

2021年(251)

2020年(244)

2019年(176)

2018年(27)

我的朋友

分类: 系统运维

2020-06-17 20:26:27

深层自动化

你一直擅长运营单人商店,并且能将很多细节和流程牢记在心。该客户的部署有15个步骤,每月执行一次,每次运行最多花费5分钟。

你要与同事讨论该问题,明确需构建的所有功能和需修复的所有故障,有一个问题将反复出现:自动化仅花费你几分钟的时间且每隔一定时间段执行一次,这种操作真的值得吗?

只需要5分钟的时间即可手动执行该过程,频率为每月/次。而将该手工过程自动化需要花费3个小时。自动化操作也许会将运行进程所需时间间从5分钟减少到3分钟。

这里的关键在于:由于流程实现了自动化,运行此流程的人员可能不再是你本人。

月收益不仅仅是2分钟。你的5分钟可以精简为0分钟,因为流程自动化了这三分钟的事可能会交给别人来做。事实上,其他的任何人都可以执行此任务。关键时刻,团队中有3分钟空闲时间的任何成员都可以去运行该自动化流程。

不必亲力亲为。如果实现了深层次自动化,其他成员可以分担此项任务以便让专注。

广泛测试

由于擅长记忆所有细节,你知道构建新功能时需调整的每个小开关和切换按钮,确保没有通过添加新代码损害其他功能。

然而,你始终确信没有遗忘什么吗?要是其他人添加了代码呢?他们是否需要了解各个开关和切换键?每当别人整合新代码时,你可能还是会忐忑不安。

测试是增强自信的过程——即确信自己添加的新代码不会破坏任何旧代码;让开发者有信心部署好代码而无需午夜醒来并焦虑思考:“天哪,如果用户在删除付款方式后(而非事前)单击该按钮,他们将获得500元。我需要马上还原程序。”

编写测试代码确实有点耗时,其效果可能不如执行代码。但是,编写测试代码能让头脑保持清醒。测试代码的编写过程可以让开发者重点关注代码的性能要求。然后,再去执行具体任务。

测试为开发者提供空间——让开发者大脑有足够的空间专注于代码重构及改进,因为开发者不再需要忐忑追踪所有开关和切换键以维护重构过程。测试会帮助开发者完成追踪任务,你有了足够的空间去重构代码。

除此之外,深层自动化与广泛测试的组合是重要加分项:深层自动化+广泛测试 =深层自动化测试。使用自动化测试,任何人都可以贡献自己的代码并运行测试。你可以充满自信地进行构建、调整并进行演示和交付。

传授知识

程序员会遇到很多具体的编码问题,并在网络上寻找处理方案。这样不一定能找到解决之道。你可以在一些第三方文档中闲逛,调试不同的设置,创造性地思考问题,然后问题就得到解决了。

解决了自己的问题可不算结束。想想那些即将面对你刚刚经历过的问题的程序员们,花时间和精力解决了这个小问题后,请不要浪费专业知识。

笔者建议向他人传授所学知识。KentC.Dodds称之为“增加价值影响”,SWYX称之为“公共学习”。无论是撰写教程文章、博客文章,还是堆栈溢出问题的答案,程序员都需要明白这点:让他人受益,不要掠夺知识。

你自己也会从中受益。准备传授知识时,无论是实际的演示文稿,文章还是主题帖子,你都会比初次学习时更好地掌握解决方案。你将更加深入地理解问题所在,优化初始解决方案并了解如何与初学者交流深层次、低层次概念。

你将发现并为各种难题设计出色的解决方案。这就是为客户服务的工作内容,这也是在特定代码段中的任务。花些时间“增加你的价值影响力”——用授人以渔的方式分享自己的发现。你能帮助别人成为专家。同时你自己也将成为专家中的一员。

让他人参与

回想大学校园做团队项目时,我们都知道自己写的代码水平很低,甚至不清楚自己在做什么,调试实际上只是在搅动代码行以保护某些内容不受损。

作为一名独立的自由职业者,你可以看到代码的完整内容。而且很大程度上,所有的代码也许只被你一人浏览过。这或许会让你感到害怕和不安。

这种恐惧和危机感阻碍了你向他人求助并组建团队的脚步。原因在于你永远不会觉得自己的代码已经接近完美,能让其他程序员印象深刻。

恐惧和不安会限制程序员的发展。严重情况下,你与他人合作学习的机会、你脱离独立项目并为团队案例尽心尽力的机会、你成长的机会等,都会受到影响。

笔者建议程序员养成让他人积极参与的习惯。请其他程序员查看一下你的代码,接受并希望那些审阅者会注意到你代码糟糕透顶的事实。悦纳自己的不足,然后从中成长。顺便说一句,他人的代码可能也有糟糕的部分。

另外,当程序员开始践行此操作时,会自言自语:“特里,我想给你演示我已构建的这个模块,但是再给我最多3天的时间,我需要清理一下数据。”

无需这样。所有代码都存在改进空间,永远不会完美地完成检查任务。程序员总是想要拥有更多的时间来准备。只需拥有代码现在的样子即可,然后,请他人来参与审查吧。

更早更频繁地接纳他人的意见,你的代码才能逐渐得到完善。在编码时,程序员会对自身代码有一定预期,明白是哪些编码习惯或不足让审阅者感到尴尬或给予差评。

代码永远不会完美,不要等到代码完美无缺的那一天,才寻求他人的观点来阅览代码并给出反馈,那一天永远不会到来。

编程的道路算得上是蜿蜒曲折,但如果能做到以上四点,我不敢说你会走得更快,但一定会更清醒明确。《linux就该这么学》不错的linux自学书籍

阅读(1135) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~