运用typescript进行node.js后端开发精要

价       格: 15.36
讲座评分:
4.9
视频时长:1小时15分钟
等 89 人参与

此讲座被包含在以下系列中

试看讲座
可以用微信小程序直接看哦
及时获取更多直播动态
鼠标移动放大
12 收藏

讲师信息

zhoutk
2.5k 声望
138
    喜欢计算机编程,一直从事软件相关行业。技术路线c,delphi,c++,c#,java,php,node.js,python,golang, typescript;开发机器macbook pro,或装ubuntu、fedora的机器,编程用vim,vscode,熟练使用linux,docker,git 等。
    工作前二十年,作为讲师,主讲计算机语言与大数据课程;现创业,负责公司技术总体走向与框架设计。
    我的信条:编程语言不重要,思想才是王道;永远要牢记:程序 = 数据结构 + 算法 。

                                                     ----  一个热爱编程的人

内容简介

相关视频:

特点

以实战编程为主线,来讲解typescript语言的要点,内含实践中个人的独特见解。本视频适合typescript的初学者,是我实战视频的先导课程。

课程大纲

  • 开发运行环境的配置
  • 以hello world程序讲解

    • 自动编译与自动运行监测
    • tslint规则配置
  • 以统一计算各种图形面积实例讲解

    • 各种静态类型说明
    • vscode中进行程序跟踪与调试
    • 全局变量的声明与初始化
    • 如何用bluebird替换内置的Promise对象
    • 类的编写
    • 面向对象三个原则(封装、继承、多态)的实例说明
    • 接口的使用与实战
  • 模板的知识讲解
  • 函数式编程思想初步探讨
  • 异步处理流程中的一个经验讲解

课程摘要

通过实际项目来学习Typescript。项目需求:统一处理不同图形(圆形、长方形、矩形等)的面积计算。

面向对象三大原则

1.Circle类讲解数据封装概念,将半径与名称封装在类内部,并提供访问方法

export default class Circle {
    private r: number
    private name: string
    constructor(r: number) {
        this.r = r
        this.name = 'Circle'
    }
    getName(): string {
        return this.name
    }
    area(): number {
        return Math.pow(this.r, 2) * PI
    }
}

2.长方形与矩形讲解继承概念

//rectangle.ts
export default class Rectangle {
    private a: number
    private b: number
    private name: string
    constructor(a: number, b: number, name?: string) {
        this.a = a
        this.b = b
        if (name === undefined)
            this.name = 'Rectangle'
        else
            this.name = name
    }
    getName(): string {
        return this.name
    }
    area(): number {
        return this.a * this.b
    }
}
//square.ts
export default class Square extends Rectangle {
    constructor(a: number) {
        super(a, a, 'Square')
    }
}

3.实例统一处理不同的形状一起计算面积,讲解多态概念

let shapes = Array<any>()
shapes.push(new Circle(2))
shapes.push(new Rectangle(5, 4))
shapes.push(new Square(3))
shapes.forEach((element) => {
    console.log(`shape name: ${element.getName()}; shape area: ${element.area()}`)
})

接口概念阐述

加入接口,规范形状对外部分操作要求,让错误提早到编译阶段被发现

export default interface IShape {
    getName(): string;
    area(): number
}

函数式编程讲解

用实例来说明怎样理解函数是一等公民,去掉我们习以为常的函数外层包裹

let printData = function(err: any, data: string): void {
    if (err)
        console.log(err)
    else
        console.log(data)
}
let doAjax = function (data: string, callback: Function): void {
    callback(null, data)
}
//我们习以为常的使用方式
doAjax('hello', function(err, result){
    printData(null, result)
})
//真正理解了函数是一等公民后,你会这样用
doAjax('hello', printData)

异步处理中的经验分享

在实践过程,处理异步调用容易误解的一个重要概念,异步函数执行的具体流程是什么样的?

let pf = function(data: string, n: number, callback: Function) {
    console.log(`begin run ${data}`)
    setTimeout(() => {
        console.log(`end run ${data}`)
        callback(null, data)
    }, n)
}
let p = Promise.promisify(pf);

(async () => {
    let ps = Array<any>()
    ps.push(p('1111', 2000))
    ps.push(p('2222', 1000))
    ps.push(p('3333', 3000))
    await Promise.all(ps)
})()

