网站首页 > java教程 正文
场景一
有时候我们会遇到一个方法就是占满了整个屏幕,其中各种if else
判断 ,for
循环嵌套,时不时来穿插着各种a b c
参数,让人看得实在是眼花缭乱。让后面维护的人望而却步,也实在的代码块后面继续增加,增加......当我们看着这样的代码时,庆幸的事不用我来维护,坑爹的事需要自己来改,心中早已一万个草尼玛飘过了。
场景二
当一些新手刚学习接触设计模式的时候,感觉就像看到了武功秘籍。想也没想就直接网上套,各种 工厂模式,策略模式,装饰模式等等,会显得更加臃肿,类过多。本来是简单的功能,会可能就会设计过度。
我们作为刚入门的Java菜鸟该如何避免呢
偶然看到Mark Seemann
写的一篇关于The 80/24 rule的博客,有很大的启发。里面提到的80/24
规则,说的是我们写的代码块 (每行80个字符以内,不超过24行) 还有更多的细节大家可以点击链接参考参考。在这样的规则约束下,就可以轻松的去掉一些代码的坏味道。 例如:
- 重复代码
- 过长的函数方法
- 过大的类
- 过长的参数列
- 等等
用小而美的代码块
小的代码块,小方法、小功能、小程序,用小而美的代码来点缀我们的软件。如何来实现小而美的代码块有以下几点可以关注
- 每行字符数:<80
- 方法体行数:<24
- 方法依赖(对象或方法):<7
- 代码块中循环嵌套复杂度:<3
优雅代码示例
public ActionResult Post(ReservationDto dto)
{
var validationMsg = Validator.Validate(dto);
if (validationMsg != "")
return BadRequest(validationMsg);
var reservation = Mapper.Map(dto);
var reservations = Repository.ReadReservations(reservation.Date);
var accepted = ma?treD.CanAccept(reservations, reservation);
if (!accepted)
return StatusCode(
StatusCodes.Status500InternalServerError,
"Couldn't accept.");
var id = Repository.Create(reservation);
return Ok(id);
}
不要出现和业务无关的参数
避免使用Map,Json这些复杂对象作为参数和结果
有明确的输入输出和方法名
编写能测试的函数
傻瓜都能写出计算机可以读懂的代码,只有优秀的程序员才能写出人能读懂的代码!文章有帮助你,请关注微信公众号:肆意游离 有更多精彩等着你
猜你喜欢
- 2024-09-16 Java学习:Lambda表达式(java lambda表达式详解)
- 2024-09-16 java高阶面试问题java8中的CAS讲解
- 2024-09-16 java时间操作(java时间运算)
- 2024-09-16 Java学习:JDBC各类详解(jdbc的类)
- 2024-09-16 Java注解和反射学习总结(java中注解的原理)
- 2024-09-16 MacBook pro M1 JDK版本切换(mac更换jdk)
- 2024-09-16 使用Java语言从零开始创建区块链其实并不难,快来围观吧!
- 2024-09-16 java成为Python手下的一员!看我大Python如何调用java服务的!
- 2024-09-16 菜鸟IO流的操作规律笔记——java(菜鸟api接口)
- 2024-09-16 两分钟轻松搞懂联合索引,最左匹配原则?#java程序员
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)