【编程向导】程序员如何编写干净,清爽的代码

简介: 老实说,每个开发人员(是的,即使是那些有多年经验的开发人员)都曾在某个时候发布过凌乱的代码。编写干净的代码并不是什么精英技能。这是你可以养成的习惯。那么重构呢?这只是您使代码真正有意义的机会 - 对您和以后维护它的人来说都是有 `意义 `的。让我们来分析一下。没有绒毛。没有抽象的理论。只是 `实用 `的、真实的提示,可帮助你编写干净、可维护的代码。

老实说,每个开发人员(是的,即使是那些有多年经验的开发人员)都曾在某个时候发布过凌乱的代码。
编写干净的代码并不是什么精英技能。这是你可以养成的习惯。那么重构呢?这只是您使代码真正有意义的机会 - 对您和以后维护它的人来说都是有 意义的。
让我们来分析一下。没有绒毛。没有抽象的理论。只是 实用的、真实的提示,可帮助你编写干净、可维护的代码。

1. 按照你的意思命名

你的变量和函数需要讲述一个故事。
不是 、 不是 、 不是 。这些只是混淆的占位符。

❌ 差:getUserProfile() getData()
❌ 差:maxLoginAttempts m
AI 代码解读

当您正确命名时,您的代码会自行解释 — 不需要侦探工作。

2. 少即是多:函数大小的力量

如果你像一篇文章一样滚动浏览一个函数,那就有问题了。
长函数难以阅读、难以调试且难以维护。相反,将它们分解为更小的单一用途函数。
可以这样想:每个函数都应该回答一个问题。如果它回答了 5 个,就把它分开。

例:
// Instead of this
function processUserData(user) {
   
  validateUser(user);
  saveToDatabase(user);
  sendEmail(user.email);
}

// Do this
function validateAndSaveUser(user) {
   
  validateUser(user);
  saveToDatabase(user);
}

function notifyUser(email) {
   
  sendEmail(email);
}
AI 代码解读

这使您的代码更易于阅读和重用。未来 - 你会感谢你。

3. 一致性是关键

你有没有参与过一个项目,在一个地方又在另一个地方被调用?混沌。 userListusersactiveUsersArray
保持命名约定、缩进和格式一致。当您的代码遵循可预测的模式时,它更易于阅读,也更易于调试。

❌ 差:userList, orderList, productList users, ordersList, listOfProducts
AI 代码解读

选择一个约定并坚持下去。没有惊喜。

4. 有目的地发表评论,而不是出于习惯

评论应该解释原因,而不是解释什么。如果您的代码需要注释来说明它的作用,请改为重写代码。
例:

// ❌  坏习惯
// Increase count by 1
count = count + 1;

// ✅ 好习惯
// Edge case: Prevents counter from going negative
if (count > 0) {
   
  count--;
}
AI 代码解读

写增加价值的评论,而不是陈述显而易见的评论。

5. 魔术数字和硬编码值 – 摆脱它们

见过包含随机数的函数吗?是的,这是一场维护噩梦。

相反,请使用使这些值有意义的常量。

例:

// ❌ 
if (user.loginAttempts > 3) {
   
  lockAccount(user);
}

// ✅ 
const MAX_LOGIN_ATTEMPTS = 3;
if (user.loginAttempts > MAX_LOGIN_ATTEMPTS) {
   
  lockAccount(user);
AI 代码解读

}
好多了。

6. DRY:不要重复自己

重复的代码只是等待中断。如果您发现自己在复制粘贴,请停止。请改为创建可重用的函数或模块。

例:

// ❌ 
sendEmail(user.email, "Welcome!");
sendEmail(admin.email, "New user registered!");

// ✅ 
function sendNotification(email, message) {
   
  sendEmail(email, message);
}
sendNotification(user.email, "Welcome!");
sendNotification(admin.email, "New user registered!");
AI 代码解读

这样,当需要更改时,您只有一个更新位置。

7. 保持你的代码可靠

如果您还没有听说过 SOLID 原则,现在是开始的好时机。以下是 5 条简单的规则,可使您的代码更简洁、更易于维护。
如果不出意外,请从以下位置开始:单一责任原则。
➡ 每个函数 / 类都应该做一件事并把它做好。
如果您的类同时处理用户身份验证和数据库存储,那么是时候进行重构了。

8. 无情地重构 编写干净的代码不是一劳永逸的事情。这是一种习惯。

