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

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

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

编程知识
2024年09月18日 06:36

代码整洁之道

image-20240904225436374

简介:

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

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

第十二章 协作

image-20240918072128072

大多数软件都是由团队开发出来的。当团队成员能够十分专业地互相协作时,整个团队是最为高效的。单打独斗与游离于团队之外都是不专业的表现。

12.1 程序员与人

我们并非是因为喜欢和其他人在一起工作才选择做程序员的。我们都认为人际关系难以应付而且毫无规律。编程用的机器则整洁,行为也可预见。如果可以一个人待在房间里数个小时沉浸在一些真正有趣的问题上,那将会是最开心的时光。

好吧,我这么说可能有点儿以偏概全了,确实也有不少例外。有许多程序员很善于和别人共事合作,享受其中的挑战。但是整个群体的平均状况还是朝我所描述的方向发展的。我们,程序员们,还是最享受面无表情的沉思,把自己像蚕茧一样裹起来,沉浸于问题思考中。

程序员与雇主:

专业程序员的首要职责是满足雇主的需求。这意味着要和你的经理们、业务分析师们、测试工程师们和其他团队成员很好地协作,深刻理解业务目标。这并不是说你必须要成为业务方面的老学究,而是说你需要理解手上正在编写的代码的业务价值是什么,了解雇你的企业将如何从你的工作中获得回报。

因此,专业程序员会花时间去理解业务。他们会和用户讨论他们正在使用的软件,会和销售人员与市场人员讨论所遭遇的问题,会和经理们沟通,明确团队的短期目标和长期目标。

程序员与程序员:

程序员与程序员之间通常很难密切合作,这就会带来一些不小的问题。

  1. 代码个体所有

    不正常的团队最糟糕的症状是,每个程序员在自己的代码周边筑起一道高墙,拒绝让其他程序员接触到这些代码。我曾在许多地方看到过,不少程序员甚至不愿让其他程序员看见他们的代码。这是引发灾难的“最有效秘诀”。

  2. 协作性的代码共有权

    我赞同这种做法:团队中每位成员都能签出任何模块的代码,做出任何他们认为合适的修改。我期望拥有代码的是整个团队,而非个人。专业开发人员是不会阻止别人修改代码的。他们不会在代码上构造所有权的藩篱,而是尽可能多地互相合作。他们通过合作来达到学习的目的。

  3. 结对

    “专业人士会结对工作。”为什么?因为至少对有些问题而言,结对是最有效的解决方法。

    专业人士结对工作,还因为这是分享知识的最好途径。

    专业人士之所以结对,是因为结对是复查代码最好的方式。(最有效率且最有效果的代码复查方法,就是以互相协作的方式完成代码编写。

12.2 一起协作

专业人士会共同工作。当戴着耳机坐在角落里时,你是无法参与合作的。因此,我期望大家能够围坐在一张桌子前,彼此面对面。你要能够感受到其他人的恐惧担忧,要能够听到其他人工作不顺时的牢骚,要有口头上和肢体语言上的下意识的沟通交流。整个团队要像一个统一的整体,彼此连通。

也许你认为自己一个人工作时会做得更好。也许确实如此,但这并不意味着你一个人工作时,整个团队会做得更好。况且,事实上,一个人单独工作时,不太可能会工作得更好。有些时候,单独工作是正确的。当你只是需要长时间努力思考一个问题时,可以一个人单独工作。当任务琐碎且无足轻重、和另外一个人一起工作显得浪费时,可以一个人工作。但是一般说来,和其他人紧密协作、在大部分时间段中结对工作,是最好的做法。

12.3 结论

也许我们不是因为通过编程可以和人互相协作才选择从事这项工作的。但真不走运,编程就意味着与人协作。我们需要和业务人员一起工作,我们之间也需要互相合作。

From:https://www.cnblogs.com/TonyCode/p/18417842
本文地址: http://www.shuzixingkong.net/article/2089
0评论
提交 加载更多评论
其他文章 [rCore学习笔记 027]地址空间
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 引言 兜兜转转又是新的一章的开始,还是首先要看官方手册里的理论介绍和内容. 这里主要还是提纲挈领地摘抄里面
[rCore学习笔记 027]地址空间 [rCore学习笔记 027]地址空间
嵌入式开发
金葫芦STM32L431上手流程教材书名和开发板教材:《嵌入式技术基础与实践(第6版)》(王宜怀主编)开发板:AHL-STM32L431金葫芦STM32L431上手流程1、需要用到的软件和电子资源 AHL-GEC-IDE(4.55)————>AHL-GEC-IDE (suda.edu.cn)A
嵌入式开发 嵌入式开发 嵌入式开发
开源项目dotnet/eshop 和 dotnet/eshopsupport
dotnet/eshop[1] 和 dotnet/eshopsupport[2] 是两个与 .NET 相关的开源项目,分别用于展示电子商务应用的不同方面。dotnet/eshop:功能与架构:dotnet/eshop 是一个基于 .NET Aspire 的参考电商应用,展示了服务架构在构建现代在线购
开源项目dotnet/eshop 和 dotnet/eshopsupport 开源项目dotnet/eshop 和 dotnet/eshopsupport
CSP初赛知识点:Linux 系统
CSP初赛知识点:Linux 系统 前言 近年 CSP 初赛几乎前 5 道选择题都有一两道有关 Linux 系统的使用,所以作为备战 CSP-J/S 2024 的资料,整理下来啦。 祝各位今年所有考试都能考出自己满意的成绩! 1、常用文件操作命令 以下设文件名均为 csp,需要复制或修改成的文件名均
解密Prompt系列38.多Agent路由策略
常见的多智能体框架有协作模式,路由模式,复杂交互模式等等,这一章我们围绕智能体路由,也就是如何选择解决当前任务最合适的智能体展开,介绍基于领域,问题复杂度,和用户偏好进行智能体选择的几种方案
解密Prompt系列38.多Agent路由策略 解密Prompt系列38.多Agent路由策略 解密Prompt系列38.多Agent路由策略
WiFi基础(四):WiFi工作原理及WiFi接入过程
liwen01 2024.09.16 前言 802.11 无线 WiFi 网有三类帧:数据帧、管理帧、控制帧。与有线网相比,无线 WiFi 网会复杂很多。大部分应用软件开发对 WiFi 的控制帧和管理帧了解得并不多,因为它们在物理层和数据链路层就已经被处理了,上层应用很少能感知到。 一般是在设备出现
WiFi基础(四):WiFi工作原理及WiFi接入过程 WiFi基础(四):WiFi工作原理及WiFi接入过程 WiFi基础(四):WiFi工作原理及WiFi接入过程
LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践
本文主要针对开源文档问答系统Kotaemon的介绍,包括主要功能特点,与传统文档RAG的区别,部署教程以及效果体验等。
LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践 LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践 LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践
深入理解JNDI注入—RMI/LDAP攻击
目录前言JNDI 注入简单理解透过Weblogic漏洞深入理解RMI与LDAP的区别JNDI+RMI漏洞代码触发链lookup触发链JNDI+LDAP 前言 本篇文章初衷是在研究log4j2漏洞时候找不到一篇完整且能够真正让我理解漏洞根因的文章,导致我想写一篇通俗易懂能理解到底啥是JNDI注入,怎么
深入理解JNDI注入—RMI/LDAP攻击 深入理解JNDI注入—RMI/LDAP攻击 深入理解JNDI注入—RMI/LDAP攻击