目录

前言

代码执行流程 模型图

代码应该怎么写?


前言

编码时,始终牢记两个要点:1、主流程 (正向流程) 2、异常监听(逆向流程)。

如果想要提高自己写代码的水平,对代码有自己的思考,建议大家有时间可以看一下关于代码规范的书籍。

这是我阅读《代码大全2》写的读后感,可供大家借鉴:《Code_Complete_2》持续更新中......_@来杯咖啡的博客-CSDN博客

当你读完之后,且在实际项目中已经沉淀了一段时间,再来读读代码规范的文章:

【开发规范】持续更新中......_@来杯咖啡的博客-CSDN博客

代码规范,只是给我们一个结论,并没有过多的阐述这么些的原因。这些原因我们可以从书中获取到,再结合实际项目中的场景,我们会更好的理解这个结论,从而真正意义上去遵守代码规范。

代码执行流程 模型图

代码执行流程:1、正常执行; 2、异常执行。

老规矩,首先在脑海中建立一个‘代码执行流程链路’模型:

主流程:主流程包括ABC三个节点;

异常流程:异常流程可能在ABC任意一个节点发生,当他发生的时候整个代码执行流程【可能】要改变;

  1. 如果该异常和 主业务 无关,可以直接吃掉这个异常然后代码执行流程不变(ABC);
  2. 如果该异常和 主业务 有关,一旦发生则后续流程无法执行(AB)。

思考:

1、C流程会被执行到吗?

-- 不一定。因为A、B其中任意一个发生异常 + 程序中开发人员根据A、B业务重要程度对异常的处理方案 ,可能造成 C执行不到。

2、如何让C流程一定被执行?

-- 对A、B流程进行 异常监听(try catch finally)。 将C流程放到finally里面,或者如果AB流程都没有return操作,C流程可以放到try catch外面。

 // C放到finally里面try{// 执行A...// 执行B...return ;} catch (Exception e) {log.error("error");} finally {// 执行C...}// C放到try catch外面try{// 执行A...// 执行B...} catch (Exception e) {log.error("error");}// 执行C...

代码应该怎么写?

写代码有个很大的忌讳:上来就开始写 细节 代码。比较正确的写代码方式如下:

1、定义大纲

先定义代码大纲目的是:这是一种 约束。它规定了代码执行的流程;

//1. ‘注释’形式定义代码【正常执行】流程
void m () {
// A// B// C}//2. 根据真实‘业务场景’判断每个流程是否进行【异常监听】,考虑异常时是否【提前结束程序】下面代码模拟场景:A流程如果异常直接提前结束程序;B流程出现异常不要影响后续流程;C流程执行且不进行异常监听;void m () {
// Atry{// B
} catch(Exception e) {log.error("error");
}// C}

2、分别对ABC流程进行代码细节填充。

【第二剑-构建活动】代码应该怎么写?相关推荐

  1. java写创建对象时找不到符号_在JDK 1.8上构建java代码时找不到符号错误

    我在maven上用JDK 1.8构建Java代码.在构建过程中,我得到了cannot find symbol error. maven上的错误堆栈跟踪: [INFO] ---------------- ...

  2. [第二届构建之法论坛] 预培训文档(C++版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的C++版本],需要实验者有一部分C++基础. 目录 Part0.背景 Part1.配置环境 Part2.克隆项目 Part ...

  3. [第二届构建之法论坛] 预培训文档(Java版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的Java版本],需要实验者有一部分Java基础. 目录 Part0.背景 Part1.配置环境 配置JDK Linux 平 ...

  4. 云钉一体后首亮相,钉钉剑指低代码机遇

    钉钉正瞄准着"星辰大海"的方向前进,我曾经就是干这个的,系统非常之强大,至于钉钉能不能把这个干好,我觉得不是方向的问题,而是组织的事情. 在如此大的平台上做技术输出,TOB要对对企 ...

  5. 复杂业务代码要怎么写

    了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理. 这两天在看零售通商品域的代码.面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题.针对该命题,我进行了比较细致的思考 ...

  6. 博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客

    博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客 发Chat 登录注册 常见8种算法总结 转载 2017年03月16日 22:23:43 目录 冒泡排序 鸡尾酒 ...

  7. 代码要想写得好,品位必须提一提!

    要写出好代码,首先需要提升品位. 很多软件工程师写不好代码,在评审他人的代码时也看不出问题,就是因为缺乏对好代码标准的认识. 现在还有太多的软件工程师认为,代码只要可以正确执行就可以了.这是一种非常低 ...

  8. 用python来构建一个word文档-写文章

    直接使用word文档已经难不倒大家了,有没有想过用python构建一个word文档写点文章呢?当然这个文章的框架需要我们用代码一点点的建立,在过程上有一点繁琐,一下子看不懂的小伙伴可以把它拆分成几个部 ...

  9. Leetcode惊现马化腾每天刷题?为啥大佬都这么努力?代码你打算写到几岁?

    前几天,一张未证真伪的截图流传,图中显示马化腾几乎每天都会在 Leetcode 上提交代码. 截图还贴出一个 Leetcode 账户地址.该地址的头像已从马化腾的照片换成腾讯 logo,昵称也从&qu ...

  10. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

最新文章

  1. spring boot使用注解的方式整合mybaits
  2. 关系型数据库的核心单元是_核中的数据关系
  3. 红橙Darren视频笔记 IOC注解框架 了解xUtils3与ButterKnife的原理
  4. 华东电脑申威服务器_华东电脑(600850):申威服务器首批量产下线 国产化业务落地里程碑事件[配资公司会议室]...
  5. swift 通知_Swift 闭包无脑加 [weak self] 行不行?
  6. [SinGuLaRiTy] 二分图匈牙利算法
  7. 在Ubuntu下如何切换到超级用户
  8. python csv数据所在行_使用python获取csv文本的某行或某列数据的实例
  9. 《软件方法》强化自测题-需求(2)
  10. Thinkpad连续响4遍4个短嘀故障记录
  11. 无胁科技-TVD每日漏洞情报-2022-7-12
  12. 工作用oracle18c还是11g,Oracle 18c体验
  13. 从Alexander Egyed的论文看程序语言和软件工程的论文写作风格差异
  14. 发改委印发《关于促进分享经济发展的指导性意见》
  15. 资深 iOS 开发工程师教你5 道题全面考察候选人
  16. wxid如何找到原始id,技术分享
  17. 树莓派系统镜像的下载和烧录
  18. 英文字符和数字间隔突然变大
  19. 0和1的艺术,与、或、非基本逻辑门电路
  20. 派森编程软件python有什么用_派森Python下载

热门文章

  1. 笔记本 GTX1050ti 安装win10 Ubuntu18.04 显卡问题
  2. vue 获取当前本机ip_vue中获取本地ip
  3. 和林格尔新区打造先进算力的“蓄水池”
  4. dns劫持教您dns被劫持如何修复、dns劫持如何修复
  5. 如何修复DNS劫持?dns被劫持了怎么办有什么解决方法
  6. GYY的词典 char
  7. HDU - 4565 So Easy! 矩阵快速幂
  8. Flutter 桌面应用调研
  9. java+SpringBoot+HTML+Mysq基于微信小程序的大咖读书系统的设计与实现
  10. 操作系统课程设计 Pintos 1 ALarm Clock 问题