适合人群

  • Typescript初学者,想加入前后台编程的行列,逐步成为全栈开发者
  • 想了解多范型编程思想,从实战角度来学习编程思维的人
  • 想在团队协作中使用Typescript,规范代码编写,使团队协作更融洽的人
  • 熟练前端开发者,想步入后端编程的行列

相关视频课程

运用typescript进行node.js后端开发精要
nodejs实战之智能微服务快速开发框架
JSON-ORM(对象关系映射)设计与实现
Koa2封装数据库高级操作
蜘蛛实时爬取数据提供图书信息微服务

资源地址

凝胶(gels)项目: https://github.com/zhoutk/gels
视频讲座资料: https://github.com/zhoutk/sifou
个人博客: https://segmentfault.com/blog...


购买须知

  1. 本讲堂为虚拟产品,一经购买,概不退款(讲师特别声明除外)
  2. 讲堂购买成功,可通过网站、APP、小程序端永久观看
  3. 在使用讲堂过程中,遇到任何问题,请邮件联系:pr@sifou.com

版权声明:讲者在本产品上发表的全部原创内容(包括但不限于文字、视频、图片等)著作权均归讲师本人所有。未经讲师授权许可,观众用户不得以任何载体或形式使用讲师的内容。

9 条评价

莫小奈 · 2018年12月29日

这两年一路坎坷,一直来不及说一声感谢,真心感谢当年在我入行时候的领路,让我在这条路上很早的的时候就看的更远,虽然一直在做前端,也做过一些简单的node全栈项目,用过也自己折腾过一些框架,一直还是觉得当时在tengluo的那套工厂思想最好用,终于开课了哈,支持支持,也趁机学学ts

载入中...
lojze · 2018年12月27日

讲的很清晰,学到不少

载入中...
任生风影 · 2018年12月17日

typescript前端使用的讲解有么??期待
ps我也要优惠卷

  • 1 回复
zhoutk讲师 · 2018年12月17日

谢谢支持,前端视频也在规划中。

载入中...
xiemengyang · 2018年12月06日

正好在学ts和node 新课程有优惠么

  • 1 回复
zhoutk讲师 · 2018年12月06日

评价就有优惠,后续课程的半价券私信你。

载入中...
xinze · 2018年11月18日

很棒的讲座,老师很用心的,内容翔实紧凑,以解决实际问题的方式来给大家讲解了语言基础知识与编程的思想,赞一个。不过有一段有杂音,虽然瑕不掩瑜,还望加以改进,会继续支持的。

  • +2
  • 2 回复
zhoutk讲师 · 2018年11月18日

谢谢你的支持与建议,我会尽力改进课堂的质量。

载入中...
大圣1031 · 2018年11月16日
  • +2
载入中...
Kaso · 2018年11月16日

非常清晰,学到的不只是知识,更重要的是工具和思想。非常赞!国内要有更多这么清晰易懂的课程就好了!

  • +1
  • 1 回复
zhoutk讲师 · 2018年11月22日

感谢支持,新课程的三折优惠券已经私信给你^_^

载入中...
pandaGO · 2018年11月12日

很不错,一步一步把解决问题的全过程录了下来。这些问题初学者多半也会遇到。

  • +1
  • 2 回复
zhoutk讲师 · 2018年11月13日

谢谢支持,很快会有新的实践分享。

载入中...
editorwang · 2018年11月09日

讲座深入浅出,通过实例讲解了typescript的核心知识,并融入了面向对象开发的思想,希望后续内容尽快推出。

  • +2
  • 1 回复
zhoutk讲师 · 2018年11月10日

你的支持是我最大的动力,我现在加油的。

载入中...

SegmentFault 讲堂是什么?

SegmentFault 讲堂是以开发者为中心的视频演讲平台。 旨在和开发者一起分享和创造有价值的技术内容。 目前讲堂主要有视频观看,下载相关文档以及和主讲人聊天互动的功能。

关注 SegmentFault 服务号

  • 订阅讲堂开播提醒
  • 及时获取更多直播动态

添加 SF.GG 讲堂粉丝 QQ 群

  • 群号码:642336612(备注 SF 用户名)
  • 不定期获取讲座优惠信息,随时和开发者交流互动