几个推荐程序员养成的好习惯

本文框架

  • 前言
  • case1 不想当然
  • case2 不为了解决问题而解决问题
  • case3 不留问题死角
  • case4 重视测试环节

前言

中秋国庆双节至,旅行or回乡探亲基本是大家的选择,看看风景或陪陪家人确实是个难得的机会。不过我的这次假期选择了闭关,不探亲,不会友,利用这个假期重新调整总结一下,为2023最后的三个月再奋斗一把。

今天跟大家分享几个工作中的好习惯或者说是心态,虽然道理简单,但却很容易被忽略。
在这里插入图片描述

case1 不想当然

在工作中是不是经常会遇到这种情况:看着自己改的一段代码,想当然的以为改动量不大,自己在开发中考虑的已经非常充分了,认为没必要再去测试或全部测试,代码也不必找同事review,但往往问题就容易在这些地方出问题,而且出的问题恰恰就是被忽略了。

思考:工作中,我们可能会犯一些错误,但千万不要范这种误以为的错误,这种错误特别低级,深究起来也很难解释。

由于人天生的惰性,不愿意多付出多余的精力去干自以为没意义的事情,所以就需要我们不想当然,改了代码就要充分测试,复杂逻辑变动需要约同事去review。

case2 不为了解决问题而解决问题

在开发中,遇到Bug大家是不是有过这种先把问题解决了再说,导致解决了一个Bug又冒出一个新的Bug。比如一个DTC在上电1min中左右会报出来,但上电3min之后就正常了,这时候大家是直接给这个DTC加一个3min的延时诊断,还是说去探究下1min左右会报出来的根本原因,再根据根本原因去解决?

单就上述的case,很多同学肯定会选把根本原因查出来,但实际开发中由于节奏快,任务重,真正遇到的时候可能就不一定会选哪个了,针对这些类似问题我个人的工作习惯是:

情况1:对于时间紧的问题,且验证充分可临时解决的问题,先把问题初步隐藏掉,但初步交付后还是需要尽力去查找问题的根本原因,争取在下一次软件迭代周期将根本问题解决掉;

情况2:对于不太紧急的问题,一定需要查出根本原因,知其然也知其所以然。

case3 不留问题死角

不知道大家也没有听过“墨菲定律”,也就是如果担心某件事情会发生,那么它往往会变得更糟糕,工作中可能的情形就是我们对某处代码可能一直新村疑虑,没彻底捋清楚其中的逻辑,心存疑虑但并没付出行动去攻克它,项目上往往就容易在这块出问题。

我的习惯就是对于自己负责的模块,不管是自己全新开发还是接盘别的同事代码,一定需要从头到尾把代码逻辑梳理清楚,时间充分的话画出对应的流程图,对不熟悉的代码看懂看透。

case4 重视测试环节

开发中,很多同事觉得会写代码才是王道,轻视了测试在整个开发环节的分量,很多问题其实只需要简单测试下就能检查出来,但由于不测试或者测试不充分导致问题报出防线后移,或者直接流到客户端,市场。

我们需要养成重视测试的好习惯,针对我们能想到的case,可能的情形充分测试,降低出错的风险,这样即使后面爆出了问题,至少是我们knowhow不够,而不是我们能避免但自己没测试导致。

加油,每一个为梦想奋斗的人。
在这里插入图片描述

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

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

相关文章

【Python基础】常用模块学习:sys|os|pytest

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

c语言小课设--通讯录(动态内存管理)

前言: 在没学动态内存管理之前,我们用的结构体,数组等都是静态分配内存的,也就是说数组的长度是固定的,但是这并不满足我们的实际需求,所以在通讯录项目里面我就用到了动态内存分布。简单来说,…

第3章-指标体系与数据可视化-3.1.1-Matplotlib绘图库

目录 3.1 Python可视化 3.1.1 Matplotlib绘图库 1. 线图 2. 饼图 3. 条形图 4. 直方图 5.散点图

【最多提取子串数目】python实现-附ChatGPT解析

1.题目 最多提取子串数目 知识点字符串统计Q 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定由[a-z] 26个英文小写字母组成的字符串A和B,其中A中可能存在重复字母,B中不会存在重复字母 现从字符串A中按规则挑选一些字母,可以组成字符串B 挑选规则如下: 同一个位置…

Python|OpenCV-如何给目标图像添加边框(7)

前言 本文是该专栏的第7篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用opencv处理图像的时候,会不可避免的对图像的一些具体区域进行一些操作。比如说,想要给目标图像创建一个围绕图像的边框。简单的来说,就是在图片的周围再填充一个粗线框。具体效果,…

k8s-实战——kubeadm二进制编译

