精华内容
下载资源
问答
  • 代码简洁之道kindle版本mobi,代码简洁之道kindle版本mobi。
  • SpringBoot整合kafka代码,两个工程 一个消费者 一个生产者,利用定时任务和restapi发送消息,批量消费和指定分区消费。代码简洁。欢迎大家下载。
  • 代码简洁之道

    2014-10-07 16:06:10
    程序员自我修养重要一课,高质量、高简洁、高可读代码是优秀程序员不二追求,这本书是中文版。
  • 代码简洁之道,高清中文版,优质。。。。。。。。。。
  • 主要介绍了浅谈JavaScript 代码简洁之道,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了JS代码简洁方式之函数方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 代码简洁之道epub

    2019-01-18 10:10:22
    代码简洁之道epub,非常好,非常清晰,而且体积小,适合电子设备看!
  • 代码简洁之道--笔记

    千次阅读 2018-12-28 14:26:47
    今天公司给我们培训的代码简洁之道,讲怎样编写出简洁代码以及需要注意的地方,下面是我做的一些笔记。 什么样的代码简洁代码 让人最快读懂能理解的代码就是简洁代码代码的坏味道 1.重复的代码 2.过长...

    今天公司给我们培训的代码的简洁之道,讲怎样编写出简洁的代码以及需要注意的地方,下面是我做的一些笔记。

    什么样的代码是简洁的代码

    让人最快读懂能理解的代码就是简洁的代码。

    代码的坏味道

    1.重复的代码
    2.过长的方法
    3.过大的类
    4.过长的参数列
    5.散弹式修改
    6.不同的类别使用switch
    7.临时变量
    8.过多的抽象和代理
    9.无用多余的方法代码

    这些坏味道的代码往往会造成代码很多问题,如:
    1.难于变化
    2.难于重用
    3.设计过于复杂,不利于当前编码
    4.同样的逻辑多处出现,没有进行抽象的统一
    5.命名混乱,结构杂乱,难以阅读和理解
    6.难于测试和验证

    公司制定的十三大原则

    4不超

    1. 函数圈复杂度不超过15
    2. 函数代码行数不超过50行
    3. 函数参数不超过7个
    4. 函数嵌套层次不超过3层

    2个一

    1. 每一行代码只表达一件事
    2. 每个变量只用于单一用途

    7禁止

    1. 函数/变量命名要有真实准确的意义 (禁止含有Not、And、OR;禁止具有歧义的命名)
    2. 禁止使用do/while语句
    3. 禁止使用continue语句
    4. 禁止使用魔法数字
    5. 禁止使用三元表达式
    6. 禁止在if语句中使用运算表达式
    7. 禁止提交SVN的代码中含有死代码

    编写函数注意的地方。

    1.使用卫函数:卫函数是指减少程序的复杂度提前返回输出。

    2.函数、变量的命名需要表达真实意图,不能词不达意。达到让人读方法名就能知道这个函数是做什么用的效果。

    3.如果是一个public函数,尽量保持函数的单一抽象层次原则。即将这个函数抽离分解成若干个子函数组成,每个函数只做一件事情。这样的目的可以使得代码变得简洁易懂。

    如下面的代码。
    在这里插入图片描述
    If(!readOnly){…}可以使用卫函数,改成if(readOnly){return };然后对函数进行抽象,可以抽成三部分,第一部分判断是否为只读,第二部门扩容,第三部门添加函数。如下:
    在这里插入图片描述
    这样代码就显得很简洁了,让人一眼就能明白是做什么的。最后一个函数addElement()中只有一条语句也单独的抽成一个函数,这样做的好处是保证的函数的单一抽象层次原则。像书的目录一样,整个add()方法中都是函数组成,显得更加的美观,并且抽成函数可以通过函数名就能知道这个函数是做什么的,比直接写语句更加的直观。

    之前的理解是代码尽量多写注释,但是听完课之后理解到不要写无用的注释。当你想通过注释来说明一段代码是做什么的时候也许你就应该将其抽离出成函数,通过函数名来解释这个函数的作用,这样使得代码更加简洁。另外一段代码很乱,就不要给它再增加注释了,重写这个方法吧。

    函数的四个一原则

    一个变量只做一个用途
    一行代码只做一件事
    一个循环只做一件事
    一个函数只做一件事

    代码的圈复杂度计算

    1.进入函数,开始执行代码 +1
    2.遇关键字(if /else if /for /while /&& /|| ) +1
    3.Switch的每个case/default +1
    4.三元运算 a? b:c +1
    5.Catch +1
    6.Default +1

    重构

    重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。

    1、不改变外部行为
    2、只改善内部结构——使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性

    重构的目的:

    1.找出程序中的错误
    2.帮助我们提高变成速度
    3.帮助我们提高设计和编码水平

    重构的时机

    1.增加新功能时一并重构,增加功能前需要理解修改的代码,如果发现代码不易于理解无法轻松的增加功能,此时就需要对代码进行重构
    2.修补错误时一并重构,通过重构改善代码结构,帮助我们找到bug
    3.Review 代码时一并重构

    注意当代码实在是太混乱时请不要重构了,直接重写代码吧,还有当项目即将结束时不建议重构代码,因为已经没有时间来重构了

    重构的对象:即哪些代码需要重构。

    1.重复的代码,重复的代码需要提取出来形成函数以便于多处调用。
    2.冗长的代码块,需要进行分析抽离成若干个简洁的函数实现。
    3.循环过长和嵌套过深的代码,循环内部的复杂 代码往往可以转成子程序。
    4.子程序命名不当,需要对子程序重新命名,拆分或合并。
    5.难以理解的代码,需要进行整理流程并进行模块化。

    课件:https://pan.baidu.com/s/1ICbLWJjzgiar6rr4wRV0kw
    提取码:hpf3
    欢迎交流获取更多资源。

    展开全文
  • 主要介绍了PHP 代码简洁之道(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 代码简洁,方便懒人们修改使用的一款左右全屏焦点图效果,支持超链接。当然,如果你不需要的话也可以删掉
  • JAVA基础之代码简洁之道 背景 软件质量不但依赖于架构及项目管理更与代码质量紧密相关简洁高效的代码不但易于阅读更能避免潜在BUG与风险提高代码质量近期一位Oracle程序员在Hacker News上吐槽自己的工作引起了热议 ...
  • 代码简洁之道-总结

    千次阅读 2018-10-15 09:47:00
    从8月13号拿到这本书,历时两个月认真看了一遍,书中给了很多实用的建议,也以代码的方式展示了具体的优化方法和步骤。 书中1-13章有一个具体的点,逐个分析优化代码需要注意的地方。 读到第14章的时候,我崇拜的两...

    从8月13号拿到这本书,历时两个月认真看了一遍,书中给了很多实用的建议,也以代码的方式展示了具体的优化方法和步骤。
    书中1-13章每章都有一个具体的点,逐个分析优化代码需要注意的地方。
    读到第14章的时候,我崇拜的两个大牛给了建议,一个说代码还是要多写,写的多了发现不合理的地方的自然的就会想办法改进;一个建议我应该去读源码,从源码中学习解决问题的方式和思路,而不是还在看这些基础的书,源码看多了自然也就知道怎么更好的写代码和优化代码了。我听从了建议,在十一期间,我下载了spring的文档和源码,开始研究spring bean。但是,心里总觉得有件事情没有做完,没有探个究竟,有种半途而废的感觉,所以就计划拿出一个星期的时间把剩余部分看完。
    第14章的逐步改进,我按优化步骤,敲了4个版本的代码,跟着作者逐步优化代码,把优化的心得写在了注释里,在这里
    第15和16章,类似14章,分别针对一段程序做优化,15章里选了SerialDate的源码进行优化,跟随作者的思路,能按照1-13中提到的方法切割重组优化代码。
    第17章是对整本书的总结,可以说是优化代码的66条童子军军规(包括7个方面:注释、环境、函数、一般性问题!、Java、名称、测试)。

    我认为对我最有用的建议

    关于重复
    重复的代码都代表遗漏了抽象。重复的代码可能成为子程序或干脆是另一个类。将重复的代码放进类似的抽象,增加了你的程序语言的词汇量。其他程序员可以用到你创建的抽象设施。而且由于你提升了抽象层级,编码变得越来越快,错误越来越少。
    最明显的形态是你不断看到明显一样的代码,可以用单一的方法来代替。
    较隐蔽的形态是不同模块中不断重复出现、检测同一组条件的switch/case或if/else链,可以用多态来代替。
    更隐蔽的形态是采用类似的算法但具体代码行不同的模块,可以使用 模板方式策略模式来修正。(多数设计模式都是消除重复的有名手段,OO自身也是组织模块和消除重复的策略。)
    类的层级
    基类和派生类,较高层级不依赖较低层级派生类的概念。
    例外情况是,派生类数量严格固定,基类中拥有在派生类之间选择的代码,在有限状态机的实现中这种情况很常见。然而需要注意的是,这种基类和派生类紧密耦合的,只是部署在同一个jar文件中。
    一般情况下,我们是希望派生类和基类部署到不同的jar文件中,确保基类jar文件对派生类jar文件的内容一无所知,我们就能把系统部署为分散和独立的组件。当修改派生类时,不需要重新部署基类。这意味着大大降低了修改产生的影响,从而使维护系统变得简单。
    精简设计
    设计良好的模块有着非常小的接口,不依赖很多函数,耦合度较低,让你事半功倍。而设计低劣的模块有着广阔、深入的接口,需要依赖很多函数,耦合度较高,不得不事倍功半。
    限制类或模块中暴露的接口数量。类中的方法越少越好,函数知道的变量越少越好,类拥有的实体变量越少越好。
    隐藏你的数据,隐藏你的工具函数,隐藏你的常量和临时变量。不要创建拥有大量方法或大量实体变量的类。不要为子类创建大量受保护变量和函数。尽量保持接口紧凑。控制耦合度。
    注意边界条件测试
    我们要关注的不只是代码的逻辑,更要注意运行时的状态和判断条件执行情况,通常完备的单元测试是必须的。
    注意没有物理耦合的逻辑耦合
    如果一个模块依赖另一个模块,依赖就应该是物理上的而不是逻辑上的。这个字面上不太好说清楚,请参考书中P265中的优化步骤。
    用枚举的抽象方法重构switch
    重构switch的方法,一种是用多态,可以参考我上一篇博文;一种是用枚举的抽象方法,在枚举的每个属性中实现该抽象方法,使用时可以直接调用。
    数据和对象的反对称性
    需求中会需要添加新的数据类型而不是新的函数–>使用对象和面向对象(基类和多态)。
    添加新的函数而不是新的数据类型。–>使用过程式和数据结构。
    函数参数要少
    最理想的是没有参数,其次是一个,再次是二,尽量避免三。因为测试时的排列组合用例太多了。
    函数要短小
    每个函数只做一件事。
    作者建议:每行100字符,不超过20行。
    注释要精简
    只解释意图。避免罗列历史版本,那是版本管理工具做的事情,避免日志式注释,避免废话和误导,避免保留注释掉的注释。
    及时清除死代码
    不要手软。
    展开全文
  • 代码简洁之道.pptx

    2019-09-25 10:13:29
    软件开发代码简洁之道,是我们平时追求都目标,大家一定要坚持到底
  • 代码简洁的选项卡

    2014-10-31 14:08:24
    代码简洁的选项卡,非常简单明了,易于修改
  • C#图片加水印,代码简洁 引用简单
  • 大家在写代码的时候都希望写出简洁高效的代码,那什么样的代码简洁高效的呢,不是说代码行越少越好,也不是说用了一个多厉害的函数。而是能让别人一眼就能看懂的代码就是简洁代码,毕竟我们的代码都是祖传代码,...

    大家在写代码的时候都希望写出简洁高效的代码,那什么样的代码是简洁高效的呢,不是说代码行越少越好,也不是说用了一个多厉害的函数。而是能让别人一眼就能看懂的代码就是简洁的代码,毕竟我们的代码都是祖传代码,所以在看别人写的代码就知道有多痛苦了,所以为了我们写的代码方便别人看懂。这里和大家一起探讨下在写代码的时候需要注意哪些地方,遵循哪些规范,以及对现有的代码怎么优化。

    本场 Chat 分一下几个步骤(备注:针对 Java 项目,由于本人涉及的是 Java 代码,所以这次探讨的是 Java 代码的 Clean Code)。

    1. 讲解一下代码简洁的重要性。
    2. 什么样的代码是简洁易懂的代码。
    3. 怎样写出简洁代码,需要注意哪些。
    4. 对现在项目的代码怎么进行优化的思路。
    5. SonarLint 和 SonarQube 的使用。
    6. SonarLint 和 SonarQube 检测出的 bug、漏洞、异味修复的思路和案例

    阅读全文: http://gitbook.cn/gitchat/activity/5d0a095dea113b6bc28b58f1

    您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

    FtooAtPSkEJwnW-9xkCLqSTRpBKX

    展开全文
  • JS代码简洁之道

    千次阅读 2016-07-26 10:14:46
    因为很久没有关注JS代码了,正巧看到表弟写的JS感觉挺好的,所以拿来与大家探讨一下(代码量很少而且可读性强)。 1.JSP代码 String path = request.getContextPath(); String basePath = request.getScheme()+":...

    因为很久没有关注JS代码了,正巧看到表弟写的JS感觉挺好的,所以拿来与大家分享一下(代码量很少而且可读性强)。

    1.JSP代码

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    
      </head>
       
      <body>
        <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
    	<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
    	<script type="text/javascript" src="${pageContext.request.contextPath}/js/testform.js"></script>
    	
        用户信息管理 <br>
        
         <form id="testform" method="post"><br/><br/>
         	<input type="hidden" name="method" value="addUser"/>
         	姓名: <input type="text" name="studentName"/><br/><br/>
         	性别: <input type="text" name="studentSex" /><br/><br/>
         	地址: <input type="text" name="studentDizhi"/><br/><br/>
         	<input id="save" type="button" value="保存"/>
         </form>
       
    
      </body>
    </html>
    

    2.JS代码

    $(function() {
    	
    	function test(){
    		var options = {
    			url : "/demo/testAction.do",
    			type : "post",
    			data : $("form#testform").serialize(),
    			cache : false,
    			async : true,
    			success : function(data) {
    					alert("操作成功");
    					window.location.reload();
    			}
    		};
    		$.ajax(options);
    	}	
    	
    	function init() {
    		$("input#save").click(test);
    	}
    	
    	$(init);	
    });
    					
    		
    

    3.代码分析

    1.功能代码分离:各方法各司其职,如test()仅仅干一件事,就是保存。

    2.事件统一管理及初始化:这样很清晰哪些方法需要哪些操作,如init(),在这里面初始化绑定事件。

    3.尽量使用jQuery所提供的功能:比如form表单的序列化传参$("form#testform").serialize()。

    注:很多情况下我们并不注重代码的复用,如果稍加改进可以大大减少代码量,这也是平时开发需要注意和改进的地方。

    展开全文
  • pytorch实现特征图可视化,代码简洁,包教包会

    千次阅读 多人点赞 2020-08-02 20:07:07
    代码可直接复制使用,需要改的就是你的图片位置 import torch from torchvision import models, transforms from PIL import Image import matplotlib.pyplot as plt import numpy as np import scipy.misc plt....
  • c++编程必看的文档 代码简洁之道 clean code 高清版文档
  • EBCalendarView日历控件,调用简单,代码简洁
  • 重构java代码简洁之道

    2013-04-02 09:31:05
    重构java代码简洁之道,是描述java代码的编写重构的技巧。比较适合中国人
  • 智能路由心酸调优路——看推广代码简洁之道的重要性 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;甜橙金融作为一个日均订单量过千万的面向C端的互联网金融科技公司,525爆点...
  • 电子商务网站静态页面美观大方代码简洁七张静态页面,采用div+css做的,中文的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 559,612
精华内容 223,844
关键字:

代码简洁