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

10月阅读笔记(3)

《程序员修炼之道:从小工到专家》阅读笔记

作为一名大二计算机专业学生,读《程序员修炼之道》前,我总觉得写代码就是“能跑通功能就行”——课后作业调通逻辑、实验报告凑够代码行数,就算完成任务了。但这本书像给我拉了一把“回头看”的尺子,让我突然意识到,“会写代码”和“能写好代码”之间,差的不只是技术熟练度,更是对待代码的底层思维。

最让我有共鸣的是“破窗效应”那段。之前小组做Java课程设计,要写一个简易计算器,有个同学写的“进制转换”模块里,有段嵌套循环没加注释,变量名还用了“a”“b”“c”,当时大家觉得“反正能算出结果,没必要改”,结果后面要加“小数进制转换”功能时,没人看得懂那段代码,最后只能推翻重写,白白多花了两天时间。原来“小工”和“专家”的差距,从对待“小问题”的态度就开始了——不是等代码出了明显bug才补救,而是看到不规范的地方就及时修正。现在我写作业时,再也不会随便起变量名,哪怕是临时用的循环变量,也会写成“i_loop”“j_index”,注释里也会写清“这段循环用于遍历数组元素,排除负数”,这样自己回头复习时能懂,组队时队友也不用反复问我“这里到底在干嘛”。

书中的DRY原则(不重复自己),我在写数据结构作业时才算真正get到。之前用C语言写链表的增删查改,总习惯在“插入节点”“删除节点”“查找节点”里重复写“判断链表是否为空”的逻辑,每次都是“if (head == NULL) { return NULL; }”,代码又长又容易出错——有次改了“查找”里的判断条件,却忘了改“插入”里的,结果调试了半天都没找到问题。后来照着书里说的,把“判断链表为空”“获取链表长度”这些重复逻辑抽成单独的函数,比如“isListEmpty(LinkedList list)”“getListLength(LinkedList list)”,每次需要时直接调用。不仅代码量少了一半,后来发现“判断空链表”时漏了“尾节点为空”的情况,也只用改一处就行,不用在四个功能里逐个修改。原来DRY不只是“少写几行代码”,更是培养“抽象思维”——之前总觉得“类和接口”是课本上的抽象概念,现在才明白,这些设计思想早就藏在“避免重复”的细节里,帮我们把代码从“堆砖块”变成“搭积木”。

其实这本书没教我复杂的算法,也没讲高深的框架,却让我学会了用“长期主义”看待写代码这件事——对我们大二学生来说,现在写的每一行作业代码,都是在培养未来职业的习惯。以后再写代码时,我会多问自己一句“这样写,别人能看懂吗?以后改需求,方便吗?”,慢慢从“能写代码”向“会写好代码”靠近。

http://www.zskr.cn/news/29789.html

相关文章:

  • 我有一个好主意,既然我之前写了一个AI Vtuber
  • 关于cos(x + y)和sin(x + y)的公式的几何证明
  • 免费刷快手粉双击网站,刷粉真的安全吗
  • 北京AI优化:AI优化企业排行榜与深度解析
  • 上海市计算机学会2025.10月赛丙组T5
  • 玩转单片机之智能车小露——七彩LED呼吸灯
  • Miller-Rabin
  • 第二十三篇
  • 完整教程:紫外UV相机在机器视觉检测方向的应用
  • 三种 Badcase 精度验证方案详解与 hbm_infer 部署实录
  • Google Skills免费开放啦
  • ABP - 缓存(Caching)[IDistributedCache、ICacheManager、ICacheKeyNormalizer、[Cache]、[CacheInvalidate]]
  • ret2text
  • CF Round 1046(#2135) 总结
  • ABP - 接口授权 [Authorize、AllowAnonymous、IPermissionChecker]
  • 10.24每日总结
  • 利用Eval Villain挖掘CSPT漏洞的完整指南
  • Button按钮插入图片后仍有白色边框的解决办法
  • 【模板】动态 dp 学习笔记(树剖版)
  • 软考四
  • Hugo主题定制速查手册
  • 10/24
  • 多元生成函数+多项式方程组——[AGC058D] Yet Another ABC String
  • Python开发之设置Hugging Face的模型缓存目录(HF_HOME )及模型下载超时问题(HF_ENDPOINT)
  • Java中的字符串及相关类的介绍
  • nginx反向代理和负载均衡 - 实践
  • 【深入浅出Nodejs】异步非阻塞IO
  • 10-23 好题选讲总结
  • [python] 代码性能分析工具line_profiler使用指北
  • react的diff算法