自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 资源 (28)
  • 收藏
  • 关注

转载 【转载】python数据挖掘与机器学习——python和相关的数据挖掘与机器学习库的安装

原文地址:https://blog.csdn.net/dhaiuda/article/details/79321555 目前3.7版本的python不是很稳定,有些库还不支持,不太建议下载。首先,登陆python官网 点击打开链接,选择对应的系统,如...

2019-06-20 23:10:23 84

转载 【转载】机器学习——基本术语

原文地址:https://blog.csdn.net/dhaiuda/article/details/79173272 令D={X1,X2,X3.......Xm},则D表示包含m个示例的数据集,每个示例由d个属性描述,则每个示例Xi=(Xi1;Xi2;....... Xid)是d维...

2019-06-20 23:08:41 65

转载 Spring MVC @Transactional注解方式事务失效的解决办法

原文地址:http://blog.csdn.net/will_awoke/article/details/12002705前文提到,最新换了框架,新项目用SpringMVC + Spring JdbcTemplate。搭框架时,发现了一个事务无法正常回滚的问题,记录如下:首先展示问题:Spring applicationContext.xml配置:

2015-03-05 17:05:22 294

Java最新2022版面试题及解答(266页)

Java最新2022版面试题及解答(266页) 基础篇 JVM篇 多线程&并发篇 Spring篇 MyBatis篇 SpringBoot篇 MySQL篇 SpringCloud篇 Dubbo篇 Nginx篇 MQ篇 数据结构与算法 Linux篇 Zookeeper篇 Redis篇 分布式锁 网络篇 设计模式 maven篇 ElasticSearch篇 tomcat篇 Git篇 软实力篇

2023-04-19

八大机器学习模型大比拼!看看谁的表现最好?

八大机器学习模型大比拼!看看谁的表现最好? 最近在看华泰的《人工智能选股系列》 , 然后就想用现在的数据实现一下. 比较了K近邻、逻辑回归、决策树、朴素贝叶斯、随机森林、Adaboost、支持向量机、XGboost一共八种机器学习选股模型在中证500指数上的表现。 本人才疏学浅,编程能力有限,虽然所有模型的表现都超越了中证500,但是收益并不可观。还望各路大神能够指点一下

2023-04-19

Spring Boot 2.1-参考手册-中文版(高清文字版带目录).pdf

目录 I. Spring Boot 文件 1. 关于文档 2. 获得帮助 3. 第一步 4. 使用Spring Boot 5. 了解Spring Boot 功能 6. 转向生产 7. 高级主题 II 。 入门 8. 介绍Spring Boot 9. 系统要求 9.1.Servlet 容器 10. 安装Spring Boot 10.1.Java Developer 的安装说明 10.1.1.Maven安装 10.1.2.Gradle安装 10.2. 安装Spring Boot CLI 10.2.1.手动安装 10.2.2.使用SDKMAN安装! 10.2.3.OSX Homebrew安装 10.2.4.MacPorts安装 10.2.5.命令行完成 10.2.6.Windows Scoop安装 10.2.7.快速启动Spring CLI示例 10.3. 从早期版本的Spring Boot 升级 11. 开发您的第一个Spring Boot 应用程序 11.1. 创建POM 11.2. 添加Classpath 依赖项 11.3. 编写代码 11.3.1.@RestController和@RequestMapping Annotations 11.3.2.@EnableAutoConfiguration注释 11.3.3.“主要”方法 11.4. 运行示例 11.5. 创建一个可执行的Jar 12. 接下来要阅读的内容 III 。 使用Spring Boot 13. 构建系统 13.1. 依赖管理 13.2.Maven 13.2.1.继承Starter Parent 13.2.2.在没有父POM的情况下使用Spring Boot 13.2.3.使用Spring Boot Maven插件 13.3.Gradle 13.4.Ant 13.5.Starters 14. 构建您的代码 14.1. 使用“ 默认” 包 14.2. 找到主应用程序类 15. 配置类 15.1. 导入其他配置类 15.2. 导入XML 配置 16. 自动配置 16.1. 逐步更换自动配置 16.2. 禁用特定的自动配置类 17. Spring Beans 和依赖注入 18. 使用@SpringBootApplication Annotation 19. 运行您的应用程序 19.1. 从IDE 运行 19.2. 作为打包应用程序运行 19.3. 使用Maven 插件 19.4. 使用Gradle 插件 19.5. 热插拔 20. 开发人员工具 20.1.Property 默认值 20.2. 自动重启 20.2.1.记录条件评估中的更改 20.2.2.不包括资源 20.2.3.观看其他路径 20.2.4.禁用重启 20.2.5.使用触发器文件 20.2.6.自定义重新启动类加载器 20.2.7.已知限制 20.3.LiveReload 20.4. 全局设置 20.5. 远程应用 20.5.1.运行远程客户端应用程序 20.5.2.远程更新 21. 包装您的生产应用程序 22. 接下来要阅读的内容 IV 。Spring Boot 功能 23. SpringApplication 23.1. 启动失败 23.2. 自定义横幅 23.3. 自定义SpringApplication 23.4.Fluent Builder API 23.5. 应用程序事件和监听器 23.6. 网络环境 23.7. 访问应用程序参数 23.8. 使用ApplicationRunner 或CommandLineRunner 23.9. 申请退出 23.10. 管理功能 24. 外部配置 24.1. 配置随机值 24.2. 访问命令行属性 24.3. 应用程序Property 文件 24.4. 配置文件特定的属性 24.5. 属性中的占位符 24.6. 加密属性 24.7. 使用YAML 而不是属性 24.7.1.加载YAML 24.7.2.在Spring环境中将YAML公开为属性 24.7.3.多个档案的YAML文件 24.7.4.YAML缺点 24.8. 类型安全的配置属性 24.8.1.第三方配置 24.8.2.轻松绑定 24.8.3.合并复杂类型 24.8.4.属性转换 转换持续时间 转换数据大小 24.8.5.@ConfigurationProperties验证 24.8.6.@ConfigurationProperties vs. @Value 25. 简介 25.1. 添加活动配置文件 25.2. 以编程方式设置配置文件 25.3. 配置文件特定的配置文件 26. 记录 26.1. 日志格式 26.2. 控制台输出 26.2.1.彩色编码输出 26.3. 文件输出 26.4. 日志级别 26.5. 日志组 26.6. 自定义日志配置 26.7.Logback Extensions 26.7.1.特定于配置文件的配置 26.7.2.环境属性 27. JSON 27.1.Jackson 27.2.GSON 27.3.JSON-B 28. 开发Web 应用程序 28.1.“Spring Web MVC 框架” 28.1.1.Spring MVC自动配置 28.1.2.HttpMessageConverters 28.1.3.自定义JSON序列化程序和反序列化程序 28.1.4.MessageCodesResolver的信息 28.1.5.静态内容 28.1.6.欢迎页面 28.1.7.自定义Favicon 28.1.8.路径匹配和内容协商 28.1.9.ConfigurableWebBindingInitializer 28.1.10.模板引擎 28.1.11.错误处理 自定义错误页面 将错误页面映射到Spring MVC之外 28.1.12.Spring HATEOAS 28.1.13.CORS支持 28.2.“Spring WebFlux 框架” 28.2.1.Spring WebFlux自动配置 28.2.2.带有HttpMessageReaders和HttpMessageWriters的HTTP编解码器 28.2.3.静态内容 28.2.4.模板引擎 28.2.5.错误处理 自定义错误页面 28.2.6.网络过滤器 28.3.JAX-RS 和Jersey 28.4. 嵌入式Servlet 容器支持 28.4.1.Servlet,过滤器和监听器 注册Servlet,过滤器和监听器Spring Beans 28.4.2.Servlet上下文初始化 扫描Servlet,过滤器和侦听器 28.4.3.ServletWebServerApplicationContext 28.4.4.自定义嵌入式Servlet容器 程序化定制 直接自定义ConfigurableServletWebServerFactory 28.4.5.JSP限制 28.5. 嵌入式Reactive Server 支持 28.6.Reactive Server 资源配置 29. 安全 29.1.MVC 安全 29.2.WebFlux 安全 29.3.OAuth2 29.3.1.客户 OAuth2共同提供者的客户注册 29.3.2.资源服务器 29.3.3.授权服务器 29.4. 执行器安全 29.4.1.跨站点请求伪造保护 30. 使用SQL 数据库 30.1. 配置DataSource 30.1.1.嵌入式数据库支持 30.1.2.连接到生产数据库 30.1.3.连接到JNDI数据源 30.2. 使用JdbcTemplate 30.3.JPA 和Spring Data JPA 30.3.1.实体类 30.3.2.Spring数据JPA存储库 30.3.3.创建和删除JPA数据库 30.3.4.在View中打开EntityManager 30.4.Spring 数据JDBC 30.5. 使用H2 的Web 控制台 30.5.1.更改H2控制台的路径 30.6. 使用jOOQ 30.6.1.代码生成 30.6.2.使用DSLContext 30.6.3.jOOQ SQL方言 30.6.4.自定义jOOQ 31. 使用NoSQL Technologies 31.1.Redis 31.1.1.连接到Redis 31.2.MongoDB 的 31.2.1.连接到MongoDB数据库 31.2.2.MongoTemplate 31.2.3.Spring数据MongoDB存储库 31.2.4.嵌入式Mongo 31.3.Neo4j 的 31.3.1.连接到Neo4j数据库 31.3.2.使用嵌入模式 31.3.3.Neo4jSession 31.3.4.Spring数据Neo4j存储库 31.4.Gemfire 31.5.Solr 的 31.5.1.连接到Solr 31.5.2.Spring Data Solr存储库 31.6.Elasticsearch 31.6.1.通过REST客户端连接到Elasticsearch 31.6.2.使用Jest连接到Elasticsearch 31.6.3.使用Spring数据连接到Elasticsearch 31.6.4.Spring Data Elasticsearch存储库 31.7.Cassandra 31.7.1.连接到Cassandra 31.7.2.Spring数据Cassandra存储库 31.8.Couchbase 31.8.1.连接到Couchbase 31.8.2.Spring数据Couchbase存储库 31.9.LDAP 31.9.1.连接到LDAP服务器 31.9.2.Spring数据LDAP存储库 31.9.3.嵌入式内存LDAP服务器 31.10.InfluxDB 31.10.1.连接到InfluxDB 32. 缓存 32.1. 支持的缓存提供程序 32.1.1.通用 32.1.2.JCache(JSR-107) 32.1.3.EhCache 2.x 32.1.4.Hazelcast 32.1.5.Infinispan 32.1.6.Couchbase 32.1.7.Redis 32.1.8.Caffeine 32.1.9.简单 32.1.10.None 33. 消息传递 33.1.JMS 33.1.1.ActiveMQ支持 33.1.2.Artemis支持 33.1.3.使用JNDI ConnectionFactory 33.1.4.发送消息 33.1.5.收到消息 33.2.AMQP 33.2.1.RabbitMQ支持 33.2.2.发送消息 33.2.3.收到消息 33.3.Apache Kafka 支持 33.3.1.发送消息 33.3.2.收到消息 33.3.3.卡夫卡流 33.3.4.其他Kafka Properties 34. 使用 RestTemplate 调用REST 服务 34.1.RestTemplate 自定义 35. 使用 WebClient 调用REST 服务 35.1.WebClient 运行时 35.2.WebClient 自定义 36. 验证 37. 发送电子邮件 38. 使用JTA 的分布式事务 38.1. 使用Atomikos 事务管理器 38.2. 使用Bitronix 事务管理器 38.3. 使用Java EE 托管事务管理器 38.4. 混合XA 和非XA JMS 连接 38.5. 支持替代嵌入式事务管理器 39. Hazelcast 40. Quartz Scheduler 41. 任务执行和调度 42. Spring Integration 43. Spring Session 44. 对JMX 的监测和管理 45. 测试 45.1. 测试范围依赖性 45.2. 测试Spring 应用程序 45.3. 测试Spring Boot 应用程序 45.3.1.检测Web应用程序类型 45.3.2.检测测试配置 45.3.3.排除测试配置 45.3.4.使用模拟环境进行测试 45.3.5.使用正在运行的服务器进 45.3.6.使用JMX 45.3.7.嘲弄和间谍Beans 45.3.8.自动配置的测试 45.3.9.自动配置的JSON测试 45.3.10.自动配置的Spring MVC测试 45.3.11.自动配置Spring WebFlux测试 45.3.12.自动配置的数据JPA测试 45.3.13.自动配置的JDBC测试 45.3.14.自动配置的数据JDBC测试 45.3.15.自动配置的jOOQ测试 45.3.16.自动配置的数据MongoDB测试 45.3.17.自动配置的数据Neo4j测试 45.3.18.自动配置的数据Redis测试 45.3.19.自动配置的数据LDAP测试 45.3.20.自动配置的REST客户端 45.3.21.自动配置的Spring REST文档测试 使用Mock MVC自动配置Spring REST文档测试 使用REST Assured自动配置Spring REST文档测试 45.3.22.额外的自动配置和切片 45.3.23.用户配置和切片 45.3.24.使用Spock测试Spring Boot应用程序 45.4. 测试实用程序 45.4.1.ConfigFileApplicationContextInitializer 45.4.2.TestPropertyValues 45.4.3.OutputCapture 45.4.4.TestRestTemplate 46. WebSockets 47. 网络服务 48. 使用 WebServiceTemplate 调用Web 服务 49. 创建自己的自动配置 49.1. 了解自动配置Beans 49.2. 找到自动配置候选者 49.3. 条件Annotations 49.3.1.课程条件 49.3.2.Bean条件 49.3.3.Property条件 49.3.4.资源条件 49.3.5.网络应用条件 49.3.6.SpEL表达条件 49.4. 测试您的自动配置 49.4.1.模拟Web上下文 49.4.2.覆盖Classpath 49.5. 创建自己的初学者 49.5.1.命名 49.5.2. autoconfigure 模块 49.5.3.入门模块 50. Kotlin 的支持 50.1. 要求 50.2. 空安全 50.3.Kotlin API 50.3.1.runApplication 50.3.2.扩展 50.4. 依赖管理 50.5. @ConfigurationProperties 50.6. 测试 50.7. 资源 50.7.1.进一步阅读 50.7.2.例子 51. 接下来要阅读的内容 V. Spring Boot Actuator :生产就绪功能 52. 启用生产就绪功能 53. 终点 53.1. 启用端点 53.2. 公开端点 53.3. 保护HTTP 端点 53.4. 配置端点 53.5. 用于执行器Web 端点的超媒体 53.6.CORS 支持 53.7. 实现自定义端点 53.7.1.接收输入 输入类型转换 53.7.2.自定义Web端点 Web端点请求谓词 路径 HTTP方法 消费 产生 Web端点响应状态 Web端点范围请求 Web端点安全 53.7.3.Servlet端点 53.7.4.控制器端点 53.8. 健康信息 53.8.1.自动配置的HealthIndicators 53.8.2.编写自定义HealthIndicators 53.8.3.反应健康指标 53.8.4.自动配置的ReactiveHealthIndicators 53.9. 应用信息 53.9.1.自动配置的InfoContributors 53.9.2.定制应用信息 53.9.3.Git提交信息 53.9.4.建立信息 53.9.5.编写自定义InfoContributors 54. 通过HTTP 进行监控和管理 54.1. 自定义管理端点路径 54.2. 自定义管理服务器端口 54.3. 配置特定于管理的SSL 54.4. 自定义管理服务器地址 54.5. 禁用HTTP 端点 55. 对JMX 的监测和管理 55.1. 自定义MBean 名称 55.2. 禁用JMX 端点 55.3. 通过HTTP 使用Jolokia for JMX 55.3.1.定制Jolokia 55.3.2.禁用Jolokia 56. 记录器 56.1. 配置记录器 57. 度量标准 57.1. 入门 57.2. 支持的监控系统 57.2.1.AppOptics 57.2.2.Atlas 57.2.3.Datadog 57.2.4.Dynatrace 57.2.5.Elastic 57.2.6.Ganglia 57.2.7.Graphite 57.2.8.Humio 57.2.9.Influx 57.2.10.JMX 57.2.11.KairosDB 57.2.12.New Relic 57.2.13.Prometheus 57.2.14.SignalFx 57.2.15.简单 57.2.16.StatsD 57.2.17.Wavefront 57.3. 支持的指标 57.3.1.Spring MVC指标 57.3.2.Spring WebFlux指标 57.3.3.Jersey服务器指标 57.3.4.HTTP客户端度量标准 57.3.5.缓存指标 57.3.6.数据源度量标准 57.3.7.Hibernate度量标准 57.3.8.RabbitMQ指标 57.4. 注册自定义指标 57.5. 自定义个别指标 57.5.1.常用标签 57.5.2.Per-meter属性 57.6. 度量标准端点 58. 审计 59. HTTP 跟踪 59.1. 自定义HTTP 跟踪 60. 过程监测 60.1. 扩展配置 60.2. 编程 61. Cloud Foundry 支持 61.1. 禁用Extended Cloud Foundry Actuator 支持 61.2.Cloud Foundry 自签名证书 61.3. 自定义上下文路径 62. 接下来要阅读的内容 VI 。 部署Spring Boot 应用程序 63. 部署到云端 63.1.Cloud Foundry 63.1.1.绑定到服务 63.2.Heroku 的 63.3.OpenShift 63.4. 亚马逊网络服务(AWS ) 63.4.1.AWS Elastic Beanstalk 使用Tomcat平台 使用Java SE平台 63.4.2.摘要 63.5.Boxfuse 和亚马逊网络服务 63.6. 谷歌云 64. 安装Spring Boot 应用程序 64.1. 支持的操作系统 64.2.Unix / Linux 服务 64.2.1.安装为 init.d 服务(系统V) 保护 init.d 服务 64.2.2.安装为 systemd 服务 64.2.3.自定义启动脚本 写入时自定义启动脚本 它运行时自定义脚本 64.3.Microsoft Windows 服务 65. 接下来要阅读的内容 七。Spring Boot CLI 66. 安装CLI 67. 使用CLI 67.1. 使用CLI 运行应用程序 67.1.1.推断“抓住”依赖关系 67.1.2.推断“抓住”坐标 67.1.3.默认导入语句 67.1.4.自动主要方法 67.1.5.自定义依赖关系管理 67.2. 多源文件的应用程序 67.3. 打包您的应用程序 67.4. 初始化一个新项目 67.5. 使用嵌入式Shell 67.6. 将扩展添加到CLI 68. 使用Groovy Beans DSL 开发应用程序 69. 使用 settings.xml 配置CLI 70. 接下来要阅读的内容 八。 构建工具插件 71. Spring Boot Maven 插件 71.1. 包括插件 71.2. 打包可执行文件夹和War 文件 72. Spring Boot Gradle 插件 73. Spring Boot AntLib 模块 73.1.Spring Boot Ant 任务 73.1.1. spring-boot:exejar 73.1.2.例子 73.2. spring-boot:findmainclass 73.2.1.例子 74. 支持其他构建系统 74.1. 重新包装档案 74.2. 嵌套库 74.3. 寻找主类 74.4. 重新打包实施示例 75. 接下来要阅读的内容 IX 。' 如何' 指南 76. Spring Boot 申请 76.1. 创建自己的失败分析器 76.2. 自动配置疑难解答 76.3. 在开始之前自定义Environment 或ApplicationContext 76.4. 构建ApplicationContext 层次结构(添加父或根上下文) 76.5. 创建非Web 应用程序 77. 属性和配置 77.1. 在构建时自动展开属性 77.1.1.使用Maven自动Property扩展 77.1.2.使用Gradle自动Property扩展 77.2. 外化 SpringApplication 的配置 77.3. 更改应用程序的外部属性的位置 77.4. 使用“ 短” 命令行参数 77.5. 使用YAML 作为外部属性 77.6. 设置活动Spring Profiles 77.7. 根据环境更改配置 77.8. 发现外部属性的内置选项 78. 嵌入式Web 服务器 78.1. 使用其他Web 服务器 78.2. 禁用Web 服务器 78.3. 更改HTTP 端口 78.4. 使用随机未分配的HTTP 端口 78.5. 在运行时发现HTTP 端口 78.6. 启用HTTP 响应压缩 78.7. 配置SSL 78.8. 配置HTTP / 2 78.8.1.带有Undertow的HTTP / 2 78.8.2.带Jetty的HTTP / 2 78.8.3.与Tomcat的HTTP / 2 78.8.4.带有Reactor Netty的HTTP / 2 78.9. 配置Web 服务器 78.10. 向应用程序添加Servlet ,过滤器或监听器 78.10.1.使用Spring Bean添加Servlet,过滤器或监听器 禁用Servlet或过滤器的注册 78.10.2.使用类路径扫描添加Servlet,过滤器和侦听器 78.11. 配置访问日志记录 78.12. 在前端代理服务器后面运行 78.12.1.自定义Tomcat的代理配置 78.13. 使用Tomcat 启用多个连接器 78.14. 使用Tomcat 的LegacyCookieProcessor 78.15. 使用Undertow 启用多个侦听器 78.16. 使用@ServerEndpoint 创建WebSocket 端点 79. Spring MVC 79.1. 编写JSON REST 服务 79.2. 编写XML REST 服务 79.3. 自定义Jackson ObjectMapper 79.4. 自定义@ResponseBody 渲染 79.5. 处理多部分文件上载 79.6. 关闭Spring MVC DispatcherServlet 79.7. 关闭默认MVC 配置 79.8. 自定义ViewResolvers 80. 使用Spring 安全性进行测试 81. Jersey 81.1. 使用Spring 安全性保护Jersey 端点 82. HTTP 客户端 82.1. 配置RestTemplate 以使用代理 83. 记录 83.1. 配置Logging for Logging 83.1.1.配置仅文件输出的回溯 83.2. 配置Log4j 进行日志记录 83.2.1.使用YAML或JSON配置Log4j 2 84. 数据访问 84.1. 配置自定义数据源 84.2. 配置两个DataSource 84.3. 使用Spring 数据存储库 84.4. 从Spring 配置中分离@Entity 定义 84.5. 配置JPA 属性 84.6. 配置Hibernate 命名策略 84.7. 配置Hibernate 二级缓存 84.8. 在Hibernate 组件中使用依赖注入 84.9. 使用自定义EntityManagerFactory 84.10. 使用两个EntityManagers 84.11. 使用传统的 persistence.xml 文件 84.12. 使用Spring Data JPA 和Mongo Repositories 84.13. 自定义Spring 数据的Web 支持 84.14. 将Spring 数据存储库公开为REST 端点 84.15. 配置JPA 使用的组件 84.16. 使用两个DataSource 配置jOOQ 85. 数据库初始化 85.1. 使用JPA 初始化数据库 85.2. 使用Hibernate 初始化数据库 85.3. 初始化数据库 85.4. 初始化Spring 批处理数据库 85.5. 使用更高级别的数据库迁移工具 85.5.1.在启动时执行Flyway数据库迁移 85.5.2.在启动时执行Liquibase数据库迁移 86. 消息传递 86.1. 禁用事务处理的JMS 会话 87. 批量申请 87.1. 在启动时执行Spring 批处理作业 88. 执行器 88.1. 更改执行器端点的HTTP 端口或地址 88.2. 自定义'whitelabel' 错误页面 88.3. 消除明智的价值观 89. 安全 89.1. 关闭Spring Boot 安全配置 89.2. 更改UserDetailsS​​ervice 和添加用户帐户 89.3. 在代理服务器后运行时启用HTTPS 90. 热插拔 90.1. 重新加载静态内容 90.2. 重新加载模板而不重新启动容器 90.2.1.Thymeleaf模板 90.2.2.FreeMarker模板 90.2.3.Groovy模板 90.3. 快速申请重新启动 90.4. 重新加载Java 类而不重新启动容器 91. 建立 91.1. 生成构建信息 91.2. 生成Git 信息 91.3. 自定义依赖性版本 91.4. 使用Maven 创建可执行JAR 91.5. 使用Spring Boot 应用程序作为依赖项 91.6. 可执行jar 运行时提取特定库 91.7. 使用排除项创建不可执行的JAR 91.8. 使用Maven 开始远程调试Spring Boot 应用程序 91.9. 从Ant 构建可执行文件,而不使用 spring-boot-antlib 92. 传统部署 92.1. 创建可部署的War 文件 92.2. 将现有应用程序转换为Spring Boot 92.3. 将WAR 部署到WebLogic 92.4. 使用Jedis 代替Lettuce X. 附录 A. 常见应用程序属性 B. 配置元数据 B.1. 元数据格式 B.1.1.组属性 B.1.2.Property属性 B.1.3.提示属性 B.1.4.重复的元数据项 B.2. 提供手动提示 B.2.1.价值提示 B.2.2.价值提供者 任何 课程参考 处理为 记录器名称 Spring Bean参考 Spring个人资料名称 B.3. 使用注释处理器生成自己的元数据 B.3.1.嵌套属性 B.3.2.添加其他元数据 C. 自动配置类 C.1. 来自“spring-boot-autoconfigure” 模块 C.2. 来自“spring-boot-actuator-autoconfigure” 模块 D. 测试自动配置注释 E. 可执行的Jar 格式 E.1. 嵌套的JAR E.1.1.可执行Jar文件结构 E.1.2.可执行文件War文件结构 E.2.Spring Boot 的“JarFile” 课程 E.2.1.与标准Java“JarFile”的兼容性 E.3. 启动可执行的Jars E.3.1.启动器清单 E.3.2.爆炸档案 E.4. PropertiesLauncher 功能 E.5. 可执行的Jar 限制 E.6. 替代单罐解决方案 F.依赖版本

