首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

代码整洁之道--读书笔记(3)

编程知识
2024年09月06日 21:51

代码整洁之道

image-20240904225436374

简介:

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。

本书适合所有程序员阅读,也可供所有想成为具备职业素养的职场人士参考。

第三章:说“是”

img

如果你能够一直信守承诺,大家会以为你“是一名严谨负责的开发人员”。

在我们这行中,这也是最有价值的评价。

3.1 承诺用语

口头上说;心里认真;付诸行动;

这也就是承诺的三个步骤:

(1)口头上说自己将会去做。

(2)心里认真对待做出的承诺。

(3)真正付诸行动。

3.1.1 识别“缺乏承诺”的征兆

我们有竭力逃避承担责任的倾向。

注意以下三种类型的词,当他们出现时候你就要警觉自己不必把此承诺太当真。

  • 需要/应当。“我们要把这活做完。”“我需要减肥。”“有人应当负责去推动这件事。”
  • 希望/但愿。希望明天我能完成这个任务。”“希望改天我们能再见面。”“但愿我有时间做这件事。”“但愿电脑能快点。”
  • 让我们(而不是让我)。让我们回头再见。”“让我们把这事做完。”

3.1.2 真正的承诺听起来是怎样的?

寻找相似的句子:我将........之前............

你对自己将会做某件事做了清晰的事实陈述,而且还明确说明了完成期限。

那不是指别人,而是说的自己。你谈的是自己会去做的一项行动,而且,你不是可能去做,或是可能做到,而是必须做到。

到了所到时间之后,面临两个结果,要么完成,要么没完成。

如果你没做到,他人就能摆出你先前的承诺让你难堪。由于失信于人,你会感觉很糟糕。告诉别人自己没能兑现承诺时,你会感到十分难堪(如果那人曾当面听你做出承诺的话)。

作者在这里还说明没能信守自己的承诺的潜在想法,并且给出对应的应对方法。

  1. 之所以没成功,是因为我寄希望于某某去做这件事。

    原因:你只能承诺自己能完全掌控的事。比如,如果你的目标是完成一个还依赖于另一团队的模块,那么你无法承诺自己既能够完成这个模块,还能实现该模块与其他团队所负责模块间的无缝集成。

    应对方法:如果最终目标依赖于他人,那么你就应该采取些具体行动,接近最终目标。

  2. 之所以没成功,是因为我不太确信是否真能完成得了。

    应对方法:即使目标无法完成,你仍能全力前进,离目标更近些。

    例如:

    • 把这25个bug全部过一遍,努力重现这些bug。

    • 和发现bug的QA一起坐下来,看下bug重现时的现场。

    • 用本周能支配的全部时间,尝试逐一修复bug。

  3. 之所以没成功,是因为有些时候我真的无能为力。

​ 应对方法:如果你无法兑现承诺,那么最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。

​ 这里有一点要注意:

如果你不尽早告诉他人可能的问题,就错失了让他们帮助你达成目标、兑现承诺的机会。

3.2 学习如何说“是”

坚持原则

如果不写测试,他或许可以更快点完成任务。如果不做重构,不运行整套回归测试,或许也可以快点完成任务。此时,如果是专业开发人员,就不会放弃底线。

首先,这种假设本身就是错误的。即使不写测试,不做重构,省掉完整的回归测试,Peter也无法更快完成任务。多年经验告诉我们,打破这些纪律和原则,必然会拖慢进度。

其次,身为专业开发人员,Peter有责任根据标准规范自身工作。代码必须经过测试,代码必须要有对应的测试代码。要确保代码清晰整洁,而且必须确保没有影响到系统的其他部分。

如果要“加班”,就需要考虑自己的经理储备,口头上说自己会在周末搞定这些事情很容易的,但要真正花精力高质量地完成工作会困难许多。

专业人士对自己的能力极限了如指掌。他们十分清楚自己还能保持效率加班多长时间,也非常明白要付出的代价。

总结

专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。当专业人士给出肯定回答时,他们会使用正式的承诺,以确保各方能明白无误地理解承诺的内容。

From:https://www.cnblogs.com/TonyCode/p/18401189
本文地址: http://www.shuzixingkong.net/article/1797
0评论
提交 加载更多评论
其他文章 受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架
受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架 哟,网友们好,年更鸽子终于想起了他的博客园密码。如标题所述,今天给大家带来的是一个基于 vue2 的图像标注工具。至于它诞生的契机呢,应该是我导 pass 掉了我的提议(让甲方使用 LabelImg 进行数据标注),说是要
受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架 受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架 受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架
.NET 压缩/解压文件
本文为大家介绍下.NET解压/压缩zip文件。虽然解压缩不是啥核心技术,但压缩性能以及进度处理还是需要关注下,针对使用较多的zip开源组件验证,给大家提供个技术选型参考 之前在《.NET WebSocket高并发通信阻塞问题 - 唐宋元明清2188 - 博客园 (cnblogs.com)》讲过,团队
.NET 压缩/解压文件 .NET 压缩/解压文件 .NET 压缩/解压文件
Git使用经验总结6-删除远端历史记录
删除远端的历史记录但是不影响最新的仓库内容是笔者一直想实现的功能,有两个很不错的用处: 有的历史提交不慎包含了比较敏感的信息,提交的时候没注意,过了一段时间才发现。这个时候已经有了很多新的历史提交,无法再回退了。 有时候会拿Git仓库存储代码文件以外的内容,比如美术资源、依赖库等等。这时除了少数提交
消费降级,我的订阅服务瘦身
前言 前几天看到一篇文章,《消费降级,我的订阅服务瘦身》。 自己平时花钱有点大手大脚的,也没有统计个每个月固定的开销,现在正好趁这个机会记录一下。现在挣钱不容易,看下哪些开销可以进行降级。 腾讯云 - 服务器 分类 周期及成本 需要程度 网络服务 510元/年 需要/续订 这个服务器是平时自建博客,
消费降级,我的订阅服务瘦身 消费降级,我的订阅服务瘦身 消费降级,我的订阅服务瘦身
必应每日壁纸API封装
简介 这个类封装了必应首页的每日壁纸查看功能,提供了查看、保存壁纸的方法,最大支持查看近8天的壁纸 使用方法 async Task Main() { try { var bing = BingWallpaperAPI.CreateInstance(8); //初始化,参数8表示一共会加载8张图片 v
必应每日壁纸API封装
(零) React Native 项目开发拾遗
一位离职的前端同事,最近接了个 React Native 的活儿,遇到许多搞不定的问题,于是找到我帮忙“补课”(没有系统的学习 React Native,也不具备原生 Android 和 iOS 开发基础知识)。 此前带过另一位前端同事入门 React Native 开发,有段时间甚至一天得花一两个
JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析)
JDBC JDBC(Java DataBase Connectivty,Java数据库连接)API,是一种用于执行Sql语句的Java API,可以为关系型数据库提供统一的访问,其由一组Java编写的类和接口组成. JDBC驱动程序 起初,SUN公司推出JDBC API希望能适用于所有数据库,但实际
JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析) JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析) JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析)
musl libc 与 glibc 在 .NET 应用程序中的兼容性
musl Linux 和 glibc 是两种不同的 C 标准库实现,它们在多个方面存在显著差异。历史和使用情况:glibc 是较早且广泛使用的 C 标准库实现,具有较长的开发历史和广泛的社区支持。它被大多数 Linux 发行版采用,特别是在桌面和服务器环境中。 musl 是一个相对较新的实现,旨在提