Test Driven Development感悟

2023-11-06

编程的思想有面向过程编程、面向对象编程、面向接口编程。面向接口编程是现在很多公司在使用的,面向接口效率更好,而且使得业务代码更加简洁易调试。面向对象的方法使得代码会多出很多接口,可以为以后的使用留接口,但是开发效率不高。面向过程写代码,可以比较快的完成任务,但是之后要再修改复用就很浪费时间,要改很多东西。所以现在我写代码为了在面向对象和面向过程中权衡,我会选择面向接口编程。

在写代码的过程中,需要写好test case,不然后面会有很多麻烦。

https://www.youtube.com/watch?v=qkblc5WRn-U 中描述了test driven development的三个最重要的思想。

  1. you are not allowed to write any production code unless every test case is passed
  2. you are not allowed to write any test case unless every test case is passed
  3. you are not allowed to write any production code more than pass the test case.

所以基本上编程的过程是test case和producation 代码交锋的过程,不要写多余的代码。这样做使得写代码的时候效率很高,基本不需要再花太多时间debug。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Test Driven Development感悟 的相关文章

  • 【C语言】计数排序

    一 算法描述 得到最小值和最大值 即得到临时数组的长度 数等于临时数组的下标 下标对应的值就加一 把临时数组的信息对应到原数组中 计数排序有很大的约束 最小值和最大值不能相差很大 排序的数适用于非负数 否则得另加代码将负数偏移为正数 最后还
  • MySQL——存储过程详解及实例分析

    目录 一 储存过程简介 1 什么是存储过程 2 存储过程优缺点 3 存储过程入门程序 4 在idea中如何调用储存过程 二 存储过程编程 1 存储过程的变量 2 存储过程中的参数 3 选择结构if 4 分支结构case 5 3个循环结构 6
  • 中文分词jieba学习笔记

    中文分词jieba学习笔记 一 分词模式 二 自定义词典 2 1 命令 2 2 使用方式 三 关键词抽取 基于TF IDF算法 3 1 用jieba analyse extract tags 3 2 用jieba analyse textr
  • idea配置tomcat启动服务器时控制台乱码

    项目场景 在idea中配置tomcat启动时候控制台乱码问题 问题描述 idea中以tomcat启动控制台出现乱码问题 原因分析 由于tomcat8以后默认编码格式是utf 8 tomcat7之前的都是iso8859 1 与idea中的编码
  • 反激式开关电源双环PID(电压环+电流环)控制之MATLAB仿真

    前面一篇文章我讲解了反激式开关电源输出电压的pid控制的matlab仿真 反激式开关电源输出电压PID控制的MATLAB仿真 我只对输出电压做了控制 不管负载多大 只要在设计功率之内 都能把电压维持在12V 但在实际电路设计中 我们还需要考
  • Box2D C++ 教程 第五节:物体(Bodies)

    Box2D C 教程 第五节 物体 Bodies 作者 firedragonpzy 14 十一月 2012 暂无评论 声明 本教程翻译自 Box2D C tutorials Bodies 仅供学习参考 物体 Bodies 物体是物理场景中的
  • 【踩坑】jmeter提取token,响应body中全部是token无法用正则提取

    情况是这样的 这是jmeter的响应结果 响应所有文本都是token 尝试了多次用正则提取 均无法提取全部body 经过查询资料 使用BeanShell 后置处理程序 import org json JSONObject import or
  • 【数据分析】【Pandas】(一)如何制作频率分布直方图

    文章目录 概述 1 直方图 2 密度图 概述 计算一组数据的分布有助于我们更好的了解数据构成 我们可以通过直方图或密度图 将离散的数据通过连续的方式展现出来 数据分布 频数分布 在各组按顺序排列的基础上 列出每个组的总体单位数 形成一个数列
  • nuxtjs 国际化i18n

    1 设置国际化匹配文字 locales zh json locales en json 英文同理 topbar home 首页 pin 沸点 topic 话题 book 小册 search 搜索 menu home 我的主页 label 标