2019-05-17

Docker 容器与容器云(第2版)-高清带目录

本书根据Docker 1.10版和Kubernetes 1.2版对第1版进行了全面更新,从实践者的角度出发,以Docker和Kubernetes为重点,沿着“基本用法介绍”到“核心原理解读”到“高级实践技巧”的思路,一本书讲透当前主流的容器和容器云技术,有助于读者在实际场景中利用Docker容器和容器云解决问题并启发新的思考。全书包括两部分,首部分深入解读Docker容器技术,包括Docker架构与设计、核心源码解读和高级实践技巧;第二部分归纳和比较了三类基于Docker的主流容器云项目,包括专注Docker容器编排与部署的容器云、专注应用支撑的容器云以及一切皆容器的Kubernetes,进而详细解读了Kubernetes核心源码的设计与实现,介绍了几种典型场景下的Kubernetes实践。 本书适用于有一定Docker基础的开发者、架构师、IT专业学生以及探索基于Docker构建云计算平台的技术人员,也非常适合作为高校教材或培训资料。 目录 第一部分 Docker深入解读 第1章 从容器到容器云 2 1.1 云计算平台 2 1.2 容器,新的革命 3 1.3 进化:从容器到容器云 7 第2章 Docker基础 8 2.1 Docker的安装 8 2.2 Docker操作参数解读 9 2.3 搭建你的第一个Docker应用栈 16 2.3.1 Docker集群部署 16 2.3.2 第一个Hello World 17 2.3.3 开发、测试和发布一体化 27 第3章 Docker核心原理解读 28 3.1 Docker背后的内核知识 28 3.1.1 namespace资源隔离 28 3.1.2 cgroups资源限制 45 3.2 Docker架构概览 53 3.3 client和daemon 55 3.3.1 client模式 55 3.3.2 daemon模式 57 3.3.3 从client到daemon 63 3.4 libcontainer 66 3.4.1 libcontainer的工作方式 68 3.4.2 libcontainer实现原理 69 3.4.3 使用nsinit与libcontainer进行交互 74 3.5 Docker镜像管理 76 3.5.1 什么是Docker镜像 76 3.5.2 Docker镜像关键概念 78 3.5.3 Docker镜像操作解析 80 3.5.4 Docker容器的迁移方法 84 3.6 Docker存储驱动 85 3.6.1 存储驱动的功能与管理 86 3.6.2 aufs与Device Mapper驱动 87 3.7 Docker数据卷 93 3.7.1 数据卷的使用方式 94 3.7.2 数据卷原理解读 98 3.8 Docker网络管理 102 3.8.1 Docker网络基础 102 3.8.2 Docker daemon网络配置原理 107 3.8.3 libcontainer网络配置原理 111 3.8.4 Link原理解析 115 3.9 Docker与容器安全 118 3.9.1 Docker的安全机制 118 3.9.2 Docker安全问题 122 3.9.3 Docker安全的解决方案 126 第4章 Docker高级实践技巧 138 4.1 容器化思维 138 4.1.1 SSH服务器的替代方案 139 4.1.2 Docker内应用日志管理方案 139 4.1.3 其他技巧汇总 140 4.2 Docker高级网络实践 142 4.2.1 玩转Linux network namespace 143 4.2.2 pipework原理解析 148 4.2.3 pipework跨主机通信 154 4.2.4 OVS划分VLAN 159 4.2.5 OVS隧道模式 163 4.3 Dockerfile最佳实践 175 4.3.1 Dockerfile的使用 176 4.3.2 Dockerfile实践心得 180 4.4 Docker容器的监控手段 182 4.4.1 Docker容器监控维度 182 4.4.2 容器监控命令 183 4.4.3 常用的容器监控工具 186 4.5 容器化应用构建的基础:高可用配置中心 189 4.5.1 etcd经典应用场景 190 4.5.2 etcd实现原理 194 第二部分 Docker云平台解读 第5章 构建自己的容器云 210 5.1 再谈云平台的层次架构 210 5.2 从小工到专家 213 第6章 专注编排与部署:三剑客与Fleet 218 6.1 编排小神器Fig 218 6.1.1 再谈容器编排与部署 218 6.1.2 Compose原理:一探究竟 221 6.2 环境透明化工具Machine 225 6.2.1 Machine与虚拟机软件 226 6.2.2 Machine与IaaS平台 227 6.2.3 Machine小结 228 6.3 集群抽象工具Swarm 229 6.3.1 Swarm简介 229 6.3.2 试用Swarm 230 6.3.3 Swarm集群的多种创建方式 231 6.3.4 Swarm对请求的处理 233 6.3.5 Swarm集群的调度策略 233 6.3.6 Swarm与Machine 234 6.4 编排之秀Fleet 235 6.4.1 旧问题新角度:Docker distro 235 6.4.2 Fleet的原理剖析 239 第7章 专注应用支撑和运行时:Flynn 和Deis 245 7.1 Flynn,一个小而美的两层架构 245 7.1.1 第0层:容器云的基础设施 246 7.1.2 第1层:容器云的功能框架 246 7.1.3 Flynn体系架构与实现原理 247 7.2 谈谈Deis与Flynn 257 7.2.1 应用发布上的比较 258 7.2.2 关于Deis的一些思考 260 第8章 一切皆容器:Kubernetes 261 8.1 Kubernetes简介 261 8.2 Kubernetes的设计解读 262 8.2.1 一个典型案例:Guestbook.263 8.2.2 Kubernetes核心概念剖析 265 8.3 Kubernetes核心组件解读 294 8.3.1 APIServer 294 8.3.2 Scheduler 301 8.3.3 Controller Manager 309 8.3.4 kubelet 314 8.3.5 kube—proxy 320 8.3.6 核心组件协作流程 325 8.4 Kubernetes用户认证授权与资源管理 328 8.4.1 namespace解析 328 8.4.2 基于token文件或客户端证书的认证机制 333 8.4.3 基于访问规则的授权机制 334 8.4.4 基于资源的授权控制AdmissionControl 336 8.5 Kubernetes网络核心原理 347 8.5.1 单pod单IP模型 348 8.5.2 pod和网络容器 350 8.5.3 实现Kubernetes的网络模型 353 8.6 Kubernetes高级实践 356 8.6.1 Kubernetes高级实践之应用健康检查 356 8.6.2 Kubernetes高级实践之高可用性 358 8.6.3 Kubernetes高级实践之日志 362 8.6.4 Kubernetes高级实践之集成DNS 364 8.6.5 Kubernetes高级实践之容器上下文环境 366 8.7 不要停止思考 368 第三部分 附录 附录A Docker的安装 372 附录B 阅读Docker源代码的神兵利器 379 附录C 快速熟悉开源项目 388 附录D cgroups的测试与使用 391 附录E cgroups子系统配置参数介绍 395 附录F Kubernetes的安装 400 后记 403

2018-05-18

Docker技术入门与实战第2版-高清文字版(修复图片)

原来的版本有图片问题,新版本已修复 原版:https://download.csdn.net/download/zl245437_/10325344 杨保华 戴王剑 曹亚仑 编著 学习Docker的第一本入门书,畅销书升级 基于Docker1.12及以上版本 目录 第2版前言 第1版前言 第一部分 基础入门 第1章 初识容器与 Docker 1.1 什么是Docker 1.2 为什么要使用 Docker 1.3 Docker 与虚拟化 1.4 本章小结 第2章 核心概念与安装配置 2.1 核心概念 2.2 安装Docker 2.3 配置Docker 服务 2.4 推荐实践环境 2.5 本章小结 第3章 使用Docker 镜像 3.1 获取镜像 3.2 查看镜像信息 3.3 搜寻镜像 3.4 删除镜像 3.5 创建镜像 3.6 存出和载入镜像 3.7 上传镜像 3.8 本章小结 第4章 操作Docker容器 4.1 创建容器 4.2 终止容器 4.3 进入容器 4.4 删除容器 4.5 导入和导出容器 4.6 本章小结 第5章 访问 Docker 仓库 5.1 Docker Hub 公共镜像市场 5.2 时速云镜像市场 5.3 搭建本地私有仓库 5.4 本章小结 第6章 Docker数据管理 6.1 数据卷 6.2 数据卷容器 6.3 利用数据卷容器来迁移数据 6.4 本章小结 第7章 端口映射与容 器互联 7.1 端口映射实现访问容器 7.2 互联机制实现便捷互访 7.3 本章小结 第8章 使用Dockerfile 创建镜像 8.1 基本结构 8.2 指令说明 8.3 创建镜像 8.4 使用.dockerignore文件 8.5 最佳实践 8.6 本章小结 第二部分 实战案例 第9章 操作系统 9.1 BusyBox 9.2 Alpine 9.3 Debian/Ubuntu 9.4 CentOS/Fedora 9.5 本章小结 第10章 为镜像添加 SSH 服务 10.1 基于commit 命令创建 10.2 使用Dockerfile 创建 10.3 本章小结 第11章 Web 服务与应用 11.1 Apache 11.2 Nginx 11.3 Tomcat 11.4 Jetty 11.5 LAMP 11.6 CMS 11.7 持续开发与管理 11.8 本章小结 第12章 数据库应用 12.1 MySQL 12.2 MongoDB 12.3 Redis 12.4 Memcached 12.5 CouchDB 12.6 Cassandra 12.7 本章小结 第13章 分布式处理与大数据平台 13.1 RabbitMQ 13.2 Celery 13.3 Hadoop 13.4 Spark 13.5 Storm 13.6 Elasticsearch 13.7 本章小结 第14章 编程开发 14.1 C/C++ 14.2 Java 14.3 Python 14.4 JavaScript 14.5 Go 14.6 PHP 14.7 Ruby 14.8 Perl 14.9 R 14.10 Erlang 14.11 本章小结 第15章 容器与云服务 15.1 公有云容器服务 15.2 容器云服务 15.3 阿里云容器服务 15.4 时速云容器平台 15.5 本章小结 第16章 容器实战思考 16.1 Docker 为什么会成功 16.2 研发人员该如何看容器 16.3 容器化开发模式 16.4 容器与生产环境 16.5 本章小结 第三部分 进阶技能 第17章 Docker 核心实现技术 17.1 基本架构 17.2 命名空间 17.3 控制组 17.4 联合文件系统 17.5 Linux 网络虚拟化 17.6 本章小结 第18章 配置私有仓库 18.1 安装Docker Registry 18.2 配置TLS 证书 18.3 管理访问权限 18.4 配置Registry 18.5 批量管理镜像 18.6 使用通知系统 18.7 本章小结 第19章 安全防护与配置 19.1 命名空间隔离的安全 19.2 控制组资源控制的安全 19.3 内核能力机制 19.4 Docker 服务端的防护 19.5 更多安全特性的使用 19.6 使用第三方检测工具 19.7 本章小结 第20章 高级网络功能 20.1 网络启动与配置参数 20.2 配置容器DNS和主机名 20.3 容器访问控制 20.4 映射容器端口到宿主主机的实现 20.5 配置docker0 网桥 20.6 自定义网桥 20.7 使用OpenvSwitch 网桥 20.8 创建一个点到点连接 20.9 本章小结 第21章 libnetwork 插件化网络功能 21.1 容器网络模型 21.2 Docker 网络相关命令 21.3 构建跨主机容器网络 21.4 本章小结 第四部分 开源项目 第22章 Etcd—— 高可用的键值数据库 22.1 简介 22.2 安装和使用Etcd 22.3 使用etcdctl 客户端 22.4 Etcd集群管理 22.5 本章小结 第23章 Docker 三剑客之 Docker Machine 23.1 简介 23.2 安装Machine 23.3 使用Machine 23.4 Machine命令 23.5 本章小结 第24章 Docker 三剑客之 Docker Compose 24.1 简介 24.2 安装与卸载 24.3 Compose 命令说明 24.4 Compose 环境变量 24.5 Compose模板文件 24.6 Compose 应用案例一: Web 负载均衡 24.7 Compose 应用案例二:大数据 Spark集群 24.8 本章小结 第25章 Docker 三剑客之 Docker Swarm 25.1 简介 25.2 安装Swarm 25.3 使用Swarm 25.4 使用其他服务发现后端 25.5 Swarm 中的调度器 25.6 Swarm 中的过滤器 25.7 本章小结 第26章 Mesos—— 优秀的集群资源调度平台 26.1 简介 26.2 Mesos安装与使用 26.3 原理与架构 26.4 Mesos 配置项解析 26.5 日志与监控 26.6 常见应用框架 26.7 本章小结 第27章 Kubernetes—— 生产级容器集群平台 27.1 简介 27.2 核心概念 27.3 快速体验 27.4 安装部署 27.5 重要组件 27.6 使用kubectl 27.7 网络设计 27.8 本章小结 第28章 其他相关项目 28.1 平台即服务方案 28.2 持续集成平台 Drone 28.3 容器管理 28.4 编程开发 28.5 网络支持 28.6 日志处理 28.7 服务代理工具 28.8 标准与规范 28.9 其他项目 28.10 本章小结 附录 附录 A 常见问题总结 附录 B Docker 命令查询 附录 C 参考资源链接

2018-05-17

Spring+Cloud与Docker微服务架构实战-高清带目录

