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

编程大牛坚持了 10 年的 10 个编程好习惯

目录

1.多看官方文档

2.面向搜索引擎编程

3.规范命名

4.认真注释

5.不要重复造轮子

6.多读多写代码

7.预留开发时间

8.大胆重构

9.师傅领进门

10.多阅读源码


1.看官方文档

不要被这几个字吓到,官方文档其实都是宝藏。

一个成熟的技术诞生,可以没有博客没有书籍,但一定会有一个官方文档,毋庸置疑,它一定是最准确、最实时的资料。编写官方文档的人,也通常就是这些技术或者软件的开发者,他们是对这些东西最了解的人,所以编写的文档不仅质量非常高,通常内容也都是最新的。

因此,官方文档远比网上的各种博客和论坛等更适合入门学习。当我们遇到很多问题和技术细节的时候,认真将官方文档过一遍,你会发现很多问题和认识模糊的地方都会清晰起来。

程序员都应该掌握通过官方文档去学习一个技术的能力,掌握了这项能力,你就具备了学会其他一切技术框架的基础;而且原汁原味的官方文档,还能锻炼你的自我学习总结能力。

2.面向搜索引擎编程

很多人总以为无论什么都 Google 一下是一件很 low 的行为,但其实,普通程序员+ Google=超级程序员。

用好搜索功能,Google +Stack Overflow + GitHub 能解决你的大部分问题。

所以,在问别人问题之前,先自己搜索一下吧。

当然,超级程序员可不是会Google就行的,把 Google 到的东西吸收并运用起来,才是真正的能力。

不过,无论是看官方文档也好,还是面向 Google 编程也好,都必须要掌握较好的英文能力。这样才能更好的阅读文档,搜索自己所需要的东西。

3.规范命名

ITWorld 曾经发起过一个“程序员最头疼的事情”投票,结果,近半数的程序员认为命名是最头疼的事情。

有时候代码写嗨了,命名的时候就开始放飞自我,gousheng、tiedan、xiaonaigou、i、j.....自己是写嗨了,其他人阅读起来就懵逼了。

所以,不论是内部变量还是全局变量,都要形成自己的一种命名规则,能够一眼看明白变量的意思。混乱或错误的命名不仅让我们对代码难以理解,更会误导我们的思维;反之,良好的命名,则可以大大提高我们的代码易读性,也能大大增强代码的可维护性。

4.认真注释

和命名一样让程序员头疼的还有两件事:写注释头疼,别人不写注释读着头疼。

之所以要写注释,是因为当你在写某个程序的时候,可能当下记得很清楚,这一段是什么机制、如何实现,但是当你写的程序越来越多,你会忘记当初为什么这样写,改动和交接也十分麻烦,对代码进行注释就可以有效避免这种情况。注释不仅可以让人读懂代码,甚至能让读代码的人获取更多信息。

不过,注释贵精不贵多。要杜绝大姨妈般的“例注”,漫山遍野的碎碎念注释,实际就是背景噪音。

5.不要重复造轮子

“不要重复造轮子( Stop Trying to Reinvent the Wheel)”, 可能应该是每个程序员入行被告知的第一条准则。写程序实际上是一个最能“偷懒”的工作:你现在费力实现的每一个功能,可能早已经有极好的解决方法贡献在开源社区,使用好现有的轮子和各种开源库,会让你事半功倍。

当然,要找到一个非常适合的轮子,是非常不容易的一件事。有时候费了九牛二虎之力找了轮子,却发现有这样那样的问题,最后还是无疾而终。

那么,什么样的轮子是一个好轮子呢?

  • 开源,并且 License 宽松。

  • 有文档,代码规范,接口友好,最好有实际用例。

  • 社区相对活跃。

  • 松耦合,定制容易。

总之,只要合适好用,都是一个好轮子。

6.多读多写代码

提高编程能力其实没有捷径,最佳方式就是多写代码。

不过,除了写大量代码,提升编程能力还需要大量阅读别人写的代码。

一来,阅读源码可以提高编程能力。学习都从模仿开始,不管是入门时阅读教程里的示例代码,还是进阶时阅读优秀项目源码,都是很好的学习方式。

二来,阅读源码可以提高 debug 能力。只有练习积累的阅读代码的能力,才能看懂代码,从而快速准确地定位代码中的问题。

最后,阅读源码可以帮助形成良好的代码风格 。“开发”不仅要写可以执行的代码,更是 要写别人读得懂的代码 ,这对代码的维护和扩展大有好处。

持续学习新的编程技术和最佳实践,不断改进自己的编码习惯和技能水平。参与开源项目、阅读优秀的代码和书籍,与其他程序员交流经验和见解。这样可以不断提升自己的编程能力,保持在技术领域的竞争力。 

