程序员修炼之道——从小工到专家第四章读书笔记

news/2024/11/13 21:49:58/文章来源:https://www.cnblogs.com/wjhfree/p/18544885
  1. 注重代码质量
    代码质量的重要性:代码质量直接影响到软件的可维护性、可扩展性和可靠性。高质量的代码不仅易于理解和修改,还能够在未来节省大量的维护成本。
    代码质量的代价:一开始就编写高质量的代码可能需要更多的时间和精力,但从长远来看,它能够带来巨大的回报。
  2. 避免过度复杂
    保持简单:“Keep It Simple, Stupid”(KISS原则)。复杂的解决方案往往会导致更多的错误和维护困难。简单直接的方法通常是最好的。
    避免过度设计:不要试图预见所有可能的需求,避免过度设计。使用迭代和增量开发的方法,逐步完善系统。
  3. 代码的清晰性
    可读性:代码应该易于阅读和理解。命名规范、代码注释、一致的缩进和格式化都是提高代码可读性的重要手段。
    自解释的代码:尽量编写自解释的代码,而不是依赖大量的注释。代码本身应该是最好的文档。
  4. 重构的重要性
    重构的意义:随着项目的进展,代码可能会变得难以维护。定期进行重构可以帮助保持代码的清晰性和可维护性。
    重构的时机:重构应该是一个持续的过程,而不是一次性的大规模改造。发现代码中的坏味道(如重复代码、长方法等)时,应及时进行重构。
  5. 测试驱动开发(TDD)
    TDD的原则:在编写实际代码之前,先编写测试用例。这有助于确保代码的正确性,并帮助开发者更好地理解需求。
    测试覆盖率:通过测试覆盖率工具,确保代码的关键部分得到了充分的测试,减少潜在的错误。
  6. 代码审查与结对编程
    代码审查:通过代码审查,团队成员可以互相学习和发现潜在的问题。代码审查是提高代码质量的重要手段之一。
    结对编程:结对编程是一种有效的代码审查方法,两人共同编写代码,可以及时发现问题并进行改进。
  7. 自动化工具的使用
    静态代码分析:使用静态代码分析工具可以帮助发现潜在的代码问题,如未使用的变量、潜在的空指针等。
    自动化测试:自动化测试工具可以确保代码在每次修改后仍然保持正确性。持续集成(CI)和持续交付(CD)工具可以帮助实现自动化测试。
  8. 文档的重要性
    代码文档:编写清晰的代码文档可以帮助其他人理解代码的意图和实现方式。文档应该与代码同步更新。
    技术文档:对于复杂的功能或模块,编写技术文档可以帮助团队成员更好地理解系统的架构和设计。
  9. 编写可维护的代码
    模块化设计:将系统分解为独立的模块,每个模块负责特定的功能。模块之间的耦合度应尽可能低。
    单一职责原则(SRP):每个类或模块应该只有一个职责。职责的分离有助于提高代码的可维护性。
  10. 持续学习与改进
    技术债务:技术债务是不可避免的,但应该尽量减少。通过持续改进和重构,逐步偿还技术债务。
    学习新技能:编程领域的技术变化迅速,持续学习是保持竞争力的关键。阅读书籍、参加培训、参与开源项目等都是很好的学习方式。

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

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

相关文章

Hive的分区和排序

一、Hive的分区(十分重要) 1、分区是什么 答:我们可以把一个大的文件分隔成一个个小的文件,这样每次操作一个小文件就很方便了 2、为什么要进行分区 答:通过分区,当我们查询的时候,可以只扫描与条件相关的分区,这样做,避免了全局扫描,加快查询速度 1、静态分区(SP) 静…

项目冲刺4-3

仓库地址:https://github.com/bitpurleclude/GDUT-Goofish.git这个作业属于哪个课程 (https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/join?id=CfDJ8AOXHS93SCdEnLt5HW8VuxT_rAhbZKO3TfjMmbv1B0Re5Fp2d0_QACha2ZoYZ4fxF-ZKCCAhfJl7B8mvCfesLYE02X8T6kx_2R8w0SR-ykrgDVRKW…