作为一部帮助大家实现微服务架构落地的作品,《Spring Cloud与Docker微服务架构实战》覆盖了微服务理论、微服务开发框架(Spring Cloud)以及运行平台(Docker)三大主题。全书可分为三部分,第1章对微服务架构进行了系统的介绍;第2-11章使用Spring Cloud开发框架编写了一个“电影售票系统”;第12-14章则讲解了如何将微服务应用运行在Docker之上。全书Demo驱动学习,以连贯的场景、具体的代码示例来引导读者学习相关知识,最终使用特定的技术栈实现微服务架构的落地。 目录 1 微服务架构概述....... . . . . . . . . . 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务架构的优点与挑战5 1.4.1 微服务架构的优点5 1.4.2 微服务架构面临的挑战5 1.5 微服务设计原则6 1.6 如何实现微服务架构7 1.6.1 技术选型7 1.6.2 架构图及常用组件8 2 微服务开发框架——Spring Cloud.... . . . . . . . 10 2.1 Spring Cloud 简介10 2.2 Spring Cloud 特点10 2.3 Spring Cloud 版本11 2.3.1 版本简介11 2.3.2 子项目一览12 2.3.3 Spring Cloud/Spring Boot 版本兼容性13 3 开始使用Spring Cloud 实战微服务..... . . . . . 14 3.1 Spring Cloud 实战前提14 3.1.1 技术储备14 3.1.2 工具及软件版本15 3.2 服务提供者与服务消费者16 3.3 编写服务提供者16 3.3.1 手动编写项目17 3.3.2 使用Spring Initializr 快速创建Spring Boot 项目21 3.4 编写服务消费者23 3.5 为项目整合Spring Boot Actuator 25 3.6 硬编码有哪些问题27 4 微服务注册与发现....... . . . . . . . 29 4.1 服务发现简介29 4.2 Eureka 简介31 4.3 Eureka 原理31 4.4 编写Eureka Server 33 4.5 将微服务注册到Eureka Server 上35 4.6 Eureka Server 的高可用36 4.6.1 将应用注册到Eureka Server 集群上38 4.7 为Eureka Server 添加用户认证39 4.7.1 将微服务注册到需认证的Eureka Server 40 4.8 理解Eureka 的元数据41 4.8.1 改造用户微服务41 4.8.2 改造电影微服务41 4.9 Eureka Server 的REST 端点43 4.9.1 示例45 4.9.2 注销微服务实例49 4.10 Eureka 的自我保护模式51 4.11 多网卡环境下的IP 选择52 4.11.1 忽略指定名称的网卡52 4.11.2 使用正则表达式,指定使用的网络地址52 4.11.3 只使用站点本地地址53 4.11.4 手动指定IP 地址53 4.12 Eureka 的健康检查53 5 使用Ribbon 实现客户端侧负载均衡..... . . . . 56 5.1 Ribbon 简介56 5.2 为服务消费者整合Ribbon 57 5.3 使用Java 代码自定义Ribbon 配置60 5.4 使用属性自定义Ribbon 配置63 5.5 脱离Eureka 使用Ribbon 64 6 使用Feign 实现声明式REST 调用..... . . . . . . 66 6.1 Feign 简介67 6.2 为服务消费者整合Feign 67 6.3 自定义Feign 配置69 6.4 手动创建Feign 72 6.4.1 修改用户微服务72 6.4.2 修改电影微服务76 6.5 Feign 对继承的支持78 6.6 Feign 对压缩的支持79 6.7 Feign 的日志80 6.8 使用Feign 构造多参数请求82 6.8.1 GET 请求多参数的URL 82 6.8.2 POST 请求包含多个参数83 7 使用Hystrix 实现微服务的容错处理..... . . . . 85 7.1 实现容错的手段85 7.1.1 雪崩效应85 7.1.2 如何容错86 7.2 使用Hystrix 实现容错88 7.2.1 Hystrix 简介88 7.2.2 通用方式整合Hystrix 89 7.2.3 Hystrix 断路器的状态监控与深入理解91 7.2.4 Hystrix 线程隔离策略与传播上下文93 7.2.5 Feign 使用Hystrix 96 7.3 Hystrix 的监控101 7.3.1 Feign 项目的Hystrix 监控102 7.4 使用Hystrix Dashboard 可视化监控数据103 7.5 使用Turbine 聚合监控数据105 7.5.1 Turbine 简介105 7.5.2 使用Turbine 监控多个微服务105 7.5.3 使用消息中间件收集数据108 8 使用Zuul 构建微服务网关..... . . . . . . . . . . . . . 113 8.1 为什么要使用微服务网关113 8.2 Zuul 简介115 8.3 编写Zuul 微服务网关115 8.4 Zuul 的路由端点118 8.5 Zuul 的路由配置详解119 8.6 Zuul 的安全与Header 122 8.6.1 敏感Header 的设置122 8.6.2 忽略Header 123 8.7 使用Zuul 上传文件124 8.7.1 编写文件上传微服务124 8.8 Zuul 的过滤器127 8.8.1 过滤器类型与请求生命周期127 8.8.2 编写Zuul 过滤器128 8.8.3 禁用Zuul 过滤器130 8.9 Zuul 的容错与回退130 8.9.1 为Zuul 添加回退131 8.10 Zuul 的高可用133 8.10.1 Zuul 客户端也注册到了Eureka Server 上133 8.10.2 Zuul 客户端未注册到Eureka Server 上133 8.11 使用Sidecar 整合非JVM 微服务134 8.11.1 编写Node.js 微服务135 8.11.2 编写Sidecar 136 8.11.3 Sidecar 的端点138 8.11.4 Sidecar 与Node.js 微服务分离部署139 8.11.5 Sidecar 原理分析139 9 使用Spring Cloud Config 统一管理微服务配置... . . . . . . . . 142 9.1 为什么要统一管理微服务配置142 9.2 Spring Cloud Config 简介143 9.3 编写Config Server 144 9.3.1 Config Server 的端点145 9.4 编写Config Client 147 9.5 Config Server 的Git 仓库配置详解149 9.6 Config Server 的健康状况指示器152 9.7 配置内容的加解密153 9.7.1 安装JCE 153 9.7.2 Config Server 的加解密端点153 9.7.3 对称加密153 9.7.4 存储加密的内容154 9.7.5 非对称加密155 9.8 使用/refresh 端点手动刷新配置155 9.9 使用Spring Cloud Bus 自动刷新配置157 9.9.1 Spring Cloud Bus 简介157 9.9.2 实现自动刷新158 9.9.3 局部刷新159 9.9.4 架构改进159 9.9.5 跟踪总线事件160 9.10 Spring Cloud Config 与Eureka 配合使用161 9.11 Spring Cloud Config 的用户认证162 9.11.1 Config Client 连接需用户认证的Config Server 163 9.12 Config Server 的高可用164 9.12.1 Git 仓库的高可用164 9.12.2 RabbitMQ 的高可用164 9.12.3 Config Server 自身的高可用165 10 使用Spring Cloud Sleuth 实现微服务跟踪... . . . . . . . . . . . . . 167 10.1 为什么要实现微服务跟踪167 10.2 Spring Cloud Sleuth 简介168 10.3 整合Spring Cloud Sleuth 170 10.4 Spring Cloud Sleuth 与ELK 配合使用172 10.5 Spring Cloud Sleuth 与Zipkin 配合使用176 10.5.1 Zipkin 简介176 10.5.2 编写Zipkin Server 176 10.5.3 微服务整合Zipkin 178 10.5.4 使用消息中间件收集数据181 10.5.5 存储跟踪数据183 11 Spring Cloud 常见问题与总结..... . . . . . . . . . . 186 11.1 Eureka 常见问题186 11.1.1 Eureka 注册服务慢186 11.1.2 已停止的微服务节点注销慢或不注销187 11.1.3 如何自定义微服务的Instance ID 188 11.1.4 Eureka 的UNKNOWN 问题总结与解决189 11.2 Hystrix/Feign 整合Hystrix 后首次请求失败190 11.2.1 原因分析191 11.2.2 解决方案191 11.3 Turbine 聚合的数据不完整191 11.3.1 解决方案192 11.4 Spring Cloud 各组件配置属性193 11.4.1 Spring Cloud 的配置193 11.4.2 原生配置193 11.5 Spring Cloud 定位问题思路总结194 12 Docker 入门....... . . . . . . . . . . . . . 197 12.1 Docker 简介197 12.2 Docker 的架构197 12.3 安装Docker 199 12.3.1 系统要求199 12.3.2 移除非官方软件包199 12.3.3 设置Yum 源199 12.3.4 安装Dokcer 200 12.3.5 卸载Docker 201 12.4 配置镜像加速器201 12.5 Docker 常用命令202 12.5.1 Docker 镜像常用命令202 12.5.2 Docker 容器常用命令204 13 将微服务运行在Docker 上..... . . . . . . . . . . . . . 209 13.1 使用Dockerfile 构建Docker 镜像209 13.1.1 Dockerfile 常用指令210 13.1.2 使用Dockerfile 构建镜像215 13.2 使用Docker Registry 管理Docker 镜像217 13.2.1 使用Docker Hub 管理镜像217 13.2.2 使用私有仓库管理镜像219 13.3 使用Maven 插件构建Docker 镜像220 13.3.1 快速入门221 13.3.2 插件读取Dockerfile 进行构建222 13.3.3 将插件绑定在某个phase 执行223 13.3.4 推送镜像224 13.4 常见问题与总结226 14 使用Docker Compose 编排微服务..... . . . . . . 227 14.1 Docker Compose 简介227 14.2 安装Docker Compose 227 14.2.1 安装Compose 228 14.2.2 安装Compose 命令补全工具228 4.3 Docker Compose 快速入门229 14.3.1 基本步骤229 14.3.2 入门示例229 14.3.3 工程、服务、容器230 14.4 docker-compose.yml 常用命令230 14.4.1 build 230 14.4.2 command 231 14.4.3 dns 231 14.4.4 dns_search 231 14.4.5 environment 231 14.4.6 env_file 232 14.4.7 expose 232 14.4.8 external_links 232 14.4.9 image 232 14.4.10 links 232 14.4.11 networks 233 14.4.12 network_mode 233 14.4.13 ports 233 14.4.14 volumes 233 14.4.15 volumes_from 234 14.5 docker-compose 常用命令234 14.5.1 build 234 14.5.2 help 235 14.5.3 kill 235 14.5.4 logs 235 14.5.5 port 235 14.5.6 ps 235 14.5.7 pull 235 14.5.8 rm 236 14.5.9 run 236 14.5.10 scale 236 14.5.11 start 236 14.5.12 stop 236 14.5.13 up 236 14.6 Docker Compose 网络设置237 14.6.1 基本概念237 14.6.2 更新容器237 14.6.3 links 238 14.6.4 指定自定义网络238 14.6.5 配置默认网络239 14.6.6 使用已存在的网络239 14.7 综合实战:使用Docker Comose 编排Spring Cloud 微服务240 14.7.1 编排Spring Cloud 微服务240 14.7.2 编排高可用的Eureka Server 243 14.7.3 编排高可用Spring Cloud 微服务集群及动态伸缩245 14.8 常见问题与总结247 后记......... . . . . . . . 248

2018-05-16

Docker开发指南 高清文字版

Docker 容器轻量和可移植的特性尤其适用于动态和分布式的环境,它的兴起给软件开发流 程带来了一场革命。本书对 Docker 进行了全面讲解,包括开发、生产以至维护的整个软件生命 周期,并对其中可能出现的一些问题进行了探讨,如软件版本差异、开发环境与生产环境的差异、 系统安全问题,等等。 本书适合软件开发者、运维工程师和系统管理员,尤其是对 DevOps 模式感兴趣的读者 目录 前言 .............. xi 第一部分 背景与基础 第 1 章 何谓容器,为何需要它 ........... 3 1.1 容器与虚拟机的比较 ....... 4 1.2 Docker 与容器 ............ 5 1.3 Docker 的历史 ............ 7 1.4 插件与基础设施 ......... 8 1.5 64 位 Linux ........... 9 第 2 章 安装 ....... 10 2.1 在 Linux 上安装 Docker ....... 10 2.1.1 将 SELinux 置于宽容模式下运行 ...... 11 2.1.2 不使用 sudo 命令执行 Docker ...... 11 2.2 在 Mac OS 及 Windows 上安装 Docker .... 12 2.3 快速确认 ......... 13 第 3 章 迈出第一步 ......... 15 3.1 运行第一个镜像 ............. 15 3.2 基本命令 ......... 16 3.3 通过 Dockerfile 创建镜像 .... 20 3.4 使用寄存服务 ........... 22 vi | 目录 3.5 使用 Redis 官方镜像 ...... 24 3.6 总结 ........... 27 第 4 章 Docker 基本概念 ........... 28 4.1 Docker 系统架构 ............ 28 4.1.1 底层技术 ............ 29 4.1.2 周边技术 ............ 30 4.1.3 Docker 托管 ........ 31 4.2 镜像是如何生成的 ......... 32 4.2.1 构建环境的上下文 ............ 32 4.2.2 镜像层 .......... 33 4.2.3 缓存 .............. 35 4.2.4 基础镜像 ............ 35 4.2.5 Dockerfile 指令 ......... 37 4.3 使容器与世界相连 ......... 39 4.4 容器互联 ......... 40 4.5 利用数据卷和数据容器管理数据 ....... 41 4.5.1 共享数据 ............ 43 4.5.2 数据容器 ............ 44 4.6 Docker 常用命令 ............ 45 4.6.1  run 命令 ........ 46 4.6.2 容器管理 ............ 48 4.6.3 Docker 信息 ........ 50 4.6.4 容器信息 ............ 50 4.6.5 镜像管理 ............ 52 4.6.6 使用寄存服务器 ...... 54 4.7 总结 ........... 55 第二部分 Docker 与软件生命周期 第 5 章 在开发中应用 Docker ............ 59 5.1 说声“Hello World!”........... 59 5.2 通过 Compose 实现自动化 ............ 67 5.3 总结 ........... 69 第 6 章 创建一个简单的 Web 应用 ........ 71 6.1 创建一个基本网页 ......... 72 目录 | vii 6.2 利用现有镜像 ........... 73 6.3 实现缓存功能 ........... 78 6.4 微服务 ....... 81 6.5 总结 ........... 81 第 7 章 镜像分发 .............. 82 7.1 镜像及镜像库的命名方式 ............. 82 7.2 Docker Hub ............... 83 7.3 自动构建 ......... 85 7.4 私有分发 ......... 86 7.4.1 运行自己的寄存服务 ........ 86 7.4.2 商业寄存服务 .......... 92 7.5 缩减镜像大小 ........... 92 7.6 镜像出处 ......... 94 7.7 总结 ........... 94 第 8 章 Docker 持续集成与测试 ............. 95 8.1 为 identidock 添加单元测试 .......... 95 8.2 创建 Jenkins 容器 ......... 100 8.3 推送镜像 ........... 106 8.3.1 给镜像正确的标签 .......... 106 8.3.2 准生产及生产环境 .......... 108 8.3.3 镜像数量激增的问题 ............ 108 8.3.4 使用 Docker 部署 Jenkins slaves ....... 109 8.4 备份 Jenkins 数据 ......... 109 8.5 持续集成的托管解决方案 ........... 109 8.6 测试与微服务 ......... 110 8.7 总结 ......... 111 第 9 章 部署容器 ............ 113 9.1 通过 Docker Machine 配置资源 ........ 114 9.2 使用代理 ........... 117 9.3 执行选项 ........... 122 9.3.1 shell 脚本 .......... 122 9.3.2 使用进程管理器(或用 systemd 控制所有进程) .......... 124 9.3.3 使用配置管理工具 .......... 127 9.4 主机配置 ........... 130 9.4.1 选择操作系统 ........ 130 viii | 目录 9.4.2 选择存储驱动程序 .......... 130 9.5 专门的托管方案 ........... 132 9.5.1 Triton ........... 132 9.5.2 谷歌容器引擎 ........ 134 9.5.3 亚马逊 EC2 容器服务 ........... 135 9.5.4 Giant Swarm ........... 136 9.6 持久性数据和生产环境容器 ............. 138 9.7 分享秘密信息 ......... 139 9.7.1 在镜像中保存秘密信息 ........ 139 9.7.2 通过环境变量传递密钥 ........ 139 9.7.3 通过数据卷传递密钥 ............ 140 9.7.4 使用键值存储 ........ 140 9.8 网络连接 ........... 141 9.9 生产环境的寄存服务 ......... 141 9.10 持续部署 / 交付 .......... 141 9.11 总结 ....... 142 第 10 章 日志记录和监控 ........ 143 10.1 日志记录 ............... 144 10.1.1 Docker 默认的日志记录 .......... 144 10.1.2 日志汇总 ....... 145 10.1.3 使用 ELK 进行日志记录 ......... 146 10.1.4 通过 syslog 实现日志管理 ....... 155 10.1.5 从文件抓取日志 ........... 160 10.2 监控和警报 ........... 161 10.2.1 使用 Docker 工具进行监测 ..... 161 10.2.2 cAdvisor ........ 162 10.2.3 集群解决方案 ..... 163 10.3 商用的监听及日志记录解决方案 ......... 166 10.4 总结 ....... 166 第三部分 工具和技术 第 11 章 联网和服务发现 ........ 169 11.1 大使容器 ............... 170 11.2 服务发现 ............... 173 11.2.1 etcd .......... 173 目录 | ix 11.2.2 SkyDNS ......... 177 11.2.3 Consul ............ 181 11.2.4 服务注册 ....... 185 11.2.5 其他解决方案 ..... 186 11.3 联网选项 ............... 187 11.3.1 网桥模式 ....... 187 11.3.2 主机模式 ....... 188 11.3.3 容器模式 ....... 188 11.3.4 未联网模式 ........ 188 11.4 全新的 Docker 联网功能 ........... 188 11.5 网络解决方案 ............. 190 11.5.1 Overlay .......... 191 11.5.2 Weave ............ 193 11.5.3 Flannel ........... 196 11.5.4 Calico 项目 .......... 201 11.6 总结 ....... 205 第 12 章 编排?集群和管理 ............. 207 12.1 集群和编排工具 ......... 208 12.1.1 Swarm ............ 208 12.1.2 fleet .......... 214 12.1.3 Kubernetes ........... 219 12.1.4 Mesos 和 Marathon ............. 226 12.2 容器管理平台 ............. 235 12.2.1 Rancher .......... 236 12.2.2 Clocker .......... 237 12.2.3 Tutum ............ 238 12.3 总结 ....... 239 第 13 章 容器安全与限制容器 ......... 241 13.1 需要考虑的事项 ......... 242 13.2 纵深防御 ............... 244 13.3 如何保护 identidock ......... 245 13.4 以主机隔离容器 ......... 246 13.5 进行更新 ............... 246 13.6 镜像出处 ............... 249 13.6.1 Docker 摘要 ........ 250 13.6.2 Docker 的内容信任机制 .......... 250 x | 目录 13.6.3 可复制及可信任的 Dockerfile ....... 254 13.7 安全建议 ............... 256 13.7.1 设置用户 ....... 256 13.7.2 限制容器联网 ..... 257 13.7.3 删除 setuid 和 setgid 的二进制文件 ........ 258 13.7.4 限制内存使用 ..... 259 13.7.5 限制 CPU 使用 ............. 260 13.7.6 限制重新启动 ..... 261 13.7.7 限制文件系统 ..... 261 13.7.8 限制内核能力 ..... 262 13.7.9 应用资源限制 ..... 263 13.8 运行加固内核 ............. 264 13.9 Linux 安全模块 .......... 265 13.9.1 SELinux ......... 265 13.9.2 AppArmor ........... 268 13.10 审核 ........... 268 13.11 事件响应 ............. 269 13.12 未来特性 ............. 269 13.13 总结 ........... 270 作者简介 ........ 271 关于封面 ........ 271

2018-05-16

Spring In Action Spring实战 第四版 中英文文字版+源代码

