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

news/2024/11/13 15:14:06/文章来源:https://www.cnblogs.com/TonyCode/p/18417160

代码整洁之道

image-20240904225436374

简介:

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

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

第十一章 压力

img

想象一下灵魂出窍后的体验:你看见自己躺在一张手术台上,一位外科医生给你做开胸手术。医生竭力挽救你的性命,但是时间有限,也就是说,他的一举一动都与病人生死攸关——你命悬一线。你期望医生的表现如何?你希望他冷静、井井有条吗?你希望他清楚准确地吩咐助手吗?你希望他严格遵循当初训练时的做法坚守手术规程吗?还是想让他汗流浃背、咒骂之声不断?想让他乱扔手术器械、把东西摔得哐当响吗?想让他满腹怨气责怪管理人员设定的不现实的手术时间,一直嚷嚷时间不够用吗?

你期望他表现得像一名专业人士,还是像我们常见的某些开发人员的那种做派?即使有压力,专业开发人员也会冷静果断。尽管压力不断增大,他仍然会坚守所受的训练和纪律,他知道这些是他赖以战胜由最后期限和承诺所带来的压力感的最好方法。

1避免压力

在压力下保持冷静的最好方式,便是规避会导致压力的处境。规避的方式也许无法完全减除压力,但是可以大大降低压力并缩短高压力期的时间。

承诺:

我们应当避免对没有把握能够达成的最后期限做出承诺,这一点很重要。

业务方总是期望能够拿到这些承诺,因为他们想消除风险。我们要做的就是使风险定量化并将它们陈述给业务方,这样他们就能做好相应的准备。做不切实际的承诺会阻碍目标的实现,对公司和个人都没好处。

保持整洁

快速前进确保最后期限的方法,便是保持整洁。

让系统、代码和设计尽可能整洁,就可以避免压力。这并非是说我们要花无穷无尽的时间去清理代码,而只是说不要容忍混乱。混乱会降低速度,导致工期延误,承诺失信。因此,要尽力保持输出成果整洁干净。

在危机中坚守纪律:

选择那些你在危机时刻依然会遵循的纪律原则,并且在所有工作中都遵守这些纪律。

遵守这些纪律原则是避免陷入危机的最好途径。当困境降临时,也不要改变行为。如果你遵守的纪律原则是工作的最佳方式,那么即使是在深度危机中,也要坚决秉持这些纪律原则。

2.应对压力

不要惊慌失措:

正确应对压力。长夜漫漫无心睡眠,无助于更快地解决问题。呆坐着烦躁不安也于事无补。而你可能会犯的最严重的错误,就是鲁莽仓促!要避免产生孤注一掷的想法。鲁莽仓促只会把你带入更深的深渊。相反,要放松下来。对问题深思熟虑。努力寻找可以带来最好结果的路径,然后沿着那条路径以合理稳定的节奏前进。

沟通:

让你的团队和主管知道你正身陷困境之中。告诉他们你所制定的走出困境的最佳计划。请求他们的支援和指引。避免产生的惊恐。没有东西比惊恐更令人愤怒和失去理性。惊恐会让你的压力增大十倍。

依靠你的纪律原则:

不要惊慌失措地茫然四顾另寻依靠,而要从容不迫、专心致志地依靠你自己的纪律原则,这将帮助你更快地走出困境。(如果你遵循TDD,那么这时写的测试甚至要比平时多。如果你笃行无情的重构,这时就要更多地进行重构。如果你相信要保持函数尽量地小,这时就要让函数变得更小。战胜压力煎熬的唯一方法,便是依靠那些你已经知道切实有效的东西——你平时遵守的纪律。)

寻求帮助:

结对!当头脑发热时,找一个愿意和你一起结对编程的伙伴。你会前进得更快,而缺陷却会更少。结对伙伴会帮助你守住原则,制止你的精神错乱。搭档会捕捉住你疏忽遗漏的事情,会提出有帮助的想法,会在你注意力迷失的时候接过你手中的工作继续前进。同样地,当你看到其他人身处压力之下时,可以伸出援手,和他们结对工作,帮助他们走出困境。

