Rust 程序设计语言简体中文版## Rust 程序设计语言 简体中文版 ## 目录 Rust 程序设计语言 ..... 5 前言 ..... 6 简介 ..... 7 1. 入门指南 ..... 11 1.1. 安装 ..... 12 1.2. Hello, World! ..... 15 1.3. Hello, Cargo! ..... 19 2. 写个猜数字游戏 ..... 23 3. 常见编程概念 采用测试驱动开发完善库的功能 ..... 293 12.5. 处理环境变量 ..... 304 12.6. 将错误信息输出到标准错误而不是标准输出 ..... 316 13. Rust 中的函数式语言功能:迭代器与闭包 ..... 318 13.1. 闭包:可以捕获其环境的匿名函数 ..... 319 13.2. 使用迭代器处理元素序列 ..... 329 13.3. 改进之前的 I/O Traits 的可扩展并发 ..... 433 17. Rust 的面向对象编程特性 ..... 435 17.1. 面向对象语言的特点 ..... 436 17.2. 顾及不同类型值的 trait 对象 ..... 440 17.3. 面向对象设计模式的实现 ..... 446 18. 模式与模式匹配 ..... 462 18.1. 所有可能会用到模式的位置 ..... 4630 码力 | 600 页 | 12.99 MB | 2 年前3
PHP 语言程序设计 实验指导书(v1)杨亮 《PHP语⾔程序设计》天津商业大学信息工程学院 # PHP 语言程序设计 实验指导书(v1) 杨亮 2015年3月1日 ## 目录 实验 1:HTML 的基本使用 ..... 2 实验 2:CSS 与 JavaScript 的基本使用 ..... 3 实验 3:PHP 变量、控制结构与函数 ..... 4 实验 4:表单与 PHP 输入输出 ..... 5 实验 5:命令行下使用 MySQL0 码力 | 10 页 | 269.02 KB | 2 年前3
Curve设计要点02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ## 背景 • 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) 去中心节点设计在集群不均衡的情况下需要人工运维 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务 01 背景 为何从0到1开发Curve 02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 [Image](/uploads/documents/0/9/e/3/09e38610ff888e0fd1b2626578fba41c/p20_3.jpg) 01 背景 为何从0到1开发Curve 02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ##0 码力 | 35 页 | 2.03 MB | 1 年前3
Node 的设计错误## Node 的设计错误 Ryan Dahl JS Conf 柏林 2018.06 ## 背景: 1. 基于最初的开发,我创建了并管理 Node。 2. 我的主要关注目标是事件驱动的 HTTP server。 3. 这一主要目标对当时服务器端的 JavaScript 起着关键作用。即使在当时这一点不那么明显,但是服务器端 JS 的成功需要事件循环的助力。 ## 背景: 2012 年我离开 但我错了...因为还有许多问题仍待解决..... ## 使得 Node 保持增长的几项关键工作 1. NPM(Isaac 开发)将核心 Node 库解耦并允许生态系统的分布。 2. N-API 是设计精美的绑定API。 3. Ben Noordhuis 和 Bert Belder 构建了 libuv。 4. Mikeal Rogers 组织了管理活动和社区。 5. Fedor Indutny Trott, Michael Dawson, James Snell 六个月前,我才再次开始使用 Node。 在这期间,我关注的目标发生了变化。 动态语言是科学计算的正确工具,通常你会用它进行快速的一次性计算。 而 JavaScript 就是最好的动态语言。 但是相反,现在我将会抱怨 Node 的所有缺点。 当你是某个项目的负责人时,你总是很难发现其中的错误。 有时 Node 对我来说就像是板上钉钉的事。0 码力 | 28 页 | 767.84 KB | 2 年前3
CurveFS方案设计CurveFS方案设计(总体设计,只实现了部分) |时间|修订人|修订内容| |---|---|---| |2021-03-23|李小翠|初稿(背景,调研,架构设计)| |2021-03-30|李小翠|增加快照部分| |2021-04-13|李小翠、陈威|补充元数据数据结构| |2021-04-19|李小翠、吴汉卿、许超杰等|补充文件空间分配,讨论与确认| 背景 • 调研 • 开源fs • • 性能对比 • 可行性分析 方案对比 • 对比结论 • 架构设计 卷和文件系统 元数据架构 文件系统快照 • 方案一:文件/目录级别快照 • 方案二:文件系统快照 • 关键点 - 元数据设计 - 数据结构 - 索引设计 - 文件空间管理 - 开发计划及安排 ## 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文 ephfs,理论上分析这个结果是合理的,分布式的元数据设计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? ## 可行性分析 ## 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: ### 1. CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用有目录层级的 namespace 方式,namespace0 码力 | 14 页 | 619.32 KB | 1 年前3
CurveFS Client 概要设计CurveFS Client 概要设计(已实现) 背景 - 概述 - 关键接口分析 - init - destroy - lookup - write - read • open • create & mknod • mkdir • forget • unlink • rmdir • opendir • readdir - 其他 功能分析 · 模块划分 · 接口设计 · Cache设计 |时间|作者|内容| |---|---|---| |2021-04-27|许超杰|初稿| |||| |||| |||| ## 背景 CurveFS初步设计见 CurveFS方案设计(总体设计,只实现了部分),目前需细化Client端设计 ## 概述 CurveFS client 向上提供两层接口,分别是 (fuse req t req, fuse ino t ino, fuse ino t newparent, const char *newname); - 这个涉及到下文中“重要问题讨论”,目前暂时无法设计 硬链接相关目前可先不实现。 ## flush & fsync ■ 缓存的问题暂时先不考虑太细,目前默认数据和元数据直接存储到底层,这两个也可先不实现 ## 其他 ■ xattr系列0 码力 | 11 页 | 487.92 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第一课 课程介绍与程序设计## 01 课程介绍与程序设计 ▶ Zihang Ye, Hongbo Zhang, DII课程组 ## 01 ## 致谢 本课程参考宾夕法尼亚大学CIS1200课程设计 ## 什么是现代编程思想课 · 这是一门程序设计课 ○ 课程受众:所有编程爱好者 • 实用技巧 ◦ 编写较大型程序(~10,000行) ☐ 独立分析解决问题 ☐ 测试驱动开发与设计 ## • 概念基础 ☐ 多种编程范式 ☐ 关注模块化和组合性 ## 课程工具 • MoonBit月兔 ○ 现代静态类型多范式编程语言 语法轻量,易上手 ◦ 浏览器开发环境、云原生开发环境或本地集成开发环境 ## 课程概览 |课程|主题|课程|主题| |---|---|---|---| |1|课程介绍与程序设计|10|接口:集合与表| |2|面向值编程|11|Optional / 结构体 / Unit, Sequencing |9|高阶函数:Transform与Fold|18|案例:自动积分与小游戏| • 所有课程资料均在互联网上公开 - 课程论坛:taolun.moonbitlang.cn ## 程序设计 ## 基础设计流程 ## 设计是将非正式的规范转化为可运行代码的过程 推荐采用由测试驱动的开发流程 ### 1. 理解问题 涉及哪些概念,它们之间存在怎样的联系? 2. 定义接口 程序应当如何与环境互动?0 码力 | 15 页 | 2.01 MB | 2 年前3
Idris 语言文档 Version 1.3.1# 飞 Idris 语言文档 Version 1.3.1 ## Contents 1 Idris 教程 2 常见问题解答 (FAQ) 3 用 Idris 实现带有状态的系统:ST 教程 4 The Effects Tutorial 5 Theorem Proving 6 Language Reference 7 Tutorials on the Idris Language mmons.org/publicdomain/zero/1.0/deed.zh Idris 教程 本文档为 Idris 的教程,它简单介绍了如何用 Idris 语言编程。文档中覆盖了该语言的核心特性,并假定你至少熟悉一门函数式编程语言,如 Haskell 或 OCaml。 注解:Idris 文档已按照 创作共用 CC0 许可协议 发布。因此根据法律规定,Idris 社区 已放弃对 Idris 文档的所有版权以及相关或邻接的权利。 文档的所有版权以及相关或邻接的权利。 关于 CC0 的更多信息参见:https://creativecommons.org/publicdomain/zero/1.0/deed.zh ### 1.1 引言 在传统编程语言中,类型与值之间有明确的区分。例如在 Haskell 中,下面这些类型分别表示整数、字符、字符列表以及任意值的列表: • Int, Char, [Char], [a] 与此对应,下面这些值分别为上述类型的成员:0 码力 | 224 页 | 2.06 MB | 2 年前3
Go语言基础
Golang Fundaments## Go语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn ## 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 ## Golang-设计哲学 ## 我们需要什么样的语言 曾经 我们对包含大量代码的程序印象深刻。 - 我们努力在代码库中创建大型抽象。 渴望成为质量、效率和简单的冠军。 • 有自己的观点。 • 重视反省和自我检讨。 ## Go语言应该是这样的 · 易于阅读代码 - 对遗存软件友好 • 心智模型 • 生产率与性能 • 正确性与性能 • 规则 • 方便代码评审 - 完整性 - 可读性 - 简单性 - 性能 - 微优化 ## Golang-设计哲学 面向数据的设计(Data-Oriented Design) “数据占主导地位。如果 接口和组合设计(Interface And Composition Design) - 接口赋予程序结构。 - 接口鼓励通过组合进行设计。 - 接口使得并强制清晰划分组件职责。 - 接口的标准化可以建立清晰和一致的期望。 • 面向包的设计(Package-Oriented Design) • 并发软件设计(Concurrent Software Design) • 管道设计(Channel0 码力 | 21 页 | 851.30 KB | 2 年前3
PlantUML 1.2021.3 语言参考指引绘制的 UML  PlantUML 语言参考指引 (Version 1.2021.2) PlantUML 是一个开源项目,支持快速绘制: · 时序图 • 用例图 类图 • 对象图 · 活动图 · 组件图 · 部署图 • 架构图 规范和描述语言 (SDL) - 规范和描述语言 (SDL) • Ditaa diagram 甘特图 • MindMap diagram • Work Breakdown Structure diagram • 以 AsciiMath 或 JLaTeXMath 符号的数学公式 • Entity Relationship diagram 通过简单直观的语言来定义这些示意图。 ## "action 2" endif a3 --> if "last test" then --> "action 7" else PlantUML 语言参考指引 (1.2021.2) -> "action 8" endif @enduml 












