首页 > 编程语言 >阅读笔记之《程序员修炼之道-从小工到专家》八

阅读笔记之《程序员修炼之道-从小工到专家》八

时间:2023-06-07 23:47:13浏览次数:40  
标签:小工 注重实效 注释 程序员 修炼 测试 自动化 文档 团队

第41节 注重实效的团队

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

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

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

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

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

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

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

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

第42节 无处不在的自动化

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

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

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

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

第43节 无情的测试

1、注重实效的程序员会受到找到自己 bug 的驱使,以免以后经受由别人找到我们 bug 带来的羞耻。

2、早测试,常测试,自动化测试。要通过全部测试,编码才算完成。

3、测试主要围绕三个方面进行:测试什么、怎样测试、何时测试。

4、测试什么。测试类型有以下这些:

  • 单元测试:单元测试是函数级,有时也算做模块级的测试,要保证他们都正常通过。
  • 集成测试:组成项目的子系统能工作,且它们之间能很好的协同。
  • 验证和校验:这个类似AB测,是产品层面的测试。
  • 异常测试,资源耗尽,错误情况,如何恢复等。
  • 性能测试,压力测试,负载测试:这些情况通常是服务器相关的测试流程。
  • 可用性测试:也是产品项的测试,需要分析和调研,需求是否是有用的。

5、怎样测试。主要介绍有哪些测试方法:

  • 回归测试:回归测试通常是测试的后面阶段,新旧功能一起测试,新功能不应该影响旧功能。

  • 测试数据:对于一些特殊场景,测试数据能起到很大帮助,比如需要大量数据,强调边界条件的数据,能展现特定字段的数据等。

  • GUI系统:UI通常不好测试,所以应该做好解耦,将逻辑和视图拆分开进行测试。

  • 对测试进行测试:故意制造一些bug,观察你的测试系统能否发现。

  • 彻底测试:这里需要强调的是测试覆盖率,这其中需要强调的是测试状态的覆盖,而不是代码覆盖。要对不同状态都覆盖到。

6、何时进行测试。尽早测试,而且测试应该是自动完成的,我们在提交代码时就应该保证测试已经全部通过。

第44节 全都是写

1、代码要跟文档紧密结合,我们要认真对待注释及文档,他们不是可有可无的东西。

2、我们喜欢看到简单的模块级头注释,关于重要数据和类型声明的注释,以及给每个类和每个方法所加的简要头注释,用于描述函数的用法和任何不明了的事情。

3、应当使用特定的格式进行注释,通常对应语言或者 IDE 有推荐的注释格式。

4、可执行文档,即使按照特定格式进行注释,然后利用工具提取注释内容并生成文档。例如 JavaDoc

5、有时文档撰写者和开发并不是同一人,但他们应当接受同样的原则,特别是 DRY,正交性,以及自动化原则等。

iOS也有一个文档生成工具:jazzy,支持 OC 和 Swift,它可以根据标准的注释生成文档。

第45节 极大的期望

1、某个项目团队奇迹般的完成了一个非常复杂的项目,但却遭到用户抵制,原因是该引用没有帮助系统。所以考虑现实,项目的成功是由它在多大程度上满足了用户的期望来衡量的。

2、要与客户之间多交流期望,了解他们的需求,而不是一味沉溺在技术的世界里。

3、适当制造惊喜,会有些通用性的技巧能让项目获得更好的体验。比如:

  • 气球式帮助
  • 快捷键
  • 日志文件分析器
  • 自动化安装

标签:小工,注重实效,注释,程序员,修炼,测试,自动化,文档,团队
From: https://www.cnblogs.com/fengjiale/p/17464898.html

相关文章

  • 阅读笔记之《程序员修炼之道-从小工到专家》九
    第46节傲慢与偏见1、注重实效的程序员不会逃避责任,相反,我们乐于接受挑战,乐于使我们的业务知识广为人知。2、过去时代的手艺人为能在他们的作品上签名而自豪,你也应该如此。SignYourWork.3、KentBeck在极限编程(XP)里的建议是采用公共的代码所有权,其还要求了结对编程,以防匿......
  • 阅读笔记之《程序员修炼之道-从小工到专家》六
    第30节黑板1、设想侦探破案的过程,他借助于一块黑板,把不同线索写出来;其他侦探也可以写下自己的推断和已掌握的案情细节。所有这一切串联起来将共同帮助案件侦破,但不同的线索之间是可以独立进行的。2、这里的黑板可以抽象为一种处理事件的模型。不同于原始的工作流需要考虑各种状......
  • 阅读笔记之《程序员修炼之道-从小工到专家》七
    第36节需求之坑从本节开始进入了第七章节:在项目开始之前。本章节讨论了在项目开始之前的一些建议。1、完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的。这句话的一种解读时,不要搜集需求,需求太多,容易让我们抓不住重点,更应该深挖需求,围绕核心功能不断打磨。2、挖掘......
  • 程序员如何成长
    做技术是打怪兽不是养宠物,为什么要打怪兽?因为难;为什么难很重要?因为难的事情才能带来成长;为什么要成长?承认吧,因为「如何成长」是当代人,包括你我他在内焦虑的源泉。过去几个月内我在写一系列主题为「NodeJS实战」的文章,内容来源是过去两年独自开发和运维site2share网站的经验,本篇......
  • 程序员常说的“钩子”
    百度定义勾子   ......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉树的右视图
    1.简述:给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]示例2:输入: [1,null,3]输出: [1,3]示例3:输入: []输出: []2.代码实现:classSolution{publicList<I......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉树中的最大路径和
    题目:二叉树中的路径被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中至多出现一次。该路径至少包含一个节点,且不一定经过根节点。路径和是路径中各节点值的总和。给你一个二叉树的根节点root,返回其最大路径和。 示例1:输入:root=......
  • ChatGPT 时代,程序员的生存之道 | 人工智能 AI
    前言ChatGPT近期炙手可热,仿佛没有什么问题是它不能解决的。出于对ChatGPT的好奇,我们决定探索下它对于前端开发人员来讲,是作为辅助工具多一些,还是主力工具更多一些?2D能力测试我们就挑选一个著名的递归回溯问题——“八皇后”,看看ChatGPT的表现如何。什么是“八皇后”首......
  • 程序员在Ubuntu安装之后的配置 - 2
    这是一篇记录Ubuntu服务器安装后基本软件安装、信息配置的帖子,主要内容以若干个bash文件的格式给出。详情可以参考我之前写过的文章:https://www.cnblogs.com/Higgerw/p/14036700.html#:~:text=https%3A//pan.baidu.com/s/1hNJ5Y7fqs6ONbwvHzv5qnA代码片段1有很多软件工具不需......
  • w15-小工具
    w15-小工具功能​ 该工具可以完成检测图像中鼠标点击位置像素点的rgb值或者hsv值等的颜色像素值,并能够用鼠标在图像中画出一个封闭的轮廓,可以求出轮廓的面积和周长要求将结果显示在控制台或者图像上合适的位置(将结果显示在图像上时注意调整字体和大小合适)。思路​ 由于openc......