文章目录 源码编译获取源码修改证书有效期修改 CA 有效期为 100 年(默认为 10 年)修改证书有效期为 100 年(默认为 1 年)CentOS7.9环境准备centos脚本安装执行脚本脚本内容手动安装验证编译查看编译后的版本信息参考链接脚本修改源码编译 源码编译kubeadm文件、修改证书的默…

【FPGA项目】图像采集及显示(3)总结

前言 最基础的FPGA图像采集及显示的项目做完,这里小小的总结一下,也顺便聊聊项目中常用的一些调试手段。 一、项目重点 1.1 系统框架的理解 我们先说下数据流,接收——>缓存——>处理——>发送,可以发现很多项目都存在这么一个过程,不同的只是接口而已。而系统…

快速开发微信小程序之一登录认证

一、背景 记得11、12年的时候大家一窝蜂的开始做客户端Android、IOS开发,我是14年才开始做Andoird开发,干了两年多,然后18年左右微信小程序火了,我也做了两个小程序,一个是将原有牛奶公众号的功能迁移到小程序&#x…

HashMap面试题

1.hashMap底层实现 hashMap的实现我们是要分jdk 1.7及以下版本,jdk1.8及以上版本 jdk 1.7 实现是用数组链表 jdk1.8 实现是用数组链表红黑树, 链表长度大于8(TREEIFY_THRESHOLD)时,会把链表转换为红黑树&#xff0c…

centos7卸载docker

菜鸟教程-常见命令:https://www.runoob.com/docker/docker-command-manual.html 1. 准备工作: 1.1 杀死docker有关的容器: docker kill $(docker ps -a -q)1.2 删除所有docker容器: docker rm $(docker ps -a -q)1.3 删除所有d…

简单走近ChatGPT

目录 一、ChatGPT整体背景认知 (一)ChatGPT引起关注的原因 (二)与其他公司的竞争情况 二、NLP学习范式的发展 (一)规则和机器学习时期 (二)基于神经网络的监督学习时期 &…

房产政策松绑,VR看房助力市场回春

近日房贷利率、房产限购开始松绑,房地产市场逐渐被激活,房产行业的线上服务能力,也愈发的受到了重视。随着房贷利率、首付比例变化的消息逐渐推出,部分用户开始入手房产市场,因此房产行业的线上服务也需要不断升级&…

leetCode 122.买卖股票的最佳时机 II 贪心算法

122. 买卖股票的最佳时机 II - 力扣(LeetCode) 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&…

gitlab配置webhook限制提交注释

一、打开gitlab相关配置项 vim /etc/gitlab/gitlab.rb gitlab_shell[custom_hooks_dir] "/etc/gitlab/custom_hooks" 二、创建相关文件夹 mkdir -p /etc/gitlab/custom_hooks mkdir -p /etc/gitlab/custom_hooks/post-receive.d mkdir -p /etc/gitlab/custom_h…

Python教程:PyQt5需要学习,哪些知识点??

PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成。它可用于Python 2和3,拥有超过620个类和6000个函数和方法。这是一个跨平台的工具包,可以运行在所有主要的操作系统,包括UNIX、Windows、Mac OS、Linux等。 #我…

vue3学习实战

vue3新增变化 diff算法变化 vue3的diff算法没有vue2的头尾、尾头之间的diff,对diff算法进行了优化,最长递归子序列。 ref VS reactive ref 支持所有的类型,reactive 支持引用类型,array object Map Setref取值、赋值&#xff…

步力宝科技爆款产品定位,开创智能物联网新商业

数据显示,中国处于 “亚健康”状态人口数量约占总人口的70%,亚健康是一种临界状态,指介于健康和疾病之间的状态。亚健康是一个动态演变的过程,既有向慢病发展的趋势,也能通过合理的干预使人体重返健康状态,…

奥斯卡·王尔德

奥斯卡王尔德 奥斯卡王尔德(Oscar Wilde,1854年10月16日—1900年11月30日),出生于爱尔兰都柏林,19世纪英国(准确来讲是爱尔兰,但是当时由英国统治)最伟大的作家与艺术家之一&#xf…

【RuoYi项目分析】在RuoYi网关实现验证码功能

文章目录 1. 验证码功能的类清单2. 验证码的实现2.1. 验证码的获取2.2. 验证码的校验 3. 总结4. 资料参考 本文主要介绍了用户如何实现验证码,以及该功能如何与 Spring Gateway 联系起来。 1. 验证码功能的类清单 类功能CaptchaProperties验证码的 yml 配置Captcha…

25-多线程

多线程 线程(Thread)是一个程序内部的一条执行流程。 程序中如果有一条执行流程,那这个程序就是单线程的程序 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)。 再例如:消息通信、淘宝、京东系统都离…