7.预留开发时间

一个程序员能否精确评估开发时间,是一件非常重要的事情。不过对于新手程序员来说,宁可多算一周,不可少估一天。过于“乐观”容易让你的 boss 受惊吓。

毕竟,在评估开发时间的过程中,你需要预设各种修改对其他模块的影响。一个修改后的单元测试,可接受测试,UAT 环境测试,再到上线,很多地方都是需要花时间的。一旦某个测试不通过,然后又得调试,修改,再进行单元测试......谁能保证每次修改都是一次通过的呢。

8.大胆重构

重构是程序员的主力技能。

一个程序员最大的勇气就是看自己三个月之前写的代码。但是,学习如何将你的代码重构为一份更好的代码,这是一项很有价值的技能。好的代码是改出来的,代码需要不停的重构, 重构应该贯穿代码开发的整个阶段。

重构也并不应该是在几个月之后重构,最好的方式是实时重构。写一天代码,70%的时间都放到重构上都不过份。

9.师傅领进门

最后,作为一个初入职场的新手程序员,找一个可靠的前辈带领自己,是一个非常有利于自己成长的选择。

这个师傅最好能具备这几个特质:

  • 支持你:不会因你的成功而利益受损的人。eg.同事相互竞争

  • 技术技能:是确保你能从他身上实际学到东西的人。

  • 高标准:能让你保持高标准,并不只是为了应付今天的工作,也是为了日后成为更资深的程序员。

这样,当你的工作遇到各种问题时,你的师傅可以带领你走正确的职业发展方向上。

10.多阅读源码

通过阅读他人的代码,你可以学习到其他人的思维方式、解决问题的方法和最佳实践。这有助于提高你的编程技能和设计能力。

了解开源项目:许多优秀的软件项目都是开源的,通过阅读这些项目的源代码,你可以更深入地了解它们的工作原理、架构设计和实现细节。

发现和修复问题:通过检查其他人的代码,你可能会发现一些潜在的 bug 或者性能问题,并能够提出相应的解决方案。

相关文章:

编程大牛坚持了 10 年的 10 个编程好习惯

目录 1.多看官方文档 2.面向搜索引擎编程 3.规范命名 4.认真注释 5.不要重复造轮子 6.多读多写代码 7.预留开发时间 8.大胆重构 9.师傅领进门 10.多阅读源码 1.多看官方文档 不要被这几个字吓到,官方文档其实都是宝藏。 一个成熟的技术诞生,…...

QEMU上PAC功能验证与异常解析

PAC功能如何验证?PAC检查失败时发生什么?问题如何定位?本博客主要探讨这些问题。...

简约轻量-失信录系统源码

