首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码整洁之道-

在面向对象编程中,是其中基本单位,就像面向过程中函数一样。所以在说时,可以借鉴一下前面的函数,不如只做一件事,也就是所说单一职责。 函数应该短小,对于来说,也是这样。...函数短小可以通过代码行数来判断,对于来说,如何判断呢?可以通过判断其职责,也就是看它是否只做一件事情。同时做多件事情,命名也是一件痛苦事情。...比如一个名叫 Manneger,很容易让人误解,它管理什么呢? 所以,简单来说,一个应该只做好一件事,足矣。 当然,大概率写出第一版不会遵循这个规则。所以对其拆分就不可避免了。...比如,在拆分一个方法时,新方法使用了原来4个变量,那么是不是就要将这4个变量作为参数传递进去呢?我不要。其实完全可以将这4个变量作为属性。...但是这样的话问题来了,难以避免会导致中出现很多只在个别方法中用到属性,很难受。等等,只在个别方法中用到,为什么不能把他单独拆解作为一个呢?很好。

34110

代码洁癖系列(三):整洁和函数

前面我们讨论了什么样命名更能够让你赏心悦目,今天来讨论一下面向对象编程过程中最重要环节,编写和函数。我们仍然用Java来演示,什么样和函数才算是整洁。...首先讨论函数,函数定义好了,也就容易了。 短小 相信大家在读代码时候都会遇到过冗长函数定义。...言归正传,为什么函数要短小呢,如何才能是自己函数更加短小?第一个问题我也无法证明,只能告诉你短小函数看起来更加清晰,更加容易理解。那怎么才能让函数变得更加短小呢?很简单,抽离方法。...单一权责指的是一个只描述一事。上面这个有对最后焦点组件读写方法,还有获取版本号和序列号方法。...力求做到每次修改都不影响其他(即降低耦合)。 对于写好一个,总结来说就是“高内聚,低耦合”。想要写好一个类同样需要反复琢磨。没有人一开始就能写出很优雅代码。最后祝点赞的人写代码越来越优雅把。