每次审查代码时,请寻找改进代码的方法:
你能重命名变量为清楚起见吗?
您能分解一个巨大的 函数吗?
你能删除不必要的评论吗?
不要等待重大重写 - 随时 重构

例:

// ❌ First draft
function fetchUserData(userId) {
   
  return fetch(`https://api.example.com/user/${
     userId}`)
    .then(response => response.json())
    .catch(error => console.error(error));
}

// ✅ Refactored
async function fetchUserData(userId) {
   
  try {
   
    const response = await fetch(`https://api.example.com/user/${
     userId}`);
    return await response.json();
  } catch (error) {
   
    console.error(error);
  }
}
AI 代码解读

重构并不意味着您的第一次尝试很糟糕,而是意味着您正在改进它。
如果可以:
✅ 清楚地
✅命名内容 保持函数小
✅ 保持一致
✅ 避免硬编码值
✅ 经常重构
…您已经遥遥领先了。

松阳
+关注
目录
打赏
0
3
3
1
7
分享
相关文章
从零开始的编程之旅:我是如何学会编写代码的
【10月更文挑战第30天】这篇文章将带你走进一个初学者的编程世界,从最初的迷茫与困惑,到最后的豁然开朗。我将分享我的学习经验,包括选择编程语言、理解基础概念、实践项目和解决问题的过程。无论你是编程新手还是有经验的开发者,这篇文章都会给你一些启示和鼓励,让你在编程的道路上更加坚定和自信。
|
6月前
|
揭秘!Python系统编程里那些让代码自由穿梭的神奇代码行
【9月更文挑战第9天】在Python的世界里,一些简洁的代码行却蕴含着强大的功能,如列表推导式让列表生成仅需一行代码:`squares = [x**2 for x in range(10)]`。`with`语句则能自动管理文件和网络连接的关闭,如`with open('example.txt', 'r') as file:`。`lambda`函数和装饰器则允许快速定义函数和增强功能,而上下文管理器更是资源处理的利器。这些特性让Python代码更加优雅高效。
44 4
解锁Python魔法!装饰器:让你的代码翩翩起舞,简化繁琐逻辑,让编程成为一场戏剧性的华丽变身!
【8月更文挑战第21天】在Python编程中,当需要为函数添加如日志记录、性能测试等功能时,手动重复编写相同代码既冗长又难维护。装饰器提供了解决方案:它是一种特殊函数,包裹目标函数以添加额外功能,而不改变原函数结构。装饰器增强了代码复用性、解耦及灵活性。例如,可通过装饰器轻松记录函数执行时间。更高级用法包括带参数的装饰器、多层装饰器以及使用类作为装饰器。掌握装饰器能显著提升Python代码的质量和效率。
64 5
WPF开发者必读:命令模式应用秘籍,轻松简化UI与业务逻辑交互,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,命令模式是简化UI与业务逻辑交互的关键技术,通过将请求封装为对象,实现UI操作与业务逻辑分离,便于代码维护与扩展。本文介绍命令模式的概念及实现方法,包括使用`ICommand`接口、`RelayCommand`类及自定义命令等方式,并提供示例代码展示如何在项目中应用命令模式。
93 0
在JS编程中常见的编程“套路”或习惯汇总
在当前技术圈快速迭代发展的时代,JavaScript是一种广泛应用于Web开发和移动应用开发的脚本语言,其重要性愈发凸显,尤其是随着技术的不断发展和应用场景的不断扩展,JS编程已经成为了许多开发者必备的技能之一。但是仅仅掌握JS语法和基本知识并不足够,为了写出高质量、可靠性和可维护性的代码,开发者需要掌握一些常见的编程"套路"或习惯,这些套路和习惯能够帮助开发者更好地组织和管理代码,提高开发效率,并减少潜在的错误和问题。在JS编程开发中,有一些常见的编程“套路”或习惯,可以帮助开发者编写高效、可维护且易于理解的代码。让我们来看看其中一些常见的编程“套路”或习惯。那么本文就来分享探讨在JS编程中
87 6
在JS编程中常见的编程“套路”或习惯汇总
JS编程中有哪些常见的编程“套路”或习惯
【5月更文挑战第8天】JS编程中有哪些常见的编程“套路”或习惯
C# 编写 WinForm 窗体应用程序(第三期)
文本框 (TextBox) 是在窗体中输入信息时最常用的控件,通过设置文本框属性可以实现多行文本框、密码框等。
C# 编写 WinForm 窗体应用程序(第三期)

热门文章

最新文章