Spring实战 第四版 中文+英文 高清文字版+源代码 目录 第1部分 Spring的核心 第1章 Spring之旅 1.1 简化Java开发 1.1.1 激发POJO的潜能 1.1.2 依赖注入 1.1.3 应用切面 1.1.4 使用模板消除样板式代码 1.2 容纳你的Bean 1.2.1 使用应用上下文 1.2.2 bean的生命周期 1.3 俯瞰Spring风景线 1.3.1 Spring模块 1.3.2 Spring Portfolio 1.4 Spring的新功能 1.4.1 Spring 3.1新特性 1.4.2 Spring 3.2新特性 1.4.3 Spring 4.0新特性 1.5 小结 第2章 装配Bean 2.1 Spring配置的可选方案 2.2 自动化装配bean 2.2.1 创建可被发现的bean 2.2.2 为组件扫描的bean命名 2.2.3 设置组件扫描的基础包 2.2.4 通过为bean添加注解实现自动装配 2.2.5 验证自动装配 2.3 通过Java代码装配bean 2.3.1 创建配置类 2.3.2 声明简单的bean 2.3.3 借助JavaConfig实现注入 2.4 通过XML装配bean 2.4.1 创建XML配置规范 2.4.2 声明一个简单的<bean> 2.4.3 借助构造器注入初始化bean 2.4.4 设置属性 2.5 导入和混合配置 2.5.1 在JavaConfig中引用XML配置 2.5.2 在XML配置中引用JavaConfig 2.6 小结 第3章 高级装配 3.1 环境与profile 3.1.1 配置profile bean 3.1.2 激活profile 3.2 条件化的bean 3.3 处理自动装配的歧义性 3.3.1 标示首选的bean 3.3.2 限定自动装配的bean 3.4 bean的作用域 3.4.1 使用会话和请求作用域 3.4.2 在XML中声明作用域代理 3.5 运行时值注入 3.5.1 注入外部的值 3.5.2 使用Spring表达式语言进行装配 3.6 小结 第4章 面向切面的Spring 4.1 什么是面向切面编程 4.1.1 定义AOP术语 4.1.2 Spring对AOP的支持 4.2 通过切点来选择连接点 4.2.1 编写切点 4.2.2 在切点中选择bean 4.3 使用注解创建切面 4.3.1 定义切面 4.3.2 创建环绕通知 4.3.3 处理通知中的参数 4.3.4 通过注解引入新功能 4.4 在XML中声明切面 4.4.1 声明前置和后置通知 4.4.2 声明环绕通知 4.4.3 为通知传递参数 4.4.4 通过切面引入新的功能 4.5 注入AspectJ切面 4.6 小结 第2部分 Web中的Spring 第5章 构建Spring Web应用程序 5.1 Spring MVC起步 5.1.1 跟踪Spring MVC的请求 5.1.2 搭建Spring MVC 5.1.3 Spittr应用简介 5.2 编写基本的控制器 5.2.1 测试控制器 5.2.2 定义类级别的请求处理 5.2.3 传递模型数据到视图中 5.3 接受请求的输入 5.3.1 处理查询参数 5.3.2 通过路径参数接受输入 5.4 处理表单 5.4.1 编写处理表单的控制器 5.4.2 校验表单 5.5 小结 第6章 渲染Web视图 6.1 理解视图解析 6.2 创建JSP视图 6.2.1 配置适用于JSP的视图解析器 6.2.2 使用Spring的JSP库 6.3 使用Apache Tiles视图定义布局 6.3.1 配置Tiles视图解析器 6.4 使用Thymeleaf 6.4.1 配置Thymeleaf视图解析器 6.4.2 定义Thymeleaf模板 6.5 小结 第7章 Spring MVC的高级技术 7.1 Spring MVC配置的替代方案 7.1.1 自定义DispatcherServlet配置 7.1.2 添加其他的Servlet和Filter 7.1.3 在web.xml中声明DispatcherServlet 7.2 处理multipart形式的数据 7.2.1 配置multipart解析器 7.2.2 处理multipart请求 7.3 处理异常 7.3.1 将异常映射为HTTP状态码 7.3.2 编写异常处理的方法 7.4 为控制器添加通知 7.5 跨重定向请求传递数据 7.5.1 通过URL模板进行重定向 7.5.2 使用flash属性 7.6 小结 第8章 使用Spring Web Flow 8.1 在Spring中配置Web Flow 8.1.1 装配流程执行器 8.1.2 配置流程注册表 8.1.3 处理流程请求 8.2 流程的组件 8.2.1 状态 8.2.2 转移 8.2.3 流程数据 8.3 组合起来:披萨流程 8.3.1 定义基本流程 8.3.2 收集顾客信息 8.3.3 构建订单 8.3.4 支付 8.4 保护Web流程 8.5 小结 第9章 保护Web应用 9.1 Spring Security简介 9.1.1 理解Spring Security的模块 9.1.2 过滤Web请求 9.1.3 编写简单的安全性配置 9.2 选择查询用户详细信息的服务 9.2.1 使用基于内存的用户存储 9.2.2 基于数据库表进行认证 9.2.3 基于LDAP进行认证 9.2.4 配置自定义的用户服务 9.3 拦截请求 9.3.1 使用Spring表达式进行安全保护 9.3.2 强制通道的安全性 9.3.3 防止跨站请求伪造 9.4 认证用户 9.4.1 添加自定义的登录页 9.4.2 启用HTTP Basic认证 9.4.3 启用Remember-me功能 9.4.4 退出 9.5 保护视图 9.5.1 使用Spring Security的JSP标签库 9.5.2 使用Thymeleaf的Spring Security方言 9.6 小结 第3部分 后端中的Spring 第10章 通过Spring和JDBC征服数据库 10.1 Spring的数据访问哲学 10.1.1 了解Spring的数据访问异常体系 10.1.2 数据访问模板化 10.2 配置数据源 10.2.1 使用JNDI数据源 10.2.2 使用数据源连接池 10.2.3 基于JDBC驱动的数据源 10.2.4 使用嵌入式的数据源 10.2.5 使用profile选择数据源 10.3 在Spring中使用JDBC 10.3.1 应对失控的JDBC代码 10.3.2 使用JDBC模板 10.4 小结 第11章 使用对象-关系映射持久化数据 11.1 在Spring中集成Hibernate 11.1.1 声明Hibernate的Session工厂 11.1.2 构建不依赖于Spring的Hibernate代码 11.2 Spring与Java持久化API 11.2.1 配置实体管理器工厂 11.2.2 编写基于JPA的Repository 11.3 借助Spring Data实现自动化的JPA Repository 11.3.1 定义查询方法 11.3.2 声明自定义查询 11.3.3 混合自定义的功能 11.4 小结 第12章 使用NoSQL数据库 12.1 使用MongoDB持久化文档数据 12.1.1 启用MongoDB 12.1.2 为模型添加注解,实现MongoDB持久化 12.1.3 使用MongoTemplate访问MongoDB 12.1.4 编写MongoDB Repository 12.2 使用Neo4j操作图数据 12.2.1 配置Spring Data Neo4j 12.2.2 使用注解标注图实体 12.2.3 使用Neo4jTemplate 12.2.4 创建自动化的Neo4j Repository 12.3 使用Redis操作key-value数据 12.3.1 连接到Redis 12.3.2 使用RedisTemplate 12.3.3 使用key和value的序列化器 12.4 小结 第13章 缓存数据 13.1 启用对缓存的支持 13.1.1 配置缓存管理器 13.2 为方法添加注解以支持缓存 13.2.1 填充缓存 13.2.2 移除缓存条目 13.3 使用XML声明缓存 13.4 小结 第14章 保护方法应用 14.1 使用注解保护方法 14.1.1 使用@Secured注解限制方法调用 14.1.2 在Spring Security中使用JSR-250的@RolesAllowed注解 14.2 使用表达式实现方法级别的安全性 14.2.1 表述方法访问规则 14.2.2 过滤方法的输入和输出 14.3 小结 第4部分 Spring集成 第15章 使用远程服务 15.1 Spring远程调用概览 15.2 使用RMI 15.2.1 导出RMI服务 15.2.2 装配RMI服务 15.3 使用Hessian和Burlap发布远程服务 15.3.1 使用Hessian和Burlap导出bean的功能 15.3.2 访问Hessian/Burlap服务 15.4 使用Spring的HttpInvoker 15.4.1 将bean导出为HTTP服务 15.4.2 通过HTTP访问服务 15.5 发布和使用Web服务 15.5.1 创建基于Spring的JAX-WS端点 15.5.2 在客户端代理JAX-WS服务 15.6 小结 第16章 使用Spring MVC创建REST API 16.1 了解REST 16.1.1 REST的基础知识 16.1.2 Spring是如何支持REST的 16.2 创建第一个REST端点 16.2.1 协商资源表述 16.2.2 使用HTTP信息转换器 16.3 提供资源之外的其他内容 16.3.1 发送错误信息到客户端 16.3.2 在响应中设置头部信息 16.4 编写REST客户端 16.4.1 了解RestTemplate的操作 16.4.2 GET资源 16.4.3 检索资源 16.4.4 抽取响应的元数据 16.4.5 PUT资源 16.4.6 DELETE资源 16.4.7 POST资源数据 16.4.8 在POST请求中获取响应对象 16.4.9 在POST请求后获取资源位置 16.4.10 交换资源 16.5 小结 第17章 Spring消息 17.1 异步消息简介 17.1.1 发送消息 17.1.2 评估异步消息的优点 17.2 使用JMS发送消息 17.2.1 在Spring中搭建消息代理 17.2.2 使用Spring的JMS模板 17.2.3 创建消息驱动的POJO 17.2.4 使用基于消息的RPC 17.3 使用AMQP实现消息功能 17.3.1 AMQP简介 17.3.2 配置Spring支持AMQP消息 17.3.3 使用RabbitTemplate发送消息 17.3.4 接收AMQP消息 17.4 小结 第18章 使用WebSocket和STOMP实现消息功能 18.1 使用Spring的低层级WebSocket API 18.2 应对不支持WebSocket的场景 18.3 使用STOMP消息 18.3.1 启用STOMP消息功能 18.3.2 处理来自客户端的STOMP消息 18.3.3 发送消息到客户端 18.4 为目标用户发送消息 18.4.1 在控制器中处理用户的消息 18.4.2 为指定用户发送消息 18.5 处理消息异常 18.6 小结 第19章 使用Spring发送Email 19.1 配置Spring发送邮件 19.1.1 配置邮件发送器 19.1.2 装配和使用邮件发送器 19.2 构建丰富内容的Email消息 19.2.1 添加附件 19.2.2 发送富文本内容的Email 19.3 使用模板生成Email 19.3.1 使用Velocity构建Email消息 19.3.2 使用Thymeleaf构建Email消息 19.4 小结 第20章 使用JMX管理Spring Bean 20.1 将Spring bean导出为MBean 20.1.1 通过名称暴露方法 20.1.2 使用接口定义MBean的操作和属性 20.1.3 使用注解驱动的MBean 20.1.4 处理MBean冲突 20.2 远程MBean 20.2.1 暴露远程MBean 20.2.2 访问远程MBean 20.2.3 代理MBean 20.3 处理通知 20.3.1 监听通知 20.4 小结 第21章 借助Spring Boot简化Spring开发 21.1 Spring Boot简介 21.1.1 添加Starter依赖 21.1.2 自动配置 21.1.3 Spring Boot CLI 21.1.4 Actuator 21.2 使用Spring Boot构建应用 21.2.1 处理请求 21.2.2 创建视图 21.2.3 添加静态内容 21.2.4 持久化数据 21.2.5 尝试运行 21.3 组合使用Groovy与Spring Boot CLI 21.3.1 编写Groovy控制器 21.3.2 使用Groovy Repository实现数据持久化 21.3.3 运行Spring Boot CLI 21.4 通过Actuator获取了解应用内部状况 21.5 小结

2018-05-14

Spring Boot实战 丁雪丰 译

目录 第 1 章 入门 ................................................ 1 1.1 Spring 风云再起 ........................................ 1 1.1.1 重新认识 Spring ............................ 2 1.1.2 Spring Boot 精要 ........................... 3 1.1.3 Spring Boot 不是什么 ................... 6 1.2 Spring Boot 入门 ....................................... 6 1.2.1 安装 Spring Boot CLI .................... 7 1.2.2 使用 Spring Initializr 初始化 Spring Boot 项目 .......................... 10 1.3 小结 ......................................................... 18 第 2 章 开发第一个应用程序 .................... 19 2.1 运用 Spring Boot ..................................... 19 2.1.1 查看初始化的 Spring Boot 新项目 .......................................... 21 2.1.2 Spring Boot 项目构建过程 解析 .............................................. 24 2.2 使用起步依赖 .......................................... 27 2.2.1 指定基于功能的依赖 ................... 28 2.2.2 覆盖起步依赖引入的传递依赖 .... 29 2.3 使用自动配置 .......................................... 30 2.3.1 专注于应用程序功能 ................... 31 2.3.2 运行应用程序 .............................. 36 2.3.3 刚刚发生了什么 ........................... 38 2.4 小结 ......................................................... 41 第 3 章 自定义配置 .................................... 42 3.1 覆盖 Spring Boot 自动配置 ..................... 42 3.1.1 保护应用程序 .............................. 43 3.1.2 创建自定义的安全配置 ............... 44 3.1.3 掀开自动配置的神秘面纱 ........... 48 3.2 通过属性文件外置配置 ........................... 49 3.2.1 自动配置微调 .............................. 50 3.2.2 应用程序 Bean 的配置外置 ......... 55 3.2.3 使用 Profile 进行配置 .................. 59 3.3 定制应用程序错误页面 ........................... 62 3.4 小结 ......................................................... 64 第 4 章 测试 ............................................... 66 4.1 集成测试自动配置 .................................. 66 4.2 测试 Web 应用程序 ................................. 68 4.2.1 模拟 Spring MVC ........................ 69 4.2.2 测试 Web 安全 ............................. 72 4.3 测试运行中的应用程序 ........................... 74 4.3.1 用随机端口启动服务器 ............... 75 4.3.2 使用 Selenium 测试 HTML 页面 ............................................. 76 4.4 小结 ......................................................... 78 第 5 章 Groovy 与 Spring Boot CLI ......... 80 5.1 开发 Spring Boot CLI 应用程序 .............. 80 5.1.1 设置 CLI 项目 .............................. 81 5.1.2 通过 Groovy 消除代码噪声 ......... 81 5.1.3 发生了什么 .................................. 85 5.2 获取依赖 .................................................. 86 5.2.1 覆盖默认依赖版本 ....................... 87 5.2.2 添加依赖仓库 .............................. 88 5.3 用 CLI 运行测试 ...................................... 89 5.4 创建可部署的产物 .................................. 91 5.5 小结 ......................................................... 91 第 6 章 在 Spring Boot 中使用 Grails ...... 93 6.1 使用 GORM 进行数据持久化 ................. 93 2 目 录 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................. 100 6.3.1 创建新的 Grails 项目 ................. 100 6.3.2 定义领域模型 ............................ 103 6.3.3 开发 Grails 控制器 ..................... 104 6.3.4 创建视图 .................................... 105 6.4 小结 ....................................................... 107 第 7 章 深入 Actuator .............................. 108 7.1 揭秘 Actuator 的端点 ............................ 108 7.1.1 查看配置明细 ............................ 109 7.1.2 运行时度量 ................................ 115 7.1.3 关闭应用程序 ............................ 121 7.1.4 获取应用信息 ............................ 121 7.2 连接 Actuator 的远程 shell .................... 122 7.2.1 查看 autoconfig 报告 ........... 123 7.2.2 列出应用程序的 Bean ............... 124 7.2.3 查看应用程序的度量信息 ......... 124 7.2.4 调用 Actuator 端点 .................... 125 7.3 通过 JMX 监控应用程序 ....................... 126 7.4 定制 Actuator ......................................... 128 7.4.1 修改端点 ID ............................... 128 7.4.2 启用和禁用端点 ........................ 129 7.4.3 添加自定义度量信息 ................. 129 7.4.4 创建自定义跟踪仓库 ................. 132 7.4.5 插入自定义健康指示器 ............. 134 7.5 保护 Actuator 端点 ................................ 136 7.6 小结 ....................................................... 138 第 8 章 部署 Spring Boot 应用程序 ........ 139 8.1 衡量多种部署方式 ................................ 139 8.2 部署到应用服务器 ................................ 140 8.2.1 构建 WAR 文件 ......................... 141 8.2.2 创建生产 Profile ........................ 142 8.2.3 开启数据库迁移 ........................ 145 8.3 推上云端 ............................................... 150 8.3.1 部署到 Cloud Foundry ............... 150 8.3.2 部署到 Heroku ........................... 153 8.4 小结 ....................................................... 155 附录 A Spring Boot 开发者工具 .............. 157 附录 B Spring Boot 起步依赖 ................. 163 附录 C 配置属性 ...................................... 169 附录 D Spring Boot 依赖 ......................... 202

2018-05-14

GitHub入门与实践 高清文字版带目录

