你的码有我的码蠢?

你的码有我的码蠢

  • 前言
  • 编程初学者的尴尬时刻
    • 1. Hello World 一百遍
    • 2. 长长长的 if-else 嵌套
    • 3. 忘记关闭文件
    • 4. 硬编码的敏感信息
    • 5. 非优雅的数据库查询
    • 6. Spring Bean 配置混乱
    • 7. 冗余的代码
    • 8. 错误的缓存使用
    • 9. MyBatis XML 配置混乱
    • 10. 忘记异常处理
    • 11. 不优化的 Redis 操作
    • 12. 没有使用数据库事务
    • 13. 强制类型转换错误
  • 学习与成长
  • 总结

前言

当我刚开始学习编写代码时,写下的代码常常令人尴尬,但它们是我成长的见证。在这篇博客中,我将分享我的编程旅程,包括一些初学者时期的愚蠢代码,以及我从中学到的宝贵教训。

编程初学者的尴尬时刻

1. Hello World 一百遍

在我学习编程的早期,我曾经为了巩固基础知识,尝试过将"Hello World"程序写了一百遍,每次都略有不同。当然,这样做并没有什么实际意义,而且代码变得非常冗长和难以维护。这个经验教会了我代码质量比数量更为重要。

print("Hello World 1")
print("Hello World 2")
# ...一直到 100

2. 长长长的 if-else 嵌套

当我开始处理条件语句时,我陷入了一个糟糕的陷阱,即无休止的 if-else 嵌套。这让我的代码变得难以理解和调试。后来我明白了,使用字典或函数来管理条件更加清晰和高效。

if condition1:
    if condition2:
        if condition3:
            if condition4:
                # ...

3. 忘记关闭文件

在处理文件操作时,我曾多次忘记关闭打开的文件,导致资源泄漏。这是一个非常基本的错误,但也是我学习的重要一课。现在,我总是使用 with 语句来自动关闭文件。

file = open("example.txt", "r")
# 忘记关闭文件

4. 硬编码的敏感信息

在一个早期项目中,我不小心硬编码了敏感信息,如密码和 API 密钥,直接暴露在代码中。这是一个安全性问题,也是关于如何管理敏感信息的宝贵教训。

password = "my_secret_password"
api_key = "my_api_key"

5. 非优雅的数据库查询

在学习数据库编程时,我曾编写一些非优雅的 SQL 查询代码。这些查询通常是长而复杂的,缺乏良好的结构和优化,导致性能问题。我学到了如何编写更清晰、优化的 SQL 查询,以及使用索引和合适的数据类型。

String sql = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'";

6. Spring Bean 配置混乱

在学习 Spring 框架时,我曾创建过一个臃肿的 Spring 配置文件,将所有 Bean 定义都放在一个地方,导致了可维护性问题。后来,我学会了更好的组织和拆分配置文件,以提高代码的可读性和可维护性。

<bean id="userService" class="com.example.UserService">
    
bean>

7. 冗余的代码

在初学 Spring Boot 时,我可能会复制和粘贴大段的代码,因为我不理解框架的工作原理。这导致了冗余的代码和维护上的问题。学习 Spring Boot 教会了我如何充分利用自动配置,减少冗余代码。

@RestController
public class MyController {
    // 冗余的请求映射
    @RequestMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

8. 错误的缓存使用

当我开始使用 Redis 进行缓存时,我可能会将不应该被缓存的数据存储在缓存中,导致了数据不一致性的问题。学习了缓存策略和 Redis 的最佳实践后,我避免了这类错误。

// 错误的缓存示例
redisTemplate.opsForValue().set("user:123", user);

9. MyBatis XML 配置混乱

在学习 MyBatis 数据访问框架时,我曾创建一个巨大的、混乱的 XML 配置文件,包含了数百行 SQL 语句和映射规则。这使得维护变得非常痛苦。后来,我学到了如何拆分配置文件,使用模块化的方式组织 SQL 映射。


<select id="getUser" parameterType="int" resultType="User">
    SELECT * FROM users WHERE id = #{id}
    
select>

10. 忘记异常处理

在编写 Java 代码时,我曾经在一些地方忽略了异常处理,导致程序崩溃。这是一个危险的做法,因为它可以让应用程序不稳定。学习了异常处理和日志记录后,我变得更擅长处理异常情况。

try {
    // 一些可能抛出异常的代码
} catch (Exception e) {
    // 什么也不做
}

11. 不优化的 Redis 操作

在使用 Redis 时,我曾进行不必要的 Redis 操作,如频繁的写入和读取。这会浪费系统资源。学习了 Redis 的数据结构和优化方法后,我可以更有效地使用它来提高性能。

// 不优化的 Redis 操作
redisTemplate.opsForValue().get("key");
redisTemplate.opsForValue().set("key", "value");

12. 没有使用数据库事务

在数据库操作中,我曾经执行一系列的增删改操作,但忘记添加数据库事务注解,导致数据不一致。学习了数据库事务的重要性后,我知道了在需要的地方使用事务,以确保数据完整性。

// 没有使用事务
public void performMultipleDatabaseOperations() {
    // 操作1
    // 操作2
    // 操作3
}

13. 强制类型转换错误

在处理不同数据类型的时候,我曾经犯过强制类型转换的错误,导致运行时异常。这是一个常见的初学者错误,我后来学到了更安全的类型转换方式,如使用 instanceof 和类型检查。

// 强制类型转换错误
int result = (int) someObject;

学习与成长

这些尴尬的经历都是我学习的一部分,它们教会了我编写更清晰、更高效的代码。随着时间的推移,我积累了更多经验,学会了如何组织代码、编写注释以及遵循最佳实践。这些教训让我成为了一个更好的开发者。

总结

总结一下,编程是一个不断学习和成长的过程,愚蠢的代码是我们进步的一部分。通过回顾自己的编程旅程,我们可以更好地欣赏自己的进步,也希望能够启发其他初学者。

你可能感兴趣的:(话题,愚蠢的代码,代码规范,java,python)