当前位置:首页 > 其它 > 代码整洁pdf电子书
《代码整洁之道(2020)》电子书封面

代码整洁之道(2020)

  • 发布时间:2021年03月19日 20:28:07
  • 作者:罗伯特·C. 马丁
  • 大小:149 MB
  • 类别:代码整洁电子书
  • 格式:PDF
  • 版本:清晰版
  • 评分:8.1

代码整洁之道(2020) PDF 清晰版

    代码整洁之道(2020)》是一本关于代码整洁相关的电子书资源,介绍了关于代码整洁、代码方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小149 MB,罗伯特·C. 马丁编写,目前豆瓣、亚马逊、当当、京东等综合评分为:8.8分,一起来看下具体内容。

    Tags:代码整洁 代码 

    内容介绍

    软件质量,不但依赖架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

    推荐理由

    “阅读这本书有两种原因:*,你是个程序员;第二,你想成为更好的程序员。很好,IT行业需要更好的程序员!”——罗伯特·C. 马丁(Robert C. Martin) 尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。但是,这种情况并非无法避免。 著名软件专家罗伯特·C. 马丁(Robert C. Martin) 在本书中为你呈现了革命性的视野。他携同Object Mentor公司的同事,从他们有关整洁代码的*敏捷实践中提炼出软件技艺的价值观,以飨读者,让你成为更优秀的程序员——只要你着手研读本书。 阅读本书需要你做些什么呢?你将阅读代码——大量代码。本书会促使你思考何谓正确的代码,何谓错误的代码。更重要的是,本书将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。 书中的具体内容包括: ·好代码和糟糕的代码之间的区别; ·如何编写好代码,如何将糟糕的代码转化为好代码; ·如何创建好名称、好函数、好对象和好类; ·如何格式化代码以实现其可读性的*化; ·如何在不妨碍代码逻辑的前提下充分实现错误处理; ·如何进行单元测试和测试驱动开发。

    目录

    • 第1章 整洁代码 1
    • 1.1 要有代码 2
    • 1.2 糟糕的代码 2
    • 1.3 混乱的代价 3
    • 1.3.1 华丽新设计 4
    • 1.3.2 态度 4
    • 1.3.3 谜题 5
    • 1.3.4 整洁代码的艺术 5
    • 1.3.5 什么是整洁代码 6
    • 1.4 思想流派 10
    • 1.5 我们是作者 11
    • 1.6 童子军军规 12
    • 1.7 前传与原则 12
    • 1.8 小结 13
    • 1.9 文献 13
    • 第2章 有意义的命名 14
    • 2.1 介绍 14
    • 2.2 名副其实 15
    • 2.3 避免误导 16
    • 2.4 做有意义的区分 17
    • 2.5 使用读得出来的名称 18
    • 2.6 使用可搜索的名称 19
    • 2.7 避免使用编码 20
    • 2.7.1 匈牙利语标记法 20
    • 2.7.2 成员前缀 21
    • 2.7.3 接口和实现 21
    • 2.8 避免思维映射 21
    • 2.9 类名 22
    • 2.10 方法名 22
    • 2.11 别抖机灵 22
    • 2.12 每个概念对应一个词 23
    • 2.13 别用双关语 23
    • 2.14 使用解决方案领域名称 24
    • 2.15 使用源自所涉问题领域的名称 24
    • 2.16 添加有意义的语境 24
    • 2.17 不要添加没用的语境 26
    • 2.18 最后的话 27
    • 第3章 函数 28
    • 3.1 短小 31
    • 3.2 只做一件事 32
    • 3.3 每个函数一个抽象层级 33
    • 3.4 switch语句 34
    • 3.5 使用具有描述性的名称 35
    • 3.6 函数参数 36
    • 3.6.1 单参数函数的普遍形式 37
    • 3.6.2 标识参数 37
    • 3.6.3 双参数函数 38
    • 3.6.4 三参数函数 38
    • 3.6.5 参数对象 39
    • 3.6.6 参数列表 39
    • 3.6.7 动词与关键字 39
    • 3.7 无副作用 40
    • 3.8 分隔指令与询问 41
    • 3.9 使用异常替代返回错误码 42
    • 3.9.1 抽离try/catch代码块 42
    • 3.9.2 错误处理就是一件事 43
    • 3.9.3 Error.java依赖磁铁 43
    • 3.10 别重复自己 44
    • 3.11 结构化编程 44
    • 3.12 如何写出这样的函数 45
    • 3.13 小结 45
    • 3.14 SetupTeardownIncluder程序 45
    • 3.15 文献 48
    • 第4章 注释 49
    • 4.1 注释不能美化糟糕的代码 50
    • 4.2 用代码来阐述 51
    • 4.3 好注释 51
    • 4.3.1 法律信息 51
    • 4.3.2 提供信息的注释 51
    • 4.3.3 对意图的解释 52
    • 4.3.4 阐释 53
    • 4.3.5 警示 53
    • 4.3.6 TODO注释 54
    • 4.3.7 放大 55
    • 4.3.8 公共API中的Javadoc 55
    • 4.4 坏注释 55
    • 4.4.1 喃喃自语 55
    • 4.4.2 多余的注释 56
    • 4.4.3 误导性注释 58
    • 4.4.4 循规式注释 59
    • 4.4.5 日志式注释 59
    • 4.4.6 废话注释 60
    • 4.4.7 可怕的废话 62
    • 4.4.8 能用函数或变量时就别用注释 62
    • 4.4.9 位置标记 62
    • 4.4.10 括号后面的注释 63
    • 4.4.11 归属与署名 63
    • 4.4.12 注释掉的代码 64
    • 4.4.13 HTML注释 64
    • 4.4.14 非本地信息 65
    • 4.4.15 信息过多 65
    • 4.4.16 不明显的联系 66
    • 4.4.17 函数头 66
    • 4.4.18 非公共代码中的Javadoc 66
    • 4.4.19 范例 66
    • 4.5 文献 70
    • 第5章 格式 71
    • 5.1 格式的目的 72
    • 5.2 垂直格式 72
    • 5.2.1 向报纸学习 73
    • 5.2.2 概念间垂直方向上的区隔 73
    • 5.2.3 垂直方向上的靠近 74
    • 5.2.4 垂直距离 75
    • 5.2.5 垂直顺序 79
    • 5.3 横向格式 80
    • 5.3.1 水平方向上的区隔与靠近 81
    • 5.3.2 水平对齐 82
    • 5.3.3 缩进 83
    • 5.3.4 空范围 84
    • 5.4 团队规则 85
    • 5.5 “鲍勃大叔”的格式规则 85
    • 第6章 对象和数据结构 88
    • 6.1 数据抽象 88
    • 6.2 数据、对象的反对称性 90
    • 6.3 得墨忒耳律 92
    • 6.3.1 火车失事 92
    • 6.3.2 混杂 93
    • 6.3.3 隐藏结构 93
    • 6.4 数据传送对象 94
    • 6.5 小结 95
    • 6.6 文献 96
    • 第7章 错误处理 97
    • 7.1 使用异常而非返回码 98
    • 7.2 先写try-catch-finally语句 99
    • 7.3 使用未检异常 100
    • 7.4 给出异常发生的环境说明 101
    • 7.5 依调用者需要定义异常类 101
    • 7.6 定义常规流程 103
    • 7.7 别返回null值 104
    • 7.8 别传递null值 105
    • 7.9 小结 106
    • 7.10 文献 106
    • 第8章 边界 107
    • 8.1 使用第三方代码 108
    • 8.2 浏览和学习边界 109
    • 8.3 学习log4j 110
    • 8.4 学习性测试的好处不只是免费 112
    • 8.5 使用尚不存在的代码 112
    • 8.6 整洁的边界 113
    • 8.7 文献 114
    • 第9章 单元测试 115
    • 9.1 TDD三定律 116
    • 9.2 保持测试整洁 117
    • 9.3 整洁的测试 118
    • 9.3.1 面向特定领域的测试语言 120
    • 9.3.2 双重标准 121
    • 9.4 每个测试一个断言 123
    • 9.5 F.I.R.S.T. 125
    • 9.6 小结 125
    • 9.7 文献 126
    • 第10章 类 127
    • 10.1 类的组织 128
    • 10.2 类应该短小 128
    • 10.2.1 单一权责原则 130
    • 10.2.2 内聚 131
    • 10.2.3 保持内聚性就会得到许多短小的类 132
    • 10.3 为了修改而组织 138
    • 10.4 文献 141
    • 第11章 系统 142
    • 11.1 如何建造一个城市 143
    • 11.2 将系统的构造与使用分开 143
    • 11.2.1 分解main 144
    • 11.2.2 工厂 145
    • 11.2.3 依赖注入 145
    • 11.3 扩容 146
    • 11.4 Java代理 149
    • 11.5 纯Java AOP框架 151
    • 11.6 AspectJ的方面 154
    • 11.7 测试驱动系统架构 154
    • 11.8 优化决策 155
    • 11.9 明智使用添加了可论证价值的标准 155
    • 11.10 系统需要领域特定语言 156
    • 11.11 小结 156
    • 11.12 文献 156
    • 第12章 迭进 158
    • 12.1 通过迭进设计达到整洁目的 158
    • 12.2 简单设计规则1:运行所有测试 159
    • 12.3 简单设计规则2~4:重构 159
    • 12.4 不可重复 160
    • 12.5 表达力 162
    • 12.6 尽可能少的类和方法 163
    • 12.7 小结 163
    • 12.8 文献 163
    • 第13章 并发编程 164
    • 13.1 为什么要并发 165
    • 13.2 挑战 166
    • 13.3 并发防御原则 167
    • 13.3.1 单一权责原则 167
    • 13.3.2 推论:限制数据作用域 167
    • 13.3.3 推论:使用数据副本 168
    • 13.3.4 推论:线程应尽可能地独立 168
    • 13.4 了解Java库 168
    • 13.5 了解执行模型 169
    • 13.5.1 生产者-消费者模型 170
    • 13.5.2 读者-作者模型 170
    • 13.5.3 宴席哲学家 170
    • 13.6 警惕同步方法之间的依赖 170
    • 13.7 保持同步区域微小 171
    • 13.8 很难编写正确的关闭代码 171
    • 13.9 测试线程代码 172
    • 13.9.1 将伪失败看作可能的线程问题 172
    • 13.9.2 先使非线程代码可工作 172
    • 13.9.3 编写可插拔的线程代码 173
    • 13.9.4 编写可调整的线程代码 173
    • 13.9.5 运行多于处理器数量的线程 173
    • 13.9.6 在不同平台上运行 173
    • 13.9.7 装置试错代码 174
    • 13.9.8 硬编码 174
    • 13.9.9 自动化 175
    • 13.10 小结 176
    • 13.11 文献 176
    • 第14章 逐步改进 177
    • 14.1 Args的实现 178
    • 14.2 Args:草稿 185
    • 14.2.1 所以我暂停了 196
    • 14.2.2 渐进 197
    • 14.3 字符串类型参数 199
    • 14.4 小结 236
    • 第15章 JUnit内幕 237
    • 15.1 JUnit框架 238
    • 15.2 小结 251
    • 第16章 重构SerialDate 252
    • 16.1 首先,让它能工作 253
    • 16.2 让它做对 255
    • 16.3 小结 268
    • 16.4 文献 268
    • 第17章 味道与启发 269
    • 17.1 注释 270
    • 17.2 环境 271
    • 17.3 函数 271
    • 17.4 一般性问题 272
    • 17.5 Java 288
    • 17.6 名称 291
    • 17.7 测试 295
    • 17.8 小结 296
    • 17.9 文献 296
    • 附录A 并发编程II 297
    • 附录B org.jfree.date.SerialDate 326
    • 结束语 388

    读书笔记

    python当前时间格式化代码

    今天的这篇文章我们来了解一下python之中关于python时间格式化的那一部分内容,python格式化这方面的日期与时间这方面因为所用的方面比较的少,所以可能对于这一方面的研究比较的少,今天我们就来聊聊python日期格式化之一方面的知识。

     

    格式化日期:我们可以使用 time 模块的 strftime 方法来格式化日期,具体的代码如下:

    time.strftime(format[, t])

    看起来并不是很难,那么接下来我们就来试试这个代码。

    将他带入下面的实例之中来试试:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time
     
    # 格式化成2016-03-20 11:45:39形式
    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
     
    # 格式化成Sat Mar 28 22:24:24 2016形式
    print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
      
    # 将格式字符串转换为时间戳
    a = "Sat Mar 28 22:24:24 2016"
    print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

    来看看输入之后所得到的答案:

    2018-08-14 17:05:32
    Tue Aug 14 17:05:32 2018
    1459175064.0

    看来很好的完成了预期的效果,有兴趣的朋友可以自己试一试。看看所输出的时间是不是你当时的时间。

    在这次的文章之中,我们了解了如何格式化自己当前的时间,其实这样的操作是相当的简单的,不明白的话其实自己可以动手去试一试,毕竟动手实践才是验证所学的最好的方法与途径。最后我也希望这篇文章能够给正在学习python的你带来一点帮助。

    更多相关知识,请访问码农之家Python教程栏目。

    以上就是如何格式化时间?python当前时间格式化操作展示的详细内容,更多请关注码农之家其它相关文章!

    以上就是本次介绍的代码整洁电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

    上一篇:labuladong的算法小抄

    下一篇:重构:改善既有代码的设计(第2版)

    查看更多
    下载地址:百度网盘下载
    代码整洁 相关电子书
    Android系统源代码分析
    Android系统源代码分析 PDF 高清版

    Android从诞生到现在仅有短短几年的时间,它凭借其开源开放性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率位居第一的智能手机操

    立即下载
    代码之髓:编程语言核心概念
    代码之髓:编程语言核心概念 PDF 完整扫描版 立即下载
    Android系统源代码情景分析(第3版)
    Android系统源代码情景分析(第3版) PDF 完整版

    本书结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及Linux内核层、硬件抽象层、运行时库层、应用程序框架层及应用程序层

    立即下载
    大数据处理系统:Hadoop源代码情景分析
    大数据处理系统:Hadoop源代码情景分析 PDF 高清版

    Hadoop是目前采用最广、最重要的一种开源的大数据处理平台,读懂Hadoop的源代码,深入理解其各种机理,对于掌握大数据处理的技术有着显而易见的重要性。毛德操著的《大数据处理系统(Had

    立即下载
    代码管理核心技术及实践
    代码管理核心技术及实践 PDF 超清版

    这本书通过系统化的介绍和比较,从整体上讲解了代码管理工具和系统的历史和发展,帮助读者在现实中从团队的大小及代码管理模式是集中式还是分布式、开源还是闭源等各个角度去了解和思考代码管理的核心技术和实践经验

    立即下载
    读者心得
    61小时40分钟前回答

    python使用folium库绘制地图点击框的详细代码

    python使用folium 库生成地图网页的具体代码,供大家参考,具体内容如下 folium 官网 import foliumimport pandas as pddef mark_map(data): 带有标注的地图 :param data: :return: # 地图制作 myMap = folium.Map(location=[20, 0], tiles=Mapbox Bright, zoom_start=2) for i in range(len(data)): # 自定义 popup 内容 test = folium.Html( bid:{}/b/br bname:{}/b/br blon:{}/b/br blat:{}/b/br .format(data.iloc[i][id], data.iloc[i][name], data.iloc[i][lon], data.iloc[i][lat]), script=True) popup = folium.Popup(test, max_width=2650) folium.Marker([data.iloc[i][lon], data.iloc[i][lat]], popup=popup).add_to(myMap) # 保存地图 myMap.save(testMap.html)if __name__ == __main__: # 地图上的点 data = pd.DataFrame({ lat: [-58, 2, 145, 30.32, -4.03, -73.57, 36.82, -38.5], lo……

    1小时44分钟前回答

    Bootstrap导航中表单简单实现代码

    导航中图标,表单的编程: htmlheadmeta charset="utf-8"meta http-equiv="X-UA-Compatible" content="IE-edge"meta name="viewport" content="width=device-width,initial-scale=1"titleBootstrap 101 Template/titlelink href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap-theme.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet"link href="http://cdn.bootcss.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet"/headbodynav class="navbar navbar-default" role="navigation"!--nav class="navbar navbar-default navbar-inverse" role="navigation"--div class="container-fluid"!-- 导航图标 --div class="navbar-header"a class="navbar-brand" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ……

    码农之家

    邹柔洁 提供上传

    资源
    49
    粉丝
    37
    喜欢
    197
    评论
    16

    Copyright 2018-2021 www.xz577.com 码农之家

    版权投诉 / 书籍推广:520161757@qq.com