《Deno进阶开发笔记》开源啦!长期不定时更新

前言

      Deno自2018年6月诞生,引发JavaScript开发社区的强烈讨论,很多开发者误解甚至还纷纷传言ry大神将以Deno作为下一代Node.js,甚至还闹出了啼笑皆非的“issue盖楼”闹剧。 直至2019年初,在JavaScript社区里,Deno的相关讨论声音渐渐消退,更多是谈论TypeScript是否将引领下一波前端开发潮流,甚至带动Deno起飞。

      在我的看法里,既然有新东西可以玩,先不管别人怎么议论,技术工具好不好,得自己用了才知道。面对一个新生技术,人云亦云和断章取义不是一个技术开发者的应有的行为。

      趁着2019年春节在家,好好利用这个“寒假”玩玩这个新技术。截止2019年初,Deno国内外资料实在太少。 除了出现 《deno核心指南》 以 及对应的GitHub组织 github.com/denolib 推荐的学习文档和第三方模块比较有建设性,除此之外,对于Deno的开发资料乏善可陈。

      Deno基本模块和官方标准模块 处于开发中不稳定状态,存在一堆 // TODO 的代码。2019年春节假期中,在GitHub上硬生生啃了好几个 Deno 项目仓库,开始动笔写下这本《Deno进阶开发笔记》 。写这笔记的出发点很简单,一来是作为自己学习Deno的笔记记录,二来希望能给Deno开发社区添砖加瓦。



笔记地址  github.com/chenshenhai…


Deno目前状况

Disclaimer
A word of caution: Deno is very much under development. We encourage brave early adopters, but expect bugs large and small. The API is subject to change without notice. Bug reports do help!

用我拙劣的英语能力翻译过来就是:

声明
Deno 正处于开发阶段,我们鼓励勇敢的早期使用者,并希望在使用过程中尽量少出现问题。与此同时,Deno的API 可能随时更改,恕不另行通知。

Deno官方目标

  • 支持 TypeScript 的直接使用,无需人为去编译。
  • 允许像浏览器一样import URL链接的模块,例如:
import * as log from "https://deno.land/x/std/log/mod.ts";
复制代码
  • 远程模块代码的引用获取只需一次,会缓存到本地,直至执行 --reload 强制更新远程代码。
  • 可以直接使用 ES Modules ,但不支持 CommonJS 的 require( )
  • 文件系统,网络权限都需要用户的授权允许后才能操作 。
  • 只需要一个可执行的文件就可以运行程序 。
  • 遇到未捕获的异常会直接终止程序。
  • 浏览器兼容性,如果Deno项目全是JavaScript实现,同时没有使用 deno 全局命名空间,就可以直接在现代浏览器运行。
  • 将会支持顶级执行 await 代码。

同时还有非目标的实现

  • package.json
  • npm
  • 不会兼容Node

《Deno进阶开发笔记》期望



                   

正如前面所讲的,这本笔记的出发点是基于学习,所以学习的过程中都以技术入门者的视角去记录笔记。

  • 从实际应用开发去学习 Deno 的使用,暂时不会深究底层原理。
  • 以 Deno 原生的能力实现相关代码,不依赖官方标准模块 deno_std (单元测试除外)。
  • 以 TDD 开发模式写学习例子,并结合集成构建测试保证笔记例子demo适应各种生产环境。
    • 结合 Travis CI build,用于集成构建测试在Linux环境下所有单元测试。
    • 结合 Azure Pipelines,用于集成构建测试在Window、Mac和Ubuntu环境下所有单元测试,保证例子在各个生产环境都能正常执行。


《Deno进阶开发笔记》目录(临时)

  • 1 致读者
    • 1.1 本书初衷
    • 1.2 参考资料
  • 2 快速开始
    • 2.1 快速安装
    • 2.2 快速使用
  • 3 前置基础知识
    • 3.1 Deno和Node.js
    • 3.2 缓冲区基础知识点
    • 3.3 TypeScript基础
  • 4 Deno基础知识点
    • 4.1 Deno常用命令简介
    • 4.2 Deno模块体系
    • 4.3 window全局API
    • 4.4 Deno平台API
    • 4.5 Deno系统API
    • 4.6 Deno文件操作API
    • 4.7 Deno目录操作API
    • 4.8 Deno删除操作API
    • 4.9 Deno进程操作API
    • [4.x Deno其他常用API] // TODO
  • 5 基础进阶学习
    • 5.1 单元测试
    • 5.2 单元测试进阶
    • 5.3 集成测试
    • 5.4 文件/目录操作
    • 5.5 Buffer进阶读操作
    • [5.6 Buffer进阶写操作] // TODO
    • 5.7 原生Deno实现简单HTTP服务
    • 5.8 原生Deno处理HTTP请求
    • 5.9 原生Deno处理HTTP响应
    • 5.10 原生Deno实现稳定HTTP服务
  • 6 WEB进阶开发
    • 6.1 中间件式框架简单实现
    • 6.2 中间件-路由实现
    • 6.3 中间件-静态资源实现
    • [6.4 HTML模板编译实现] // TODO
    • [6.5 文件同步上传功能实现] // TODO
    • [6.6 文件异步上传功能实现] // TODO
  • 7 工具类开发
    • 7.1 Linux系统下CLI功能实现
    • [7.2 MySQL通信] // TODO
  • 8 发布模块
    • [8.1 GitHub发布模块版本] // TODO
    • [8.2 其他发布方式] // TODO


后记

      目前,《Deno进阶开发笔记》内容属于学习笔记资料,不建议用于生产环境。因为Deno官方功能处于开发阶段,所以笔记正处于和将长期处于更新阶段,里面代码内容不建议用于生产环境,但我也希望有开发者能用于生产环境经验,并分享相关的实战经验。与此同时,个人文笔和技术理解能力有限,笔记里估计会出现语法表达或者技术理解的错误,请小伙伴们见谅,也欢迎及时指出问题,互相学习。

      如果想更方便地第一时间知道《Deno进阶开发笔记》更新进展,或者更加方便进行技术交流,可以关注我公众号 “大海码”。




你可能感兴趣的:(《Deno进阶开发笔记》开源啦!长期不定时更新)