目录 第1章 欢迎来到GitHub的世界 …………………………………………1 1.1 … 什么是 GitHub …............................................................................................... 2 GitHub 公司与 octocat ….................................................................................... 2 并不只是 Git 仓库的托管服务 … ........................................................................ 3 GitHub 的使用情况 …........................................................................................... 3 Column …专栏 :GitHub 与 Git 的区别 …........................................................... 4 1.2 … 使用 GitHub 会带来哪些变化 …................................................................. 4 协作形式变化 …..................................................................................................... 4 在开发者之间引发化学反应的 Pull…Request ….................................................. 5 对特定用户进行评论 … ...................................................................................... 6 GitHub…Flavored…Markdown ….......................................................................... 7 Column …专栏 :还可以这样写 !! …................................................................... 7 能看到更多其他团队的软件 …........................................................................... 7 与开源软件相同的开发模式 …........................................................................... 8 1.3 … 社会化编程 …....................................................................................................... 9 1.4 … 为什么需要社会化编程 …............................................................................. 10 不要闭目塞听,要接触不同的文化 …............................................................ 10 会写代码的程序员更受青睐 …......................................................................... 11 GitHub 最大的特征是“面向人” …................................................................. 11 1.5 … GitHub 提供的主要功能 ….......................................................................... 12 Git 仓库 … .............................................................................................................. 12 Organization ….................................................................................................... 12 Issue … ................................................................................................................... 13 Wiki …..................................................................................................................... 13 Pull Request ….................................................................................................... 13 Column …专栏 :GitHub 上受到瞩目的软件 …................................................. 14 1.6 … 小结 …................................................................................................................... 14 图灵社区会员 lxghost2 专享 尊重版权 x   目录 参考资料 … ............................................................................................................ 14 第2章 Git的导入 …………………………………………………………… 17 2.1 … 诞生背景 ….......................................................................................................... 18 2.2 … 什么是版本管理 …........................................................................................... 18 集中型与分散型 … ............................................................................................... 19 集中型 …......................................................................................................... 19 分散型 …......................................................................................................... 19 集中型与分散型哪个更好 …............................................................................. 20 2.3 … 安装 …................................................................................................................... 21 Mac 与 Linux ….................................................................................................... 21 Windows …........................................................................................................... 21 组件的选择 ….................................................................................................. 22 设置环境变量 ….............................................................................................. 22 换行符的处理 ….............................................................................................. 23 Git…Bash …...................................................................................................... 23 本书所用的环境 … ............................................................................................... 24 2.4 … 初始设置 ….......................................................................................................... 24 设置姓名和邮箱地址 …...................................................................................... 24 提高命令输出的可读性 … .................................................................................. 25 2.5 … 小结 …................................................................................................................... 25 第3章 使用GitHub的前期准备 ……………………………………… 27 3.1 … 使用前的准备 …................................................................................................ 28 创建账户 … ............................................................................................................ 28 设置头像 … ............................................................................................................ 29 设置 SSH Key … .................................................................................................. 29 添加公开密钥 …................................................................................................... 30 使用社区功能 …................................................................................................... 31 图灵社区会员 lxghost2 专享 尊重版权 目录   xi 3.2 … 实际动手使用 …................................................................................................ 31 创建仓库 … ............................................................................................................ 31 Repository…name …......................................................................................... 32 Description ….................................................................................................. 32 Public、Private …............................................................................................ 32 Initialize…this…repository…with…a…README … ..................................................... 32 Add….gitignore … .............................................................................................. 33 Add…a…license … ............................................................................................... 33 连接仓库 … ............................................................................................................ 33 README.md … ............................................................................................... 33 GitHub…Flavored…Markdown …........................................................................ 34 公开代码 … ............................................................................................................ 34 clone 已有仓库 …............................................................................................ 34 编写代码 … ...................................................................................................... 35 提交 …............................................................................................................. 36 Column …专栏 :公开时的许可协议 …............................................................. 37 进行 push ….................................................................................................... 37 3.3 … 小结 …................................................................................................................... 38 第4章 通过实际操作学习Git … ……………………………………… 39 4.1 … 基本操作 ….......................................................................................................... 40 git init——初始化仓库 …................................................................................... 40 git status——查看仓库的状态 …..................................................................... 40 git add——向暂存区中添加文件 …................................................................ 41 git commit——保存仓库的历史记录 ….......................................................... 42 记述一行提交信息 …....................................................................................... 42 记述详细提交信息 …....................................................................................... 42 中止提交 … ...................................................................................................... 43 查看提交后的状态 …....................................................................................... 43 git log——查看提交日志 …............................................................................... 43 只显示提交信息的第一行 …............................................................................ 44 只显示指定目录、文件的日志 …..................................................................... 44 显示文件的改动 …........................................................................................... 45 图灵社区会员 lxghost2 专享 尊重版权 xii   目录 git diff——查看更改前后的差别 ….................................................................. 45 查看工作树和暂存区的差别 …......................................................................... 45 查看工作树和最新提交的差别 …..................................................................... 46 4.2 … 分支的操作 …..................................................................................................... 47 git branch——显示分支一览表 …................................................................... 48 git checkout  - b——创建、切换分支 ….......................................................... 48 切换到 feature - A 分支并进行提交 …............................................................... 48 切换到 master 分支 …..................................................................................... 49 切换回上一个分支 …....................................................................................... 50 特性分支 … ............................................................................................................ 50 主干分支 … ............................................................................................................ 51 git merge——合并分支 …................................................................................. 51 git log  -- graph——以图表形式查看分支 …................................................... 52 4.3 … 更改提交的操作 …........................................................................................... 53 git reset——回溯历史版本 …........................................................................... 53 回溯到创建 feature - A 分支前 …...................................................................... 53 创建 fix - B 分支 …............................................................................................ 54 推进至 feature - A 分支合并后的状态 ............................................................ 55 消除冲突 … ............................................................................................................ 56 查看冲突部分并将其解决 …............................................................................ 57 提交解决后的结果 …....................................................................................... 57 git commit  -- amend——修改提交信息 ...................................................... 58 git rebase  - i——压缩历史 …............................................................................ 59 创建 feature - C 分支 …..................................................................................... 59 修正拼写错误 ….............................................................................................. 60 更改历史 … ...................................................................................................... 61 合并至 master 分支 …..................................................................................... 63 4.4 … 推送至远程仓库 …........................................................................................... 63 git remote add——添加远程仓库 …............................................................... 64 git push——推送至远程仓库 …....................................................................... 64 推送至 master 分支 …..................................................................................... 64 推送至 master 以外的分支 ….......................................................................... 65 4.5 … 从远程仓库获取 …........................................................................................... 65 git clone——获取远程仓库 ….......................................................................... 65 图灵社区会员 lxghost2 专享 尊重版权 目录   xiii 获取远程仓库 ….............................................................................................. 65 获取远程的 feature - D 分支 ….......................................................................... 66 向本地的 feature - D 分支提交更改 …............................................................... 67 推送 feature - D 分支 … ..................................................................................... 67 git pull——获取最新的远程仓库分支 …........................................................ 67 4.6 … 帮助大家深入理解 Git 的资料 …............................................................... 68 Pro Git ................................................................................................................ 68 LearnGitBranching …......................................................................................... 69 tryGit … ................................................................................................................... 69 4.7 … 小结 …................................................................................................................... 70 第5章 详细解说GitHub的功能 ……………………………………… 71 5.1 … 键盘快捷键 …..................................................................................................... 72 5.2 … 工具栏 … ............................................................................................................... 73 关于 UI …............................................................................................................... 73 1 LOGO …..................................................................................................... 73 2 Notifications … ............................................................................................ 73 3 搜索窗口 …................................................................................................. 73 4 Explore … .................................................................................................... 73 5 Gist …......................................................................................................... 74 6 Blog …........................................................................................................ 74 7 Help …........................................................................................................ 74 8 头像、用户名 ….......................................................................................... 74 9 Create…a…new... …....................................................................................... 74 ? Account…settings … ..................................................................................... 75 ? Sign…out ….................................................................................................. 75 5.3 … 控制面板 ….......................................................................................................... 75 关于 UI …............................................................................................................... 75 ❶ News…Feed …............................................................................................. 76 ❷ Pull…Requests … .......................................................................................... 76 ❸ Issues …..................................................................................................... 76 ❹ Stars …....................................................................................................... 76 ❺ Broadcast … ................................................................................................ 76 图灵社区会员 lxghost2 专享 尊重版权 xiv   目录 ❻ Repositories…you…contribute…to …............................................................... 76 ❼ Your…Repositories …................................................................................... 76 5.4 … 个人信息 ….......................................................................................................... 77 关于 UI …............................................................................................................... 77 1…用户信息 …................................................................................................. 77 2 Popular…Repositories … ............................................................................... 78 3 Repositories…contributed…to ….................................................................... 78 4 Public…contributions …................................................................................ 78 5 Contribution…Activity …............................................................................... 78 6 Repositories … ............................................................................................ 78 7 Public…Activity …......................................................................................... 79 5.5 … 仓库 …................................................................................................................... 80 关于 UI …............................................................................................................... 80 ❶ 用户名(组织名)/ 仓库名 …...................................................................... 80 ❷ Watch/Star/Fork …...................................................................................... 80 ❸ Code …....................................................................................................... 81 ❹ Issue …....................................................................................................... 81 ❺ Pull…Requests … .......................................................................................... 81 ❻ Wiki … ......................................................................................................... 82 ❼ Pulse …....................................................................................................... 82 ❽ Graphs ….................................................................................................... 82 ❾ Network ….................................................................................................. 82 ❿ Settings ….................................................................................................. 82 ⓫ SSH…clone…URL …....................................................................................... 82 ⓬ Clone…in…Desktop ….................................................................................... 82 ⓭ Download…ZIP …......................................................................................... 83 a commits … .................................................................................................. 83 b branches …................................................................................................. 83 c releases ….................................................................................................. 83 d contributors …............................................................................................ 83 e Compare…&…review … .................................................................................. 83 f branch …..................................................................................................... 83 g path … ......................................................................................................... 84 h Fork…this…project…and…Create…a…new…file …................................................... 84 i files …......................................................................................................... 84 文件的相关操作 … ............................................................................................... 84 Column …专栏 :通过部分名称搜索文件 …...................................................... 85 图灵社区会员 lxghost2 专享 尊重版权 目录   xv 查看差别 … ............................................................................................................ 85 查看分支间的差别 …....................................................................................... 85 查看与几天前的差别 … .................................................................................... 86 查看与指定日期之间的差别 …......................................................................... 87 5.6 … Issue …................................................................................................................. 87 简洁且表现力丰富的描述方法 … ..................................................................... 88 语法高亮 … ...................................................................................................... 89 添加图片 … ...................................................................................................... 90 添加标签以便整理 ….......................................................................................... 90 添加里程碑以便管理 …...................................................................................... 91 Column …专栏 :了解贡献时的规则! ….......................................................... 92 Tasklist 语法 … ..................................................................................................... 92 通过提交信息操作 Issue …............................................................................... 93 在相关 Issue 中显示提交 …............................................................................. 93 Close…Issue …................................................................................................. 93 将特定的 Issue 转换为 Pull Request … ......................................................... 94 5.7 … Pull Request … ................................................................................................. 94 Column …专栏 :获取 diff 格式与 patch 格式的文件 … ..................................... 96 Conversation .................................................................................................... 96 Column …专栏 :引用评论 …............................................................................ 96 Commits …............................................................................................................ 97 Column …专栏 :在评论中应用表情 …............................................................. 98 Files Changed …................................................................................................. 98 5.8 … Wiki …................................................................................................................... 99 Pages … ............................................................................................................... 100 History .............................................................................................................. 101 Column …专栏 :在 Wiki 中显示侧边栏 …...................................................... 101 5.9 … Pulse …............................................................................................................... 102 active pull requests …...................................................................................... 103 active issue ….................................................................................................... 103 commits …........................................................................................................... 104 Releases published …..................................................................................... 104 Unresolved Conversations …........................................................................ 104 图灵社区会员 lxghost2 专享 尊重版权 xvi   目录 5.10 … Graphs … ........................................................................................................... 105 Contributors …................................................................................................... 105 Commit Activity …............................................................................................. 106 Code Frequency …........................................................................................... 106 Punchcard …...................................................................................................... 108 5.11 … Network …....................................................................................................... 108 5.12 … Settings …........................................................................................................ 109 Options …............................................................................................................ 109 ❶ Settings …................................................................................................ 109 ❷ Features … ................................................................................................ 110 ❸ GitHub…Pages … ........................................................................................ 111 ❹ Danger…Zone …......................................................................................... 111 Collaborators …................................................................................................. 111 Webhooks & Services …................................................................................. 112 Deploy Keys …................................................................................................... 112 5.13 … Notifications ….............................................................................................. 112 5.14 … 其他功能 …........................................................................................................ 114 GitHub Pages …................................................................................................ 114 GitHub Jobs …................................................................................................... 114 GitHub Enterprise … ......................................................................................... 114 GitHub API …..................................................................................................... 115 5.15 … 小结 …................................................................................................................. 115 Column …专栏 :在 Mac 的通知中心查看 GitHub 的 Notifications …............. 115 第6章 尝试Pull Request ……………………………………………… 117 6.1 … Pull Request 的概要 …............................................................................... 118 什么是 Pull Request ….................................................................................... 118 Pull Request 的流程 ….................................................................................... 118 6.2 … 发送 Pull Request 前的准备 …............................................................... 119 查看要修正的源代码 ….................................................................................... 120 图灵社区会员 lxghost2 专享 尊重版权 目录   xvii Fork ….................................................................................................................. 120 clone … ................................................................................................................. 120 branch ….............................................................................................................. 121 为何要在特性分支中进行作业 …................................................................... 121 确认分支 … .................................................................................................... 121 创建特性分支 …............................................................................................ 121 添加代码 … .......................................................................................................... 122 提交修改 … .......................................................................................................... 122 创建远程分支 …................................................................................................. 123 6.3 … 发送 Pull Request ….................................................................................... 123 6.4 … 让 Pull Request 更加有效的方法 …...................................................... 126 在开发过程中发送 Pull Request 进行讨论 …............................................ 126 明确标出“正在开发过程中” …..................................................................... 127 不进行 Fork 直接从分支发送 Pull Request …........................................... 128 6.5 … 仓库的维护 …................................................................................................... 128 仓库的 Fork 与 clone …................................................................................... 129 给原仓库设置名称 …........................................................................................ 129 获取最新数据 …................................................................................................. 130 6.6 … 小结 …................................................................................................................. 130 第7章 接收Pull Request ……………………………………………… 131 7.1 … 采纳 Pull Request 的方法 ….................................................................... 132 7.2 … 采纳 Pull Request 前的准备 …............................................................... 133 代码审查 … .......................................................................................................... 133 查看图片的差别 … ............................................................................................. 134 2 - up …........................................................................................................... 134 Swipe …........................................................................................................ 135 Onion…Skin … ................................................................................................. 135 Difference …................................................................................................. 136 在本地开发环境中反映 Pull Request 的内容 …........................................ 136 将接收方的本地仓库更新至最新状态 …........................................................ 136 图灵社区会员 lxghost2 专享 尊重版权 xviii   目录 获取发送方的远程仓库 ….............................................................................. 137 创建用于检查的分支 … .................................................................................. 138 合并 …........................................................................................................... 138 删除分支 … .................................................................................................... 139 Column …专栏 :如何提升代码管理技术 ….................................................... 139 7.3 … 采纳 Pull Request ….................................................................................... 139 合并到主分支 …................................................................................................. 140 push 修改内容 …............................................................................................... 141 7.4 … 小结 …................................................................................................................. 142 Column …专栏 :请协助我们共同创建互相学习的场所 ............................... 142 第8章 与GitHub相互协作的工具及服务 ……………………… 143 8.1 … hub 命令 …....................................................................................................... 144 概要 ….................................................................................................................. 144 安装 ….................................................................................................................. 144 安装 …........................................................................................................... 145 确认运行情况 …............................................................................................ 145 设置别名 … .................................................................................................... 145 实现 shell 上的功能补全 …............................................................................ 146 ~/.config/hub …............................................................................................. 146 命令 ….................................................................................................................. 146 hub…clone ….................................................................................................. 146 hub…remote…add … ......................................................................................... 147 hub…fetch …................................................................................................... 147 hub…cherry - pick …......................................................................................... 147 hub…fork …..................................................................................................... 148 hub…pull - request …........................................................................................ 148 hub…checkout …............................................................................................ 148 hub…create …................................................................................................. 149 hub…push …................................................................................................... 149 hub…browse …............................................................................................... 150 hub…compare …............................................................................................. 150 Column …专栏 :让 GitHub…Enterprise 支持 hub 命令 …................................ 151 图灵社区会员 lxghost2 专享 尊重版权 目录   xix 8.2 … Travis CI …....................................................................................................... 151 概要 ….................................................................................................................. 151 实际尝试 … .......................................................................................................... 152 编写配置文件 …............................................................................................ 152 检测配置文件是否有问题 ….......................................................................... 152 与 GitHub 集成 ….......................................................................................... 153 将 Travis…CI 的结果添加至 README.md …................................................... 155 8.3 … Coveralls …...................................................................................................... 156 概要 ….................................................................................................................. 156 安装 ….................................................................................................................. 157 注册 …........................................................................................................... 157 添加对象仓库 …............................................................................................ 158 编写配置文件 …............................................................................................ 158 添加 gem …................................................................................................... 159 查看报告 … .................................................................................................... 160 8.4 … Gemnasium …............................................................................................... 160 8.5 … Code Climate …............................................................................................ 161 8.6 … Jenkins …......................................................................................................... 162 概要 ….................................................................................................................. 162 安装 ….................................................................................................................. 164 创建 bot 账户 …................................................................................................. 165 bot 账户的权限设置 … ...................................................................................... 165 对象为个人账户时 …..................................................................................... 165 对象为 Organization 账户时 … ....................................................................... 165 检查设置 … .................................................................................................... 167 给 Jenkins 设置 SSH 密钥 …......................................................................... 167 初次使用 Jenkins 时 ….................................................................................. 167 已经在使用 Jenkins 时 ….............................................................................. 168 GitHub pull request builder plugin 的安装 …............................................. 169 Git plugin 的设置 … ........................................................................................... 170 Github Pull Requests Builder 的设置 …...................................................... 170 Github…server…api…URL …............................................................................... 171 Access…Token … ............................................................................................ 171 图灵社区会员 lxghost2 专享 尊重版权 xx   目录 Admin…list ….................................................................................................. 172 job 的创建与设置 ….......................................................................................... 172 GitHub…project …........................................................................................... 172 源码管理 … .................................................................................................... 172 构建触发器 …................................................................................................ 173 构建 …........................................................................................................... 174 通知结果 … .......................................................................................................... 174 测试执行中的状态 …..................................................................................... 175 Failed … ......................................................................................................... 175 All…is…well …................................................................................................... 175 commit…status …........................................................................................... 175 通过评论进行控制 …........................................................................................ 176 执行任务 … .................................................................................................... 176 添加至 White…list …....................................................................................... 176 重新执行任务 …............................................................................................ 176 变更指定评论 …............................................................................................ 177 8.7 … 小结 …................................................................................................................. 177 Column …专栏 :用 Coderwall 生成 GitHub 上的个人信息 …......................... 178 第9章 使用GitHub的开发流程 …………………………………… 179 9.1 … 团队使用 GitHub 时的注意事项 …........................................................ 180 一切从简 … .......................................................................................................... 180 项目管理工具与 GitHub 的区别 …................................................................. 180 项目管理工具与 GitHub 相异的原因 ….......................................................... 181 不 Fork 仓库的方法 …...................................................................................... 182 9.2 … GitHub Flow——以部署为中心的开发模式 …................................ 183 9.3 … GitHub Flow 的流程 … ............................................................................... 184 随时部署,没有发布的概念 …....................................................................... 184 进行新的作业时要从 master 分支创建新分支 …...................................... 185 在新创建的分支中进行提交 …....................................................................... 186 定期 push …........................................................................................................ 186 使用 Pull Request …......................................................................................... 187 图灵社区会员 lxghost2 专享 尊重版权 目录   xxi 务必让其他开发者进行审查 …....................................................................... 187 合并后立刻部署 … ............................................................................................. 187 9.4 … 实践 GitHub Flow 的前提条件 ….......................................................... 188 部署作业完全自动化 ….................................................................................... 188 使用部署工具 …............................................................................................ 189 通过 Web 界面进行部署的工具 …................................................................. 189 导入开发时的注意事项 ….............................................................................. 190 重视测试 … .......................................................................................................... 190 让测试自动化 …............................................................................................ 190 编写测试代码,通过全部测试 …................................................................... 190 维护测试代码 …............................................................................................ 190 9.5 … 模拟体验 GitHub Flow ….......................................................................... 191 Fizzbuzz 的说明 …............................................................................................ 191 添加新功能 …..................................................................................................... 192 创建新的分支 …................................................................................................. 192 如果尚未 clone 仓库 ….................................................................................. 192 如果之前 clone 过仓库 ….............................................................................. 193 创建特性分支 …............................................................................................ 193 实现新功能 …..................................................................................................... 194 创建 Pull Request …......................................................................................... 196 接收反馈 … .......................................................................................................... 196 修正缩进 … .......................................................................................................... 197 添加测试 … .......................................................................................................... 199 培育 Pull Request …......................................................................................... 202 Pull Request 被合并 ….................................................................................... 202 9.6 … 团队实践 GitHub Flow 时的几点建议 …............................................ 203 减小 Pull Request 的体积 … ........................................................................... 204 准备可供试运行的环境 … ................................................................................ 204 不要让 Pull Request 中有太多反馈 …......................................................... 205 不要积攒 Pull Request …................................................................................ 206 9.7 … GitHub Flow 的小结 … ............................................................................... 206 9.8 … Git Flow——以发布为中心的开发模式 …......................................... 207 图灵社区会员 lxghost2 专享 尊重版权 xxii   目录 便于理解的标准流程 ….................................................................................... 207 有时显得过于复杂 …........................................................................................ 209 9.9 … 导入 Git Flow 前的准备 …........................................................................ 209 安装 git - flow … .................................................................................................... 209 Mac 下的安装 …............................................................................................ 209 Linux 下的安装 ….......................................................................................... 210 确认运行状况 …............................................................................................ 210 仓库的初始设置 … ............................................................................................. 210 创建仓库 … .................................................................................................... 210 进行 git…flow 的初始设置 …........................................................................... 211 在远程仓库中也创建 develop 分支 …............................................................ 212 9.10 … 模拟体验 Git Flow …................................................................................... 212 master 分支与 develop 分支的区别 …......................................................... 213 master 分支 …............................................................................................... 213 develop 分支 …............................................................................................. 213 在 feature 中进行的工作 …............................................................................. 213 创建分支 … .................................................................................................... 214 在分支中进行作业 …..................................................................................... 215 发送 Pull Request …......................................................................................... 216 通过代码审查提高代码质量 …....................................................................... 217 更新本地的 develop 分支 …........................................................................... 219 在 release 分支中进行的工作 … .................................................................... 220 Column …专栏 :设置默认分支 … ................................................................... 220 创建分支 … .................................................................................................... 221 分支内的工作 …............................................................................................ 222 进行发布与合并 …......................................................................................... 222 查看版本标签 …............................................................................................ 224 更新到远程仓库 … ............................................................................................. 225 在 hotfix 分支中进行的工作 ........................................................................ 226 创建分支 … .................................................................................................... 226 创建标签和进行发布 … .................................................................................. 228 从 hotfix 分支合并至 develop 分支 …............................................................ 230 9.11 … Git Flow 的小结 …........................................................................................ 232 Column …专栏 :版本号的分配规则 …........................................................... 232 图灵社区会员 lxghost2 专享 尊重版权 目录   xxiii 第10章 将GitHub应用到企业 ……………………………………… 233 10.1 … 将世界标准的开发环境引入企业现场 ….............................................. 234 企业引入 GitHub 的好处 …............................................................................. 234 使用 Organization …......................................................................................... 235 确认 Github 的安全性 ….................................................................................. 235 注意维护时间 …................................................................................................. 235 查看故障信息 …................................................................................................. 236 10.2 … GitHub Enterprise ….................................................................................. 237 概述 ….................................................................................................................. 238 引入的好处 …..................................................................................................... 238 引入的弊端 …..................................................................................................... 239 适合引入 GitHub Enterprise 的几种情况 … ................................................ 239 源代码不可外传 …......................................................................................... 239 Column …专栏 :将 GitHub 的仓库作为 Subversion 仓库使用 … .................... 240 希望维护与故障时间可控 ….......................................................................... 240 10.3 … 能实现 Git 托管的软件 …........................................................................... 241 Column …专栏 :Bitbucket …......................................................................... 241 10.4 … 小结 …................................................................................................................. 242 附录A 支持GitHub的GUI客户端 ………………………………… 243 A.1 … GitHub for Mac,GitHub for Windows ….................................... 244 A.2 … SourceTree …................................................................................................. 246 附录B 通过Gist轻松实现代码共享 ……………………………… 247 B.1 … Gist 的特点 ….................................................................................................. 248 B.2 … 创建 Gist …....................................................................................................... 248 UI 讲解 …............................................................................................................. 249 1 Gist…description... … .................................................................................. 249 图灵社区会员 lxghost2 专享 尊重版权 xxiv   目录 2 name…this…file... …..................................................................................... 249 3 language …............................................................................................... 250 4 ACE…Editor …............................................................................................ 250 5 文件 …....................................................................................................... 250 6 Add…another…File …................................................................................... 251 7 Create…Secret…Gist …................................................................................ 251 8 Create…Public…Gist …................................................................................. 251 B.3 … 查看 Gist …....................................................................................................... 252 Gist 的菜单 …..................................................................................................... 252 ❶ Gist…Detail …............................................................................................. 253 ❷ Revisions ….............................................................................................. 253 ❸ Download…Gist …...................................................................................... 253 ❹ Clone…this…gist …....................................................................................... 253 ❺ Embed…this…gist … ..................................................................................... 253 ❻ Link…to…this…gist …..................................................................................... 253 文件的菜单 …..................................................................................................... 254 B.4 … Your Gists …................................................................................................... 254 B.5 … 小结 …................................................................................................................. 255

2018-05-14

Effective Java 第三版高清英文原版

Effective Java 最新第三版高清文字版,JAVA四大名著之一,Update for Java 9,

2018-05-14

Storm源码分析高清文字带目录

本书从源代码的角度详细分析了Storm 的设计与实现,共分为三个部分,第一部分介绍了Storm 的基本原理以及Storm 集群系统的搭建方法,第二部分深入剖析了Storm 的底层架构,如Nimbus、Supervisor、, Worker 以及Task,第三部分系统讨论了Storm 如何实现可靠的消息传输,如Transaction Topology 以及Trident。, 本书适用于程序员、架构师以及计算机专业的学生。 目录 第 1 章总体架构与代码结构 第 2 章 搭 建 Storm 集 群 第 3 章 Storm 编程基础 第 4 章基础函数和工具类 第 5 章 通 信 机 制 第 6 章 Nimbus 第 7 章 Scheduler 第 8 章 Scheduler 第 9 章 Worker 第 10 章 Executor 第 11 章 Task 第 12 章 Storm 的 Ack 框架 第 13 章系统运行统计 第 14 章系统运行统计的另一种实现 第 15 章 事 务 Topology 的 实 现 第 16 章 事 务 Topology 示 例 第 17 章 Trident 的 Spout 节点 第 18 章 Trident 的存储 第 19 章 Trident 消息 第 20 章 Trident 操作与处理节点 第 21 章 Trident 流的基本操作 第 22 章 Trident 中流的交互操作 第 23 章 Trident 中的 Bolt 节点 第 24 章 Trident 的执行优化 第 25 章 Trident 与 DRPC 第 26 章 Trident 的 Topology 构建器 第 27 章 多 语 言 第 28 章 Storm 中的配置项

2018-05-04

决战大数据:驾驭未来商业的利器-车品觉

目录 前言 忘掉大数据 第一部分 从数据化运营到运营数据 01 大数据,为什么很多人只会谈,不会做 大数据从来不是免费的午餐 人的断层 模型数据从何而来 更主动的管理,更多的创新 数据化思考 问题就是答案 02 大数据的本质就是还原用户的真实需求 识别,让似是而非的行为数据串联起来 价值,企业价值 Vs 客户价值 场景,你知道当时所有的场景吗 还原是一个瞄准器 数据化思考 CEO 们关心哪三个数据 03 “活”的数据才是大数据 “活”做数据收集,抓住相关性 “活”看数据指标,动态地使用数据 数据化思考 别再做“碰巧游戏” 04 无线数据,大数据的颠覆者 无线数据正在将整个数据变成“噪音” PC 数据与无线数据的关系 多屏思维下的电子商务 数据化思考 样本的偏见 05 数据分类与数据价值,什么才是你的核心数据 数据分类为什么如此重要 数据分类的 4 大维度 数据的5 大价值 数据化思考 用傻瓜的视角去观察 06 从用数据到养数据 数据应用因小而美 把数据放进“框”之中 如何用框架来做决策 养数据,重要的数据战略 数据化思考 远离“或”选择 07 数据的盲点,负面数据的力量 数据盲点 小偷思维 数据盲点的价值 数据化思考 为什么数据会骗人:常态、时态与变态 第二部分 阿里巴巴的大数据秘密 08 阿里巴巴的大数据实践 假定数据是稳定的 假定数据是可获取的 数据化思考 先开枪,后瞄准 09 混、通、晒,阿里巴巴数据化运营的内三板斧 混,“混 ”出数据 通,打“通”“混” 的数据 晒,“晒”出“混”和“通”的数据 数据化思考 思考,要学会关窗口 10 存、管、用,阿里巴巴运营数据的外三板斧 存,数据收集的开始 管,保护好存储数据 用,从收集数据到管理数据 数据化思考 用化骨绵掌解决本质问题 11 大数据,未来商业的利器 假定数据是脏的 学会慢慢淡化数据 数据的标签化管理 重要的是数据和数据之间的关系,而不是数据本身 数据的实时化与实时性分层 未来是人机的结合体 数据化思考 忽略了趋势,过去的价值一文不值 结 语 开启属于你的个人大数据管理 后 记 像李小龙的格斗一样去思考 品觉的话 人在修行的路上,不要单打独斗

