现代C++ 教程:高速上手C++11/14/17/20
现代 C++ 教程:高速上手 C++11/14/17/20 欧长坤 (hi[at]changkun.de) 最后更新 2023 年 5 月 7 日- ff6ee89 注意 此 PDF 的内容可能过期,请检查本书网站以及 GitHub 仓库以获取最新内容。 版权声明 本书系欧长坤著,采用“知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND)”进 行许可 本书一定程度上介绍了一些现代 C++ 的黑魔法,但这些魔法毕竟有限,不适合希望进阶学习现代 C++ 的读者,本书的定位系现代 C++ 的快速上手。当然,希望进阶学习的读者可以使用本书来 回顾并检验自己对 现代 C++ 的熟悉度。 本书目的 本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全 面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些0 码力 | 83 页 | 2.42 MB | 1 年前3《TensorFlow 2项目进阶实战》2-快速上手篇:动⼿训练模型和部署服务
TensorFlow 2 项目实战进阶 扫码试看/订阅 《TensorFlow 2 项目进阶实战》视频课程 快速上手篇:动⼿训练模型和部署服务 • TensorFlow 2 开发环境搭建 • 使用 tf.keras.datasets 加载数据 • 使用 tf.data.Dataset 加载数据 • 使用 tf.keras.Model 管理模型 • Fashion MNIST 数据集介绍0 码力 | 52 页 | 7.99 MB | 1 年前3Zadig 面向开发者的云原生 DevOps 平台
Rancher 上手动替换版本 3. 不透明的测试环境导致大量问题 4. 为每一次部署维护一个 Chart 版本 现状 效能提升场景: 2K+ 微服务、多语言、 Helm 、 K8s 多集群 1. 开发流程 提交代码到 Feature 分支 -> GitLab-CI 自动构建打包 Chart (写一堆复杂 的脚本 ) -> -> Rancher 上手动替换 Helm 自动构建打包 Chart (还是那堆复杂的脚 本) -> -> Rancher 上手动替换 Helm Chart 版本 -> 自动化 / 手工测试 3. 上线流程 合并 master -> GitLab-CI 自动构建打包 Chart -> Rancher 上手动替换 Helm Chart 版本 工具链: • GitLab (源码 + 服务 效能提升场景: 2K+ 微服务、多语言、 Helm 、 K8s 多集群 1. 维护成本高昂 2. 交付效率低下 3. Chart 版本管理混乱 1. 一堆复杂的脚本 2. Rancher 上手动替换版本 3. 测试环境不透明,总出问题 4. 每次部署都需要产生一个 Chart 版 本 效能提升场景:现状的痛点分析 效能提升场景: 2K+ 微服务、多语言、 Helm0 码力 | 59 页 | 81.43 MB | 1 年前3Zadig 面向开发者的云原生 DevOps 平台
维护大量复杂的脚本 2. 在 Rancher 上手动替换版本 3. 不透明的测试环境导致大量问题 4. 为每一次部署维护一个Chart 版本 现状 效能提升场景:2K+微服务、多语言、Helm、K8s 多集群 1. 开发流程 提交代码到 Feature 分支 -> GitLab-CI 自动构建打包 Chart (写一堆复杂的 脚本 )-> -> Rancher 上手动替换 Helm Chart 版本 develop -> GitLab-CI 自动构建打包 Chart (还是那堆复杂的脚本)- > -> Rancher 上手动替换 Helm Chart 版本 -> 自动化/手工测试 3. 上线流程 合并 master -> GitLab-CI 自动构建打包 Chart -> Rancher 上手动替换 Helm Chart 版本 工具链: • GitLab (源码 + 服务 Chart 配置) 关联到开发工作流中,为开发提供自动化验证保障 效能提升场景:2K+微服务、多语言、Helm、K8s 多集群 1. 维护成本高昂 2. 交付效率低下 3. Chart 版本管理混乱 1. 一堆复杂的脚本 2. Rancher 上手动替换版本 3. 测试环境不透明,总出问题 4. 每次部署都需要产生一个 Chart 版本 效能提升场景:现状的痛点分析 效能提升场景:2K+微服务、多语言、Helm、K8s 多集群 使用0 码力 | 59 页 | 23.57 MB | 1 年前3金卫-Apache APISIX 借助 Service Mesh 实现统一技术栈的全流量管理
落地成本低 动态且增量配置 安全管控 可观测 流量精细化管理 跨集群部署 性能损耗低 资源消耗低 按需下发配置 理想的服务网格 整体使用体验上 • 学习和上手成本低 • 社区开放、活跃度高 且快速响应 理想的服务网格 控制面 • 易于上手 • 权限安全管控 • 配置方式被大众接受 理想的服务网格 数据面 • 支持多种协议,甚至是自定义协议 • 性能损耗低 • 资源占用在可控范围 • 启动速度快 74.30ms CPU 50% 100% 降低 Sidecar 资源占用 按需下发配置 配置本身的精简 资源占用降低了 60% 较低的学习/维护成本 APISIX 丰富的文档,快速上手 抽象出来的网关对象通俗易懂 源码基于 lua 易学易懂 二次开发相比 C++ 要简单许多 强大的扩展/定制化能力 配合CRD进行扩展,更灵活 更原生 不侵入Istio原有配置 支持自定义插件,并且快速集成 支持多语言开发 golang python java wasm ...... 满足多协议的需求 APISIX Service Mesh 上手成本低 开发及扩展相当容易 性能优(尤其是多路由场景) 生态丰富,80+ 插件开箱即用 兼容 xDS,方便迁移 自定义 CRD ,增量推送策略 支持多协议 https://github0 码力 | 34 页 | 3.50 MB | 6 月前3Linux Lab v1.1 中文手册
. . . . . 22 2.7 更新实验环境并重新运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.8 快速上手:启动一个开发板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3. Linux Lab 入门 25 3.1 使用开发板 • 《360° 剖析 Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 configs/linux-lab/docker/name 之后重新运行 Linux Lab 即可,如果有新的镜像,会自动启用: 1 $ tools/docker/rerun linux-lab 2.8 快速上手:启动一个开发板 进入实验环境,切换目录: 1 $ cd /labs/linux-lab 输入如下命令,在缺省的 vexpress-a9 开发板上启动预置的内核和根文件系统: 1 $ make0 码力 | 70 页 | 1.53 MB | 1 年前3Linux Lab v1.3 中文手册
. . . . . 23 2.7 更新实验环境并重新运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8 快速上手:启动一个开发板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3. Linux Lab 入门 26 3.1 使用开发板 • 《360° 剖析 Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 configs/linux-lab/docker/name 之后重新运行 Linux Lab 即可,如果有新的镜像,会自动启用: 1 $ tools/docker/rerun linux-lab 2.8 快速上手:启动一个开发板 进入实验环境,切换目录: 1 $ cd /labs/linux-lab 输入如下命令,在缺省的 vexpress-a9 开发板上启动预置的内核和根文件系统: 1 $ make0 码力 | 73 页 | 1.54 MB | 1 年前3Linux Lab v1.2 中文手册
. . . . . 23 2.7 更新实验环境并重新运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8 快速上手:启动一个开发板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3. Linux Lab 入门 26 3.1 使用开发板 • 《360° 剖析 Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 configs/linux-lab/docker/name 之后重新运行 Linux Lab 即可,如果有新的镜像,会自动启用: 1 $ tools/docker/rerun linux-lab 2.8 快速上手:启动一个开发板 进入实验环境,切换目录: 1 $ cd /labs/linux-lab 输入如下命令,在缺省的 vexpress-a9 开发板上启动预置的内核和根文件系统: 1 $ make0 码力 | 73 页 | 1.53 MB | 1 年前3Java 应用与开发 - MVC 和框架初步
Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪, 可读性非常差。一个 JSP 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪, 可读性非常差。一个 JSP 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪, 可读性非常差。一个 JSP 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编0 码力 | 51 页 | 837.26 KB | 1 年前3基于 Java EE 的企业应用系统设计 - Spring MVC 01
Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写0 码力 | 67 页 | 792.43 KB | 1 年前3
共 187 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19