电子书 编程

基于对象的 Go 语言编程(英文版电子书)

¥1.00 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

第一部分:基于对象的 Go 编程实现 1. 面向对象开发基础 程序生命周期:包含系统分析、系统架构、用户手册、构建四个核心阶段。 系统分析:识别系统中的对象,确定自动化范围及计算机化对系统结构的影响。 系统架构:将系统分解为组件,遵循强内聚、低耦合原则,严格分离组件的规格说明与实现。 用户手册:描述系统外部行为及操作方式,包括对象在屏幕的表示形式和系统操作的输入与命令。 构建:包括组件的规格说明、实现以及系统集成。 基于对象的系统架构优势:在规格说明上,虽许多编程语言缺乏语法支持来保障前提条件和效果,但代数规格说明是理想形式;在实现上,确保了可理解性、清晰度等,且支持实现的替换。 2. Go 语言特性 Go 的定位:既可以说是面向对象语言,也可以说不是,其支持不同抽象层次的编程。 安装相关:可在官网获取编译器等,安装时需设置环境变量,相关文件可从指定网址下载。 包(Packages): 分为程序包(实现可执行程序)和库包(为其他包提供服务)。 库包可分布在多个文件,有导出机制、初始化部分,还可嵌套。 包的导入和导出有简单的语法规则,导出标识符以大写字母开头。 变量与语义: 具体数据类型包括原子数据类型、数组、切片等,变量声明会分配内存空间。 抽象数据类型在 Go 中以接口形式定义,抽象变量本质是引用,其类型大小为处理器的地址宽度,需显式创建。 区分值语义和引用语义,在赋值、相等性检查、序列化等方面表现不同。 3. 微宇宙(Microuniverse) 安装:源码可从指定网址获取,安装需满足 Linux 操作系统、Go 已安装等前提条件,遵循特定许可条款,有统一的命名规则。 核心包与接口: 构造函数 New 用于创建对象。 对象包(obj)包含 Equaler、Comparer 等多个接口,分别用于对象的相等性检查、比较等操作。 输入输出:涉及屏幕、键盘、编辑器等相关包,提供了多种输入输出操作的方法。 对象集合:包括 Collector、Seeker 等接口及序列、栈、缓冲区等具体实现,用于管理对象的集合。 其他数据类型:还包括多种数字类型、常见类型、图形相关类型等。 第二部分:项目实践 4. 教学项目概述 教学项目特点:与商业 IT 系统开发有诸多不同,如处于教学和学习情境、参与者角色多样等。 各阶段要点:系统分析需限制在一定范围内;系统架构遵循前面提到的原则;用户手册要明确数据对象语义和访问操作等。 5. Robi 项目 项目目标:通过简单的 Robi 语言,实现从函数式到命令式范式的平滑过渡,介绍结构化编程等概念。 系统分析:Robi 是一个在矩形世界中活动的 “机器人”,可执行转向、移动等操作,能处理积木、标记方块等。 Robi 语言:包含语句、谓词、计数函数以及复合指令。 系统架构:较为扁平,有一个抽象数据类型机器人和包 robi 中的抽象数据对象。 用户手册:有 Robi 编辑器、Robi 协议、Robi-Sokoban、Robot Race 等程序,介绍了各自的操作方法。 构建:给出了机器人包 rob 和 robi 的规格说明。 练习:包括 “顺从的守卫” 问题和在迷宫中寻找积木等,要求给出无变量和递归的实现,以及迭代版本。 6. 日程日历(Appointment Calendar) 项目目标:创建个人日程安排程序,实现约会的录入、修改等功能,并能通过关键词搜索约会。 系统分析:识别出日历页、日属性、约会序列和约会、年度日历、月度和周度日历、约会日历等对象。 系统架构:包含多个包,如 day、clk 等,各包有依赖关系,形成组件层次结构。 用户手册:包括格式说明(如日历日期、时间等的格式)和系统操作(如屏幕循环切换、不同日历的操作等)。 构建:给出了相关包的规格说明。 7. 生命游戏(Life) 项目内容:包括 John Conway 的生命游戏和狐狸、野兔和植物的捕食者 - 猎物系统。 系统分析:生命游戏中细胞遵循特定生存规则;生态系统中狐狸、野兔和植物有各自的生存和相互作用规则。 系统架构:包含 life 包及子包 species 和 world,依赖一些微宇宙中的包。 用户手册:生命形式以小图标表示在屏幕上,程序操作包括系统选择、世界定义、世界编辑器等。 构建:给出了物种包和世界包的规格说明及实现相关内容。 8. Go 寄存器机(The Go Register Machine) 项目意义:寄存器机是介绍可计算性概念的合适机器模型,与图灵机等价,其编程语言简单但能解决复杂任务。 系统分析:寄存器机包括数据存储(寄存器和栈存储)、程序存储等组件,程序执行遵循特定规则。 指令系统:有赋值、修改、跳转等多种指令,各指令有特定的功能和前提条件。 用户手册:Go-RM 程序是 Go 程序,需遵循其语法要求,程序翻译和运行有特定命令,插入注释有助于程序正确性的证明。 构建:寄存器包是微宇宙的一部分,给出了其规格说明和实现。 练习:要求实现多种函数并进行测试。 9. 电子笔(The Electronic Stylus) 项目特点:最初是测试程序,后来选择 “二维图形” 作为对象,适合辅助黑板书写,有其优缺点。 系统分析:能管理多种图形,可对电子白板执行创建、修改等多种操作。 程序启动与操作:遵循人体工程学原则,主要使用少数按键操作,程序启动后可进行新图形的创建等操作。 系统架构:主要组件是带有事件控制的主程序 epen.go,使用了微宇宙中的多种数据类型。 构建:最重要的包是二维图形包,给出了其规格说明。 10. Mini 项目 项目目标:作为单地址机器的简单模型,介绍 imperative 编程的基本概念,具有图灵完备性。 系统分析:单地址机器包括处理器、数据存储、程序存储等组件,程序执行有特定机制。 指令系统:有存储、计算操作、比较等多种指令,各指令有特定功能。 用户手册:Mini 是模拟执行 mini 程序的程序,变量和标签有命名约定,程序操作使用特定按键。 构建:包括 prog、line、reg 三个包,给出了其规格说明。 练习:要求开发 mini 程序计算多种内容。 11. 书籍管理(Books) 项目目标:作为持久索引集的简单应用,管理书籍库存。 系统分析:每本书需记录领域、作者等数据,提供三种排序方式。 系统架构:包含多个对象,对应多个包,各包有依赖关系。 用户手册:介绍了程序的操作方法,如滚动浏览、修改条目等。 构建:给出了所用数据类型的规格说明。 12. Inferno 项目 项目目标:是书籍项目的抽象,用于管理任意可配置的数据集,可基于索引查找数据集,操作简单。 系统分析:基本组件包括掩码、分子、分子结构和原子,原子有多种类型。 系统架构:包含多个包,如 mol、stru 等,各包有依赖关系。 用户手册:包括 Inferno 程序的构建(确定窗口大小、创建掩码、构建分子结构)和系统操作(程序调用后的各种操作)。 构建:介绍了分子、结构、原子等相关包的规格说明和实现。 13. 林登迈耶系统(Lindenmayer Systems) 项目背景:1968 年由 Aristid Lindenmayer 创建,用于描述生物学中的发育过程,结合计算机图形学可用于植物建模等。 系统分析:涉及字母表、语言、语法等基本概念,L - 系统的语法有特定形式,其图形解释有相应规则。 图形解释示例:包括科赫岛、岛屿和湖泊、铺砌、空间填充曲线等多个例子。 系统架构:核心部分是语法和构建 L - 系统过程中的持续状态,有相应的对象和包。 用户手册:包括 L - 系统的创建和系统操作方法。 构建:介绍了相关库包的规格说明和实现。 这些项目涵盖了不同的应用场景,展示了基于对象的编程在 Go 语言中的实践应用,结合了理论知识和实际开发,有助于读者深入理解和掌握基于对象的 Go 编程。