2018-05-04

李航-统计学习方法-高清文字版

目录 前言 符号表 第1章 统计学习方法概论 1.1 统计学习 1.2 监督学习 1.2.1 基本概念 1.2.2 问题的形式化 1.3 统计学习三要素 1.3.1 模型 1.3.2 策略 1.3.3 算法 1.4 模型评估与模型选择 1.4.1 训练误差与测试误差 1.4.2 过拟合与模型选择 1.5 正则化与交叉验证 1.5.1 正则化 1.5.2 交叉验证 1.6 泛化能力 1.6.1 泛化误差 1.6.2 泛化误差上界 1.7 生成模型与判别模型 1.8 分类问题 1.9 标注问题 1.10 回归问题 本章概要 继续阅读 习题 参考文献 第2章 感知机 2.1 感知机模型 2.2 感知机学习策略 2.2.1 数据集的线性可分性 2.2.2 感知机学习策略 2.3 感知机学习算法 2.3.1 感知机学习算法的原始形式 2.3.2 算法的收敛性 2.3.3 感知机学习算法的对偶形式 本章概要 继续阅读 习题 参考文献 第3章 k 近邻法 3.1 k 近邻算法 3.2 k 近邻模型 3.2.1 模型 3.2.2 距离度量 3.2.3 k 值的选择 3.2.4 分类决策规则 3.3 k 近邻法的实现: kd 树 3.3.1 构造kd 树 3.3.2 搜索kd 树 本章概要 继续阅读 习题 参考文献 第4章 朴素贝叶斯法 4.1 朴素贝叶斯法的学习与分类 4.1.1 基本方法 4.1.2 后验概率最大化的含义 4.2 朴素贝叶斯法的参数估计 4.2.1 极大似然估计 4.2.2 学习与分类算法 4.2.3 贝叶斯估计 本章概要 继续阅读 习题 参考文献 第5章 决策树 5.1 决策树模型与学习 5.1.1 决策树模型 5.1.2 决策树与 if-then 规则 5.1.3 决策树与条件概率分布 5.1.4 决策树学习 5.2 特征选择 5.2.1 特征选择问题 5.2.2 信息增益 5.2.3 信息增益比 5.3 决策树的生成 5.3.1 ID3算法 5.3.2 C4.5的生成算法 5.4 决策树的剪枝 5.5 CART算法 5.5.1 CART生成 5.5.2 CART剪枝 本章概要 继续阅读 习题 参考文献 第6章 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯谛回归模型 6.1.3 模型参数估计 6.1.4 多项逻辑斯谛回归 6.2 最大熵模型 6.2.1 最大熵原理 6.2.2 最大熵模型的定义 6.2.3 最大熵模型的学习 6.2.4 极大似然估计 6.3 模型学习的最优化算法 6.3.1 改进的迭代尺度法 6.3.2 拟牛顿法 本章概要 继续阅读 习题 参考文献 第7章 支持向量机 7.1 线性可分支持向量机与硬间隔最大化 7.1.1 线性可分支持向量机 7.1.2 函数间隔和几何间隔 7.1.3 间隔最大化 7.1.4 学习的对偶算法 7.2 线性支持向量机与软间隔最大化 7.2.1 线性支持向量机 7.2.2 学习的对偶算法 7.2.3 支持向量 7.2.4 合页损失函数 7.3 非线性支持向量机与核函数 7.3.1 核技巧 7.3.2 正定核 7.3.3 常用核函数 7.3.4 非线性支持向量分类机 7.4 序列最小最优化算法 7.4.1 两个变量二次规划的求解方法 7.4.2 变量的选择方法 7.4.3 SMO算法 本章概要 继续阅读 习题 参考文献 第8章 提升方法 8.1 提升方法AdaBoost算法 8.1.1 提升方法的基本思路 8.1.2 AdaBoost算法 8.1.3 AdaBoost的例子 8.2 AdaBoost 算法的训练误差分析 8.3 AdaBoost 算法的解释 8.3.1 前向分步算法 8.3.2 前向分步算法与AdaBoost 8.4 提升树 8.4.1 提升树模型 8.4.2 提升树算法 8.4.3 梯度提升 本章概要 继续阅读 习题 参考文献 第9章 EM算法及其推广 9.1 EM算法的引入 9.1.1 EM算法 9.1.2 EM 算法的导出 9.1.3 EM 算法在非监督学习中的应用 9.2 EM 算法的收敛性 9.3 EM 算法在高斯混合模型学习中的应用 9.3.1 高斯混合模型 9.3.2 高斯混合模型参数估计的 EM算法 9.4 EM算法的推广 9.4.1 F函数的极大-极大算法 9.4.2 GEM算法 本章概要 继续阅读 习题 参考文献 第10章 隐马尔可夫模型 10.1 隐马尔可夫模型的基本概念 10.1.1 隐马尔可夫模型的定义 10.1.2 观测序列的生成过程 10.1.3 隐马尔可夫模型的 3 个基本问题 10.2 概率计算算法 10.2.1 直接计算法 10.2.2 前向算法 10.2.3 后向算法 10.2.4 一些概率与期望值的计算 10.3 学习算法 10.3.1 监督学习方法 10.3.2 Baum-Welch算法 10.3.3 Baum-Welch 模型参数估计公式 10.4 预测算法 10.4.1 近似算法 10.4.2 维特比算法 本章概要 继续阅读 习题 参考文献 第11章 条件随机场 11.1 概率无向图模型 11.1.1 模型定义 11.1.2 概率无向图模型的因子分解 11.2 条件随机场的定义与形式 11.2.1 条件随机场的定义 11.2.2 条件随机场的参数化形式 11.2.3 条件随机场的简化形式 11.2.4 条件随机场的矩阵形式 11.3 条件随机场的概率计算问题 11.3.1 前向-后向算法 11.3.2 概率计算 11.3.3 期望值的计算 11.4 条件随机场的学习算法 11.4.1 改进的迭代尺度法 11.4.2 拟牛顿法 11.5 条件随机场的预测算法 本章概要 继续阅读 习题 参考文献 第12章 统计学习方法总结 附录 A 梯度下降法 附录 B 牛顿法和拟牛顿法 附录 C 拉格朗日对偶性 索引

2018-04-08

Docker技术入门与实战第2版-高清文字版

杨保华 戴王剑 曹亚仑 编著 学习Docker的第一本入门书,畅销书升级 基于Docker1.12及以上版本 目录 第2版前言 第1版前言 第一部分 基础入门 第1章 初识容器与 Docker 1.1 什么是Docker 1.2 为什么要使用 Docker 1.3 Docker 与虚拟化 1.4 本章小结 第2章 核心概念与安装配置 2.1 核心概念 2.2 安装Docker 2.3 配置Docker 服务 2.4 推荐实践环境 2.5 本章小结 第3章 使用Docker 镜像 3.1 获取镜像 3.2 查看镜像信息 3.3 搜寻镜像 3.4 删除镜像 3.5 创建镜像 3.6 存出和载入镜像 3.7 上传镜像 3.8 本章小结 第4章 操作Docker容器 4.1 创建容器 4.2 终止容器 4.3 进入容器 4.4 删除容器 4.5 导入和导出容器 4.6 本章小结 第5章 访问 Docker 仓库 5.1 Docker Hub 公共镜像市场 5.2 时速云镜像市场 5.3 搭建本地私有仓库 5.4 本章小结 第6章 Docker数据管理 6.1 数据卷 6.2 数据卷容器 6.3 利用数据卷容器来迁移数据 6.4 本章小结 第7章 端口映射与容器互联 7.1 端口映射实现访问容器 7.2 互联机制实现便捷互访 7.3 本章小结 第8章 使用Dockerfile 创建镜像 8.1 基本结构 8.2 指令说明 8.3 创建镜像 8.4 使用.dockerignore文件 8.5 最佳实践 8.6 本章小结 第二部分 实战案例 第9章 操作系统 9.1 BusyBox 9.2 Alpine 9.3 Debian/Ubuntu 9.4 CentOS/Fedora 9.5 本章小结 第10章 为镜像添加 SSH 服务 10.1 基于commit 命令创建 10.2 使用Dockerfile 创建 10.3 本章小结 第11章 Web 服务与应用 11.1 Apache 11.2 Nginx 11.3 Tomcat 11.4 Jetty 11.5 LAMP 11.6 CMS 11.7 持续开发与管理 11.8 本章小结 第12章 数据库应用 12.1 MySQL 12.2 MongoDB 12.3 Redis 12.4 Memcached 12.5 CouchDB 12.6 Cassandra 12.7 本章小结 第13章 分布式处理与大数据平台 13.1 RabbitMQ 13.2 Celery 13.3 Hadoop 13.4 Spark 13.5 Storm 13.6 Elasticsearch 13.7 本章小结 第14章 编程开发 14.1 C/C++ 14.2 Java 14.3 Python 14.4 JavaScript 14.5 Go 14.6 PHP 14.7 Ruby 14.8 Perl 14.9 R 14.10 Erlang 14.11 本章小结 第15章 容器与云服务 15.1 公有云容器服务 15.2 容器云服务 15.3 阿里云容器服务 15.4 时速云容器平台 15.5 本章小结 第16章 容器实战思考 16.1 Docker 为什么会成功 16.2 研发人员该如何看容器 16.3 容器化开发模式 16.4 容器与生产环境 16.5 本章小结 第三部分 进阶技能 第17章 Docker 核心实现技术 17.1 基本架构 17.2 命名空间 17.3 控制组 17.4 联合文件系统 17.5 Linux 网络虚拟化 17.6 本章小结 第18章 配置私有仓库 18.1 安装Docker Registry 18.2 配置TLS 证书 18.3 管理访问权限 18.4 配置Registry 18.5 批量管理镜像 18.6 使用通知系统 18.7 本章小结 第19章 安全防护与配置 19.1 命名空间隔离的安全 19.2 控制组资源控制的安全 19.3 内核能力机制 19.4 Docker 服务端的防护 19.5 更多安全特性的使用 19.6 使用第三方检测工具 19.7 本章小结 第20章 高级网络功能 20.1 网络启动与配置参数 20.2 配置容器DNS和主机名 20.3 容器访问控制 20.4 映射容器端口到宿主主机的实现 20.5 配置docker0 网桥 20.6 自定义网桥 20.7 使用OpenvSwitch 网桥 20.8 创建一个点到点连接 20.9 本章小结 第21章 libnetwork 插件化网络功能 21.1 容器网络模型 21.2 Docker 网络相关命令 21.3 构建跨主机容器网络 21.4 本章小结 第四部分 开源项目 第22章 Etcd—— 高可用的键值数据库 22.1 简介 22.2 安装和使用Etcd 22.3 使用etcdctl 客户端 22.4 Etcd集群管理 22.5 本章小结 第23章 Docker 三剑客之 Docker Machine 23.1 简介 23.2 安装Machine 23.3 使用Machine 23.4 Machine命令 23.5 本章小结 第24章 Docker 三剑客之 Docker Compose 24.1 简介 24.2 安装与卸载 24.3 Compose 命令说明 24.4 Compose 环境变量 24.5 Compose模板文件 24.6 Compose 应用案例一: Web 负载均衡 24.7 Compose 应用案例二:大数据 Spark集群 24.8 本章小结 第25章 Docker 三剑客之 Docker Swarm 25.1 简介 25.2 安装Swarm 25.3 使用Swarm 25.4 使用其他服务发现后端 25.5 Swarm 中的调度器 25.6 Swarm 中的过滤器 25.7 本章小结 第26章 Mesos—— 优秀的集群资源调度平台 26.1 简介 26.2 Mesos安装与使用 26.3 原理与架构 26.4 Mesos 配置项解析 26.5 日志与监控 26.6 常见应用框架 26.7 本章小结 第27章 Kubernetes—— 生产级容器集群平台 27.1 简介 27.2 核心概念 27.3 快速体验 27.4 安装部署 27.5 重要组件 27.6 使用kubectl 27.7 网络设计 27.8 本章小结 第28章 其他相关项目 28.1 平台即服务方案 28.2 持续集成平台 Drone 28.3 容器管理 28.4 编程开发 28.5 网络支持 28.6 日志处理 28.7 服务代理工具 28.8 标准与规范 28.9 其他项目 28.10 本章小结 附录 附录 A 常见问题总结 附录 B Docker 命令查询 附录 C 参考资源链接

2018-04-03

Python基础教程(第3版)-201802出版-文字版

