首页 > 编程语言 >程序员的修炼之道⑦

程序员的修炼之道⑦

时间:2023-12-29 17:25:26浏览次数:40  
标签:问题 规范 注重实效 之道 程序员 可能 修炼 自动化 团队

第37节 解开不可能解开的谜题

1、戈尔迪斯结号称是没人能解开的结,后来亚历山大大帝来了,用剑劈开了这个结。

2、面对看似不可能解决的问题,一定要转换思路,不要受任何先人之见影响。不要在盒子外面思考,要找到盒子。

3、有时你会发现,自己在处理的问题比你以为的要难得多,总会感觉一定有更容易的方法。这时你可以退回一步,问问自己:

  • 有更容易的方法吗
  • 你是在解决真正的问题,还是被外围的技术问题转移了注意力
  • 这件事情为什么是一个问题
  • 是什么使它如此难以解决
  • 它必须以这种方式完成吗

很多时候,对需求的重新诠释能让整个问题全部消失— 就像戈尔迪斯结。

第 38 节:等你准备好

1、倾听反复出现的疑虑。当你遇到一个反复让你疑虑的问题,需要注意它,给自己时间去理解,之后它可能就会变成某种更坚实的东西。

2、对于某些东西,我们可能不愿意轻易做出承诺,总希望再等等,更多意见的提出。但这很可能是一种拖延,怎么区分是有效的等待还是拖延的接口呢?我们应该快速地构建原型,并进行推延,可能很快我们就找到了更好的解决方案。

第 39 节:规范陷阱

1、编写规范是一项重要的职责,但问题是很多人可能会陷在这里,不断地增加规范项。我们可以做这样一个尝试,写一份简单的描述,告诉别人怎样系鞋带。

这可能是一份并不能帮助他人的描述,因为对有些事情“做”胜于“描述”。因为无意识的行为更快,考虑规范反而会拖慢进度。

2、对待开发文档也一样,不要编写过于详细的规范。因为很可能开发者在思考某个问题时会想到两种不同方案,经过简单对比,选择一个更优的那个。但面对严格的规范文档,一步步思考,这更可能束缚开发者的发挥。

第 40 节:圆圈与箭头

1、设计文档里的圆圈和箭头用来解释他们指代的作用,但这还有可能是推翻我们原先设定的证据。感觉这个是承接上一节的内容,不要被以前的假设和设计所限制,留有一定的弹性空间。

2、我们相信,盲目地采用任何技术,而不把他们放进你的开发实践和能力的语境中,这样的处理日后可能会让你后悔。

3、不要迷信工具以及各种方法学,注重实效的程序员会批判地看待他们,并从中提取精华,融合成每个月都在变得更好的一套工作习惯。

第41节 注重实效的团队

1、书籍的前几章讲了几条如何成为注重实效的开发者的建议,当然他们也对团队有所帮助,如果个体都是注重实效的,那他对整体起的作用更大。

2、不要留破窗户:作为整体的团队更不应该容忍代码质量的问题,不规范的不在乎质量的团队,很有可能把那些注重实效的开发者带偏。

3、煮青蛙:整体中的个人更难觉察到作为团队所存在的问题,可以指定一个“检测员”,让他去检查团队整体进度,依赖项的准备情况,各个环节的配合等内容。

4、交流:杰出的项目团队往往有着截然不同的个性,更能与其他团队进行配合。有一个简单的帮助团队凝聚力的方法:创立团队品牌,以品牌代指整个团队。

5、不要重复你自己(DRY):由于个人理解程度的不同或者新成员的加入,团队总会面临重复的内容,适当的指派一名管理员,让他专门维护这些资料,所有对此有疑问的人都不必自我寻找,只要去找管理员就行了。

6、正交性:对于较大的团队,更应该通过功能进行组织划分,而不是工作职务。比如开发多个项目,会有多名开发,多名测试,多名设计,他们之间更应该按照具体项目进行划分,一个项目的开发,测试和设计为一个小团体。

7、自动化:确保一致性和准确的一种很好的方式是使团队所做的每件事情都能自动化,如果还没有做到那就尝试去做。

8、知道如何停止绘画:团队是由个体组成的,给每个成员足够的空间,并支持他们,而不是一直给他们具化各种需求。

第42节 无处不在的自动化

1、文明通过增加我们不加思索就能完成的重要操作的数目而取得进步。— 阿尔弗雷德·诺思·怀特海

2、我们应该在尽可能多的场景下使用自动化,因为人工流程及不能保证一致性也无法保证重复性。

