当前位置: 首页 > news >正文

良好的代码习惯

虽然我们大家都知道这个道理,但能长期坚持下来的并不多。

在多年的项目开发过程中,遇到了各型各色的程序员,有技术一流的,有速度一流的,当然也有bug不断的,但真正能做到养成良好代码习惯并不多,我一开始也是认为把功能完成能用就行了,有必要花大力气弄这些东西吗?不过在吃了几次亏之后,我才真正知道这点的重要性。

举几个例子吧:有位动手能力不错的同事做了一个项目,后面需要3、4个测试人员给他测试,旧的bug没有改完,新的bug就又出现了,弄的整个项目组怨声载道,叫苦连天;其实这位同事在设计、美工方面很有想法,钻研技术的能力也很高,就是不好的代码习惯拉低了他的水平,最关键的是他已经形成了坏的习惯,想修改就比较难了;我也曾经在早期的一个项目中由于良好的代码习惯,造成项目一出问题,就东怀疑西怀疑,无法定位问题根源,只能变通解决,造成问题一出再出,差点搅黄了项目不说,还让自己对项目开发产生了恐惧感(一提到这个项目的问题就不知所措)。

我不断在研究什么是良好的代码习惯:

每写一句代码,脑子要思维定式的问问自己是否是最佳的代码【如果不是,就需要查资料问别人,达到自己认可,日积月累慢慢就会自我感觉良好】;

每写一个函数,就要想想这个函数是否符合面向对象开发规范【自从采用面向对象的分析、设计、开发后,很多疑难杂症都有治疗方案了,治不治得好就看你的水平了】;

每写一个逻辑,要在头脑中验算几遍是否可行【复杂的逻辑要多动手,勾画出逻辑的关键】;

每一次函数、逻辑调用,要考虑是否存在失败的情况,如何应对【这是很多程序员的通病,只管成功不管失败,结果失败来临时,束手无策】;

每一个页面要从左上角到右下角,把涉及的逻辑考虑完善,主要逻辑一定要自己亲自测试一遍,条件允许的话所有的逻辑尽量都要自己能控制到【很多情况下,功能做完了,由于一点的小bug造成用户对软件质量产生质疑,节省一点时间结果得不偿失】。

啰里啰嗦说了这么多,其实核心只有一个,细节决定成败,只有注重了细节,才能经得起风吹雨打,如果平时不注重细节,一段发现问题,不能及时定位,因小失大,后悔莫及。

相关文章:

良好的代码习惯

虽然我们大家都知道这个道理,但能长期坚持下来的并不多。 在多年的项目开发过程中,遇到了各型各色的程序员,有技术一流的,有速度一流的,当然也有bug不断的,但真正能做到养成良好代码习惯并不多&#xff0c…...

音乐生成模型应用

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...

DBEUG:二维图尺寸没思路

问题 标注总是不对 解决 关注孔(螺纹 沉头 通孔 标注清楚)关注孔的定位(同心圆 靠边定位)0.02一定打开三维图 看装配关系过盈 还是 查公差表可以min max限制装配公差一定要有意义部分宽度变化大的加平行修改的rev改成1 方框1表…...

【图像去雾系列】使用SSR/MSR/MSRCR/MSRCP/automatedMSRCR算法对单图像进行图像增强,达到去雾效果

目录 一 图像去雾算法概述 二 SSR/MSR/MSRCR算法 三 实践 一 图像去雾算法概述 近些年来,出现了众多的单幅图像去雾算法,其主要可以分为 3 类:基于图像增强的去雾算法、基于图像复原的去雾算法和基于 CNN 的去雾算法。 ▲基于图像增强的去雾算法 通过图像增强技术突出图…...

oracle普通导出导入

