原标题:TypeScript入门与全栈式网站开发教与学(教学大纲+教学进度表)

教学大纲

01

课程基本信息

02

课程简介

Type 是由微软开发的、基于Java 的开源编程语言。目前,Type 已在前端领域占据重要地位, 得到了广泛运用和开发市场的普遍认可。TypeScrip可应用予前端开发, 甚至实现后端开发。

本课程分三个部分12 章来学习Type语言。第一部分为基础篇, 包含Type 开发入门、基础语法、面向对象、包装类和集合类型; 第二部分为进阶篇, 包含Type 语法进阶、名称空间和模块、类型声明文件; 第三部分为实战案例篇, 为巩固知识和提升Type开发实践技能, 准备了4 个案例项目: 使用 Puppeteer 框架爬取图书信息、将图书信息保存至 MongoDB、实现后端RESTful API 服务、 实现前端Vue应用。

03

课程目标

1. 课程思政目标:树立正确的人生观、价值观、事业观、技术观,形成良好的开发习惯,培养团队开发和协同工作的意识,提高沟通能力和自我表达能力。具有软件工程师的基本素质,良好的编码能力、自觉的规范意识和团队精神、正确的价值取向、科技报国的社会责任感、探索未知终身学习的意识、精益求精的工匠精神。

2. 知识与能力目标:本课程使学生能够在零基础基础上,了解编程及项目开发的基本概念,掌握Type语法、Puppeteer 框架、Mongoose模块、Express.js、Vue3等相关技术,能应用相关技术从事简单应用的开发,为将来企业级全栈开发应用的实现奠定坚实的基础。

3. 要求学生在案例学习的基础上,分小组完成大作页项目的开发。在此过程中可锻炼学生的项目开发能力,体验软件的实施、协作过程。对领悟设计思想、强化训练技巧的能力也将大幅提升。

04

课程内容与教学要求

第一章 开发入门

(一)课程内容

Java语言的优缺点、Java与Type的关系、Type语言的优点、搭建Type开发环境。

(二)教学要求

了解:Java语言的优缺点、Type语言的优点

理解:Java与Type的关系

掌握:搭建Type开发环境

重点:整体Type开发环境的搭建

第二章 基础语法

(一)课程内容

注释、标识符、关键字、基础类型、变量、常量、操作符、分支语句、循环语句和循环函数、跳转、函数。

(二)教学要求

掌握:基础类型、变量、操作符、分支语句、循环语句、循环函数、跳转、函数

重点:分支语句、循环语句、函数

难点:基础类型繁杂、循环函数、递归函数、箭头函数、回调函数

第三章 面向对象

(一)课程内容

类和对象的基本概念、类结构、属性、成员函数、访问器、构造函数、创建对象、继承语法、单继承、函数覆盖与多态、this与super、抽象类、定义接口、接口实现类等一系列知识和概念。

(二)教学要求

理解:类、对象的基本概念,继承、覆盖、多态的概念和使用场合,抽象类和接口概念和作用

掌握:类的设计,对象的创建,继承、覆盖、多态相关语法,关键字this和super的使用,接口的定义和使用

重点:类的设计、对象的创建和继承

难点:多态

第四章 包装类

(一)课程内容

Boolean、Number、String、正则表达式。

(二)教学要求

理解:Boolean、Number、String包装类型的使用场合,正则表达式作用

掌握:Boolean、Number、String包装类型的使用,正则表达式的常见应用

重点:String包装类型的使用

难点:正则表达式

第五章 集合类型

(一)课程内容

数组、元组、Set、Map类型,集合类型间的转换。

(二)教学要求

理解:数组、元组、Set、Map类型的使用的使用场合,数组、元组、Set、Map类型间可进行转换

掌握:组、元组、Set、Map类型的使用,数组、元组、Set、Map类型间的转换

难点:数组、元组、Set、Map类型的使用有些繁杂

重点:数组、元组、Map类型的使用

第六章 语法进阶

(一)课程内容

解构与展开、访问修饰符和只读修饰符、修饰器及修饰工厂,接口兼容性、类兼容性、函数兼容性,联合、交叉、别名、推断、断言、泛型,泛型类、泛型约束、索引签名约束,错误处理,异步处理。

