关于“代码规范”的那些事儿 &《数学之美》第一章读后感

引言

        “干净的代码既简单又直接。干净的代码读起来像写得很好的散文。简洁的代码永远不会掩盖设计者的意图,而是充满清晰的抽象和直接的控制线。” -罗伯特·马丁(Robert C. Martin)

何为代码规范

        下面是两张相同内容的代码图片:

 看完之后,明显下面第二张图片的代码阅读起来要舒适得多。

这就牵扯到了代码规范,这是一个不容小觑的问题!

        规范是什么?在编程中,存在两种规定:一种是编译器强制执行的规则,违反这些规则会导致编译错误;另一种是编程规范,它们基于共同的约定,是一种不必言说、心知肚明的规范。

        虽然不遵循编程规范,代码仍然可以运行,但这会导致代码的可读性和整洁度大打折扣。对于“涉世未深”的程序员来说,首要任务是培养规范的编码习惯,而非只关注程序的正确性。不良的编码习惯会导致代码混乱,这不仅影响代码质量,还可能在未来发展中成为你进步路上的绊脚石。

一、命名准则

  • 标识符命名:统一、表意清晰且简洁的命名对于变量、函数、类等标识符至关重要。目前主要使用的命名方法有驼峰命名法(camelCase)下划线命名法(snake_case),具体选择应遵循公司或项目的标准。
驼峰命名法
驼峰命名法

  • 常量命名:常量应采用全大写字母及下划线分隔,以便于与其他标识符区分。
  • 文件命名:应遵循一致性原则,推荐使用小写字母、下划线或连字符来分隔单词,并避免使用特殊字符。

二、编码风格

  • 缩进与空格:统一代码缩进方式(空格或制表符Tab)和缩进级别,以维护代码的整洁性。
  • 大括号:明确大括号的使用规则,例如是否在代码块开始时换行。
  • 代码注释:强调注释的重要性,包括函数注释和行注释等,以增强代码的可读性。
​​​​代码注释详例

三、代码组织

  • 目录结构:明确项目目录结构,确保源代码、测试代码、资源文件等被合理分类存放。
  • 模块划分:根据项目需求合理划分代码模块或组件,减少代码耦合,提升可维护性。
  • 接口与实现分离:倡导使用接口和抽象类定义API,而将具体实现细节封装在实现类中。
接口测试

四、编程实践

  • 错误处理:规范错误处理流程,如通过try-catch语句捕获异常,并提供清晰的错误信息及处理建议。
  • 代码复用:鼓励代码复用,避免重复劳动。可以通过创建函数、类库或模块来实现。
  • 性能优化:关注代码性能,如减少不必要的循环、优化内存使用等,并利用性能分析工具识别和解决性能瓶颈。

五、特定语言或框架的规范

  • 不同的大型技术公司可能会为特定编程语言或框架制定额外的代码规范。例如,Java项目可能会有关于JavaBean命名、JDBC使用等规范;Web前端项目可能会有关于HTML、CSS、JavaScript编码规范以及Vue、React等框架使用规范。
各种各样的框架

六、知名大厂的代码规范示例

  • 阿里巴巴Java代码规范:全面覆盖了标识符命名、代码格式、控制语句、类设计、异常处理、并发处理等方面。
阿里巴巴的相关编码规范

  • Google C++编程规范:同样涵盖了命名规则、格式、编程习惯、错误处理等内容。
谷歌相关代码规范
  • 腾讯前端代码规范:为前端项目制定了HTML、CSS、JavaScript等语言的编码规范,以及Vue、React等框架的使用规范。 这些规范都是根据各自公司的技术栈和业务需求定制的,具有明确的针对性和实用性。由于不同公司的技术栈和业务需求存在差异,它们的代码规范也会有所不同。在实际应用中,应根据项目具体情况选择合适的代码规范进行遵循。
前端代码规范

《数学之美》第一章读后感

追求自然与和谐的统一

        对于第一章的内容,作者巧妙地以简明易懂的语言,揭示了数学的内在魅力,让读者领略到了数学所独有的和谐与韵律。其中的每一个定理、每一个公式令我印象深刻,它们相互交织、相互补充,共同绘制出一幅幅令人叹为观止的图案。这种内在的逻辑之美,让我们在学习算法的过程中有着潜移默化的积极功效。

智慧的启迪与思维的拓展

       作者深入浅出,将抽象的数学概念转化为贴近生活的实际案例,使我认识到数学与我们的日常生活紧密相连。对于算法设计而言,同样如此,看上去高深莫测的算法,实际上不过是我们生活中所遇到的问题的“变相”。第一章的内容强调了如何运用理性、系统化的思维方式去分析问题,如何在错综复杂的世界中发现潜在的规律与秩序。这种思维的飞跃,不仅加深了我对数学的理解,也极大地丰富了我对于算法设计分析的侧面认知。

对美的追求与感悟

        在书中,作者不仅仅传授了数学的知识和技巧,更是传递了对美的深切追求和感悟。他让我理解到,数学之美不仅仅体现在整体构造和外在形式上,更体现在其内在有序的逻辑中。这启发了我们以审美的视角去观察数学,去欣赏那些看似单调的公式与定理背后所蕴含的深邃智慧与无尽潜力。在算法设计领域,同样如此,每一次对算法的改进,不仅仅反映了时间复杂度和空间复杂度的优化,更体现出我们对数学之美、算法之美的执着追求。优秀的算法,不只局限于解决问题的层次,更着眼于如何“优雅”地完成对问题的剖析与解决方法的落实。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值