代码整洁之道
代码整洁之道
一、简介
大约在1951年,一种名为“全员生产维护(Total Productive maintenance,TPM)”的质量保证手段出现在日本。关注维护甚至关注生产,TPM的主要支柱之一是所谓的5S原则体系。
1).5S哲学包含以下概念:
整理:组织,搞清楚事物之所在。
整顿:整齐,物皆有其位,而后物尽归其位。
清楚:清洁,对于那种四处遗弃的带注释的代码及反应过往或期望的无注释代码,除之而后快。
清洁:标准化,使用统一风格。
身美:自律,乐于改进。
2).稍后等于永不,(later equals naver)
二、命名的重要性:
以下代码的目的何在?
1 public List<int[]> getThem() { 2 List<int[]> list1 = new ArrayList<int[]>(); 3 for (int[] x : thheList) { 4 if (x[0] == 4) 5 list1.add(x); 6 return list1; 7 } 8 }
以下代码放扫雷游戏中,
1 public List<Cell> getFlaggedCells() { 2 List<Cell> flaggedCells = new ArrayList<Cell>(); 3 for (Cell cell : geameBoard) 4 if (cell.isFlageged()) 5 flaggedCells.add(cell); 6 retuen flaggedCells; 7 }
注意,代码的简洁性并未触及,运算符和常量数量没变,但是代码变得简洁明了了很多。这就是好的命名的力量。
4).避免误导
以同样的方式拼写出同样的概念才是信息,拼写前后不一致就是误导。
5).做有意义的区分
prooduuctData和productInfo名称不一样,意思却无区别。
6).使用能读出来的名称
7).使用可搜索的名称
8).避免使用编码
9).避免思维映射
10).类名不应当是动词
11).方法名
方法名应当是动词或者动词短语。
三、函数
1.短小,函数的第一规则就是要短小。
2.只做一件事,每一个函数只做一件事。
3.每个函数一个抽象层级。
4.switch语句,写出switch语句很难。
5.使用描述性的名。
6.函数参数,最理想的是零参数,其次是一,再次二,应该避免三参数函数。
7.无副作用,只做一件事,其他的事可能会被隐藏。
8.分割指令与需询问
9,使用异常代替错误码
10.别重复自己
11.结构化编程
原文地址:https://www.cnblogs.com/danwuxinbolg/p/11877357.html
- 物联网设备已沦陷,咖啡机也不能例外
- 我的WCF之旅(13):创建基于MSMQ的Responsive Service
- 开发自己的Data Access Application Block[上篇]
- 18.9/18.10 LVS NAT模式搭建
- 谈谈WCF中的Data Contract (1):Data Contract Overview
- Linux基础(day66)
- 字符串的驻留(String Interning)
- 19.5 忘记Admin密码如何做
- 19.3/19.4/19.6 安装zabbix
- 欲火焚身,心静则凉--只靠冲动是不能长久地
- 深入理解C#3.x的新特性(4):Automatically Implemented Property
- 增加网卡注意点
- 深入理解C# 3.x的新特性(1): Anonymous Type
- Linux基础(day65)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据库PostrageSQL-服务器配置文件位置
- 数据库PostrageSQL-服务器配置设置参数
- 一个基于ngrx的计数器例子
- SAP Spartacus checkout Shipping address的页面实现
- 使用Let's Encrypt保护你的数据包
- php7 + nginx + mysql 安装小计
- 掌阅iReader某站Python漏洞挖掘
- SAP Spartacus payment detail page的CMS模型
- wecenter反序列化造成任意SQL语句执行
- SAP Spartacus 读取payment detail数据的API
- SRCMS 多处越权+权限提升管理员漏洞
- SAP Spartacus把指定产品添加到购物车的API
- MyBatis源码解析之基础模块—Plugin
- php框架slim架构上存在XXE漏洞(XXE的典型存在形式)
- 个人博客搭建