久负盛名的 Python 入门经典 针对 Python 3 全新升级 十个出色的项目,让你尽快可以使用 Python 解决实际问题 目录 第 1章 快速上手:基础知识 ........................ 1 1.1 交互式解释器 ........................................... 1 1.2 算法是什么 ............................................... 2 1.3 数和表达式 ............................................... 3 1.4 变量 .......................................................... 5 1.5 语句 .......................................................... 5 1.6 获取用户输入 ........................................... 7 1.7 函数 .......................................................... 8 1.8 模块 .......................................................... 8 1.8.1 cmath 和复数 ................................. 9 1.8.2 回到未来 ...................................... 10 1.9 保存并执行程序 ...................................... 10 1.9.1 从命令提示符运行 Python脚本 .............................................. 12 1.9.2 让脚本像普通程序一样 ............... 12 1.9.3 注释 .............................................. 13 1.10 字符串 .................................................... 13 1.10.1 单引号字符串以及对引号转义 .......................................... 14 1.10.2 拼接字符串 .............................. 15 1.10.3 字符串表示 str 和 repr ............ 15 1.10.4 长字符串、原始字符串和字节 .......................................... 16 1.11 小结 ....................................................... 21 1.11.1 本章介绍的新函数 ................... 21 1.11.2 预告 .......................................... 22 第 2章 列表和元组 ........................................ 23 2.1 序列概述 .................................................. 23 2.2 通用的序列操作 ...................................... 24 2.2.1 索引.............................................. 24 2.2.2 切片.............................................. 26 2.2.3 序列相加 ...................................... 28 2.2.4 乘法.............................................. 28 2.2.5 成员资格 ...................................... 29 2.3 列表:Python 的主力 .............................. 31 2.3.1 函数 list ...................................... 31 2.3.2 基本的列表操作 .......................... 31 2.3.3 列表方法 ...................................... 33 2.4 元组:不可修改的序列 ........................... 38 2.5 小结 ......................................................... 39 2.5.1 本章介绍的新函数 ....................... 40 2.5.2 预告.............................................. 40 第 3章 使用字符串 ....................................... 41 3.1 字符串基本操作 ...................................... 41 3.2 设置字符串的格式:精简版 ................... 41 3.3 设置字符串的格式:完整版 ................... 43 3.3.1 替换字段名 .................................. 43 3.3.2 基本转换 ...................................... 44 3.3.3 宽度、精度和千位分隔符 ........... 45 3.3.4 符号、对齐和用 0 填充 ............... 46 3.4 字符串方法 .............................................. 48 3.4.1 center ........................................... 48 3.4.2 find .............................................. 48 3.4.3 join .............................................. 49 3.4.4 lower ............................................ 50 3.4.5 replace ......................................... 51 3.4.6 split ............................................ 51 3.4.7 strip ............................................ 51 3.4.8 translate ..................................... 52 3.4.9 判断字符串是否满足特定的条件 ............................................. 52 3.5 小结 ......................................................... 53 3.5.1 本章介绍的新函数 ....................... 53 3.5.2 预告 ............................................. 53 第 4章 当索引行不通时 ............................... 54 4.1 字典的用途 .............................................. 54 4.2 创建和使用字典 ...................................... 55 4.2.1 函数 dict ..................................... 55 4.2.2 基本的字典操作 .......................... 55 4.2.3 将字符串格式设置功能用于字典 ............................................. 57 4.2.4 字典方法 ...................................... 58 4.3 小结 ......................................................... 63 4.3.1 本章介绍的新函数 ....................... 63 4.3.2 预告 ............................................. 63 第 5章 条件、循环及其他语句 .................. 64 5.1 再谈 print 和 import ............................... 64 5.1.1 打印多个参数 .............................. 64 5.1.2 导入时重命名 .............................. 65 5.2 赋值魔法 ................................................. 66 5.2.1 序列解包 ...................................... 66 5.2.2 链式赋值 ...................................... 67 5.2.3 增强赋值 ...................................... 67 5.3 代码块:缩进的乐趣 .............................. 68 5.4 条件和条件语句 ...................................... 69 5.4.1 这正是布尔值的用武之地 ........... 69 5.4.2 有条件地执行和 if 语句 ............. 70 5.4.3 else 子句 ...................................... 70 5.4.4 elif 子句 ...................................... 71 5.4.5 代码块嵌套 .................................. 71 5.4.6 更复杂的条件 .............................. 71 5.4.7 断言 ............................................. 75 5.5 循环 ......................................................... 76 5.5.1 while 循环 .................................... 77 5.5.2 for 循环 ....................................... 77 5.5.3 迭代字典 ...................................... 78 5.5.4 一些迭代工具 .............................. 78 5.5.5 跳出循环 ...................................... 80 5.5.6 循环中的 else 子句 ..................... 82 5.6 简单推导 ................................................. 83 5.7 三人行 ..................................................... 84 5.7.1 什么都不做 .................................. 84 5.7.2 使用 del 删除............................... 85 5.7.3 使用 exec 和 eval 执行字符串及计算其结果 .............................. 86 5.8 小结 ......................................................... 88 5.8.1 本章介绍的新函数 ...................... 89 5.8.2 预告 ............................................. 89 第 6章 抽象 .................................................... 90 6.1 懒惰是一种美德 ...................................... 90 6.2 抽象和结构 ............................................. 91 6.3 自定义函数 ............................................. 91 6.3.1 给函数编写文档 .......................... 92 6.3.2 其实并不是函数的函数 ............... 93 6.4 参数魔法 ................................................. 93 6.4.1 值从哪里来 .................................. 94 6.4.2 我能修改参数吗 .......................... 94 6.4.3 关键字参数和默认值 ................... 98 6.4.4 收集参数 .................................... 100 6.4.5 分配参数 .................................... 102 6.4.6 练习使用参数 ............................ 103 6.5 作用域 ................................................... 105 6.6 递归 ....................................................... 107 6.6.1 两个经典案例:阶乘和幂 ......... 108 6.6.2 另一个经典案例:二分查找 ..... 109 6.7 小结 ....................................................... 112 6.7.1 本章介绍的新函数 .................... 113 6.7.2 预告 ........................................... 113 第 7章 再谈抽象 ......................................... 114 7.1 对象魔法 ............................................... 114 7.1.1 多态 ........................................... 115 7.1.2 多态和方法 ................................ 116 7.1.3 封装 ........................................... 118 7.1.4 继承 ........................................... 119 7.2 类 ........................................................... 119 7.2.1 类到底是什么 ............................ 119 7.2.2 创建自定义类 ............................ 120 7.2.3 属性、函数和方法 ..................... 121 7.2.4 再谈隐藏 .................................... 122 7.2.5 类的命名空间 ............................ 123 7.2.6 指定超类 .................................... 124 7.2.7 深入探讨继承 ............................ 125 7.2.8 多个超类 .................................... 126 7.2.9 接口和内省 ................................ 127 7.2.10 抽象基类 .................................. 128 7.3 关于面向对象设计的一些思考 ............. 130 7.4 小结 ....................................................... 130 7.4.1 本章介绍的新函数 ..................... 131 7.4.2 预告 ............................................ 131 第 8章 异常 .................................................. 132 8.1 异常是什么 ............................................ 132 8.2 让事情沿你指定的轨道出错 ................. 132 8.2.1 raise 语句 .................................. 132 8.2.2 自定义的异常类 ......................... 133 8.3 捕获异常 ................................................ 134 8.3.1 不用提供参数 ............................ 134 8.3.2 多个 except 子句 ........................ 136 8.3.3 一箭双雕 .................................... 136 8.3.4 捕获对象 .................................... 137 8.3.5 一网打尽 .................................... 137 8.3.6 万事大吉时 ................................ 138 8.3.7 最后 ............................................ 139 8.4 异常和函数 ............................................ 140 8.5 异常之禅 ................................................ 140 8.6 不那么异常的情况 ................................ 142 8.7 小结 ....................................................... 143 8.7.1 本章介绍的新函数 ..................... 143 8.7.2 预告 ............................................ 143 第 9章 魔法方法、特性和迭代器 ............ 144 9.1 如果你使用的不是 Python 3 .................. 144 9.2 构造函数 ................................................ 145 9.2.1 重写普通方法和特殊的构造函数 ............................................ 146 9.2.2 调用未关联的超类构造函数 ..... 147 9.2.3 使用函数 super ......................... 148 9.3 元素访问 ................................................ 149 9.3.1 基本的序列和映射协议 ............. 150 9.3.2 从 list、dict 和 str 派生 ......... 152 9.4 其他魔法方法 ........................................ 153 9.5 特性 ....................................................... 153 9.5.1 函数 property............................. 154 9.5.2 静态方法和类方法 ..................... 155 9.5.3 __getattr__、__setattr__等方法 ........................................... 156 9.6 迭代器 ................................................... 157 9.6.1 迭代器协议 ................................ 157 9.6.2 从迭代器创建序列 ..................... 159 9.7 生成器 ................................................... 159 9.7.1 创建生成器 ................................ 159 9.7.2 递归式生成器 ............................ 161 9.7.3 通用生成器 ................................ 162 9.7.4 生成器的方法 ............................ 162 9.7.5 模拟生成器 ................................ 163 9.8 八皇后问题 ............................................ 164 9.8.1 生成器的回溯 ............................ 164 9.8.2 问题............................................ 165 9.8.3 状态表示 .................................... 166 9.8.4 检测冲突 .................................... 166 9.8.5 基线条件 .................................... 166 9.8.6 递归条件 .................................... 167 9.8.7 扫尾工作 .................................... 169 9.9 小结 ....................................................... 170 9.9.1 本章介绍的新函数 ..................... 170 9.9.2 预告............................................ 171 第 10章 开箱即用 ....................................... 172 10.1 模块 ..................................................... 172 10.1.1 模块就是程序 ........................ 172 10.1.2 模块是用来下定义的 ............. 174 10.1.3 让模块可用 ............................ 176 10.1.4 包 ........................................... 177 10.2 探索模块 .............................................. 178 10.2.1 模块包含什么 ........................ 178 10.2.2 使用 help 获取帮助 ............... 179 10.2.3 文档 ........................................ 180 10.2.4 使用源代码 ............................ 181 10.3 标准库:一些深受欢迎的模块 ........... 181 10.3.1 sys .......................................... 181 10.3.2 os ............................................ 183 10.3.3 fileinput ............................... 185 10.3.4 集合、堆和双端队列 ............. 186 10.3.5 time ........................................ 190 10.3.6 random ..................................... 192 10.3.7 shelve 和 json ........................ 195 10.3.8 re ............................................ 198 10.3.9 其他有趣的标准模块 ............. 210 10.4 小结 ..................................................... 211 10.4.1 本章介绍的新函数 ................. 212 10.4.2 预告 ........................................ 212 第 11章 文件 ................................................ 213 11.1 打开文件 .............................................. 213 11.2 文件的基本方法 .................................. 214 11.2.1 读取和写入 ............................ 215 11.2.2 使用管道重定向输出 ............. 215 11.2.3 读取和写入行 ........................ 217 11.2.4 关闭文件 ................................ 217 11.2.5 使用文件的基本方法 ............. 218 11.3 迭代文件内容 ...................................... 220 11.3.1 每次一个字符(或字节) ..... 220 11.3.2 每次一行 ................................ 221 11.3.3 读取所有内容 ........................ 221 11.3.4 使用 fileinput 实现延迟行迭代 ........................................ 221 11.3.5 文件迭代器 ............................ 222 11.4 小结 ..................................................... 223 11.4.1 本章介绍的新函数 ................. 223 11.4.2 预告 ........................................ 224 第 12章 图形用户界面 ............................... 225 12.1 创建 GUI 示例应用程序 ...................... 225 12.1.1 初探 ........................................ 226 12.1.2 布局 ........................................ 227 12.1.3 事件处理 ................................ 228 12.1.4 最终的程序 ............................ 229 12.2 使用其他 GUI 工具包 ......................... 230 12.3 小结 ..................................................... 231 第 13章 数据库支持 ................................... 232 13.1 Python 数据库 API .............................. 232 13.1.1 全局变量 ................................ 233 13.1.2 异常 ....................................... 234 13.1.3 连接和游标 ............................ 234 13.1.4 类型 ....................................... 236 13.2 SQLite 和 PySQLite ............................ 236 13.2.1 起步 ....................................... 237 13.2.2 数据库应用程序示例 ............. 238 13.3 小结 ..................................................... 241 13.3.1 本章介绍的新函数 ................ 241 13.3.2 预告 ....................................... 241 第 14章 网络编程 ....................................... 242 14.1 几个网络模块 ...................................... 242 14.1.1 模块 socket ............................ 242 14.1.2 模块 urllib 和 urllib2 .......... 244 14.1.3 其他模块 ................................ 246 14.2 SocketServer 及相关的类 .................... 247 14.3 多个连接 ............................................. 247 14.3.1 使用 SocketServer 实现分叉和线程化 ........................ 249 14.3.2 使用 select 和 poll 实现异步 I/O ................................. 249 14.4 Twisted ................................................ 252 14.4.1 下载并安装 Twisted .............. 252 14.4.2 编写 Twisted 服务器 .............. 253 14.5 小结 ..................................................... 254 14.5.1 本章介绍的新函数 ................ 255 14.5.2 预告 ....................................... 255 第 15章 Python和 Web ............................ 256 15.1 屏幕抓取 ............................................. 256 15.1.1 Tidy 和 XHTML 解析 ............ 257 15.1.2 Beautiful Soup ....................... 261 15.2 使用 CGI 创建动态网页 ...................... 262 15.2.1 第一步:准备 Web 服务器 .... 262 15.2.2 第二步:添加!#行 ................. 263 15.2.3 第三步:设置文件权限 ......... 264 15.2.4 CGI 安全风险 ......................... 264 15.2.5 简单的 CGI 脚本 .................... 264 15.2.6 使用 cgitb 进行调试 .............. 265 15.2.7 使用模块 cgi .......................... 266 15.2.8 简单的表单 ............................ 267 15.3 使用 Web 框架 ..................................... 269 15.4 Web 服务:更高级的抓取 ................... 270 15.4.1 RSS 和相关内容 ..................... 270 15.4.2 使用 XML-RPC 进行远程过程调用................................. 271 15.4.3 SOAP ...................................... 272 15.5 小结 ..................................................... 272 15.5.1 本章介绍的新函数 ................. 272 15.5.2 预告 ........................................ 272 第 16章 测试基础 ........................................ 273 16.1 先测试再编码 ...................................... 273 16.1.1 准确的需求说明 ..................... 273 16.1.2 做好应对变化的准备 ............. 275 16.1.3 测试四步曲 ............................ 275 16.2 测试工具 .............................................. 276 16.2.1 doctest ................................... 276 16.2.2 unittest.................................. 278 16.3 超越单元测试 ...................................... 280 16.3.1 使用 PyChecker 和 PyLint检查源代码 ............................. 280 16.3.2 性能分析 ................................ 283 16.4 小结 ..................................................... 284 16.4.1 本章介绍的新函数 ................. 285 16.4.2 预告 ........................................ 285 第 17章 扩展 Python .................................. 286 17.1 鱼和熊掌兼得 ...................................... 286 17.2 简单易行的方式:Jython 和IronPython ............................................ 287 17.3 编写 C 语言扩展 .................................. 289 17.3.1 SWIG ...................................... 291 17.3.2 手工编写扩展 ........................ 294 17.4 小结 ..................................................... 298 17.4.1 本章介绍的新函数 ................. 299 17.4.2 预告 ........................................ 299 第 17章 程序打包 ....................................... 300 18.1 Setuptools 基础 .................................... 300 18.2 打包 ..................................................... 302 18.3 编译扩展 .............................................. 303 18.4 使用 py2exe 创建可执行程序 .............. 304 18.5 小结 ..................................................... 304 18.5.1 本章介绍的新函数 ................. 305 18.5.2 预告 ........................................ 305 第 19章 趣味编程 ....................................... 306 19.1 为何要有趣 .......................................... 306 19.2 编程柔术 .............................................. 306 19.3 原型设计 .............................................. 307 19.4 配置 ..................................................... 308 19.4.1 提取常量 ................................ 308 19.4.2 配置文件 ................................ 309 19.5 日志 ..................................................... 311 19.6 如果你已不胜其烦 .............................. 312 19.7 如果你想深入学习 .............................. 312 19.8 小结 ..................................................... 313 第 20章 项目 1:自动添加标签 ............... 315 20.1 问题描述 .............................................. 315 20.2 有用的工具 .......................................... 316 20.3 准备工作 .............................................. 316 20.4 初次实现 .............................................. 317 20.4.1 找出文本块 ............................ 317 20.4.2 添加一些标记 ........................ 318 20.5 再次实现 .............................................. 319 20.5.1 处理程序 ................................ 320 20.5.2 处理程序的超类 ..................... 320 20.5.3 规则 ........................................ 322 20.5.4 规则的超类 ............................ 323 20.5.5 过滤器 .................................... 323 20.5.6 解析器 .................................... 323 20.5.7 创建规则和过滤器 ................. 324 20.5.8 整合起来 ................................ 327 20.6 进一步探索 .......................................... 331 第 21章 项目 2:绘制图表 ....................... 332 21.1 问题描述 .............................................. 332 21.2 有用的工具 .......................................... 332 21.3 准备工作 .............................................. 333 21.4 初次实现 .............................................. 333 21.4.1 使用 ReportLab 绘图 .............. 334 21.4.2 绘制折线 ................................ 335 21.4.3 编写原型 ................................ 335 21.5 再次实现 .............................................. 337 21.5.1 获取数据 ................................ 337 21.5.2 使用 LinePlot 类 .................... 337 21.6 进一步探索 .......................................... 339 第 22章 项目 3:万能的 XML .................. 340 22.1 问题描述 .............................................. 340 22.2 有用的工具 .......................................... 341 22.3 准备工作 .............................................. 341 22.4 初次实现 .............................................. 343 22.4.1 创建简单的内容处理程序 ..... 343 22.4.2 创建 HTML 页面 ................... 345 22.5 再次实现 .............................................. 347 22.5.1 分派器混合类 ........................ 347 22.5.2 将首部和尾部写入文件的方法以及默认处理程序 ............. 349 22.5.3 支持目录 ................................ 349 22.5.4 事件处理程序 ........................ 350 22.6 进一步探索 .......................................... 352 第 23章 项目 4:新闻汇总 ....................... 353 23.1 问题描述 .............................................. 353 23.2 有用的工具 .......................................... 354 23.3 准备工作 .............................................. 354 23.4 初次实现 .............................................. 354 23.5 再次实现 .............................................. 356 23.6 进一步探索 .......................................... 362 第 24章 项目 5:虚拟茶话会 ................... 364 24.1 问题描述 ............................................. 364 24.2 有用的工具.......................................... 364 24.3 准备工作 ............................................. 365 24.4 初次实现 ............................................. 366 24.4.1 ChatServer 类 ......................... 366 24.4.2 ChatSession 类 ....................... 367 24.4.3 整合起来 ................................ 369 24.5 再次实现 ............................................. 371 24.5.1 基本的命令解释功能 ............. 371 24.5.2 聊天室 .................................... 372 24.5.3 登录和退出聊天室 ................ 372 24.5.4 主聊天室 ................................ 373 24.5.5 新的服务器 ............................ 373 24.6 进一步探索.......................................... 378 第 25章 项目 6:使用 CGI进行远程编辑................................................ 379 25.1 问题描述 ............................................. 379 25.2 有用的工具.......................................... 379 25.3 准备工作 ............................................. 380 25.4 初次实现 ............................................. 380 25.5 再次实现 ............................................. 381 25.5.1 创建文件名表单 .................... 381 25.5.2 编写编辑器脚本 .................... 382 25.5.3 编写保存脚本 ........................ 383 25.5.4 运行编辑器 ............................ 384 25.6 进一步探索.......................................... 386 第 26章 项目 7:自建公告板 ................... 387 26.1 问题描述 ............................................. 387 26.2 有用的工具.......................................... 387 26.3 准备工作 ............................................. 388 26.4 初次实现 ............................................. 389 26.5 再次实现 ............................................. 393 26.5.1 编写脚本 main.cgi ................. 394 26.5.2 编写脚本 view.cgi ................. 395 26.5.3 编写脚本 edit.cgi ................... 396 26.5.4 编写脚本 save.cgi .................. 398 26.5.5 尝试使用 ................................ 399 26.6 进一步探索.......................................... 400 第 27章 项目 8:使用 XML-RPC共享文件 .......................................... 401 27.1 问题描述 .............................................. 401 27.2 有用的工具 .......................................... 402 27.3 准备工作 .............................................. 403 27.4 初次实现 .............................................. 403 27.4.1 实现简单的节点 ..................... 403 27.4.2 尝试使用 ................................ 408 27.5 再次实现 .............................................. 409 27.5.1 创建客户端界面 ..................... 410 27.5.2 引发异常 ................................ 410 27.5.3 验证文件名 ............................ 411 27.5.4 尝试使用 ................................ 415 27.6 进一步探索 .......................................... 415 第 28章 项目 9:使用 GUI共享文件 ..... 417 28.1 问题描述 .............................................. 417 28.2 有用的工具 .......................................... 417 28.3 准备工作 .............................................. 417 28.4 初次实现 .............................................. 417 28.5 再次实现 .............................................. 419 28.6 进一步探索 .......................................... 422 第 29章 项目 10:自制街机游戏 ............ 423 29.1 问题描述 .............................................. 423 29.2 有用的工具 .......................................... 424 29.2.1 pygame ..................................... 424 29.2.2 pygame.locals ........................ 424 29.2.3 pygame.display ....................... 424 29.2.4 pygame.font ............................ 425 29.2.5 pygame.sprite ........................ 425 29.2.6 pygame.mouse .......................... 425 29.2.7 pygame.event .......................... 425 29.2.8 pygame.image .......................... 426 29.3 准备工作 .............................................. 426 29.4 初次实现 .............................................. 426 29.5 再次实现 .............................................. 429 29.6 进一步探索 .......................................... 438 附录 A 简明教程 .......................................... 440 附录 B Python参考手册 ............................ 447

2018-03-01

阿里巴巴Java开发手册(终极版).pdf

前言 一、编程规约 . ........................................................................ 1 (一)命名风格 . .................................................................. 1 (二)常量定义 . .................................................................. 3 (三)代码格式 . .................................................................. 4 (四)OOP 规约 . .................................................................. 6 (五)集合处理 . .................................................................. 9 (六)并发处理 . ................................................................. 12 (七)控制语句 . ................................................................. 14 (八)注释规约 . ................................................................. 16 (九)其它 . ..................................................................... 17 二、异常日志 . ....................................................................... 18 (一) 异常处理 . ................................................................. 18 (二) 日志规约 . ................................................................. 19 三、单元测试 . ....................................................................... 21 四、安全规约 . ....................................................................... 23 五、MySQL 数据库 . ................................................................... 24 (一)建表规约 . ................................................................. 24 (二)索引规约 . ................................................................. 25 (三)SQL 语句 . ................................................................. 27 (四)ORM 映射 . ................................................................. 28 六、工程结构 . ....................................................................... 30 (一)应用分层 . ................................................................. 30 (二)二方库依赖 . ............................................................... 31 (三)服务器 . ................................................................... 32 附 1:版本历史 . ...................................................................... 34 附 2:本手册专有名词 . ................................................................ 35

2018-01-24

Docker基础入门到实践

前言 修订记录 如何贡献 Docker 简介 什么是 Docker 为什么要用 Docker 基本概念 镜像 容器 仓库 安装 Docker Ubuntu Debian CentOS Raspberry Pi macOS Windows PC 镜像加速器 使用镜像 获取镜像 列出镜像 删除本地镜像 利用 commit 理解镜像构成 使用 Dockerfile 定制镜像 Dockerfile 指令详解 COPY 复制文件 ADD 更高级的复制文件 CMD 容器启动命令 ENTRYPOINT 入口点 ENV 设置环境变量 ARG 构建参数 VOLUME 定义匿名卷 EXPOSE 暴露端口 WORKDIR 指定工作目录 USER 指定当前用户 HEALTHCHECK 健康检查 ONBUILD 为他人作嫁衣裳 参考文档 Dockerfile 多阶段构建 其它制作镜像的方式 实现原理 操作容器 启动 守护态运行 终止 进入容器 导出和导入 删除 访问仓库 Docker Hub 私有仓库 私有仓库高级配置 数据管理 数据卷 监听主机目录 使用网络 外部访问容器 容器互联 配置 DNS 高级网络配置 快速配置指南 容器访问控制 端口映射实现 配置 docker0 网桥 自定义网桥 工具和示例 编辑网络配置文件 实例:创建一个点到点连接 Docker 三剑客之 Compose 项目 简介 安装与卸载 使用 命令说明 Compose 模板文件 实战 Django 实战 Rails 实战 WordPress Docker 三剑客之 Machine 项目 安装 使用 Docker 三剑客之 Docker Swarm Swarm mode 基本概念 创建 Swarm 集群 部署服务 使用 compose 文件 管理敏感数据 管理配置信息 安全 内核命名空间 控制组 服务端防护 内核能力机制 其它安全特性 总结 底层实现 基本架构 命名空间 控制组 联合文件系统 容器格式 网络 Etcd 项目 简介 安装 集群 使用 etcdctl CoreOS 项目 简介 工具 快速搭建 CoreOS 集群 Kubernetes 项目 简介 快速上手 基本概念 kubectl 使用 架构设计 Mesos - 优秀的集群资源调度平台 Mesos 简介 安装与使用 原理与架构 Mesos 配置项解析 日志与监控 常见应用框架 本章小结 容器与云计算 简介 亚马逊云 腾讯云 阿里云 小结 实战案例-操作系统 Busybox Alpine Debian Ubuntu CentOS Fedora 本章小结 实战案例-CI/CD Drone Docker 开源项目 LinuxKit 附录 附录一:常见问题总结 附录二:热门镜像介绍 Ubuntu CentOS MySQL MongoDB Redis Nginx WordPress Node.js 附录三:Docker 命令查询 附录四:Dockerfile 最佳实践 附录五:资源链接 附录六:Docker 中文资源

2018-01-24

重构-改善既有代码的设计(高清)+Clean Code 代码整洁之道(中文带书签)