随机推荐

  • 【计算机毕业设计】高校信息资源共享平台

    高校信息资源共享平台 21世纪的今天 随着社会的不断发展与进步 人们对于信息科学化的认识 已由低层次向高层次发展 由原来的感性认识向理性认识提高 管理工作的重要性已逐渐被人们所认识 科学化的管理 使信息存储达到准确 快速 完善 并能提高工作
  • 什么是企业用户画像,怎么构建企业用户画像

    企业画像 简单说 企业给人的印象 可以跟自然人的用户画像相类比 这其实是IT行业的一种叫法 在金融行业 一般叫做 尽职调查报告 当然 尽职调查报告只需要尽职 不需要说的太具体或者太难看 什么是企业用户画像 企业用户画像与个人用户画像有很大区
  • 反射/存储/DOM型XSS攻击原理及攻击流程详解

    文章目录 XSS漏洞原理 1 XSS分类 1 1 攻击流程 2 存储型XSS 2 1 攻击流程 3 DOM型XSS 3 1 攻击流程 XSS修复 XSS漏洞原理 XSS 跨站脚本攻击 是一种常见的 Web 安全漏洞 其允许攻击者在恶意用户的
  • 新版caffe添加自己的层(目前只学会添加,我想要添加的loss还没能实现)

    今天实现了在caffe框架中加入一个层 完成欧式距离的任务 之所以这样 是因为还没有实现自己想要的loss 只是试着学者 看能不能把添加层的流程顺下来 最后实现了 一 总体框架 1 在 src caffe proto caffe proto
  • SpringCache的介绍和使用

    1 简介 1 Spring 从 3 1 开始定义了 org springframework cache Cache和 org springframework cache CacheManager 接口来统一不同的缓存技术 并支持使用 JCa
  • 六、IP地址子网划分与VLAN

    一 IP地址的五大分类 概念 IP地址相当于人的身份证 用于在TCP IP通信协议中标记每台计算机的地址 通常用于十进制来表示 如192 168 1 100 但是在计算机内部 IP地址是一个32位的二进制数值 如11000000 10101
  • [转载]Chrome 与 Chrome OS 各版本下载集合

    Chrome OS 下载 由 Hexxeh提供的第三方编译版本 Chrome OS USB 镜像 点击这里 Chrome OS WMware 镜像 点击这里 Chrome OS Vanilla USB VMWare VirtualBox 点
  • 树的遍历-深度优先遍历和广度优先遍历

    深度优先遍历类似于树的先序遍历 假设给定初态是图中所有顶点均未被访问过 从图中某一顶点vi出发遍历图中的定义如下 首先访问出发点vi 并将其访问标志置为1 然后 从vi出发点依次搜索vi的每个邻接点vj 如vj未被访问过 则以vj为新的出发
  • 函数模板和类模板的实例化和具体化

    一 函数模板 1 显示实例化 explicit instantiation 和显示具体化 explicit specialization 的区别 1 形式上 显示实例化 template void Swap
  • estimate函数是什么?

    estimate 函数是用来估计参数值的函数 它通常用于统计学和机器学习中 用来求出一组样本数据的模型参数的最优解
  • VS2008/VS2010安装时提示VC++9.0 Runtime安装失败问题的解决方法

    查了一下 有以下几种解决方法 1 http blog csdn net zlqqhs article details 8821608 2 https dotblogs com tw johnny archive 2010 07 16 165
  • 矩阵向量求导(Matrix calculus)

    原文地址 注 不要把它和几何运算或者是向量运算混淆 前言 在数学中 矩阵微积分是进行多变量微积分的一种特殊符号 特别是在矩阵的空间上 它将关于许多变量的单个函数的各种偏导数和 或关于单个变量的多变量函数的偏导数收集到可以被视为单个实体的向量
  • linux从EMMC启动或TFTP启动的UBOOT参数

    从EMMC启动内核及设备树 setenv bootargs console ttymxc0 115200 root dev mmcblk1p2 rootwait rw setenv bootcmd mmc dev 1 fatload mmc
  • java-logback记录日志到指定文件并且压缩保存日志

    yml配置文件中加入如下配置 logging config classpath logback spring xml 项目根目录下的xml配置文件 level root info 全局日志的级别 file name mes log 输出日志
  • nvm 在 Windows 上的使用

    NVM Node Version Manager 是一个用于管理和切换多个 Node js 版本的工具 它允许你在同一台机器上同时安装和使用不同版本的 Node js 而无需手动安装和卸载 之前都是只安装一个版本的 node js 该更新时
  • 2021年字节跳动、阿里等大厂最全Android面试题,已开源

    前言 对于字节跳动的二面三面而言 Framework MVP架构 HashMap原理 性能优化 Flutter 源码分析等问题都成高频问点 然而很多的朋友在面试时却答不上或者答不全 今天在这分享下这些问点的视频解析给大家 希望对有需要的朋友
  • 一文教会你如何用 Python 分割合并大文件

    有时候 我们需要把一个大文件发送给别人 但是限于传输通道的限制 比如邮箱附件大小的限制 或者网络状况不太好 需要将大文件分割成小文件 分多次发送 接收端再对这些小文件进行合并 今天就来分享一下用 Python 分割合并大文件的方法 思路及实
  • 2017版VisualStudio asp.net利用ZXing生成条形码、二维码

    2017版VisualStudio asp net利用ZXing生成条形码 二维码 一 在asp net项目中添加ZXing 1 右击项目 管理NuGet程序包 2 搜索ZXing 下载ZXing net并安装即可 二 生成条形码 1 页面
  • Arch Linux 安装(痛苦版)

    我已经用了两年的Linux FreeBSD 平时都是硬盘安装 除了BSD有点阻碍 linux不在话下 但是Arch Linux让我感到无助 虽然最后是用光驱安装成功 为什么要装archLinux 我的二手笔记本 CPU P3 700 RAM
  • Test Driven Development感悟

    编程的思想有面向过程编程 面向对象编程 面向接口编程 面向接口编程是现在很多公司在使用的 面向接口效率更好 而且使得业务代码更加简洁易调试 面向对象的方法使得代码会多出很多接口 可以为以后的使用留接口 但是开发效率不高 面向过程写代码 可以