(二)教学要求

理解:解构与展开的使用场合,访问修饰符和只读修饰符的作用,各类修饰器及修饰工厂,类型不一致时,需要进行兼容性处理,类型操作的作用,约束的作用和使用场景,错误的概念,异步处理的概念,以及2种异步处理编程写法的特点

掌握:解构与展开的使用代码,访问修饰符和只读修饰符的使用代码,兼容性代码,类型操作相关代码,约束代码,处理错误的try catch finally语法,异步处理的Promise写法和async+await写法

难点:修饰器的定义和使用,理解和使用兼容性,泛型定义和使用,异步处理概念和应用

重点:解构与展开,接口兼容性、类兼容性、联合、交叉、别名、推断的使用,处理错误的try catch finally语法、异步处理的Promise写法和async+await写法

第七章 名称空间和模块

(一)课程内容

定义名称空间和导出资源、名称空间嵌套、跨文件访问名称空间内资源、普通脚本资源全局可见、模块导出默认资源、模块导出多个资源、同时导出默认资源和普通资源、导入变量的只读特征、导出导入的其他语法、CommonJS规则下模块的导出导入

(二)教学要求

理解:名称空间和资源的导入和导出在项目中的作用

掌握:定义名称空间,导出导出资源,跨文件访问资源,CommonJS规则下模块的导出导入

难点:同时导出默认资源和普通资源

重点:定义名称空间和导出导入资源

第八章 类型声明文件

(一)课程内容

获取内置API的类型声明文件、获取常用第三方JS库的类型声明文件、对Java文件的直接支持、为.js文件编写类型声明文件

(二)教学要求

理解:声明文件的作用

掌握:获取内置API的类型声明文件,获取常用第三方JS库的类型声明文件的写法,对Java文件的直接支持写法,为.js文件能编写自定义的类型声明文件

难点:为.js文件能编写自定义的类型声明文件

重点:为.js文件能编写自定义的类型声明文件

第九章 使用Puppeteer框架爬取书籍信息

(一)课程内容

演示:用Type语言调用Puppeteer框架API,对清华大学出版社网站新书推荐书籍信息进行爬取。然后调用Node.js内置模块fs,保存信息到Json文件中。

(二)教学要求

理解:Puppeteer框架的作用和优点,使用Puppeteer框架爬取书籍信息的流程

掌握:搭建Puppeteer框架爬取数据的开发环境,使用Puppeteer框架爬取书籍信息,并保存为JSON格式数据的核心代码

难点:Puppeteer框架爬取书籍信息实现代码

重点:编写Puppeteer框架爬取书籍信息实现代码并测试

第十章 书籍信息保存至MongoDB中

(一)课程内容

将爬取的Json格式信息,使用Mongoose框架API存放到MongoDB数据库中。

(二)教学要求

理解:了解MongoDB数据库相关概念,操作MongoDB的框架Mongoose作用

掌握:搭建将书籍信息保存至MongoDB中的开发环境,使用Mongoose模块,将Books.json文件中的书籍信息保存到MongoDB数据库的核心代码

难点:利用Mongoose API,将Books.json数据填入MongoDB数据库

重点:利用Mongoose API,将Books.json数据填入MongoDB数据库

第十一章 实现RESTful API服务

(一)课程内容

用Express.js应用框架构建RESTful API 服务,提供对MongoDB数据库中存放的书籍信息进行功能操作:获取列表信息、获取详细信息、修改书籍信息、更换书籍封面图片、删除书籍等。

(二)教学要求

理解:RESTful API是一种软件架构风格-将行为和资源分离,Express.js是一个轻量级的Web应用框架

掌握:搭建实现RESTful API服务的开发环境,能基于Express.js搭建RESTful API应用的整体构架

难点:实现RESTful API服务复杂度较大:涉及中间件、路由、实现控制器等部分

重点:基于Express.js搭建RESTful API应用的整体构架,利用Mongoose API实现控制器核心代码

第十二章 实现前端Vue应用

(一)课程内容

设计Web前端Vue3应用,调用RESTful API来实现对书籍信息的管理。

(二)教学要求

