【第二剑-构建活动】代码应该怎么写?
目录
前言
代码执行流程 模型图
代码应该怎么写?
前言
编码时,始终牢记两个要点:1、主流程 (正向流程) 2、异常监听(逆向流程)。
如果想要提高自己写代码的水平,对代码有自己的思考,建议大家有时间可以看一下关于代码规范的书籍。
这是我阅读《代码大全2》写的读后感,可供大家借鉴:《Code_Complete_2》持续更新中......_@来杯咖啡的博客-CSDN博客
当你读完之后,且在实际项目中已经沉淀了一段时间,再来读读代码规范的文章:
【开发规范】持续更新中......_@来杯咖啡的博客-CSDN博客
代码规范,只是给我们一个结论,并没有过多的阐述这么些的原因。这些原因我们可以从书中获取到,再结合实际项目中的场景,我们会更好的理解这个结论,从而真正意义上去遵守代码规范。
代码执行流程 模型图
代码执行流程:1、正常执行; 2、异常执行。
老规矩,首先在脑海中建立一个‘代码执行流程链路’模型:
①主流程:主流程包括ABC三个节点;
②异常流程:异常流程可能在ABC任意一个节点发生,当他发生的时候整个代码执行流程【可能】要改变;
- 如果该异常和 主业务 无关,可以直接吃掉这个异常然后代码执行流程不变(ABC);
- 如果该异常和 主业务 有关,一旦发生则后续流程无法执行(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流程进行代码细节填充。
【第二剑-构建活动】代码应该怎么写?相关推荐
- java写创建对象时找不到符号_在JDK 1.8上构建java代码时找不到符号错误
我在maven上用JDK 1.8构建Java代码.在构建过程中,我得到了cannot find symbol error. maven上的错误堆栈跟踪: [INFO] ---------------- ...
- [第二届构建之法论坛] 预培训文档(C++版)
本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的C++版本],需要实验者有一部分C++基础. 目录 Part0.背景 Part1.配置环境 Part2.克隆项目 Part ...
- [第二届构建之法论坛] 预培训文档(Java版)
本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的Java版本],需要实验者有一部分Java基础. 目录 Part0.背景 Part1.配置环境 配置JDK Linux 平 ...
- 云钉一体后首亮相,钉钉剑指低代码机遇
钉钉正瞄准着"星辰大海"的方向前进,我曾经就是干这个的,系统非常之强大,至于钉钉能不能把这个干好,我觉得不是方向的问题,而是组织的事情. 在如此大的平台上做技术输出,TOB要对对企 ...
- 复杂业务代码要怎么写
了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理. 这两天在看零售通商品域的代码.面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题.针对该命题,我进行了比较细致的思考 ...
- 博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客
博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客 发Chat 登录注册 常见8种算法总结 转载 2017年03月16日 22:23:43 目录 冒泡排序 鸡尾酒 ...
- 代码要想写得好,品位必须提一提!
要写出好代码,首先需要提升品位. 很多软件工程师写不好代码,在评审他人的代码时也看不出问题,就是因为缺乏对好代码标准的认识. 现在还有太多的软件工程师认为,代码只要可以正确执行就可以了.这是一种非常低 ...
- 用python来构建一个word文档-写文章
直接使用word文档已经难不倒大家了,有没有想过用python构建一个word文档写点文章呢?当然这个文章的框架需要我们用代码一点点的建立,在过程上有一点繁琐,一下子看不懂的小伙伴可以把它拆分成几个部 ...
- Leetcode惊现马化腾每天刷题?为啥大佬都这么努力?代码你打算写到几岁?
前几天,一张未证真伪的截图流传,图中显示马化腾几乎每天都会在 Leetcode 上提交代码. 截图还贴出一个 Leetcode 账户地址.该地址的头像已从马化腾的照片换成腾讯 logo,昵称也从&qu ...
- 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结
[第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...
最新文章
- spring boot使用注解的方式整合mybaits
- 关系型数据库的核心单元是_核中的数据关系
- 红橙Darren视频笔记 IOC注解框架 了解xUtils3与ButterKnife的原理
- 华东电脑申威服务器_华东电脑(600850):申威服务器首批量产下线 国产化业务落地里程碑事件[配资公司会议室]...
- swift 通知_Swift 闭包无脑加 [weak self] 行不行?
- [SinGuLaRiTy] 二分图匈牙利算法
- 在Ubuntu下如何切换到超级用户
- python csv数据所在行_使用python获取csv文本的某行或某列数据的实例
- 《软件方法》强化自测题-需求(2)
- Thinkpad连续响4遍4个短嘀故障记录
- 无胁科技-TVD每日漏洞情报-2022-7-12
- 工作用oracle18c还是11g,Oracle 18c体验
- 从Alexander Egyed的论文看程序语言和软件工程的论文写作风格差异
- 发改委印发《关于促进分享经济发展的指导性意见》
- 资深 iOS 开发工程师教你5 道题全面考察候选人
- wxid如何找到原始id,技术分享
- 树莓派系统镜像的下载和烧录
- 英文字符和数字间隔突然变大
- 0和1的艺术,与、或、非基本逻辑门电路
- 派森编程软件python有什么用_派森Python下载
热门文章
- 笔记本 GTX1050ti 安装win10 Ubuntu18.04 显卡问题
- vue 获取当前本机ip_vue中获取本地ip
- 和林格尔新区打造先进算力的“蓄水池”
- dns劫持教您dns被劫持如何修复、dns劫持如何修复
- 如何修复DNS劫持?dns被劫持了怎么办有什么解决方法
- GYY的词典 char
- HDU - 4565 So Easy! 矩阵快速幂
- Flutter 桌面应用调研
- java+SpringBoot+HTML+Mysq基于微信小程序的大咖读书系统的设计与实现
- 操作系统课程设计 Pintos 1 ALarm Clock 问题