原始的普通导出导入工具,是一个客户端工具。使用导出工具(export utility简称exp)是将数据从oracle数据库以二进制形式写入操作系统文件,这个文件存储在数据库之外,并且可以被另一个数据库使用导入工具(imp…...

如何将CSDN文章导出为pdf文件

第一步: 打开想要导出的页面,空白处点击鼠标右键⇒点击“检查”或“check”,或直接在页面按F12键。 第二步: 复制以下代码粘贴到控制台,并按回车。 若提示让输入“允许粘贴”或“allow pasting”,按提示…...

利用Python实现供应链管理中的线性规划与资源优化——手机生产计划1

目录 写在开头1. Python与线性规划的基础2.供应链管理中的资源优化3.利用Python进行供应链资源优化3.1 简单的优化实例3.2 考虑多种原材料3.3 多种原材料、交付时间与物流融合的情况 4.规范性分析在供应链管理中的应用价值写在最后 写在开头 在全球供应链日益复杂的背景下&…...

Spring Cloud全解析:配置中心之springCloudConfig分布式配置动态刷新

分布式配置动态刷新 当配置中心中的配置修改之后,客户端并不会进行动态的刷新,每次修改配置文件之后,都需要重启客户端,那么如何才能进行动态刷新呢 可以使用RefreshScope注解配合actuator端点进行手动刷新,不需要重…...

mac如何查看shell是 zsh还是bash

怎么确定mac使用的 shell类型 在终端中输入echo $0命令查看你所使用的 shell(默认使用的zsh) echo $0# 或者 echo $SHELL 如果是 bash 配置文件则为:~/.bash_profile 是 zsh,则配置文件为:~/.zshrc 如何更改默认 S…...

STM32cubeMX配置Systick的bug

STM32cubeMX版本:6.11.0 现象 STM32cubeMX配置Systick的时钟,不管选择不分频 还是8分频。 生成的代码都是一样的,代码都是不分频。 即不管选择不分频还是8分频,Systick都是使用的系统时钟 函数调用 HAL_Init() → HAL_Init…...

分享几个好用js片段

最近在做telegram小程序,所以又回归了web端了,发现几个好用又简洁的代码片段,在这里分享一下。 获取浏览器cookie值 const cookie name > ; ${document.cookie}.split(; ${name}).pop().split(;).shift();cookie(_ga); 2. 将RGB转换为1…...

web前端之实现一只可爱的小杰尼乌龟、伪元素、动画

MENU 前言效果图htmlstyle 前言 代码段使用HTML和CSS创建一个“杰尼龟”的动画。 效果图 html <div class"squirtle"><div class"tail"></div><div class"body"><div class"stomach"></div><d…...

银河麒麟服务器版在rc.local使用ifcong 配置IP和nmcli的区别

1、使用ifconfig配置IP ‌ifconfig是一个传统的网络配置工具&#xff0c;‌它直接操作网络接口&#xff0c;‌允许用户手动设置IP地址、‌子网掩码等网络参数。‌这种方式比较直接&#xff0c;‌但需要用户对网络接口和配置有较深入的了解。‌使用ifconfig配置的IP地址在系统重…...

【运维】深入理解 Linux 中的 `mv` 命令,使用 `mv` 移动所有文件但排除特定文件或文件夹

文章目录 一、基本语法二、基本用法三、使用 `mv` 移动所有文件但排除特定文件或文件夹**命令解释:**四、其他常用选项五、总结深入理解 Linux 中的 mv 命令:移动文件和文件夹的艺术 在日常使用 Linux 的过程中,mv(move)命令是我们经常会用到的一个命令,它不仅可以用来移…...

Xilinx课程,就这么水灵灵地上线了~

如果你想了解&#xff1a; 如何利用精通流水线&#xff08;Pipeline&#xff09;技术&#xff0c;让电路设计效率倍增&#xff1f; 如何掌握利用性能基线指导设计流程的方法&#xff1f; 如何理解集成电路设计中的UltraFast Design Methodology Implementation设计方法学中的…...

【axios get请求 中文乱码】

问题复现 前端请求&#xff1a; company/queryFenByOrgNo?orgNo5&qcNam%D2%BB%C6%DA qcNam 一期 后端接收&#xff1a; CompanyManagementController - 入参 orgNo“5”,qcNamһ&#xfffd;&#xfffd; 问题解决方案 let httpUrl this.httpcompany/queryFenByOrgNo…...

智能分析/视频汇聚EasyCVR安防视频融合管理云平台技术优势分析

安防行业的发展历程主要围绕视频监控技术的不断改革升级&#xff0c;从最初的模拟监控到数字监控&#xff0c;再到高清化、网络化监控&#xff0c;直至现在的智能化监控&#xff0c;每一次变革都推动了行业的快速发展。特别是近年来&#xff0c;随着AI、大数据、物联网等技术的…...

arcgis-坡度坡向分析

坡向的描述有定性和定量两种方式&#xff0c;定量是以东为0&#xff0c;顺时针递增&#xff0c;南为90&#xff0c;西为180&#xff0c;北为270等&#xff0c;范围在0&#xff5e;35959′59″之间。 定性描述有8方向法和4方向法. 8 方向为东、东南、南、西南、西、西北、北、东…...

【银河麒麟高级服务器操作系统】实际案例分析,xfsaild占用过高

了解银河麒麟操作系统更多全新产品&#xff0c;请点击访问麒麟软件产品专区&#xff1a;https://product.kylinos.cn 服务器环境及配置 物理机/虚拟机 物理机 处理器&#xff1a; Intel(R) Xeon(R) Silver 4110 CPU 2.10GHz 内存&#xff1a; 65536 MiB (64 GiB) 主板…...

JS中【setTimeout】使用注意事项总结

在JavaScript中&#xff0c;setTimeout是一个用于延迟执行某个函数的非常常见和有用的函数。使用setTimeout时&#xff0c;有几个重要的方面需要注意&#xff1a; 1. 基本用法 setTimeout的基本语法如下&#xff1a; setTimeout(function, delay);function&#xff1a;这是你…...

别再手动点菜单了!用这招让Cadence Virtuoso Schematic效率翻倍(附Net高亮快捷键配置)

电路设计效率革命&#xff1a;Cadence Virtuoso Schematic高阶快捷键配置指南 在集成电路设计的浩瀚宇宙中&#xff0c;Cadence Virtuoso如同设计师手中的光刻机&#xff0c;每一次精准操作都直接影响最终芯片的性能与可靠性。然而&#xff0c;当面对数百个晶体管组成的复杂模…...

组态王通用扫码枪配置

使用组态王扫码枪驱动&#xff0c;是绑定变量&#xff0c;扫码后直接就可以显示扫码内容。解决每次扫码输入数据时必须先用鼠标点进输入框内的问题。驱动安装先添加驱动&#xff0c;亚控网站的文件为 barcodescanner&#xff0c;这个文件是组态王通用扫码枪的驱动&#xff0c;但…...

Elden Ring帧率解锁终极指南:从60帧到144+的完整教程

Elden Ring帧率解锁终极指南&#xff1a;从60帧到144的完整教程 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Elden…...

从API Key管理视角看Taotoken平台的安全与审计功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从API Key管理视角看Taotoken平台的安全与审计功能 对于依赖大模型API进行开发的团队而言&#xff0c;API Key的管理与安全是项目稳…...

Python-for-Android 完整指南:5分钟将Python应用打包为Android APK

Python-for-Android 完整指南&#xff1a;5分钟将Python应用打包为Android APK 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android Python-for-Android&#xff0…...

Linux 负载均衡的 cache_nice_tries:缓存友好的迁移尝试

简介现如今服务器、嵌入式设备、工控主板普遍采用多核、NUMA 架构 CPU&#xff0c;多进程多线程并发运行模式成为常态。Linux 内核依靠调度域分层负载均衡机制&#xff0c;分散 CPU 运行压力&#xff0c;避免单核心负载过高、其余核心空闲浪费硬件算力。但任务跨核心迁移是一把…...

当卫星在天上“读懂”人间:ICLR 2025 论文深度解读师玉娇、昃向辉的CS2S

把一张卫星图变成一张街景照片&#xff0c;就像把一个俯视棋盘拼成一面看台——不仅要摆对每一枚棋子&#xff0c;还要看懂整场比赛想象这样一个场景&#xff1a;你在城市规划部门工作&#xff0c;需要快速生成某条街道在不同季节、不同天气条件下的真实渲染效果&#xff0c;以…...

热电效应自发电自行车灯:利用体温实现免充电照明的工程实践

1. 项目概述&#xff1a;从人体体温到自行车灯光你有没有想过&#xff0c;骑自行车时身体散发出的热量&#xff0c;除了让你出汗&#xff0c;还能干点什么&#xff1f;这个项目就是把我们骑车时产生的“废热”&#xff0c;变成照亮前路的灯光。听起来有点像科幻情节&#xff0c…...

5个高效技巧:重新定义你的Chrome书签管理体验

5个高效技巧&#xff1a;重新定义你的Chrome书签管理体验 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 你是否曾花费数分钟在混乱的书签海洋中寻找那…...

UnityWebRequest遇到SSL证书错误别慌!手把手教你用CertificateHandler绕过验证(附完整C#代码)

Unity开发中SSL证书验证问题的应急处理与深度解析当你在Unity项目中使用UnityWebRequest进行HTTPS通信时&#xff0c;突然遇到"Curl error 60"或"SSL CA certificate error"这类证书验证错误&#xff0c;确实会让人措手不及。特别是在开发关键阶段&#xf…...