理解:Vue3项目特点,前端Vue3应用实现的整体思路

掌握:使用Vite构建Vue3项目整体构架,安装vue-router模块、配置路由,定义实体类、设计服务类、设计Vue组件,编写与API交互代码

难点:Vue项目复杂度较大:涉及面较多,不易实现

重点:创建Vue项目整体框架,并在框架基础上设计逻辑代码,实现与后端API的交互

05

本课程开设的实践(训)

针对Type语法,1~8章后设有相应的实战闯关练习环节:

实战闯关1: 环境搭建、初试开发

实战闯关2: 基础语法

实战闯关3: 面向对象

实战闯关4: 包装对象、正则表达式

实战闯关5: 集合

实战闯关6: 语法进阶

实战闯关7: 名称空间和模块

实战闯关8: 类型声明文件

巩固Type语法,在9~12章安排了项目实践:

项目实践1:使用Puppeteer框架爬取书籍信息

用Type语言调用Puppeteer框架API,对清华大学出版社网站新书推荐书籍信息进行爬取。然后调用Node.js内置模块fs,保存信息到Json文件中。

项目实践2:将书籍信息保存至MongoDB中

将爬取的Json格式信息,使用Mongoose框架API存放到MongoDB数据库中。

项目实践3:实现RESTful API服务

书籍信息已存放MongoDB中,接着用Express.js应用框架构建 RESTful API 服务,来提供对MongoDB数据库中存放的书籍信息进行功能操作:获取列表信息、获取详细信息、修改书籍信息、更换书籍封面图片、删除书籍等。

项目实践4:实现前端Vue应用

设计Web前端Vue3应用,调用RESTful API来实现对书籍信息的管理。

06

课程考核

(一)考核要求

本课程成绩评定采用项目答辩的形式展示大作业作品,要求提交项目文档,项目报告,进行项目的演示。

成绩构成:平时成绩40%(4次作业),期末成绩60%

(二)成绩评定

07

参考书目及学习资料

教材名称:

《Type入门与全栈式网站开发实战》清华大学出版社,2024

参考资料(资源):

[1] 汪明.Type 实战[M] . 北京: 清华大学出版社,2020.

[2] 柳伟卫. Node.js+Express+MongoDB+Vue.js 全栈开发[M] . 北京: 清华大学出版社,2013.

[3] 郑均辉, 薛燚.Java+Vue+React 全程实例[M] . 北京: 清华大学出版社,2019.

[4] 吕鸣.Vue.js 3 应用开发与核心源码解析[M] . 北京: 清华大学出版社,2022.

[5] ALEXIS G. 精通 MongoDB 3.x[M] . 陈凯, 译. 北京: 清华大学出版社,2019.

[6] EDWAR D S G,SABHARWAL N.MongoDB 实战: 架构、 开发与管理[ M] . 蒲成, 译. 北京: 清华大学出版社,2017.

[7] ISAACKSJ D.ES 2015/2016 编程实战[M] . 林赐, 译. 北京: 清华大学出版社,2019

[8]Type官网 www.typelang.org

[9]Node.js官网 https://nodejs.org

[10]VsCode官网code.visualstudio.com

[11]D3.js官网 https://d3js.org

[12]MongoDB官网 https://www.mongodb.com

注:(1)DefinitelyTyped公共库的类型声明文件查询页

https://github.com/DefinitelyTyped/DefinitelyTyped/find/master

(2)清华大学出版社网站新书推荐首页

http://www.tup.com.cn/booksCenter/new_book_recommend.html

参考书籍

Type入门与全栈式网站开发实战

作者:曹宇

定价:99.90元

印次:1-1

ISBN:9787302655336

出版日期:2024.04.01

编辑推荐:由浅入深,案例丰富,配有微课视频、源代码、课件、教学大纲、教案、评分标准等

技术背景

Web前端开发领域,Java始终处于重要的地位。Java能很好地结合Node.js这一跨平台运行环境,将可开发范围由前端扩展到后端。但随着Web项目需求的不断增加,其业务逻辑也越来越复杂。Java作为一款弱类型的动态脚本语言,显然不能满足当前实际开发的需要,也无法很好地应对项目维护等工作。幸好,随着技术的不断进步,Type语言的出现,成功破解了这一难题。