重构-改善既有代码的设计[高清版] && clean code-代码整洁之道(中文完整版-带书签) 重构-改善既有代码的设计目录 第1章 重构,第一个案例 1 1.1 起点 1 1.2 重构的第一步 7 1.3 分解并重组statement() 8 1.4 运用多态取代与价格相关的条件逻辑 34 1.5 结语 52 第2章 重构原则 53 2.1 何谓重构 53 2.2 为何重构 55 2.3 何时重构 57 2.4 怎么对经理说 60 2.5 重构的难题 62 2.6 重构与设计 66 2.7 重构与性能 69 2.8 重构起源何处 71 第3章 代码的坏味道 75 3.1 duplicated code(重复代码) 76 3.2 long method(过长函数) 76 3.3 large class(过大的类) 78 3.4 long parameter list(过长参数列) 78 .3.5 divergent change(发散式变化) 79 3.6 shotgun surgery(霰弹式修改) 80 3.7 feature envy(依恋情结) 80 3.8 data clumps(数据泥团) 81 3.9 primitive obsession(基本类型偏执) 81 3.10 switch statements(switch惊悚现身) 82 3.11 parallel inheritancehierarchies(平行继承体系) 83 3.12 lazy class(冗赘类) 83 3.13 speculative generality(夸夸其谈未来性) 83 3.14 temporary field(令人迷惑的暂时字段) 84 3.15 message chains(过度耦合的消息链) 84 3.16 middle man(中间人) 85 3.17 inappropriate intimacy(狎昵关系) 85 3.18 alternative classes with different interfaces(异曲同工的类) 85 3.19 incomplete library class(不完美的库类) 86 3.20 data class(纯稚的数据类) 86 3.21 refused bequest(被拒绝的遗赠) 87 3.22 comments(过多的注释) 87 第4章 构筑测试体系 89 4.1 自测试代码的价值 89 4.2 junit测试框架 91 4.3 添加更多测试 97 第5章 重构列表 103 5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 extract method(提炼函数) 110 6.2 inline method(内联函数) 117 6.3 inline temp(内联临时变量) 119 6.4 replace temp with query(以查询取代临时变量) 120 6.5 introduce explaining variable(引入解释性变量) 124 6.6 split temporary variable(分解临时变量) 128 6.7 remove assignments to parameters(移除对参数的赋值) 131 6.8 replace method with method object(以函数对象取代函数) 135 6.9 substitute algorithm(替换算法) 139 第7章 在对象之间搬移特性 141 7.1 move method(搬移函数) 142 7.2 move field(搬移字段) 146 7.3 extract class(提炼类) 149 7.4 inline class(将类内联化) 154 7.5 hide delegate(隐藏“委托关系”) 157 7.6 remove middle man(移除中间人) 160 7.7 introduce foreign method(引入外加函数) 162 7.8 introduce local extension(引入本地扩展) 164 第8章 重新组织数据 169 8.1 self encapsulate field(自封装字段) 171 8.2 replace data value with object(以对象取代数据值) 175 8.3 change value to reference(将值对象改为引用对象) 179 8.4 change reference to value(将引用对象改为值对象) 183 8.5 replace array with object(以对象取代数组) 186 8.6 duplicate observed data(复制“被监视数据”) 189 8.7 change unidirectional association to bidirectional(将单向关联改为双向关联) 197 8.8 change bidirectional association to unidirectional(将双向关联改为单向关联) 200 8.9 replace magic number with symbolic constant(以字面常量取代魔法数) 204 8.10 encapsulate field(封装字段) 206 8.11 encapsulate collection(封装集合) 208 8.12 replace record with data class(以数据类取代记录) 217 8.13 replace type code with class(以类取代类型码) 218 8.14 replace type code with subclasses(以子类取代类型码) 223 8.15 replace type code with state/strategy(以state/strategy取代类型码) 227 8.16 replace subclass with fields(以字段取代子类) 232 第9章 简化条件表达式 237 9.1 decompose conditional(分解条件表达式) 238 9.2 consolidate conditional expression(合并条件表达式) 240 9.3 consolidate duplicate conditional fragments(合并重复的条件片段) 243 9.4 remove control flag(移除控制标记) 245 9.5 replace nested conditional with guard clauses(以卫语句取代嵌套条件表达式) 250 9.6 replace conditional with polymorphism(以多态取代条件表达式) 255 9.7 introduce null object(引入null对象) 260 9.8 introduce assertion(引入断言) 267 第10章 简化函数调用 271 10.1 rename method(函数改名) 273 10.2 add parameter(添加参数) 275 10.3 remove parameter(移除参数) 277 10.4 separate query from modifier(将查询函数和修改函数分离) 279 10.5 parameterize method(令函数携带参数) 283 10.6 replace parameter with explicit methods(以明确函数取代参数) 285 10.7 preserve whole object(保持对象完整) 288 10.8 replace parameter with methods(以函数取代参数) 292 10.9 introduce parameter object(引入参数对象) 295 10.10 remove setting method(移除设值函数) 300 10.11 hide method(隐藏函数) 303 10.12 replace constructor with factory method(以工厂函数取代构造函数) 304 10.13 encapsulate downcast(封装向下转型) 308 10.14 replace error code with exception(以异常取代错误码) 310 10.15 replace exception with test(以测试取代异常) 315 第11章 处理概括关系 319 11.1 pull up field(字段上移) 320 11.2 pull up method(函数上移) 322 11.3 pull up constructor body(构造函数本体上移) 325 11.4 push down method(函数下移) 328 11.5 push down field(字段下移) 329 11.6 extract subclass(提炼子类) 330 11.7 extract superclass(提炼超类) 336 11.8 extract interface(提炼接口) 341 11.9 collapse hierarchy(折叠继承体系) 344 11.10 form tem plate method(塑造模板函数) 345 11.11 replace inheritance with delegation(以委托取代继承) 352 11.12 replace delegation with inheritance(以继承取代委托) 355 第12章 大型重构 359 12.1 tease apart inheritance(梳理并分解继承体系) 362 12.2 convert procedural design to objects(将过程化设计转化为对象设计) 368 12.3 separate domain from presentation(将领域和表述/显示分离) 370 12.4 extract hierarchy(提炼继承体系) 375 第13章 重构,复用与现实 379 13.1 现实的检验 380 13.2 为什么开发者不愿意重构他们的程序 381 13.3 再论现实的检验 394 13.4 重构的资源和参考资料 394 13.5 从重构联想到软件复用和技术传播 395 13.6 小结 397 13.7 参考文献 397 第14章 重构工具 401 14.1 使用工具进行重构 401 14.2 重构工具的技术标准 403 14.3 重构工具的实用标准 405 14.4 小结 407 第15章 总结 409 参考书目 413 要点列表 417 索引 419 Clean Code 代码整洁之道(中文带书签) 第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 小结 12 1.9 文献 13 第2章 有意义的命名 15 2.1 介绍 15 2.2 名副其实 16 2.3 避免误导 17 2.4 做有意义的区分 18 2.5 使用读得出来的名称 19 2.6 使用可搜索的名称 20 2.7 避免使用编码 21 2.7.1 匈牙利语标记法 21 2.7.2 成员前缀 21 2.7.3 接口和实现 22 2.8 避免思维映射 22 2.9  类名 23 2.10 方法名 23 2.11 别扮可爱 23 2.12 每个概念对应一个词 24 2.13 别用双关语 24 2.14 使用解决方案领域名称 25 2.15 使用源自所涉问题领域的名称 25 2.16 添加有意义的语境 25 2.17 不要添加没用的语境 27 2.18 最后的话 27 第3章 函数 29 3.1 短小 32 3.2 只做一件事 33 3.3 每个函数一个抽象层级 34 3.4 switch语句 35 3.5 使用描述性的名称 36 3.6 函数参数 37 3.6.1 一元函数的普遍形式 38 3.6.2 标识参数 38 3.6.3 二元函数 38 3.6.4 三元函数 39 3.6.5 参数对象 39 3.6.6 参数列表 40 3.6.7 动词与关键字 40 3.7 无副作用 40 3.8 分隔指令与询问 42 3.9 使用异常替代返回错误码 42 3.9.1 抽离Try/Catch代码块 43 3.9.2 错误处理就是一件事 44 3.9.3 Error.java依赖磁铁 44 3.10 别重复自己 44 3.11 结构化编程 45 3.12 如何写出这样的函数 45 3.13 小结 45 3.14 SetupTeardownIncluder程序 46 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 放大 54 4.3.8 公共API中的Javadoc 55 4.4 坏注释 55 4.4.1 喃喃自语 55 4.4.2 多余的注释 56 4.4.3 误导性注释 58 4.4.4 循规式注释 58 4.4.5 日志式注释 59 4.4.6 废话注释 59 4.4.7 可怕的废话 61 4.4.8 能用函数或变量时就别用注释 62 4.4.9 位置标记 62 4.4.10 括号后面的注释 62 4.4.11 归属与署名 63 4.4.12 注释掉的代码 63 4.4.13 HTML注释 64 4.4.14 非本地信息 64 4.4.15 信息过多 65 4.4.16 不明显的联系 65 4.4.17 函数头 66 4.4.18 非公共代码中的Javadoc 66 4.4.19 范例 66 4.5 文献 69 第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 横向格式 79 5.3.1 水平方向上的区隔与靠近 80 5.3.2 水平对齐 81 5.3.3 缩进 82 5.3.4 空范围 84 5.4 团队规则 84 5.5 鲍勃大叔的格式规则 85 第6章 对象和数据结构 87 6.1 数据抽象 87 6.2 数据、对象的反对称性 89 6.3 得墨忒耳律 91 6.3.1 火车失事 91 6.3.2 混杂 92 6.3.3 隐藏结构 92 6.4 数据传送对象 93 6.5 小结 94 6.6 文献 94 第7章 错误处理 95 7.1 使用异常而非返回码 96 7.2 先写Try-Catch-Finally语句 97 7.3 使用不可控异常 98 7.4 给出异常发生的环境说明 99 7.5 依调用者需要定义异常类 99 7.6 定义常规流程 100 7.7 别返回null值 101 7.8 别传递null值 102 7.9 小结 103 7.10 文献 104 第8章 边界 105 8.1 使用第三方代码 106 8.2 浏览和学习边界 107 8.3 学习log4j 108 8.4 学习性测试的好处不只是免费 110 8.5 使用尚不存在的代码 110 8.6 整洁的边界 111 8.7 文献 112 第9章 单元测试 113 9.1 TDD三定律 114 9.2 保持测试整洁 115 9.3 整洁的测试 116 9.3.1 面向特定领域的测试语言 118 9.3.2 双重标准 119 9.4 每个测试一个断言 121 9.5 F.I.R.S.T. 122 9.6 小结 123 9.7 文献 124 第10章 类 125 10.1 类的组织 126 10.2 类应该短小 126 10.2.1 单一权责原则 128 10.2.2 内聚 129 10.2.3 保持内聚性就会得到许多短小的类 130 10.3 为了修改而组织 136 10.4 文献 139 第11章 系统 141 11.1 如何建造一个城市 142 11.2 将系统的构造与使用分开 142 11.2.1 分解main 143 11.2.2 工厂 143 11.2.3 依赖注入 144 11.3 扩容 145 11.4 Java代理 148 11.5 纯Java AOP框架 150 11.6 AspectJ的方面 152 11.7 测试驱动系统架构 153 11.8 优化决策 154 11.9 明智使用添加了可论证价值的标准 154 11.10 系统需要领域特定语言 154 11.11 小结 155 11.12 文献 155 第12章 迭进 157 12.1 通过迭进设计达到整洁目的 157 12.2 简单设计规则1:运行所有测试 158 12.3 简单设计规则2~4:重构 158 12.4 不可重复 159 12.5 表达力 161 12.6 尽可能少的类和方法 162 12.7 小结 162 12.8 文献 162 第13章 并发编程 163 13.1 为什么要并发 164 13.2 挑战 165 13.3 并发防御原则 166 13.3.1 单一权责原则 166 13.3.2 推论:限制数据作用域 166 13.3.3 推论:使用数据复本 167 13.3.4 推论:线程应尽可能地独立 167 13.4 了解Java库 167 13.5 了解执行模型 168 13.5.1 生产者-消费者模型 169 13.5.2 读者-作者模型 169 13.5.3 宴席哲学家 169 13.6 警惕同步方法之间的依赖 169 13.7 保持同步区域微小 170 13.8 很难编写正确的关闭代码 170 13.9 测试线程代码 171 13.9.1 将伪失败看作可能的线程问题 171 13.9.2 先使非线程代码可工作 171 13.9.3 编写可插拔的线程代码 172 13.9.4 编写可调整的线程代码 172 13.9.5 运行多于处理器数量的线程 172 13.9.6 在不同平台上运行 172 13.9.7 装置试错代码 173 13.9.8 硬编码 173 13.9.9 自动化 174 13.10 小结 175 13.11 文献 175 第14章 逐步改进 176 14.1 Args的实现 177 14.2 Args:草稿 183 14.2.1 所以我暂停了 195 14.2.2 渐进 195 14.3 字符串参数 197 14.4 小结 234 第15章 JUnit内幕 235 15.1 JUnit框架 236 15.2 小结 249 第16章 重构SerialDate 251 16.1 首先,让它能工作 252 16.2 让它做对 254 16.3 小结 266 16.4 文献 267 第17章 味道与启发 269 17.1 注释 270 17.2 环境 271 17.3 函数 271 17.4 一般性问题 272 17.5 Java 288 17.6 名称 291 17.7 测试 294 17.8 小结 295 17.9 文献 296 附录A 并发编程II 297 A.1 客户端/服务器的例子 297 A.1.1 服务器 297 A.1.2 添加线程代码 298 A.1.3 观察服务器端 299 A.1.4 小结 301 A.2 执行的可能路径 301 A.2.1 路径数量 302 A.2.2 深入挖掘 303 A.2.3 小结 305 A.3 了解类库 305 A.3.1 Executor框架 305 A.3.2 非锁定的解决方案 306 A.3.3 非线程安全类 307 A.4 方法之间的依赖可能破坏并发代码 308 A.4.1 容忍错误 309 A.4.2 基于客户代码的锁定 309 A.4.3 基于服务端的锁定 311 A.5 提升吞吐量 312 A.5.1 单线程条件下的吞吐量 313 A.5.2 多线程条件下的吞吐量 313 A.6 死锁 314 A.6.1 互斥 315 A.6.2 上锁及等待 315 A.6.3 无抢先机制 315 A.6.4 循环等待 315 A.6.5 不互斥 316 A.6.6 不上锁及等待 316 A.6.7 满足抢先机制 317 A.6.8 不做循环等待 317 A.7 测试多线程代码 317 A.8 测试线程代码的工具支持 320 A.9 小结 320 A.10 教程:完整代码范例 321 A.10.1 客户端/服务器非线程代码 321 A.10.2 使用线程的客户端/服务器代码 324 附录B org.jfree.date.SerialDate 327 结束语 389

2018-01-24

deeplearning英文原版

这本书对各类读者都有一定用处,但我们主要是为两类受众对象而写的。其中 一类受众对象是学习机器学习的大学生(本科或研究生),包括那些已经开始职业 生涯的深度学习和人工智能研究者。另一类受众对象是没有机器学习或统计背景但 希望能快速地掌握这方面知识并在他们的产品或平台中使用深度学习的软件工程师。 深度学习在许多软件领域都已被证明是有用的,包括计算机视觉、语音和音频处理、 自然语言处理、机器人技术、生物信息学和化学、电子游戏、搜索引擎、网络广告和 金融

2018-01-02

计算机文化-[美]June Jamrich Parsons-第15版-中文

计算机文化,了解计算机相关技术的基础入门书籍,值得一看

2018-01-02

Notepad++ sql格式化插件 Poor Man's T-SQL Formatter 1.5.1

Notepad++ sql格式化插件 Poor Man's T-SQL Formatter 1.5.1

2017-07-04

锋利的jQuery(第2版)源码

锋利的jQuery(第2版)源码 第2版不仅在内容方面进行了更新,而且还在上一版的基础上做了大量的修订和扩展。涵盖了如下几个方面。 例子全部改用最新的jQuery库。 例子使用了全新的UI,并且代码更符合语义化。 修订了上一版已发现的所有印刷错误。 增加了jQuery Mobile的章节。 增加了jQuery版本变化的章节。 增加了jQuery性能优化和技巧的章节。

2013-12-29

Linux Shell 编程 入门、提高、精通

第一部分 shell 第1章文件安全与权限 第2章使用find和xargs 第3章后台执行命令 第4章文件名置换 第5章shell输入与输出 第6章命令执行顺序 第二部分文本过滤 第7章正则表达式介绍 第8章grep 家族 第9章AWK 介绍 第10章sed 用法介绍 第11章合并与分割 第12章tr 用法 第三部分登录环境 第13章登录环境 第14章环境和shell变量 第15章引号 第四部分基础shell编程 第16章shell脚本介绍 第17章条件测试 第18章控制流结构 第19章shell 函数 第20章向脚本传递参数 第21章创建屏幕输出 第22章创建屏幕输入 第23章调试脚本 第24章shell嵌入命令 第五部分高级shell编程技巧 第25章深入讨论<< 第26章shell 工具 第27章几个脚本例子 第28章运行级别脚本 第29章cgi 脚本 附录常用shell命令

2013-12-18

SecureCRT_7.0 32位&64;位(含注册机)

最新的SecureCRT 7.0 ,包含32位和64位,内含注册机,亲测可用~

2012-09-18

BTrace实现原理

BTrace整个实现的原理是Java Agent+ASM+Java instrument+ Java Complier Api

2012-08-15

Proteus元件库对应名称

PROTEUS元件库元件名称及中英对照 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAPACITOR 电容 CAPACITOR POL 有极性电容 CAPVAR 可调电容 CIRCUIT BREAKER 熔断丝 COAX 同轴电缆 CON 插口 CRYSTAL 晶体整荡器 DB 并行插口 DIODE 二极管 DIODE SCHOTTKY 稳压二极管 DIODE VARACTOR 变容二极管 DPY_3-SEG 3段LED DPY_7-SEG 7段LED DPY_7-SEG_DP 7段LED(带小数点) ELECTRO 电解电容 FUSE 熔断器 INDUCTOR 电感 INDUCTOR IRON 带铁芯电感 INDUCTOR3 可调电感 JFET N N沟道场效应管 JFET P P沟道场效应管 LAMP 灯泡 LAMP NEDN 起辉器 LED 发光二极管 METER 仪表 MICROPHONE 麦克风 MOSFET MOS管 MOTOR AC 交流电机 MOTOR SERVO 伺服电机 NAND 与非门 NOR 或非门 NOT 非门 NPN NPN三极管 NPN-PHOTO 感光三极管 OPAMP 运放 OR 或门 PHOTO 感光二极管 PNP 三极管 ... ...

2010-09-07

Proteus快速入门

Proteus轻松入门 子情境1:简单实例助你快速掌握PROTEUS的用法 12 1.1 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。 15 1.2 子情境目标: 15 1.3 子情境步骤 15 1.3.1步骤一: PROTEUS电路设计 15 1.3.2步骤二:源程序设计与生成目标代码文件 20 (1)程序流程图 20 (2)源程序设计 21 1.3.3 步骤三:PROTEUS仿真 22 1.4 扩展练习 24 子情境二:用发光二极管实现流水灯乒乓球效果 25 2.1 子情境目标: 25 2.2 子情境步骤 25 2.2.1 步骤一: PROTEUS电路设计 25 2.2.2步骤二:源程序设计与目标代码文件生成 26 (1)程序流程图 26 (2)源程序设计 27 2.2.3 步骤三:PROTEUS仿真 29 2.4 扩展练习 29 子情境三:数码管动态扫描 30 3.1子情境内容:利用动态扫描让四位数码管稳定的显示1234。 30 3.2 子情境目标: 30 (1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电 30 3.3 知识点链接 30 3.4 任务步骤 31 3.4.1 步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图5-17所示。 31 3.4.2 步骤二:源程序设计与目标代码文件生成 33 (1)程序流程图 33 (2)源程序设计 33 3.4.3 步骤三:PROTEUS仿真 35 3.5 扩展练习 36 子情境四:定时/计数器的使用——方波发生器 37 4.1子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。 37 4.2 子情境目标: 37 4.3 知识点链接 37 4.4.1 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图5-22所示。 37 (1)程序流程图 38 (2)源程序设计 38 4.4.3 步骤三:PROTEUS仿真 39 4.5 扩展练习 41 子情境五:单片机外部中断仿真 42 5.1子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。 42 5.2 子情境目标: 42 (1)理解单片机的中断原理及中断过程 42 (2)用PROTEUS设计、仿真单片机的外部中断。 42 5.3 知识点链接 42 5.4 任务步骤 42 5.4.1 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图 42 5.4.2 步骤二:源程序设计与目标代码文件生成 43 (1)程序流程图 43 (2)源程序设计 43 5.4.3 步骤三:PROTEUS仿真 45 5.5 扩展练习 47 主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。 47 子情境六:直流电机正反转 48 6.1子情境内容:用单片机AT89C51控制直流电机正反转。 48 6.2 子情境目标: 48 (1)掌握趋动电机正反转的电路 48 (2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真 48 6.3 知识点链接 48 6.4 任务步骤 48 6.4.1 步骤一:PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图 48 6.4.2 步骤二:源程序设计与目标代码文件生成 50 (1)程序流程图 50 (2)源程序设计 51 6.4.3 步骤三:PROTEUS仿真 52 6.5 扩展练习 53 子情境七:用ADC0809实现电压表 55 7.1子情境内容:利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。 55 7.2 子情境目标: 55 (1)掌握PROTEUS中电压探针和电压表的使用方法 55 (2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。 55 7.3 知识点链接 55 了解ADC0809芯片的功能以及使用方法 55 (1)功能:ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0~IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。 55 (2)使用方法:28脚双列直插式封装如图5-39所示,各引脚功能如下: 55 7.4 任务步骤 56 7.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图5-40所示。 56 7.4.2 步骤二:源程序设计与目标代码文件生成 58 (1)程序流程图 58 (2)源程序设计 59 7.4.3 步骤三:PROTEUS仿真 62 7.5 扩展练习 66 子情境八:1602液晶显示器 67 8.1子情境内容:利用单片机AT89C52控制液晶显示器(Liquid Crystal Display,简称为LCD)实时显示。在1602液晶的第一行显示“I LOVE MY FAMILY”,在第二行显示“WWW.YZCIT.CN”。 67 8.2 子情境目标: 67 (1)掌握1602液晶与单片机的接口电路 67 (2)通过控制LCD,学会LCD液晶模块在单片机应用系统中的编程方法。 67 8.3 知识点链接 67 了解LCD1602芯片的功能以及使用方法 67 (1)功能:本情境中所使用的液晶显示器型号为1602,意思是每行显示16个字符,一共可以显示两行。此液晶只能显ASCII字符,如数字、大小写字母、各种符号等。 67 (2)使用方法:1602液晶的引脚图 67 8.4 任务步骤 68 8.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52控制液晶显示器实时显示的原理图如图5-46所示。 68 8.4.2 步骤二:源程序设计与目标代码文件生成 69 (1)程序流程图 69 (2)源程序设计 69 8.4.3 步骤三:PROTEUS仿真 71 8.5 扩展练习 72 子情境九:简易秒表制作 73 9.1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。 73 9.2 子情境目标: 73 (1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路 73 (2)学习定时/计数器、中断技术的综合运用并会使用简易键盘 73 9.3 知识点链接 73 9.4 任务步骤 73 9.4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。 73 9.4.2 步骤二:源程序设计与目标代码文件生成 74 (1)程序流程图 74 (2)源程序设计 76 9.4.3 步骤三:PROTEUS仿真 79 9.5 扩展练习 81 此子情境设计的秒表只能显示两位整数,如果要记录110跨栏12:88秒的成绩,则必须再增加两位数码管来显示小数位。想想硬件和软件应该做如何改动。 81 子情境十:点阵LED简单图形显示技术 82 10.1子情境内容:利用单片机AT89C52在8×8点阵上逐次显示心形、圆形和菱形图。 82 10.2 子情境目标: 82 (1)通过学习点阵LED显示技术,掌握单片机与点阵的接口电路。 82 (2)进一步熟悉单片机I/O口的运用方法,了解动态显示的编程方法 82 10.3 知识点链接 82 10.4 任务步骤 83 10.4.1 步骤一:PROTEUS电路设计,LED点阵的原理图如图5-56所示。 83 10.4.2 步骤二:源程序设计与目标代码文件生成 84 (1)程序流程图 84 (2)源程序设计 85 10.4.3 步骤三:PROTEUS仿真 87 10.5 扩展练习 88

2010-09-07

计算机硬件实习报告+计算机组装与维护

计算机硬件实习报告和计算机组装与维护要领

2010-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除