代码走读

2024-06-21 17:18
文章标签 代码 走读

本文主要是介绍代码走读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                              代码走读原则

一:准备工作

 

  结论(是 / 否)

1:目录层次结构是否遵循标准?

 

2:流程图是否清晰?是否能从流程图判断该模块的结构?

 

3:注释文档是否清晰完全?

 

4readme文档是否遵循标准?

 

5:是否可在模拟器上运行?

 

二:程序结构:

 

  结论(是 / 否)

1:代码是否按照功能模块化?

 

2:标准数据的操作是否单独封装在一个文件,gui解耦?

 

3:配置文件的操作是否单独封装在一个文件,gui解耦?

 

4:涉及的独立的算法是否单独封装在一个文件,gui解耦?

 

5:每个窗口界面是否单独封装在一个文件?

 

6 .c必须用相应的.h给外部引用函数、数据、对象等

 

7:所有代码的结构是否清晰,具有良好的结构外观和整齐?

 

8:所有的模块都定义得很好,包括函数和外部接口?

 

9:每个文件是否只包含一个模块的代码?

 

10:文件的命名是否可以体现出该文件的作用?

 

11:你觉得这个体系结构舒服吗?

 

三:函数检查

 

  结论(是 / 否)

1:函数的名字是否清晰的定义了它的目标以及函数所做的事情?

 

2:函数是否高内聚只做一件事情,并做好?

 

3:函数中的语句是否都在同一个抽象级上?

 

4:函数的参数是否合理,能否尽量控制在3个以内,必要时可以超过3个;

 

5:输出参数是否合理?

 

6: 在保证代码清晰的前提下,函数是否使用了最少数目的return语句,除非不可以?

 

7:是否有重复代码?或者相似的代码可以分离出来?

 

8:你觉得这个函数看起来舒服吗?

 

四:变量

 

  结论(是 / 否)

1:变量的命名是否完全的、明确的描述了该变量代表什么?

 

2:程序是否使用了特别的、易误解的、发音相似的命名?

 

3:是不是所有的变量都有最小的活动范围?

 

五:注释

 

  结论(是 / 否)

1:每个文件和模块是否解释?

 

2:源代码是否自我解释?

 

3:解释是不是仅仅作为代码的重复?解释的过于简单?

 

4:注解是否清楚正确?

 

5:注解是否为读者服务?

 

 

六:资源

 

  结论(是 / 否)

1:IO操作是否释放资源?

 

2:数据库连接是否释放?

 

3:socket连接是否正确关闭?

 

4:内存空间是否出现陡峰?

 

5:连接数是否达到预期要求?

 

6:分配的空间是否会造成系统负荷工作?

 

7:数据库锁是否会被占用导致阻塞?

 

 

七:服务

 

  结论(是 / 否)

1:业务流程是否进行划分?

 

2:服务是否进行拆分?

 

3:服务之间是否紧耦合?

 

4:服务是否具有可扩展性?

 

5:服务是否为分布式服务?

 

6:服务是否有相应的服务文档?

 

7:服务安全性是否有保证?

 

8:服务是否可独立运行?

 

 

八:架构

 

  结论(是 / 否)

1:是否面向接口编程?

 

2:是否是服务型架构?

 

3:数据库是否进行主备备份?

 

4:数据库是否进行读写分离?

 

5:应用层是否设置缓存?

 

6:容错性是否考虑?

 

7:是否可扩展(水平和垂直扩展)?

 

8:是否对系统进行监控?

 

9:是否对高并发进行处理(削峰填谷等措施)?

 

 

这篇关于代码走读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081841

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.