49330
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    代码整洁之道-读书笔记之整洁代码

    1.整洁代码阅读本书有两个原因,第一,你是个程序员,第二,你想成为更好程序员1.1 要有代码有人认为随着时代发展,写代码不再是问题,我们更应该关注建模和需求这句话后半句没有问题,因为语言在发展、在进步...01.3.1 华丽新设计出现了上面的问题,人们第一想法就是:摒弃老代码,做一个全新设计,这是一个好思路,也是一个正确思路,但是从老迁移到新时间成本很高,在没有完全迁移完成,老系统也没法下掉...我们把问题归咎于那些愚蠢经理、苛求用户、没用营销方式等,代码自然就写不好了程序员遵从不了解混乱风险经理意愿,也是不专业做法。1.3.3 谜题程序员面临着一种基础价值谜题。...赶上期限唯一方法—做得快唯一方法—就是始终尽可能保持代码整洁。1.3.4 整洁代码艺术写整洁代码,需要遵循大量小技巧,贯彻刻苦习得整洁感”。这种“代码感”就是关键所在。有些人生而有之。...1.3.5 什么是整洁代码大家对整洁代码,都有着自己理解,今天我就说一下大家公认整洁代码规范1.只做好一件事(每个函数、每个、每个模块都全神贯注于一事,不受四周细节干扰和污染)2.可读性强3.

    29630

    代码整洁 JavaScript

    第二个问题通常是 “好了, 那么做很棒, 但是我为什么想要那样做呢”, 答案是我们学到上一条代码整洁之道理念: 一个函数应当只做一件事情。...这取决于你手上问题, 不过这儿有一个像样列表说 明什么时候继承比组合更好用: 你继承表示”是一个”关系而不是”有一个”关系(人类->动物 vs 用户->用户详情); 你可以重用来自基代码(...salary) { this.taxData = new EmployeeTaxData(ssn, salary); } // ... } SOLID 单一职责原则 (SRP) 正如代码整洁之道所述...给一个塞满许多功能, 就像你在航 班上只能带一个行李箱一样, 这样做问题不会有理想内聚性, 将会有太多理由来对它进行修改。...最小化需要修改一个次数时很重要, 因为如果一个拥有太多功能, 一旦你修改它一小部分, 将会很难弄清楚会对代码库中其它模块造成什么影响。

    1K40

    用 IDEA 写更整洁 Java 代码

    on save 支持如下动作: Reformat code[1]: 根据当前代码风格设置执行格式化代码动作,可设置生效文件类型及范围(整个文件、变更部分) Optimize imports[2]: 根据当前代码风格设置执行移除无用...import 及重新组织 import,可设置生效文件类型 Rearrange code[3]: 根据当前代码风格设置执行代码重排序动作 Run code cleanup[4]: 批量应用代码修正建议...Update copyright notice[5]: 更新版权信息 Run eslint --fix[6]: (IntelliJ IDEA Ultimate) 修正 ESlint 检查问题 Run...Prettier[7]: 用 Prettier 格式化代码 Upload to default server[8]: (IntelliJ IDEA Ultimate) 上传修改文件至默认部署服务器...以 StringUtil.java[10] 为例,生成 JavaDoc 内容如下: @@ -4,6 +4,9 @@ import org.apache.commons.lang3.StringUtils

    19410

    优雅整洁 Java 代码命名技巧,风之极·净化

    合格程序员不仅仅是让代码跑起来,而是要做到代码整洁,只满足为了能让编译器通过编译,机器能跑就行而写代码程序会算不上开发者,码农都不算。...所以我们比他们更加重视代码质量,才能应对变化需求。 保护代码持续整洁优雅是每个优秀开发者都应该遵守原则。 混乱代码只会拖慢未来开发进度,唯一加快进度方法:始终尽可能保持代码优雅整洁。...作为专业医生你会照做么? 作为专业程序员,我们要了解代码变坏风险并坚持保持代码质量。 什么是整洁代码 代码质量评判需要综合各种因素得到,我们并不能从单一维度去评判。...需要注意是,也不能拆分太细,否则就会破坏内聚性。 高手,就是用最简单方法去解决复杂问题。 没有重复代码 在开发过程中,我们应该尽可能抽象出「变与不变」,复用已经存在代码,不要写重复代码。...比如应用模板方法设计模式将不变算法逻辑框架定义出来,把变化点延迟到子类重写。 能快速写成单元测试 代码可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题

    87740

    什么是整洁代码

    作者 | xybaby 来源 | https://www.cnblogs.com/xybaby/p/11335829.html 写出整洁代码,是每个程序员追求。...《clean code》指出,要想写出好代码,首先得知道什么是肮脏代码、什么是整洁代码;然后通过大量刻意练习,才能真正写出整洁代码。...对于什么是整洁代码,书中给出了大师们总结: Bjarne Stroustrup:优雅且高效;直截了当;减少依赖;只做好一件事 Grady booch:简单直接 Dave thomas:可读,可维护,...注释适当作用在于弥补我们用代码表达意图时遇到失败,这听起来让人沮丧,但事实确实如此。The truth is in the code, 注释只是二手信息,二者不同步或者不等价是注释最大问题。...造成上述问题某种情况是因为,这段代码也违背了单一职责原则,做了不只一件事情,这才导致不好复用,解决办法是进行方法细分,才能更好复用。也可以考虑template method来处理差异部分。

    51920

    如何让你代码整洁漂亮?

    代码整洁漂亮。 同时书写整洁漂亮代码是一名伟大软件匠人标志。 这里有两个涉及到学习这门卓越技术要点- 知识与练习。知识可以教会职业中所需模式、原则、实践和启发式。...这里没有简单方法或窍门。 这里有一些你可以掌握编写整洁美丽代码方法。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者名称应该要回答这三个大问题:存在理由?做了什么?和如何使用?...代码移动和更改:代码块移动到其他地方,而注释不随着移动,就会成为一个问题! 要牢记,带有一点注释并且整洁和有表现力代码,要远远好过复杂并带有大量注释代码。...作为开发者,我们致力于让 代码的如期运行。然而,问题不在于解决错误,而是用干净可读方式解决错误。 很多代码是由错误处理组成代码就变得如此分散,以至于完全磨灭了主代码目的和逻辑。

    87580

    编码之道——代码整洁与逻辑

    编码之道——代码整洁与逻辑      大部分时候我们都提倡一句话——“代码越简洁越好”,很多时候大家误解了这句话意思,代码简洁不是简单。...,不知道大家是否已经看出,代码1-1存在问题。...虽然代码1-1代码量很少,但是其中存在很多问题,特别是代码逻辑严谨性。但是代码1-2还是存在问题,主要是代码不够简洁、抽象。...这整个过程很简洁,可以清晰表达了我们去看电影过程,一些细节问题,我们并不暴露出来,而是把他隐藏起来,并不是说我们不知道这些细节,当女朋友问我“我们是坐中间还是坐边上”,像这种细节,她问了,我们才回答...一个简单赋值过程,可以让开发者学到很多东西。 写代码要严谨,严谨过程中要注重代码整洁

    67840

    如何让你代码整洁漂亮?

    代码整洁漂亮。 同时书写整洁漂亮代码是一名伟大软件匠人标志。 这里有两个涉及到学习这门卓越技术要点- 知识与练习。知识可以教会职业中所需模式、原则、实践和启发式。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者名称应该要回答这三个大问题:存在理由?做了什么?和如何使用?...函数是语言动词,而是名词。在任何编程语言中,函数通常是系统中第一行,编写好函数是写好代码实质所在。...代码移动和更改:代码块移动到其他地方,而注释不随着移动,就会成为一个问题! 要牢记,带有一点注释并且整洁和有表现力代码,要远远好过复杂并带有大量注释代码。...作为开发者,我们致力于让 代码的如期运行。然而,问题不在于解决错误,而是用干净可读方式解决错误。 很多代码是由错误处理组成代码就变得如此分散,以至于完全磨灭了主代码目的和逻辑。

    79030

    如何让你代码整洁漂亮?

    代码整洁漂亮。 同时书写整洁漂亮代码是一名伟大软件匠人标志。 这里有两个涉及到学习这门卓越技术要点- 知识与练习。知识可以教会职业中所需模式、原则、实践和启发式。...每个阅读你代码的人都会因此而很感谢你。 牢记变量、函数或者名称应该要回答这三个大问题:存在理由?做了什么?和如何使用?...“功能决定设计” 每个系统都是由程序员设计,从一个特定领域语言搭建起来。函数是语言动词,而是名词。在任何编程语言中,函数通常是系统中第一行,编写好函数是写好代码实质所在。...代码移动和更改:代码块移动到其他地方,而注释不随着移动,就会成为一个问题! 要牢记,带有一点注释并且整洁和有表现力代码,要远远好过复杂并带有大量注释代码。...作为开发者,我们致力于让 代码的如期运行。然而,问题不在于解决错误,而是用干净可读方式解决错误。 很多代码是由错误处理组成代码就变得如此分散,以至于完全磨灭了主代码目的和逻辑。

    96260

    「译」代码整洁之道 7 个方法

    但有时,一行代码可读性并不高。 If 语句 我对这个问题命名无力… 看!命名不易… 但我经常看到这种情况。...这样做没什么问题。 这段代码可以正常运行。但是为什么属性名还是 name? 那将是整个范围中唯一 name 属性吗?属性名又来自哪个对象? 通过重命名属性可避免这些问题。...每个人都知道变量是 organizer 名字。 童子军规则 听过这样一句话吗:“永远保持离开时露营地比你发现它时更整洁”? 这就是童子军规则。让代码比发现时更好。...而且代码库将会有很多清洁工作要做,但是如果每个人都承担起自己责任并遵守童子军法则,很多问题将会得到解决。 代码风格 同样重要还有确定团队中代码风格。...正如我所说,可读代码更容易维护,当然可读代码还有其他更多好处。 如果你想了解更多关于代码整洁之道知识,可以尝试阅读罗伯特・马丁代码整洁之道》。

    66020

    优秀程序员眼中整洁代码

    糟糕代码想做太多事,它意图混乱、目的含混。整洁代码力求集中。每个函数、每个和每个模块都全神贯注于一事,完全不受四周细节干扰和污染。...阅读整洁代码和阅读 Lord of the Rings(中译版《指环王》)自然不同。不过,仍有可类比之处。如同一本好小说般,整洁代码应当明确地展现出要解决问题张力。...近年来,我开始研究贝克简单代码规则,差不多也都琢磨透了。简单代码,依其重要顺序: 能通过所有测试; 没有重复代码; 体现系统中全部设计理念; 包括尽量少实体,比如、方法、函数等。...如果每个例程都让你感到深合己意,那就是整洁代码。如果代码让编程语言看起来像是专为解决那个问题而存在,就可以称之为漂亮代码。 这种说法很 Ward。它教你听了之后就点头,然后继续听下去。...我们都曾面临语言不是为要解决问题所设计困境。但 Ward 说法又把球踢回我们这边。他说,漂亮代码让编程语言像是专为解决那个问题而存在!所以,让语言变得简单责任就在我们身上了!

    64270

    代码规范问题修改方法

    Java 解决方法:删除无用jar包 问题描述:Move constants to a class or enum 解决方法:常量不应定义在一个接口中,常量可以定义在使用该常量中 修改前代码...of null 解决方法:将null改成空数组 问题描述:Remove this unused method parameter “isAjax“ 解决方法:删除无用函数参数isAjax 修改前代码...,然后优化代码实现逻辑,解决重复代码问题 优化前代码 @ResponseBody @RequestMapping("/getResourceStatus") public Map<String,...修改前代码 public class Digests { } 修改后代码 public class Digests { private Digests() { } } 问题描述:...转载请注明: 【文章转载自meishadevs:代码规范问题修改方法】

    1.7K20

    不一样代码整洁之道

    Tech 导读 本文旨在提供一种代码整洁方法思想理论,读者可以通过本文在理论指导下灵活运用技术方法。 01 引言 在今年敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。...2.4 保持代码卷面整洁Java】 //逻辑说明:只保留 PD 属性数据//普通实现 private void removeBatch(PoBatchRel batchRel) { //相似的逻辑就高度聚合...图1 逻辑主流程框架 阅读代码时能快速明确主逻辑,不被过多细节所牵绊。 2.6 禁止项 1. 1.禁止超千行代码文件超千行说明承载职责不单一,应该通过合理化分功能减少文件代码行数。...从设计稿出发,提升页面搭建效率,亟需解决核心问题有: 111 《编写高质量代码:改善Java程序151个建议》 作者:秦小波 《大话设计模式》 作者:程杰 IntelliJ IDEA 插件...如何使用JDK 所提供Api一样。 以上是在工作中所见所遇,各系统都存在与示例中普通实现一样逻辑,千行方法,万行,重复造轮子等问题,造成系统代码臃肿,维护难不断增加。

    18610

    java加载常见几种问题理解加载机制

    初始化父静态成员变量和静态代码块; 2. 初始化子类中静态成员变量和静态代码块; 3. 初始化父普通成员变量和普通代码块,再执行父构造方法; 4....初始化子类普通成员变量和普通代码块,再执行子类构造方法; (1)初始化父普通成员变量和代码块,执行 Y y=new Y(); 输出Y (2)再执行父构造方法;输出X (3)初始化子类普通成员变量和代码块...2、 将这个字节流所代表静态存储结构转化为方法区运行时数据结构。 3、 在Java堆中生成一个代表这个java.lang.Class对象,作为方法区这些数据访问入口。...如果一个方法体字节码没有通过字节码验证,那肯定是有问题;但如果一个方法体通过了字节码验证,也不能说明其一定就是安全。...到了初始化阶段,才真正开始执行中定义Java程序代码。 初始化阶段是执行构造器()方法过程。

    43830

    java几种关系详解(有代码、有图)

    Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML图设计中,继承用一条带空心三角箭头实线表示,从子类指向父,或者子接口指向父接口。...例如,蛇是父,眼镜蛇继承蛇,下面看uml图和代码 代码: class Snake{ void sleep(){} } class GlassSnake extends Snake{} 2、实现(...在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML图设计中,实现用一条带空心三角箭头虚线表示,从指向实现接口。...例如,人和电脑关系,人没必要一定要有电脑,但是比如人在写代码时候就需要用电脑,这是一种偶然性,一般来说B作为参数被A在某个method方法中使用。...关联可以是单向、双向。表现在代码层面,为被关联B以属性形式出现在关联A中,也可能是关联A引用了一个类型为被关联B全局变量。

    70020

    Java开发中存在这样代码,反而影响整体整洁和可读性

    解决 在该函数最常引用中建立一个有着类似行为新函数。将旧函数变成一个单纯委托函数,或是旧函数完全移除。 ? 提炼函数(Extract Method) 问题 你有一段代码可以组织在一起。...问题原因 之间应该尽量少感知彼此(减少耦合)。这样更容易维护和复用。...收益 提高代码组织性。 提高代码复用性。 ? 重构方法说明 搬移函数(Move Method) 问题程序中,有个函数与其所驻之外另一个进行更多交流:调用后者,或被后者调用。 ?...能减少代码量。 ? 何时忽略 过于侵略性委托可能会使程序员难以理解功能是如何触发。 重构方法说明 隐藏委托关系(Hide Delegate) 问题 客户通过一个委托来调用另一个对象。 ?...解决 在服务上建立客户所需所有函数,用以隐藏委托关系。 ? 提炼函数(Extract Method) 问题 你有一段代码可以组织在一起。

    48730
    领券