首页 > 其他分享 >代码整洁之道笔记4

代码整洁之道笔记4

时间:2023-11-22 17:11:36浏览次数:28  
标签:try 代码 笔记 之道 API 接口 异常 第三方 整洁

七.错误信息
错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法

使用异常而非返回码

1.遇到错误时,最好抛出一个异常。调用代码很整洁,其逻辑不会被错误处理搞乱

先写Try-Catch-Finally语句

1.异常的妙处之一是,它们在程序中定义了一个范围。执行try-catch-finally语句中try部分的代码时,你是在表明可随时取消执行,并在catch语句中接续

2.在某种意义上,try代码块就像是事务,catch代码块将程序维持在一种持续状态

3.在编写可能抛出异常的代码时,最好先写try-catch-finally语句,能帮你定义代码的用户应该期待什么,无论try代码块中执行的代码出什么错都一样

使用不可控异常

1.可控异常,就是指在方法签名中标注异常。但有时候会产生多层波及,有时候你对较底层的代码修改,可能会波及很多上层代码

给出异常发生的环境说明

1.抛出的每个异常,都应当提供足够的环境说明,以便判断错误的来源和处所

2.应创建信息充分的错误消息,并和异常一起传递出去

依调用者需要定义异常类

1.自定义的异常类最重要的考虑是它们如何被捕获

2.将第三方API打包是个良好的实践手段,降低了对每个第三方的依赖,也有助于模拟第三方调用,并将一些复杂的异常捕获过程封装

定义常规流程

1.特例模式(SPECIAL CASE PATTERN,[Fowler]),创建一个类或配置一个对象,用来处理特例,异常行为被封装到特例对象中

尽量别返回null值,也别传递null值

八.边界
使用第三方代码

1.第三方程序包和框架提供者追求普适性,这样就能在多个环境中工作,吸引广泛的用户

2.我们建议不要将Map(或在边界上的其他接口)在系统中传递,把它保留在类或近亲类中,避免从API中返回边界接口,或将接口作为参数传递给公共API

学习性测试的好处不只是免费

1.学习性测试毫无成本,编写测试是获得这些知识(要使用的API)的容易而不会影响其他工作的途径

2.学习性测试确保第三方程序包按照我们想要的方式工作

使用尚不存在的代码

编写我们想得到的接口,好处之一是它在我们控制之下,有助于保持客户代码更可读,且集中于它该完成的工作

整洁的边界

1.边界上的改动,有良好的软件设计,无需巨大投入和重写即可进行修改

2.边界上的代码需要清晰的分割和定义了期望的测试。依靠你能控制的东西,好过依靠你控制不了的东西,免得日后受它控制

3.可以使用ADAPTER模式将我们的接口转换为第三方提供的接口

标签:try,代码,笔记,之道,API,接口,异常,第三方,整洁
From: https://www.cnblogs.com/liucaizhi/p/17849792.html

相关文章

  • sharding分表应用笔记(四)——踩坑记录
    sharding分表应用笔记(四)——踩坑记录(更新中)目录sharding分表应用笔记(四)——踩坑记录(更新中)1sql语句使用时不带分表关键字段2在事务中触发数据源路由1sql语句使用时不带分表关键字段如果不带分表关键字段,会默认进行全节点域遍历。如果没有预先创建所有的表节点,会报错提示找不......
  • GPG 相关简单笔记
    工作中接触到GPG相关,特此记录下一些简单的用法和需求。使用加密加密是采用公钥进行加密,通常情况下,加密需要指定USER,或者USER-ID指令通常是:gpg-uuser-oencrypted.txt-eorigin.txt签名签名只是让接受者判断,这个文件是不是让你接受的,实际上即使不是以你的用户签名的......
  • 学习笔记11
    关于知识点知识点归纳第十三章TCP/IP和网络编程13.1网络编程简介网络编程是指编写应用程序以实现计算机网络之间的通信和数据交换。网络编程涉及到一系列的技术和协议,包括套接字编程、网络协议(如TCP/IP、HTTP等)、分布式计算技术等。在网络编程中,开发者需要了解网络分层模......
  • 阅读笔记-人月神话
    削足适履这个章节在讲什么?我们很多时候在开发程序的时候都是考虑程序的运行时间和效率,而很少考虑到程序的运行空间问题。现在的存储空间是越来越廉价,我们很少去考虑这些问题。经典的DOS版本的仙剑奇侠传还不到20M,而现在的一个大游戏却是2,3G甚至更大。由于计算机的不断更新换代和......
  • vue学习笔记(借鉴其他笔记不是本人书写)
    文章目录一.Vue基础认识Vue.jsVue安装方式Vue的MVVM二.Vue基础语法生命周期模板语法创建Vue,options可以放什么语法综合v-onv-for遍历数组v-model表单绑定v-model结合radio类型使用v-model结合checkbox类型使用v-model结合select类型使用值绑......
  • linux读书笔记第6章
    在Linux的第6章中,主要学习了I/O重定向和管道的内容。以下是关于这两个主题的学习总结:1.I/O重定向:Linux中的I/O重定向是一种机制,可以将标准输入、标准输出和标准错误输出从默认的设备(通常是终端)重定向到其他地方。可以使用符号">"来将输出重定向到文件中,使用符号">>"来追加输......
  • 深度学习笔记2:数据增强
    上一节由于训练数据集样本量较小,模型过早拟合最终我们在测试数据集的分类精度只达到了70%,本章节我们通过使用数据增强降低过拟合的方法。使用数据增强之后,模型的分类精度将提高到80%~85%。数据增强是指从现有的训练样本中生成更多的训练数据,做法是利用一些能够生成可信图像的......
  • 学习记录笔记
    学习记录笔记A*算法奇乐编程学院B站视频练习网站......
  • Linux读书笔记第5章
    在学习Linux的进程管理过程中,我总结了以下几个关键点:1.进程的创建和终止:Linux中的进程可以通过fork()系统调用来创建新的进程,该系统调用会复制当前进程的所有属性,并创建一个新的进程。另外,exec()系列的系统调用可以用于在新创建的进程中加载新的程序。而进程的终止可以通过调用e......
  • Linux进程管理学习感悟与笔记
    1.ps   'ps'是Linux中最基础的浏览系统中的进程的命令。能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。下述选项可以得到更多有用的消息。ps -a - 列出所有运行中/激活进程ps -ef |grep - 列出需要进程ps -aux - 显示进程信息,包括无终端......