Type是由微软公司开发的、基于Java的开源编程语言。Type带有静态类型检查功能,是Java的一个超集,Type的源文件最终可被编译为纯Java代码。Type可以弥补Java弱类型系统的不足,从而大幅提高开发代码的可靠性。此外,Type也继承了Java的诸多优点,如沿用了Java的语法和语义,极大地降低了学习成本和程序迁移成本。目前,Type已在前端领域占据重要地位,得到了广泛运用和开发市场的普遍认可。对开发技术人员来说,掌握Type不但可以重塑类型思维、提升编程素养,还可玩转前端应用开发,甚至挑战后端应用开发。

本书主要内容

本书共12章分为三部分,包括基础篇、进阶篇和实战案例篇。

第一部分基础篇,包括第1~5章。

第1章开发入门,主要阐述Java的局限性和Type语言的优点、Java和Type之间的关系、安装和配置Type的开发环境。

第2章基础语法,详细介绍包括注释、标识符、关键字、基础类型、变量、常量、操作符、分支语句、循环语句、跳转、函数定义、可选函数、默认参数、剩余参数、重载函数、递归函数、匿名函数、箭头函数、回调函数等内容。

第3章面向对象,详细介绍类和对象的基本概念、类结构、属性、函数、访问器、构造函数、创建对象、继承、函数覆盖和多态、this与super、抽象类、接口定义、接口实现类、接口多继承等内容。

第4章包装类,主要介绍Boolean、Number、String几个包装类的常见属性和函数,以及正则表达式的语法知识。

第5章集合类型,重点介绍数组(array)、元组(tuple)、集合(set)、映射(map)4种数据结构的创建和使用,以及不同集合类型间的转换。

第二部分进阶篇,包括第6~8章。

第6章语法进阶,详细描述数组的解构与展开、对象的解构与展开、访问修饰符、只读修饰符、类装饰器、其他装饰器、装饰器工厂、装饰器执行顺序、接口兼容性、类兼容性、函数兼容性、联合类型、交叉类型、类型别名、类型推断、类型断言、泛型、错误处理、传统回调函数实现异步处理、Promise实现异步编程、关键字async和await的使用等内容。

第7章名称空间和模块,全面介绍名称空间的定义和资源导出、名称空间嵌套、跨文件访问名称空间内资源、普通脚本资源全局可见、模块导出默认资源、模块导出多个资源、同时导出默认资源和普通资源、导入变量的只读特征、导出导入其他语法、CommonJS规范下模块的导入和导出等内容。

第8章类型声明文件,全面讲述获取Type内置API的类型声明文件、获取常用第三方Java库的类型声明文件、对Java文件的简单支持、为.js文件编写类型声明文件等内容。

第三部分实战案例篇,包括第9~12章,深入细致地讲解了4个关联项目的功能实现全过程。

第9章使用Puppeteer框架爬取图书信息,全面讲解在Node.js平台上用Type语言调用Puppeteer框架爬取图书信息,然后调用Node.js内置模块fs将爬取信息保存到本地JSON格式的文件中。

第10章将图书信息保存至MongoDB,详细介绍在Node.js平台上引入Mongoose模块,然后使用Type语言调用Mongoose提供的API,将第9章保存的JSON格式数据保存到MongoDB数据库文档集合中。

第11章实现后端RESTful API服务,详细介绍在Express.js应用框架上构建RESTful API服务,从而与第10章保存在MongoDB数据库中的图书信息进行交互,以及提供增、删、改、查等操作的相关接口。

第12章实现前端Vue应用,全面介绍使用Vite工具构建Vue项目,引入vuerouter模块进行路由配置,设计Vue组件,并通过Axios客户端调用第11章的RESTful API,实现图书列表、详情、修改、删除等界面操作功能。

目录

第一部分基础篇

第1章开发入门

1.1对Type的基础认知

1.1.1Java

1.1.2Type

1.1.3Type与Java

1.2搭建Type开发环境

1.2.1安装Node.js

1.2.2安装Type

1.2.3测试Node.js和Type环境

1.2.4安装VSCode

1.2.