【Linux】git note -v command not found

安装note.js Node.Js中文网 『Win+E』『此电脑』右键点击『属性』『高级系统设置』-『环境变量』『系统变量』-『NOTE_PATH』“C:\Program Files\nodejs”『用户变量』-『Path』“C:\Program Files\nodejs”『Win+R』重新启动控制台『cmd』-“$NOTE -v” 双击重新启动『Git Ba…

2024.11.13 DP题单

录制唱片 你刚刚继承了流行的 “破锣摇滚” 乐队录制的尚未发表的 \(N\)(\(1\leq N\leq 20\))首歌的版权。你打算从中精选一些歌曲,发行 \(M\)(\(1\leq M\leq 20\))张 CD。每一张 CD 最多可以容纳 \(T\)(\(1\leq T\leq 20\))分钟的音乐,一首歌不能分装在两张 CD 中。CD…

基于HASM模型的高精度建模matlab仿真

1.程序功能描述 本课题主要使用HASM进行高精度建模,主要对HASM模型进行介绍以及在实际中如何进行简化实现的。HASM原始的模型如下所示: 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序%第一类基本变量E(i,j) = 1 + (( f(i,j+1,n) - f(i,j-1,n) )/( …

CICD04 Jenkins容器化CICD实现及分布式构建, 流水线Pipeline ubuntu使用

2.14.3 案例: 基于 Docker 插件实现自由风格任务实现 Docker 镜像 制作 不如前面的直接脚本编写灵活 2.14.3.2 安装插件 docker-build-step jenkins上安装 docker-build-step 插件#选择jenkins使用的docker服务 #左侧系统管理,右侧系统配置,Docker Builder下Docker URL输入 u…

数据类型和运算符

数据类型 动态类型编程语言运行时判断静态类型的编程语言 : Go 、C 、在开发的时候,就需要给一些定义的变量赋值空间大小。C 需要自己去开辟这个空间数据类型 : 每种在Go语言中出现的基本数据类型,会有一个默认的空间大小。 1、布尔类型数据 布尔型的值只可以是常量 true 或…

XXL JOB DockerCompose部署

官网给的方式是 Docker 命令启动,但是用起来太麻烦了,所以用DockerCompose 简化部署 创建数据库,导入 SQL SQL 脚本位置为/xxl-job/doc/db/tables_xxl_job.sql https://raw.githubusercontent.com/xuxueli/xxl-job/refs/heads/master/doc/db/tables_xxl_job.sql 编写 Docker…

CICD02 Jenkins安装,备份还原, 实现CICD核心功能 ubuntu使用

DevOps 之 CICD 服务器 Jenkins 1 Jenkins 部署与基本配置 1.2 Jenkins 安装和启动 1.2.1 Jenkins 的安装 Jenkins支持多种安装方法 1.包安装 2.JAVA的WAR文件 #要手动配置,不太方便 3.容器运行#系统要求 最低推荐配置:1.256MB可用内存2.1GB可用磁盘空间(作为一个Docker容…

CICD01 Git, GitLab, 部署方式 ubuntu使用

版本管理系统 Git 和 GitLab 1 DevOps 简介 1.3 持续集成、持续交付和持续部署 CICD CICD: 持续集成, 持续交付, 持续部署 1.6 常见的软件部署模式 生产中 蓝绿部署 和 金丝雀用的比较多 1.6.1 蓝绿部署 Blue-green Deployments 一个和生产环境一样的预发布环境, 和生产环…

jvm 垃圾回收算法的评价标准

如何实现回收的(核心思想): 1. 找到内存中存活的对象(与GC Root相关联) 2. 释放不再存活对象的内存,使得程序能再次利用这部分空间 --------------------------------------------------------------------------------- 垃圾回收算法的分类: -------- ----------------…

GO面试-切片

一、结构介绍 切片(Slice)在 Go 语言中,有一个很常用的数据结构,切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。并发不安全。 切片是一种引用类型,它有三个属性:指针,长度和容量。 底层源码定义: type slice …