原标题: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项目,引入vuerouter模块进行路由配置,设计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.