《代码大全》读书心得

《代码大全》这本书读了一点之后,我感觉到软件开发的前期要仔细研究需求,稳定的需求是开发优质可靠软件的基本保证,也可以有效降低开发成本。要描述出系统的多个方面,在确定需求阶段考虑的越全后期变动的可能性就越小,这要和他人多次充分的交流,我甚至觉得可以采用询问犯人的做法,对一个需求做多次的需求确认,研究对方的话有什么差异,把这些差异再次确认。当然并不能杜绝后期的变动,但至少会避免很多偏差了,大大降低了返工的风险。作者认为,开发是一个迭代的过程,要持续地反思之前的工作,对不理想的地方进行重构。现在慢慢地自己也有这种习惯,特别是写的程序比较大的时候,总会发现前面的设计与实现的不足之处,及时改正它们比收尾的时候改正风险、代价都会小很多,这也说明前期设计的重要性。抵御“尽快开始编码”的欲望,多在前面的需求和设计花些功夫是值得的,也希望提需求而不怎么懂软件开发的人员能理解这里面的道理。

作者对于软件的构建过程是倾向于自上而下的设计的。在确定软件需求后,先设计出总的功能模块划分,然后对功能模块设计需要的包和类,设计类的接口抽象,设计子函数的抽象。特别要强调,降低模块、类之间的耦合度,然它们的接口一致地表明自己的功能,这种一致地抽象十分重要,能极大地提升其可读性;强调函数内操作目标的一致性,都是要为函数名所表达的目标服务,如果有多余的要考虑把它们独立出去,步骤的实现细节要隐藏到子程序中;强调要隐藏实现细节,不能让使用者看到数据的类型、实现的结构等细节,这些细节应是作为私有的部分而隐藏起来的,这样设计下来内部的聚合性会比较强。作者认为,人同时关注的兴趣数量是有限的,这样的设计能保证不会超过这个上限,从而让开发人员能很好地关注自己要实现的部分,也会给其他阅读者带来这种益处。最近阅读代码的时候感受到了这个上限的存在,调用层次多了后就会忘掉最初的使用者是要干什么了。所以实在没有办法避免的时候,我会把这些关系记下来,而不是缓存在大脑中。同时这样的设计业会给以后的扩展带来益处,更容易把同一层次的功能组成出新的高层功能。

编程的时候要树立防御式编程的思维,不能总是假定输入或操作方式在预期内,要多考虑可能的异常情况,特别是涉及到与用户的交互和网络时,这种不确定因素会迅速增加。考虑到当前的工作正是这种情况,以后编写代码时要尤其小心。要重视断言、异常、日志等的重要性,从一开始就重视,同时根据系统的类型,考虑容忍完整性多一些还是正确性多一些。作者建议编程从伪代码开始,其实自己很多没这么多了,顶多画一下流程,以后可以考虑尝试这样做。伪代码不应该体现语言的细节,而是体现实现的思路和流程,是用哪种语言都可以进行实现的,而且不会干扰到实现的细节。有了这种清晰的伪代码,再做实现就会清晰很多,而且有了“天然”的注释。

作者强调一种观点,“在一种语言上编程(programming in a language)”和“深入一种语言去编程(programming into a language)”,要学会后一种工作方式。深入语言,要理解语言的特性和这种特性的由来,比如lua的弱引用;将语言和设计模式结合起来,通常能从低层高层联合的角度得到优雅地程序;可以将不同的语言做些对比,体会某相似的点的差异,只有理解了语言采用更好地驾驭语言。想来自己也学了好几种语言了,但感觉都没有很深入地去使用,大部分时候用哪种语言是外部的选择结果。以后用python和Lua会多一些,希望能深入地使用它们。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源介绍 本资源是一个基于Spring Boot框架开发的学生读书笔记共享系统的毕业设计项目,旨在为学生提供一个便捷的读书笔记分享与交流平台。项目不仅涵盖了后端服务的搭建,还包括了前端的页面展示,为用户提供了完整的读书笔记管理体验。 项目设计思路上,我们充分考虑到学生的实际需求,实现了用户注册登录、笔记创建、编辑、分享、评论等功能。用户可以在系统中记录自己的阅读心得,形成个性化的读书笔记,同时也可以通过浏览他人的笔记,拓宽阅读视野,增进知识交流。 在技术实现上,我们采用了Spring Boot作为后端开发框架,利用其简洁、快速的特点,快速搭建了稳定可靠的后端服务。前端则采用了流行的前端技术栈,保证了良好的用户体验。数据库方面,我们使用了关系型数据库进行数据存储,保证了数据的一致性和完整性。 此外,本项目还充分考虑了系统的安全性和可扩展性。通过合理的权限控制,确保了用户数据的安全;同时,我们也预留了足够的接口和扩展点,方便后续进行功能扩展和定制开发。 本资源不仅是一份完整的毕业设计项目,更是一份具有实际应用价值的软件产品。它不仅可以作为学习Spring Boot框架和前后端开发的实践项目,也可以作为构建学生社区、促进知识分享与交流的平台。无论是对于即将进行毕业设计的同学,还是对于希望进行二次开发、定制开发的开发者来说,本资源都具有极高的参考价值和使用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值