3.结论

  • 应对压力的诀窍在于,能回避压力时尽可能地回避,当无法回避时则勇敢直面压力。
  • 可以通过慎重承诺、遵循自己的纪律原则、保持整洁等来回避压力。
  • 直面压力时,则要保持冷静,与别人多多沟通,坚守自己的原则纪律,并寻求他人的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/798624.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win7玩游戏Ctrl和空格不能一起按的解决方案

前几天在Windows7上玩《Minecraft》的时候,发现Ctrl和空格不能一起按,就开始研究,找到一个解决方案。 首先打开控制面板,点击更改键盘或其他输入法,就会进入文本服务与输入语言。点击更改键盘,进入高级键设置选项卡,点击下面的快捷键,再点击更改按键顺序。如图,随便把…

深度学习 初识学习 9.16

什么是SVM SVM(Support Vector Machine,支持向量机)是一种监督学习模型,用于分类和回归分析。其基本思想是找到一个超平面,使得两类样本在该超平面上的间隔最大化。这个间隔被称为“最大间隔”,而位于最大间隔边界上的样本点则被称为“支持向量”。 SVM的关键概念:超平面…

C++信奥老师解一本通题 1370:最小函数值(minval)

​ 【题目描述】有n个函数,分别为F1,F2,...,Fn。定义Fi(x)=Ai*x*x+Bi*x+Ci(x∈N∗)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的mm个(如有重复的要输出多个)。【输入】第一行输入两个正整数n和m。 以下nn行每行三个正整数,其中第ii行的三个数分别位Ai、Bi和C…

反DDD模式之关系型数据库

本文书接上回《图穷匕见-所有反DDD模式都是垃圾》,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新; DDD框架源码(.NET、Java双平台); 加群畅聊,建模分析、技术实现交流; 视频和直播在B站。 背景 我在与开发者交流关于DDD的建模思路时,往往会遇到一个难题,就是…

常回家看看之house_of_catWO

house_of_cat 前言: house of cat 这个利用手法和前面提到的 house of kiwi ,和 house of emma 利用的手法是一个链子,当程序无法通过main函数返回时候,或者程序不能显性调用exit函数的时候,我们可以通过 __malloc_assert 来刷新IO流,当然这个函数在2.35之后移除了刷新IO…

C++11 线程同步接口std::condition_variable和std::future的简单使用sk

合集 - C++(1)1.C++11 线程同步接口std::condition_variable和std::future的简单使用09-17收起 std::condition_variable 条件变量std::condition_variable有wait和notify接口用于线程间的同步。如下图所示,Thread 2阻塞在wait接口,Thread 1通过notify接口通知Thread 2继续执…

安全:nftables:基础知识

一,policy: 1,原文档链接: https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/9/html/configuring_firewalls_and_packet_filters/assembly_creating-and-managing-nftables-tables-chains-and-rules_getting-started-with-nftables#con_basics-of-nft…

Leetcode 952. 按公因数计算最大组件大小

1.题目基本信息 1.1.题目描述 给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图: 有 nums.length 个节点,按从 nums[0] 到 nums[nums.length - 1] 标记;只有当 nums[i] 和 nums[j] 共用一个大于 1 的公因数时,nums[i] 和 nums[j]之间才有一条边。 返回 图中最大连…

Leetcode 19.删除链表的倒数第第N个结点

1.题目基本信息 题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/ 2.解题方法 2.1.解题思路 使用快慢指针 2.2.解题步骤 第一步,初始化快指针为head,慢指针指向一…

Leetcode 297. 二叉树的序列化与反序列化

1.题目基本信息 1.1.题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限…

曾亨瑾第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc/这个作业的目标 发布一篇随便简单介绍自己姓名 曾亨瑾学号 2022329301104一、自我介绍 1.基本信息 大家好,我是电气工程及其自动化(2)班的曾亨瑾,来自广东东莞。 2.兴趣爱好 我喜欢打羽毛球和慢跑(虽然都是…

2024软件工程第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 开发类“羊了个羊”消除类小游戏,并借助AIGC技术提高效率学号 052203132项目展示Github地址:https://github.c…