3、在一些特定场景下我们可以选择适当的工具进行自动化处理:

  • 执行周期任务时可以使用 Cron
  • 项目编译时虽然可以使用 IDE,但是 Makefile 更适合自动化场景
  • 使用生成代码解决不得不做的重复性代码问题
  • 构建自动化,其实就是目前比较常用各类 CI/CD 工具
  • 自动化管理,这是一种更自由的自动化场景,比如要回复 Email,要发布网站,审批流程等,这些可以使用 Shell 或者 Perl、Python 等高级脚本语言。

标签:问题,规范,注重实效,之道,程序员,可能,修炼,自动化,团队
From: https://www.cnblogs.com/Zzzhy0316/p/17935303.html

相关文章

  • 程序员的修炼之道④
    第19节文本操纵1、学习一种文本操纵语言。文本操作语言对于编程的意义,就像是刳刨机对于木工活的意义。2、文本操作的案例。我们的测试数据有好几万条,散落在不同文件,如果需要进行合并并转换为特定格式,手动处理是无法想象的。但如果使用Perl几个小时就可以完成。数据库sche......
  • 程序员的修炼之道③
    第13节估算1、通过学习估算,并将此技能发展到事物的数量级有直觉的程度,你就能展现出一种魔法般的能力,确定他们的可行性。2、多准确才足够准确?130个工作日和大概6个月,是不同的,显然,前者表示的精度更高。我们在做估算的时候也需要选好描述估算时间的单位值。3、估算结果怎么来......
  • 程序员的修炼之道②
    第七节:重复的危害1、可靠的开发软件,并让我们的开发更易于理解和维护的唯一途径,是遵循我们称之为DRY的原则:系统中的每一项都必须具有单一、无歧义、权威的表示。DRY是Dont’tRepeatYourself的缩写。2、重复的产生通常有以下种类:强加的重复。开发者觉得他们无可选择,其实......
  • 代码整洁之道:边界、单元测试、类
    来源:博客园(作者-BNDong)边界边界上的代码需要清晰的分割和定义了期望的测试。应该避免我们的代码过多地了解第三方代码中的特定信息。依靠你能控制的东西,好过依靠你控制不了的东西,免得日后受它控制。单元测试TDD三定律在编写不能通过的单元测试前,不可编写生成代码......
  • 程序员必知!适配器模式的实战应用与案例分析
    适配器模式是一种结构型设计模式,它允许不同接口的对象协同工作,它通过将一个类的接口转换成客户希望的另外一个接口,使得不兼容的类可以一起工作。适配器模式提高了类的复用性、系统的灵活性和可扩展性,并降低了系统间的耦合度,在实际应用中,例如电源适配器和数据转换器,以及编程中封装......
  • 00后程序员,2023年终总结
    00后程序员,2023年终总结作为一个00后程序员,我回顾了过去三年的工作经历。我来自湖南衡阳,虽然互联网上常常开玩笑说我们00后炒主管、炒老板,但实际上我们也在不断努力变得更强。最近两年我没有写博客,不是因为懒,而是我荣升为了一位爸爸,肩上的责任更重了,工作上也需要积极主动承担自......
  • 《程序员的修炼之道》第三章读书笔记
    第3章基本工具中,包含了一些常用的工具和技巧,可以提高我们的工作效率和代码质量。以下是这些小节的简要介绍:14.纯文本的威力:纯文本是一种通用的文件格式,它在各种场景中都非常有用。本节介绍了一些处理纯文本的强大工具和技术,比如正则表达式、grep、sed等。15.shell游戏:shell是......
  • 痞子衡嵌入式:简析i.MXRT1170 MECC64功能特点及其保护片内OCRAM1,2之道
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT1170MECC64功能特点及其保护片内OCRAM1,2之道。ECC是“ErrorCorrectingCode”的简写,ECC能够实现错误检查和纠正,含有ECC功能的内存一般称为ECC内存,使用了ECC内存的系统在稳定性和可靠性......
  • 泛互联网行业A/B测试全解析:产品优化的创新之道
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群近期,火山引擎数智平台举办了“超话数据:企业产品优化分享”的活动。火山引擎产品解决方案专家从企业应用的视角,分享了A/B实验在产品全用户生命周期的体验优化和案例。在用户拉新环节,企业可以通过广......
  • 泛互联网行业A/B测试全解析:产品优化的创新之道
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近期,火山引擎数智平台举办了“超话数据:企业产品优化分享”的活动。火山引擎产品解决方案专家从企业应用的视角,分享了A/B实验在产品全用户生命周期的体验优化和案例。在用户拉新环节,企......