程序员修炼之道读后感3
在《程序员修炼之道》的阅读过程中,我不仅仅是翻开了一本技术书籍,更是开始了对自身成长的思考与记录。从第一章至第四章,我逐渐领悟到了编程之道的精髓,下面将就我的阅读心得做一些总结与思考。
第一章:注重实效的哲学
这一章向我们阐释了作为一名程序员,必须具备的基本素质。从对代码的责任感到不容忍不规范的态度,再到学会批判性思维和有效沟通,这些都是成为优秀程序员的必备品质:
1、必须为自己的代码负责,不管是代码丢失、代码不规范等引起的问题,都应该自己负责。出问题后主动寻找解决方案。
2、不要轻易容忍不规范的代码,并且尽量不要因为别人的代码不规范,自己也跟着学。最后各种不规范导致项目进度缓慢,后果很严重。
3、如果有什么新的想法,或者和别人讨论问题讨论不出结果,可以简单的动手作出个模型,让对方看到效果,以吸引其为你的想法做贡献。
4、如果时间不允许,不能做到完整的完美软件,那么就提供一个完整的比较完美的软件,抢占市场的同时,也能让用户提供反馈,从而将你的软件引向完美。
5、向经营资产一样去经营知识,定期投入,评估风险,多方面均衡发展。学会批判的思考所学和所闻。
6、学会礼貌而有效的交流,争对不同的听众采取不同的交流方式,也要选择恰当的时机,同时学会倾听和回复。
第二章:注重实效的途径
在这一章中,书中强调了避免重复的危害、正交性原则、可撤销性等编程原则。尤其是对于重复的危害进行了深入的分析,这为我们编写高效、高质量的代码提供了指导。
7、重复的危害。这里有一个短语叫DRY(Dot Repeat Yourself),就是不要重复,讲述了很多方面,包括以下几个方面:
强加的重复:这个不是太理解,具体的例子上觉得就是当使用别人的库时,提供的创建对象的方式等,需要不断的重复使用相同的代码。避免的方式是使用代码生成器,
这样能根据不同的对象进行自动创建。
无意的重复:自己都没有意识到的重复,主要指设计过程中导致的重复。
无耐性的重复:当有相同的代码可以拷贝或者参考时,直接对其引用或稍加修改。这点在做项目赶时间时尤其严重。
开发者之间的重复:各模块之间没有沟通的足够好,导致做了重复的检测等。
8、正交性。就是软件工程中提过的高内聚、低耦合。不管是设计还是实际的编码,都尽量做到低耦合,减少互相依赖,以方便后期修改、测试。
9、可撤销性。做到低耦合的同时,要假设某一模块在更换之后能否和其他某块正常而简单的接上,要想到单独模块的可撤销性。
10、曳光弹。一种项目开发方式,先打通项目需要的流程(可以是整个项目的,也可以是单个模块的),然后逐步填充好细节。这种方式能为后期开发指导方向,并容易看到成果。
11、原型与便笺。原型是指能够代替项目开发所代表的对象,方便描述问题的,稍后可以舍弃的抽象对象。便笺是用来代替记录某一描述对象的模型,我们可以使用若干便笺代替若干对象,来分析问题的可行性,或者组成整体原型进行分析。
12、领域语言。这小节我也看得比较模糊。我领悟到的意思是指,当我们在讨论问题的时候,尽量使用接近当时实际问题的语言进行讨论,这样能站在比较高层的角度去看待问题,同时能避免语言上的歧义分析。
13、估算。估算对于程序员来说,尤其是向着项目经理前进的程序员来说相当重要。这里有两点技巧,第一是给出的结果用一种比较精确的数值表示,这样能增加精确感,比如四分之三秒,就比750毫秒要精确。第二是如果没有信息能很快给出估算结果,就直接回答:“我等会回答你”。当然,最最重要的还是掌握估算技巧和提高估算能力。
第四章:注重时效的偏执
这一章涉及了程序开发过程中的一些原则,如按合约设计、死程序不说谎、断言式编程等。这些原则的贯彻执行,可以提高程序的稳定性和可维护性,是编程实践中不可或缺的部分。
21、按合约设计。不知道是因为这节里面有太多我不懂的术语,还是翻译成中文比较拗口。这节是本章最长的一节,然后大多数陈述的内容我却无法看明白。能够读懂的内容是我们在设计接口的时候,要考虑到使用这个接口的前置条件,以后满足这个条件后的后置条件,还有一个类不变项(不太明白啥意思)。总的来说就是要提供给调用者使用该接口的一些说明,就像使用API一样,很多函数都提供了说明、使用条件等。
22、死程序不说谎。本节是陈述程序出错了之后怎样更好。那就是宁愿让其崩溃也别让它继续运行造成破坏。
23、断言式编程。把我们认为绝对不会发生的条件置于断言中,切记不要把必须执行的代码放在assert中。
24、何时使用异常。异常是我们认为其应该正确,才能继续往下运行时用来防止这种不正确情况发生的处理方式。
25、怎样配平资源。对资源的访问,要遵守谁获取,谁释放的原则,不要跨模块,特别是异常处理的时候,不要因为发生异常而不释放资源。对于嵌套的资源分配,采取按照资源分配相反的方式对其进行释放。
通过阅读《程序员修炼之道》,我不仅加深了对编程的理解,更明确了自己在编程道路上的成长方向。将书中所学知识与实际工作相结合,不断提升自己的编程水平,是我接下来的目标与努力方向。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2023-04-27 打卡 C++类与对象定义一个日期类 N天以后 - C/C++ 操作符重载