失信录系统-最新骗子收录查询系统源码 首页查询: 举报收录页: 后台管理页: 失信录系统 V1.0.0 更新内容: 1.用户查询,举报功能 2.界面独立开发 3.拥有后台管理功能 4.xss,sql安全过滤 5.平台用户查询 6.用户中心(待完…...

前端入门系列-HTML-HTML常见标签(注释,标题,段落,换行)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” HTML常见标签 注释标签 注释不会显示在界面上&#xff0c;目的是提高代码的可读性 <!---这是一个注释----> 注释的原则 要和代码逻辑一致尽量使用中文不要传递负能量 …...

【mysql 第3-10条记录怎么查】

mysql 第3-10条记录怎么查 在MySQL中&#xff0c;如果你想要查询第3到第10条记录&#xff0c;你通常会使用LIMIT和OFFSET子句。但是&#xff0c;需要注意的是&#xff0c;LIMIT和OFFSET是基于结果集的行数来工作的&#xff0c;而不是基于记录的物理位置。这意味着它们通常与某种…...

1.Git是用来干嘛的

本文章学习于【GeekHour】一小时Git教程&#xff0c;来自bilibili Git就是一个文件管理系统&#xff0c;这样说吧&#xff0c;当多个人同时在操作一个文件的同时&#xff0c;很容易造成紊乱&#xff0c;git就是保证文件不紊乱产生的 包括集中式管理系统和分布式管理系统 听懂…...

Git安装教程(图文安装)

Git Bash是git(版本管理器)中提供的一个命令行工具&#xff0c;外观类似于Windows系统内置的cmd命令行工具。 可以将Git Bash看作是一个终端模拟器&#xff0c;它提供了类似于Linux和Unix系统下Bash Shell环境的功能。通过Git Bash&#xff0c;用户可以在Windows系统中运行基于…...

SpringData ElasticSearch - 简化开发,完美适配 Spring 生态

目录 一、SpringData ElasticSearch 1.1、环境配置 1.2、创建实体类 1.3、ElasticsearchRestTemplate 的使用 1.3.1、创建索引 设置映射 1.3.2、创建索引映射注意事项&#xff08;必看&#xff09; 1.3.3、简单的增删改查 1.3.4、搜索 1.4、ElasticsearchRepository …...

突破!AI机器人拥有嗅觉!仿生嗅觉芯片研究登上Nature子刊

我们一直梦想着让AI与人类能够更加相似&#xff0c;赋予它们视觉与听觉。而让机器人拥有嗅觉一直以来面临着巨大的困难。 香港科技大学范志勇教授领导的研究团队凭借最新研发的仿生嗅觉芯片&#xff08;BOC&#xff09;在这一领域取得了重大突破。该研究成果目前已被发表到IF …...

前端接口防止重复请求实现方案

前言 前段时间老板心血来潮&#xff0c;要我们前端组对整个的项目都做一下接口防止重复请求的处理&#xff08;似乎是有用户通过一些快速点击薅到了一些优惠券啥的&#xff09;。。。听到这个需求&#xff0c;第一反应就是&#xff0c;防止薅羊毛最保险的方案不还是在服务端加…...

【leetcode面试经典150题】13.除自身以外数组的乘积(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…...

网络编程核心概念解析:IP地址、端口号与网络字节序深度探讨

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 本节重点 认识IP地址, 端口号, 网络字节序等网络编程中的基本概念; 1.前言 网络编程&#xff0c;作为现代信息社会中的一项核心技术&…...

突破编程_C++_网络编程(TCPIP 四层模型(网络层(1))

1 网络层概述 TCP/IP 四层模型中的网络层是模型中的核心组成部分&#xff0c;它主要负责处理数据包的路由和转发&#xff0c;确保数据能够在源主机和目标主机之间准确地传输。 一、主要功能 网络层的主要功能是实现数据包的选路和转发。当数据从应用层传输到传输层后&#x…...

Java | Leetcode Java题解之第9题回文数

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isPalindrome(int x) {// 特殊情况&#xff1a;// 如上所述&#xff0c;当 x < 0 时&#xff0c;x 不是回文数。// 同样地&#xff0c;如果数字的最后一位是 0&#xff0c;为了使该数字为回文&#xff0…...

极简云验证 download.php 文件读取漏洞复现

0x01 产品简介 极简云验证是一款开源的网络验证系统&#xff0c;支持多应用卡密生成&#xff1a;卡密生成 单码卡密 次数卡密 会员卡密 积分卡密、卡密管理 卡密长度 卡密封禁 批量生成 批量导出 自定义卡密前缀等&#xff1b;支持多应用多用户管理&#xff1a;应用备注 应用版…...

红黑树路径长度分析:证明与实现

红黑树路径长度分析&#xff1a;证明与实现 一、红黑树的基本性质二、证明&#xff1a;最长路径至多是最短路径的2倍2.1 证明思路2.2 证明过程 三、伪代码实现四、 C语言代码实现5、 结论 红黑树作为一种高效的自平衡二叉搜索树&#xff0c;在计算机科学领域中被广泛应用于各种…...

esp32 gpio初识(一)

目录 功能介绍 实操 功能介绍 引脚又叫管脚&#xff0c;英文叫 Pin, 就是从集成电路&#xff08;芯片以及一些电子元件&#xff09;内部电路引出与外围电路的接线的接口。 在我们的 ESP32 开发板上, 我们可以把这些称为引脚, 这些引脚其实是从 ESP32 芯片内部引出来的, 我们…...

python 自制黄金矿工游戏(设计思路+源码)

1.视频效果演示 python自制黄金矿工&#xff0c;细节拉满沉浸式体验&#xff0c;看了你也会 2.开发准备的工具 python3.8, pygame库(python3.5以上的版本应该都可以) 图片处理工具&#xff0c;美图秀秀 截图工具&#xff0c;电脑自带的 自动抠图网页&#xff1a;https://ko…...

Splunk Attack Range:一款针对Splunk安全的模拟测试环境创建工具

关于Splunk Attack Range Splunk Attack Range是一款针对Splunk安全的模拟测试环境创建工具&#xff0c;该工具完全开源&#xff0c;目前由Splunk威胁研究团队负责维护。 该工具能够帮助广大研究人员构建模拟攻击测试所用的本地或云端环境&#xff0c;并将数据转发至Splunk实例…...

OpenCV入门例程:裁剪图片、模糊检测、黑屏检测

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 本例程运行环境为CentOS7&…...

手搓STM32H743开源飞控系列教程---(五) 飞控IMU方向调整

1. 为什么需要调整飞控IMU方向 第一次玩飞控的朋友可能会遇到一个奇怪现象&#xff1a;明明把飞控板水平放在桌面上&#xff0c;地面站显示的姿态却歪了30度。这种情况十有八九是IMU安装方向与飞控默认设定不匹配导致的。我刚开始玩穿越机时就踩过这个坑&#xff0c;当时把飞控…...

提升开发效率与编码体验:开源字体LxgwWenKai跨平台配置全指南

提升开发效率与编码体验&#xff1a;开源字体LxgwWenKai跨平台配置全指南 【免费下载链接】LxgwWenKai LxgwWenKai: 这是一个开源的中文字体项目&#xff0c;提供了多种版本的字体文件&#xff0c;适用于不同的使用场景&#xff0c;包括屏幕阅读、轻便版、GB规范字形和TC旧字形…...

用LVGL玩转嵌入式UI:5个实战控件代码详解(按钮/滑块/图片/标签/开关)

LVGL嵌入式UI开发实战&#xff1a;五大核心控件深度解析与代码优化 在资源受限的嵌入式设备上实现流畅美观的用户界面&#xff0c;一直是开发者面临的挑战。LVGL&#xff08;Light and Versatile Graphics Library&#xff09;作为一款轻量级开源图形库&#xff0c;凭借其丰富的…...

AT32F435_437_USB_MSC_SDIO:实现高效SD卡U盘功能的开发指南

1. 从零开始&#xff1a;AT32F435/437的USB MSC功能初探 第一次接触AT32F435/437的USB大容量存储设备(MSC)功能时&#xff0c;我完全被它的实用性惊艳到了。想象一下&#xff0c;你的嵌入式设备突然变身成电脑上的U盘&#xff0c;可以直接拖拽文件读写SD卡&#xff0c;这对数据…...

HunyuanVideo-Foley实战案例:为纪录片自动匹配环境音效的完整工作流

HunyuanVideo-Foley实战案例&#xff1a;为纪录片自动匹配环境音效的完整工作流 1. 项目背景与需求 在纪录片制作过程中&#xff0c;环境音效的采集和匹配往往需要耗费大量时间和人力成本。传统方式需要音效师实地录制或从音效库中手动挑选&#xff0c;整个过程耗时且难以保证…...

OpenClaw怎么集成?OpenClaw移动云小白6分钟搭建及使用指南【最新!】

OpenClaw怎么集成&#xff1f;OpenClaw移动云小白6分钟搭建及使用指南【最新&#xff01;】。OpenClaw怎么部署&#xff1f;本文面向零基础用户&#xff0c;完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw&#xff08;Clawdbot&#xff09;的流程&#…...

避坑指南:UR5e机器人SpeedL模式下的笛卡尔空间控制,如何避免奇异点和超限?

UR5e机器人SpeedL模式避坑实战&#xff1a;笛卡尔空间控制的三大安全策略 实验室里&#xff0c;机械臂突然发出刺耳的警报声——这可能是每个UR5e初学者都经历过的噩梦。当你在笛卡尔空间用SpeedL指令控制机器人画复杂轨迹时&#xff0c;关节超限、奇异点问题和自碰撞就像三个隐…...

从零开始:用QGIS和PostgreSQL构建交通路线空间数据库(含Python脚本自动化技巧)

从零开始&#xff1a;用QGIS和PostgreSQL构建交通路线空间数据库&#xff08;含Python脚本自动化技巧&#xff09; 在交通规划与智慧城市建设的浪潮中&#xff0c;空间数据的高效管理成为技术团队的核心挑战。传统文件存储方式难以应对大规模交通网络数据的实时查询与分析需求&…...

麒麟V10系统下国产海量数据库安装全攻略(含内核参数优化与避坑指南)

麒麟V10系统下国产海量数据库安装全攻略&#xff08;含内核参数优化与避坑指南&#xff09; 在国产化技术快速发展的今天&#xff0c;越来越多的企业和机构开始采用国产操作系统和数据库产品。麒麟V10作为国产操作系统的代表之一&#xff0c;其稳定性和安全性得到了广泛认可。而…...

根据您提供的写作范围,我为您总结的标题为:“昆通泰MCGS7.7嵌入版:6车位停车场监控系统仿...

6车位停车场监控系统昆通泰MCGS7.7嵌入版仿真运行带运行效果视频6车位停车场监控系统用昆通泰MCGS7.7嵌入版做仿真&#xff0c;真的是新手友好型项目——不用扛硬件、不用接复杂通讯&#xff0c;靠内部变量和几段脚本就能把核心逻辑跑通&#xff0c;还能直观看到实时效果&#…...