代码大全阅读随笔(八)

news/2024/11/27 21:56:55/

对于各种规模的系统,都可以使用Factory Method 来代替其中的Switch语句,该模式可以重用于系统中任何需要创建Transaction 类型场合。
要点:

  1. 使用布尔表达式简单可读,将非常有助于提高你的代码质量。
  2. 深层次的嵌套使得子程序变得难以理解。你可以相对容易的避免这么做。
  3. 机构化编程是一种简单并且仍然试用的思想,可以通过顺序,选择和循环三者组合开发出任何程序。
  4. 将复杂度降低到最低水平,是编写高质量代码的关键。

软件的外在特性:
正确性,可用性,效率,可靠性,完整性,适应性,精确性,健壮性
软件的内在特性:
可维护性,灵活性,可移植性,可测试性,可理解性
要点:
开发高质量的代码最终并没有要求你付出更多,只需要你对资源进行重新分配,以低廉的的成本来防止缺陷出现,从而避免代价更高的修正工作。
并非所有的的质量目标都可以全部实现,明确那些目标是你希望达到的,并就这些目标和团队成员进行沟通。
有任何一种错误检测方法能够解决全部问题,测试本身不是排除错误的最佳有效方法。成功的质量保证计划应该使用更多种不同的技术来检测各种不同类型的错误。
在构建期间当使用一些有效的质量保证技术,但在这之前,一些具有同样强大功能的质量保证技术也是必不可少的。错误发现的越早,其他与错误代码纠缠就越少,由此造成损失也就越小。
软件领域的质量宝成面向过程的,软件开发与制造业不一样,在这里并不存在会影响最终产品的重复阶段,因此,最终产品的质量受到开发软件所用的过程控制。
协同构建
协同开发,程序员代码复查是比较重要的。

要点

  1. 结构体可以使得程序更加简单,更容易理解,以及更容易维护。
  2. 每当你打算使用结构体的时候,考虑采用类会不会工作的更好。
  3. 指针很容易出错,访问器子程序或类以及防御式编程实践来保护自己代码
  4. 避免使用全局变量,不只是因为他们很危险,还是因为你可以用其他很好的方式来取代他们。
  5. 如果你不得不使用全局变量,那么就通过访问器子程序来使用它。访问器子程序能为你带来全局变量所能带来的一切有点,还有一些额外好处。

测试要点:
开发人员测试是完成测试策略的一个关键部分。独立测试也很重要。
同编码之后编写测试用例相比,编写开始之前编写测试用例,工作量和花费的时间差不多,但是后者可以缩短缺陷-侦测-修正这一周期。
即使考虑到了各种的测试手段,测试仍然只是良好软件质量计划的一部分。高质量开发方法至少和测试一样重要,这个包括尽可能减少需求和设计极端的缺陷。在检测错误方面,协同开发的成效至少与测试相当。这些方法所检测的错误类型也各不相同。
你可以根据不同的思路来产生把很多测试用例,这些思路包括基础测试,数据流分析,边界分析,错误数据类型以及正确数据类型等。你还可以通过猜测错误的方式得到更多的测试用例。
错误往往集中在几个容易出错的类和子程序上,找到这部分代码,重新设计和编写他们。
测试数据本身出错的密度往往比测试代码还要高。查找这种错误完全是浪费时间,又不能对代码质量有所改善,因此测试数据里边的错误,更加让人烦恼。要像写代码一样小心的开发测试用例,这样才能避免产生的这种问题。
自动化测试总体来说很有用,也是进行回归测试的基础。
从长远来看,改善测试过程中最好的办法就是将其规范化,并对其进行评估,然后用从评估中获得的经验和教训来改善这个过程。


http://www.ppmy.cn/news/1121462.html

相关文章

(二十八)mmdetection实用工具: Visualization

目录 一、基础绘制接口二、基础存储接口三、任意点位进行可视化 一、基础绘制接口 可视化器(Visualizer):可视化器负责对模型的特征图、预测结果和训练过程中产生的结构化日志进行可视化,支持 Tensorboard 和 WanDB 等多种可视化…

计算机和编程语言初见

学习程序设计的目的是什么呢? 不一定要做出一个软件或系统出来,更重要的是理解计算机是如何工作的以及它的长处和短处。 计算机本身是无意识的,因此我们要求它为我们做事时:应该将步骤细化、“直”化(规律化&#xf…

02强化学习基本概念

强化学习基本概念 前言1、State、Action、Policy等① State② Action③ State transition④ State transition probability⑤ Polity 2、Reward、Return、MDP等① Reward② Trajectory and return③ Discounted return④ Episode⑤ MDP 总结: 前言 本文来自西湖大学…

走心分享!天津诚筑说Java大数据培训我该如何选择?

随着互联网的发展,IT行业变得越来越炙手可热,其中较为火热的当属大数据和Java了,许多学员都很纠结,Java和大数据我应该如何选择呢?今天小编带大家了解一下Java和大数据之间的区别! Java和大数据的关系 Java是一种面…

Android WebSocket

WS Android WebSocket 资源 名字资源AAR下载GitHub查看Gitee查看 Maven 1.build.grade allprojects {repositories {...maven { url https://jitpack.io }} }2./app/build.grade dependencies {implementation com.github.RelinRan:WS:2022.2023.9.23.1 }初始化 配置权…

day-60 代码随想录算法训练营(19)单调栈 part 03

84.柱状图中最大的矩形 思路一&#xff1a;单调栈 class Solution { public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);//头加0&#xff0c;防止刚开始heights.push_back(0);//尾巴上加0&#xff0c;防止一直递增最后丢…

Docker没有vim如何安装,apt-get update报ERR404解决方案

问题描述 docker容器中安装vim报错执行apt-get install vim后报错&#xff1a; E: Unable to locate package vim 更新安装源也报错docker容器中执行apt-get update后报错&#xff1a; #进入镜像命令#docker exec -it 镜像Id或镜像name /bin/bash [roottdengine ~]# docker …

用selenium和xpath定位元素并获取属性值以及str字符型转json型

页面html如图所示&#xff1a; 要使用xpath定位这个div元素&#xff0c;并且获取其属性data-config的内容值。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Optionshost127.0.0.1 port10808 …